fabro/lib/packages/fabro-api-client
Scott Werner 20cde16b59 feat(server): mcp-servers HTTP API — handlers, type reuse, TS client
Implement the server-managed MCP server catalog HTTP API on top of the
OpenAPI spec and the `fabro-mcp-store` foundation, mirroring the
automations feature end to end.

- fabro-api: reuse the domain model as the wire contract via
  `with_replacement` instead of parallel DTOs — `McpServer` →
  `McpServerDefinition`, `CreateMcpServerRequest` → `McpServerDraft`,
  `ReplaceMcpServerRequest` → `McpServerReplace`. The transport types
  (`McpTransport`, `McpHttpProtocol`) are already mapped to the domain
  `u64`/`u16` widths, so the spec's signed integer formats never leak.
  Add identity + JSON-parity tests.
- fabro-types: derive serde on `McpServerDefinition` so it can serve as
  the public response type.
- fabro-server: wire the `McpServerStore` into `AppState` (load from the
  active config's `mcps/` directory) and add the
  `list/create/get/replace/delete` handlers with ETag-on-201, required
  `If-Match` on PUT/DELETE, and the same store-error → status mapping
  automations uses (404/409/422/500). Register the routes.
- Regenerate the TypeScript Axios client against the merged spec.

Credential-literal validation (warn vs hard-reject for credential-looking
literal env/header values) is left intentionally unenforced behind a TODO;
that decision is still open.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 13:04:01 -04:00
..
scripts chore(api-client): make client generation idempotent 2026-05-21 14:29:11 -04:00
src feat(server): mcp-servers HTTP API — handlers, type reuse, TS client 2026-06-30 13:04:01 -04:00
tests feat(web): add server-managed Environments CRUD settings UI (#462) 2026-06-13 08:44:38 -04:00
openapitools.json Rename Arc to Fabro in TypeScript/JavaScript 2026-03-12 11:13:18 -04:00
package.json Fold context-window data into agent.message, remove snapshot event (#390) 2026-05-24 15:48:21 -04:00
tsconfig.json Fix run principal attribution gaps 2026-05-02 09:14:02 -04:00