feat(spec): console-management ops — pricing/custody/engine/gpu (epic P3) - #72
Conversation
…y, engine capabilities, gpu infer/status (rendering-completeness-epic P3)
The MCP product-tool plane is a DERIVED projection (openapi-spec ops ∩ enforcedV1Groups) —
spec-coverage is the bottleneck, so these four paths/ops unlock derived wave_* tools:
- /pricing/manifests GET+POST (pricing:read/write) — shapes from src/pricing-manifests.ts
- /custody/{op} POST grant|revoke|inspect|exercise (custody:write, operator-plane) — from
src/capability-custody.ts (receipt-only responses; secrets never in payloads)
- /engine/capabilities GET (engine:read) — media-engine capability contract
- /gpu/infer POST + GET status (gpu:read/write) — wave-gpu-edge
EXCLUDED with receipts: members (console-plane — Supabase org_members behind the session,
NOT a gateway-enforced group; the derivation would drop it) and mail/timeline (spoke-direct,
mail is not in EDGE_SPOKE_GROUPS so /v1/mail is not gateway-enforced).
Gateway deploy follows the merge; the derived tool list regenerates on deploy.
|
Your free trial PR review limit of 300 PRs has been reached. Please upgrade your plan to continue using CodeAnt AI. |
|
ⓘ Qodo reviews are paused because your workspace is out of credits. Ask your workspace admin to add credits to resume reviews. Manage billing |
There was a problem hiding this comment.
Sorry @yakimoto, this account has used its review budget of 2,500,000 diff characters for the last 7 days.
You can request another review in 1 day and 11 hours by commenting @sourcery-ai review.
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_2b448546-ec1c-4761-b191-b1bce8331276) |
|
Warning Review limit reachedNext included review available in 4 minutes. View limit detailsLimit details: You’ve used the included review currently available. Your 92 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Team Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
Comment |
Reviewer's GuideExtends openapi.yaml with six gateway-enforced operations across pricing, custody, engine, and GPU surfaces, including their request/response shapes, authorization and error behavior, plus shared pricing and validation schemas so downstream spec synchronization can derive the corresponding MCP tools. Sequence diagram for gateway-enforced GPU inferencesequenceDiagram
participant MCP as MCP client
participant Gateway as Wave Gateway
participant GPU as wave-gpu-edge
MCP->>Gateway: gpuInfer
Gateway->>GPU: POST /gpu/infer + x-wave-gateway-secret
GPU-->>Gateway: Job receipt + x-wave-meter
Gateway-->>MCP: Job receipt
MCP->>Gateway: gpuStatus
Gateway->>GPU: GET /gpu
GPU-->>Gateway: Plane status
Gateway-->>MCP: Plane status
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — The change expands the public contract and downstream tool surface to include pricing writes, held-fund custody operations, and metered GPU inference. Its security, financial, and externally exposed capability implications warrant human review despite no handler implementation changing in this repository. Not approved because:
Review your spending limits in Billing settings. You can add or adjust custom eligibility rules. Learn more. |
…the sdk-types gate compares the committed artifact)
|
Your free trial PR review limit of 300 PRs has been reached. Please upgrade your plan to continue using CodeAnt AI. |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_38db4807-697f-4526-a80c-74231763777c) |
…ent gate) — regenerate types
|
Your free trial PR review limit of 300 PRs has been reached. Please upgrade your plan to continue using CodeAnt AI. |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_a9ac5102-abe2-49e5-bdee-cf924766e06d) |
…w (responses/ValidationError ref, drop the duplicate schema); declare the new tags
|
Your free trial PR review limit of 300 PRs has been reached. Please upgrade your plan to continue using CodeAnt AI. |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_ae1a3772-7413-402a-a9a0-7547b866fe0a) |
|
Your free trial PR review limit of 300 PRs has been reached. Please upgrade your plan to continue using CodeAnt AI. |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_c1b2cf2a-36e5-4d65-a820-859cf9475e2e) |
Code Review ✅ Approved 2 resolved / 2 findingsAdds six new console-management operations ( ✅ 2 resolved✅ Quality: New ValidationError schema diverges from standard Error envelope
✅ Quality: New tags Pricing/Custody/Engine/Gpu not declared in top-level tags
OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
|
Your free trial PR review limit of 300 PRs has been reached. Please upgrade your plan to continue using CodeAnt AI. |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_f7caad76-8477-4689-a8f7-aac5d354dce5) |
What
Six new operations across four paths in openapi.yaml, giving the DERIVED MCP plane coverage
of the console-management surfaces: /pricing/manifests (GET+POST), /custody/{op} (POST,
4-op enum), /engine/capabilities (GET), /gpu/infer (POST) + /gpu (GET). Schemas:
PricingManifest + ValidationError (the gateway's standard error shape).
Why — the derivation law
wave-gateway's MCP product tools are a derived-only projection (openapi-spec ops ∩
enforcedV1Groups, mcp-product-tools.ts:20-25). The audit found pricing/custody/members/
mail/engine/gpu unreachable BY CONSTRUCTION — not an MCP gap but a SPEC gap. This PR closes
the spec half; a gateway deploy regenerates the tool list.
Excluded, with receipts (the real-systems law)
(/api/console/members), NOT a gateway-enforced group. The derivation would drop it; a spec
entry would advertise a route the gateway doesn't serve.
mailis not in EDGE_SPOKE_GROUPS, so/v1/mail is not gateway-enforced. Same verdict.
Verification
custody (src/capability-custody.ts receipt-only), engine (capabilities.json contract),
gpu (wave-gpu-edge metering notes).
Notes
The P3 chain: this PR merges → api-spec regen (npm run spec:sync pins the SHA) → gateway
deploy → MCP tool list includes wave_pricingManifestsList / wave_custodyOperation /
wave_engineCapabilities / wave_gpuInfer / wave_gpuStatus.
Note
Medium Risk
Spec-only, but it formalizes operator-plane custody and billable GPU inference; incorrect shapes or scope docs could mislead integrators until gateway enforcement matches.
Overview
Expands the public OpenAPI contract so console-management gateway routes that already exist can be derived into MCP product tools (spec ∩ enforced route groups).
Adds four paths and six operations:
GET/POST/pricing/manifests(org-scoped list and validated upsert;pricing:read/pricing:write),POST/custody/{op}withgrant|revoke|inspect|exercise(custody:write, metadata-only receipts,503when unconfigured),GET/engine/capabilities(engine:read), andGET/POST/gpu/infer(plane status and metered inference;gpu:read/gpu:write). Introduces thePricingManifestcomponent schema and new OpenAPI tags (Pricing, Custody, Engine, Gpu).Regenerates
generated/api-types.d.tsso TypeScript clients pick up the newpathsentries andoperationstypings. No runtime gateway behavior changes in this repo—downstream spec sync and gateway deploy are what surface new MCP tools.Reviewed by Cursor Bugbot for commit 4567374. Bugbot is set up for automated code reviews on this repo. Configure here.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by Sourcery
Expand the OpenAPI contract to expose existing console-management pricing, custody, engine, and GPU surfaces for downstream API tooling.
New Features:
Enhancements:
Build:
Tests: