feat(protocol): select runtime tool projections - #6562
Conversation
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated schema paths require human/CODEOWNERS review.
This PR modifies files under static/schemas/source/**, which are under a hard, deterministic approval gate (gated_paths: true). The current review_decision is REVIEW_REQUIRED, not APPROVED, so the gate is not satisfied (decision table row 2).
The reviewer found no Critical/High/Medium findings — the change is additive and well-tested: a new optional summary manifest field, pure fail-closed projection helpers, and coherent schema↔docs updates with a correct minor changeset. Absent the gate, this would be a clean approve. But per the hard gate, it cannot auto-approve until a human/CODEOWNERS approval lands.
Escalation reasons
- Modifies gated schema source files under
static/schemas/source/**(manifest.schema.json,list-products-request.json,get-adcp-capabilities-request.json) — human/CODEOWNERS review required before merge (review_decision: REVIEW_REQUIRED).
Why human review
- Modifies gated paths under static/schemas/source/** (manifest.schema.json, list-products-request.json, get-adcp-capabilities-request.json) while review_decision is REVIEW_REQUIRED — human/CODEOWNERS approval required.
- This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/manifest.schema.json (modified) matches
static/schemas/source/**; static/schemas/source/media-buy/list-products-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/protocol/get-adcp-capabilities-request.json (modified) matchesstatic/schemas/source/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated paths modified without required review approval.
This PR modifies files under static/schemas/source/**, which are under a hard, non-overridable approval gate (gated_paths: true), and the current review_decision is REVIEW_REQUIRED, not APPROVED. Per decision rule row 2, this forces escalation until a human/CODEOWNERS approval is recorded.
Escalation reasons
- Modifies gated schema-source files (e.g.
static/schemas/source/manifest.schema.json,static/schemas/source/media-buy/list-products-request.json,static/schemas/source/protocol/get-adcp-capabilities-request.json, and ~30 other request schemas) whilereview_decisionisREVIEW_REQUIRED— human/CODEOWNERS approval required before merge.
The delta itself is clean: additive x-tool-summary annotations across active Media Buy, Creative, Account, and Protocol request schemas, with x-tool-summary registered in PRESENTATION_ANNOTATIONS so it is stripped from structural runtime schemas (summary still reaches the wire via manifest summary + tools/list description). Docs (schemas.mdx, calling-an-agent.mdx) cohere with the schema, the changeset is minor and appropriate for an additive normative change, and the tightened projection test fails-closed on a missing summary. No critical/high/medium findings. This carries forward the prior escalate, which remains driven solely by the unsatisfied gated-paths approval gate, not by any code defect.
Why human review
- Modifies gated paths under static/schemas/source/** (manifest.schema.json, media-buy/list-products-request.json, protocol/get-adcp-capabilities-request.json, and ~30 other request schemas) while review_decision is REVIEW_REQUIRED — human/CODEOWNERS approval required before merge.
- This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/account/get-account-financials-request.json (modified) matches
static/schemas/source/**; static/schemas/source/account/list-accounts-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/account/report-usage-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/account/sync-accounts-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/account/sync-governance-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/creative/get-creative-delivery-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/creative/get-creative-features-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/creative/list-creatives-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/creative/list-transformers-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/creative/preview-creative-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/creative/sync-creatives-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/creative/validate-input-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/manifest.schema.json (modified) matchesstatic/schemas/source/**; static/schemas/source/media-buy/accept-proposal-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/media-buy/build-creative-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/media-buy/buy-products-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/media-buy/control-media-buy-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/media-buy/decline-proposals-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/media-buy/get-media-buy-delivery-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/media-buy/get-media-buys-reques
…(truncated)…
Summary
tools/listentries from existing per-tool bundles with only selected input schemas and optional concise manifest summariesWhy
The complete generated catalog is the authority for SDK generation, documentation, compatibility, and conformance, but it is too large to be a default model-context payload. Hosts need one deterministic way to project only the tools they actually implement and advertise while retaining canonical response schemas outside model context.
Closes #6416.
Validation