- POST /acquisition-plans: manual submit via download.plan -> download.submit
(same authorization/audit/idempotency path as the agent), slotId or entityId
- read-only /media-assets, /asset-locations, /asset-unit-coverage, /path-bindings,
/reconcile-runs, /server-mappings, /artifacts, GET /title-aliases/{id};
unimplemented write endpoints removed from api.ts; registry test now checks both directions
- candidate evaluation upsert per (slot, source_release) + migration 0022 dedupe/unique index
- organization records expose downloadTaskId (+ list filter); inventory adds
subscribed/candidateReasons; feed sources expose derived possibleGap
- GET /events?after=&limit= JSON replay page for API key callers (same sse_event table)
- preference tag revision history from audit_event; subscriptions/identities/aliases
lists carry mediaEntityTitle; subscription q/mediaKind search; slot subscriptionId
filter + currentAsset summary; policy preview samples carry title/reasons
- DecisionSummary, IdentityRevisionList, ReleaseIdentityResult, PolicyPreviewSummary exported from contracts
Co-Authored-By: Claude Opus 5.5 <[email protected]>
@umt/contracts
所有 API、SSE 事件与能力(capability)输入输出的唯一定义(zod 4 schema + 推导出的 TS 类型)。web 与 server 共用,任何一端都不得手写重复 DTO;新增接口先在这里加 schema,再由 server 用 @hono/zod-openapi 生成 OpenAPI。
| 文件 | 内容 |
|---|---|
common.ts |
Id、Timestamp、DateOnly、JsonObject、游标分页、错误码、响应信封、ApiScope、ActorType |
content.ts / identity.ts / assets.ts / sources.ts / policy.ts / execution.ts / agent.ts / ops.ts / organization.ts / instances.ts |
每张表的 Row schema(camelCase、日期为 ISO 字符串)+ XxxCreate / XxxUpdate 输入 |
organization.ts |
另含公开整理记录合同:PublicOrganizationRecord、OrganizationChangesQuery/Response(change_seq 游标)、OrganizeRequest |
settings.ts |
GlobalSettings、DEFAULT_SETTINGS、GlobalSettingsUpdate、mergeSettings() |
capability.ts / capabilities-io.ts |
CapabilityDescriptor、首批 14 个能力 ID 与目录、各能力 Input/Output schema、CAPABILITY_IO |
events.ts |
SSE 信封、EventType、EVENT_PAYLOADS、TypedEvent 判别联合 |
api.ts |
Api 端点表(method/path/scope/params/query/body/response)、buildPath()、listEndpoints() |
约定:
- Row schema 与
packages/db/src/types.ts的列一一对应(test/db-sync.test.ts校验);只在 DB 存在的列(密文、key_hash、change_xid)不对外。 - 凭证类输入(
credential、url、plaintext、apiKey)只写不回显。 - schema 不用
.default()做可部分更新对象的缺省(zod 4 在 partial 里仍会填默认值);缺省值放常量。