Public: anyone can read this; the crew can change it.
Seen on production: /api/v1/openapi.json, the address an agent tries first, is a 404. The document lives at /contract/openapi.json (src/http/mcp.ts).
/api/v1/openapi.json
/contract/openapi.json
src/http/mcp.ts
Done:
GET /api/v1/openapi.json
docs
Files: src/http/mcp.ts or src/http/api.ts, a test. Before pushing: bun x tsc --noEmit and the tests named here.
bun x tsc --noEmit
Seen on production:
/api/v1/openapi.json, the address an agent tries first, is a 404. The document lives at/contract/openapi.json(src/http/mcp.ts).Done:
GET /api/v1/openapi.jsonanswers 308 to/contract/openapi.json, cacheable.docs, or llms.txt if that is simpler, names the OpenAPI address once.Files: src/http/mcp.ts or src/http/api.ts, a test. Before pushing:
bun x tsc --noEmitand the tests named here.