@sema-agent/server 7.142.0 → 7.144.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 (301) hide show
  1. package/MIGRATION.md +608 -0
  2. package/USAGE.md +63 -36
  3. package/dist/adoption/plan.js +22 -0
  4. package/dist/approval-ask-audit-store.d.ts +7 -5
  5. package/dist/approval-ask-audit-store.js +12 -6
  6. package/dist/approval-ask-machine.d.ts +15 -7
  7. package/dist/approval-ask-machine.js +10 -4
  8. package/dist/approval-card.d.ts +155 -39
  9. package/dist/approval-card.js +111 -31
  10. package/dist/approval-queue-kind.d.ts +27 -0
  11. package/dist/approval-queue-kind.js +6 -0
  12. package/dist/approval-reconciler.d.ts +8 -8
  13. package/dist/approval-reconciler.js +3 -3
  14. package/dist/audit.js +4 -2
  15. package/dist/boot/budget-tracing.d.ts +1 -1
  16. package/dist/boot/execution-env.js +1 -1
  17. package/dist/boot/governance-seams.d.ts +26 -41
  18. package/dist/boot/governance-seams.js +61 -28
  19. package/dist/boot/late-binds.d.ts +7 -4
  20. package/dist/boot/late-binds.js +3 -1
  21. package/dist/boot/leader.js +2 -4
  22. package/dist/boot/memory-consolidation.d.ts +0 -8
  23. package/dist/boot/memory-consolidation.js +3 -3
  24. package/dist/boot/reapers.js +5 -4
  25. package/dist/boot/resolve-spec.d.ts +1 -1
  26. package/dist/boot/resolve-spec.js +8 -8
  27. package/dist/boot/runner-deps.d.ts +14 -6
  28. package/dist/boot/runner-deps.js +6 -17
  29. package/dist/boot/shutdown.d.ts +9 -0
  30. package/dist/boot/shutdown.js +18 -2
  31. package/dist/boot/stage-01-config.js +2 -0
  32. package/dist/boot/stage-02-web-admin-pull.js +3 -0
  33. package/dist/boot/stage-03-store-backend.d.ts +4 -1
  34. package/dist/boot/stage-03-store-backend.js +1 -2
  35. package/dist/boot/stage-04-stores.d.ts +5 -2
  36. package/dist/boot/stage-04-stores.js +3 -5
  37. package/dist/boot/stage-05-execution-env.d.ts +5 -2
  38. package/dist/boot/stage-06-runners.d.ts +5 -2
  39. package/dist/boot/stage-06-runners.js +1 -3
  40. package/dist/boot/stage-07-capability-layer.d.ts +5 -2
  41. package/dist/boot/stage-07-capability-layer.js +6 -2
  42. package/dist/boot/stage-08-reapers.d.ts +5 -2
  43. package/dist/boot/stage-09-leader.d.ts +5 -2
  44. package/dist/boot/stage-10-http-server.d.ts +5 -2
  45. package/dist/boot/stage-10-http-server.js +4 -1
  46. package/dist/boot/stores.d.ts +5 -2
  47. package/dist/boot/stores.js +7 -7
  48. package/dist/boot/web-admin.d.ts +5 -1
  49. package/dist/boot/web-admin.js +31 -19
  50. package/dist/capabilities/hands-lane.d.ts +9 -39
  51. package/dist/capabilities/hands-lane.js +8 -13
  52. package/dist/capabilities/mcp-probe.d.ts +3 -2
  53. package/dist/capabilities/scenarios.d.ts +23 -17
  54. package/dist/capabilities/scenarios.js +2 -2
  55. package/dist/capabilities/skills.d.ts +1 -17
  56. package/dist/capabilities/skills.js +0 -8
  57. package/dist/capability-facts.d.ts +8 -8
  58. package/dist/capability-facts.js +4 -4
  59. package/dist/card-void.d.ts +6 -9
  60. package/dist/config-catalog.js +1 -1
  61. package/dist/config-d-migration.d.ts +2 -0
  62. package/dist/config-dir-trust.js +58 -29
  63. package/dist/config-invariants.d.ts +7 -1
  64. package/dist/config-invariants.js +7 -0
  65. package/dist/config-provider.d.ts +10 -0
  66. package/dist/config-provider.js +15 -4
  67. package/dist/config-root-migration.d.ts +13 -0
  68. package/dist/config-root-migration.js +99 -0
  69. package/dist/config-types.d.ts +5 -5
  70. package/dist/config.d.ts +4 -3
  71. package/dist/config.js +1 -1
  72. package/dist/delegated-session-owner.d.ts +35 -151
  73. package/dist/delegated-session-owner.js +1 -83
  74. package/dist/device-ws-protocol.d.ts +1 -0
  75. package/dist/device-ws-protocol.js +2 -1
  76. package/dist/entry-mode-clamp-notice.d.ts +1 -1
  77. package/dist/env-model-table-gate.d.ts +53 -0
  78. package/dist/env-model-table-gate.js +53 -0
  79. package/dist/execution-placement.d.ts +7 -4
  80. package/dist/fleet/fleet-bus.d.ts +28 -52
  81. package/dist/fleet/fleet-bus.js +35 -100
  82. package/dist/fleet/fleet-reconciler.d.ts +4 -4
  83. package/dist/fleet/fleet-reconciler.js +1 -1
  84. package/dist/fleet/subagent-tail-bus.d.ts +14 -11
  85. package/dist/fleet/subagent-tail-bus.js +15 -28
  86. package/dist/hooks/classic-stations.d.ts +3 -1
  87. package/dist/hooks/classic-stations.js +2 -0
  88. package/dist/hooks/hook-runner.js +28 -7
  89. package/dist/host-decision.d.ts +54 -20
  90. package/dist/host-decision.js +42 -14
  91. package/dist/http/admission.d.ts +1 -1
  92. package/dist/http/admission.js +7 -3
  93. package/dist/http/approval-sweeps.js +11 -8
  94. package/dist/http/caller-trust.d.ts +1 -1
  95. package/dist/http/durable-run-leg.js +2 -2
  96. package/dist/http/engine-refusal.d.ts +16 -0
  97. package/dist/http/engine-refusal.js +17 -0
  98. package/dist/http/memory-compliance-failure-reply.d.ts +1 -3
  99. package/dist/http/memory-compliance-failure-reply.js +4 -6
  100. package/dist/http/owner-access.d.ts +11 -0
  101. package/dist/http/owner-access.js +13 -0
  102. package/dist/http/principal-gate.d.ts +1 -1
  103. package/dist/http/refusal-body.d.ts +7 -3
  104. package/dist/http/refusal-body.js +1 -0
  105. package/dist/http/resume-legs.d.ts +21 -7
  106. package/dist/http/resume-legs.js +82 -53
  107. package/dist/http/resume-restatement.d.ts +39 -0
  108. package/dist/http/resume-restatement.js +25 -0
  109. package/dist/http/route-ctx.d.ts +35 -10
  110. package/dist/http/route-ctx.js +1 -1
  111. package/dist/http/routes/approvals-assistant.d.ts +9 -1
  112. package/dist/http/routes/approvals-assistant.js +143 -31
  113. package/dist/http/routes/capabilities.js +11 -2
  114. package/dist/http/routes/memory-policy.d.ts +2 -2
  115. package/dist/http/routes/memory-policy.js +1 -1
  116. package/dist/http/routes/notify-wake.js +23 -25
  117. package/dist/http/routes/rules.js +48 -13
  118. package/dist/http/routes/runs.js +9 -8
  119. package/dist/http/routes/session-memory-sync.d.ts +34 -6
  120. package/dist/http/routes/session-memory-sync.js +27 -10
  121. package/dist/http/routes/session-sync.js +13 -20
  122. package/dist/http/routes/sessions.d.ts +2 -2
  123. package/dist/http/routes/sessions.js +22 -23
  124. package/dist/http/routes/tasks.js +27 -49
  125. package/dist/http/server.d.ts +13 -7
  126. package/dist/http/server.js +2 -2
  127. package/dist/http/stored-body-replay.js +15 -4
  128. package/dist/http/wire-types.d.ts +17 -7
  129. package/dist/index.d.ts +1 -0
  130. package/dist/index.js +1 -0
  131. package/dist/lane-home-probe.d.ts +15 -0
  132. package/dist/lane-home-probe.js +4 -0
  133. package/dist/leader/leader.js +5 -2
  134. package/dist/leader/wire.d.ts +7 -1
  135. package/dist/leader/wire.js +6 -5
  136. package/dist/leg-facts.d.ts +37 -0
  137. package/dist/leg-facts.js +15 -0
  138. package/dist/memory-bundle-engine.d.ts +1 -4
  139. package/dist/memory-bundle-engine.js +2 -2
  140. package/dist/memory-operator-faces.d.ts +30 -66
  141. package/dist/memory-operator-faces.js +17 -88
  142. package/dist/memory-scope-stores.d.ts +38 -40
  143. package/dist/memory-scope-stores.js +51 -36
  144. package/dist/memory-scope.d.ts +0 -9
  145. package/dist/memory-scope.js +0 -9
  146. package/dist/memory-sync-client.js +14 -3
  147. package/dist/memory-sync.d.ts +20 -4
  148. package/dist/memory-sync.js +23 -4
  149. package/dist/model-plane-face.d.ts +13 -7
  150. package/dist/model-plane-face.js +2 -1
  151. package/dist/observability/corrupt-read-seat.d.ts +5 -9
  152. package/dist/observability/corrupt-read-seat.js +1 -2
  153. package/dist/observability/fail-open.d.ts +30 -10
  154. package/dist/observability/fail-open.js +27 -10
  155. package/dist/observability/run-terminal.d.ts +1 -1
  156. package/dist/observability/run-terminal.js +6 -2
  157. package/dist/orchestration/workflow-completion-inbox.d.ts +5 -19
  158. package/dist/orchestration/workflow-completion-inbox.js +0 -12
  159. package/dist/orchestration/workflow-notify-journal.d.ts +3 -2
  160. package/dist/orchestration/workflow-park-decision.d.ts +8 -3
  161. package/dist/orchestration/workflow-park-decision.js +5 -3
  162. package/dist/org-delivery-gate.d.ts +11 -0
  163. package/dist/org-delivery-gate.js +19 -1
  164. package/dist/parked-decide.d.ts +13 -9
  165. package/dist/parked-decide.js +7 -7
  166. package/dist/parked-revive-surface.d.ts +6 -7
  167. package/dist/parked-revive-surface.js +1 -1
  168. package/dist/peer-inbound-face.d.ts +122 -0
  169. package/dist/peer-inbound-face.js +123 -0
  170. package/dist/permission-rule-list.d.ts +13 -9
  171. package/dist/permission-rule-list.js +7 -3
  172. package/dist/plugins/approval-ask-store-file.js +18 -6
  173. package/dist/plugins/approval-ask-store-memory.js +8 -6
  174. package/dist/plugins/approval-ask-store-sql.d.ts +28 -13
  175. package/dist/plugins/approval-ask-store-sql.js +30 -11
  176. package/dist/plugins/caching-session-store.d.ts +0 -3
  177. package/dist/plugins/caching-session-store.js +0 -3
  178. package/dist/plugins/checkpoint-store-sql.d.ts +45 -38
  179. package/dist/plugins/checkpoint-store-sql.js +108 -45
  180. package/dist/plugins/file-history-store-sql.d.ts +24 -18
  181. package/dist/plugins/file-history-store-sql.js +24 -19
  182. package/dist/plugins/file-run-store.d.ts +29 -0
  183. package/dist/plugins/file-run-store.js +97 -8
  184. package/dist/plugins/fork-routing-session-store.d.ts +8 -1
  185. package/dist/plugins/fork-routing-session-store.js +6 -0
  186. package/dist/plugins/imported-layer-root-retirement.d.ts +82 -0
  187. package/dist/plugins/imported-layer-root-retirement.js +96 -0
  188. package/dist/plugins/local-checkpoint-store.d.ts +6 -8
  189. package/dist/plugins/local-checkpoint-store.js +5 -4
  190. package/dist/plugins/local-session-store.d.ts +69 -30
  191. package/dist/plugins/local-session-store.js +133 -57
  192. package/dist/plugins/local-session-window.d.ts +4 -2
  193. package/dist/plugins/mailbox-recipient-lifecycle.d.ts +9 -31
  194. package/dist/plugins/mailbox-recipient-lifecycle.js +4 -0
  195. package/dist/plugins/mailbox-store-sql.d.ts +12 -8
  196. package/dist/plugins/mailbox-store-sql.js +76 -7
  197. package/dist/plugins/memory-sync-store-pg.d.ts +15 -0
  198. package/dist/plugins/memory-sync-store-pg.js +21 -0
  199. package/dist/plugins/memory-sync-store-tidb.d.ts +2 -0
  200. package/dist/plugins/memory-sync-store-tidb.js +13 -1
  201. package/dist/plugins/one-time-migrations.d.ts +44 -14
  202. package/dist/plugins/one-time-migrations.js +118 -15
  203. package/dist/plugins/org-delivery-quota-store.d.ts +1 -1
  204. package/dist/plugins/org-delivery-quota-store.js +2 -12
  205. package/dist/plugins/park-commit-watch.d.ts +1 -1
  206. package/dist/plugins/permission-rule-store-file.d.ts +10 -1
  207. package/dist/plugins/permission-rule-store-file.js +15 -2
  208. package/dist/plugins/permission-rule-store-sql.d.ts +31 -1
  209. package/dist/plugins/permission-rule-store-sql.js +35 -2
  210. package/dist/plugins/pg-session-storage.d.ts +1 -9
  211. package/dist/plugins/pg-session-storage.js +2 -19
  212. package/dist/plugins/remote-env-device.d.ts +8 -11
  213. package/dist/plugins/remote-env-device.js +6 -3
  214. package/dist/plugins/remote-env-host.d.ts +8 -4
  215. package/dist/plugins/remote-env-host.js +7 -9
  216. package/dist/plugins/remote-env-k8s.d.ts +37 -24
  217. package/dist/plugins/remote-env-k8s.js +50 -17
  218. package/dist/plugins/remote-shell.js +12 -2
  219. package/dist/plugins/retention-store-sql.d.ts +2 -2
  220. package/dist/plugins/sandbox-read-floor.d.ts +5 -7
  221. package/dist/plugins/sandbox-read-floor.js +2 -7
  222. package/dist/plugins/schema-consistency.d.ts +5 -1
  223. package/dist/plugins/session-fork.d.ts +1 -1
  224. package/dist/plugins/session-ownership.d.ts +9 -0
  225. package/dist/plugins/session-ownership.js +6 -0
  226. package/dist/plugins/session-store.d.ts +13 -16
  227. package/dist/plugins/session-store.js +9 -10
  228. package/dist/plugins/sql-errors.d.ts +10 -1
  229. package/dist/plugins/sql-errors.js +13 -0
  230. package/dist/plugins/sql-json-column.d.ts +24 -2
  231. package/dist/plugins/sql-json-column.js +38 -3
  232. package/dist/plugins/store-backend.d.ts +23 -28
  233. package/dist/plugins/store-backend.js +12 -3
  234. package/dist/plugins/store-contracts.d.ts +29 -5
  235. package/dist/plugins/store-contracts.js +4 -1
  236. package/dist/plugins/task-attachment-store.d.ts +2 -2
  237. package/dist/plugins/task-attachment-store.js +37 -52
  238. package/dist/plugins/tidb-session-store.d.ts +2 -14
  239. package/dist/plugins/tidb-session-store.js +2 -20
  240. package/dist/plugins/tool-result-store-sql.d.ts +9 -8
  241. package/dist/plugins/tool-result-store-sql.js +23 -2
  242. package/dist/plugins/wiring-section-codec.d.ts +32 -0
  243. package/dist/plugins/wiring-section-codec.js +55 -0
  244. package/dist/plugins/workspace-fill.d.ts +1 -1
  245. package/dist/rule-entry-list.d.ts +3 -2
  246. package/dist/rule-entry-list.js +5 -1
  247. package/dist/rules-consent.d.ts +28 -5
  248. package/dist/rules-consent.js +40 -28
  249. package/dist/run-local.js +11 -6
  250. package/dist/runs.d.ts +12 -8
  251. package/dist/runs.js +10 -7
  252. package/dist/runtime-governance.d.ts +1 -1
  253. package/dist/security.d.ts +0 -4
  254. package/dist/server-secret-env.d.ts +4 -0
  255. package/dist/session-error-wire.d.ts +34 -23
  256. package/dist/session-error-wire.js +8 -3
  257. package/dist/session-incarnation.d.ts +3 -3
  258. package/dist/session-notify-door.d.ts +106 -0
  259. package/dist/session-notify-door.js +97 -0
  260. package/dist/session-sync.d.ts +9 -14
  261. package/dist/session-sync.js +5 -5
  262. package/dist/session-workspace.d.ts +3 -13
  263. package/dist/session-workspace.js +0 -9
  264. package/dist/standing-answer-grant.d.ts +5 -0
  265. package/dist/standing-answer-grant.js +10 -0
  266. package/dist/stores-sql/session-policy-store-sql.d.ts +4 -2
  267. package/dist/stores-sql/session-policy-store-sql.js +3 -13
  268. package/dist/task-mcp.d.ts +1 -1
  269. package/dist/task-settings.d.ts +11 -8
  270. package/dist/task-settings.js +31 -11
  271. package/dist/tool-approval.d.ts +55 -35
  272. package/dist/tool-approval.js +112 -74
  273. package/dist/trace/core-keyset-guard.d.ts +12 -9
  274. package/dist/trace/engine-notice-wire.d.ts +1 -1
  275. package/dist/trace/engine-notice-wire.js +4 -2
  276. package/dist/trace/exit-seat.d.ts +7 -1
  277. package/dist/trace/exit-seat.js +1 -0
  278. package/dist/trace/ledger-sink.d.ts +2 -2
  279. package/dist/trace/ledger-sink.js +12 -4
  280. package/dist/trace/model-segment.d.ts +74 -25
  281. package/dist/trace/model-segment.js +141 -32
  282. package/dist/trace/project.d.ts +15 -6
  283. package/dist/trace/project.js +12 -4
  284. package/dist/trace/redact.d.ts +72 -9
  285. package/dist/trace/redact.js +1509 -471
  286. package/dist/trace/self-minted-wire.d.ts +598 -47
  287. package/dist/trace/self-minted-wire.js +190 -20
  288. package/dist/trace/wire-projection-faces.d.ts +1 -1
  289. package/dist/trace/wire-projection-faces.js +1 -1
  290. package/dist/verifier-pause-card.d.ts +33 -5
  291. package/dist/verifier-pause-card.js +15 -10
  292. package/dist/web-admin-client/apply-effective.d.ts +12 -16
  293. package/dist/web-admin-client/apply-effective.js +90 -10
  294. package/dist/workspace-space.d.ts +19 -3
  295. package/dist/workspace-space.js +8 -4
  296. package/docs/DEVICE-EXECUTOR-PROTOCOL.md +3 -1
  297. package/package.json +3 -2
  298. package/wire-changes/server@7.143.0.json +1167 -0
  299. package/wire-changes/server@7.144.0.json +291 -0
  300. package/dist/session-records-skipped-notice.d.ts +0 -21
  301. package/dist/session-records-skipped-notice.js +0 -27
@@ -129,10 +129,6 @@ export declare const SELF_MINTED_WIRE: {
129
129
  readonly attr: 409;
130
130
  readonly since: "7.108.0";
131
131
  };
132
- readonly "memory.erasure_store_unjudged": {
133
- readonly attr: 409;
134
- readonly since: "7.140.0";
135
- };
136
132
  readonly "internal.memory_control_plane_corrupt": {
137
133
  readonly attr: 500;
138
134
  readonly since: "7.108.0";
@@ -739,17 +735,33 @@ export declare const SELF_MINTED_WIRE: {
739
735
  };
740
736
  };
741
737
  /**
742
- * `POST /v1/side-query` 200 体在失败时的 `errorKind` 值里本版新出现的词(机读失败种类;缺席 = 引擎没给)。词是引擎铸的闭集,本服务逐字过境(`projectSideQueryResult`),词表属主 = 引擎的 `AssistantMessage.errorKind`:
743
- * `satisfies Partial<Record<…>>` 把「登的是引擎的词」绑在引擎的型上。`image_unprocessable` —— 服务商处理不了请求里的图 —— 是本版新词;此前的三词(`input_too_long` / `length_empty` / `degenerate`,自 7.135.0 起在 wire 上)
744
- * 不在本集 —— 同上面四个集的口径,只登本版新出现的。
738
+ * `POST /v1/side-query` 200 体在失败时 `errorKind` 的**整个**词闭集(机读失败种类;缺席 = 引擎没给)。词是引擎铸的闭集,本服务逐字过境(`projectSideQueryResult`),词表属主 = 引擎的 `AssistantMessage.errorKind`:
739
+ * `satisfies Record<…>` 穷举 —— 引擎加一个词而本表没跟 ⇒ 提货当拍 tsc 红(词逐字过境,上 wire 的那一刻就该在这里)。`since` = 这个词在本服务 wire 上出现的版本:三词随 `errorKind` 这一位
740
+ * 一起上(7.135.0,引擎 7.55.0);`image_unprocessable` 7.138.0(引擎 7.59.0);`tool_schema_refused` 7.143.0(引擎 7.61.0 —— 当版漏登,7.144.0 补登:本表此前是只登本版新词的 `Partial`,引擎加词不红)。
745
741
  */
746
742
  readonly sideQueryErrorKind: {
747
743
  readonly at: "POST /v1/side-query 200 体 errorKind 的值(失败时在场;引擎的词逐字过境)";
748
744
  readonly members: {
745
+ input_too_long: {
746
+ attr: string;
747
+ since: string;
748
+ };
749
+ length_empty: {
750
+ attr: string;
751
+ since: string;
752
+ };
753
+ degenerate: {
754
+ attr: string;
755
+ since: string;
756
+ };
749
757
  image_unprocessable: {
750
758
  attr: string;
751
759
  since: string;
752
760
  };
761
+ tool_schema_refused: {
762
+ attr: string;
763
+ since: string;
764
+ };
753
765
  };
754
766
  };
755
767
  /** MCP 授权记录 `authorization`(只投闭集词 `reason`,与 `errorCode:"unauthorized"` 同行)出现的三张面;投影只有 `mcp-authorization-face.ts` 的 `projectMcpAuthorization` 一只,三面同读。 */
@@ -1025,13 +1037,6 @@ export declare const SELF_MINTED_WIRE: {
1025
1037
  readonly since: "7.142.0";
1026
1038
  };
1027
1039
  };
1028
- readonly retired: {
1029
- readonly "POST /v1/tasks|/v1/tasks/stream#replay_run_read_face(\u540C\u952E\u91CD\u653E\u7684\u4F53 = GET /v1/runs/:id \u7684\u8BFB\u9762 + replay: true:result \u662F\u5BF9\u8C61,\u5916\u52A0 status / errorCode / heldBy \u7B49\u8BFB\u9762\u952E)": {
1030
- readonly attr: 200;
1031
- readonly since: "7.125.0";
1032
- readonly until: "7.142.0";
1033
- };
1034
- };
1035
1040
  };
1036
1041
  /**
1037
1042
  * 内建场景名(`GET /v1/capabilities.scenarios` 的内建成员,`GET /v1/capabilities/scenarios/:name` 的内建详情)。7.126.0 `discuss` 退出 wire
@@ -1171,6 +1176,35 @@ export declare const SELF_MINTED_WIRE: {
1171
1176
  };
1172
1177
  };
1173
1178
  };
1179
+ /**
1180
+ * `GET /v1/models` 的 `modelPlane` 段的整个键闭集(段自 7.133.0 起在 wire 上;前四键与段同版,本表 7.143.0 才登记它们)。`planeRefusalCode` —— 最新到达的目录候选被模型面组拒的码
1181
+ * (在场 ⇔ 最新到达的候选被模型面组拒;与 `catalog:"refused"` 同读一份事实,读法见 `model-plane-face.ts` 文件头)。
1182
+ */
1183
+ readonly modelPlaneKey: {
1184
+ readonly at: "GET /v1/models modelPlane.<键>(<键> → 在场律)";
1185
+ readonly members: {
1186
+ servedTable: {
1187
+ attr: string;
1188
+ since: string;
1189
+ };
1190
+ catalog: {
1191
+ attr: string;
1192
+ since: string;
1193
+ };
1194
+ refusalCode: {
1195
+ attr: string;
1196
+ since: string;
1197
+ };
1198
+ gap: {
1199
+ attr: string;
1200
+ since: string;
1201
+ };
1202
+ planeRefusalCode: {
1203
+ attr: string;
1204
+ since: string;
1205
+ };
1206
+ };
1207
+ };
1174
1208
  /**
1175
1209
  * 呈卡帧 `approval_request` 的 `card`(= `card_json` 的耐久卡信封)上本版新铸的键:引擎卡词 `approvalCard`。活铸帧的 `card`、落库的卡信封、断连重放帧的 `card` 三面同源同词
1176
1210
  * (帧顶层那一份照旧在,同值)。在场律 `present-iff`:引擎铸了卡词且过了闭集窄读才有,引擎没铸 ⇒ 缺席(不编 `generic`);本版之前落下的行卡上没有 ⇒ 重放照旧不带。
@@ -1185,6 +1219,90 @@ export declare const SELF_MINTED_WIRE: {
1185
1219
  };
1186
1220
  };
1187
1221
  };
1222
+ /**
1223
+ * 断连重放的呈卡帧 `approval_request`(断流续读 · 开流 preamble · 起服接管行与按问读口内嵌的 `frame`)顶层,本版起与活铸帧同事实:卡外十一位从问行卡信封的
1224
+ * 活面事实座(`card_json` 的 `liveFacts`,铸卡时与卡同一条写)回读,行上记着的每一位在场、与活铸帧同值;行上没有那一座(本版之前铸的行)或它读不出 ⇒
1225
+ * 只带标记位 `liveFactsUnknown`(字面 `true`;活铸帧恒不带)。十一位在活铸帧上早已在册(不是本版新上 wire 的键),这里登的是它们在**重放帧**上的在场律。
1226
+ */
1227
+ readonly approvalRequestReplayFact: {
1228
+ readonly at: "approval_request 断连重放帧顶层(断流续读 · 开流 preamble · livePending 接管行 / 按问读口的 frame)";
1229
+ readonly members: {
1230
+ mandated: {
1231
+ attr: string;
1232
+ since: string;
1233
+ };
1234
+ mandate: {
1235
+ attr: string;
1236
+ since: string;
1237
+ };
1238
+ origin: {
1239
+ attr: string;
1240
+ since: string;
1241
+ };
1242
+ boundGrantDigest: {
1243
+ attr: string;
1244
+ since: string;
1245
+ };
1246
+ boundGrants: {
1247
+ attr: string;
1248
+ since: string;
1249
+ };
1250
+ classifierNoRuling: {
1251
+ attr: string;
1252
+ since: string;
1253
+ };
1254
+ boundGrantAbsence: {
1255
+ attr: string;
1256
+ since: string;
1257
+ };
1258
+ approvalCard: {
1259
+ attr: string;
1260
+ since: string;
1261
+ };
1262
+ readRootCandidate: {
1263
+ attr: string;
1264
+ since: string;
1265
+ };
1266
+ probeReason: {
1267
+ attr: string;
1268
+ since: string;
1269
+ };
1270
+ requestedBy: {
1271
+ attr: string;
1272
+ since: string;
1273
+ };
1274
+ liveFactsUnknown: {
1275
+ attr: string;
1276
+ since: string;
1277
+ };
1278
+ };
1279
+ };
1280
+ /**
1281
+ * `GET /v1/approvals` 的 `livePending[]` 行(及 `/v1/approvals/stream` 的 `live_pending` 帧、`GET /v1/tool-approvals/:id` 的 `pending` 体 —— 同一只投影 `livePendingRowOf`)顶层,
1282
+ * **起服接管行**上本版新出现的键:强制位 / 强制词 / 出身词此前只在活登记的行上带(接管行恒缺席 —— 多副本 SQL 部署上,一只强制问在别的副本上被列成「不强制」);本版起读行的内嵌帧
1283
+ * (= 从问行卡信封回读的重放帧,与活铸帧同值),行上没有那组事实 ⇒ 顶层带标记位 `liveFactsUnknown`(与内嵌帧同值,只读那一格)。三位在活登记行上早已在册,这里登的是它们在接管行上的在场律。
1284
+ */
1285
+ readonly livePendingAdoptedRowKey: {
1286
+ readonly at: "GET /v1/approvals livePending[] 行顶层 · /v1/approvals/stream live_pending 帧 · GET /v1/tool-approvals/:id pending 体(起服接管行)";
1287
+ readonly members: {
1288
+ mandated: {
1289
+ attr: string;
1290
+ since: string;
1291
+ };
1292
+ mandate: {
1293
+ attr: string;
1294
+ since: string;
1295
+ };
1296
+ origin: {
1297
+ attr: string;
1298
+ since: string;
1299
+ };
1300
+ liveFactsUnknown: {
1301
+ attr: string;
1302
+ since: string;
1303
+ };
1304
+ };
1305
+ };
1188
1306
  /**
1189
1307
  * 停驻技能卡的「批它放行了什么」三位,7.136.0 起在运维队列行与订阅流 `pending` 帧上也带(此前只有助手收件箱行与活卡帧带)。清单与成因词由一只投影 `skillCardFacts` 投,
1190
1308
  * 摘要随授予绑定那一臂由 `parkRowFacts` 投(读自停驻行;7.141.0 起与 `boundGrantAbsence` 恰带其一 —— `boundGrantAbsence` 自 7.129.0 起就在本面,不是本表登记的新键);
@@ -1207,6 +1325,143 @@ export declare const SELF_MINTED_WIRE: {
1207
1325
  };
1208
1326
  };
1209
1327
  };
1328
+ /**
1329
+ * 运维队列行与订阅流 `pending` 帧(停驻门族)上的 `rowVerdict`(7.144.0;core 7.62.0 [ref]):这一行**本引擎续不续得了** —— core 判官 `judgeCheckpointRow` 对这一行字节的判决,
1330
+ * 与助手收件箱行的同名位、续跑第一级的拒同一个读者、同一答(逐字投,本服务不重算)。`satisfies Record<Extract<keyof PendingCheckpoint, "rowVerdict">, …>`:行形改名 / 删键而本表没跟 ⇒ tsc 红。
1331
+ * 在场律 `present-iff`:LOCAL 后端恒在;SQL 后端在「整行解不出」(计数)、「两次读之间行离开待决」或「两次读之间行的字节变了」时缺席 —— 缺席不是 `ok`。
1332
+ */
1333
+ readonly approvalQueueRowVerdict: {
1334
+ readonly at: "GET /v1/approvals pending[] 行 · GET /v1/approvals/stream pending 帧(停驻门族)的 rowVerdict";
1335
+ readonly members: {
1336
+ rowVerdict: {
1337
+ attr: string;
1338
+ since: string;
1339
+ };
1340
+ };
1341
+ };
1342
+ /**
1343
+ * 运维审批队列 `pending[]` 的**行族闭集**(7.143.0):每一行 / 每一帧(`pending` 与 `resolved`)恒带 `kind`,消费方先按它分支。
1344
+ * `satisfies Record<ApprovalQueueKind, …>`(闭集属主 = `approval-queue-kind.ts` 的 `APPROVAL_QUEUE_KINDS`;加一族而本表没跟 ⇒ tsc 红)。
1345
+ */
1346
+ readonly approvalQueueKind: {
1347
+ readonly at: "GET /v1/approvals pending[].kind · GET /v1/approvals/stream pending / resolved 帧的 kind(恒带)";
1348
+ readonly members: {
1349
+ checkpoint: {
1350
+ attr: string;
1351
+ since: string;
1352
+ };
1353
+ peer_inbound: {
1354
+ attr: string;
1355
+ since: string;
1356
+ };
1357
+ };
1358
+ };
1359
+ /**
1360
+ * `peer_inbound` 行的键集(<键> → 在场律;`pending[]` 行与 `pending` 帧同形,帧另带信封键 `type` / `serverNowMs`)。`satisfies Record<keyof PeerInboundPendingRow, …>`:
1361
+ * 键集属主 = `peer-inbound-face.ts` 的 `PeerInboundPendingRow`(唯一铸点 `rowOf`;键加一个而本表没跟 ⇒ tsc 红)。
1362
+ */
1363
+ readonly peerInboundRowKey: {
1364
+ readonly at: "GET /v1/approvals pending[] 的 peer_inbound 行 · GET /v1/approvals/stream 的 peer_inbound pending 帧(<键> → 在场律)";
1365
+ readonly members: {
1366
+ kind: {
1367
+ attr: string;
1368
+ since: string;
1369
+ };
1370
+ id: {
1371
+ attr: string;
1372
+ since: string;
1373
+ };
1374
+ recipientSessionId: {
1375
+ attr: string;
1376
+ since: string;
1377
+ };
1378
+ lane: {
1379
+ attr: string;
1380
+ since: string;
1381
+ };
1382
+ cause: {
1383
+ attr: string;
1384
+ since: string;
1385
+ };
1386
+ content: {
1387
+ attr: string;
1388
+ since: string;
1389
+ };
1390
+ sentAt: {
1391
+ attr: string;
1392
+ since: string;
1393
+ };
1394
+ heldAt: {
1395
+ attr: string;
1396
+ since: string;
1397
+ };
1398
+ deadline: {
1399
+ attr: string;
1400
+ since: string;
1401
+ };
1402
+ fromSession: {
1403
+ attr: string;
1404
+ since: string;
1405
+ };
1406
+ fromName: {
1407
+ attr: string;
1408
+ since: string;
1409
+ };
1410
+ fromScope: {
1411
+ attr: string;
1412
+ since: string;
1413
+ };
1414
+ };
1415
+ };
1416
+ /** `peer_inbound` 行的 `lane`(信在收信会话自己的箱 / 它也排空的 principal 收件箱);`satisfies Record<PeerInboundLane, …>`(属主 = `PEER_INBOUND_LANES`)。 */
1417
+ readonly peerInboundLane: {
1418
+ readonly at: "GET /v1/approvals pending[] 的 peer_inbound 行 lane";
1419
+ readonly members: {
1420
+ session: {
1421
+ attr: string;
1422
+ since: string;
1423
+ };
1424
+ principal_inbox: {
1425
+ attr: string;
1426
+ since: string;
1427
+ };
1428
+ };
1429
+ };
1430
+ /**
1431
+ * `/v1/approvals/stream` 的 `resolved` 帧本版新上的键(<键> → 在场律):`kind` 恒带;`peer_inbound` 族带 `id`(它的那把键),`checkpoint` 族照旧带 `sessionId` + `toolCallId`。
1432
+ * 帧是路由内联铸的,没有可 `satisfies` 的具名型,绑定由 `test/peer-inbound-approvals.test.ts` 的 S 组与 `test/wire-pairing-approvals-stream.test.ts` 的 resolved 键集钉承担。
1433
+ */
1434
+ readonly approvalsResolvedFrameKey: {
1435
+ readonly at: "GET /v1/approvals/stream resolved 帧(<键> → 在场律;只登本版新增的)";
1436
+ readonly members: {
1437
+ readonly kind: {
1438
+ readonly attr: "always";
1439
+ readonly since: "7.143.0";
1440
+ };
1441
+ readonly id: {
1442
+ readonly attr: "present-iff kind = peer_inbound";
1443
+ readonly since: "7.143.0";
1444
+ };
1445
+ };
1446
+ };
1447
+ /** 决断口 `peer_inbound` 臂的 200 体键集;`satisfies Record<keyof PeerInboundDecideReply, …>`(属主 = `peer-inbound-face.ts`,路由按这只型铸体)。 */
1448
+ readonly peerInboundDecideBodyKey: {
1449
+ readonly at: "POST /v1/approvals/:id/decide 200 体(peer_inbound 族;<键> → 在场律)";
1450
+ readonly members: {
1451
+ kind: {
1452
+ attr: string;
1453
+ since: string;
1454
+ };
1455
+ id: {
1456
+ attr: string;
1457
+ since: string;
1458
+ };
1459
+ outcome: {
1460
+ attr: string;
1461
+ since: string;
1462
+ };
1463
+ };
1464
+ };
1210
1465
  /**
1211
1466
  * `409 resume.constraint_rejected` 拒体上本服务加的键(7.137.0,引擎 7.56.0):续跑的编辑复判只收改写后的那一形时,那一形的入参 `acceptableForm`
1212
1467
  * (引擎 `detail.editRewritten.acceptableForm`,经审批卡 `args` 同一只读法:脱敏 + 字节帽,超帽 ⇒ 缺席)。拒体没有可 `satisfies` 的全集型,行为由对应 CHANGELOG 条的钉证
@@ -1221,6 +1476,21 @@ export declare const SELF_MINTED_WIRE: {
1221
1476
  };
1222
1477
  };
1223
1478
  };
1479
+ /**
1480
+ * 续跑拒体上引擎 7.62.0 新位 `detail.thrownName` 的过境键(7.144.0):引擎的行判官读不出一行(被读的成员读时抛 / 容器不是容器)⇒ 认领前拒 `reason: requirements_damaged`,
1481
+ * `thrownName` 点名读它时被抛出的东西的名字(引擎侧有界、不带 message)—— 在场 = 引擎缺陷,缺席 = 行的内容对不上它自述的(数据损坏),运维凭这一位分诊。
1482
+ * 唯一读法 = `http/refusal-body.ts` 的 `resumeRefusalFacts`(同步腿的 `checkpointRefusalAnswer` 与后台停驻 422 体读同一只;回执今天不带这一位 ⇒ 422 腿恒缺席)。
1483
+ * 拒体没有可 `satisfies` 的全集型,行为由对应 CHANGELOG 条的钉证(`test/durable-resume-http.test.ts`)。在场律 `present-iff`:引擎给了非空串才铸键。
1484
+ */
1485
+ readonly requirementsDamagedBodyKey: {
1486
+ readonly at: "409 续跑拒体(引擎 reason requirements_damaged;<键> → 在场律)";
1487
+ readonly members: {
1488
+ readonly thrownName: {
1489
+ readonly attr: "present-iff the engine named what its row judge saw thrown (non-empty string)";
1490
+ readonly since: "7.144.0";
1491
+ };
1492
+ };
1493
+ };
1224
1494
  /**
1225
1495
  * 在飞 run 的权限模式切档口 `POST /v1/runs/:id/permission-mode`(本版新端点)200 体的键集(<键> → 在场律)。
1226
1496
  * `satisfies Record<keyof PermissionModeVerbReply, …>`(体形属主 = `http/routes/run-permission-mode.ts`,路由按这只型铸体;键加一个而本表没跟 ⇒ tsc 红)。
@@ -1347,9 +1617,17 @@ export declare const SELF_MINTED_WIRE: {
1347
1617
  readonly attr: 500;
1348
1618
  readonly since: "7.136.0";
1349
1619
  };
1350
- readonly "POST /v1/tasks#stored_log_invalid(\u540C\u6B65\u817F;\u6253\u5F00\u5DF2\u5B58\u65E5\u5FD7\u649E\u4E0A\u7ED3\u6784\u574F:\u60AC\u7A7A\u7236 / \u81EA\u6307 / \u6210\u73AF / \u53F6\u5B50\u7F3A\u5E2D;\u96F6\u5DE5\u4F5C\u7684\u62D2;\u4F53 invalid_session)": {
1620
+ readonly "POST /v1/tasks#stored_log_unwalkable(\u540C\u6B65\u817F;\u5DF2\u5B58\u65E5\u5FD7\u8D70\u4E0D\u6210\u4E00\u68F5\u6811\u800C\u56DE\u653E\u6CA1\u4E22\u8BB0\u5F55:\u60AC\u7A7A\u7236 / \u81EA\u6307 / \u6210\u73AF / \u53F6\u5B50\u7F3A\u5E2D;\u96F6\u5DE5\u4F5C\u7684\u62D2;\u4F53 corrupt_session)": {
1351
1621
  readonly attr: 500;
1352
- readonly since: "7.137.0";
1622
+ readonly since: "7.144.0";
1623
+ };
1624
+ readonly "POST /v1/tasks#stored_log_rerooted(\u540C\u6B65\u817F;\u56DE\u653E\u4E22\u4E86\u8BB0\u5F55\u800C\u5206\u652F\u5728\u65AD\u70B9\u65AD\u5F00 \u21D2 run \u4ECE\u65AD\u70B9\u7EED\u4E0A)": {
1625
+ readonly attr: 200;
1626
+ readonly since: "7.144.0";
1627
+ };
1628
+ readonly "POST /v1/tasks#env_home_unconfirmed(\u540C\u6B65\u817F;host \u8F66\u9053\u6267\u884C\u73AF\u5883\u7684\u5BB6\u76EE\u5F55\u4E3B\u5F20\u8BC1\u4E0D\u4E86,\u5DE5\u5382\u5728\u94F8\u73AF\u5883\u4E4B\u524D\u62D2;\u96F6\u5DE5\u4F5C\u7684\u62D2;\u4F53 env.home_unconfirmed + \u5224\u5B98\u7684\u62D2\u53E5)": {
1629
+ readonly attr: 409;
1630
+ readonly since: "7.144.0";
1353
1631
  };
1354
1632
  readonly "POST /v1/sessions/:id/sync/import#identical_repush_blob_missing(\u4F53 missing_blob)": {
1355
1633
  readonly attr: 422;
@@ -1367,13 +1645,13 @@ export declare const SELF_MINTED_WIRE: {
1367
1645
  readonly attr: 400;
1368
1646
  readonly since: "7.141.0";
1369
1647
  };
1370
- readonly "POST /v1/sessions/:id/fork#stamped_archive(DB_BACKEND=local;\u6E90\u5B58\u6863\u4ECD\u5E26\u66F4\u65E9\u7248\u672C\u5199\u4E0B\u7684\u5C5E\u4E3B\u6233;\u96F6\u5199;\u4F53 conflict + \u5E26\u6233\u5B58\u6863\u7684\u56FA\u5B9A\u53E5)": {
1648
+ readonly "POST /v1/sessions/:id/fork#stamped_archive(DB_BACKEND=local;\u6E90\u5B58\u6863\u4ECD\u5E26\u66F4\u65E9\u7248\u672C\u5199\u4E0B\u7684\u5C5E\u4E3B\u6233;\u96F6\u5199;\u4F53 conflict.session_archive_stamped + \u5E26\u6233\u5B58\u6863\u7684\u56FA\u5B9A\u53E5)": {
1371
1649
  readonly attr: 409;
1372
- readonly since: "7.141.0";
1650
+ readonly since: "7.144.0";
1373
1651
  };
1374
- readonly "POST /v1/sessions/:id/sync/import/:stagingId/entries#stamped_archive(DB_BACKEND=local;\u63D0\u4EA4\u843D\u5728\u4ECD\u5E26\u5C5E\u4E3B\u6233\u7684\u5B58\u6863\u4E0A;\u884C\u51C0\u96F6\u5199;\u4F53 conflict + \u5E26\u6233\u5B58\u6863\u7684\u56FA\u5B9A\u53E5)": {
1652
+ readonly "POST /v1/sessions/:id/sync/import/:stagingId/entries#stamped_archive(DB_BACKEND=local;\u63D0\u4EA4\u843D\u5728\u4ECD\u5E26\u5C5E\u4E3B\u6233\u7684\u5B58\u6863\u4E0A,\u6539\u65E5\u5FD7\u7684\u5404\u5F62\u63A8\u9001\u540C\u7B54;\u884C\u51C0\u96F6\u5199;\u4F53 conflict.session_archive_stamped + \u5E26\u6233\u5B58\u6863\u7684\u56FA\u5B9A\u53E5)": {
1375
1653
  readonly attr: 409;
1376
- readonly since: "7.141.0";
1654
+ readonly since: "7.144.0";
1377
1655
  };
1378
1656
  readonly "POST /v1/tasks|/v1/tasks/stream|/v1/runs#images_url_credential(\u65B0\u63D0\u4EA4;\u4F53 request.field_invalid + field images[i].url + reason url_userinfo|url_credential_param)": {
1379
1657
  readonly attr: 400;
@@ -1435,6 +1713,14 @@ export declare const SELF_MINTED_WIRE: {
1435
1713
  readonly attr: 422;
1436
1714
  readonly since: "7.141.0";
1437
1715
  };
1716
+ readonly "POST /v1/tasks|/v1/tasks/stream|/v1/runs#settings.permissions.allow \u5E26\u5C42\u6761\u76EE { rule, layer }(\u65B0\u63D0\u4EA4;layer = \u8BBE\u7F6E\u6765\u6E90\u8BCD)": {
1717
+ readonly attr: 200;
1718
+ readonly since: "7.143.0";
1719
+ };
1720
+ readonly "POST /v1/tasks|/v1/tasks/stream|/v1/runs#allow \u6876\u91CC user \u5C42 / \u5F62\u8DEF\u5F84\u89C4\u5219\u800C\u6267\u884C\u73AF\u5883\u7684\u914D\u7F6E\u6839\u8BFB\u4E0D\u51FA(\u6C99\u7BB1\u8F66\u9053\u6CA1\u8F6C SEMA_CONFIG_DIR \u4E14 home \u672A\u77E5;\u4F53 request.unprocessable + field settings.permissions.allow + problems[].reason home_unresolvable;\u7EED\u8DD1 409 \u540C\u53E5)": {
1721
+ readonly attr: 422;
1722
+ readonly since: "7.143.0";
1723
+ };
1438
1724
  readonly "POST /v1/tasks|/v1/tasks/stream|/v1/runs#\u9650\u5236\u4FA7\u540D\u5185\u5E26 *(excludeTools)": {
1439
1725
  readonly attr: 200;
1440
1726
  readonly since: "7.137.0";
@@ -1483,33 +1769,117 @@ export declare const SELF_MINTED_WIRE: {
1483
1769
  readonly attr: 200;
1484
1770
  readonly since: "7.139.0";
1485
1771
  };
1486
- readonly "GET /v1/memory/entries/:entryId/provenance|POST /v1/memory/erase|GET /v1/memory/origin/clearances|POST /v1/memory/origin/entries/:entryId/clear#layer_unaddressed_two_stores(\u4E0D\u70B9\u540D\u5C42\u7684\u6761\u76EE id / \u5E97\u7EA7\u8D26\u672C\u8BF7\u6C42,\u672C\u90E8\u7F72\u70B9\u540D\u7684\u5C42\u5206\u4F4F\u4E24\u53EA\u5E97;\u4F53 request.memory_layer)": {
1772
+ readonly "GET /v1/memory/entries/:entryId/provenance|GET /v1/memory/origin/clearances|POST /v1/memory/origin/entries/:entryId/clear#layer_unaddressed_two_stores(\u4E0D\u70B9\u540D\u5C42\u7684\u6761\u76EE id / \u5E97\u7EA7\u8D26\u672C\u8BF7\u6C42,\u672C\u90E8\u7F72\u6709\u4E24\u53EA\u5E97 \u2014\u2014 \u76D8\u4E0A\u7684\u5E97\u96C6:\u4E2A\u4EBA\u6302\u8F7D\u4E0A\u6709\u4E2A\u4EBA\u5E97;\u4F53 request.memory_layer)": {
1487
1773
  readonly attr: 400;
1488
- readonly since: "7.140.0";
1774
+ readonly since: "7.143.0";
1775
+ };
1776
+ readonly "POST /v1/memory/export|POST /v1/memory/import|GET /v1/memory/origin/external#layers_span_two_stores(\u8BF7\u6C42\u70B9\u540D\u7684\u5C42\u5206\u4F4F\u4E24\u53EA\u5E97;\u4F53 request.memory_layer)": {
1777
+ readonly attr: 400;
1778
+ readonly since: "7.143.0";
1489
1779
  };
1490
- readonly "POST /v1/memory/erase|POST /v1/sessions/:id/memory/erase#erasure_store_unjudged(\u62B9\u9664\u843D\u5230\u90E8\u7F72\u7684\u5E97\u4E4B\u5916\u7684\u90A3\u53EA\u5E97:\u70B9\u540D\u7684\u5C42\u4F4F\u5728\u4E2A\u4EBA\u6302\u8F7D\u4E0A,\u6216\u6309\u4F1A\u8BDD\u62B9\u9664\u800C\u8FD9\u53EA\u4F1A\u8BDD\u5728\u53E6\u4E00\u53EA\u5E97\u6709\u8D21\u732E / \u90A3\u53EA\u5E97\u7684\u8D26\u8BFB\u4E0D\u51FA;\u4F53 memory.erasure_store_unjudged,\u4EC0\u4E48\u90FD\u6CA1\u5220)": {
1780
+ readonly "POST /v1/memory/erase#grant_spans_two_stores(expectedScopes \u7684\u5C42\u5206\u4F4F\u4E24\u53EA\u5E97;\u4F53 config.memory_erasure_scope,\u4EC0\u4E48\u90FD\u6CA1\u5220\u3001\u4EC0\u4E48\u90FD\u6CA1\u8BB0)": {
1781
+ readonly attr: 400;
1782
+ readonly since: "7.143.0";
1783
+ };
1784
+ readonly "POST /v1/memory/erase|POST /v1/sessions/:id/memory/erase#reaches_second_store(\u70B9\u540D\u7684\u5C42\u4F4F\u5728\u4E2A\u4EBA\u5E97 / \u6309\u4F1A\u8BDD\u6216\u6309 id \u62B9\u9664\u800C\u53E6\u4E00\u53EA\u5E97\u91CC\u6709\u90A3\u4E00\u4EFD;\u6BCF\u53EA\u5230\u8FBE\u7684\u5E97\u5404\u64E6\u5404\u7684\u90A3\u4E00\u4EFD,\u6536\u6267\u5408\u6210\u4E00\u4EFD)": {
1785
+ readonly attr: 200;
1786
+ readonly since: "7.143.0";
1787
+ };
1788
+ readonly "POST /v1/memory/erase|POST /v1/sessions/:id/memory/erase#requestId_reused_across_stores(\u540C\u4E00\u4E2A requestId \u5148\u5728\u4E00\u53EA\u5E97\u6267\u884C\u8FC7\u3001\u518D\u6362\u9009\u62E9\u5B50\u6216\u843D\u5230\u53E6\u4E00\u53EA\u5E97;\u4F53 memory.erasure_selector_mismatch,\u4EC0\u4E48\u90FD\u6CA1\u5220\u3001\u4EC0\u4E48\u90FD\u6CA1\u8BB0)": {
1491
1789
  readonly attr: 409;
1492
- readonly since: "7.140.0";
1790
+ readonly since: "7.143.0";
1493
1791
  };
1494
- readonly "POST /v1/memory/export|POST /v1/memory/import|GET /v1/memory/origin/external|POST /v1/memory/erase#layers_span_two_stores(\u8BF7\u6C42\u70B9\u540D\u7684\u5C42\u5206\u4F4F\u4E24\u53EA\u5E97;\u4F53 request.memory_layer)": {
1792
+ readonly "POST /v1/sessions/:id/memory/erase#body.scope(\u5C42\u5EA7\u9000\u5F79;\u4F53 request.body_shape)": {
1495
1793
  readonly attr: 400;
1496
- readonly since: "7.140.0";
1794
+ readonly since: "7.143.0";
1497
1795
  };
1498
- readonly "\u8BB0\u5FC6\u8BF8\u53E3 + POST /v1/admin/memory/consolidation/run|GET /v1/admin/memory/consolidation|GET /v1/memory/export|POST /v1/memory/sync/:scope#layer_unreadable(\u8BF7\u6C42\u70B9\u540D\u7684\u5C42\u5F15\u64CE\u8BFB\u4E0D\u51FA;\u4F53 request.memory_layer)": {
1796
+ readonly "\u8BB0\u5FC6\u8BF8\u53E3 + POST /v1/admin/memory/consolidation/run|GET /v1/admin/memory/consolidation|GET /v1/memory/export#layer_unreadable(\u8BF7\u6C42\u70B9\u540D\u7684\u5C42\u5F15\u64CE\u8BFB\u4E0D\u51FA;\u4F53 request.memory_layer)": {
1499
1797
  readonly attr: 400;
1500
1798
  readonly since: "7.140.0";
1501
1799
  };
1502
- readonly "POST /v1/memory/sync/:scope#identity_undeclared(DB \u8BB0\u5FC6\u5E73\u9762\u6CA1\u58F0\u660E MEMORY_SYNC_SERVE_IDENTITY;\u9274\u6743\u4E4B\u540E;\u4F53 feature.memory_sync_serve_disabled)": {
1800
+ readonly "POST /v1/memory/sync/:scope#any(\u540C\u6B65\u53E3\u6539\u5230 /v2;\u65E7\u8DEF\u5F84\u65E0\u4EBA\u8BA4\u9886;\u4F53 not_found.route)": {
1801
+ readonly attr: 404;
1802
+ readonly since: "7.143.0";
1803
+ };
1804
+ readonly "POST /v2/memory/sync/:scope#layer_unreadable(\u8BF7\u6C42\u70B9\u540D\u7684\u5C42\u5F15\u64CE\u8BFB\u4E0D\u51FA;\u4EFB\u4F55\u8BFB\u5199\u4E4B\u524D;\u4F53 request.memory_layer)": {
1805
+ readonly attr: 400;
1806
+ readonly since: "7.143.0";
1807
+ };
1808
+ readonly "POST /v2/memory/sync/:scope#identity_undeclared(DB \u8BB0\u5FC6\u5E73\u9762\u6CA1\u58F0\u660E MEMORY_SYNC_SERVE_IDENTITY;\u9274\u6743\u4E4B\u540E;\u4F53 feature.memory_sync_serve_disabled)": {
1503
1809
  readonly attr: 501;
1504
- readonly since: "7.142.0";
1810
+ readonly since: "7.143.0";
1505
1811
  };
1506
- readonly "POST /v1/memory/sync/:scope#peer_not_declared_identity(peer \u4E0D\u662F\u540C\u6B65\u8EAB\u4EFD\u7684\u89C4\u8303\u5F62 / \u5E26\u51ED\u636E / \u975E http(s) / \u8D85\u5BBD / \u7A7A\u4E32;\u4F53 request.field_invalid + field peer + reason)": {
1812
+ readonly "POST /v2/memory/sync/:scope#peer_not_declared_identity(peer \u4E0D\u662F\u540C\u6B65\u8EAB\u4EFD\u7684\u89C4\u8303\u5F62 / \u5E26\u51ED\u636E / \u975E http(s) / \u8D85\u5BBD / \u7A7A\u4E32;\u4F53 request.field_invalid + field peer + reason)": {
1507
1813
  readonly attr: 400;
1508
- readonly since: "7.142.0";
1814
+ readonly since: "7.143.0";
1509
1815
  };
1510
- readonly "POST /v1/memory/sync/:scope#peer_not_this_center(peer \u662F\u89C4\u8303\u5F62\u4F46\u4E0D\u7B49\u4E8E\u672C\u4E2D\u5FC3\u58F0\u660E\u7684\u8EAB\u4EFD;\u96F6\u8BFB\u96F6\u5199;\u4F53 config.memory_sync_target_mismatch)": {
1816
+ readonly "POST /v2/memory/sync/:scope#peer_not_this_center(peer \u662F\u89C4\u8303\u5F62\u4F46\u4E0D\u7B49\u4E8E\u672C\u4E2D\u5FC3\u58F0\u660E\u7684\u8EAB\u4EFD;\u96F6\u8BFB\u96F6\u5199;\u4F53 config.memory_sync_target_mismatch)": {
1511
1817
  readonly attr: 409;
1512
- readonly since: "7.142.0";
1818
+ readonly since: "7.143.0";
1819
+ };
1820
+ readonly "POST /v2/memory/sync/:scope#partition_reset(\u4E00\u8F6E\u7684\u6700\u540E\u4E00\u6B21\u5199\u4E4B\u540E\u5206\u533A\u5316\u8EAB\u5DF2\u53D8;\u4F53 internal.error)": {
1821
+ readonly attr: 500;
1822
+ readonly since: "7.143.0";
1823
+ };
1824
+ readonly "POST /v1/approvals/:id/decide#peer_inbound_decided(:id \u5E26 peer_inbound: \u524D\u7F00,\u8C03\u7528\u65B9\u81EA\u5DF1\u7684\u3001\u6210\u56E0\u4EBA\u80FD\u7B54\u7684\u88AB\u6263\u6765\u4FE1;\u4F53 { kind, id, outcome })": {
1825
+ readonly attr: 200;
1826
+ readonly since: "7.143.0";
1827
+ };
1828
+ readonly "POST /v1/approvals/:id/decide#peer_inbound_keys_do_not_apply(\u4F53\u5E26 decision \u4EE5\u5916\u7684\u505C\u9A7B\u95E8\u952E;\u4F53 request.body_shape + unsupportedKeys)": {
1829
+ readonly attr: 400;
1830
+ readonly since: "7.143.0";
1831
+ };
1832
+ readonly "POST /v1/approvals/:id/decide#peer_inbound_store_refused(\u4FE1\u7BB1\u5E97\u62D2\u4E86\u51B3\u65AD\u90A3\u4E00\u6B65,\u4EC0\u4E48\u90FD\u6CA1\u51B3;\u4F53 state.peer_decision_unrecorded)": {
1833
+ readonly attr: 503;
1834
+ readonly since: "7.143.0";
1835
+ };
1836
+ readonly "POST /v1/approvals/:sessionId/decide#tool_approval_decided_without_boundInputHash(\u5DE5\u5177\u5BA1\u6279\u95E8;\u53EA\u56DE\u663E boundCallId \u6216\u4E00\u4F4D\u90FD\u4E0D\u56DE\u663E;\u95E8\u578B\u5B88\u536B\u4E4B\u540E;\u4F53 decide_requires_binding + bindingEnforced + missingKeys;\u5361\u4ECD pending)": {
1837
+ readonly attr: 400;
1838
+ readonly since: "7.143.0";
1839
+ };
1840
+ readonly "POST /v1/approvals/:sessionId/decide#replay_without_boundInputHash(\u9996\u51B3\u5DF2\u7ED3\u6E05\u3001\u540C\u4E00\u4EFD\u4F53\u4E0D\u5E26 boundInputHash \u91CD\u53D1;\u4F53 not_found.approval)": {
1841
+ readonly attr: 404;
1842
+ readonly since: "7.143.0";
1843
+ };
1844
+ readonly "GET /v1/sessions/:id#owner_unreadable(DB_BACKEND=local;\u884C\u4E8B\u5B9E\u6CA1\u6709\u843D\u4E0B \u2227 \u5B58\u6863\u8BFB\u4E0D\u51FA \u21D2 \u5C5E\u4E3B\u4E0D\u53EF\u5224;\u4F53 not_found.session,\u4E0E\u975E\u5C5E\u4E3B / \u4E0D\u5B58\u5728\u540C\u7801\u540C\u6587)": {
1845
+ readonly attr: 404;
1846
+ readonly since: "7.143.0";
1847
+ };
1848
+ readonly "GET /v1/sessions/:id/memory-status#owner_unreadable(DB_BACKEND=local;\u884C\u4E8B\u5B9E\u6CA1\u6709\u843D\u4E0B \u2227 \u5B58\u6863\u8BFB\u4E0D\u51FA \u21D2 \u5C5E\u4E3B\u4E0D\u53EF\u5224;\u4F53 not_found.session,\u4E0E\u975E\u5C5E\u4E3B / \u4E0D\u5B58\u5728\u540C\u7801\u540C\u6587)": {
1849
+ readonly attr: 404;
1850
+ readonly since: "7.143.0";
1851
+ };
1852
+ readonly "POST /v1/sessions/:id/memory/erase#owner_unreadable(DB_BACKEND=local;\u884C\u4E8B\u5B9E\u6CA1\u6709\u843D\u4E0B \u2227 \u5B58\u6863\u8BFB\u4E0D\u51FA \u21D2 \u5C5E\u4E3B\u4E0D\u53EF\u5224;\u4F53 not_found.session,\u4E0E\u975E\u5C5E\u4E3B / \u4E0D\u5B58\u5728\u540C\u7801\u540C\u6587)": {
1853
+ readonly attr: 404;
1854
+ readonly since: "7.143.0";
1855
+ };
1856
+ readonly "GET /v1/sessions/:id/head#owner_unreadable(DB_BACKEND=local;\u884C\u4E8B\u5B9E\u6CA1\u6709\u843D\u4E0B \u2227 \u5B58\u6863\u8BFB\u4E0D\u51FA \u21D2 \u5C5E\u4E3B\u4E0D\u53EF\u5224;\u4F53 not_found.session,\u4E0E\u975E\u5C5E\u4E3B / \u4E0D\u5B58\u5728\u540C\u7801\u540C\u6587)": {
1857
+ readonly attr: 404;
1858
+ readonly since: "7.143.0";
1859
+ };
1860
+ readonly "GET /v1/sessions/:id/events#owner_unreadable(DB_BACKEND=local;\u884C\u4E8B\u5B9E\u6CA1\u6709\u843D\u4E0B \u2227 \u5B58\u6863\u8BFB\u4E0D\u51FA \u21D2 \u5C5E\u4E3B\u4E0D\u53EF\u5224;\u4F53 not_found.session,\u4E0E\u975E\u5C5E\u4E3B / \u4E0D\u5B58\u5728\u540C\u7801\u540C\u6587)": {
1861
+ readonly attr: 404;
1862
+ readonly since: "7.143.0";
1863
+ };
1864
+ readonly "GET /v1/sessions/:id/execution-placement#owner_unreadable(DB_BACKEND=local;\u884C\u4E8B\u5B9E\u6CA1\u6709\u843D\u4E0B \u2227 \u5B58\u6863\u8BFB\u4E0D\u51FA \u21D2 \u5C5E\u4E3B\u4E0D\u53EF\u5224;\u4F53 not_found.session,\u4E0E\u975E\u5C5E\u4E3B / \u4E0D\u5B58\u5728\u540C\u7801\u540C\u6587)": {
1865
+ readonly attr: 404;
1866
+ readonly since: "7.143.0";
1867
+ };
1868
+ readonly "POST /v1/sessions/:id/notify#occupant_changed_before_delivery(\u5C5E\u4E3B\u95E8\u8BFB\u8FC7\u4E4B\u540E\u3001\u6295\u9012\u4E4B\u524D\u4F1A\u8BDD\u88AB\u5220\u6216\u540C id \u6362\u4E86\u4F4F\u5BA2;\u96F6\u6295\u9012;\u4F53 not_found.session,\u4E0E\u4E0D\u5B58\u5728\u540C\u7801\u540C\u6587)": {
1869
+ readonly attr: 404;
1870
+ readonly since: "7.143.0";
1871
+ };
1872
+ readonly "GET /v1/capabilities/mcp#engine_name_collision(\u4E2D\u5FC3\u58F0\u660E\u4E24\u53F0\u5F52\u4E00\u540E\u540C\u6302\u4E00\u4E2A\u5DE5\u5177\u547D\u540D\u7A7A\u95F4\u524D\u7F00,\u5F15\u64CE\u5728\u4EFB\u4F55\u4F20\u8F93\u88AB\u89E6\u78B0\u4E4B\u524D\u6574\u96C6\u62D2;\u4F53 config.mcp_server_name_collision + \u5F15\u64CE\u539F\u53E5;\u4E0E\u540C\u6B65\u63D0\u4EA4\u817F\u540C\u4E00\u5F20\u7801 \u2192 \u72B6\u6001\u8868)": {
1873
+ readonly attr: 409;
1874
+ readonly since: "7.143.0";
1875
+ };
1876
+ readonly "POST /v1/tasks#engine_name_collision(\u540C\u6B65\u817F;\u540C\u4E00\u4EFD\u58F0\u660E\u96C6\u88AB\u5F15\u64CE\u6574\u96C6\u62D2;\u96F6\u5DE5\u4F5C\u7684\u62D2;\u4F53 config.mcp_server_name_collision)": {
1877
+ readonly attr: 409;
1878
+ readonly since: "7.143.0";
1879
+ };
1880
+ readonly "POST /v1/rules/local-import/prepare#tightening_write_failed(\u4E00\u6761\u6536\u4E0B\u7684 deny / ask \u5199\u4E0D\u8FDB\u5E97;\u8FD9\u4E00\u6279\u7684\u653E\u884C\u6263\u4E0B\u3001\u6CA1\u6709\u7968;\u4F53 state.rule_write_failed + committed,\u540C POST /v1/rules)": {
1881
+ readonly attr: 503;
1882
+ readonly since: "7.143.0";
1513
1883
  };
1514
1884
  };
1515
1885
  };
@@ -1533,11 +1903,7 @@ export declare const SELF_MINTED_WIRE: {
1533
1903
  readonly since: "7.140.0";
1534
1904
  };
1535
1905
  readonly "GET /v1/sessions/:id/memory-status#query.scope": {
1536
- readonly attr: "optional;non-empty-string else 400 request.field_invalid;names the layer whose store answers;absent ⇒ every store of this deployment, folded;cache keyed by (session, store control plane)";
1537
- readonly since: "7.140.0";
1538
- };
1539
- readonly "POST /v1/sessions/:id/memory/erase#body.scope": {
1540
- readonly attr: "optional;non-empty-string else 400 request.field_invalid;names the layer whose store answers;absent ⇒ the deployment's store;selector still minted from the path";
1906
+ readonly attr: "optional;non-empty-string else 400 request.field_invalid;names the layer whose store answers (that store's engine answer);absent ⇒ the deployment's answer (the engine folds every store on disk);cache keyed by (session, store control plane | deployment)";
1541
1907
  readonly since: "7.140.0";
1542
1908
  };
1543
1909
  };
@@ -1570,7 +1936,7 @@ export declare const SELF_MINTED_WIRE: {
1570
1936
  * `not-canonical` = 值本身没缺陷、但不是它自己的规范形。两张拒体同一张词表:会话记忆同步触发口的 `target`、中心侧同步口的 `peer`。
1571
1937
  */
1572
1938
  readonly memorySyncIdentityFlaw: {
1573
- readonly at: "400 request.field_invalid reason(POST /v1/sessions/:id/memory/sync 的 target · POST /v1/memory/sync/:scope 的 peer;另带 field)";
1939
+ readonly at: "400 request.field_invalid reason(POST /v1/sessions/:id/memory/sync 的 target · POST /v2/memory/sync/:scope 的 peer;另带 field)";
1574
1940
  readonly members: {
1575
1941
  "not-http-url": {
1576
1942
  attr: string;
@@ -1619,8 +1985,8 @@ export declare const SELF_MINTED_WIRE: {
1619
1985
  readonly since: "7.142.0";
1620
1986
  };
1621
1987
  readonly "200#scopes": {
1622
- readonly attr: "always;the read set: latest settled run's effectiveMemoryScopes (mounted ⇒ scope keys in serving order; memoryless / none ⇒ [])";
1623
- readonly since: "7.142.0";
1988
+ readonly attr: "always;the read set: latest settled run's effectiveMemoryScopes (mounted ⇒ scope keys in serving order; none ⇒ []; memoryless ⇒ no read set, 409 reason memory_not_mounted)";
1989
+ readonly since: "7.143.0";
1624
1990
  };
1625
1991
  readonly "200#layers": {
1626
1992
  readonly attr: "present-iff no whole-round refusal;one entry per read-set layer the round ran (engine outcome synced | incomplete | refused | failed)";
@@ -1634,6 +2000,78 @@ export declare const SELF_MINTED_WIRE: {
1634
2000
  readonly attr: "present-iff the session has a run in flight";
1635
2001
  readonly since: "7.142.0";
1636
2002
  };
2003
+ readonly "409 conflict.session_memory_unobserved#reason": {
2004
+ readonly attr: "always;closed set sessionMemoryUnobservedReason, judged in read order (no settled run → the latest settled run's observation gives no read set: empty observation or memory not mounted → no leaf);the message is a function of reason";
2005
+ readonly since: "7.143.0";
2006
+ };
2007
+ };
2008
+ };
2009
+ /** 中心侧同步口(`<面>#<键>` → 读法 / 在场律)。只登本版新出现的(路径版本段、主张、答复游标的化身、化身拒答两键)。 */
2010
+ readonly centralMemorySyncWire: {
2011
+ readonly at: "POST /v2/memory/sync/:scope(<面>#<键> → 读法 / 在场律)";
2012
+ readonly members: {
2013
+ readonly "path#version": {
2014
+ readonly attr: "/v2/memory/sync/:scope (the engine's path);/v1/memory/sync/… is unclaimed ⇒ 404 not_found.route";
2015
+ readonly since: "7.143.0";
2016
+ };
2017
+ readonly "body#peerIncarnation": {
2018
+ readonly attr: "optional;the client cursor's peerIncarnation verbatim;1..128 chars else 422 memory_sync_invalid_body;compared with the scope partition's incarnation before any read or write";
2019
+ readonly since: "7.143.0";
2020
+ };
2021
+ readonly "200#cursor.incarnation": {
2022
+ readonly attr: "always on a result;the scope partition's incarnation (minted when the partition is first read by a sync, then stored);equals the claim when one was made";
2023
+ readonly since: "7.143.0";
2024
+ };
2025
+ readonly "200#refused": {
2026
+ readonly attr: "present-iff the round is refused on the incarnation axis;\"baseline_incarnation\";the claim is not the partition's incarnation, or a non-empty baseRevs with no claim;nothing read or written";
2027
+ readonly since: "7.143.0";
2028
+ };
2029
+ readonly "200#incarnation": {
2030
+ readonly attr: "present-iff refused;the scope partition's incarnation";
2031
+ readonly since: "7.143.0";
2032
+ };
2033
+ };
2034
+ };
2035
+ /**
2036
+ * 会话记忆同步触发口 409 `conflict.session_memory_unobserved` 体上 `reason` 的闭集(判序 = 读的先后)。词表属主 = `http/routes/session-memory-sync.ts` 的
2037
+ * `SESSION_MEMORY_UNOBSERVED_REASONS`(两只空观测因由的属主 = `plugins/store-contracts.ts` 的 `MEMORY_OBSERVATION_ABSENT_REASONS`,唯一铸点 `settledLegObservationOf`)。
2038
+ */
2039
+ readonly sessionMemoryUnobservedReason: {
2040
+ readonly at: "409 conflict.session_memory_unobserved reason(POST /v1/sessions/:id/memory/sync)";
2041
+ readonly members: {
2042
+ no_settled_run: {
2043
+ attr: string;
2044
+ since: string;
2045
+ };
2046
+ run_result_missing: {
2047
+ attr: string;
2048
+ since: string;
2049
+ };
2050
+ run_result_unobserved: {
2051
+ attr: string;
2052
+ since: string;
2053
+ };
2054
+ memory_not_mounted: {
2055
+ attr: string;
2056
+ since: string;
2057
+ };
2058
+ no_leaf: {
2059
+ attr: string;
2060
+ since: string;
2061
+ };
2062
+ };
2063
+ };
2064
+ /**
2065
+ * `400 decide_requires_binding` 拒体上的键里本版新增的(`<键>` → 在场律)。唯一铸点 = 续跑腿的决断绑定判官 `decidedActionOf`(`http/resume-legs.ts`)判不过的那一臂;
2066
+ * `bindingEnforced` 早于本表、不在这里。
2067
+ */
2068
+ readonly decideRequiresBindingBodyKey: {
2069
+ readonly at: "400 decide_requires_binding 拒体(<键> → 在场律)";
2070
+ readonly members: {
2071
+ readonly missingKeys: {
2072
+ readonly attr: "always;non-empty subset of [boundCallId, boundInputHash] in that order (absent or empty string ⇒ missing)";
2073
+ readonly since: "7.143.0";
2074
+ };
1637
2075
  };
1638
2076
  };
1639
2077
  /**
@@ -1684,8 +2122,8 @@ export declare const SELF_MINTED_WIRE: {
1684
2122
  readonly since: "7.141.0";
1685
2123
  };
1686
2124
  readonly "400 request.field_invalid#settings.permissions.allow.bad_entry": {
1687
- readonly attr: "<field>[<index>] is not a string — every entry must be a permission-rule string (a settings layer's { \"rule\", \"layer\" } entry is read in deny / ask only). …";
1688
- readonly since: "7.141.0";
2125
+ readonly attr: "<field>[<index>] is neither a rule string nor a { \"rule\", \"layer\" } entry (…) — every entry must be one. …";
2126
+ readonly since: "7.143.0";
1689
2127
  };
1690
2128
  readonly "400 request.field_invalid#a2aPeers.not_array": {
1691
2129
  readonly attr: "head: a2aPeers is <shape>, not an array of A2A peer declarations";
@@ -1767,6 +2205,26 @@ export declare const SELF_MINTED_WIRE: {
1767
2205
  readonly attr: "the session row changed since the rowTag you sent was read — nothing was written; currentRow is the row as it stands now: decide again, then send its rowTag";
1768
2206
  readonly since: "7.139.0";
1769
2207
  };
2208
+ readonly "400 decide_requires_binding#POST /v1/approvals/:sessionId/decide": {
2209
+ readonly attr: "decide requires the decision-action binding — echo boundCallId and boundInputHash exactly as the pending approval you are deciding shows them (GET /v1/approvals), so a decision on a view that has since been replaced is refused instead of landing on the gate that replaced it";
2210
+ readonly since: "7.143.0";
2211
+ };
2212
+ readonly "400 request.body_shape#/decide.root_shape": {
2213
+ readonly attr: "body must be { decision: 'approve' | 'deny', boundCallId, boundInputHash, reason?, answer?, checkpointToken?, updatedInput?, remember?, decidedBy?, feedback? }";
2214
+ readonly since: "7.143.0";
2215
+ };
2216
+ readonly "409 conflict.session_memory_unobserved#run_result_missing|run_result_unobserved": {
2217
+ readonly attr: "the latest settled run in this session has no memory observation on record, and an earlier run is never read in its place — run another task in this session (…), then sync";
2218
+ readonly since: "7.143.0";
2219
+ };
2220
+ readonly "409 conflict.session_memory_unobserved#memory_not_mounted": {
2221
+ readonly attr: "memory was configured for the latest settled run in this session but did not mount, so which memory this session reads is unknown, and an earlier run is never read in its place — run another task in this session (…), then sync";
2222
+ readonly since: "7.143.0";
2223
+ };
2224
+ readonly "409 conflict.session_memory_unobserved#no_leaf": {
2225
+ readonly attr: "this session has no transcript yet, so there is no revision to sync from — run a task in it (…), then sync";
2226
+ readonly since: "7.143.0";
2227
+ };
1770
2228
  };
1771
2229
  };
1772
2230
  /**
@@ -1780,6 +2238,39 @@ export declare const SELF_MINTED_WIRE: {
1780
2238
  readonly attr: "optional;non-empty-string≤128;not-current⇒409 approval_stale;direct-door:signed-envelope-ext";
1781
2239
  readonly since: "7.137.0";
1782
2240
  };
2241
+ readonly "POST /v1/tool-approvals/:id/respond#decidedVia": {
2242
+ readonly attr: "optional;DECIDED_VIA word beside decidedBy \"policy\" only;else⇒400 request.field_invalid (this door: request.body_shape)";
2243
+ readonly since: "7.143.0";
2244
+ };
2245
+ readonly "POST /v1/tasks/:taskId/asks/:askId/decision#decidedVia": {
2246
+ readonly attr: "optional;DECIDED_VIA word beside decidedBy \"policy\" only;else⇒400 request.field_invalid";
2247
+ readonly since: "7.143.0";
2248
+ };
2249
+ readonly "POST /v1/approvals/:sessionId/decide#decidedVia": {
2250
+ readonly attr: "optional;DECIDED_VIA word beside decidedBy \"policy\" only;else⇒400 request.field_invalid;direct-door:never accepted";
2251
+ readonly since: "7.143.0";
2252
+ };
2253
+ readonly "POST /v1/assistant/tasks/:id/plan_review#decidedVia": {
2254
+ readonly attr: "optional;DECIDED_VIA word beside decidedBy \"policy\" only;else⇒400 request.field_invalid;direct-door:never accepted";
2255
+ readonly since: "7.143.0";
2256
+ };
2257
+ };
2258
+ };
2259
+ /**
2260
+ * 续跑门族请求体上的重述键(键名与值形 = 提交体同键;律的唯一属主 = `http/resume-restatement.ts` 顶注)。四道门同一条律 ⇒ 一键一行,
2261
+ * `attr` 写读法;直连门两道回决门的整族拒收码在附录 A。
2262
+ */
2263
+ readonly resumeRestatementKey: {
2264
+ readonly at: "续跑门族请求体(POST /v1/approvals/:id/decide · /v1/assistant/tasks/:id/plan_review · /v1/assistant/tasks/:id/resume · /v1/sessions/:id/wake)的重述键";
2265
+ readonly members: {
2266
+ a2aPeers: {
2267
+ attr: string;
2268
+ since: string;
2269
+ };
2270
+ mcpServers: {
2271
+ attr: string;
2272
+ since: string;
2273
+ };
1783
2274
  };
1784
2275
  };
1785
2276
  /**
@@ -1939,6 +2430,10 @@ export declare const SELF_MINTED_WIRE: {
1939
2430
  attr: string;
1940
2431
  since: string;
1941
2432
  };
2433
+ 4: {
2434
+ attr: string;
2435
+ since: string;
2436
+ };
1942
2437
  };
1943
2438
  };
1944
2439
  /**
@@ -2201,6 +2696,11 @@ export declare const SELF_MINTED_WIRE: {
2201
2696
  readonly attr: "none(echoed-verbatim)";
2202
2697
  readonly since: "7.141.0";
2203
2698
  };
2699
+ /** 7.143.0:`MODEL_ROUTER_ID` 行的缺席说明 —— 缺席 ⇒ leader 路由腿在服务表里解 `classifier` 角色(此前:缺席 ⇒ 钉 `MODEL_CHEAP_ID` 的名,再退 default)。 */
2700
+ readonly "GET /v1/config/catalog#rows[MODEL_ROUTER_ID].derivedDefaultNote": {
2701
+ readonly attr: "absent=>classifier-role-in-served-table";
2702
+ readonly since: "7.143.0";
2703
+ };
2204
2704
  /**
2205
2705
  * MCP 远端失败句在面板与重拨回执上的出口读法:出口座的 `mcp-remote-text` 行(`trace/exit-seat.ts`)—— 与 trace / 通告同一个脱敏器(引擎记号 `[redacted]` = 已抹的值,原样;
2206
2706
  * 引擎记号占了方案词位时头值余下的部分照抹;引擎放过的形照抹),界 200(切点不落进记号)。7.137.0 是按记号切开、逐段过 `redactSecrets` 的另一只读法
@@ -2231,14 +2731,65 @@ export declare const SELF_MINTED_WIRE: {
2231
2731
  readonly since: "7.137.0";
2232
2732
  };
2233
2733
  /**
2234
- * 7.140.0:会话记忆状态不带层座 ⇒ 本部署每一只店的引擎答案按一条折叠律合成一份(`memory-operator-faces.ts` `foldPlaneStatuses`;契约 §9 开头):
2235
- * 计数相加 / 最近一次取大 / 任一店有采集记录即 true / 任一店读不出 ⇒ 那一键缺席。一只店 ⇒ 恒等(单店部署字节同上一版)。
2236
- * 钉 test/memory-operator-faces.test.ts「逐店折叠律」、test/memory-layer-seat-http.test.ts「会话记忆状态不带层座」。
2734
+ * 7.143.0:会话记忆状态不带层座 ⇒ 引擎部署对象的答案(`createMemoryDeployment(…).sessionMemoryStatus`;折叠律只在引擎里,契约
2735
+ * `memory.deployment_status.fold`):计数相加 / 最近一次取大 / 任一店有采集记录即 true(`optOutSource: "record"`)/ 全部店答 false 才 false /
2736
+ * 否则缺席并带 `optOutSource: "fault"`。店集是盘上的(换了 `MEMORY_SCOPE` 之后个人挂载上留下的店照样算)。一只店 ⇒ 恒等。
2737
+ * 钉 test/memory-layer-seat-http.test.ts「会话记忆状态不带层座」、test/memory-project-scope.test.ts ⑩。
2237
2738
  */
2238
2739
  readonly "GET /v1/sessions/:id/memory-status#committedCount|foldedCount|lastCaptureAt|captureOptedOut|optOutSource(\u4E0D\u5E26\u5C42\u5EA7)": {
2239
- readonly attr: "fold-across-deployment-stores(sum|max|any-record|absent-if-any-unreadable);one-store⇒identity";
2740
+ readonly attr: "engine-deployment-fold(memory.deployment_status.fold:sum|latest|any-record⇒true+record|all-false⇒false|else optOutSource:fault);store set = stores on disk;one-store⇒identity";
2240
2741
  readonly since: "7.140.0";
2241
2742
  };
2743
+ /**
2744
+ * 7.143.0:`modelPlane.catalog` 的 `refused` 改读**最新到达**的那份候选(候选判官整拒,或模型面组拒且落下组拒的那次 apply 就是最新一次到达);此前模型面那一半读
2745
+ * `/health.modelRefusals.plane` —— 最近一份被 stage 判过的模型面的组拒判决,更新的候选到了而没有走到模型面那一判时不撤(`/health.modelRefusals.plane` 本身的读法不变)。
2746
+ * 钉 test/plane-refusal-latest-arrival.test.ts。
2747
+ */
2748
+ readonly "GET /v1/models#modelPlane.catalog(refused \u7684\u6A21\u578B\u9762\u90A3\u4E00\u534A)": {
2749
+ readonly attr: "latest-arrival";
2750
+ readonly since: "7.143.0";
2751
+ };
2752
+ /**
2753
+ * 7.143.0:live 模型文本的逐块帧(`POST /v1/tasks/stream` 顶层与转发子代腿、子代 tail 面)只放自由文本脱敏器已判定的字节(`trace/model-segment.ts` 的登记册经
2754
+ * `trace/redact.ts` 的流式口 `createRedactionStream`:与 `done` / 账本 / 段末帧同一只扫描器、同一张表,未决尾由脱敏器的臂表读出)⇒ 一段的逐块帧拼接 = 段末帧正文;core 的每一块仍恰一帧、同一枚 `eventId`(`delta` 可为 `""`),
2755
+ * 段末还没放出的字节紧贴段末帧之前多一帧、不带 `eventId`。此前 `text_delta` 逐块原样、`reasoning_delta` 逐块各过一次脱敏器。
2756
+ * 钉 test/live-model-text-redact.test.ts、test/live-model-text-hold-law.test.ts。
2757
+ */
2758
+ readonly "SSE text_delta#delta": {
2759
+ readonly attr: "live-hold:same-redactor-stream(pending-tail-from-arm-table);concat=segment-end-content;remainder-frame-without-eventId";
2760
+ readonly since: "7.143.0";
2761
+ };
2762
+ readonly "SSE reasoning_delta#delta": {
2763
+ readonly attr: "live-hold:same-redactor-stream(pending-tail-from-arm-table);concat=segment-end-content;remainder-frame-without-eventId";
2764
+ readonly since: "7.143.0";
2765
+ };
2766
+ /** 7.143.0:子代 tail 面的 `reasoning_end.content` = 整段(登记册随开着的段活着,没人听时也攒原文);此前只覆盖订阅者开始听之后的那一截。钉 test/live-model-text-redact.test.ts tail 组。 */
2767
+ readonly "GET /v1/runs/:id/subagents/:handle/stream#reasoning_end.content": {
2768
+ readonly attr: "whole-segment-for-late-subscriber";
2769
+ readonly since: "7.143.0";
2770
+ };
2771
+ /**
2772
+ * 7.144.0:文字段的状态边界只有一条 —— 段(段界谓词 + 腿终局 / 子代终态),与账本 `text` 行同一个单位;引擎的 `text_end` 关的是文字块,是这一块的交付点、不再收段
2773
+ * (`trace/model-segment.ts` 的 `text_end` 分支经流式口的交付口 `takeAll` 放出这一块余下的字节,段的流接着喂下一块;分歧核对只在段收时一次)。
2774
+ * 锚在一块、值在下一块 ⇒ 下一块的 `text_delta` 照样遮;块界上按到此为止的判定与整段判定不同(一个凭据形横跨块界:读得出的半形出遮记号、读不出的前缀半截原样出门;
2775
+ * 或交付时认作凭据、后文让它不再是:活流那一截是记号)⇒ 活流按到此为止、账本整段判、计数 `server.live-text.hold-diverged` 恰 +1。此前文字段在每个 `text_end` 上收掉重开。
2776
+ * 钉 test/live-model-text-redact.test.ts「文字脱敏单位 = 段」组。
2777
+ */
2778
+ readonly "SSE text_delta#delta(\u6587\u5B57\u6BB5\u7684\u72B6\u6001\u8DE8\u6587\u5B57\u5757)": {
2779
+ readonly attr: "segment-scoped-redactor-state;text_end=block-delivery-not-segment-close;block-end-as-ended-vs-whole-differs=live-as-ended+ledger-whole+hold-diverged+1";
2780
+ readonly since: "7.144.0";
2781
+ };
2782
+ /** 7.144.0:`text_end.content` 仍是引擎给的那一块正文(引擎修剪过的照样),接在同段已交付的前缀之后判 ⇒ 值在本块、锚在前一块照样遮;此前孤立地过脱敏器。钉同上。 */
2783
+ readonly "SSE text_end#content(\u63A5\u5728\u540C\u6BB5\u524D\u7F00\u4E4B\u540E\u5224)": {
2784
+ readonly attr: "engine-block-content;judged-after-segment-prefix";
2785
+ readonly since: "7.144.0";
2786
+ };
2787
+ /** 7.144.0:账本 `text` 行的正文 = 段内各块原文依次拼接,块原文唯一定义 = `trace/model-segment.ts` 的 `blockText`(有 delta 字节 ⇒ 那些字节;一个都没有、只有 `text_end` 的块 ⇒ 它的正文),
2788
+ * ledger 写口与续跑腿同读;此前两条账本腿只拼 delta 字节,只有 `text_end` 的块不在行里。钉 test/live-model-text-redact.test.ts、test/durable-resume-http.test.ts「修复轮 ⑤」。 */
2789
+ readonly "GET /v1/runs/:id/events#text.text(\u6BB5\u6587\u672C\u542B\u53EA\u6709 text_end \u7684\u5757)": {
2790
+ readonly attr: "segment-text=block-texts-concat;end-only-block=text_end.content";
2791
+ readonly since: "7.144.0";
2792
+ };
2242
2793
  };
2243
2794
  };
2244
2795
  };