Skip to content

fix(x402): expose capability output_schema in catalog - #409

Open
epistemedeus wants to merge 1 commit into
strale-io:mainfrom
epistemedeus:codex/strale-catalog-output-r1
Open

fix(x402): expose capability output_schema in catalog#409
epistemedeus wants to merge 1 commit into
strale-io:mainfrom
epistemedeus:codex/strale-catalog-output-r1

Conversation

@epistemedeus

Copy link
Copy Markdown

Summary

  • expose each capability's existing seller-owned output_schema through the
    credential-free GET /x402/catalog response
  • preserve the exact stored schema without rewriting or inferring fields
  • keep solution entries unchanged because the solutions table has no
    authoritative output-schema column

PR #402 added a strict output contract for paid-api-preflight, but the x402
catalog transformation still projected only input_schema. This follow-up
keeps the catalog aligned with the already-public /v1/capabilities surface so
a buyer can inspect the declared output contract before authorization.

No request handling, price, payment, facilitator, wallet, settlement,
execution, or deployment behavior changes.

Validation

  • 4 focused catalog-handler tests
  • 120 focused x402 and payment-semantic tests
  • 188 non-integration route tests
  • API and script TypeScript checks
  • manifest consistency, coverage matrix, PII, SSRF, and repository lint gates

All passed.

Signed-off-by: epistemedeus epistemedeus@gmail.com

GET /x402/catalog omitted capability output_schema after PR strale-io#402 declared
the paid-api-preflight contract. The cache already held the seller-owned
schema and GET /v1/capabilities already projected it, so a credential-free
buyer could not inspect the output contract before authorization.

Project capabilities.outputSchema as-is. Solutions have no output-schema
column; those entries stay without an invented contract.

Signed-off-by: epistemedeus <epistemedeus@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant