@sema-agent/server 7.148.0 → 7.149.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 (247) hide show
  1. package/MIGRATION.md +429 -0
  2. package/README.md +16 -1
  3. package/README.zh-CN.md +4 -0
  4. package/USAGE.md +89 -55
  5. package/dist/adoption/wire.d.ts +3 -3
  6. package/dist/approval-card.d.ts +32 -32
  7. package/dist/approval-leg-origin.d.ts +33 -0
  8. package/dist/approval-leg-origin.js +4 -0
  9. package/dist/auth-bridge.d.ts +9 -1
  10. package/dist/auth-bridge.js +4 -4
  11. package/dist/auth-keys.d.ts +10 -1
  12. package/dist/auth-keys.js +8 -0
  13. package/dist/boot/execution-env.js +10 -11
  14. package/dist/boot/execution-lane.d.ts +6 -4
  15. package/dist/boot/execution-lane.js +3 -1
  16. package/dist/boot/org-delivery.d.ts +3 -2
  17. package/dist/boot/resolve-spec.js +6 -4
  18. package/dist/boot/runner-deps.js +3 -1
  19. package/dist/boot/stage-01-config.d.ts +1 -0
  20. package/dist/boot/stage-01-config.js +4 -3
  21. package/dist/boot/stage-02-web-admin-pull.d.ts +1 -0
  22. package/dist/boot/stage-02-web-admin-pull.js +10 -2
  23. package/dist/boot/stage-03-store-backend.d.ts +1 -0
  24. package/dist/boot/stage-03-store-backend.js +2 -2
  25. package/dist/boot/stage-04-stores.d.ts +1 -0
  26. package/dist/boot/stage-05-execution-env.d.ts +1 -0
  27. package/dist/boot/stage-06-runners.d.ts +2 -1
  28. package/dist/boot/stage-07-capability-layer.d.ts +2 -1
  29. package/dist/boot/stage-08-reapers.d.ts +2 -1
  30. package/dist/boot/stage-09-leader.d.ts +2 -1
  31. package/dist/boot/stage-10-http-server.d.ts +2 -1
  32. package/dist/boot/stores.d.ts +3 -0
  33. package/dist/boot/stores.js +22 -19
  34. package/dist/capabilities/tool-defer.d.ts +1 -1
  35. package/dist/capability-facts.d.ts +5 -4
  36. package/dist/capability-facts.js +3 -14
  37. package/dist/card-settle-stored-scope.d.ts +56 -0
  38. package/dist/card-settle-stored-scope.js +27 -0
  39. package/dist/card-void.d.ts +7 -12
  40. package/dist/card-void.js +2 -7
  41. package/dist/config-catalog.d.ts +12 -0
  42. package/dist/config-catalog.js +36 -32
  43. package/dist/config-invariants.d.ts +5 -4
  44. package/dist/config-invariants.js +4 -4
  45. package/dist/config-types.d.ts +37 -5
  46. package/dist/config.d.ts +6 -5
  47. package/dist/config.js +35 -24
  48. package/dist/context-window-notice.d.ts +31 -0
  49. package/dist/context-window-notice.js +28 -0
  50. package/dist/deployment-shape.d.ts +20 -11
  51. package/dist/deployment-shape.js +1 -0
  52. package/dist/env-name-allowlist-knobs.d.ts +6 -5
  53. package/dist/env-name-allowlist-knobs.js +5 -0
  54. package/dist/execution-lane-caps.d.ts +20 -5
  55. package/dist/execution-lane-caps.js +18 -4
  56. package/dist/hooks/command-spawn.d.ts +7 -2
  57. package/dist/hooks/command-spawn.js +13 -6
  58. package/dist/hooks/hook-runner.d.ts +5 -0
  59. package/dist/hooks/hook-runner.js +11 -7
  60. package/dist/http/admission.js +3 -3
  61. package/dist/http/approval-sweeps.js +3 -2
  62. package/dist/http/claim-heartbeat.d.ts +3 -3
  63. package/dist/http/claim-heartbeat.js +3 -3
  64. package/dist/http/claimed-run.d.ts +16 -9
  65. package/dist/http/claimed-run.js +8 -0
  66. package/dist/http/dispatch.js +5 -3
  67. package/dist/http/durable-run-leg.d.ts +8 -1
  68. package/dist/http/durable-run-leg.js +30 -11
  69. package/dist/http/execution-context.d.ts +115 -14
  70. package/dist/http/execution-context.js +130 -40
  71. package/dist/http/owner-access.d.ts +3 -2
  72. package/dist/http/owner-access.js +2 -3
  73. package/dist/http/principal-gate.d.ts +18 -11
  74. package/dist/http/principal-gate.js +3 -1
  75. package/dist/http/resume-ctx-read.d.ts +14 -3
  76. package/dist/http/resume-ctx-read.js +8 -2
  77. package/dist/http/resume-legs.d.ts +35 -3
  78. package/dist/http/resume-legs.js +244 -92
  79. package/dist/http/route-ctx.d.ts +6 -0
  80. package/dist/http/routes/a2a-serve.js +2 -0
  81. package/dist/http/routes/approvals-assistant.js +3 -2
  82. package/dist/http/routes/capabilities.js +1 -1
  83. package/dist/http/routes/diagnostics.d.ts +3 -1
  84. package/dist/http/routes/diagnostics.js +30 -5
  85. package/dist/http/routes/principal-inbox.d.ts +3 -1
  86. package/dist/http/routes/principal-inbox.js +3 -2
  87. package/dist/http/routes/runs.js +10 -7
  88. package/dist/http/routes/session-sync.d.ts +24 -5
  89. package/dist/http/routes/session-sync.js +46 -34
  90. package/dist/http/routes/sessions-list.d.ts +1 -1
  91. package/dist/http/routes/tasks.js +127 -93
  92. package/dist/http/server.d.ts +4 -5
  93. package/dist/http/server.js +30 -5
  94. package/dist/http/submit-ctx.d.ts +1 -0
  95. package/dist/http/submit-ctx.js +2 -3
  96. package/dist/index.d.ts +3 -1
  97. package/dist/index.js +1 -0
  98. package/dist/leg-facts.d.ts +7 -2
  99. package/dist/leg-facts.js +1 -0
  100. package/dist/local-store-declaration.d.ts +54 -0
  101. package/dist/local-store-declaration.js +59 -0
  102. package/dist/mcp-assertion-header.d.ts +1 -1
  103. package/dist/mcp-assertion-header.js +1 -1
  104. package/dist/memory-project-layer.js +1 -1
  105. package/dist/memory-scope.d.ts +4 -4
  106. package/dist/memory-scope.js +4 -4
  107. package/dist/memory-sync-client.js +2 -2
  108. package/dist/model-context-window.d.ts +50 -11
  109. package/dist/model-context-window.js +20 -1
  110. package/dist/model-entry-refusal.d.ts +5 -4
  111. package/dist/model-entry-refusal.js +17 -3
  112. package/dist/model-reach-scope.d.ts +2 -1
  113. package/dist/observability/fail-open.d.ts +14 -2
  114. package/dist/observability/fail-open.js +14 -2
  115. package/dist/observability/metrics.js +1 -1
  116. package/dist/observability/run-terminal.js +1 -0
  117. package/dist/observability/secret-env-scrub.d.ts +1 -1
  118. package/dist/observability/secret-env-scrub.js +1 -1
  119. package/dist/org-delivery-gate.d.ts +31 -6
  120. package/dist/org-delivery-gate.js +7 -4
  121. package/dist/owner-faces.d.ts +3 -2
  122. package/dist/park-row-commit.d.ts +67 -0
  123. package/dist/park-row-commit.js +76 -0
  124. package/dist/parked-decide.d.ts +9 -7
  125. package/dist/parked-decide.js +25 -6
  126. package/dist/peer-directory.d.ts +1 -1
  127. package/dist/plugins/adoption-log-sql.d.ts +3 -3
  128. package/dist/plugins/adoption-log-sql.js +19 -19
  129. package/dist/plugins/approval-ask-store-sql.d.ts +1 -1
  130. package/dist/plugins/approval-ask-store-sql.js +3 -5
  131. package/dist/plugins/approval-exemption-skill-cutoff.d.ts +64 -0
  132. package/dist/plugins/approval-exemption-skill-cutoff.js +122 -0
  133. package/dist/plugins/approval-exemption-skill-m46.d.ts +0 -6
  134. package/dist/plugins/approval-exemption-skill-m46.js +6 -10
  135. package/dist/plugins/approval-exemption-store.d.ts +26 -1
  136. package/dist/plugins/approval-exemption-store.js +28 -19
  137. package/dist/plugins/ensure-schema-lock-policy.d.ts +36 -3
  138. package/dist/plugins/ensure-schema-lock-policy.js +75 -9
  139. package/dist/plugins/file-run-store.d.ts +22 -9
  140. package/dist/plugins/file-run-store.js +50 -22
  141. package/dist/plugins/local-checkpoint-store.d.ts +4 -0
  142. package/dist/plugins/local-checkpoint-store.js +2 -1
  143. package/dist/plugins/local-data-root-admission.d.ts +52 -0
  144. package/dist/plugins/local-data-root-admission.js +100 -0
  145. package/dist/plugins/local-engine-high-water.d.ts +28 -7
  146. package/dist/plugins/local-engine-high-water.js +27 -22
  147. package/dist/plugins/local-session-store.d.ts +134 -49
  148. package/dist/plugins/local-session-store.js +149 -108
  149. package/dist/plugins/memory-run-store.d.ts +14 -9
  150. package/dist/plugins/memory-run-store.js +47 -21
  151. package/dist/plugins/one-time-migration-marker.d.ts +19 -3
  152. package/dist/plugins/one-time-migration-marker.js +7 -1
  153. package/dist/plugins/one-time-migrations.d.ts +46 -20
  154. package/dist/plugins/one-time-migrations.js +102 -79
  155. package/dist/plugins/org-delivery-quota-store.d.ts +34 -11
  156. package/dist/plugins/org-delivery-quota-store.js +29 -14
  157. package/dist/plugins/permission-rule-store-sql.d.ts +1 -1
  158. package/dist/plugins/permission-rule-store-sql.js +5 -9
  159. package/dist/plugins/pg-pool.d.ts +1 -1
  160. package/dist/plugins/pg-pool.js +10 -12
  161. package/dist/plugins/remote-env-device.d.ts +3 -2
  162. package/dist/plugins/remote-env-e2b.d.ts +1 -7
  163. package/dist/plugins/remote-env-e2b.js +10 -7
  164. package/dist/plugins/remote-env-host.d.ts +50 -9
  165. package/dist/plugins/remote-env-host.js +77 -20
  166. package/dist/plugins/remote-env-k8s.js +4 -2
  167. package/dist/plugins/remote-env-local-docker.d.ts +6 -3
  168. package/dist/plugins/remote-env-local-docker.js +8 -23
  169. package/dist/plugins/run-store-sql.d.ts +26 -7
  170. package/dist/plugins/run-store-sql.js +44 -16
  171. package/dist/plugins/scenario-prefix-switch-m42.d.ts +3 -1
  172. package/dist/plugins/scenario-prefix-switch-m42.js +4 -3
  173. package/dist/plugins/schema-consistency.d.ts +89 -5
  174. package/dist/plugins/schema-consistency.js +176 -7
  175. package/dist/plugins/schema-drift-sentence.d.ts +6 -5
  176. package/dist/plugins/schema-drift-sentence.js +13 -5
  177. package/dist/plugins/session-placement.d.ts +5 -4
  178. package/dist/plugins/shell-sentinel-owner-m48.d.ts +22 -0
  179. package/dist/plugins/shell-sentinel-owner-m48.js +6 -0
  180. package/dist/plugins/stop-then-start-sentence.d.ts +16 -0
  181. package/dist/plugins/stop-then-start-sentence.js +7 -0
  182. package/dist/plugins/store-backend.d.ts +22 -8
  183. package/dist/plugins/store-backend.js +58 -24
  184. package/dist/plugins/store-contracts.d.ts +33 -3
  185. package/dist/plugins/store-contracts.js +16 -0
  186. package/dist/plugins/tidb-pool.d.ts +11 -6
  187. package/dist/plugins/tidb-pool.js +18 -12
  188. package/dist/plugins/workspace-custody.d.ts +44 -0
  189. package/dist/plugins/workspace-custody.js +47 -0
  190. package/dist/project-identity.d.ts +8 -7
  191. package/dist/project-identity.js +40 -17
  192. package/dist/project-layer-key.d.ts +13 -2
  193. package/dist/project-layer-key.js +9 -1
  194. package/dist/read-deny-floor-notice.d.ts +36 -0
  195. package/dist/read-deny-floor-notice.js +40 -0
  196. package/dist/{plain-string-record.d.ts → request-declaration-disposition.d.ts} +9 -23
  197. package/dist/request-declaration-disposition.js +39 -0
  198. package/dist/run-cancel-card.d.ts +28 -0
  199. package/dist/run-cancel-card.js +19 -0
  200. package/dist/run-cancel-context.d.ts +10 -0
  201. package/dist/run-cancel-context.js +1 -0
  202. package/dist/run-local.js +28 -13
  203. package/dist/runs.d.ts +31 -7
  204. package/dist/runs.js +34 -16
  205. package/dist/security.d.ts +2 -2
  206. package/dist/server-secret-env.d.ts +34 -20
  207. package/dist/server-secret-env.js +61 -18
  208. package/dist/session-agent.d.ts +3 -2
  209. package/dist/session-children-retire.d.ts +6 -3
  210. package/dist/session-children-retire.js +2 -5
  211. package/dist/session-workspace.d.ts +3 -3
  212. package/dist/store-admission.d.ts +33 -0
  213. package/dist/store-admission.js +49 -0
  214. package/dist/store-posture.d.ts +5 -0
  215. package/dist/store-posture.js +18 -1
  216. package/dist/stores-sql/checkpoint-store-sql.d.ts +1 -1
  217. package/dist/stores-sql/checkpoint-store-sql.js +3 -5
  218. package/dist/stores-sql/file-history-store-sql.d.ts +1 -1
  219. package/dist/stores-sql/file-history-store-sql.js +3 -5
  220. package/dist/stores-sql/tool-result-store-sql.d.ts +1 -1
  221. package/dist/stores-sql/tool-result-store-sql.js +4 -6
  222. package/dist/task-a2a.d.ts +3 -8
  223. package/dist/task-a2a.js +25 -27
  224. package/dist/task-cwd.d.ts +23 -7
  225. package/dist/task-cwd.js +3 -0
  226. package/dist/task-mcp.d.ts +3 -3
  227. package/dist/task-mcp.js +1 -1
  228. package/dist/task-settings.js +1 -0
  229. package/dist/terminal.d.ts +2 -0
  230. package/dist/terminal.js +21 -6
  231. package/dist/tool-approval.d.ts +44 -36
  232. package/dist/tool-approval.js +66 -47
  233. package/dist/trace/engine-notice-wire.d.ts +24 -21
  234. package/dist/trace/engine-notice-wire.js +7 -3
  235. package/dist/trace/ledger-sink.d.ts +3 -1
  236. package/dist/trace/project.d.ts +4 -2
  237. package/dist/trace/project.js +8 -7
  238. package/dist/trace/redact.d.ts +12 -0
  239. package/dist/trace/redact.js +5 -1
  240. package/dist/trace/self-minted-wire.d.ts +131 -52
  241. package/dist/trace/self-minted-wire.js +71 -39
  242. package/dist/web-admin-client/apply-effective.js +22 -9
  243. package/docs/error-text-lexicon.json +317 -0
  244. package/package.json +3 -1
  245. package/scripts/embed-minimal.mjs +183 -0
  246. package/wire-changes/server@7.149.0.json +372 -0
  247. package/dist/plain-string-record.js +0 -70
@@ -4792,7 +4792,7 @@ function runRedaction(text, observe, json, wantHits, scope, layout, extent, obse
4792
4792
  if (observe)
4793
4793
  reportHits(observeFrom === 0 ? hits : hitsOfSpans(spans.filter((sp) => sp.end > observeFrom)));
4794
4794
  const groups = mergeRedactionSpans(cover, poolTie, joints);
4795
- return { text: renderRedactionSpans(text, groups, 0, text.length), hits, spans: groups, crossed: jointsCrossedBy(spans, joints), evidence, lattice, view: viewOpen };
4795
+ return { text: renderRedactionSpans(text, groups, 0, text.length), hits, spans: groups, claims: spans, crossed: jointsCrossedBy(spans, joints), evidence, lattice, view: viewOpen };
4796
4796
  }
4797
4797
  function latticeOpenOf(n, rfold, normalized, open) {
4798
4798
  let at = n;
@@ -4842,6 +4842,10 @@ export function redactSecrets(text, opts) {
4842
4842
  const r = runRedaction(whole, opts?.observe ?? true, opts?.json === true, false, "free-text", "multi-line", WHOLE_EXTENT, before.length, [before.length]);
4843
4843
  return renderRedactionSpans(whole, r.spans, before.length, whole.length);
4844
4844
  }
4845
+ export function isCredentialShapedUnit(unit) {
4846
+ const r = runRedaction(unit, false, false, true, "bounded-unit", "multi-line", WHOLE_EXTENT);
4847
+ return r.claims.some((claim) => claim.start === 0 && claim.hit?.arm === "full");
4848
+ }
4845
4849
  export function redactSecretsWithArms(text, opts) {
4846
4850
  const r = runRedaction(text, opts?.observe ?? true, opts?.json === true, true, "free-text", "multi-line", WHOLE_EXTENT);
4847
4851
  return { text: r.text, arms: new Set(r.hits.map((h) => h.arm)) };
@@ -101,6 +101,19 @@ export declare const SELF_MINTED_WIRE: {
101
101
  };
102
102
  };
103
103
  };
104
+ /**
105
+ * run 结果上本仓的侧记键(`store-contracts.ts` 的 `PersistedResultSideKeys`;<键> → 在场律)。本表只登记新出现的那一枚:`readDenyFloor`(照跑的 run,读拒规则不按字节守;
106
+ * 形 `{ code, message }`,与同一条 run 的 `engine_notice` 帧同码同句,说法属主 `read-deny-floor-notice.ts`,挂点 = 出口封口)。
107
+ */
108
+ readonly runResultSideKey: {
109
+ readonly at: "run 结果顶层侧记键(GET /v1/runs/:id → result · done.result · POST /v1/tasks 200 体顶层 · 账本 done 行 result;<键> → 在场律)";
110
+ readonly members: {
111
+ readDenyFloor: {
112
+ attr: string;
113
+ since: string;
114
+ };
115
+ };
116
+ };
104
117
  /**
105
118
  * run 存活判决单源(7.148.0)在 wire 上的两处变化:run 流的死亡终帧(从行合成,`routes/runs.ts` 的 run 流 provider `closingFrameOf`)多带行上的码;
106
119
  * 会话占用冲突的两张脸(409 体 / 流式提交的冲突终帧,键集属主 `http/active-run-conflict.ts` 的 `ActiveRunConflictBody` / `ActiveRunConflictDoneResult`)删 `stale`
@@ -114,18 +127,7 @@ export declare const SELF_MINTED_WIRE: {
114
127
  readonly since: "7.148.0";
115
128
  };
116
129
  };
117
- readonly retired: {
118
- readonly "409 conflict.session_active_run#stale(\u53EA\u4E3A true \u65F6\u5728\u573A)": {
119
- readonly attr: "true-only";
120
- readonly since: "7.37.0";
121
- readonly until: "7.148.0";
122
- };
123
- readonly "POST /v1/tasks/stream done.result(conflict.session_active_run)#stale(\u53EA\u4E3A true \u65F6\u5728\u573A)": {
124
- readonly attr: "true-only";
125
- readonly since: "7.37.0";
126
- readonly until: "7.148.0";
127
- };
128
- };
130
+ readonly retired: {};
129
131
  };
130
132
  /**
131
133
  * 会话所有者自助抹除面的**已分类拒** → HTTP 状态([ref] 起与 operator 面 `POST /v1/memory/erase` 同一只映射;`since` 记的是**本面**
@@ -168,7 +170,6 @@ export declare const SELF_MINTED_WIRE: {
168
170
  };
169
171
  readonly "request.memory_layer": {
170
172
  readonly attr: 400;
171
- readonly revises: readonly ["errorCode:internal.error"];
172
173
  readonly since: "7.148.0";
173
174
  };
174
175
  };
@@ -1004,6 +1005,24 @@ export declare const SELF_MINTED_WIRE: {
1004
1005
  readonly attr: "present-iff declared";
1005
1006
  readonly since: "7.148.0";
1006
1007
  };
1008
+ readonly contextWindowSource: {
1009
+ readonly attr: "present-iff contextWindow is present";
1010
+ readonly since: "7.149.0";
1011
+ };
1012
+ };
1013
+ };
1014
+ /** `GET /v1/models` 行的 `contextWindowSource`:同一行 `contextWindow` 那个数是谁写的 —— `declared`(目录条目 / `MODEL_CONTEXT_WINDOW` / `MODEL_CHEAP_CONTEXT_WINDOW` 沿继承链有人写了)/ `assumed`(没人写、本服务落假定值)。 */
1015
+ readonly modelsContextWindowSource: {
1016
+ readonly at: "GET /v1/models models[].contextWindowSource(present-iff contextWindow)";
1017
+ readonly members: {
1018
+ declared: {
1019
+ attr: string;
1020
+ since: string;
1021
+ };
1022
+ assumed: {
1023
+ attr: string;
1024
+ since: string;
1025
+ };
1007
1026
  };
1008
1027
  };
1009
1028
  /** `GET /v1/models` 的 anthropic-messages 行上 `compat` 的键(本版起这条线路的声明生效、上 wire —— 此前 anthropic 条目的 compat 一律被丢;键集 = core `AnthropicMessagesCompat`)。 */
@@ -1281,82 +1300,66 @@ export declare const SELF_MINTED_WIRE: {
1281
1300
  readonly members: {
1282
1301
  cascade_verify: {
1283
1302
  attr: string;
1284
- revises: string[];
1285
1303
  since: string;
1286
1304
  };
1287
1305
  image_profile: {
1288
1306
  attr: string;
1289
- revises: string[];
1290
1307
  since: string;
1291
1308
  };
1292
1309
  resume_anchor: {
1293
1310
  attr: string;
1294
- revises: string[];
1295
1311
  since: string;
1296
1312
  };
1297
1313
  system_prompt_fold: {
1298
1314
  attr: string;
1299
- revises: string[];
1300
1315
  since: string;
1301
1316
  };
1302
1317
  file_history_restore: {
1303
1318
  attr: string;
1304
- revises: string[];
1305
1319
  since: string;
1306
1320
  };
1307
1321
  skills_disabled: {
1308
1322
  attr: string;
1309
- revises: string[];
1310
1323
  since: string;
1311
1324
  };
1312
1325
  existing_session: {
1313
1326
  attr: string;
1314
- revises: string[];
1315
1327
  since: string;
1316
1328
  };
1317
1329
  fork_target: {
1318
1330
  attr: string;
1319
- revises: string[];
1320
1331
  since: string;
1321
1332
  };
1322
1333
  scratchpad_root: {
1323
1334
  attr: string;
1324
- revises: string[];
1325
1335
  since: string;
1326
1336
  };
1327
1337
  ask_answer: {
1328
1338
  attr: string;
1329
- revises: string[];
1330
1339
  since: string;
1331
1340
  };
1332
1341
  policy_person_ask: {
1333
1342
  attr: string;
1334
- revises: string[];
1335
1343
  since: string;
1336
1344
  };
1337
1345
  plan_edit: {
1338
1346
  attr: string;
1339
- revises: string[];
1340
1347
  since: string;
1341
1348
  };
1342
1349
  plan_mode_after: {
1343
1350
  attr: string;
1344
- revises: string[];
1345
1351
  since: string;
1346
1352
  };
1347
1353
  bound_call_door: {
1348
1354
  attr: string;
1349
- revises: string[];
1350
1355
  since: string;
1351
1356
  };
1352
1357
  remember_decision: {
1353
1358
  attr: string;
1354
- revises: string[];
1355
1359
  since: string;
1356
1360
  };
1357
1361
  approval_feedback: {
1358
1362
  attr: string;
1359
- revises: string[];
1360
1363
  since: string;
1361
1364
  };
1362
1365
  };
@@ -1648,7 +1651,6 @@ export declare const SELF_MINTED_WIRE: {
1648
1651
  };
1649
1652
  readonly "POST /v1/tasks|/v1/tasks/stream#replay_bit_one_rule(replay: true \u21D4 200 \u7ED3\u5C40\u4E0D\u662F\u672C\u6B21\u8BF7\u6C42\u4EA7\u51FA\u7684:\u8BFB\u884C\u91CD\u653E + \u5728\u98DE\u5408\u6D41\u7684\u8DDF\u968F\u65B9,\u4E24\u817F\u540C\u8BFB;\u62D2\u7EDD\u6C38\u4E0D\u5E26\u4F4D;\u6D41\u5F0F\u7EC8\u5E27 done.replay = done.result.replay)": {
1650
1653
  readonly attr: 200;
1651
- readonly revises: readonly ["selfMinted.submitIdempotency:POST /v1/tasks#replay"];
1652
1654
  readonly since: "7.148.0";
1653
1655
  };
1654
1656
  };
@@ -2199,6 +2201,25 @@ export declare const SELF_MINTED_WIRE: {
2199
2201
  };
2200
2202
  };
2201
2203
  };
2204
+ /**
2205
+ * 决断类续跑拒体(`POST /v1/approvals/:id/decide` 这一行自己的拒 · `POST /v1/assistant/tasks/:id/plan_review` / `…/resume` 上引擎对这张卡的拒 · 读行臂)上的出路词 `wayOut`(7.149.0):
2206
+ * 判官判这张卡本引擎续不了时它怎么出去 —— 只看判决与这张卡本身,不看门或决定词:`cancel_run`(判决 `damaged` 且取消动词会结算这张卡 —— 有耐久 run 店、它归属的 run 会话上持认领的 run 停着、取消动词找到的恰是它,只读店的列:`POST /v1/runs/:id/cancel` 结卡并终止 run)·
2207
+ * `newer_worker`(判决 `lacking`:不低于停驻它那一版的 worker 续得了它)。唯一铸法 `http/resume-legs.ts` 的 `rowWayOutOf`;在场律:判非 ok、拒留卡 pending、且说得出一个落得下的出路
2208
+ * (判 `damaged` 而取消动词不会结算这张卡 ⇒ 缺席);决定体那一格 / 部署事实 / `/wake` 的拒缺席。
2209
+ */
2210
+ readonly rowRefusalWayOut: {
2211
+ readonly at: "409 决断类续跑拒体(/decide · /plan_review · /resume;判官判那张卡续不了)wayOut";
2212
+ readonly members: {
2213
+ cancel_run: {
2214
+ attr: string;
2215
+ since: string;
2216
+ };
2217
+ newer_worker: {
2218
+ attr: string;
2219
+ since: string;
2220
+ };
2221
+ };
2222
+ };
2202
2223
  /**
2203
2224
  * 在飞 run 的权限模式切档口 `POST /v1/runs/:id/permission-mode`(本版新端点)200 体的键集(<键> → 在场律)。
2204
2225
  * `satisfies Record<keyof PermissionModeVerbReply, …>`(体形属主 = `http/routes/run-permission-mode.ts`,路由按这只型铸体;键加一个而本表没跟 ⇒ tsc 红)。
@@ -2271,7 +2292,7 @@ export declare const SELF_MINTED_WIRE: {
2271
2292
  };
2272
2293
  /**
2273
2294
  * 逐端点「应答面 → HTTP 状态」映射里**本版改了状态的面**(形照 `submitIdempotency`:`<端点>#<面>` → 状态;面是调用方能观察到的那一形,不是内部分支名)。
2274
- * `since` 记**这一面以这个状态答**的起始版本;每个成员的旧状态写在 CHANGELOG 对应条里(旧状态的那一形此前没有登记,清单里它们是「本版新上 wire」,不是 changed)。
2295
+ * `since` 记**这一面以这个状态答**的起始版本;每个成员的旧状态写在 CHANGELOG 对应条里。面本身此前不在本表里;它旧的那一答若在上一 tag 上有清单地址(那一答的错误码 `errorCode:<码>` / `errorCodeFamily:<码>`、自铸登记表的成员 …),行带 `revises` 点名它 ⇒ 清单 `changed`(带 `from`,见文件头注 `revises`);旧的那一答没有地址(如 200 / 204 受理、没有码)⇒ 清单记「本版新上 wire」(added)。
2275
2296
  * 同一端点上状态没变的面(如 `/decide` 对同一张卡的 approve 仍 409)不入表。
2276
2297
  */
2277
2298
  readonly endpointFaceStatus: {
@@ -2647,26 +2668,90 @@ export declare const SELF_MINTED_WIRE: {
2647
2668
  };
2648
2669
  readonly "POST /v1/approvals/:sessionId/decide|/v1/sessions/:id/wake|/v1/assistant/tasks/:id/resume|/v1/assistant/tasks/:id/plan_review|/v1/runs/:id/steer|/v1/runs/:id/permission-mode#resume_context_read_failed(\u8BFB\u8FD9\u6761\u4F1A\u8BDD\u7684\u7EED\u8DD1\u4E0A\u4E0B\u6587\u5931\u8D25:\u5E93\u65AD\u8FDE / \u62D2\u8FDE / \u8D85\u65F6\u3001\u7F3A\u8868 / \u6743\u9650\u62D2\u3001\u8BA4\u4E0D\u51FA\u7684\u5E93\u9519;\u62D2\u5728\u4EFB\u4F55\u72B6\u6001\u6539\u52A8\u4E4B\u524D,\u5361\u4ECD\u5F85\u51B3\u3001\u7EC8\u6001 steer \u4E0D\u94F8\u5361;\u4F53 state.resume_context_unreadable)": {
2649
2670
  readonly attr: 503;
2650
- readonly revises: readonly ["errorCode:conflict.resume_context_unavailable"];
2651
2671
  readonly since: "7.148.0";
2652
2672
  };
2673
+ readonly "POST /v1/approvals/:sessionId/decide|/v1/sessions/:id/wake|/v1/assistant/tasks/:id/resume|/v1/assistant/tasks/:id/plan_review#resume_claim_store_fault(\u8BA4\u9886\u4E4B\u524D\u90A3\u4E00\u6B21\u6267\u884C\u5E2D\u8BFB\u3001\u8BA4\u9886\u90A3\u4E00\u7B14 \u2014\u2014 markResuming / wake \u73B0\u5EFA\u884C\u7684 createRun \u2014\u2014 \u6216\u8BA4\u9886\u4E4B\u540E\u63D0\u4EA4\u6267\u884C\u653E\u7F6E\u90A3\u4E00\u6B21\u5E97\u5F80\u8FD4\u5931\u8D25:\u5E93\u65AD\u8FDE / \u62D2\u8FDE / \u8D85\u65F6\u3001\u7F3A\u8868 / \u6743\u9650\u62D2\u3001\u8BA4\u4E0D\u51FA\u7684\u5E93\u9519;\u8BA4\u9886\u4E4B\u540E\u90A3\u4E00\u5F62\u7EED\u8DD1\u8BA4\u9886\u7684\u505C\u9A7B\u884C\u56DE\u5230\u8BA4\u9886\u4E4B\u524D\u7684\u505C\u9A7B\u8BCD\u3001\u8BA4\u9886\u7559\u7740,wake \u73B0\u5EFA\u7684\u884C\u5220\u6389;\u5361\u4ECD\u5F85\u51B3;\u4F53 state.resume_context_unreadable)": {
2674
+ readonly attr: 503;
2675
+ readonly revises: readonly ["errorCode:internal.error"];
2676
+ readonly since: "7.149.0";
2677
+ };
2678
+ readonly "POST /v1/runs/:id/cancel#parked_card_body_scope_differs(\u505C\u9A7B run \u4E0A\u7684\u53D6\u6D88:\u8FD9\u5F20\u5361\u884C\u4F53\u91CC\u81EA\u5E26\u7684\u5C5E\u4E3B\u683C\u4E0E\u5E97\u7684\u5C5E\u4E3B\u683C\u4E0D\u4E00\u81F4 \u2014\u2014 \u53D6\u6D88\u53EA\u8BFB\u5E97\u7684\u5C5E\u4E3B\u683C,\u7ED3\u7B97\u8FD9\u5F20\u5361\u3001\u9A71 run \u7EC8\u5C40;\u4F53 { taskId, status: failed, errorCode: cancelled, cancelRequested: false, note })": {
2679
+ readonly attr: 202;
2680
+ readonly revises: readonly ["errorCode:conflict.approval_settled"];
2681
+ readonly since: "7.149.0";
2682
+ };
2683
+ readonly "POST /v1/runs/:id/cancel#parked_card_body_unreadable(\u505C\u9A7B run \u4E0A\u7684\u53D6\u6D88:\u8FD9\u5F20\u5361\u7684\u884C\u4F53\u8BFB\u4E0D\u6210\u68C0\u67E5\u70B9 \u2014\u2014 \u53D6\u6D88\u53EA\u8BFB\u5E97\u7684\u5217,\u7ED3\u7B97\u8FD9\u5F20\u5361\u3001\u9A71 run \u7EC8\u5C40;\u4F53\u540C\u4E0A)": {
2684
+ readonly attr: 202;
2685
+ readonly revises: readonly ["errorCode:internal.error"];
2686
+ readonly since: "7.149.0";
2687
+ };
2653
2688
  readonly "POST /v1/approvals/:sessionId/decide#parked_agent_definition_unavailable(\u505C\u9A7B\u8D4E\u56DE;\u884C\u4E0A\u7684\u4EE3\u7406\u7C7B\u578B\u4E0D\u5728\u8D4E\u56DE\u9762\u59D4\u6D3E\u5DE5\u5177\u7684\u540D\u518C\u91CC:\u9010\u8BF7\u6C42 `agents` \u5B9A\u4E49 / \u505C\u9A7B\u540E\u88AB\u64A4\u7684\u90E8\u7F72\u5B9A\u4E49 / \u540D\u53EB fork \u7684\u5B9A\u4E49;approve \u4E0E deny \u540C\u7B54;\u8BA4\u9886\u56DE\u6EDA\u3001\u59D4\u6D3E\u5DE5\u5177\u96F6\u8C03\u7528\u3001\u5361\u4ECD\u5F85\u51B3;\u4F53 decide.agent_definition_unavailable + taskId + rollback)": {
2654
2689
  readonly attr: 409;
2655
2690
  readonly since: "7.148.0";
2656
2691
  };
2692
+ readonly "POST /v1/tasks|/v1/tasks/stream|/v1/runs#run_claim_store_fault(\u65B0\u63D0\u4EA4:\u8BA4\u9886\u4E4B\u524D\u90A3\u4E00\u6B21\u6267\u884C\u5E2D\u8BFB,\u6216\u8BA4\u9886\u8FD9\u4E00\u6BB5 \u2014\u2014 \u5EFA\u884C\u8BA4\u9886 createRun\u3001\u6267\u884C\u653E\u7F6E\u3001\u7EED\u8DD1\u8F93\u5165\u7684\u5199\u3001\u8D77\u8DD1\u4E4B\u524D\u7684\u8BA4\u9886\u590D\u6838 \u2014\u2014 \u6709\u4E00\u6B21\u5E97\u5F80\u8FD4\u6CA1\u7B54\u51FA\u6765:\u5E93\u65AD\u8FDE / \u62D2\u8FDE / \u8D85\u65F6\u3001\u7F3A\u8868 / \u6743\u9650\u62D2\u3001\u8BA4\u4E0D\u51FA\u7684\u5E93\u9519;\u672C\u8BF7\u6C42\u94F8\u7684\u884C\u5DF2\u5220\u6389 \u2014\u2014 \u8BA4\u9886\u4E0E\u5E42\u7B49\u952E\u968F\u884C\u53BB,\u540C\u4E00\u4E2A\u81EA\u5E26 taskId \u91CD\u53D1\u5373\u65B0\u63D0\u4EA4 \u2014\u2014 \u4EC0\u4E48\u90FD\u6CA1\u8D77\u8DD1;\u8BA4\u9886\u4E4B\u540E\u7684\u6D41\u5F0F\u817F = \u6D41\u7684\u7EC8\u5E27;\u5DF2\u7ED1\u8BBE\u5907\u7684\u4F1A\u8BDD\u4E0A\u8BA4\u9886\u4E4B\u540E\u90A3\u4E00\u6B21\u6267\u884C\u5E2D\u8BFB\u540C\u7B54;\u4F53 state.run_store_unavailable)": {
2693
+ readonly attr: 503;
2694
+ readonly revises: readonly ["errorCode:internal.error", "errorCode:device.not_bound"];
2695
+ readonly since: "7.149.0";
2696
+ };
2697
+ readonly "POST /v1/approvals/:sessionId/decide|/v1/sessions/:id/wake|/v1/assistant/tasks/:id/resume|/v1/assistant/tasks/:id/plan_review#resume_pre_engine_store_fault(\u7EED\u8DD1\u817F\u63D0\u4EA4\u653E\u884C\u4E4B\u540E\u3001\u4EA4\u7ED9\u5F15\u64CE\u4E4B\u524D\u90A3\u4E00\u6BB5 \u2014\u2014 \u6392\u7A7A workflow \u5B8C\u6210\u7684\u5E8F\u53F7\u57FA\u5740\u73B0\u8BFB\u4E0E\u843D\u8D26\u3001\u901A\u544A\u53E3\u843D\u8D26 \u2014\u2014 \u5E97\u5F80\u8FD4\u6CA1\u7B54\u51FA\u6765;\u7EED\u8DD1\u8BA4\u9886\u7684\u505C\u9A7B\u884C\u56DE\u5230\u505C\u9A7B\u3001\u8BA4\u9886\u7559\u7740,wake \u73B0\u5EFA\u7684\u884C\u5220\u6389;\u5361\u4ECD\u5F85\u51B3;\u4F53 state.resume_context_unreadable)": {
2698
+ readonly attr: 503;
2699
+ readonly revises: readonly ["errorCode:internal.error"];
2700
+ readonly since: "7.149.0";
2701
+ };
2702
+ readonly "POST /v1/approvals/:sessionId/decide#workflow_host_turn_claim_store_fault(workflow \u51B3\u5B9A\u5728\u5BBF\u4E3B\u4F1A\u8BDD\u4E0A\u8D77\u7684\u65B0\u4E00\u8DD1:\u5EFA\u884C\u8BA4\u9886 / \u6267\u884C\u653E\u7F6E / \u7EED\u8DD1\u8F93\u5165 / \u51B3\u5B9A\u843D\u884C / \u8D77\u8DD1\u4E4B\u524D\u7684\u8BA4\u9886\u590D\u6838\u6709\u4E00\u6B21\u5E97\u5F80\u8FD4\u6CA1\u7B54\u51FA\u6765;\u51B3\u5B9A\u843D\u884C\u90A3\u4E00\u7B14\u5728 wake \u817F\u4E0A\u540C\u7B54;\u73B0\u5EFA\u7684\u884C\u5DF2\u5220\u6389,\u5B50\u4EE3\u7684\u5361\u4ECD\u5F85\u51B3;\u4F53 state.resume_context_unreadable)": {
2703
+ readonly attr: 503;
2704
+ readonly revises: readonly ["errorCode:internal.error"];
2705
+ readonly since: "7.149.0";
2706
+ };
2707
+ readonly "POST /v1/approvals/:sessionId/decide#workflow_decision_not_recorded(workflow \u51B3\u5B9A\u7684\u6295\u9012\u90A3\u4E00\u8DD1\u5728\u51B3\u5B9A\u843D\u884C\u90A3\u4E00\u62CD\u5DF2\u4E0D\u6301\u5BBF\u4E3B\u4F1A\u8BDD\u7684\u8BA4\u9886 \u2014\u2014 \u5FC3\u8DF3\u505C\u6EE1\u4E00\u7A97\u88AB\u6536\u5272;\u51B3\u5B9A\u6CA1\u843D\u3001\u90A3\u4E00\u8DD1\u6CA1\u8D77;\u4E0E\u8D77\u8DD1\u4E4B\u524D\u8BA4\u9886\u590D\u6838\u7B54\u300C\u6CA1\u6301\u6709\u300D\u540C\u4E00\u53EA\u7B54\u590D:\u8BA4\u9886\u5728\u522B\u7684 run \u4E0A \u21D2 409 conflict.session_active_run,\u5BBF\u4E3B\u4F1A\u8BDD\u5DF2\u5220 \u21D2 404 resume.session_not_found,\u5426\u5219 409 conflict.claim_lost)": {
2708
+ readonly attr: 409;
2709
+ readonly revises: readonly ["errorCode:internal.error"];
2710
+ readonly since: "7.149.0";
2711
+ };
2712
+ readonly "POST /v1/approvals/:sessionId/decide#parked_redeem_placement_store_fault(\u505C\u9A7B\u5B50\u4EE3\u8D4E\u56DE:\u8BA4\u9886\u4E4B\u524D\u90A3\u4E00\u6B21\u6267\u884C\u5E2D\u8BFB,\u6216\u8BA4\u9886\u4E4B\u540E\u90A3\u4E00\u6B21\u6267\u884C\u653E\u7F6E\u7684\u5E97\u5F80\u8FD4\u6CA1\u7B54\u51FA\u6765;\u8BA4\u9886\u6CA1\u6709\u6216\u5DF2\u56DE\u6EDA,\u5B50\u4EE3\u4ECD\u505C\u7740\u3001\u5361\u4ECD\u5F85\u51B3;\u4F53 decide.store_unreachable + taskId)": {
2713
+ readonly attr: 503;
2714
+ readonly revises: readonly ["errorCode:internal.error"];
2715
+ readonly since: "7.149.0";
2716
+ };
2717
+ readonly "POST /v1/approvals/:sessionId/decide|/v1/sessions/:id/wake|/v1/assistant/tasks/:id/resume|/v1/assistant/tasks/:id/plan_review#placement_refused_after_claim(\u7EED\u8DD1\u5BB6\u65CF\u3001workflow \u51B3\u5B9A\u5728\u5BBF\u4E3B\u4F1A\u8BDD\u4E0A\u8D77\u7684\u65B0\u4E00\u8DD1\u3001\u505C\u9A7B\u5B50\u4EE3\u8D4E\u56DE\u8BA4\u9886\u4E4B\u540E\u63D0\u4EA4\u6267\u884C\u653E\u7F6E\u8BFB\u51FA\u8FD9\u6761\u4F1A\u8BDD\u6B64\u523B\u4E0D\u80FD\u5728\u672C\u5904\u6267\u884C:\u5DF2\u653E\u5728\u522B\u7684\u8F66\u9053 / \u5199\u8005\u5728\u522B\u5904 / \u8BBE\u5907\u62D2;\u7EED\u8DD1\u8BA4\u9886\u7684\u505C\u9A7B\u884C\u56DE\u5230\u505C\u9A7B\u3001\u505C\u9A7B\u8D4E\u56DE\u56DE\u6EDA,\u5361\u4ECD\u5F85\u51B3,wake \u4E0E\u5BBF\u4E3B\u65B0\u4E00\u8DD1\u73B0\u5EFA\u7684\u884C\u5220\u6389;\u4E0E\u8BA4\u9886\u4E4B\u524D\u540C\u4E00\u53EA\u6298\u6CD5\u3001\u540C\u4E00\u53EA\u4F53;\u4F53 resume_blocked_by_policy + blockedBy \u539F\u7801 + \u539F\u4E8B\u5B9E forkPath / boundLane + retriable)": {
2718
+ readonly attr: 409;
2719
+ readonly revises: readonly ["errorCode:execution_lane.tree_bound", "errorCode:conflict.session_mirror"];
2720
+ readonly since: "7.149.0";
2721
+ };
2722
+ readonly "POST /v1/tasks#park_commit_ended(\u540C\u6B65\u817F\u505C\u5728\u8981\u6279\u7684\u95E8\u4E0A,\u800C\u505C\u9A7B\u63D0\u4EA4\u7B54\u51FA\u8FD9\u6761 run \u6CA1\u6709\u505C\u4F4F\u3001\u5DF2\u6536\u573A \u2014\u2014 \u505C\u9A7B\u5199\u4E4B\u524D\u5DF2\u6309\u4E0B\u53D6\u6D88 / \u88AB\u5931\u8054\u6536\u5272 / \u522B\u5904\u7EC8\u7ED3;\u5361\u5DF2\u4F5C\u5E9F;\u4F53 = \u6536\u573A\u90A3\u4E00\u884C\u7684\u4FE1\u5C01,\u4E0E\u540C\u952E\u91CD\u653E\u540C\u4E00\u53EA:\u7EC8\u5C40\u884C\u7684\u7ED3\u679C,\u53D6\u6D88\u90A3\u4E00\u5F62 terminal.code cancelled;\u884C\u4E0A\u65E0\u7ED3\u679C \u21D2 \u56DE\u6267\u4E09\u952E)": {
2723
+ readonly attr: 200;
2724
+ readonly since: "7.149.0";
2725
+ };
2726
+ readonly "POST /v1/approvals/:sessionId/decide|/v1/sessions/:id/wake|/v1/assistant/tasks/:id/resume|/v1/assistant/tasks/:id/plan_review#resume_park_ended(\u7EED\u8DD1\u817F\u518D\u505C / \u91CD\u5F00\u65F6\u505C\u9A7B\u63D0\u4EA4\u7B54\u51FA\u8FD9\u6761 run \u5DF2\u6536\u573A;\u5361\u5DF2\u4F5C\u5E9F;\u4F53 status / errorCode = \u6536\u573A\u90A3\u4E00\u884C\u7684,\u4E0D\u5E26 retriable)": {
2727
+ readonly attr: 200;
2728
+ readonly since: "7.149.0";
2729
+ };
2657
2730
  readonly "POST /v1/runs/:id/interrupt#body_with_fields(\u4F53\u5E26\u4EFB\u4F55\u9876\u5C42\u952E \u2014\u2014 \u542B\u65E9\u5148\u7248\u672C\u53D7\u7406\u7684 text;\u975E\u5BF9\u8C61\u4F53\u540C\u7B54;\u5224\u5728\u67E5 run \u4E4B\u524D:\u4EFB\u4F55 run \u72B6\u6001\u3001\u5C5E\u4E3B\u3001\u5B58\u5728\u4E0E\u5426\u540C\u4E00\u53EA\u4F53;\u4F53 request.body_shape + unknownKeys(\u952E\u5168\u5728\u6B64)+ unsupportedKeys(\u6052\u7A7A))": {
2658
2731
  readonly attr: 400;
2659
- readonly revises: readonly ["selfMinted.endpointFaceStatus:POST /v1/runs/:id/interrupt#text_live(带 text 的体打在本副本在飞的 run 上 = 引擎 steer 档位 now;202 体 { taskId, status, delivery: queued-immediate, messageId, note })"];
2660
2732
  readonly since: "7.148.0";
2661
2733
  };
2662
- };
2663
- readonly retired: {
2664
- readonly "POST /v1/runs/:id/interrupt#text_live(\u5E26 text \u7684\u4F53\u6253\u5728\u672C\u526F\u672C\u5728\u98DE\u7684 run \u4E0A = \u5F15\u64CE steer \u6863\u4F4D now;202 \u4F53 { taskId, status, delivery: queued-immediate, messageId, note })": {
2665
- readonly attr: 202;
2666
- readonly since: "7.52.0";
2667
- readonly until: "7.148.0";
2734
+ readonly "GET /v1/tool-approvals/:id#row_unreadable(\u6709\u884C\u7684\u95EE,\u6309 id \u8BFB\u884C\u90A3\u4E00\u62CD\u5E97\u629B / \u8D85\u65F6;\u672C\u526F\u672C\u81EA\u5DF1\u94F8\u7684\u6D3B\u5361\u4E0E\u8D77\u670D\u63A5\u7BA1\u7684\u767B\u8BB0\u540C\u7B54;\u4F53 not_found.ask,\u4E0E\u67E5\u65E0 / \u4E0D\u662F\u4F60\u7684\u9010\u5B57\u8282\u540C)": {
2735
+ readonly attr: 404;
2736
+ readonly revises: readonly ["selfMinted.toolApprovalReadState:pending"];
2737
+ readonly since: "7.149.0";
2738
+ };
2739
+ readonly "POST /v1/sessions/:id/sync/plan|POST /v1/sessions/:id/sync/import|PUT /v1/sessions/:id/sync/blobs/:hash#foreign_session_deleting(\u63A8\u9001\u4E09\u53E3\u7684\u95E8:id \u4E0A\u662F\u522B\u7684\u4E3B\u4F53\u6B63\u5728\u5220\u9664\u7684\u4F1A\u8BDD \u2014\u2014 \u5220\u9664\u56F4\u680F\u5DF2\u7ACB\u3001\u5C1A\u672A\u5220\u51C0;\u300C\u88AB\u5360\u7740\u300D\u8BFB\u6D3B\u884C \u222A \u5728\u5220\u884C,\u4E0E\u5BF9\u522B\u4EBA\u7684\u6D3B\u884C\u540C\u7B54;\u672C\u4EBA / fleet \u5BF9\u81EA\u5DF1\u5728\u5220\u7684\u4F1A\u8BDD\u4E0D\u53D8,\u62C9\u53D6\u53E3\u4ECD\u53EA\u8BA4\u6D3B\u884C;\u4F53 not_found.session,\u4E0E\u5BF9\u4E0D\u5B58\u5728 id \u7684\u62C9\u53D6\u7B54\u590D\u9010\u5B57\u8282\u540C)": {
2740
+ readonly attr: 404;
2741
+ readonly revises: readonly ["errorCode:conflict"];
2742
+ readonly since: "7.149.0";
2743
+ };
2744
+ readonly "POST /v1/sessions/:id/sync/import#idle_id_other_principal_in_flight(\u7B2C\u4E00\u9636\u6BB5:id \u4E0A\u8FD8\u6CA1\u6709\u4F1A\u8BDD\u884C,\u800C\u53E6\u4E00\u4E2A\u4E3B\u4F53\u5728\u8FD9\u53EA id \u4E0A\u7684\u7B2C\u4E00\u9636\u6BB5\u6B63\u5728\u98DE;\u5BFC\u5165\u79DF\u7EA6\u952E = \u843D\u70B9\u5C5E\u4E3B\u683C + \u4F1A\u8BDD id,\u7A7A\u95F2 id \u4E0A\u5404\u5360\u5404\u7684;\u4F53 = \u7B2C\u4E00\u9636\u6BB5\u7684\u6682\u5B58\u56DE\u6267 stagingId;\u5148\u63D0\u4EA4\u8005\u5F97,\u8F93\u7684\u90A3\u4E00\u4EFD\u5728\u63D0\u4EA4\u524D\u590D\u5224\u7B54 404 not_found.session,\u4E0E\u8D62\u5BB6\u7684\u63D0\u4EA4\u649E\u5728\u540C\u4E00\u523B\u65F6\u7531\u5E97\u7684\u5C5E\u4E3B CAS \u62D2 409 conflict)": {
2745
+ readonly attr: 200;
2746
+ readonly revises: readonly ["errorCodeFamily:import_in_flight"];
2747
+ readonly since: "7.149.0";
2748
+ };
2749
+ readonly "POST /v1/tasks|/v1/tasks/stream|/v1/runs#a2aPeers_headers_reserved_member(\u65B0\u63D0\u4EA4;a2aPeers[i].headers \u7684\u6210\u5458\u540D\u662F constructor / prototype \u2014\u2014 \u4E0E mcpServers[i].transport.headers / .env \u540C\u4E00\u5F20\u4FDD\u7559\u6210\u5458\u540D\u8868\u3001\u540C\u4E00\u53EA\u8BFB\u6CD5,\u5927\u5C0F\u5199\u654F\u611F;\u4F53 request.field_invalid + field \u6210\u5458\u7EA7\u8DEF\u5F84 a2aPeers[i].headers.<\u540D>;\u5B58\u76D8\u7EED\u8DD1\u4F53\u91CC\u540C\u5F62 \u21D2 \u7EED\u8DD1\u5BB6\u65CF\u65E2\u6709\u4E00\u9762 #stored_unread_members 409)": {
2750
+ readonly attr: 400;
2751
+ readonly since: "7.149.0";
2668
2752
  };
2669
2753
  };
2754
+ readonly retired: {};
2670
2755
  };
2671
2756
  /**
2672
2757
  * `POST /v1/rules/cc-import/redeem` 200 回执的顶层键(<键> → 在场律)。规则导入两只 redeem 口同一张回执、同一个铸点(`http/routes/rules.ts` 的 `sendImportReceipt`),
@@ -2847,7 +2932,6 @@ export declare const SELF_MINTED_WIRE: {
2847
2932
  readonly members: {
2848
2933
  readonly "POST /v1/tasks \u00B7 /v1/tasks/stream \u00B7 /v1/runs (sessionId)#others-owned-session": {
2849
2934
  readonly attr: "404 resume.session_not_found (requireExistingSession: session does not exist (resume.session_not_found)), same body as a missing session; was 403 auth.forbidden (named caller) / 401 auth.unauthorized (no principal)";
2850
- readonly revises: readonly ["errorCode:auth.forbidden", "errorCode:auth.unauthorized"];
2851
2935
  readonly since: "7.148.0";
2852
2936
  };
2853
2937
  readonly "POST /v1/tasks \u00B7 /v1/tasks/stream \u00B7 /v1/runs (sessionId)#ownerless-placed-session": {
@@ -2856,27 +2940,27 @@ export declare const SELF_MINTED_WIRE: {
2856
2940
  };
2857
2941
  readonly "POST /v1/assistant/tasks/:id/plan_review#direct-door-valid-proof-others-task": {
2858
2942
  readonly attr: "401 principal_unverified (principal proof required), same body as a missing row; was 404 not_found.run (task not found)";
2859
- readonly revises: readonly ["errorCode:not_found.run"];
2860
2943
  readonly since: "7.148.0";
2861
2944
  };
2862
2945
  readonly "GET|PUT /v1/sessions/:id/policy#ownerless-placed-session-non-fleet-non-operator": {
2863
2946
  readonly attr: "404 not_found.session (session not found), same body as a missing session; was 409 conflict.session_ownerless";
2864
- readonly revises: readonly ["errorCode:conflict.session_ownerless"];
2865
2947
  readonly since: "7.148.0";
2866
2948
  };
2867
2949
  readonly "run / session read faces#deployment-service-credential-no-principal-users-rows": {
2868
2950
  readonly attr: "200 on GET /v1/runs/:id · /v1/runs/:id/events · /v1/sessions/:id · /head · /events · /memory-status · /execution-placement (unless SERVICE_TOKEN_ACTS_FOR_DEPLOYMENT=false); was 404, or 401 auth.principal_required where a principal is required";
2869
- readonly revises: readonly ["errorCode:auth.principal_required", "errorCode:not_found.run", "errorCode:not_found.session"];
2870
2951
  readonly since: "7.148.0";
2871
2952
  };
2872
2953
  readonly "GET /v1/runs/:id \u00B7 /v1/runs/:id/events#dev-open-principal-header-not-owner": {
2873
- readonly attr: "200 (the principal header is a label on a deployment without an identity boundary); was 404 not_found.run";
2874
- readonly revises: readonly ["errorCode:not_found.run"];
2875
- readonly since: "7.148.0";
2954
+ readonly attr: "404 not_found.run, same body as a missing run (a caller that names a principal is that principal on a deployment without an identity boundary too); was 200";
2955
+ readonly since: "7.149.0";
2956
+ };
2957
+ readonly "session faces \u00B7 list faces \u00B7 /metrics family#dev-open-principal-header-not-owner": {
2958
+ readonly attr: "each face's missing-row answer, same body as a missing row (404 not_found.session on GET /v1/sessions/:id · /head · /events · /memory-status · /execution-placement · PATCH /v1/sessions/:id · fork · sync reads (manifest · entries · history blob) · memory/erase · background · background/stop · mcp/reconnect · policy · notify; approval exemptions 404 not_found.session (not found); DELETE /v1/sessions/:id 200 {deleted:false}; sync push family (plan · import · blob put) 404 on another owner's session, its existing create answer on a missing id); GET /v1/sessions · /v1/fleet/stream · /v1/agents/roster · /v1/tasks (trace list) · /v1/usage/* · /v1/sendfile-links pinned to the named caller; /metrics* and GET /v1/tasks/source-summary 401 auth.unauthorized (operator sentence; METRICS_TOKEN, when configured, still opens /metrics* and is judged first); a Bearer this deployment cannot verify does not count as naming no principal (no fleet); a caller naming no principal and presenting no unverifiable credential unchanged (fleet); was 200 / fleet-wide (the principal header read as a label)";
2959
+ readonly revises: readonly ["selfMinted.ownerFaceAnswer:GET /v1/runs/:id · /v1/runs/:id/events#dev-open-principal-header-not-owner"];
2960
+ readonly since: "7.149.0";
2876
2961
  };
2877
2962
  readonly "owner-only session ports#unreadable-archive-ownerless-session-fleet-or-operator": {
2878
2963
  readonly attr: "answered as on a readable archive: background · background/stop · notify · mcp/reconnect · execution-placement · approval exemptions list / revoke (the gate skips the placement read only when both hypotheses admit the caller); was 500 corrupt_session";
2879
- readonly revises: readonly ["errorCode:corrupt_session"];
2880
2964
  readonly since: "7.148.0";
2881
2965
  };
2882
2966
  readonly "run faces#row-without-owner-cell-no-fleet-no-operator": {
@@ -2885,17 +2969,14 @@ export declare const SELF_MINTED_WIRE: {
2885
2969
  };
2886
2970
  readonly "POST /v1/tool-approvals/:id/respond#ask-not-visible-to-caller(\u67E5\u65E0 / \u4E0D\u662F\u8C03\u7528\u65B9\u7684 / \u884C\u8BFB\u4E0D\u51FA / \u672C worker \u6CA1\u6709\u95EE\u8D26)": {
2887
2971
  readonly attr: "404 not_found.ask (no such approval ask (never existed, no longer kept, or not yours)), one body for every form, no state facts — the durable decision door's word; was 404 tool_approval.not_pending with cause unknown_or_other_replica (no cause on a worker without an ask ledger)";
2888
- readonly revises: readonly ["errorCode:tool_approval.not_pending", "selfMinted.notPendingCause:unknown_or_other_replica"];
2889
2972
  readonly since: "7.148.0";
2890
2973
  };
2891
2974
  readonly "GET /v1/tool-approvals/:id#ask-not-visible-to-caller(\u67E5\u65E0 / \u4E0D\u662F\u8C03\u7528\u65B9\u7684 / \u884C\u8BFB\u4E0D\u51FA / \u672C worker \u6CA1\u6709\u95EE\u8D26)": {
2892
2975
  readonly attr: "404 not_found.ask, the same body as the respond door; was 404 tool_approval.not_pending with cause unknown_or_other_replica (no cause on a worker without an ask ledger)";
2893
- readonly revises: readonly ["errorCode:tool_approval.not_pending", "selfMinted.notPendingCause:unknown_or_other_replica"];
2894
2976
  readonly since: "7.148.0";
2895
2977
  };
2896
2978
  readonly "GET /v1/workflows/:id \u00B7 /journal \u00B7 /stream \u00B7 POST /v1/workflows/:id/agents/:label/steer#session-assertion-mismatch": {
2897
2979
  readonly attr: "404 not_found.workflow (workflow not found), same body as a missing workflow; was 404 not_found.run (workflow not found)";
2898
- readonly revises: readonly ["errorCode:not_found.run"];
2899
2980
  readonly since: "7.148.0";
2900
2981
  };
2901
2982
  };
@@ -3129,7 +3210,6 @@ export declare const SELF_MINTED_WIRE: {
3129
3210
  };
3130
3211
  readonly "404 not_found.run#a*/wa* id(compact \u00B7 detach \u00B7 \u5B50\u4EE3\u52A8\u8BCD\u53E3;\u5404 run \u53E3\u7684\u975E\u5C5E\u4E3B\u81C2)": {
3131
3212
  readonly attr: "run not found — \"<id>\" looks like an agent handle (a*/wa* domain) … (the handle hint, same sentence as the missing-row arm)";
3132
- readonly revises: readonly ["errorCode:not_found.run"];
3133
3213
  readonly since: "7.148.0";
3134
3214
  };
3135
3215
  readonly "409 decide.row_unrevivable#no_root_anchor": {
@@ -3174,7 +3254,6 @@ export declare const SELF_MINTED_WIRE: {
3174
3254
  };
3175
3255
  readonly "400 request.field_invalid#images[i].not_object": {
3176
3256
  readonly attr: "head: images[i] is <shape>, not an image entry (an object)";
3177
- readonly revises: readonly ["errorCode:internal.error"];
3178
3257
  readonly since: "7.148.0";
3179
3258
  };
3180
3259
  readonly "400 request.field_invalid#images[i].<key>.unusable": {