@ai-matrx/api
v0.1.36
Published
The one way every app talks to every AI Matrx server: generated from the server contract, split by domain so an app loads only the requests it calls. Transport, five credential kinds, organization binding, streams, job follow. No screens, app state or dat
Maintainers
Readme
@ai-matrx/api
The one way every app talks to every AI Matrx server. Generated from the server contract and split by area, so an app only loads the requests it calls. It never holds screens, app state or database code.
import { createApi } from "@ai-matrx/api";
import { listAssets } from "@ai-matrx/api/files";
const api = createApi({ credentials: { kind: "api_key", apiKey: process.env.MATRX_API_KEY! }, organizationId });
const page = await listAssets(api, { query: { limit: 50 } });- Credentials — one setting: a credential, a getter, or a
CredentialsPort(user,guest,api_key,service,scoped). - Organization — bound once; sent per each operation's contract rule (required / optional / exempt).
- Routing — each operation knows which deployment answers; override with
baseUrlsorresolveBaseUrl. - Streams — NDJSON/SSE operations return an async iterable;
*_or_jsonoperations return{ kind: "json" } | { kind: "stream" }. - Sections —
@ai-matrx/api/<domain>per domain,/schemas,/types(type-onlycomponents/pathsview),/stream,/net,/credentials. Importing one domain loads no other domain's code.
Regenerate after a server contract change: node scripts/generate.mjs (input: aidream api-contract/). --check fails on drift.
Gates
pnpm check:package runs the generator --check, the build, exports agreement, publint and the section probe (scripts/section-probe.mjs: no domain section loads another domain's code; one imported operation bundles exactly one operation descriptor).
