Commit graph

134 commits

Author SHA1 Message Date
Virgil
0984c2f48a docs(api): add AX usage examples
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 23:25:54 +00:00
Virgil
47e8c8a795 feat(openapi): document route headers on all responses
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 23:21:56 +00:00
Virgil
14eedd7f91 feat(cmd/api): dedupe sdk spec groups 2026-04-01 23:18:19 +00:00
Virgil
eb7e1e51cb feat(openapi): reuse deprecation header components 2026-04-01 23:12:40 +00:00
Virgil
06f2263b73 fix(api): disable cache middleware for non-positive ttl
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 23:09:12 +00:00
Virgil
29324b0a0b feat(api): add sunset deprecation middleware
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 23:02:52 +00:00
Virgil
b64c8d3271 docs(api): add AX usage examples
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:55:39 +00:00
Virgil
dd74a80b1e fix(api): infer JsonResource schemas in docs 2026-04-01 22:50:21 +00:00
Virgil
cebad9b77b feat(api): honour header toggles for versioning
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:45:03 +00:00
Virgil
ccfbe57faf feat(openapi): document response headers 2026-04-01 22:42:13 +00:00
Virgil
00c20ea6e8 refactor(api): streamline ToolBridge iterator snapshots
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:38:56 +00:00
Virgil
9553808595 feat(api): add counts to MCP server detail
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:34:34 +00:00
Virgil
929b6b97ca fix(api-docs): deduplicate explicit OpenAPI parameters
Explicit ApiParameter metadata now replaces matching auto-generated path parameters instead of producing duplicates, matching the precedence used by the Go OpenAPI builder.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:32:23 +00:00
Virgil
a89a70851f fix(api): deduplicate spec iterator groups
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:28:34 +00:00
Virgil
ec7391cb06 feat(api): add iterator-backed spec export
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:25:07 +00:00
Virgil
f0d25392a8 feat(provider): add iterator for provider info summaries
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:19:56 +00:00
Virgil
1a8fafeec5 feat(api): enrich MCP server details on demand
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:09:22 +00:00
Virgil
2cfa970993 fix(api-docs): align sunset docs with middleware args
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:06:46 +00:00
Virgil
2bdcb55980 feat(api): add ApiSunset middleware
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:02:44 +00:00
Virgil
cba25cf9fc feat(api-docs): document sunset middleware in OpenAPI
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:59:01 +00:00
Virgil
93cdb62dfe feat(api): allow deprecation without sunset date
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:56:10 +00:00
Virgil
691ef936d4 feat(api): allow versioned route sunset replacements 2026-04-01 21:50:30 +00:00
Virgil
b2116cc896 feat(openapi): omit auth errors on public routes
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:46:06 +00:00
Virgil
2fd17a432c fix(provider): handle invalid proxy upstreams safely
Avoid panicking when a ProxyProvider is constructed with a malformed upstream URL. The provider now records the configuration error and returns a standard 500 envelope when mounted.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:42:04 +00:00
Virgil
475027d716 refactor(api): wrap ToolBridge errors
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:36:58 +00:00
Virgil
2d1ed133f2 refactor(api): align OpenAPI client with AX principles
Use core-style error wrapping in the OpenAPI client, replace direct spec reads with streamed file I/O, and add compile-time interface assertions for ToolBridge.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:32:21 +00:00
Virgil
867221cbb8 fix(api): snapshot tool bridge iterators
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:27:19 +00:00
Virgil
e0bdca7889 fix(api): snapshot engine iterator views
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:23:19 +00:00
Virgil
4ce697189a fix(client): promote declared query params on all methods
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:19:45 +00:00
Virgil
db9daadbce fix(api): return engine groups by copy
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:16:10 +00:00
Virgil
f62933f570 feat(openapi): document example-only request bodies
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:12:14 +00:00
Virgil
b0adb53dec fix(openapi): snapshot describable groups once
Prepare route descriptions once per group before building paths and tags so iterator-backed DescribeIter implementations are consumed safely and deterministically.

Adds a regression test covering a one-shot iterator-backed group.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:07:04 +00:00
Virgil
cb726000a9 feat(api): add iterator for spec registry
Adds RegisteredSpecGroupsIter so CLI consumers can range over a snapshot of the package-level spec registry without copying the slice manually.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:03:15 +00:00
Virgil
f2f262a4c2 refactor(api): standardise unauthorised wording
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:59:55 +00:00
Virgil
eceda4e5c1 feat(openapi): support iterator-backed route descriptions
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:55:33 +00:00
Virgil
7e4d8eb179 feat(openapi): add route examples to spec
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:51:02 +00:00
Virgil
bb7d88f3ce feat(openapi): add external docs metadata
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:47:38 +00:00
Virgil
4d7f3a9f99 feat(openapi): add terms of service metadata
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:44:01 +00:00
Virgil
071de51bb5 feat(openapi): mark deprecated operations in spec
Expose route-level deprecation in generated OpenAPI operations and cover it with a regression test.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:40:53 +00:00
Virgil
a589d3bac6 feat(api): add OpenAPI contact metadata
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:35:08 +00:00
Virgil
d45ee6598e feat(api): expose swagger licence metadata in CLI 2026-04-01 20:30:02 +00:00
Virgil
b2d3c96ed7 feat(api): expose swagger licence metadata
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:26:55 +00:00
Virgil
0ed1cfa1b1 docs(api): add AX examples to public APIs
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:23:41 +00:00
Virgil
d3737974ce feat(openapi): add info license metadata
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:21:06 +00:00
Virgil
b341b4b860 docs(api): add AX usage examples
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:17:46 +00:00
Virgil
e2935ce79e feat(api): dedupe PHP OpenAPI operation IDs
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:13:28 +00:00
Virgil
c9627729b5 fix(provider): harden proxy path stripping
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:08:55 +00:00
Virgil
cd4e24d15f feat(api): document custom success statuses 2026-04-01 20:04:34 +00:00
Virgil
6017ac7132 feat(api): collapse equivalent OpenAPI servers
Normalise server metadata so trailing-slash variants deduplicate to a single entry.

Adds a regression test covering both absolute and relative server URLs.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:01:34 +00:00
Virgil
6034579c00 feat(openapi): fall back to group tags
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 19:57:10 +00:00