Files
rootandClaude Opus 5.5 2e3c2098fd docs: S-9 sync READMEs and porting notes with W5 code
- contracts README lists files.ts / auth.ts / browser.ts / redact.ts and auth:"session"
- adapters README fs row: FsProxy and the ./fsworker export
- server README: file-manager module, worker:agent and internal fsworker roles
- moviepilot-rust-transfer §7: compiled-binary fsworker and trash_item done (W5-E)
- 04 S9 row marked fixed (W6-B TOTP entry)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-28 00:50:29 +08:00

23 lines
2.3 KiB
Markdown

# @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` 判别联合 |
| `files.ts` | 文件管理(`/files/*`)的请求/响应:根与条目、dryRun 计划(planId)、move/copy/organize/delete、回收站 `TrashItem`、identify/probe/scrape、download |
| `auth.ts` | 登录、会话探测 `SessionInfo`、改密、TOTP(`TotpStatus`/`TotpAction`)、审计动作枚举 |
| `browser.ts` | BrowserProvider 合同:会话/标签/快照、快照脱敏类别 `SnapshotRedactionKind` |
| `redact.ts` | 凭证脱敏的唯一键表与规则:`SENSITIVE_KEY_PARTS`、`SENSITIVE_QUERY_PARAMS`、`isSensitiveKey`、`isSensitiveQueryParam`、`redactString`、`redactUrl`(server logger、Agent 模型上下文、adapters 的 rss/browser 共用) |
| `api.ts` | `Api` 端点表(method/path/scope/auth/params/query/body/response;`auth:"session"` 表示只接受管理员控制台会话)、`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 里仍会填默认值);缺省值放常量。