Skip to content

SchemaRouter 0.13.0

SchemaRouter 0.13.0 is an operational-completeness release on top of the stable-core boundary established in 0.12.0.

The architecture is not being reopened. This release closes concrete product gaps that appear when the same typed capability contract is connected to real protocol, SDK, transport, nested-result and schema-lifecycle surfaces.

Universal capability ingestion

The first-class ingestion surface now covers:

  • direct ToolSpec registration and typed Python callables;
  • explicit ToolSpec + trusted arbitrary SDK/client invokers through add_bound_tool();
  • OpenAPI/Swagger;
  • MCP Streamable HTTP, trusted stdio subprocesses and transport-neutral bound client factories;
  • OPTIMADE;
  • GraphQL introspection with native selection semantics;
  • OData CSDL with $select;
  • OpenRPC / JSON-RPC;
  • declarative HTTP/JSON capabilities;
  • inbound LangChain and LlamaIndex tools;
  • explicit SourceAdapter plugins and the existing grounded-document proposal/approval path.

Different access paths for one logical provider remain distinct. The registry records provider and access identity rather than pretending that a Python SDK, MCP server, OpenAPI endpoint and OPTIMADE service are the same transport.

Field contracts survive real nested responses

Structured adapters now align around the same field contract model. Nested OpenAPI, MCP and OPTIMADE responses, Python/plugin schemas, and arrays of records retain their declared hierarchy.

A response such as an array of records is projected record by record. SchemaRouter does not flatten all matching child values into an unrelated list. Datatype, semantic ID, optional units, normalization, qualifiers and result paths remain attached to the registered field contract.

Trusted local code can also amend an imported capability when a provider omits a result contract. That amendment path is intentionally narrow: it may declare or annotate approved data contracts, but it cannot silently rewrite imported execution identity or grant remote mutation authority.

Schema lifecycle is now operational

Schema drift can be handled without turning remote metadata into authority:

accepted ToolSpec
  -> reinspect provider
  -> exact fingerprint + conservative compatibility report
  -> identical: no write
  -> compatible: optional CAS apply + exact rebind
  -> breaking/security: pending review

The periodic watcher runs the same boundary with bounded concurrency.

Safe single-document HTTP schema surfaces can use ETag / Last-Modified validators as a network optimization. Correctness still falls back to full inspection and fingerprint comparison when validators are unavailable or insufficient.

MCP stdio and custom transports are refreshable without inventing an HTTP URL. SchemaRouter reuses only the current fingerprint-matched process-local trusted factory. Credentials, subprocess configuration, sockets and live transport state are never serialized into ToolSpec or watcher snapshots. Missing or stale trusted bindings fail closed.

Stable-core boundary remains intact

0.13.0 does not turn SchemaRouter into an autonomous agent framework and does not give retrieval or remote schemas execution authority.

The surrounding application/agent still chooses among bounded registered candidates. SchemaRouter continues to own typed registry identity, argument/output validation, field projection, local policy, approvals, binding readiness and execution.

The public bounded retrieval facade introduced in 0.11.0 and frozen as stable core in 0.12.0 remains the product boundary:

  • retrieve / aretrieve;
  • retrieve_executable / aretrieve_executable;
  • validated planning/invocation APIs and their existing policy boundary.

Research remains separate

The 0.14 agent-utility research cycle continues independently. B1/B2 evidence, the negative structural K3-vs-K5 gate, corrective re-retrieval, large held-out confirmation, final-answer quality and output-field projection experiments do not control whether this package release is usable.

No frozen 0.14 experimental corpus, ranking condition, promotion gate or evidence interpretation was changed to prepare 0.13.0.

Compatibility

There is no intentional breaking public API change relative to 0.12.0. New ingestion, bound transport, field-contract and schema-watch paths are additive.

SchemaRouter remains Beta / pre-1.0. The 0.12 stable-core architecture is preserved, while 0.x minor releases may still add deliberately documented capabilities around that boundary.

Release integrity

The release commit must pass the protected CI matrix before publication. The automated release workflow then creates v0.13.0 at that exact green main SHA, builds and clean-installs wheel and sdist artifacts, emits provenance attestations and an SPDX SBOM, publishes through PyPI Trusted Publishing, and verifies the exact public artifacts and integration extras after publication.