@sema-agent/sdk 23.1.0 → 25.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +201 -4
  2. package/dist/client.d.ts +6 -1
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +8 -1
  5. package/dist/client.js.map +1 -1
  6. package/dist/device/index.d.ts +76 -12
  7. package/dist/device/index.d.ts.map +1 -1
  8. package/dist/device/index.js +90 -31
  9. package/dist/device/index.js.map +1 -1
  10. package/dist/errors.d.ts +318 -6
  11. package/dist/errors.d.ts.map +1 -1
  12. package/dist/errors.js +121 -10
  13. package/dist/errors.js.map +1 -1
  14. package/dist/events.d.ts +165 -23
  15. package/dist/events.d.ts.map +1 -1
  16. package/dist/events.js +19 -0
  17. package/dist/events.js.map +1 -1
  18. package/dist/health.d.ts +29 -1
  19. package/dist/health.d.ts.map +1 -1
  20. package/dist/health.js.map +1 -1
  21. package/dist/index.d.ts +38 -12
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +25 -4
  24. package/dist/index.js.map +1 -1
  25. package/dist/model-route-env/index.d.ts +129 -0
  26. package/dist/model-route-env/index.d.ts.map +1 -0
  27. package/dist/model-route-env/index.js +131 -0
  28. package/dist/model-route-env/index.js.map +1 -0
  29. package/dist/registry/errors.d.ts +3 -0
  30. package/dist/registry/errors.d.ts.map +1 -1
  31. package/dist/registry/errors.js +3 -2
  32. package/dist/registry/errors.js.map +1 -1
  33. package/dist/registry/me-config.d.ts +1 -0
  34. package/dist/registry/me-config.d.ts.map +1 -1
  35. package/dist/registry/me-config.js +1 -1
  36. package/dist/registry/me-config.js.map +1 -1
  37. package/dist/registry/scope-config-feedback.d.ts +1 -0
  38. package/dist/registry/scope-config-feedback.d.ts.map +1 -1
  39. package/dist/registry/scope-config-feedback.js +1 -1
  40. package/dist/registry/scope-config-feedback.js.map +1 -1
  41. package/dist/resources/adoption.d.ts +8 -2
  42. package/dist/resources/adoption.d.ts.map +1 -1
  43. package/dist/resources/adoption.js.map +1 -1
  44. package/dist/resources/approvals.d.ts +22 -2
  45. package/dist/resources/approvals.d.ts.map +1 -1
  46. package/dist/resources/approvals.js +12 -2
  47. package/dist/resources/approvals.js.map +1 -1
  48. package/dist/resources/elicitations.d.ts +2 -1
  49. package/dist/resources/elicitations.d.ts.map +1 -1
  50. package/dist/resources/elicitations.js.map +1 -1
  51. package/dist/resources/fleet.d.ts +65 -6
  52. package/dist/resources/fleet.d.ts.map +1 -1
  53. package/dist/resources/fleet.js.map +1 -1
  54. package/dist/resources/ops.d.ts +113 -0
  55. package/dist/resources/ops.d.ts.map +1 -1
  56. package/dist/resources/ops.js +10 -0
  57. package/dist/resources/ops.js.map +1 -1
  58. package/dist/resources/principal-inbox.d.ts +62 -0
  59. package/dist/resources/principal-inbox.d.ts.map +1 -0
  60. package/dist/resources/principal-inbox.js +51 -0
  61. package/dist/resources/principal-inbox.js.map +1 -0
  62. package/dist/resources/questions.d.ts +2 -1
  63. package/dist/resources/questions.d.ts.map +1 -1
  64. package/dist/resources/questions.js.map +1 -1
  65. package/dist/resources/session-sync.d.ts +4 -2
  66. package/dist/resources/session-sync.d.ts.map +1 -1
  67. package/dist/resources/session-sync.js +4 -2
  68. package/dist/resources/session-sync.js.map +1 -1
  69. package/dist/resources/tool-approvals.d.ts +201 -22
  70. package/dist/resources/tool-approvals.d.ts.map +1 -1
  71. package/dist/resources/tool-approvals.js +183 -36
  72. package/dist/resources/tool-approvals.js.map +1 -1
  73. package/dist/settings.d.ts +73 -1
  74. package/dist/settings.d.ts.map +1 -1
  75. package/dist/sse.d.ts +8 -1
  76. package/dist/sse.d.ts.map +1 -1
  77. package/dist/sse.js +9 -5
  78. package/dist/sse.js.map +1 -1
  79. package/dist/types.d.ts +475 -113
  80. package/dist/types.d.ts.map +1 -1
  81. package/dist/types.js +11 -5
  82. package/dist/types.js.map +1 -1
  83. package/openapi.yaml +1296 -153
  84. package/package.json +6 -2
package/README.md CHANGED
@@ -43,6 +43,9 @@ for await (const ev of client.runs.events(task.taskId)) {
43
43
  by a deadline (contract body `DrainRequest` → receipt `DrainReceipt`; four-part identity compared field by field, 409
44
44
  `conflict.fleet_identity` on a mismatch; idempotent by `actionId`, never auto-retried).
45
45
  - `client.approvals` — HITL: pending checkpoints, `decide` (approve/deny/answer), live `stream()`, per-session exemptions (`listExemptions` / `revokeExemption`).
46
+ `decide` 的 409 `approval_stale`(`ApprovalStaleError`)是**一码两因**,看体分:**有 `terminal`** = 终局(别人决了 / 过期被收 / SLA 触发了拒),这张卡没了,重拉收件箱、别重试;
47
+ **无 `terminal` 且有 `currentPending`** = 你回显的绑定旧了(`boundCallId` 与现在 pending 的那一行对不上,读与决之间卡被换了),卡还活着 —— 拿 `currentPending` 一跳重定位、再决一次,不必整队重拉;
48
+ 只有 `boundInputHash` 写错(`boundCallId` 对)才落 core 的裸 409 `approval_binding_mismatch`(`ApprovalBindingMismatchError`),不是本类。型面不变(`terminal` / `currentPending` 一直是可选)。
46
49
  - `client.questions` — answer a live `AskUserQuestion` (`questions.respond`).
47
50
  - `client.toolApprovals` — the engine's permission gate on a live stream: `respond` (legacy `tool_approval`
48
51
  frame) and `decideAsk` (design/172 in-stream approval protocol — **released**: the endpoint shipped in
@@ -65,6 +68,12 @@ for await (const ev of client.runs.events(task.taskId)) {
65
68
  `NotFoundError` with `errorCode: "not_found.route"`, distinguishable from every other 404 on this family and
66
69
  from the 501 `capability.rule_store_required`).
67
70
  - `client.elicitations` — answer an inbound MCP elicitation form.
71
+ - `client.principalInbox` (server >= 7.133.0) — `send({ to, content, urgent? })` drops one cross-principal letter into a same-organization recipient's inbox
72
+ (`POST /v1/principal-inbox/messages`). Gate on `capabilities.principalInboxDelivery` (off by default ⇒ the route answers 501 `capability.unavailable`);
73
+ the four refusals (`org_delivery.not_member` / `.rate_limited` / `.inbox_full` / `.recipient_tombstoned`) are a closed set (`ORG_DELIVERY_REFUSAL_CODES`) — branch on the code, never on the sentence.
74
+ Delivery half only: this release has no read-back verb. The SDK never retries it (each attempt, even a mistyped recipient, spends the sender's hourly attempt quota).
75
+ - `client.configCatalog` — `get()` reads the deployment config catalog (`GET /v1/config/catalog`, operator-only; probe `capabilities.configCatalog` first). A row whose value the caller may not see carries `effectiveValueWithheld` instead of a value.
76
+ - `client.toolApprovals.get(approvalId)` (server >= 7.133.0) — read ONE approval by id (`GET /v1/tool-approvals/:id`; the id is the 64-hex ask id the approval card carries): `state` is `pending` / `decided` / `parked` / `void`. Gate on `capabilities.toolApproval` (same gate as `respond`; off ⇒ 501 `feature.tool_approval_disabled`). `capabilities.approvalReadRootGrant` is a different bit — it says whether the respond body's `readRootGrant` is accepted.
68
77
  - `client.devices` — the **device lane admin face** (server >= 7.88.0, wire contract §14): `list` /
69
78
  `sessionBinding` / `rebind` / `issueEnrollToken` / `enroll` / `revoke`. Gate on
70
79
  `capabilities.deviceExecutor` — `false` means all six answer 501 `capability.device_lane_required`, so hide
@@ -86,17 +95,29 @@ for await (const ev of client.runs.events(task.taskId)) {
86
95
  (`"none"` means a resend is a second real delete), and do not put an automatic retry policy on it.
87
96
  - `client.workflows`, `client.fleet`, `client.models`, `client.usage`, `client.trace`, … — see the typed exports in `dist/index.d.ts` and the bundled `openapi.yaml`.
88
97
 
98
+ ### `@sema-agent/sdk/model-route-env` — the model-route environment transit
99
+
100
+ A separate subpath (**types + pure functions, zero runtime dependency**) mirroring `@sema-agent/server/model-route-env`: `MODEL_ROUTE_ENV_KEYS` (the closed set of
101
+ env names that steer model routing), `readModelRouteEnv(env)` (a pure reader: env record in, a typed `ModelRouteEnvReading` out — it never touches `process.env`),
102
+ `envLaneTable(mainId, main, cheap)` (the env leg's entry table: the main slot under `default` and its own id, plus the minted cheap slot) and `laneAndEndpointFor(env, model, routes)`
103
+ (which brain lane a model takes on a route table, and which env key *names* carry that lane's endpoint and credential — names, never values). A shell or an embedder that needs the same routing facts as the server depends on **this**, never on the
104
+ server package, and never re-types the key names; the mirror is watched by a same-source gate (exports, constants, a differential run of the reader over several hundred env
105
+ cases, the lane matrix, and the `.d.ts` type bodies) against the server's *published bytes*.
106
+
89
107
  ### `@sema-agent/sdk/device` — the executor-side protocol face
90
108
 
91
109
  A separate subpath (**Node-only** — it returns `Buffer`) mirroring `@sema-agent/server/device-protocol`: the
92
110
  closed-set vocabularies, both directions' frame types, and the two pure functions that build the bytes a device
93
111
  signs during the handshake. An executor depends on **this**, never on the server package (layering), and the
94
- mirror is watched by a five-cell same-source anchor gate against the server's *published bytes*.
112
+ mirror is watched by a same-source anchor gate against the server's *published bytes*.
95
113
 
96
114
  ```ts
97
- import { buildHelloSignaturePayload, DEVICE_WS_PATH } from "@sema-agent/sdk/device";
115
+ import { buildHelloSignaturePayload, DEVICE_PROTOCOL_VERSION, DEVICE_WS_PATH } from "@sema-agent/sdk/device";
98
116
  import { sign } from "node:crypto";
99
- const signatureB64 = sign(null, buildHelloSignaturePayload({ nonce, deviceId, epoch, protocolVersion: 1 }), privateKey).toString("base64");
117
+ // Declare the lower of "the highest revision you implement" and the revision the challenge frame carries
118
+ // (declaring 2 to a server <= 7.132.x is refused with `protocol_version_unsupported`):
119
+ const protocolVersion = Math.min(DEVICE_PROTOCOL_VERSION, challenge.protocolVersion);
120
+ const signatureB64 = sign(null, buildHelloSignaturePayload({ nonce, deviceId, epoch, protocolVersion }), privateKey).toString("base64");
100
121
  ```
101
122
 
102
123
  The byte layout is frozen across repos: getting one byte wrong makes **every** legal executor fail with
@@ -112,7 +133,183 @@ The registry's 409 carries two opposite meanings, split by one reader (`classify
112
133
  `ScopeGoneError` on the registry subpath — the target scope was deleted or re-created under the same name, nothing was
113
134
  written, **never** retry it as a conflict).
114
135
 
115
- ## 23.1.0 — 校准 + 型面 minor(对表 server **7.131.0** 发布字节〔tag v7.131.0 = 3f74460d,shasum fc5c489ebd250eda5aee5a2217bdf7f0b0c2072d〕;未发布)
136
+ ## 25.0.0 — BREAKING changes(待发包;对表 server **7.133.0** 发布字节〔tag v7.133.0 = 41b72695,shasum 9f597e10c2639804d78a5ed91bea0ee8b9d1e9a7〕与它自己解析到的引擎 core **7.53.0**)—— 唯一 server 支持底线 **`3.0.0`**(不抬)
137
+
138
+ **BREAKING 五件**(消费方 `tsc` 红即通知;前两件是输出型做宽,后三件是 `./device` 子路径的两常量改形与设置请求体的具名化收窄):① `LivePendingRow.frame` 由 `ToolApprovalFrame` 做宽成 `ToolApprovalFrame | ApprovalRequestFrame`;② `ToolApprovalRespondAck` 由「已应用 | 已回放」两臂做宽成三臂(+ `ToolApprovalRespondParkedRedeemed`);③ `DEVICE_PROTOCOL_VERSION` 型由字面量 `1` 变 `DeviceProtocolRevision`(`1 | 2`)、值 1 → 2;④ `DEVICE_OUTCOME_ERROR_CODES` 由字面量元组变 `readonly DeviceOutcomeErrorCode[]`;⑤ 设置请求体上此前经索引签名可赋 `unknown` 的六个位具名化(`SettingsHookCommand.args` / `.plugin` · `SettingsPermissions.neverAuto` · `SemaSettings` 的 `readDenyPatterns` / `writeProtectedExtra` / `complianceAdditionalDenies`),`unknown` 值不再可直接赋。其余全部加性。
139
+
140
+ **消费方**:@client-core · @cli · @web-admin(三者读这一版的新位、新帧、新口与两处改形;各自的"我读了没有"见下「升级须知」)。
141
+
142
+ **对表物**:根 devDep `@sema-agent/server` 精确钉 **7.133.0**(装树字节 = registry tarball,shasum 同上;随装 core 7.53.0、契约包 `@sema-agent/settings-schema` 14.2.0 —— 本包 devDep 同批 `^14.2.0`,装树一份);live 围栏 `CALIBRATED_SERVER_HEAD` 7.132.0 → **7.133.0**。
143
+
144
+ **律(一条)**:每个 wire 面在本包只有一处形 —— 型、随包 `openapi.yaml`、对拍钉三处读同一份 server 7.133.0 发布字节;声明型与线上形不符的格子不带进发布(前两件做宽即由此而来);老 server 的读法 = 「键缺席」,不加版本分叉臂;server 恒在场而支持地板之内的老 server 会缺的键仍是可选;闭集词座(型是闭集、随包 `openapi.yaml` 是闭枚举)的守卫读同一张导出词表判成员,集外词判否 —— 呈卡帧走通用卡、消卡帧按 `askId` 清卡;只有声明为读侧开集的词表(型带开集尾),写法才开、新词零形变。
145
+
146
+ ### 改形(BREAKING)
147
+
148
+ | # | 面 | 24.0.x | 本版 |
149
+ |---|---|---|---|
150
+ | 1 | `LivePendingRow.frame`(`GET /v1/approvals` 的 `livePending[]`、`/v1/approvals/stream` 的 `live_pending` 帧、`GET /v1/tool-approvals/:id` 的 `pending` 臂 —— 同一格同一张形) | `frame?: ToolApprovalFrame` | `frame?: ToolApprovalFrame \| ApprovalRequestFrame`,判别位 `frame.type`(`"tool_approval"` / `"approval_request"`);spec `LivePendingRow.frame` 同改成 `oneOf` 两臂 |
151
+ | 2 | `ToolApprovalRespondAck`(`client.toolApprovals.respond()` 的返回型,`POST /v1/tool-approvals/{id}/respond` 的 200) | `ToolApprovalRespondApplied \| ToolApprovalRespondReplayed`(判别位 `delivery` / `idempotent`) | 加第三臂 `ToolApprovalRespondParkedRedeemed`(判别位 `accepted: "parked_redeemed"`:卡的窗到期后转了后台候批,迟到答复**赎回**停驻卡的 200 回执,此前是 404);新守卫 `isToolApprovalParkedRedeemed`;`isToolApprovalReplayed` 不再认走「重放的赎回回执」(它同带 `accepted` 与 `idempotent: true`);spec `ToolApprovalRespondAck` 的 `oneOf` 多 `ToolApprovalRespondParkedRedeemed`(封闭,census 对这个 op 的闭合不动) |
152
+ | 3 | `@sema-agent/sdk/device` 的 `DEVICE_PROTOCOL_VERSION` | `DEVICE_PROTOCOL_VERSION = 1`(字面量型 `1`) | 型 `DeviceProtocolRevision`(`1 \| 2`),值 **2**(server ≥ 7.133.0 的修订号,受理窗 `[1, 2]`;≤ 7.132.x 的窗只有 1)。标注成字面量 `1` 编译红;无条件把它写进 hello 的 executor 对 ≤ 7.132.x 的 server 被 `protocol_version_unsupported` 拒 —— 见升级须知 4 |
153
+ | 4 | `@sema-agent/sdk/device` 的 `DEVICE_OUTCOME_ERROR_CODES` | 字面量元组(20 词:下标读出单词,`length` 是字面量 `20`) | `readonly DeviceOutcomeErrorCode[]`(= `deviceOutcomeErrorCodesAt(DEVICE_PROTOCOL_VERSION)`,当前修订号的那一份):下标读出带 `undefined` 的联合,`length` 是 `number`;按修订号取表用 `deviceOutcomeErrorCodesAt(revision)` / `DEVICE_OUTCOME_ERROR_CODES_BY_REVISION` |
154
+ | 5 | 设置请求体的六个位:`SettingsHookCommand.args` / `.plugin` · `SettingsPermissions.neverAuto` · `SemaSettings.readDenyPatterns` / `.writeProtectedExtra` / `.complianceAdditionalDenies` | 这三只接口带开放索引签名(`[k: string]: unknown`),六个键当时只能经它赋 —— 任何值(含 `unknown`)可赋 | 六个键各有具名型(`string[]` · `SettingsHookPluginContext` · `Array<string \| { pattern; caseSensitive? }>` · `Array<string \| { name; kind }>` · 合规禁项四词数组),`unknown` / 宽型的值不可直接赋,先校验再赋。**边界**:响应体 / 帧这类**消费方只读**的位上,同样的「索引签名 → 具名键」读出来是更窄的型,旧读法照编,仍按先例记加性;只有**消费方写**的位(请求体)上的收窄记 BREAKING |
155
+
156
+ ### 加
157
+
158
+ | # | 面 | 本包 | 要点 |
159
+ |---|---|---|---|
160
+ | 1 | 流内帧 `session_titled`(server ≥ 7.133.0) | `AgentEvent` 臂 `{ type, sessionId, title }`;spec `Event_session_titled` | **只活不存**:无 `eventId` ⇒ 无 `id:` 行,只在提交这条 run 的 `POST /v1/tasks/stream` 连接上;同步 JSON 与 durable 回放里没有 |
161
+ | 2 | 呈卡族消卡帧 `approval_complete` + 开卡帧十位活面事实 | `ApprovalCompleteFrame` · `APPROVAL_COMPLETE_FRAME_KEYS` · `isApprovalCompleteFrameV1` · `HITL_FRAME_TYPES` +`approval_complete` · `ApprovalRequestLiveFacts` · `APPROVAL_REQUEST_LIVE_FACT_KEYS`;`AgentEvent` 臂载荷 `ApprovalFrameEnvelope`(SSE 解析腿不跑谓词) | 一条腿一个帧族:能力位 `approvalFrameFamilies` 说这条腿的开卡 / 消卡 / 撤卡属哪一族;`approval_request` 把旧族卡外的十位事实平铺在顶层(只在活铸的帧上,重放形恒缺席) |
162
+ | 3 | 按问读口 `GET /v1/tool-approvals/:id` | `client.toolApprovals.get(approvalId)` → `ToolApprovalReadBody`(按 `state` 四臂:`pending` / `decided` / `parked` / `void`)· `TOOL_APPROVAL_READ_STATES` | 纯读、零结算;`pending` 臂 = 列表行原样 + `state`,`frame` 与 `LivePendingRow.frame` 同一张形(单源,见「改形」1);属主不过与未知 id 同形 404 `tool_approval.not_pending` |
163
+ | 4 | `livePending[].consumerState` · 三处 durable 读面的 `checkpointId` · `noteRecorded` | `LivePendingRow.consumerState?: "absent"` · `PendingCheckpoint.checkpointId?` / `InboxRow.checkpointId?` · durable 决断口回执 `noteRecorded?` | 都只记真 / 读不出的老行键缺席;`consumerState: "absent"` = 本副本没有在等这只问的引擎腿 |
164
+ | 5 | 审批流读失败帧 | `APPROVALS_STREAM_READ_ERROR_CODES`(`approvals.read_unavailable` · `approvals.read_corrupt`)· `isTerminalFrame` | `read_unavailable` 是**建议帧**(流留着,**别据它重连**);`read_corrupt` 之后流结束 |
165
+ | 6 | 能力位 | `approvalFrameFamilies` · `approvalReadRootGrant` · `mcpAssertionHeaderSent` · `principalInboxDelivery` · `taskSettings.tightenOnlySeats` / `managedHookGroups` / `pluginHooks` · `settings.permissions.callerTrust`(`global` / `project`,开集读)· `deviceExecutor.protocolVersion` 值 2 | 全部见位才用;`callerTrust` 是**按调用方读的档**,不是版本位 |
166
+ | 7 | 场景与读面 | `KNOWN_SCENARIOS` +`cowork` · `ScenarioDetail.attachmentSupplies` · `PostureSource` +`lane` | 老 server 对 `cowork` 答 400 `scenario_unknown` —— 按 `capabilities.scenarios`(活词表)门控,别按 `KNOWN_SCENARIOS` |
167
+ | 8 | `wiring_manifest.permissionMode` | `WiringManifestPermissionMode { requested?, effective, foldedBy? }` · `PermissionModeFoldReason`(开集)· spec `Event_wiring_manifest` 加可选键 | 段缺席 = 老引擎 / 老 server;**按旧封闭 schema 严格校验帧的消费方,升级本包后才收得下这一键** |
168
+ | 9 | `hook_notice` 第三 / 四族与新词 | `FleetHookManagedUnrun`(十三词 `reason`)· `FleetHookVerdictUntrusted`(`input_truncated` / `matcher_over_budget`)· `FleetHookNonBlockingFailure.reason` +`matcher_over_budget` | 读侧开集;`FleetHookNotice` 联合从两族长到四族 |
169
+ | 10 | 请求 `settings.hooks[]` 新键与只收紧座位 | `SettingsHookGroupSource` · `SettingsHookPluginContext` · `SemaSettings` 的 `readDenyPatterns` / `writeProtectedExtra` / `complianceAdditionalDenies` / `permissions.neverAuto` | 见位才发(`taskSettings.*` 三位);位缺席 = 老 server 静默剥掉 / 对只收紧四键答 400 |
170
+ | 11 | `/health.centerIdentityNotice` | `CenterIdentityNotice`(`code` · `message` · `at` · `retained?`)· `CenterIdentityNoticeCode`(开集)· `CenterIdentityRetainedGroup` | 最近一条,不是事件日志;按 `at` 判"这条转述过没有";从未换过人 ⇒ 键缺席 |
171
+ | 12 | 配置目录面 | `client.configCatalog.get()` → `ConfigCatalog`(`rows` · `retired` · `centerDomains` …)· `ConfigCatalogRow.effectiveValueWithheld?: true` | operator-only;url 型行带凭据形被判 fail-closed 时值已是脱敏文,该位为真(只在真时出现) |
172
+ | 13 | `/v1/models` 的 `modelPlane` | `ModelPlane { servedTable, catalog, refusalCode?, gap? }`;`ModelsResponse.modelPlane?` | 服务哪张表 / 目录采纳态 / 路由缺口;恒在场(老 server 缺) |
173
+ | 14 | MCP 状态面逐台工具名 | `McpProbeFaceRow`(= 清单行 + `toolNames?` + `toolNamesTruncated?: true`)· `McpProbeFace.servers: McpProbeFaceRow[]` | 至多 200 个,恰 200 不截;缺席 = 老 server 或该台读数里没有名单,**不编 `[]`** |
174
+ | 15 | 会话视图 `agent` | `SessionAgent { id?, parentSessionId?, rootSessionId? }` · `SessionRecord.agent?` | 只投存下的 placement 元组;**缺席 ≠ 不是子代**(老 server 同缺) |
175
+ | 16 | 跨主体投递 | `client.principalInbox.send({ to, content, urgent? })` · `ORG_DELIVERY_REFUSAL_CODES`(四码)· `ORG_DELIVERY_REFUSAL_STATUS` · `isOrgDeliveryRefusal` | 默认关(501 `capability.unavailable`),先探 `principalInboxDelivery`;**本版只有投递半场,没有读走的 verb**;SDK 不自动重试 |
176
+ | 17 | 拒体机读位 | `INVALID_JSON_REASONS` / `InvalidJsonRefusalExtra`(`request.invalid_json`)· `RequestFieldRefusalReason` +`too_large`(413)· `FIELD_CONFLICT_KINDS` / `FieldConflictRefusalExtra`(`request.field_conflict`)· `EntryProblem` / `EntryProblemsRefusalExtra` / `SERVER_ENTRY_PROBLEM_REASONS` · `BelowTrustFloorExtra` · `conflict.session_placed`(409,`detail.placement_kind`) | 值都经 `APIError.extra` 原样到达;句子不锚,只锚码与键 |
177
+ | 18 | 受理告知 `warnings[]` | `RunReceipt.warnings?` · `TaskResult.warnings?` · `meta` 帧 `warnings?` | 放行侧选择器清单的受理告知;键缺席 = 没有告知 |
178
+ | 19 | 收编回执 | `AdoptionNotMigratedFace` +`org-delivery-quota` | `legs[].store` 的 `workflow_journal#scope` **换名** `workflow_journal_owner#scope`:按旧名对账的消费端要改 |
179
+ | 20 | device 协议修订号 2 | `DEVICE_PROTOCOL_VERSION` = 2(型 `DeviceProtocolRevision` = 1 \| 2;**值 1 → 2,`DEVICE_OUTCOME_ERROR_CODES` 由字面量元组变 `readonly DeviceOutcomeErrorCode[]` —— 都是 server 自己的形,见「升级须知」4**)· `deviceOutcomeErrorCodesAt(revision)` · `DEVICE_OUTCOME_ERROR_CODES_BY_REVISION` · `DEVICE_HELLO_ACK_BOUNDS` · `deviceHelloAckNumberFlaw` | server 受理窗 `[1, 2]`,修订号 2 起结局码含 `liveness_no_output`;握手照文档取 `Math.min(DEVICE_PROTOCOL_VERSION, challenge.protocolVersion)` |
180
+ | 21 | 子路径 `@sema-agent/sdk/model-route-env` | `MODEL_ROUTE_ENV_KEYS` · `readModelRouteEnv` · `envLaneTable` · `laneAndEndpointFor` + 七个型 | 对 `@sema-agent/server/model-route-env` 的镜像,**零运行时依赖**,同源锚门读 server 发布字节 |
181
+ | 22 | 回执 / 拒体 / 流事件上新声明的可选键 | `ToolApprovalRespondReplayed.noteRecorded` / `rulePersisted` / `ruleRefusal`(晚答回放体)· `AskDecisionAck.consumerState` 与 `ToolApprovalRespondApplied.consumerState`(应答回执同带「本副本没有引擎腿在等」位,不只列表行)· `PayloadWallRefusalExtra.field` / `reason` / `count` / `cap`(413 的统一撞帽机读位)· `ApprovalStreamEvent.errorCode` / `message`(审批流 `error` 帧此前只能经索引签名读成 `unknown`) | 都是 server ≥ 7.133.0 才发的可选键,老 server 缺席;全部随包 spec 同改 |
182
+ | 23 | 读根候选的 `covers` · 非人结局成因词表 · 按问读口的路径键 | `ToolApprovalFrame["readRootCandidate"]` 的 `covers?: "exact"`(型与随包 spec 同改,呈卡帧读同一处定义;7.133.0 发布字节的铸点把它逐键带出)· `APPROVAL_SETTLE_CAUSES`(导出常量,十四词;`ApprovalSettleCause` 由它派生,`isApprovalCompleteFrameV1` 读它)· spec 路径键 `GET /v1/tool-approvals/{id}`(随答复口与 server 路由标签,同一个 id 一个名字) | `covers` 缺席 = 目录(或老 server),`"exact"` = 命令点名的那一条路径本身 —— **加的是这个串本身**,别渲成「加目录」;`ToolApprovalRespondParkedRedeemed` 是封闭 interface,与两兄弟臂同形(本臂本版才有,不是收窄) |
183
+
184
+ ### 🔴 迁移表(24.0.x 的写法 → 本版 → 怎么改)
185
+
186
+ | # | 24.0.x 的写法 | 本版 | 怎么改 |
187
+ |---|---|---|---|
188
+ | 1 | 读 `LivePendingRow.frame`:`row.frame?.toolName` / `.args` / `.askClass` 等当旧族帧成员读 | 联合上读出 `unknown`(呈卡形走索引签名),标注旧型(`const n: string \| undefined = row.frame?.toolName`)编译红 | 先 `SDK.isApprovalRequestFrameV1(row.frame)`(或判 `frame.type === "approval_request"`):是 ⇒ 卡内事实读 `frame.card.toolName` / `frame.card.args`,卡外十位活面事实在顶层;否则按旧族帧读(再判 `frame.type === "tool_approval"`) |
189
+ | 2 | `const f: ToolApprovalFrame \| undefined = row.frame` / 返回型写 `ToolApprovalFrame \| undefined` | 编译红(联合不可赋给旧单型) | 标注成 `ToolApprovalFrame \| ApprovalRequestFrame \| undefined`,或先窄化 |
190
+ | 3 | `const ack = await respond(…); if (isToolApprovalReplayed(ack)) … else ack.delivery`(「不是回放就是已应用」两步法) | `else` 支是 `Applied \| ParkedRedeemed`,`ack.delivery` 不再是 `"applied"`(赎回回执没有 `delivery`)—— 运行期会把赎回回执误读成已应用 | 新顺序:`isToolApprovalParkedRedeemed(ack)` → `isToolApprovalReplayed(ack)` → 其余才是已应用(`ack.delivery === "applied"` 确认);赎回回执读 `status` / `taskId` / `sessionId`(赎回腿的回执原样)与 `rulePersisted` 一族。**注**:行在 `PARKING`(正在转后台候批)时 server 答 **202** `{ reason: "parking_in_progress", retryAfterMs, decidePath? }`——这是 7.122.0 起就有、本包**至今没声明**的未应用回执(两个守卫都不认它),按 `reason` 读、稍后重试或走 `decidePath`;已登记为既有缺口,不在本版 |
191
+ | 4 | 把 `respond()` 的返回值标注 / 包装成 `ToolApprovalRespondApplied \| ToolApprovalRespondReplayed` | 编译红 | 标注 `ToolApprovalRespondAck` 或先窄化 |
192
+ | 5 | `const v: 1 = DEVICE_PROTOCOL_VERSION`;`buildHelloSignaturePayload({ …, protocolVersion: DEVICE_PROTOCOL_VERSION })` 无条件把本常量写进 hello(24.0.x 里它就是 1) | 型 `1 \| 2`、值 2:标注字面量 `1` 编译红;无条件声明 2 的 hello 对 ≤ 7.132.x 的 server 被 `protocol_version_unsupported` 拒 | 握手取 `Math.min(DEVICE_PROTOCOL_VERSION, challenge.protocolVersion)`(server 的 challenge 回它自己的号);要钉死老行为就发 `DEVICE_MIN_PROTOCOL_VERSION`;按修订号取结局码表用 `deviceOutcomeErrorCodesAt(revision)` |
193
+ | 6 | `DEVICE_OUTCOME_ERROR_CODES[0]` 当单词用(`const c: "aborted" = …`)· `DEVICE_OUTCOME_ERROR_CODES.length` 当字面量 `20` 用 | 数组型:下标读出 `DeviceOutcomeErrorCode \| undefined`,`length` 是 `number` —— 标注字面量编译红 | 判成员用 `DEVICE_OUTCOME_ERROR_CODES.includes(code)`;要固定一份用 `deviceOutcomeErrorCodesAt(revision)`;不要对下标 / 长度做字面量断言 |
194
+ | 7 | `const cmd: SettingsHookCommand = { type: "command", command, args }`(`args: unknown`)· `{ plugin }` · `SettingsPermissions` 的 `neverAuto` · `SemaSettings` 的三键,手上的值是 `unknown` / 宽型 | 编译红(具名型:`string[]` · `SettingsHookPluginContext` · `Array<…>`) | 先校验再赋:`Array.isArray(v) && v.every((x) => typeof x === "string")` 之类窄化成具名型后再放进去;值本来就是字面量的代码不用改 |
195
+
196
+ 反向钉:`test/breaking-25.0.0-widening.test.ts`(`@ts-expect-error` 证旧写法不再编译;运行期证 SDK 没留兼容兜底:呈卡帧原样递出、赎回回执不合成 `delivery`)。
197
+
198
+ ### 🔴 升级须知(三问;行为面)
199
+
200
+ 1. **`LivePendingRow.frame` 在呈卡腿上不再是旧族帧(server ≥ 7.133.0)**。① *谁受影响*:读 `livePending[].frame` 的壳(@client-core 的审批队列、@cli 的审批卡、@web-admin 的待办列表)。② *不改会怎样*:server 的呈卡腿(`capabilities.approvalFrameFamilies` 含 `"approval_request"`)上这一格是 `approval_request` 帧,直接读旧键(`toolName` / `args`)得到 `undefined`、tsc 在标注处红。③ *怎么改*:见迁移表 1 / 2;补偿旋钮 = server 的 `STREAM_APPROVAL_ENABLED=false` 回到旧族腿。
201
+ 2. **`respond()` 的 200 多一臂(迟到答复赎回停驻卡)**。① *谁受影响*:`client.toolApprovals.respond()` 的调用方(审批卡的 Yes / No 按钮处理)。② *不改会怎样*:卡的窗到期、行转了后台候批之后的迟到答复,server ≥ 7.133.0 不再答 404 而是 200 `accepted: "parked_redeemed"`;「不是回放就是已应用」的两步法会把它读成已应用(没有 `delivery`)。③ *怎么改*:见迁移表 3。
202
+ 3. **审批流读失败帧**。① *谁受影响*:`approvals.stream()` 的读循环。② *不改会怎样*:server ≥ 7.133.0 在读失败时发 `event: error` + `approvals.read_unavailable` 而**流留着** —— 把"任何 `error` 帧都是终帧"的循环会在这里断流重连。③ *怎么改*:本包的 `isTerminalFrame` 已把这一码排除在终帧之外(`read_corrupt` 与其余 `error` 仍是终帧);自写循环的,按 `errorCode` 判,别按事件名。
203
+ 4. **device 协议修订号 1 → 2,`DEVICE_OUTCOME_ERROR_CODES` 变 `readonly DeviceOutcomeErrorCode[]`**。① *谁受影响*:拿 `DEVICE_PROTOCOL_VERSION` 当 hello 声明号的 executor;对该常量做元组下标 / 长度字面量类型的代码。② *不改会怎样*:对 server ≤ 7.132.x(受理窗只有 1)发修订号 2 ⇒ 握手被 `protocol_version_unsupported` 拒;元组下标类型读出的是联合而不是单词。③ *怎么改*:握手取 `Math.min(DEVICE_PROTOCOL_VERSION, challenge.protocolVersion)`(server 的 challenge 回它自己的号);要钉死老行为就发 `DEVICE_MIN_PROTOCOL_VERSION`。两处都是 server 发布字节的原形(同源锚门逐常量 / 逐型声明体强制)。
204
+ 5. **`wiring_manifest.permissionMode`(新可选键)**:按 sdk ≤ 24.0.x 的封闭 spec 严格校验 `wiring_manifest` 帧的消费方,对 server ≥ 7.133.0 的整帧失败 —— 升到本包(25.0.0)或对这一段放宽未知键。
205
+ 6. **读侧开集**。新增的 `reason` / `code` 词表(hook 第三四族、`centerIdentityNotice.code`、`callerTrust`、`PermissionModeFoldReason`)读侧都是开集:不认识的词按"有变动 / 原因未知"渲,别丢记录、别抛。
206
+ 7. **设置请求体的六个位不再接 `unknown`**(`SettingsHookCommand.args` / `.plugin` · `SettingsPermissions.neverAuto` · `SemaSettings.readDenyPatterns` / `.writeProtectedExtra` / `.complianceAdditionalDenies`)。① *谁受影响*:把外来配置(磁盘 JSON、前端表单、`unknown` 值的适配层)往这三只接口里装的代码。② *不改会怎样*:`tsc` 红(此前这些键只能经索引签名赋,任何值都过;现在是具名型)。③ *怎么改*:见迁移表 7 —— 先校验再赋;值本来就是字面量的代码不用动。运行期零变化(server 的受理门照旧,形错照旧 400)。
207
+
208
+ ### 会让消费端穷举 `switch` 编译变红的加员(按先例记加性;逐项列出,每条一句「消费端补一条 case」)
209
+
210
+ - **`AgentEvent` +2 臂**(`approval_complete` · `session_titled`;`StampedAgentEvent["type"]` 同长,`HitlFrameType` / `HITL_FRAME_TYPES` +`approval_complete`):对 `AgentEvent` 做 `assertNever` 穷举的流分派,补两条 `case`(`session_titled` 渲标题;`approval_complete` 按 `askId` 清卡),或让未知帧走通用臂;按 `HitlFrameType` 穷举的帧分派表补一条 `approval_complete`。
211
+ - **`FleetHookNotice` +2 族**(`hook_managed_unrun` · `hook_verdict_untrusted`):对 `kind` 穷举的 hook 观测帧渲染,补两条 `case`。
212
+ - **`RequestFieldRefusalReason` +`too_large`**(闭集 3 → 4 词,字节量纲,只在 413 上):对 `reason` 穷举的拒体渲染,补一条 `case`。
213
+ - **`SettingsHooksRefusalDetail` +`wire_key_invalid`**(请求 `settings.hooks[]` 的 `source` / `plugin` / `args` 键形错):对 `detail.reason` 穷举的 `settings.hooks` 拒渲染,补一条 `case`。
214
+ - **`AdoptionNotMigratedFace` +`org-delivery-quota` · `permission-rule-approval-history` · `permission-rule-import-ticket`**(后两个是 server 早已在发、本包此前漏声明的词,本版一并补齐):对收编回执 `face` 穷举的渲染(`AdoptionNotMigrated.face` 同),补三条 `case`;`legs[].store` 的 `workflow_journal#scope` 换名 `workflow_journal_owner#scope`,按旧名对账的消费端要改。
215
+ - **`KNOWN_SCENARIOS` +`cowork`**(四名 → 五名):对该元组做穷举 / 生成表的消费端,补一条;老 server 对 `cowork` 答 400 `scenario_unknown`,按 `capabilities.scenarios`(活词表)门控。
216
+
217
+ ### 七红项(门 6 在 server 7.133.0 发布字节上的七格,本版转绿)
218
+
219
+ | # | 文件 / 格 | 红 | 本版 |
220
+ |---|---|---|---|
221
+ | 1–3 | `live/device-protocol-mirror` 格①②⑤ | server 多四名(`DEVICE_OUTCOME_ERROR_CODES_BY_REVISION` / `deviceOutcomeErrorCodesAt` / `DEVICE_HELLO_ACK_BOUNDS` / `deviceHelloAckNumberFlaw`),`DEVICE_PROTOCOL_VERSION` 1 → 2、结局码按修订号分行 | `./device` 子路径镜像照 server 同形(见升级须知 4) |
222
+ | 4 | `live/error-tariff-bare` | 坏 JSON 体 `request.rejected → 400` 变 `request.invalid_json` | 表行换码 + 读 `err.extra.reason` |
223
+ | 5 | `live/fence-calibration` | 校准 head 落后 | 7.132.0 → 7.133.0 |
224
+ | 6–7 | `live/server-7117-faces`(`settings.permissions` 的单用户 / 多租两形) | `settings.permissions` 多 `callerTrust`(按调用方读) | 钉按 `permissionsAt("global")` 读 |
225
+
226
+ ### 其他随版项
227
+
228
+ - 新子路径 `@sema-agent/sdk/model-route-env`(对 `@sema-agent/server/model-route-env` 的镜像,零运行时依赖;同源锚门读 server 发布字节,含导出名 / 常量 / 差分 / 型声明体 / 函数签名)。
229
+ - 会话视图 `agent { id?, parentSessionId?, rootSessionId? }`:**缺席 ≠ 不是子代**(老 server 同缺)。
230
+ - `isApprovalRequestFrameV1` 现在校验**在场的**十位活面事实(`mandated` / `mandate` / `origin` / `boundGrantDigest` / `boundGrants` / `classifierNoRuling` / `boundGrantAbsence` / `approvalCard` / `readRootCandidate` / `probeReason`):形错 ⇒ 判否(走通用卡),缺席仍合法;**键在场而值是显式 `undefined` 也算形错**(它是在场的一个非法值,不是缺席 —— 与 `exactOptionalPropertyTypes` 下可选位不收 `undefined` 的型同向)。其中**闭集词座**(`mandate` / `classifierNoRuling` / `boundGrantAbsence` / `approvalCard`)按各自词表数组判成员(`PERSISTED_RULE_MANDATES` / `AUTO_MODE_FALLBACK_CAUSES` / `BOUND_GRANT_ABSENCES` / `TOOL_APPROVAL_CARD_WORDS`;型是闭集、随包 spec 是闭枚举,守卫不比它们宽),`readRootCandidate.covers` 在场必须是新导出词表 `READ_ROOT_COVERS`(今天一词 `"exact"`;server 铸点与引擎类型里的词变了,同源锚当场红)的成员;`origin` 是开集,只判串。`isApprovalCompleteFrameV1` 的 `cause` 同理按新导出的 `APPROVAL_SETTLE_CAUSES`(十四词,词与序逐位同 server 与 spec 枚举)判成员。*谁受影响*:自己拼帧喂守卫的代码,与比本包新的 server(引擎加了词、本包还没跟)—— 集外词判否:呈卡帧走通用卡,消卡帧按 `askId` 清卡、别猜结局。*补偿*:升到跟上那一版的本包(同源锚逼着词表与 spec 同批加员);server 铸出的合规帧不受影响。**守卫收紧**:三只窄化谓词(`isApprovalRequestFrameV1` / `isApprovalCompleteFrameV1` / `isApprovalRevokeFrameV1`)对**它们判得了形的**可选位同读「缺席合法、在场必须成形」—— 整张卡(风险两轴 / 委派 / 规则候选与 offer / 规则证据 / 探测成因 / 拒次兜底 / `argsOmitted` 等真值位)、十位活面事实、消卡帧的 `cause` / `parked`、撤卡帧的 `taskId` —— 一只内部判成函数,所以显式 `undefined` 在这些位上一律判否(此前当缺席放行)。**例外(既有盲区,本版不动)**:卡上的 `governanceForced` / `rememberRefused` / `askClass` / `classes` / `classifierUnavailable` 五位本来就不进谓词,在场时任何值(含 `undefined`)都过。*谁受影响*:自己拼帧、把「没有」写成 `key: undefined` 的代码(`JSON.parse` 出来的帧没有 `undefined` 值,server 帧不受影响);*补偿*:把「没有」写成键缺席(不写该键,或 `delete`)。
231
+ - `ApprovalRequestFrame` 现在 `extends ApprovalRequestLiveFacts`(与 server 自己的形一致):十位活面事实只在座型上声明一次;在 `exactOptionalPropertyTypes` 下这十位不收显式 `undefined`(从 JSON 解出来的帧本来就没有这种值;自己拼帧的代码把「没有」写成缺席而不是 `undefined`)。**型收紧还有一处**:`ApprovalCard.ruleEvidence` 改用 `NonNullable<ToolApprovalFrame["ruleEvidence"]>` 取型(此前的索引取型把 `undefined` 带进了这个可选位),所以 `exactOptionalPropertyTypes` 下写显式 `undefined` 的卡字面量(例如 `{ …, ruleEvidence: frame.ruleEvidence }`,而源位可缺)现在是 TS2375,v24 编得过。*谁受影响*:开该旗、自己拼卡或拷卡的代码(`JSON.parse` 出来的卡没有这种值,不受影响);*补偿*:省略该键(源位缺席时不写 `ruleEvidence`)。
232
+ - 计划门(`plan_review`)停住帧的注更正:第一次停住就落 `needs_review` 臂(无 `toolCallId`),与 `suspended` 不相交(型不动)。
233
+ - `ApprovalStaleError` 的类注改成「一码两因」:有 `terminal` = 终局,重拉;无 `terminal` 且有 `currentPending` = 绑定旧了,用 `currentPending` 一跳重决;只有 `boundInputHash` 错才落 core 的裸 409 `approval_binding_mismatch`(型不动)。
234
+
235
+ ### 没有型面动作的 7.133.0 变化(只写进注)
236
+
237
+ - `approvalId` 对有行的 ask 恒等于行键 `askId`(64 位十六进制串)—— 当不透明串用,不要解析。
238
+ - 读口行为(黑盒可见,型不变):坏 JSON 体恒答 400 `request.invalid_json`(原 `request.rejected`)、读体超 8 MiB 恒答 413 `request.payload_too_large`(`reason: "too_large"`);匿名任务列表对不带主体的调用方列属主为空的 run。
239
+
240
+ ### 钉
241
+
242
+ `test/breaking-25.0.0-widening.test.ts`(反向钉)· `test/server-7133-wire.test.ts`(发布字节一族读 server 7.133.0 的真铸点:`buildSessionTitledFrame` / `buildApprovalCompleteFrame` / `buildApprovalRequestFrame` / `hookNoticeWire` / `wiringManifestEventData` / `buildConfigCatalog` / `buildBoundedToolNames` / `sessionAgentOf` / `handlePrincipalInbox` / `sessionErrorHttp` / `fieldConflictFacts` / `handleCapabilities` / **真 `ToolApprovalCoordinator` 的赎回回执**;server 自铸词表 `SELF_MINTED_WIRE` 里"带 7.133.0 成员的表名清单"本身也钉住 —— server 再多一张表,这里先红)·
243
+ `test/stream-approval-protocol.test.ts`(十位活面事实座:键清单 ≡ `keyof` 座型 ≡ 两个 interface 与 spec 的具名成员、逐位型一致)·
244
+ `test/server-7133-wire.test.ts` 里读根候选 `covers` 的真铸点格、闭集词座「守卫 ≡ spec」格、`respond()` 三臂同形(封闭)格、BREAKING 件数与迁移表 / 反向钉对账格、文字对表格;
245
+ live `test/live/model-route-env-mirror.test.ts` · `device-protocol-mirror` / `error-tariff-bare` / `server-7117-faces` / `fence-calibration`(对 7.133.0 发布字节重新校准)。
246
+ 被抬动的历史钉按真相翻面(`🔁 25.0.0` 标注):`server-7106` J3 / J4 · `server-7109` A6(`live.frame` 先按 `frame.type` 窄化)· `server-7113` S3 · `server-7114` H3b · `server-7115` A5 / C3 / M4 · `server-7116` O1 / O2 · `server-7117` S2 / C1 / C2 / M1 · `server-7118` M2 · `server-7124` T8 · `server-7126` X2 / B12 · `server-7132` T4 · `tool-approvals` #154 + `applied()` 辅助 · `s185` G7b。
247
+
248
+ ### 未闭环(显式列出)
249
+
250
+ - `McpServerSpec.source`(请求体 `mcpServers[i].source`)今天在 server 上是自由展示标签,不是契约附录里的闭集 —— 型面等闭集随 server 后续版本到货时同拍加(`test/server-7133-wire.test.ts` S5 的缺席钉到时翻正向)。
251
+
252
+ ## 24.0.0 — BREAKING changes(对表 server **7.132.0** 发布字节〔tag v7.132.0 = 5df75153,shasum 7f951ca5784ec3e3172e4338f5a98085384a116a,4252855 字节〕与它自己解析到的引擎 core **7.53.0**)—— 唯一 server 支持底线 **`3.0.0`**(不抬)
253
+
254
+ **对表物**:根 devDep `@sema-agent/server` 精确钉 **7.132.0**(装树字节 = registry tarball,shasum 同上;随装 core 7.53.0、契约包 `@sema-agent/settings-schema` 14.0.0 —— 本包 devDep 同批 `^14.0.0`,装树一份);live 围栏 `CALIBRATED_SERVER_HEAD` 7.131.0 → **7.132.0**。
255
+
256
+ **律(一条)**:每个 wire 面在本包只有一处形 —— 型、随包 `openapi.yaml`、对拍钉三处读同一份 server 7.132.0 发布字节;老 server 的读法 = 「键缺席」,不加版本分叉臂;server 恒在场而支持地板之内的老 server 会缺的键仍是可选(`gateKind` 同 `blockedBy` 一条律:地板抬过那一版才改必有);退役的键 / 形整删、零别名 —— 唯一例外是 server 自己仍原样交出的**存下的旧行**(`prompt_assembled` v2 行),按 server 契约的唯一判别(`constitution` 在场)给一只不透明臂。
257
+
258
+ ### 删 / 改形(BREAKING)
259
+
260
+ | # | 面 | 23.1.x | 本版 |
261
+ |---|---|---|---|
262
+ | 1 | `wiring_manifest` 的钩子席位名册(live 帧与 `GET /v1/diagnostics/wiring` 静态面) | `hooks?: WiringManifestHookEntry[]`(`{ family, owner, observational? }`) | **删,零别名**;接替 = `mods?: WiringManifestModEntry[]`(mods 准入记录,一张注册一行):挂上形 `WiringManifestModMounted { name, seat, tier, events, observe?, skipped? }` / 被拒形 `WiringManifestModRefused { name, seat, tier, refusedBy, reason }`,按 `"refusedBy" in row` 判 |
263
+ | 2 | 提示清单 `PromptManifest`(账本 `prompt_assembled` / turns `prompt-assembled` 块 / trace `prompt-assembled` 帧) | v2:`constitution`(必有)/ `blocks` / `sections[]{ slot, carrier, cadence, cacheClass, hash }` / `tools?` / `totalChars` + 索引签名 | **v3**(每个成员都可缺席,封闭):`identity { artifact, layers, epoch, activatedBy }` / `selectors { binding?, traits, host, facts }` / `blocks` / `sections[]{ id, band, rank, variant?, renderer?, chars, locale, contentHash, chain }` / `superseded?` / `tools?` / `toolDisclosure?` / `totalChars`;三个出口的型 = `PromptManifestRow` = `PromptManifest | PromptManifestRetiredRow`(≤ 7.131.x 写下的旧行,带 `constitution`) |
264
+ | 3 | `GET /v1/sessions/:id` 的 `promptEpoch` | `{ epoch, artifactDigest, packId, assemblyApi, activatedBy }` | 引擎 `StoredPromptEpoch` 读数原样:`{ kind: "pin", descriptor: PromptEpochDescriptor }` / `{ kind: "legacy", centerPinned }`;`descriptor.activatedBy` / `changed[]` 是闭集 `PromptEpochActivation` / `PromptEpochChange`(引擎判成员,集外词的记录读不成 `pin`) |
265
+ | 4 | `McpStatusPanel`(`GET /v1/sessions/:id/mcp`) | 一只 interface,`servers` 必有 + 索引签名 | **两臂恰一**:`McpStatusPanelServed { asOf, servers, degraded?, lastLegMcp? }` / `McpStatusPanelRefused { asOf, scenarioRefusal, lastLegMcp? }`(server ≥ 7.131.0 场景门拒);两臂互把对方的键声明成 `?: undefined`,无索引签名(spec 封闭 + `oneOf`) |
266
+ | 5 | APIError / ControlError / RegistryApiError 族的 `err.name` | 构造器读 `new.target.name`(压缩 / 跨 bundle 后读到的是被改写的类名) | 每个错误类一处字面类名(`override name = "<类名>"`);行为:`err.name` 与打包无关恒等于类名(依赖 `err.name` 等于压缩名的代码会变) |
267
+
268
+ ### 加
269
+
270
+ | # | 面 | 本包 | 要点 |
271
+ |---|---|---|---|
272
+ | 1 | 压缩开始帧 `compaction_started`(server ≥ 7.132.0 / core 7.53.0) | `AgentEvent` 臂 `{ type: "compaction_started", trigger, pass, startedAt } & EventIdentity`;`compacted.pass?` / `compaction_outcome.pass?`;spec `Event_compaction_started` | 先于摘要调用宣告;恰一帧结束同一个 `pass`(`compacted` 落地 / `compaction_outcome{failed\|mooted}` 没落地);按 `pass` 配对,别按「下一只 `compacted`」收 |
273
+ | 2 | `engine_notice` 三条新码(D.3 38 → 41) | `SessionRulesEarlierGrammarDetail` · `ModsRegistrationRefusedDetail` · `RouteCredentialOriginMismatchDetail` | `config.session_rules_earlier_grammar` / `mods.registration_refused` / `route.credential_origin_mismatch`;`permission.rule_row_dropped` 的 `rows[].rule` 改原串(控制字符作数据随行,渲染端中和) |
274
+ | 3 | 续跑 409 体三判别位 | `ResumeRefusalExtra { blockedBy?, field?, reason? }`(经 `err.extra`) | 引擎拒的续跑原样过境;`field` 多 `deps`;`retriable: true` 在场 ⇔ 卡仍 pending(`resume_blocked_by_policy` 同带;终态 run 的 steer 在铸卡前拒不带) |
275
+ | 4 | 400 拒体机读位 | `RequestFieldRefusalExtra { field?, reason?: "over_cap"\|"too_long"\|"bad_entry", count?, cap?, index? }` · `SettingsHooksRefusalDetail`(按 `reason` 分形;server ≥ 7.132.0 恒带 `path`,地板内老形照收:7.126.0–7.131.x 的 matcher 三形无 `path`、7.115.0–7.125.x 的 `{ event, alias, canonical }` 无 `reason`)· `SETTINGS_HOOKS_PIECE_CODES` · `UserAttachmentRefusalExtra { detail?: { path, index? } }` | 撞帽位扩到全部工具名清单 / 子代定义 / 两张宿主路径清单;`settings.hooks` 每一只拒都带对象形 `detail`(matcher 第四形 `budget_exceeded`) |
276
+ | 5 | 413 `wallSource` | `SqlWallSource`(`reported` / `assumed`)· `PayloadWallRefusalExtra` · `BlobSqlCapSource`(+`operator`)· `BlobTooLargeForSqlExtra` | 提交口两词、blob 口三词;`putBlob` 注订正(体上从来没有 `sizeBytes` / `limit`) |
277
+ | 6 | 引擎能力词第二词 | `ENGINE_CAPABILITY_WORDS` +`inherit_env.own_credential_values_withheld` ⇒ `Capabilities[...]?: boolean` | **事实位,可为 `false`**;缺席 = 老 server(只按名扣) |
278
+ | 7 | 闭集补员 | `RESUME_STARTUP_CAUSES` +`transcript_corrupt` · `RoutePairingStatus` +`broken:credential_origin_mismatch` / `broken:credential_answer_conflict` · `BrainStatusPhase` +`waiting_first_token` · `BrainRetryErrClass` +`stall` · `DEVICE_OUTCOME_ERROR_CODES` +`liveness_no_output` | 词表对引擎 / server 真表钉等值;对这些型做 `Record<…>` 穷举的消费端编译红,补一行 |
279
+ | 8 | `human_input.attachments`(server ≥ 7.131.0) | `HumanInputAttachmentOutcome { ordinal, kind?, outcome, label }` | 请求层附件的准入结局;送话口带 `userAttachments` ⇒ 400 `request.body_shape`(同一包里「≥ 7.127.0 不受理」与「≥ 7.131.0 受理」两说收成一说) |
280
+ | 9 | `McpStatusPanelRefused.scenarioRefusal`(server ≥ 7.131.0) | `McpPanelScenarioRefusal { errorCode, error, detail?: { scenario, source } }` | 判别读一句 `panel.scenarioRefusal === undefined` |
281
+ | 10 | `McpServerSpec.startupTimeoutMs?`(server ≥ 7.132.0 受理键) | 型 + spec | 值形判官只在引擎(坏值只拒那一台);`allowTools` 三句语义成文(缺席 = 全挂 / `[]` = 一只不挂、不折成缺席 / 没列出的名静默不匹配) |
282
+ | 11 | 流内 HITL 帧名闭集 | `HITL_FRAME_TYPES`(九词)· `HitlFrameType` | 消费方的帧分派表读它;各帧型的 `type` 由它派生 |
283
+
284
+ ### 🔴 迁移表(23.1.x 的写法 → 本版 → 怎么改)
285
+
286
+ | # | 23.1.x 的写法 | 本版 | 怎么改 |
287
+ |---|---|---|---|
288
+ | 1 | `manifest.hooks` / `WiringManifestHookEntry` | 型上没有(tsc 红);server ≥ 7.132.0 也不再发 | 读 `manifest.mods`:`"refusedBy" in row` ⇒ 被拒的注册(`refusedBy` / `reason` 是注册方的串,UNTRUSTED-for-display);否则挂上的注册(`events` / `observe?` / `skipped?`)。本服务每条腿恒有 `server.permission-denied-meter` 一行;请求的 `settings.hooks` 是任务座注册 `settings.hooks` |
289
+ | 2 | `ev.constitution` / `section.slot` / `section.hash` | 型上没有 | 先 `"constitution" in row` 分出旧行(只当不透明数据);v3 行读 `identity.artifact`(这条腿跑的是哪一份提示的唯一读法)、`section.band` / `section.contentHash`;每个成员都可能缺席 |
290
+ | 3 | `session.promptEpoch.epoch` / `.artifactDigest` | 两臂判别 | `e.kind === "pin" ? e.descriptor.epoch : …`;`legacy` 臂只有 `centerPinned`(下一跑换成 v3 记录) |
291
+ | 4 | `panel.servers.map(…)` / `panel.someKey`(经索引签名) | 两臂;拒臂上 `servers` 是 `undefined` | `if (panel.scenarioRefusal !== undefined) …` 渲拒因,`else` 里 `panel.servers` 必有;只要名单的地方写 `panel.servers ?? []`;没声明的键不再可读 |
292
+ | 5 | 把 `PromptManifest` 当 `Record<string, unknown>` 传 | 封闭 interface(无索引签名) | 按具名成员读,或 `Object.fromEntries(Object.entries(row))` |
293
+ | 6 | `Record<BrainStatusPhase, …>` / `Record<BrainRetryErrClass, …>` / `Record<ResumeStartupCause, …>` 等穷举表 | 各多一员 | 补那一行(见「加」7) |
294
+ | 7 | 自己写 `class MyError extends APIError {}`(不写 `name`)并读 `err.name` | 本包每个错误类一处字面类名;子类不写就继承父类的字面名(此前构造器读 `new.target.name`,会读成 `MyError` —— 压缩后则是被改写的名字) | 在子类里加一行 `override name = "MyError";`(本包自己的错误类全是这一形,钉在 `test/error-class-names.test.ts`) |
295
+
296
+ 反向钉:`test/breaking-unreleased-removals.test.ts`(`@ts-expect-error` 证旧写法不再编译;spec 零旧形)。
297
+
298
+ ### 🔴 升级须知(三问;行为面)
299
+
300
+ 1. **同步腿两码 200 → 400(server ≥ 7.132.0)**:`config.agent.unknown_tool`(子代 `allowTools` 写了近似名 / 有后继的退役名 / 不可能的拼法)与 `config.legacy_tool_name`(存量会话规则行名读成空)在 `POST /v1/tasks` 上答 **400**(此前 200 + failed 体),三条提交腿都不占幂等键。① *谁受影响*:读 200 failed 体里 `terminal.detail.detail.reason` 的调用方(那一位不再上 wire,原因词在句子里)。② *不改会怎样*:拿到的是抛出的 `APIError`(状态 400、码同名),不是结果对象。③ *怎么改*:按 `err.errorCode` 分支;只在整次提交零 turn 零 token 时是 400(verify / cascade 前一轮已跑 ⇒ 仍 200 + failed)。
301
+ 2. **`prompt.assembled_role_refused`(server ≥ 7.132.0)**:`systemPrompt` / `appendSystemPrompt`(含折进去的 `settings.outputStyle`)逐字含引擎提示段原文 ⇒ 开跑前拒(同步腿 400)。① 把整份「已组装」提示当角色文本发的调用方。② 每次提交被拒。③ 只发角色文本,其余段由引擎组。
302
+ 3. **沙箱车道拒码(server ≥ 7.132.0)**:非 k8s 车道带 `sandboxImageProfile` ⇒ **501 `capability.k8s_lane_required`**(此前无码 400);无镜像索引 ⇒ 501 `capability.image_index_required`。按码分支(落 `CapabilityUnavailableError`),别锚「400 + 句子」。
303
+ 4. **`gateKind` 恒在场(server ≥ 7.132.0)**:`GET /v1/approvals` 行与 `/stream` 的 `pending` 行恒带它(读不出门型的行不列)。型上仍可选(支持地板 3.0.0 之内的老 server 真会缺);缺席按「读不出」fail closed,不当 `human`。
304
+ 5. **SSO 单开部署的匿名 fleet 读(server ≥ 7.132.0)**:只接了鉴权桥的部署有身份边界 —— 不带凭据的会话列表 / trace / fleet / `/metrics` 族答 401;`/health.auth.kinds` 与门同一读法。
305
+
306
+ ### 钉
307
+
308
+ `test/server-7132-wire.test.ts`(发布字节一族读 server 7.132.0 与它自己的引擎 core 7.53.0 的真铸点:`wiringManifestEventData` / `compaction*EventData` / `promptManifestRecordOf` / `readStoredPromptEpoch` / `checkpointRefusalAnswer` / `buildHooksRefusal` / `validateUserSkills` / `humanInputEventData`;型面 / spec / 文档一族恒跑)·
309
+ `test/hitl-frame-types.test.ts` · `test/error-class-names.test.ts` · `test/breaking-unreleased-removals.test.ts` · live `test/live/error-tariff-artifact.test.ts`(`gateKind` 恒在场形)/ `device-protocol-mirror` / `fence-calibration`。
310
+ 被抬动的历史钉按真相翻面(`🔁 7.132.0` 标注):`server-7106` T7(D.3 41)· `server-7112` H3 / H4 / S1(函数改名、变异锚到 matcher 守卫)· `server-7113` E5(交给 7132 R 组行为钉)· `server-7114` H 组 · `server-7115` A5 / R6(mods 注册)/ M 组 / E1 / E2 · `server-7116` S1 · `server-7117` N2 · `server-7121` S2(`/health.auth` 一源)· `server-7127` W1(两说收一说)· `server-7129` W7 · `core718` 件③(`mods[]`)· `prompt-manifest-epoch` · `capabilities-full` · `device-protocol` · `events-enriched` · `spec-union-arm-gate`。
311
+
312
+ ## 23.1.0 — 校准 + 型面 minor(对表 server **7.131.0** 发布字节〔tag v7.131.0 = 3f74460d,shasum fc5c489ebd250eda5aee5a2217bdf7f0b0c2072d〕;**已发布 2026-10-16**:tag `v23.1.0` = `4634944`,shasum `2e997c878d4a99a83ac11f5618b04c8840af9ddd`、1768044 字节,gitHead = tag,latest)
116
313
 
117
314
  - **新型面(additive)**:`TaskRequest.userAttachments?: UserAttachment[]`(server 7.131.0 / core 7.50.0 请求层附件;三形条目,形判属主引擎,坏形 400 `config.user_attachment_invalid`)、导出型 `UserAttachment`、`Capabilities.userAttachments`(引擎席位描述原样:`entries` / `kinds` / `supplies` / `limits`;位缺席 = 老 server,别发该键);spec `TaskRequest.properties.userAttachments` 与 `Capabilities.properties.userAttachments` 同批。devDep `@sema-agent/settings-schema` 随钉版 server 抬到 `^13.0.1`。server 7.131.0 其余 wire 变化(工具名单读成空按方向拒 / `settings.hooks` 坏形 400 / `mcpServers[i]` 每键 400 / `config.agent.unknown_tool` / 面板 `scenarioRefusal` / `human_input.attachments`)的 spec 型随下一 minor。
118
315
  - **spec 型面(minor)**:随包 `openapi.yaml` 的 `ModelInfo` `required` 由 `[name, id, provider, reasoning]` 改为 `[name, id, provider]` —— server 7.131.0 起 `reasoning` 与 `vision` 同为三态(env 车道 `MODEL_REASONING` / `MODEL_VISION` 缺省 true 退役;未声明 = 键缺席,缺席不是 false);TS 型 `ModelInfo.reasoning?` / `vision?` 早已可选,零改。消费方若用 `m.reasoning === false` 判「非推理档」,要改成 `m.reasoning !== true`(或按缺席 = 未知渲染)。
package/dist/client.d.ts CHANGED
@@ -11,7 +11,8 @@ import { TraceResource } from "./resources/trace.js";
11
11
  import { LeaderResource } from "./resources/leader.js";
12
12
  import { MemoryResource } from "./resources/memory.js";
13
13
  import { ImagesResource, BakesResource } from "./resources/images.js";
14
- import { MetricsResource, OutcomesResource, SendfileLinksResource, WiringDiagnosticsResource } from "./resources/ops.js";
14
+ import { PrincipalInboxResource } from "./resources/principal-inbox.js";
15
+ import { ConfigCatalogResource, MetricsResource, OutcomesResource, SendfileLinksResource, WiringDiagnosticsResource } from "./resources/ops.js";
15
16
  import { ModelsResource } from "./resources/models.js";
16
17
  import { UsageResource } from "./resources/usage.js";
17
18
  import { PolicyResource } from "./resources/policy.js";
@@ -141,6 +142,10 @@ export declare class AgentClient {
141
142
  readonly sendfileLinks: SendfileLinksResource;
142
143
  /** GET /v1/diagnostics/wiring — 装配自证(operator-only;老 server 404)。 */
143
144
  readonly wiringDiagnostics: WiringDiagnosticsResource;
145
+ /** GET /v1/config/catalog — 部署配置目录(operator-only;`capabilities.configCatalog` 先探;老 server 404)。 */
146
+ readonly configCatalog: ConfigCatalogResource;
147
+ /** POST /v1/principal-inbox/messages — 跨主体投递(server ≥7.133.0;默认关 ⇒ 501;`capabilities.principalInboxDelivery` 先探)。 */
148
+ readonly principalInbox: PrincipalInboxResource;
144
149
  /** sandbox 镜像烧制控制面(client.images 的 bake 半场;operator/runner 两主体)。 */
145
150
  readonly bakes: BakesResource;
146
151
  /** #154 车二 —— **持久权限规则**的 CC settings 导入两口(prepare 预览+票 → redeem 兑付)。
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -21,7 +21,8 @@ import { TraceResource } from "./resources/trace.js";
21
21
  import { LeaderResource } from "./resources/leader.js";
22
22
  import { MemoryResource } from "./resources/memory.js";
23
23
  import { ImagesResource, BakesResource } from "./resources/images.js";
24
- import { MetricsResource, OutcomesResource, SendfileLinksResource, WiringDiagnosticsResource } from "./resources/ops.js";
24
+ import { PrincipalInboxResource } from "./resources/principal-inbox.js";
25
+ import { ConfigCatalogResource, MetricsResource, OutcomesResource, SendfileLinksResource, WiringDiagnosticsResource } from "./resources/ops.js";
25
26
  import { ModelsResource } from "./resources/models.js";
26
27
  import { UsageResource } from "./resources/usage.js";
27
28
  import { PolicyResource } from "./resources/policy.js";
@@ -105,6 +106,10 @@ export class AgentClient {
105
106
  sendfileLinks;
106
107
  /** GET /v1/diagnostics/wiring — 装配自证(operator-only;老 server 404)。 */
107
108
  wiringDiagnostics;
109
+ /** GET /v1/config/catalog — 部署配置目录(operator-only;`capabilities.configCatalog` 先探;老 server 404)。 */
110
+ configCatalog;
111
+ /** POST /v1/principal-inbox/messages — 跨主体投递(server ≥7.133.0;默认关 ⇒ 501;`capabilities.principalInboxDelivery` 先探)。 */
112
+ principalInbox;
108
113
  /** sandbox 镜像烧制控制面(client.images 的 bake 半场;operator/runner 两主体)。 */
109
114
  bakes;
110
115
  /** #154 车二 —— **持久权限规则**的 CC settings 导入两口(prepare 预览+票 → redeem 兑付)。
@@ -285,6 +290,8 @@ export class AgentClient {
285
290
  this.outcomes = new OutcomesResource(t);
286
291
  this.sendfileLinks = new SendfileLinksResource(t);
287
292
  this.wiringDiagnostics = new WiringDiagnosticsResource(t);
293
+ this.configCatalog = new ConfigCatalogResource(t);
294
+ this.principalInbox = new PrincipalInboxResource(t);
288
295
  this.bakes = new BakesResource(t);
289
296
  this.memory = new MemoryResource(t);
290
297
  this.images = new ImagesResource(t);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,SAAS,EAAyB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACzH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAkBrD,qFAAqF;AACrF,SAAS,iBAAiB,CAAC,OAAe;IACxC,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC,CAAC,6DAA6D;IAC7E,CAAC;IACD,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,kCAAkC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzG,CAAC;AAuBD,kEAAkE;AAClE,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AAsBrD,MAAM,OAAO,WAAW;IACb,KAAK,CAAgB;IACrB,IAAI,CAAe;IACnB,QAAQ,CAAmB;IAC3B,SAAS,CAAoB;IACtC;2HACuH;IAC9G,YAAY,CAAuB;IAC5C;;;4CAGwC;IAC/B,SAAS,CAAoB;IACtC;;;;sFAIkF;IACzE,aAAa,CAAwB;IAC9C;oEACgE;IACvD,SAAS,CAAoB;IACtC,sHAAsH;IAC7G,SAAS,CAAoB;IAC7B,KAAK,CAAgB;IACrB,MAAM,CAAiB;IAChC;;;yFAGqF;IAC5E,MAAM,CAAiB;IAChC,4EAA4E;IACnE,MAAM,CAAiB;IAChC,8GAA8G;IACrG,MAAM,CAAiB;IAChC,yFAAyF;IAChF,KAAK,CAAgB;IAC9B,uFAAuF;IAC9E,MAAM,CAAiB;IAChC,4GAA4G;IACnG,SAAS,CAAoB;IACtC;;2FAEuF;IAC9E,KAAK,CAAgB;IAC9B;sEACkE;IACzD,SAAS,CAAoB;IACtC,8FAA8F;IACrF,WAAW,CAAsB;IAC1C,+CAA+C;IACtC,OAAO,CAAkB;IAClC,oDAAoD;IAC3C,QAAQ,CAAmB;IACpC,oDAAoD;IAC3C,aAAa,CAAwB;IAC9C,qEAAqE;IAC5D,iBAAiB,CAA4B;IACtD,oEAAoE;IAC3D,KAAK,CAAgB;IAC9B;;iGAE6F;IACpF,KAAK,CAAgB;IAC9B;+DAC2D;IAClD,QAAQ,CAAmB;IACpC;;;;;kEAK8D;IACrD,OAAO,CAAkB;IAClC,+GAA+G;IACtG,KAAK,CAAgB;IAEb,MAAM,CAAoB;IAC1B,SAAS,CAAY;IAEtC;qGACiG;IACjG,YAAY,CAAC,IAA+B;QAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAe,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACjH,CAAC;IAED;;;;;;+FAM2F;IAC3F,oBAAoB,CAAC,IAAY,EAAE,IAA+B;QAChE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAiB;YAC5C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,8BAA8B,kBAAkB,CAAC,IAAI,CAAC,EAAE;YAC9D,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,eAAe,CAAC,IAA+B;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAe,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACrH,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,UAA2B,EAAE,IAA+B;QACnE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAe;YAC1C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE,EAAE,UAAU,EAAE;YACpB,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;6GAEyG;IACzG,aAAa,CAAC,SAAoB;QAChC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAC;QAClI,OAAO,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,mEAAmE;QAChG,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAE,MAAM,CAAC,SAAgC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3I,0EAA0E;QAC1E,sEAAsE;QACtE,6CAA6C;QAC7C,MAAM,KAAK,GAAG,IAAI,KAAK,mBAAmB,CAAC;QAC3C,2DAA2D;QAC3D,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,SAAS,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,mJAAmJ,CAAC,CAAC;QAC5M,mGAAmG;QACnG,4FAA4F;QAC5F,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YACtE,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,kJAAkJ,CAAC,CAAC;YACtK,CAAC;YACD,IAAI,IAAI,KAAK,mBAAmB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvE,MAAM,IAAI,KAAK,CAAC,+JAA+J,CAAC,CAAC;YACnL,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QACD,uGAAuG;QACvG,6FAA6F;QAC7F,0CAA0C;QAC1C,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,OAAQ,UAAmC,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACzG,MAAM,IAAI,KAAK,CAAC,wKAAwK,CAAC,CAAC;QAC5L,CAAC;QACD,yGAAyG;QACzG,0GAA0G;QAC1G,0GAA0G;QAC1G,sFAAsF;QACtF,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACtF,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,8EAA8E;QAC9E,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,eAAe,IAAI,wBAAwB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3F,MAAM,IAAI,GAAqB;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM;YACrC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC;YAClC,SAAS,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;YAChC,eAAe;YACf,YAAY,EAAE,CAAC,cAAc,EAAE,EAAE;gBAC/B,MAAM,CAAC,GAA2B,EAAE,CAAC;gBACrC,IAAI,SAAS,KAAK,SAAS;oBAAE,CAAC,CAAC,aAAa,GAAG,UAAU,SAAS,EAAE,CAAC;gBACrE,yDAAyD;gBACzD,qCAAqC;gBACrC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE;oBAAE,CAAC,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;gBAChF,CAAC,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;gBACvC,IAAI,cAAc;oBAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC;gBAC1D,OAAO,CAAC,CAAC;YACX,CAAC;YACD,yDAAyD;YACzD,yDAAyD;YACzD,GAAG,CAAC,KAAK;gBACP,CAAC,CAAC;oBACE,QAAQ,EAAE,CAAC,MAAc,EAAE,IAAa,EAAE,YAAqB,EAAE,EAAE;wBACjE,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;wBACjD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;4BAAE,CAAC,CAAC,OAAO,IAAI,kGAAkG,CAAC;wBACtJ,OAAO,CAAC,CAAC;oBACX,CAAC;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QACF,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,iBAAiB,GAAG,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -35,9 +35,11 @@
35
35
  *
36
36
  * ══ 三行上手(executor 实现者视角)═════════════════════════════════════════════════════════════
37
37
  * ```ts
38
- * import { buildHelloSignaturePayload, DEVICE_WS_PATH } from "@sema-agent/sdk/device";
38
+ * import { buildHelloSignaturePayload, DEVICE_PROTOCOL_VERSION, DEVICE_WS_PATH } from "@sema-agent/sdk/device";
39
39
  * import { sign } from "node:crypto";
40
- * const signatureB64 = sign(null, buildHelloSignaturePayload({ nonce, deviceId, epoch, protocolVersion: 1 }), privateKey).toString("base64");
40
+ * // 声明的修订号 = 自己实现的最高号与 challenge 帧所带号的较小者(对 7.132.x 及更老的 server 声明 2 会被拒):
41
+ * const protocolVersion = Math.min(DEVICE_PROTOCOL_VERSION, challenge.protocolVersion);
42
+ * const signatureB64 = sign(null, buildHelloSignaturePayload({ nonce, deviceId, epoch, protocolVersion }), privateKey).toString("base64");
41
43
  * ```
42
44
  *
43
45
  * 协议的**散文**真源 = server 仓 `docs/DEVICE-EXECUTOR-PROTOCOL.md`(§1.3 = 签名字节 + 固定向量 +
@@ -47,8 +49,18 @@
47
49
  * 🔴 刻意**不**硬编码在 executor 里:它也从 `capabilities.deviceExecutor.wsPath` 上 wire,那一位才是
48
50
  * 「这台 server 的路径」的活答案;本常量是本镜像所锚的那一版的值。 */
49
51
  export declare const DEVICE_WS_PATH = "/v1/device/ws";
50
- /** server 铸/认的协议版本。加帧/加字段 = additive 不升版;改语义 = 升版(§5.6)。 */
51
- export declare const DEVICE_PROTOCOL_VERSION = 1;
52
+ /**
53
+ * server 铸/认的协议**修订号**(wire 上的 `protocolVersion`;server ≥7.133.0 = 2,7.132.x 及以前 = 1)。
54
+ *
55
+ * 规则(§5.6):加帧 / 加字段 = additive 不升号;改语义 = 升号;**executor → server 方向的闭集加词也升号** —— 修订号是 executor 在发 hello 之前
56
+ * 唯一能读到的「这台 server 受理什么」的事实(challenge 帧带它),所以 server 受理的词集必须是修订号的函数
57
+ * ({@link DEVICE_OUTCOME_ERROR_CODES_BY_REVISION}),不另发第二份列表。
58
+ *
59
+ * 🔴 **executor 声明哪个号**:取「自己实现的最高修订号」与「`challenge.protocolVersion`」的**较小者** —— 本常量是本镜像所锚那一版 server 的号,
60
+ * 不是 executor 该无条件写进 hello 的值:对 7.132.x 及更老的 server(窗 `[1,1]`)直接声明 2 会被 `protocol_version_unsupported` 响亮拒。
61
+ * 声明的号还决定能发哪些结局码:见 {@link deviceOutcomeErrorCodesAt}。
62
+ */
63
+ export declare const DEVICE_PROTOCOL_VERSION: DeviceProtocolRevision;
52
64
  /** 低于此版本 ⇒ `helloReject: protocol_version_unsupported`(响亮拒,不静默降级)。 */
53
65
  export declare const DEVICE_MIN_PROTOCOL_VERSION = 1;
54
66
  /** 握手签名的 domain tag —— 换域即换 tag,防止别处的 Ed25519 签名被拿来当握手用。 */
@@ -101,16 +113,27 @@ export type DeviceCancelState = (typeof DEVICE_CANCEL_STATES)[number];
101
113
  export declare const DEVICE_INSTRUCTION_KINDS: readonly ["exec", "execStream", "readTextFile", "readTextLines", "readBinaryFile", "writeFile", "writeFileExclusive", "writeFileGuarded", "appendFile", "fileInfo", "listDir", "canonicalPath", "exists", "readLink", "createDir", "remove", "createTempDir", "createTempFile", "statBatch"];
102
114
  export type DeviceInstructionKind = (typeof DEVICE_INSTRUCTION_KINDS)[number];
103
115
  /**
104
- * 结果帧的错误码闭集 = core 的 `FileErrorCode ∪ ExecutionErrorCode`(§5.1「error code 全闭集」:
105
- * 未知值在 server 侧映射为协议错误而非透传 string)。
116
+ * 结果帧的错误码闭集 = core 的 `FileErrorCode ∪ ExecutionErrorCode`(§5.1「error code 全闭集」:未知值在 server 侧映射为协议错误而非透传 string)——
117
+ * **按修订号分行的增量表,是这个闭集唯一的一份来源**:修订号 N 的词集 = 行 ≤ N 的并({@link deviceOutcomeErrorCodesAt}),
118
+ * {@link DEVICE_OUTCOME_ERROR_CODES} 是当前修订号的那一份(派生)。已发布修订号的行不许改;加词 = server 抬修订号 + 加一行。
106
119
  *
107
- * ⚠️ 镜像与 server 的**一处形差,刻意如此**:server 侧这张表带
108
- * `satisfies readonly (FileErrorCode | ExecutionErrorCode)[]`,拿 core 的型当编译期对账的另一半。
109
- * 本包零运行时依赖、也不 devDep core,所以这里**没有**那一半 —— 它由锚门格②(逐成员深等)从
110
- * server 发布字节那边看住。别在这里补一个「差不多」的本地联合:那会变成第二个判据。
120
+ * ⚠️ 镜像与 server 的**一处形差,刻意如此**:server 侧这张表带 `satisfies readonly (FileErrorCode | ExecutionErrorCode)[]`,拿 core 的型当编译期对账的另一半。
121
+ * 本包零运行时依赖、也不 devDep core,所以这里**没有**那一半 —— 它由锚门格②(逐成员深等)从 server 发布字节那边看住。别在这里补一个「差不多」的本地联合:那会变成第二个判据。
122
+ */
123
+ export declare const DEVICE_OUTCOME_ERROR_CODES_BY_REVISION: {
124
+ readonly 1: readonly ["aborted", "already_exists", "auth_failed", "callback_error", "invalid", "is_directory", "not_directory", "not_found", "not_supported", "outcome_unknown", "permission_denied", "precondition_failed", "shell_unavailable", "spawn_error", "suspended", "target_unavailable", "timeout", "transport_lost", "unknown"];
125
+ readonly 2: readonly ["liveness_no_output"];
126
+ };
127
+ /** 本包认得的协议修订号(= 增量表的行键)。 */
128
+ export type DeviceProtocolRevision = keyof typeof DEVICE_OUTCOME_ERROR_CODES_BY_REVISION;
129
+ export type DeviceOutcomeErrorCode = (typeof DEVICE_OUTCOME_ERROR_CODES_BY_REVISION)[DeviceProtocolRevision][number];
130
+ /**
131
+ * 协议修订号 `revision` 受理的结局码全集(行 ≤ revision 的并,字典序)。executor 按**自己声明的修订号**取这一份来裁剪自己会发的词。
132
+ * 不是本包认得的修订号 ⇒ 抛 `RangeError`(不静默给空集或全集)。
111
133
  */
112
- export declare const DEVICE_OUTCOME_ERROR_CODES: readonly ["aborted", "already_exists", "auth_failed", "callback_error", "invalid", "is_directory", "not_directory", "not_found", "not_supported", "outcome_unknown", "permission_denied", "precondition_failed", "shell_unavailable", "spawn_error", "suspended", "target_unavailable", "timeout", "transport_lost", "unknown"];
113
- export type DeviceOutcomeErrorCode = (typeof DEVICE_OUTCOME_ERROR_CODES)[number];
134
+ export declare function deviceOutcomeErrorCodesAt(revision: number): readonly DeviceOutcomeErrorCode[];
135
+ /** 当前修订号受理的结局码全集(派生自增量表;server 解析 `result` 帧时判的就是它)。 */
136
+ export declare const DEVICE_OUTCOME_ERROR_CODES: readonly DeviceOutcomeErrorCode[];
114
137
  /** 设备文件面的 wire 投影(云侧 adapter 负责映射到 core `FileInfo`;协议层只冻结形)。 */
115
138
  export interface WireFileInfo {
116
139
  path: string;
@@ -252,6 +275,7 @@ export type DeviceChallengeFrame = {
252
275
  export type DeviceHelloAckFrame = {
253
276
  t: "helloAck";
254
277
  ok: true;
278
+ /** 六个数值位(本位与 `maxInflight` 与下面四个宽限位)的合法域见 {@link DEVICE_HELLO_ACK_BOUNDS};server 起服校验,wire 上恒在界。 */
255
279
  heartbeatIntervalMs: number;
256
280
  maxInflight: number;
257
281
  /** ⚠️ canonical 十进制**字符串**(SQL BIGINT 超 2^53,wire 不声明装不下 SQL 类型的字段)。 */
@@ -278,6 +302,46 @@ export type DeviceHelloRejectFrame = {
278
302
  code: DeviceHelloRejectCode;
279
303
  minProtocolVersion?: number;
280
304
  };
305
+ /**
306
+ * helloAck 六个数值位的**合法域**(闭区间、整数)—— 一处成文:server 创建汇聚端时按它校验(越界 ⇒ 响亮拒启,不夹取、不换成缺省)。
307
+ * 所以 **wire 上恒在界**:executor 读到越界值 ⇒ 当协议违例关连接(与 `bad_shape` 同形),**不**读成缺省。
308
+ *
309
+ * · ms 位下界 `0` = 该计时器不留宽限(立即到点)—— 真含义,放行;`heartbeatIntervalMs` 下界 `1`(`0` 的心跳周期无法执行,且汇聚端据它判 STALE);
310
+ * · ms 位上界 = 2147483647(汇聚端自己拿这些值武装 `setTimeout`,更大的值被折成 1 ms —— 宽限被静默抹掉);
311
+ * · `maxInflight` 下界 `1`(`0` ⇒ 每次派发都 `device.busy`),无上界(安全整数内)。
312
+ */
313
+ export declare const DEVICE_HELLO_ACK_BOUNDS: {
314
+ readonly heartbeatIntervalMs: {
315
+ readonly min: 1;
316
+ readonly max: 2147483647;
317
+ };
318
+ readonly maxInflight: {
319
+ readonly min: 1;
320
+ readonly max: number;
321
+ };
322
+ readonly reconnectGraceMs: {
323
+ readonly min: 0;
324
+ readonly max: 2147483647;
325
+ };
326
+ readonly cancelGraceMs: {
327
+ readonly min: 0;
328
+ readonly max: 2147483647;
329
+ };
330
+ readonly chunkGapTimeoutMs: {
331
+ readonly min: 0;
332
+ readonly max: 2147483647;
333
+ };
334
+ readonly executionCeilingGraceMs: {
335
+ readonly min: 0;
336
+ readonly max: 2147483647;
337
+ };
338
+ };
339
+ export type DeviceHelloAckNumericField = keyof typeof DEVICE_HELLO_ACK_BOUNDS;
340
+ /**
341
+ * helloAck 某数值位的值是否在界:在界 ⇒ `null`;越界(含非数 / NaN / 小数)⇒ 一句话(`must be an integer in [0, 2147483647]`)。
342
+ * executor 收到 helloAck 后用它判(越界 ⇒ 协议违例)。值不是数时同样越界(`unknown` 入参:直接喂 `JSON.parse` 的字段)。
343
+ */
344
+ export declare function deviceHelloAckNumberFlaw(field: DeviceHelloAckNumericField, value: unknown): string | null;
281
345
  export type DeviceInstructionFrame = {
282
346
  [K in DeviceInstructionKind]: {
283
347
  t: "instruction";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/device/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/device/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAMH;;2CAE2C;AAC3C,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,EAAE,sBAA0B,CAAC;AACjE,sEAAsE;AACtE,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,4DAA4D;AAC5D,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;IAC3B,qCAAqC;;IAErC,gCAAgC;;IAEhC,4CAA4C;;IAE5C,mDAAmD;;CAE3C,CAAC;AAMX,qBAAqB;AACrB,eAAO,MAAM,kBAAkB,gFAAiF,CAAC;AACjH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,qBAAqB;AACrB,eAAO,MAAM,yBAAyB,+HAAgI,CAAC;AACvK,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E;6CAC6C;AAC7C,eAAO,MAAM,yBAAyB,sGAAuG,CAAC;AAC9I,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E,wBAAwB;AACxB,eAAO,MAAM,kBAAkB,gDAAiD,CAAC;AACjF,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,uBAAuB;AACvB,eAAO,MAAM,sBAAsB,6CAA8C,CAAC;AAClF,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,+CAAgD,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,4BAA4B;AAC5B,eAAO,MAAM,oBAAoB,oCAAqC,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,8RAoB3B,CAAC;AACX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E;;;;;;;GAOG;AACH,eAAO,MAAM,sCAAsC;;;CAwBzC,CAAC;AACX,4BAA4B;AAC5B,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,sCAAsC,CAAC;AACzF,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,sCAAsC,CAAC,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErH;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,sBAAsB,EAAE,CAW7F;AAED,wDAAwD;AACxD,eAAO,MAAM,0BAA0B,EAAE,SAAS,sBAAsB,EAAuD,CAAC;AAMhI,gEAAgE;AAChE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;gEACgE;AAChE,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;+BAC+B;AAC/B,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAChG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AACtJ,2DAA2D;GACzD;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACrF;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,GACzD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,sBAAsB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE,6DAA6D;AAC7D,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,0DAA0D;IAC1D,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,2EAA2E;IAC3E,gBAAgB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,oBAAoB,CAAA;KAAE,CAAC;IACrG,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACjD,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC9C,aAAa,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,cAAc,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAChC;AAED,MAAM,MAAM,oBAAoB,GAAG;IAAE,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9F,MAAM,MAAM,mBAAmB,GAAG;IAChC,CAAC,EAAE,UAAU,CAAC;IACd,EAAE,EAAE,IAAI,CAAC;IACT,oGAAoG;IACpG,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IAAE,CAAC,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,qBAAqB,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpH;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;CAO1B,CAAC;AACX,MAAM,MAAM,0BAA0B,GAAG,MAAM,OAAO,uBAAuB,CAAC;AAE9E;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAKzG;AAED,MAAM,MAAM,sBAAsB,GAAG;KAClC,CAAC,IAAI,qBAAqB,GAAG;QAC5B,CAAC,EAAE,aAAa,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,CAAC,CAAC;QACR,IAAI,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC;QACrC,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,SAAS,EAAE,MAAM,CAAC;KACnB;CACF,CAAC,qBAAqB,CAAC,CAAC;AAEzB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,CAAC,EAAE,SAAS,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB,oBAAoB,GACpB,mBAAmB,GACnB,sBAAsB,GACtB,sBAAsB,GACtB,kBAAkB,GAClB;IAAE,CAAC,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,CAAC,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,CAAC,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,CAAC,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GAClD;IAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,EAAE,OAAO,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB;iEAC6D;IAC7D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB,gBAAgB,GAChB;IAAE,CAAC,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,CAAC,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAChE;IAAE,CAAC,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,wBAAwB,CAAA;CAAE,GACzG;IAAE,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACjI;IAAE,CAAC,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AACxE,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC,CAAC;AAS5E;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBrD;AASD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CASrI"}