@sema-agent/server 7.147.0 → 7.148.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 (725) hide show
  1. package/MIGRATION.md +1039 -24
  2. package/README.md +20 -7
  3. package/README.zh-CN.md +14 -8
  4. package/USAGE.md +380 -163
  5. package/deploy/sema-up/README.md +16 -5
  6. package/deploy/sema-up/chart/templates/NOTES.txt +1 -1
  7. package/deploy/sema-up/chart/templates/_helpers.tpl +20 -4
  8. package/deploy/sema-up/chart/values.yaml +3 -2
  9. package/deploy/sema-up/cluster-up.sh +74 -176
  10. package/deploy/sema-up/kube-up.sh +29 -49
  11. package/deploy/sema-up/lib/chart-run.sh +23 -0
  12. package/deploy/sema-up/lib/dataroot.sh +3 -3
  13. package/deploy/sema-up/lib/health.sh +62 -13
  14. package/deploy/sema-up/lib/helm-values-cluster.py +18 -0
  15. package/deploy/sema-up/lib/helm-values-kube.py +35 -0
  16. package/deploy/sema-up/lib/regcred.py +8 -0
  17. package/deploy/sema-up/lib/remote/helm-install.sh +3 -0
  18. package/deploy/sema-up/lib/remote/image-import.sh +6 -0
  19. package/deploy/sema-up/lib/remote/machine-precheck.sh +11 -0
  20. package/deploy/sema-up/lib/remote/region-probe.sh +3 -0
  21. package/deploy/sema-up/lib/remote/stack-ready.sh +26 -0
  22. package/deploy/sema-up/lib/remote/vxlan-guard.sh +8 -0
  23. package/deploy/sema-up/lib/render-stack.py +17 -0
  24. package/deploy/sema-up/lib/shell-text.sh +87 -0
  25. package/deploy/sema-up/lib/usage-flags.txt +10 -0
  26. package/deploy/sema-up/lib/usage-head.txt +1 -0
  27. package/deploy/sema-up/lib/usage-tail.txt +13 -0
  28. package/deploy/sema-up/preflight.sh +10 -8
  29. package/deploy/sema-up/sema-up.sh +14 -39
  30. package/deploy/sema-up/smoke.sh +7 -6
  31. package/deploy/sema-up/stack/compose.dataroot.yaml +3 -0
  32. package/deploy/sema-up/stack/compose.yaml +13 -1
  33. package/deploy/sema-up/stack/sema-stack-cluster.yaml +21 -0
  34. package/dist/adoption/plan.d.ts +24 -0
  35. package/dist/adoption/plan.js +53 -1
  36. package/dist/adoption/runner.d.ts +10 -1
  37. package/dist/adoption/runner.js +36 -16
  38. package/dist/adoption/wire.d.ts +3 -3
  39. package/dist/approval-card.d.ts +28 -30
  40. package/dist/approval-gate-currency.js +3 -2
  41. package/dist/approval-reconciler.d.ts +4 -13
  42. package/dist/approval-reconciler.js +2 -2
  43. package/dist/approval.d.ts +13 -11
  44. package/dist/approval.js +3 -3
  45. package/dist/audit.d.ts +10 -3
  46. package/dist/audit.js +15 -7
  47. package/dist/auth-bridge.d.ts +0 -14
  48. package/dist/auth-bridge.js +0 -7
  49. package/dist/auto-mode-face.d.ts +10 -7
  50. package/dist/auto-mode-face.js +7 -4
  51. package/dist/background-agent-name.d.ts +19 -1
  52. package/dist/background-agent-name.js +12 -2
  53. package/dist/background-session-reap.d.ts +1 -1
  54. package/dist/bake-runner/main.js +9 -6
  55. package/dist/bench/s1/arms.js +6 -5
  56. package/dist/bench/s1/live-deps.js +5 -2
  57. package/dist/bench/s1/run-firm.js +6 -5
  58. package/dist/bind-host.d.ts +25 -0
  59. package/dist/bind-host.js +25 -0
  60. package/dist/boot/adoption.d.ts +3 -0
  61. package/dist/boot/adoption.js +1 -0
  62. package/dist/boot/deployment-mods.d.ts +1 -1
  63. package/dist/boot/execution-env.d.ts +17 -7
  64. package/dist/boot/execution-env.js +37 -31
  65. package/dist/boot/exit-boundary.d.ts +2 -2
  66. package/dist/boot/exit-boundary.js +6 -5
  67. package/dist/boot/fatal-exit.d.ts +3 -5
  68. package/dist/boot/fatal-exit.js +2 -2
  69. package/dist/boot/leader.d.ts +15 -0
  70. package/dist/boot/leader.js +17 -15
  71. package/dist/boot/memory-consolidation.d.ts +37 -29
  72. package/dist/boot/memory-consolidation.js +11 -5
  73. package/dist/boot/org-memory.js +1 -1
  74. package/dist/boot/parked-revive-gate.js +2 -2
  75. package/dist/boot/reapers.d.ts +4 -3
  76. package/dist/boot/reapers.js +19 -16
  77. package/dist/boot/resolve-spec.d.ts +5 -3
  78. package/dist/boot/resolve-spec.js +55 -67
  79. package/dist/boot/retention-lane.d.ts +4 -4
  80. package/dist/boot/retention-lane.js +2 -2
  81. package/dist/boot/runner-deps.d.ts +28 -7
  82. package/dist/boot/runner-deps.js +11 -4
  83. package/dist/boot/runtime-caps.d.ts +2 -2
  84. package/dist/boot/runtime-caps.js +16 -2
  85. package/dist/boot/session-faces.d.ts +16 -7
  86. package/dist/boot/session-faces.js +114 -94
  87. package/dist/boot/shutdown.d.ts +5 -4
  88. package/dist/boot/shutdown.js +6 -4
  89. package/dist/boot/stage-01-config.js +9 -1
  90. package/dist/boot/stage-02-web-admin-pull.d.ts +1 -0
  91. package/dist/boot/stage-02-web-admin-pull.js +6 -1
  92. package/dist/boot/stage-03-store-backend.d.ts +3 -0
  93. package/dist/boot/stage-03-store-backend.js +4 -3
  94. package/dist/boot/stage-04-stores.d.ts +2 -0
  95. package/dist/boot/stage-04-stores.js +2 -2
  96. package/dist/boot/stage-05-execution-env.d.ts +7 -3
  97. package/dist/boot/stage-05-execution-env.js +2 -2
  98. package/dist/boot/stage-06-runners.d.ts +10 -12
  99. package/dist/boot/stage-06-runners.js +23 -15
  100. package/dist/boot/stage-07-capability-layer.d.ts +11 -8
  101. package/dist/boot/stage-07-capability-layer.js +5 -3
  102. package/dist/boot/stage-08-reapers.d.ts +11 -8
  103. package/dist/boot/stage-08-reapers.js +3 -3
  104. package/dist/boot/stage-09-leader.d.ts +12 -15
  105. package/dist/boot/stage-09-leader.js +12 -4
  106. package/dist/boot/stage-10-http-server.d.ts +12 -15
  107. package/dist/boot/stage-10-http-server.js +7 -4
  108. package/dist/boot/store-evidence.d.ts +20 -0
  109. package/dist/boot/store-evidence.js +13 -0
  110. package/dist/boot/stores.d.ts +3 -0
  111. package/dist/boot/stores.js +21 -10
  112. package/dist/boot/task-list-lane.d.ts +4 -4
  113. package/dist/boot/web-admin.d.ts +4 -2
  114. package/dist/boot/web-admin.js +55 -35
  115. package/dist/boot/webfetch-summarize-lane.d.ts +1 -1
  116. package/dist/boot-reclaim.d.ts +3 -1
  117. package/dist/boot-reclaim.js +1 -1
  118. package/dist/brain.d.ts +7 -18
  119. package/dist/brain.js +5 -17
  120. package/dist/budget.js +6 -6
  121. package/dist/capabilities/center-plugins.d.ts +7 -1
  122. package/dist/capabilities/center-plugins.js +32 -10
  123. package/dist/capabilities/center-wiring.js +1 -1
  124. package/dist/capabilities/composite-members.d.ts +2 -2
  125. package/dist/capabilities/composite-members.js +2 -2
  126. package/dist/capabilities/repo-tools.d.ts +2 -0
  127. package/dist/capabilities/repo-tools.js +14 -12
  128. package/dist/capabilities/scenarios.d.ts +6 -15
  129. package/dist/capabilities/scenarios.js +11 -16
  130. package/dist/capabilities/skills.d.ts +1 -1
  131. package/dist/capabilities/tool-defer.d.ts +1 -1
  132. package/dist/capability-facts.d.ts +38 -11
  133. package/dist/capability-facts.js +47 -8
  134. package/dist/card-void.d.ts +4 -4
  135. package/dist/card-void.js +1 -1
  136. package/dist/center-credential-renewer.d.ts +6 -2
  137. package/dist/center-credential-renewer.js +7 -3
  138. package/dist/config-catalog.d.ts +16 -1
  139. package/dist/config-catalog.js +62 -56
  140. package/dist/config-dir-trust.d.ts +37 -4
  141. package/dist/config-dir-trust.js +88 -44
  142. package/dist/config-invariants.d.ts +42 -3
  143. package/dist/config-invariants.js +69 -5
  144. package/dist/config-lkg.d.ts +23 -1
  145. package/dist/config-lkg.js +17 -3
  146. package/dist/config-provider.d.ts +9 -9
  147. package/dist/config-provider.js +25 -110
  148. package/dist/config-pull-failure.d.ts +50 -0
  149. package/dist/config-pull-failure.js +48 -0
  150. package/dist/config-types.d.ts +26 -17
  151. package/dist/config.d.ts +8 -16
  152. package/dist/config.js +113 -47
  153. package/dist/delegated-session-owner.d.ts +1 -1
  154. package/dist/deleted-session-ids.d.ts +3 -2
  155. package/dist/deployment-governance.d.ts +3 -3
  156. package/dist/deployment-shape.d.ts +30 -4
  157. package/dist/deployment-shape.js +7 -0
  158. package/dist/egress-redirect.d.ts +25 -7
  159. package/dist/egress-redirect.js +20 -2
  160. package/dist/elicitation.d.ts +6 -5
  161. package/dist/elicitation.js +23 -22
  162. package/dist/engine-identity.d.ts +28 -0
  163. package/dist/engine-identity.js +10 -0
  164. package/dist/entry-problems.d.ts +5 -7
  165. package/dist/entry-problems.js +1 -1
  166. package/dist/env-facts.js +2 -1
  167. package/dist/env-witness.d.ts +7 -0
  168. package/dist/env-witness.js +16 -0
  169. package/dist/execution-lane-caps.d.ts +5 -18
  170. package/dist/execution-lane-caps.js +0 -22
  171. package/dist/execution-placement.d.ts +58 -18
  172. package/dist/execution-placement.js +41 -2
  173. package/dist/field-conflict.d.ts +7 -11
  174. package/dist/field-conflict.js +3 -3
  175. package/dist/file-history-capture.d.ts +3 -3
  176. package/dist/file-history-disclosure.js +1 -0
  177. package/dist/fleet/fleet-bus.d.ts +21 -3
  178. package/dist/fleet/fleet-bus.js +35 -25
  179. package/dist/fleet/fleet-reconciler.js +2 -2
  180. package/dist/fleet/serving-lease.js +3 -3
  181. package/dist/fleet-client.js +3 -3
  182. package/dist/fleet-lease.d.ts +0 -1
  183. package/dist/fleet-lease.js +4 -5
  184. package/dist/history-anchor.d.ts +23 -3
  185. package/dist/history-anchor.js +24 -4
  186. package/dist/hitl-delivery.d.ts +90 -0
  187. package/dist/hitl-delivery.js +98 -0
  188. package/dist/hooks/classic-stations.d.ts +8 -11
  189. package/dist/hooks/classic-stations.js +0 -7
  190. package/dist/hooks/hook-llm.d.ts +5 -1
  191. package/dist/hooks/hook-llm.js +24 -15
  192. package/dist/hooks/hook-runner.d.ts +67 -57
  193. package/dist/hooks/hook-runner.js +260 -186
  194. package/dist/host-lsp-manager.d.ts +22 -8
  195. package/dist/host-lsp-manager.js +4 -1
  196. package/dist/http/active-run-conflict.d.ts +2 -43
  197. package/dist/http/active-run-conflict.js +3 -7
  198. package/dist/http/admission.d.ts +4 -18
  199. package/dist/http/admission.js +75 -78
  200. package/dist/http/approval-sweeps.d.ts +3 -3
  201. package/dist/http/approval-sweeps.js +54 -30
  202. package/dist/http/caller-trust.d.ts +8 -10
  203. package/dist/http/caller-trust.js +1 -2
  204. package/dist/http/claim-heartbeat.d.ts +49 -0
  205. package/dist/http/claim-heartbeat.js +46 -0
  206. package/dist/http/claimed-run.d.ts +4 -3
  207. package/dist/http/dispatch.d.ts +8 -1
  208. package/dist/http/dispatch.js +76 -30
  209. package/dist/http/durable-run-leg.d.ts +3 -3
  210. package/dist/http/durable-run-leg.js +17 -12
  211. package/dist/http/execution-context.d.ts +17 -43
  212. package/dist/http/execution-context.js +7 -5
  213. package/dist/http/health-reader.d.ts +36 -0
  214. package/dist/http/health-reader.js +21 -0
  215. package/dist/http/health-self-report.d.ts +9 -9
  216. package/dist/http/health-self-report.js +4 -4
  217. package/dist/http/idempotency.d.ts +9 -5
  218. package/dist/http/idempotency.js +4 -4
  219. package/dist/http/memory-compliance-failure-reply.d.ts +15 -16
  220. package/dist/http/memory-compliance-failure-reply.js +4 -2
  221. package/dist/http/memory-face-fault-reply.d.ts +67 -0
  222. package/dist/http/memory-face-fault-reply.js +71 -0
  223. package/dist/http/memory-store-refusal-reply.d.ts +1 -1
  224. package/dist/http/memory-store-refusal-reply.js +3 -0
  225. package/dist/http/owner-access.d.ts +391 -67
  226. package/dist/http/owner-access.js +371 -35
  227. package/dist/http/principal-gate.d.ts +24 -81
  228. package/dist/http/principal-gate.js +24 -68
  229. package/dist/http/refusal-body.d.ts +35 -2
  230. package/dist/http/refusal-body.js +34 -0
  231. package/dist/http/request-guards.d.ts +9 -13
  232. package/dist/http/request-guards.js +34 -68
  233. package/dist/http/resume-composition.d.ts +37 -0
  234. package/dist/http/resume-composition.js +18 -0
  235. package/dist/http/resume-ctx-read.d.ts +35 -12
  236. package/dist/http/resume-ctx-read.js +25 -6
  237. package/dist/http/resume-legs.d.ts +21 -18
  238. package/dist/http/resume-legs.js +189 -129
  239. package/dist/http/retired-skill-manifest.d.ts +1 -1
  240. package/dist/http/route-ctx.d.ts +25 -32
  241. package/dist/http/routes/a2a-serve.d.ts +43 -5
  242. package/dist/http/routes/a2a-serve.js +58 -37
  243. package/dist/http/routes/admin-config-refresh.js +2 -2
  244. package/dist/http/routes/admin-drain.js +2 -2
  245. package/dist/http/routes/admin-memory-optout.js +4 -3
  246. package/dist/http/routes/adoption.d.ts +3 -0
  247. package/dist/http/routes/adoption.js +17 -10
  248. package/dist/http/routes/agents-roster.js +13 -7
  249. package/dist/http/routes/approvals-assistant.js +70 -65
  250. package/dist/http/routes/attachments.js +2 -2
  251. package/dist/http/routes/background.d.ts +3 -3
  252. package/dist/http/routes/background.js +9 -17
  253. package/dist/http/routes/capabilities.js +15 -18
  254. package/dist/http/routes/config-catalog.js +2 -2
  255. package/dist/http/routes/devices.d.ts +3 -3
  256. package/dist/http/routes/devices.js +4 -4
  257. package/dist/http/routes/diagnostics.d.ts +27 -3
  258. package/dist/http/routes/diagnostics.js +27 -21
  259. package/dist/http/routes/engine.js +2 -2
  260. package/dist/http/routes/fleet.js +5 -3
  261. package/dist/http/routes/images.js +10 -6
  262. package/dist/http/routes/leader.d.ts +7 -2
  263. package/dist/http/routes/leader.js +12 -3
  264. package/dist/http/routes/mcp-reconnect.d.ts +1 -1
  265. package/dist/http/routes/mcp-reconnect.js +7 -15
  266. package/dist/http/routes/memory-bundle.js +4 -7
  267. package/dist/http/routes/memory-compliance.js +4 -4
  268. package/dist/http/routes/memory-consolidation.js +6 -9
  269. package/dist/http/routes/memory-origin.d.ts +2 -0
  270. package/dist/http/routes/memory-origin.js +7 -8
  271. package/dist/http/routes/memory-policy.js +17 -12
  272. package/dist/http/routes/notify-wake.js +10 -19
  273. package/dist/http/routes/observability.js +3 -3
  274. package/dist/http/routes/principal-inbox.d.ts +1 -1
  275. package/dist/http/routes/principal-inbox.js +2 -2
  276. package/dist/http/routes/projects.d.ts +1 -1
  277. package/dist/http/routes/projects.js +3 -2
  278. package/dist/http/routes/retention-ops.js +6 -9
  279. package/dist/http/routes/rules.js +20 -5
  280. package/dist/http/routes/run-memory-capture.d.ts +2 -2
  281. package/dist/http/routes/run-memory-capture.js +6 -12
  282. package/dist/http/routes/run-permission-mode.d.ts +2 -2
  283. package/dist/http/routes/run-permission-mode.js +10 -17
  284. package/dist/http/routes/runs.js +146 -231
  285. package/dist/http/routes/session-memory-sync.d.ts +2 -2
  286. package/dist/http/routes/session-memory-sync.js +7 -13
  287. package/dist/http/routes/session-sync.d.ts +4 -2
  288. package/dist/http/routes/session-sync.js +21 -20
  289. package/dist/http/routes/sessions-list.d.ts +3 -3
  290. package/dist/http/routes/sessions-list.js +9 -9
  291. package/dist/http/routes/sessions.js +87 -124
  292. package/dist/http/routes/shared-memory.js +6 -6
  293. package/dist/http/routes/side-query.js +2 -2
  294. package/dist/http/routes/tasks.js +136 -120
  295. package/dist/http/routes/trace-usage.d.ts +0 -12
  296. package/dist/http/routes/trace-usage.js +40 -46
  297. package/dist/http/routes/workflows.d.ts +39 -4
  298. package/dist/http/routes/workflows.js +42 -14
  299. package/dist/http/run-concurrency-cap.d.ts +20 -12
  300. package/dist/http/run-concurrency-cap.js +39 -26
  301. package/dist/http/run-read-face.d.ts +3 -5
  302. package/dist/http/run-read-face.js +8 -13
  303. package/dist/http/send.d.ts +12 -3
  304. package/dist/http/send.js +42 -6
  305. package/dist/http/server.d.ts +39 -40
  306. package/dist/http/server.js +36 -11
  307. package/dist/http/sse-log.d.ts +17 -10
  308. package/dist/http/sse-log.js +7 -7
  309. package/dist/http/stored-body-replay.d.ts +12 -0
  310. package/dist/http/stored-body-replay.js +2 -2
  311. package/dist/http/submit-ctx.d.ts +16 -8
  312. package/dist/http/submit-ctx.js +6 -2
  313. package/dist/http/submit-replay.d.ts +19 -6
  314. package/dist/http/submit-replay.js +18 -6
  315. package/dist/http/sync-submit-body.d.ts +3 -4
  316. package/dist/http/sync-submit-body.js +4 -5
  317. package/dist/http/wire-types.d.ts +4 -3
  318. package/dist/identity-source.d.ts +36 -5
  319. package/dist/identity-source.js +27 -0
  320. package/dist/index.d.ts +1 -0
  321. package/dist/index.js +1 -0
  322. package/dist/key-resolver.d.ts +32 -0
  323. package/dist/key-resolver.js +23 -9
  324. package/dist/leader/diffup.js +2 -1
  325. package/dist/leader/endpoint.d.ts +26 -5
  326. package/dist/leader/endpoint.js +154 -14
  327. package/dist/leader/fanout.d.ts +3 -0
  328. package/dist/leader/fanout.js +78 -63
  329. package/dist/leader/leader.d.ts +16 -0
  330. package/dist/leader/leader.js +43 -3
  331. package/dist/leader/merge.d.ts +9 -1
  332. package/dist/leader/merge.js +16 -1
  333. package/dist/leader/repair-wire.js +1 -1
  334. package/dist/leader/wire.d.ts +36 -3
  335. package/dist/leader/wire.js +59 -18
  336. package/dist/lsp-evict.d.ts +6 -4
  337. package/dist/lsp-evict.js +2 -3
  338. package/dist/memory-operator-faces.d.ts +5 -4
  339. package/dist/memory-operator-faces.js +1 -1
  340. package/dist/memory-scope.d.ts +29 -2
  341. package/dist/memory-scope.js +64 -15
  342. package/dist/memory-store-refusal.d.ts +5 -2
  343. package/dist/memory-sync-client.d.ts +3 -2
  344. package/dist/memory-sync-client.js +6 -3
  345. package/dist/model-compat.d.ts +17 -8
  346. package/dist/model-compat.js +6 -2
  347. package/dist/model-context-window.d.ts +18 -0
  348. package/dist/model-context-window.js +2 -0
  349. package/dist/model-entry-headers.d.ts +46 -4
  350. package/dist/model-entry-headers.js +2 -2
  351. package/dist/model-entry-refusal.d.ts +35 -16
  352. package/dist/model-entry-refusal.js +40 -27
  353. package/dist/model-plane-face.d.ts +19 -11
  354. package/dist/model-plane-face.js +9 -1
  355. package/dist/model-plane-probe.d.ts +2 -0
  356. package/dist/model-plane-probe.js +17 -0
  357. package/dist/model-provider.d.ts +3 -3
  358. package/dist/model-route-endpoint.d.ts +9 -5
  359. package/dist/model-route-endpoint.js +29 -7
  360. package/dist/model-select.d.ts +16 -0
  361. package/dist/model-select.js +4 -0
  362. package/dist/mountinfo.d.ts +37 -0
  363. package/dist/mountinfo.js +47 -0
  364. package/dist/namespaced-rule-name.d.ts +23 -14
  365. package/dist/namespaced-rule-name.js +8 -11
  366. package/dist/net-address.d.ts +1 -1
  367. package/dist/observability/corrupt-read-seat.d.ts +4 -4
  368. package/dist/observability/corrupt-read-seat.js +5 -3
  369. package/dist/observability/fail-open.d.ts +58 -38
  370. package/dist/observability/fail-open.js +60 -38
  371. package/dist/observability/logger.d.ts +22 -1
  372. package/dist/observability/logger.js +89 -12
  373. package/dist/observability/metrics.js +3 -4
  374. package/dist/observability/otel-exporter.js +2 -1
  375. package/dist/observability/principal-context.d.ts +14 -7
  376. package/dist/observability/principal-context.js +8 -3
  377. package/dist/observability/run-terminal.d.ts +7 -1
  378. package/dist/observability/run-terminal.js +5 -2
  379. package/dist/orchestration/hardened-vm-runner.d.ts +1 -0
  380. package/dist/orchestration/hardened-vm-runner.js +11 -5
  381. package/dist/orchestration/hardened-vm-worker-runner.d.ts +0 -14
  382. package/dist/orchestration/hardened-vm-worker-runner.js +5 -0
  383. package/dist/orchestration/hardened-vm-worker.js +2 -1
  384. package/dist/orchestration/workflow-completion-inbox.d.ts +3 -3
  385. package/dist/orchestration/workflow-completion-inbox.js +3 -2
  386. package/dist/org-delivery-gate.d.ts +5 -4
  387. package/dist/org-delivery-gate.js +7 -6
  388. package/dist/outbound-dispatcher.d.ts +1 -1
  389. package/dist/outbound-dispatcher.js +6 -12
  390. package/dist/owner-brands.d.ts +81 -0
  391. package/dist/owner-brands.js +42 -0
  392. package/dist/owner-faces.d.ts +531 -0
  393. package/dist/owner-faces.js +126 -0
  394. package/dist/parked-decide.d.ts +67 -5
  395. package/dist/parked-decide.js +127 -5
  396. package/dist/parked-revive-surface.d.ts +14 -4
  397. package/dist/parked-revive-surface.js +5 -4
  398. package/dist/peer-directory.d.ts +6 -8
  399. package/dist/peer-directory.js +3 -2
  400. package/dist/permission-rule-vocab.d.ts +53 -8
  401. package/dist/permission-rule-vocab.js +30 -2
  402. package/dist/plugins/adoption-log-sql.d.ts +0 -22
  403. package/dist/plugins/adoption-log-sql.js +5 -3
  404. package/dist/plugins/approval-ask-retired-delete-by-task-m50.d.ts +7 -0
  405. package/dist/plugins/approval-ask-retired-delete-by-task-m50.js +17 -0
  406. package/dist/plugins/approval-ask-store-file.d.ts +18 -7
  407. package/dist/plugins/approval-ask-store-file.js +37 -14
  408. package/dist/plugins/approval-ask-store-memory.d.ts +12 -4
  409. package/dist/plugins/approval-ask-store-memory.js +24 -10
  410. package/dist/plugins/approval-ask-store-sql.d.ts +39 -20
  411. package/dist/plugins/approval-ask-store-sql.js +41 -10
  412. package/dist/plugins/approval-exemption-skill-m46.d.ts +20 -0
  413. package/dist/plugins/approval-exemption-skill-m46.js +25 -0
  414. package/dist/plugins/approval-exemption-store.d.ts +6 -1
  415. package/dist/plugins/approval-exemption-store.js +14 -0
  416. package/dist/plugins/approval-nonce-store.d.ts +39 -12
  417. package/dist/plugins/approval-nonce-store.js +72 -23
  418. package/dist/plugins/blob-backend.d.ts +2 -0
  419. package/dist/plugins/blob-backend.js +9 -6
  420. package/dist/plugins/caching-session-store.d.ts +13 -1
  421. package/dist/plugins/caching-session-store.js +43 -4
  422. package/dist/plugins/checkpoint-index-columns.d.ts +32 -5
  423. package/dist/plugins/checkpoint-index-columns.js +36 -1
  424. package/dist/plugins/checkpoint-store-face.d.ts +83 -10
  425. package/dist/plugins/checkpoint-store-face.js +18 -1
  426. package/dist/plugins/device-store-sql.js +1 -0
  427. package/dist/plugins/ensure-index.d.ts +13 -1
  428. package/dist/plugins/ensure-index.js +154 -21
  429. package/dist/plugins/ensure-schema-lock-policy.d.ts +0 -15
  430. package/dist/plugins/ensure-schema-lock-policy.js +3 -2
  431. package/dist/plugins/file-run-store.d.ts +63 -23
  432. package/dist/plugins/file-run-store.js +138 -83
  433. package/dist/plugins/host-platform.d.ts +24 -3
  434. package/dist/plugins/host-platform.js +15 -1
  435. package/dist/plugins/image-bake-store-sql.js +2 -0
  436. package/dist/plugins/imported-layer-root-retirement.d.ts +2 -2
  437. package/dist/plugins/k8s-pod-reaper.d.ts +1 -3
  438. package/dist/plugins/k8s-pod-reaper.js +0 -1
  439. package/dist/plugins/leader-run-store-sql.d.ts +22 -0
  440. package/dist/plugins/leader-run-store-sql.js +34 -4
  441. package/dist/plugins/local-checkpoint-store.d.ts +58 -23
  442. package/dist/plugins/local-checkpoint-store.js +195 -76
  443. package/dist/plugins/local-data-dir-modes-m39.js +2 -1
  444. package/dist/plugins/local-docker-capacity.d.ts +93 -0
  445. package/dist/plugins/local-docker-capacity.js +194 -0
  446. package/dist/plugins/local-docker-reaper.d.ts +92 -0
  447. package/dist/plugins/local-docker-reaper.js +102 -0
  448. package/dist/plugins/local-engine-high-water.d.ts +4 -2
  449. package/dist/plugins/local-engine-high-water.js +4 -1
  450. package/dist/plugins/local-session-store.d.ts +358 -125
  451. package/dist/plugins/local-session-store.js +824 -251
  452. package/dist/plugins/local-session-window.d.ts +3 -2
  453. package/dist/plugins/local-session-window.js +3 -2
  454. package/dist/plugins/local-sidecar-quarantine.js +3 -2
  455. package/dist/plugins/local-task-attachment-store.d.ts +18 -1
  456. package/dist/plugins/local-task-attachment-store.js +22 -1
  457. package/dist/plugins/memory-embedder.js +9 -7
  458. package/dist/plugins/memory-engine-pg.d.ts +3 -2
  459. package/dist/plugins/memory-engine-pg.js +14 -5
  460. package/dist/plugins/memory-engine-sql-apply.d.ts +8 -4
  461. package/dist/plugins/memory-engine-sql-apply.js +6 -8
  462. package/dist/plugins/memory-engine-tidb.d.ts +4 -2
  463. package/dist/plugins/memory-engine-tidb.js +11 -2
  464. package/dist/plugins/memory-optout-grant-store-sql.d.ts +1 -1
  465. package/dist/plugins/memory-optout-grant-store-sql.js +3 -3
  466. package/dist/plugins/memory-run-store.d.ts +39 -27
  467. package/dist/plugins/memory-run-store.js +72 -70
  468. package/dist/plugins/one-time-migration-marker.d.ts +10 -0
  469. package/dist/plugins/one-time-migration-marker.js +7 -0
  470. package/dist/plugins/one-time-migrations.d.ts +186 -45
  471. package/dist/plugins/one-time-migrations.js +442 -119
  472. package/dist/plugins/org-delivery-quota-store.js +2 -1
  473. package/dist/plugins/permission-rule-store-file.d.ts +3 -3
  474. package/dist/plugins/permission-rule-store-sql.d.ts +4 -63
  475. package/dist/plugins/permission-rule-store-sql.js +6 -86
  476. package/dist/plugins/pg-pool.d.ts +1 -31
  477. package/dist/plugins/pg-pool.js +16 -7
  478. package/dist/plugins/remote-env-e2b.d.ts +7 -25
  479. package/dist/plugins/remote-env-e2b.js +34 -25
  480. package/dist/plugins/remote-env-host.d.ts +2 -9
  481. package/dist/plugins/remote-env-host.js +34 -22
  482. package/dist/plugins/remote-env-k8s.d.ts +40 -45
  483. package/dist/plugins/remote-env-k8s.js +107 -58
  484. package/dist/plugins/remote-env-local-docker.d.ts +148 -14
  485. package/dist/plugins/remote-env-local-docker.js +367 -72
  486. package/dist/plugins/remote-scratchpad.js +4 -0
  487. package/dist/plugins/retention-deployment.d.ts +49 -17
  488. package/dist/plugins/retention-deployment.js +39 -8
  489. package/dist/plugins/run-preview-m45.d.ts +11 -0
  490. package/dist/plugins/run-preview-m45.js +19 -0
  491. package/dist/plugins/run-store-sql.d.ts +56 -68
  492. package/dist/plugins/run-store-sql.js +127 -116
  493. package/dist/plugins/s3-answer.d.ts +2 -1
  494. package/dist/plugins/sandbox-reaper.d.ts +26 -0
  495. package/dist/plugins/sandbox-reaper.js +2 -0
  496. package/dist/plugins/scenario-prefix-switch-m42.d.ts +54 -0
  497. package/dist/plugins/scenario-prefix-switch-m42.js +55 -0
  498. package/dist/plugins/scheduler-support.d.ts +16 -1
  499. package/dist/plugins/scheduler-support.js +22 -2
  500. package/dist/plugins/schema-consistency.d.ts +42 -9
  501. package/dist/plugins/schema-consistency.js +212 -11
  502. package/dist/plugins/schema-drift-sentence.d.ts +4 -1
  503. package/dist/plugins/schema-drift-sentence.js +4 -4
  504. package/dist/plugins/schema-ensure-legs.d.ts +9 -0
  505. package/dist/plugins/schema-ensure-legs.js +1 -1
  506. package/dist/plugins/schema-indexes.js +3 -0
  507. package/dist/plugins/schema-live-columns.d.ts +14 -5
  508. package/dist/plugins/schema-live-columns.js +10 -10
  509. package/dist/plugins/send-user-file.js +2 -1
  510. package/dist/plugins/session-birth.d.ts +37 -0
  511. package/dist/plugins/session-birth.js +38 -0
  512. package/dist/plugins/session-epoch-anchor.d.ts +40 -12
  513. package/dist/plugins/session-epoch-anchor.js +33 -11
  514. package/dist/plugins/session-ext-table.d.ts +27 -3
  515. package/dist/plugins/session-ext-table.js +19 -6
  516. package/dist/plugins/session-fork.d.ts +15 -1
  517. package/dist/plugins/session-fork.js +3 -0
  518. package/dist/plugins/session-ownership.d.ts +1 -1
  519. package/dist/plugins/session-placement.d.ts +22 -16
  520. package/dist/plugins/session-placement.js +15 -12
  521. package/dist/plugins/session-row-sql.d.ts +12 -0
  522. package/dist/plugins/session-row-sql.js +3 -3
  523. package/dist/plugins/session-run-rollup.d.ts +29 -0
  524. package/dist/plugins/session-run-rollup.js +40 -0
  525. package/dist/plugins/session-store-sql.d.ts +38 -12
  526. package/dist/plugins/session-store-sql.js +130 -30
  527. package/dist/plugins/session-withdraw-sql.d.ts +36 -0
  528. package/dist/plugins/session-withdraw-sql.js +42 -0
  529. package/dist/plugins/shared-memory-store-sql.d.ts +0 -69
  530. package/dist/plugins/shared-memory-store-sql.js +2 -1
  531. package/dist/plugins/shell-sentinel-owner-m48.d.ts +20 -0
  532. package/dist/plugins/shell-sentinel-owner-m48.js +3 -0
  533. package/dist/plugins/snapshot-bucket-presence.d.ts +2 -1
  534. package/dist/plugins/sql-driver.d.ts +1 -1
  535. package/dist/plugins/sql-driver.js +2 -1
  536. package/dist/plugins/sql-errors.d.ts +32 -5
  537. package/dist/plugins/sql-errors.js +55 -7
  538. package/dist/plugins/sql-json-column.d.ts +8 -7
  539. package/dist/plugins/sql-json-column.js +10 -6
  540. package/dist/plugins/store-backend.d.ts +84 -15
  541. package/dist/plugins/store-backend.js +186 -55
  542. package/dist/plugins/store-contracts.d.ts +90 -30
  543. package/dist/plugins/store-contracts.js +22 -1
  544. package/dist/plugins/store-fault.d.ts +28 -2
  545. package/dist/plugins/store-fault.js +20 -2
  546. package/dist/plugins/task-attachment-store.d.ts +15 -3
  547. package/dist/plugins/task-attachment-store.js +22 -9
  548. package/dist/plugins/tidb-pool.js +23 -8
  549. package/dist/plugins/web-search.js +5 -3
  550. package/dist/plugins/workflow-run-store-sql.d.ts +6 -1
  551. package/dist/plugins/workflow-run-store-sql.js +11 -5
  552. package/dist/principal-jwt.d.ts +4 -4
  553. package/dist/principal-jwt.js +20 -5
  554. package/dist/principal-shape.d.ts +41 -0
  555. package/dist/principal-shape.js +19 -0
  556. package/dist/question.d.ts +13 -23
  557. package/dist/question.js +21 -39
  558. package/dist/request-declaration-refusal.d.ts +35 -12
  559. package/dist/request-declaration-refusal.js +21 -9
  560. package/dist/request-form.d.ts +58 -0
  561. package/dist/request-form.js +72 -0
  562. package/dist/request-image-urls.d.ts +8 -2
  563. package/dist/request-image-urls.js +2 -1
  564. package/dist/request-images.d.ts +20 -0
  565. package/dist/request-images.js +59 -0
  566. package/dist/request-key-closure.d.ts +6 -7
  567. package/dist/request-key-closure.js +15 -2
  568. package/dist/resource-suspend.d.ts +7 -16
  569. package/dist/resource-suspend.js +1 -1
  570. package/dist/retired-name-host-notice.d.ts +21 -0
  571. package/dist/retired-name-host-notice.js +12 -0
  572. package/dist/rule-entry-list.d.ts +2 -2
  573. package/dist/rule-entry-list.js +3 -4
  574. package/dist/rule-issue-reading.d.ts +58 -0
  575. package/dist/rule-issue-reading.js +14 -0
  576. package/dist/rules-consent.d.ts +5 -3
  577. package/dist/rules-consent.js +1 -0
  578. package/dist/run-acceptance.d.ts +3 -1
  579. package/dist/run-acceptance.js +3 -0
  580. package/dist/run-local.d.ts +14 -6
  581. package/dist/run-local.js +92 -80
  582. package/dist/run-stale-default.d.ts +7 -0
  583. package/dist/run-stale-default.js +2 -0
  584. package/dist/runs.d.ts +26 -15
  585. package/dist/runs.js +39 -27
  586. package/dist/runtime-caps-resolver.d.ts +21 -6
  587. package/dist/runtime-caps-resolver.js +17 -4
  588. package/dist/runtime-governance.d.ts +2 -2
  589. package/dist/runtime-governance.js +5 -3
  590. package/dist/sealed-key-layout.d.ts +12 -5
  591. package/dist/sealed-key-layout.js +5 -0
  592. package/dist/sealed-key.d.ts +12 -2
  593. package/dist/sealed-key.js +115 -27
  594. package/dist/security.d.ts +128 -158
  595. package/dist/security.js +163 -59
  596. package/dist/sema-config-dir.d.ts +20 -0
  597. package/dist/sema-config-dir.js +25 -0
  598. package/dist/server-secret-env.d.ts +21 -5
  599. package/dist/server-secret-env.js +14 -4
  600. package/dist/session-children-retire.d.ts +7 -5
  601. package/dist/session-children-retire.js +7 -2
  602. package/dist/session-deletion.d.ts +88 -0
  603. package/dist/session-deletion.js +8 -0
  604. package/dist/session-erase.d.ts +145 -0
  605. package/dist/session-erase.js +115 -0
  606. package/dist/session-error-wire.d.ts +5 -5
  607. package/dist/session-error-wire.js +1 -1
  608. package/dist/session-incarnation.d.ts +52 -5
  609. package/dist/session-incarnation.js +19 -2
  610. package/dist/session-policy-wire.d.ts +6 -3
  611. package/dist/session-policy-wire.js +11 -1
  612. package/dist/session-resident-background.d.ts +0 -71
  613. package/dist/session-resident-background.js +4 -3
  614. package/dist/session-row.d.ts +2 -1
  615. package/dist/session-rules-seat.d.ts +12 -0
  616. package/dist/session-rules-seat.js +19 -0
  617. package/dist/session-titler.d.ts +7 -15
  618. package/dist/session-titler.js +1 -1
  619. package/dist/spec-fields.d.ts +57 -3
  620. package/dist/spec-fields.js +72 -51
  621. package/dist/store-posture.d.ts +136 -20
  622. package/dist/store-posture.js +188 -3
  623. package/dist/stored-request-hooks-m20.js +2 -2
  624. package/dist/stores-sql/background-agent-store-sql.d.ts +11 -2
  625. package/dist/stores-sql/background-agent-store-sql.js +73 -20
  626. package/dist/stores-sql/checkpoint-store-sql.d.ts +33 -28
  627. package/dist/stores-sql/checkpoint-store-sql.js +75 -44
  628. package/dist/stores-sql/mailbox-store-sql.d.ts +7 -4
  629. package/dist/stores-sql/mailbox-store-sql.js +31 -32
  630. package/dist/stores-sql/pg-session-storage.d.ts +7 -5
  631. package/dist/stores-sql/pg-session-storage.js +54 -46
  632. package/dist/stores-sql/retention-store-sql.d.ts +87 -19
  633. package/dist/stores-sql/retention-store-sql.js +92 -27
  634. package/dist/stores-sql/session-policy-store-sql.d.ts +32 -10
  635. package/dist/stores-sql/session-policy-store-sql.js +44 -36
  636. package/dist/stores-sql/session-write-hooks.d.ts +12 -6
  637. package/dist/stores-sql/tidb-session-storage.d.ts +4 -4
  638. package/dist/stores-sql/tidb-session-storage.js +13 -8
  639. package/dist/stores-sql/tidb-session-store.d.ts +36 -17
  640. package/dist/stores-sql/tidb-session-store.js +69 -39
  641. package/dist/stores-sql/windowed-session-storage.d.ts +5 -0
  642. package/dist/stores-sql/windowed-session-storage.js +9 -0
  643. package/dist/submission-exit.d.ts +50 -0
  644. package/dist/submission-exit.js +108 -0
  645. package/dist/task-a2a.d.ts +1 -1
  646. package/dist/task-a2a.js +3 -3
  647. package/dist/task-cwd.d.ts +20 -0
  648. package/dist/task-cwd.js +8 -0
  649. package/dist/task-mcp.d.ts +1 -1
  650. package/dist/task-mcp.js +3 -3
  651. package/dist/task-settings.d.ts +14 -10
  652. package/dist/task-settings.js +18 -7
  653. package/dist/terminal.d.ts +25 -43
  654. package/dist/terminal.js +31 -11
  655. package/dist/tool-approval.d.ts +131 -129
  656. package/dist/tool-approval.js +189 -193
  657. package/dist/trace/core-keyset-guard.d.ts +13 -6
  658. package/dist/trace/core-vocab-wire.d.ts +95 -0
  659. package/dist/trace/core-vocab-wire.js +15 -0
  660. package/dist/trace/exit-seat.d.ts +30 -4
  661. package/dist/trace/exit-seat.js +40 -36
  662. package/dist/trace/extension-call-face.d.ts +3 -2
  663. package/dist/trace/extension-call-face.js +3 -1
  664. package/dist/trace/ledger-events.d.ts +4 -7
  665. package/dist/trace/ledger-sink.d.ts +1 -30
  666. package/dist/trace/ledger-sink.js +0 -11
  667. package/dist/trace/model-segment.d.ts +5 -5
  668. package/dist/trace/model-segment.js +5 -5
  669. package/dist/trace/project.d.ts +55 -42
  670. package/dist/trace/project.js +52 -19
  671. package/dist/trace/redact.d.ts +123 -27
  672. package/dist/trace/redact.js +880 -260
  673. package/dist/trace/self-minted-wire.d.ts +487 -19
  674. package/dist/trace/self-minted-wire.js +172 -23
  675. package/dist/trace/wire-projection-faces.d.ts +5 -6
  676. package/dist/trace/wire-projection-faces.js +2 -2
  677. package/dist/upstream-body.d.ts +23 -0
  678. package/dist/upstream-body.js +16 -0
  679. package/dist/url-refusal.d.ts +3 -3
  680. package/dist/url-refusal.js +11 -4
  681. package/dist/user-authored-text.d.ts +1 -1
  682. package/dist/user-input-ledger.d.ts +7 -8
  683. package/dist/user-input-ledger.js +1 -1
  684. package/dist/web-admin-client/apply-effective.d.ts +6 -3
  685. package/dist/web-admin-client/apply-effective.js +13 -16
  686. package/dist/web-admin-client/apply-ledger.d.ts +16 -7
  687. package/dist/web-admin-client/apply-ledger.js +5 -2
  688. package/dist/web-admin-client/center-request.d.ts +2 -2
  689. package/dist/web-admin-client/center-request.js +15 -15
  690. package/dist/web-admin-client/effective-keys.d.ts +1 -1
  691. package/dist/web-admin-client/effective-keys.js +1 -1
  692. package/dist/web-admin-client/entry-metadata.d.ts +8 -0
  693. package/dist/web-admin-client/entry-metadata.js +13 -0
  694. package/dist/web-admin-client/http-client.d.ts +1 -1
  695. package/dist/web-admin-client/http-client.js +23 -4
  696. package/dist/web-admin-client/mcp-revocation.d.ts +1 -1
  697. package/dist/web-admin-client/mcp-revocation.js +2 -1
  698. package/dist/web-admin-client/read-warnings.d.ts +1 -0
  699. package/dist/web-admin-client/read-warnings.js +1 -0
  700. package/dist/web-admin-client/restart-signal.js +8 -4
  701. package/dist/web-admin-client/skills-mcp.d.ts +2 -2
  702. package/dist/web-admin-client/types.d.ts +1 -2
  703. package/dist/workspace-space.d.ts +3 -2
  704. package/docs/DEVICE-EXECUTOR-PROTOCOL.md +4 -4
  705. package/package.json +6 -3
  706. package/scripts/drain-check-local.mjs +118 -147
  707. package/scripts/drain-check.mysql.sql +22 -2
  708. package/scripts/drain-check.pg.sql +22 -2
  709. package/wire-changes/server@7.148.0.json +1517 -0
  710. package/dist/http/memory-control-plane-corrupt-reply.d.ts +0 -25
  711. package/dist/http/memory-control-plane-corrupt-reply.js +0 -19
  712. package/dist/http/memory-layer-reply.d.ts +0 -30
  713. package/dist/http/memory-layer-reply.js +0 -24
  714. package/dist/lsp/e2b-bridge.d.ts +0 -57
  715. package/dist/lsp/e2b-bridge.js +0 -139
  716. package/dist/lsp/e2b-manager.d.ts +0 -93
  717. package/dist/lsp/e2b-manager.js +0 -178
  718. package/dist/lsp/lsp-frames.d.ts +0 -14
  719. package/dist/lsp/lsp-frames.js +0 -25
  720. package/dist/lsp/manager.d.ts +0 -129
  721. package/dist/lsp/manager.js +0 -127
  722. package/dist/lsp/types.d.ts +0 -12
  723. package/dist/lsp/types.js +0 -2
  724. package/dist/lsp/ws-transport.d.ts +0 -40
  725. package/dist/lsp/ws-transport.js +0 -210
@@ -33,6 +33,17 @@ export const SELF_MINTED_WIRE = {
33
33
  client_disconnected: { attr: "-", since: "7.112.0" },
34
34
  ask_park_grace_exhausted: { attr: "-", since: "7.112.0" },
35
35
  cancel_verb: { attr: "-", since: "7.112.0" },
36
+ stall_verdict: { attr: "-", since: "7.148.0" },
37
+ },
38
+ },
39
+ runStallVerdictFace: {
40
+ at: "run 流死亡终帧键 · 会话占用冲突体键",
41
+ members: {
42
+ "GET /v1/runs/:id/events#failed.errorCode(死亡判决的终帧从行合成时恒在场 = 行上的码 run.stalled / run.orphaned;本连接已投账本终帧则不合成)": { attr: "verdict", since: "7.148.0" },
43
+ },
44
+ retired: {
45
+ "409 conflict.session_active_run#stale(只为 true 时在场)": { attr: "true-only", since: "7.37.0", until: "7.148.0" },
46
+ "POST /v1/tasks/stream done.result(conflict.session_active_run)#stale(只为 true 时在场)": { attr: "true-only", since: "7.37.0", until: "7.148.0" },
36
47
  },
37
48
  },
38
49
  sessionMemoryEraseStatus: {
@@ -46,6 +57,7 @@ export const SELF_MINTED_WIRE = {
46
57
  "memory.erasure_selector_mismatch": { attr: 409, since: "7.108.0" },
47
58
  "memory.erasure_census_incomplete": { attr: 409, since: "7.108.0" },
48
59
  "internal.memory_control_plane_corrupt": { attr: 500, since: "7.108.0" },
60
+ "request.memory_layer": { attr: 400, revises: ["errorCode:internal.error"], since: "7.148.0" },
49
61
  },
50
62
  },
51
63
  askTerminalReason: {
@@ -262,6 +274,38 @@ export const SELF_MINTED_WIRE = {
262
274
  sessionResident: { attr: "always within inflightBreakdown", since: "7.146.0" },
263
275
  },
264
276
  },
277
+ healthSandboxCapacityKey: {
278
+ at: "GET /health sandboxCapacity",
279
+ members: {
280
+ lane: { attr: "always within sandboxCapacity", since: "7.148.0" },
281
+ limit: { attr: "always within sandboxCapacity", since: "7.148.0" },
282
+ inUse: { attr: "always within sandboxCapacity (null until a successful daemon reading)", since: "7.148.0" },
283
+ readAt: { attr: "always within sandboxCapacity (null until the first daemon reading)", since: "7.148.0" },
284
+ waiting: { attr: "always within sandboxCapacity", since: "7.148.0" },
285
+ },
286
+ },
287
+ healthStoreKey: {
288
+ at: "GET /health store",
289
+ members: {
290
+ durability: { attr: "always", since: "7.148.0" },
291
+ },
292
+ },
293
+ storeDurability: {
294
+ at: "GET /health store.durability · GET /v1/capabilities store.durability",
295
+ members: {
296
+ durable: { attr: "-", since: "7.148.0" },
297
+ ephemeral: { attr: "-", since: "7.148.0" },
298
+ unknown: { attr: "-", since: "7.148.0" },
299
+ },
300
+ },
301
+ healthAutoBackgroundOnTimeout: {
302
+ at: "GET /health autoBackgroundOnTimeout",
303
+ members: {
304
+ armed: { attr: "-", since: "7.148.0" },
305
+ off: { attr: "-", since: "7.148.0" },
306
+ unsupported: { attr: "-", since: "7.148.0" },
307
+ },
308
+ },
265
309
  healthEngineLeaseKey: {
266
310
  at: "GET /health engineLease",
267
311
  members: {
@@ -325,6 +369,7 @@ export const SELF_MINTED_WIRE = {
325
369
  members: {
326
370
  supportsThinkingOff: { attr: "always", since: "7.138.0" },
327
371
  thinkingLevelMap: { attr: "present-iff declared", since: "7.147.0" },
372
+ defaultThinking: { attr: "present-iff declared", since: "7.148.0" },
328
373
  },
329
374
  },
330
375
  modelsRowAnthropicCompatKey: {
@@ -443,25 +488,37 @@ export const SELF_MINTED_WIRE = {
443
488
  "approval_request#requestedBy": { attr: "present-iff extension-initiated call", since: "7.138.0" },
444
489
  },
445
490
  },
446
- fieldConflictKind: {
447
- at: "400 request.field_conflict detail.kind",
491
+ fieldConflictReason: {
492
+ at: "400 / 409 / 422 request.field_conflict reason",
448
493
  members: {
449
- cascade_verify: { attr: "-", since: "7.133.0" },
450
- image_profile: { attr: "-", since: "7.133.0" },
451
- resume_anchor: { attr: "-", since: "7.133.0" },
452
- system_prompt_fold: { attr: "-", since: "7.133.0" },
453
- file_history_restore: { attr: "-", since: "7.133.0" },
454
- skills_disabled: { attr: "-", since: "7.133.0" },
455
- existing_session: { attr: "-", since: "7.133.0" },
456
- fork_target: { attr: "-", since: "7.139.0" },
457
- scratchpad_root: { attr: "-", since: "7.133.0" },
458
- ask_answer: { attr: "-", since: "7.133.0" },
459
- policy_person_ask: { attr: "-", since: "7.133.0" },
460
- plan_edit: { attr: "-", since: "7.133.0" },
461
- plan_mode_after: { attr: "-", since: "7.133.0" },
462
- bound_call_door: { attr: "-", since: "7.133.0" },
463
- remember_decision: { attr: "-", since: "7.133.0" },
464
- approval_feedback: { attr: "-", since: "7.134.0" },
494
+ cascade_verify: { attr: "-", revises: ["selfMinted.fieldConflictKind:cascade_verify"], since: "7.148.0" },
495
+ image_profile: { attr: "-", revises: ["selfMinted.fieldConflictKind:image_profile"], since: "7.148.0" },
496
+ resume_anchor: { attr: "-", revises: ["selfMinted.fieldConflictKind:resume_anchor"], since: "7.148.0" },
497
+ system_prompt_fold: { attr: "-", revises: ["selfMinted.fieldConflictKind:system_prompt_fold"], since: "7.148.0" },
498
+ file_history_restore: { attr: "-", revises: ["selfMinted.fieldConflictKind:file_history_restore"], since: "7.148.0" },
499
+ skills_disabled: { attr: "-", revises: ["selfMinted.fieldConflictKind:skills_disabled"], since: "7.148.0" },
500
+ existing_session: { attr: "-", revises: ["selfMinted.fieldConflictKind:existing_session"], since: "7.148.0" },
501
+ fork_target: { attr: "-", revises: ["selfMinted.fieldConflictKind:fork_target"], since: "7.148.0" },
502
+ scratchpad_root: { attr: "-", revises: ["selfMinted.fieldConflictKind:scratchpad_root"], since: "7.148.0" },
503
+ ask_answer: { attr: "-", revises: ["selfMinted.fieldConflictKind:ask_answer"], since: "7.148.0" },
504
+ policy_person_ask: { attr: "-", revises: ["selfMinted.fieldConflictKind:policy_person_ask"], since: "7.148.0" },
505
+ plan_edit: { attr: "-", revises: ["selfMinted.fieldConflictKind:plan_edit"], since: "7.148.0" },
506
+ plan_mode_after: { attr: "-", revises: ["selfMinted.fieldConflictKind:plan_mode_after"], since: "7.148.0" },
507
+ bound_call_door: { attr: "-", revises: ["selfMinted.fieldConflictKind:bound_call_door"], since: "7.148.0" },
508
+ remember_decision: { attr: "-", revises: ["selfMinted.fieldConflictKind:remember_decision"], since: "7.148.0" },
509
+ approval_feedback: { attr: "-", revises: ["selfMinted.fieldConflictKind:approval_feedback"], since: "7.148.0" },
510
+ },
511
+ },
512
+ hooksRefusalReason: {
513
+ at: "400 request.field_invalid reason(settings.hooks 面)",
514
+ members: {
515
+ dead_alias: { attr: "-", since: "7.148.0" },
516
+ over_budget: { attr: "-", since: "7.148.0" },
517
+ budget_exceeded: { attr: "-", since: "7.148.0" },
518
+ invalid_regex: { attr: "-", since: "7.148.0" },
519
+ unsupported_entry_type: { attr: "-", since: "7.148.0" },
520
+ unnamed_refusal: { attr: "-", since: "7.148.0" },
521
+ wire_key_invalid: { attr: "-", since: "7.148.0" },
465
522
  },
466
523
  },
467
524
  limitRefusalReason: {
@@ -473,7 +530,7 @@ export const SELF_MINTED_WIRE = {
473
530
  },
474
531
  },
475
532
  entryProblemServerReason: {
476
- at: "400/409/422 detail.problems[].reason · 受理应答 warnings[].reason(本仓自铸的词)",
533
+ at: "400/409/422 problems[].reason · 受理应答 warnings[].reason(本仓自铸的词)",
477
534
  members: {
478
535
  not_in_roster: { attr: "-", since: "7.133.0" },
479
536
  home_unresolvable: { attr: "-", since: "7.133.0" },
@@ -487,9 +544,30 @@ export const SELF_MINTED_WIRE = {
487
544
  },
488
545
  },
489
546
  rateExceededReason: {
490
- at: "429 limit.rate_exceeded reason(在飞 run 并发帽;其余产地不带 reason)",
547
+ at: "429 limit.rate_exceeded reason(在飞 run 并发帽 / 沙箱容量;其余产地不带 reason)",
491
548
  members: {
492
549
  run_concurrency_cap: { attr: "-", since: "7.146.0" },
550
+ sandbox_capacity: { attr: "-", since: "7.148.0" },
551
+ },
552
+ },
553
+ parkedRollbackWord: {
554
+ at: "409 decide.revive_rejected / 500 decide.revive_failed / 422 parked_resume.startup_failed / 409 decide.agent_definition_unavailable rollback(本次 decide 那一次补滚时认领的去向)",
555
+ members: {
556
+ rolled_back: { attr: "-", since: "1.267.0" },
557
+ failed: { attr: "-", since: "1.267.0" },
558
+ retry: { attr: "-", since: "1.267.0" },
559
+ lost: { attr: "-", since: "1.267.0" },
560
+ },
561
+ },
562
+ workflowParkDeliveryResult: {
563
+ at: "POST /v1/approvals/:id/decide · 应答口(workflow 子代停驻卡,持有它的 run 在本进程里跑):引擎答词 → 应答",
564
+ members: {
565
+ driving: { attr: "200 {taskId: <workflow runId>, status: resuming, decision}(无结清证据)", since: "7.148.0" },
566
+ already_taken: { attr: "同一决定 ⇒ 首张回执原样回放;另一个决定 ⇒ 409 decide.claim_lost", since: "7.148.0" },
567
+ settled: { attr: "409 decide.gate_moved", since: "7.148.0" },
568
+ not_parked_here: { attr: "409 decide.gate_moved", since: "7.148.0" },
569
+ unreadable: { attr: "503 decide.store_unreachable", since: "7.148.0" },
570
+ kept_parked: { attr: "400 decide.parked_restatement_unsupported(只在决断带续跑重述键时可达)", since: "7.148.0" },
493
571
  },
494
572
  },
495
573
  settingsEnvCredentialMatch: {
@@ -528,6 +606,19 @@ export const SELF_MINTED_WIRE = {
528
606
  "POST /v1/runs|/v1/tasks Idempotency-Key#conflict.run_exists": { attr: 409, since: "7.125.0" },
529
607
  "POST /v1/runs|/v1/tasks Idempotency-Key#conflict.idempotency_payload_mismatch": { attr: 409, since: "7.126.0" },
530
608
  "POST /v1/tasks|/v1/tasks/stream#replay_first_answer_envelope(同键重放的体 = 首答的信封 + replay: true:终局 = 引擎结果(result 是串),停驻 = 结果 + 回执三键,行还在跑 = 回执三键;流式腿放进 done.result)": { attr: 200, since: "7.142.0" },
609
+ "POST /v1/tasks|/v1/tasks/stream#replay_bit_one_rule(replay: true ⇔ 200 结局不是本次请求产出的:读行重放 + 在飞合流的跟随方,两腿同读;拒绝永不带位;流式终帧 done.replay = done.result.replay)": { attr: 200, revises: ["selfMinted.submitIdempotency:POST /v1/tasks#replay"], since: "7.148.0" },
610
+ },
611
+ },
612
+ leaderStopFace: {
613
+ at: "leader 停止面(<端点>#<形> → 应答状态 / 键在场律)",
614
+ members: {
615
+ "POST /v1/leader/:id/cancel#running(翻耐久取消旗;驱动副本当场或下一个存活心跳拍中止;体 leaderRunId + status:cancelling + cancelRequested:true)": { attr: 202, since: "7.148.0" },
616
+ "POST /v1/leader/:id/cancel#terminal(幂等;过期这条 run 留下的待决 worker 停驻;体 leaderRunId + 终局 status + cancelRequested + note)": { attr: 202, since: "7.148.0" },
617
+ "POST /v1/leader/:id/cancel#not_visible(不存在 / 不是你的;与 GET 同一 not_found.leader_run)": { attr: 404, since: "7.148.0" },
618
+ "POST /v1/leader/:id/cancel#terminal_parks_settled_concurrently(终局臂过期 worker 停驻时 CAS 输给并发的决断 / 过期;conflict.approval_settled)": { attr: 409, since: "7.148.0" },
619
+ "GET /v1/leader/:id|?idempotencyKey#cancelRequested": { attr: "always (the durable cancel flag; flips only while running)", since: "7.148.0" },
620
+ "GET /v1/leader/:id|?idempotencyKey#errorCode": { attr: "present-iff the run stopped at an abort checkpoint by the cancel verb (value cancelled)", since: "7.148.0" },
621
+ "GET /v1/leader/:id|?idempotencyKey#result.stopped": { attr: "present-iff (true) the run stopped at an abort checkpoint", since: "7.148.0" },
531
622
  },
532
623
  },
533
624
  builtinScenario: {
@@ -568,6 +659,21 @@ export const SELF_MINTED_WIRE = {
568
659
  effectiveValueWithheld: { attr: "present-iff", since: "7.133.0" },
569
660
  },
570
661
  },
662
+ autoModeRefusedBy: {
663
+ at: "GET /v1/capabilities permissionModeAuto.refusedBy(仅 reason:org_denied 且中心亲口拒时在场)",
664
+ members: {
665
+ "center.autoMode": { attr: "-", since: "7.148.0" },
666
+ "center.allowAutoMode": { attr: "-", since: "7.148.0" },
667
+ both: { attr: "-", since: "7.148.0" },
668
+ },
669
+ },
670
+ configCatalogCredentialPolicy: {
671
+ at: "GET /v1/config/catalog rows[].credentialPolicy(url 型行恒在场)",
672
+ members: {
673
+ refuse: { attr: "-", since: "7.148.0" },
674
+ mask: { attr: "-", since: "7.148.0" },
675
+ },
676
+ },
571
677
  modelsResponseKey: {
572
678
  at: "GET /v1/models 应答体顶层键(<键> → 在场律)",
573
679
  members: {
@@ -822,6 +928,12 @@ export const SELF_MINTED_WIRE = {
822
928
  "POST /v1/tasks|/v1/tasks/stream|/v1/runs#settings.env 有成员不是帽内的串(新提交;只在采纳 env 的车道上:单用户 host / device,或采纳请求体 hooks 且请求带着 hooks;零 run;体 request.field_invalid + field settings.env,句子点名坐标、不回显值)": { attr: 400, since: "7.147.0" },
823
929
  "POST /v1/approvals/:sessionId/decide|/v1/sessions/:id/wake|/v1/assistant/tasks/:id/resume|/v1/assistant/tasks/:id/plan_review#stored_unread_members(续跑将要跑的那一份体 —— 存量体,重述键在场时盖过重述之后 —— 里有本版读者读不出、而本部署本会采纳的成员:settings.hooks / settings.env / 其余 settings 延后键 / mcpServers[i].transport / a2aPeers[i].headers;认领之前,卡仍待决;体 resume_blocked_by_policy + blockedBy request.field_invalid + field + retriable)": { attr: 409, since: "7.147.0" },
824
930
  "POST /v1/runs/:id/steer#stored_unread_members(run 已终态、铸唤醒卡之前;同一只判;不铸卡;体 resume_blocked_by_policy + blockedBy request.field_invalid + field,不带 retriable)": { attr: 409, since: "7.147.0" },
931
+ "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(读这条会话的续跑上下文失败:库断连 / 拒连 / 超时、缺表 / 权限拒、认不出的库错;拒在任何状态改动之前,卡仍待决、终态 steer 不铸卡;体 state.resume_context_unreadable)": { attr: 503, revises: ["errorCode:conflict.resume_context_unavailable"], since: "7.148.0" },
932
+ "POST /v1/approvals/:sessionId/decide#parked_agent_definition_unavailable(停驻赎回;行上的代理类型不在赎回面委派工具的名册里:逐请求 `agents` 定义 / 停驻后被撤的部署定义 / 名叫 fork 的定义;approve 与 deny 同答;认领回滚、委派工具零调用、卡仍待决;体 decide.agent_definition_unavailable + taskId + rollback)": { attr: 409, since: "7.148.0" },
933
+ "POST /v1/runs/:id/interrupt#body_with_fields(体带任何顶层键 —— 含早先版本受理的 text;非对象体同答;判在查 run 之前:任何 run 状态、属主、存在与否同一只体;体 request.body_shape + unknownKeys(键全在此)+ unsupportedKeys(恒空))": { attr: 400, revises: ["selfMinted.endpointFaceStatus:POST /v1/runs/:id/interrupt#text_live(带 text 的体打在本副本在飞的 run 上 = 引擎 steer 档位 now;202 体 { taskId, status, delivery: queued-immediate, messageId, note })"], since: "7.148.0" },
934
+ },
935
+ retired: {
936
+ "POST /v1/runs/:id/interrupt#text_live(带 text 的体打在本副本在飞的 run 上 = 引擎 steer 档位 now;202 体 { taskId, status, delivery: queued-immediate, messageId, note })": { attr: 202, since: "7.52.0", until: "7.148.0" },
825
937
  },
826
938
  },
827
939
  ruleImportReceiptKey: {
@@ -888,6 +1000,22 @@ export const SELF_MINTED_WIRE = {
888
1000
  "409 conflict.session_memory_unobserved#reason": { 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", since: "7.143.0" },
889
1001
  },
890
1002
  },
1003
+ ownerFaceAnswer: {
1004
+ at: "属主门的逐口答复(<口>#<调用方 × 行> → 状态 errorCode;其余各口的码与句逐字不变)",
1005
+ members: {
1006
+ "POST /v1/tasks · /v1/tasks/stream · /v1/runs (sessionId)#others-owned-session": { 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)", revises: ["errorCode:auth.forbidden", "errorCode:auth.unauthorized"], since: "7.148.0" },
1007
+ "POST /v1/tasks · /v1/tasks/stream · /v1/runs (sessionId)#ownerless-placed-session": { attr: "404 resume.session_not_found at the owner gate, same body as a missing session (assemblies without an execution seat too); not judged when the session's archive cannot be read", since: "7.148.0" },
1008
+ "POST /v1/assistant/tasks/:id/plan_review#direct-door-valid-proof-others-task": { attr: "401 principal_unverified (principal proof required), same body as a missing row; was 404 not_found.run (task not found)", revises: ["errorCode:not_found.run"], since: "7.148.0" },
1009
+ "GET|PUT /v1/sessions/:id/policy#ownerless-placed-session-non-fleet-non-operator": { attr: "404 not_found.session (session not found), same body as a missing session; was 409 conflict.session_ownerless", revises: ["errorCode:conflict.session_ownerless"], since: "7.148.0" },
1010
+ "run / session read faces#deployment-service-credential-no-principal-users-rows": { 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", revises: ["errorCode:auth.principal_required", "errorCode:not_found.run", "errorCode:not_found.session"], since: "7.148.0" },
1011
+ "GET /v1/runs/:id · /v1/runs/:id/events#dev-open-principal-header-not-owner": { attr: "200 (the principal header is a label on a deployment without an identity boundary); was 404 not_found.run", revises: ["errorCode:not_found.run"], since: "7.148.0" },
1012
+ "owner-only session ports#unreadable-archive-ownerless-session-fleet-or-operator": { 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", revises: ["errorCode:corrupt_session"], since: "7.148.0" },
1013
+ "run faces#row-without-owner-cell-no-fleet-no-operator": { attr: "the face's missing-row answer for every caller without a fleet or operator qualification on that face; was: a caller without a principal passed on some faces (absent equals absent)", since: "7.148.0" },
1014
+ "POST /v1/tool-approvals/:id/respond#ask-not-visible-to-caller(查无 / 不是调用方的 / 行读不出 / 本 worker 没有问账)": { 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)", revises: ["errorCode:tool_approval.not_pending", "selfMinted.notPendingCause:unknown_or_other_replica"], since: "7.148.0" },
1015
+ "GET /v1/tool-approvals/:id#ask-not-visible-to-caller(查无 / 不是调用方的 / 行读不出 / 本 worker 没有问账)": { 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)", revises: ["errorCode:tool_approval.not_pending", "selfMinted.notPendingCause:unknown_or_other_replica"], since: "7.148.0" },
1016
+ "GET /v1/workflows/:id · /journal · /stream · POST /v1/workflows/:id/agents/:label/steer#session-assertion-mismatch": { attr: "404 not_found.workflow (workflow not found), same body as a missing workflow; was 404 not_found.run (workflow not found)", revises: ["errorCode:not_found.run"], since: "7.148.0" },
1017
+ },
1018
+ },
891
1019
  sessionRewindFilesWire: {
892
1020
  at: "POST /v1/sessions/:id/rewind-files(<面>#<键> → 读法 / 在场律)",
893
1021
  members: {
@@ -950,6 +1078,19 @@ export const SELF_MINTED_WIRE = {
950
1078
  no_leaf: { attr: "-", since: "7.143.0" },
951
1079
  },
952
1080
  },
1081
+ declarationRefusalBodyKey: {
1082
+ at: "400 request.field_invalid 的声明列表拒体(<键> → 在场律;mcpServers · a2aPeers · images)",
1083
+ members: {
1084
+ field: { attr: "always on a list-level, entry-level, key-value or URL-credential refusal; the body coordinate the sentence names (mcpServers[i].<path> · a2aPeers[i] · images)", since: "7.148.0" },
1085
+ index: { attr: "present-iff the refusal is entry-level (entry not an object · a key value · URL credential): the entry's position in the list; absent on list-level and over_cap refusals", since: "7.148.0" },
1086
+ },
1087
+ },
1088
+ notBooleanRefusalBodyKey: {
1089
+ at: "400 request.field_invalid 的「必须是布尔」一族拒体(<键> → 在场律)",
1090
+ members: {
1091
+ field: { attr: "always; the body coordinate the sentence names (e.g. promptLean · attachments.mcpUnavailable · settings.ultracode · resilience.allowDegrade)", since: "7.148.0" },
1092
+ },
1093
+ },
953
1094
  decideRequiresBindingBodyKey: {
954
1095
  at: "400 decide_requires_binding 拒体(<键> → 在场律)",
955
1096
  members: {
@@ -961,6 +1102,7 @@ export const SELF_MINTED_WIRE = {
961
1102
  members: {
962
1103
  "401 auth.unauthorized#operator(/metrics* · GET /v1/tasks/source-summary)": { attr: "… send the deployment's service token … without a principal header where this deployment lets its service token act for the deployment itself (GET /health reports it as auth.serviceTokenActsForDeployment; …), or a read-only token this endpoint accepts (…)", since: "7.146.0" },
963
1104
  "422 invalid_entries#row_contract(会话同步推送第二阶段;收编批量导入同句进逐元素 detail)": { attr: "malformed entry (id and parentId must be strings of 1-64 characters, type a string of 1-32 characters)", since: "7.146.0" },
1105
+ "404 not_found.run#a*/wa* id(compact · detach · 子代动词口;各 run 口的非属主臂)": { attr: "run not found — \"<id>\" looks like an agent handle (a*/wa* domain) … (the handle hint, same sentence as the missing-row arm)", revises: ["errorCode:not_found.run"], since: "7.148.0" },
964
1106
  "409 decide.row_unrevivable#no_root_anchor": { attr: "ends: deny it to close the card (the agent then ends as failed)", since: "7.136.0" },
965
1107
  "400 request.field_invalid#mcpServers.over_cap(受理口 · POST /v1/capabilities/mcp/probe 同句)": { attr: "head: <field> has <count> entries — at most <cap> are accepted", since: "7.136.0" },
966
1108
  "400 request.field_invalid#a2aPeers.over_cap": { attr: "tail: 声明列表拒绝骨架的句尾(与 mcpServers 共用 request-declaration-refusal)", since: "7.136.0" },
@@ -970,6 +1112,11 @@ export const SELF_MINTED_WIRE = {
970
1112
  "503 state.file_history_unreadable#store_deployment_fault(会话同步三条拉取口)": { attr: "this session's stored state cannot be read: the store does not match what this deployment requires (a table is missing or the database account lacks a privilege), so nothing was exported — retrying will not help until an operator repairs the store", since: "7.137.0" },
971
1113
  "connect_failed(run 失败终局)#snapshot_bucket_missing(k8s 车道读 latest 得 404 NoSuchBucket;连沙箱失败,一只 pod 都不建)": { attr: "workspace space pointer read failed (snapshot_bucket_missing): the workspace snapshot bucket <name> (WORKSPACE_SNAPSHOT_BUCKET; default workspaces) does not exist in the object store — refusing to start this run … Ways out: create the bucket, or set WORKSPACE_SNAPSHOT_BUCKET to one that exists, or set WORKSPACE_PERSIST=off …", since: "7.136.0" },
972
1114
  "400 request.field_invalid#images[i].url.credential": { attr: "<field> <规则句> — the URL is kept as written (a parked task's resume context, logs), while images[i] can carry the image bytes inline: send { data, mimeType } instead of a URL that holds the credential", since: "7.136.0" },
1115
+ "400 request.field_invalid#images.not_array": { attr: "head: images is <shape>, not an array of image entries", since: "7.148.0" },
1116
+ "400 request.field_invalid#images[i].not_object": { attr: "head: images[i] is <shape>, not an image entry (an object)", revises: ["errorCode:internal.error"], since: "7.148.0" },
1117
+ "400 request.field_invalid#images[i].<key>.unusable": { attr: "<field> is not a usable declaration — must be a string (…) — got <shape>. The request is refused rather than handing the engine an image it cannot read: … Fix the entry (an image is either { data, mimeType } or { url }).", since: "7.148.0" },
1118
+ "400 request.body_shape#images[i].unknown_key": { attr: "body: unrecognized key(s) on an image entry — refused rather than dropped …; Accepted: <keys of the form>", since: "7.148.0" },
1119
+ "400 request.field_invalid#settings.env.compose": { attr: "settings.env cannot be composed into a child process environment — <the engine's verdict, sanitized>. The request is refused rather than accepted into a task whose hooks and shell would fail to start: fix or remove the variable concerned", since: "7.148.0" },
973
1120
  "400 request.field_invalid#settings.permissions.deny|ask.bad_entry": { attr: "<field>[<index>] is neither a non-empty rule string nor a { \"rule\", \"layer\" } entry (…) — every entry must be one. …", since: "7.141.0" },
974
1121
  "400 request.field_invalid#settings.permissions.allow.bad_entry": { attr: "<field>[<index>] is neither a rule string nor a { \"rule\", \"layer\" } entry (…) — every entry must be one. …", since: "7.143.0" },
975
1122
  "400 request.field_invalid#a2aPeers.not_array": { attr: "head: a2aPeers is <shape>, not an array of A2A peer declarations", since: "7.136.0" },
@@ -1130,7 +1277,7 @@ export const SELF_MINTED_WIRE = {
1130
1277
  "GET /v1/config/catalog#rows[MCP_ELICITATION_TTL_MS].derivedDefaultNote": { attr: "default-window-source:server", since: "7.136.0" },
1131
1278
  "GET /v1/config/catalog#rows[ANTHROPIC_API_KEY].semantics": { attr: "x-api-key-only;mutually-exclusive;both-set-refuses-boot", since: "7.136.0" },
1132
1279
  "GET /v1/config/catalog#rows[ANTHROPIC_AUTH_TOKEN].semantics": { attr: "bearer-only;mutually-exclusive;both-set-refuses-boot", since: "7.136.0" },
1133
- "GET /v1/config/catalog#rows[WORKSPACE_SNAPSHOT_BUCKET].semantics": { attr: "boot-checks-bucket;runtime-latest-no-such-bucket-fails-run", since: "7.136.0" },
1280
+ "GET /v1/config/catalog#rows[WORKSPACE_SNAPSHOT_BUCKET].semantics": { attr: "boot-checks-bucket;runtime-latest-no-such-bucket-fails-run;default-name-shared-with-MINIO_BUCKET", since: "7.148.0" },
1134
1281
  "GET /v1/config/catalog#rows[WORKSPACE_SNAPSHOT_PREFIX].semantics": { attr: "multi-segment-prefix;bad-segment-refuses-boot", since: "7.136.0" },
1135
1282
  "GET /v1/config/catalog#rows[WORKSPACE_SNAPSHOT_PREFIX].derivedDefaultNote": { attr: "absent=>kata", since: "7.136.0" },
1136
1283
  "GET /v1/config/catalog#rows[K8S_SANDBOX_ENV].semantics": { attr: "values-only-in-the-pod-own-secret;role-needs-secrets-create;denied-refuses-boot;own-credential-name-refuses-boot", since: "7.139.0" },
@@ -1144,6 +1291,8 @@ export const SELF_MINTED_WIRE = {
1144
1291
  "GET /v1/config/catalog#rows[DEVICE_RELAY_URL].derivedDefaultNote": { attr: "no-default;absent-refuses-boot", since: "7.141.0" },
1145
1292
  "GET /v1/config/catalog#rows[DEVICE_RELAY_URL].enumValues": { attr: "none(echoed-verbatim)", since: "7.141.0" },
1146
1293
  "GET /v1/config/catalog#rows[MODEL_ROUTER_ID].derivedDefaultNote": { attr: "absent=>classifier-role-in-served-table", since: "7.143.0" },
1294
+ "GET /v1/config/catalog#rows[MINIO_BUCKET].semantics": { attr: "leader-diff-out-bucket;independent-of-WORKSPACE_SNAPSHOT_BUCKET", since: "7.148.0" },
1295
+ "GET /v1/config/catalog#rows[MINIO_BUCKET].derivedDefaultNote": { attr: "absent=>WORKSPACE_SNAPSHOT_BUCKET_DEFAULT(not-the-explicit-value)", since: "7.148.0" },
1147
1296
  "GET /v1/sessions/:id/mcp#servers[].error": { attr: "exit-seat:mcp-remote-text(engine-mark=masked-value)+truncate:200", since: "7.138.0" },
1148
1297
  "POST /v1/sessions/:id/mcp/reconnect#reason|status.error|listingIncomplete.error": { attr: "exit-seat:mcp-remote-text(engine-mark=masked-value)+truncate:200", since: "7.138.0" },
1149
1298
  "GET /v1/config/catalog#rows[MODEL_VISION].semantics": { attr: "names-engine-notice:model.capability_downgraded", since: "7.137.0" },
@@ -1151,8 +1300,8 @@ export const SELF_MINTED_WIRE = {
1151
1300
  "GET /v1/config/catalog#rows[MODEL_CHEAP_VISION].semantics": { attr: "names-engine-notice:model.capability_downgraded", since: "7.137.0" },
1152
1301
  "GET /v1/sessions/:id/memory-status#committedCount|foldedCount|lastCaptureAt|captureOptedOut|optOutSource(不带层座)": { 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", since: "7.140.0" },
1153
1302
  "GET /v1/models#modelPlane.catalog(refused 的模型面那一半)": { attr: "latest-arrival", since: "7.143.0" },
1154
- "SSE text_delta#delta": { attr: "live-hold:same-redactor-stream(pending-tail-from-arm-table);concat=segment-end-content;remainder-frame-without-eventId", since: "7.143.0" },
1155
- "SSE reasoning_delta#delta": { attr: "live-hold:same-redactor-stream(pending-tail-from-arm-table);concat=segment-end-content;remainder-frame-without-eventId", since: "7.143.0" },
1303
+ "SSE text_delta#delta": { attr: "live-hold:same-redactor-stream(open-judgment-frontier);concat=segment-end-content;remainder-frame-without-eventId", since: "7.143.0" },
1304
+ "SSE reasoning_delta#delta": { attr: "live-hold:same-redactor-stream(open-judgment-frontier);concat=segment-end-content;remainder-frame-without-eventId", since: "7.143.0" },
1156
1305
  "GET /v1/runs/:id/subagents/:handle/stream#reasoning_end.content": { attr: "whole-segment-for-late-subscriber", since: "7.143.0" },
1157
1306
  "SSE text_delta#delta(文字段的状态跨文字块)": { 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", since: "7.144.0" },
1158
1307
  "SSE text_end#content(接在同段前缀之后判)": { attr: "engine-block-content;judged-after-segment-prefix", since: "7.144.0" },
@@ -92,13 +92,12 @@ export type DeclaredKey = ManifestShape & {
92
92
  readonly optional?: true;
93
93
  };
94
94
  /**
95
- * `TaskEvent` **信封**上的键 —— 这一族构造器一个都不管,所以在每一只 TaskEvent 面上统一扣除。
96
- * · `type`:臂名由调用点自己拼在投影体外(`{ type: "tool_end", ...toolEndEventData(ev) }`),不是载荷键;
97
- * · `sourceTaskId` / `bgAgentId`:live 腿的**四键身份**由 `liveIdentityFields` 单独挑(durable 两腿只挑两键),
98
- * 属主是那只函数而不是各面构造器 —— 所以对本族构造器它们恒不在投影体里。
95
+ * `TaskEvent` **信封**上的键 —— 这一族构造器一个都不管,所以在每一只 TaskEvent 面上统一扣除:只有 `type`(臂名由调用点自己拼在投影体外,
96
+ * `{ type: "tool_end", ...toolEndEventData(ev) }`,不是载荷键)。身份四键(`eventId` / `parentToolCallId` / `sourceTaskId` / `bgAgentId`)
97
+ * 是载荷键,每只构造器经同一只 `identityFields` 投 —— 不在这里扣。
99
98
  * 这是**一条统一规则**,不是十六个面各自的豁免名单:新臂进来自动适用。
100
99
  */
101
- export declare const FRAME_ENVELOPE_KEYS: readonly ["type", "sourceTaskId", "bgAgentId"];
100
+ export declare const FRAME_ENVELOPE_KEYS: readonly ["type"];
102
101
  /** 探针文件要从 `@sema-agent/core` 具名导入的类型(`coreType` 表达式里用到的全部名字)。 */
103
102
  export declare const WIRE_PROJECTION_CORE_IMPORTS: readonly ["TaskEvent", "BrainStatus", "TaskNotificationPayload", "WiringManifest", "EngineNotice", "MemoryImportReport", "OriginClearanceRow", "OriginClearanceEvent", "MemoryEntryOrigin", "TraceEvent", "PromptManifestIdentity", "PromptIdentityLayers", "PromptManifestSelectors", "PromptManifestSection", "PromptChainLink", "SupersededOverlay", "ToolDisclosureManifest", "SemaProvenance", "MailboxPeerMeta", "MailboxPeerNoticeMeta", "CrossSessionEnvelopeFields"];
104
103
  /**
@@ -213,7 +212,7 @@ export declare const WIRE_PROJECTION_FACES: {
213
212
  readonly human_input: {
214
213
  readonly projector: "humanInputEventData";
215
214
  readonly coreType: string;
216
- readonly excluded: readonly ["principal", "runOrigin"];
215
+ readonly excluded: readonly ["principal"];
217
216
  readonly minted: readonly [];
218
217
  };
219
218
  readonly task_notification: {
@@ -1,4 +1,4 @@
1
- export const FRAME_ENVELOPE_KEYS = ["type", "sourceTaskId", "bgAgentId"];
1
+ export const FRAME_ENVELOPE_KEYS = ["type"];
2
2
  export const WIRE_PROJECTION_CORE_IMPORTS = [
3
3
  "TaskEvent",
4
4
  "BrainStatus",
@@ -45,7 +45,7 @@ export const WIRE_PROJECTION_FACES = {
45
45
  turn_end: { projector: "turnEndEventData", coreType: arm("turn_end"), excluded: [], minted: [] },
46
46
  compaction_outcome: { projector: "compactionOutcomeEventData", coreType: arm("compaction_outcome"), excluded: [], minted: [] },
47
47
  compaction_started: { projector: "compactionStartedEventData", coreType: arm("compaction_started"), excluded: [], minted: [] },
48
- human_input: { projector: "humanInputEventData", coreType: arm("human_input"), excluded: ["principal", "runOrigin"], minted: [] },
48
+ human_input: { projector: "humanInputEventData", coreType: arm("human_input"), excluded: ["principal"], minted: [] },
49
49
  task_notification: {
50
50
  projector: "taskNotificationEventData",
51
51
  coreType: `TaskNotificationPayload & ${arm("task_notification")}`,
@@ -0,0 +1,23 @@
1
+ /**
2
+ * 🔴 **上游应答体的 JSON 读口(唯一)** —— 本服务对任何上游(配置中心 / 记忆同步对端 / fleet 协调器 / 搜索后端 / bake 队列 / hook 的模型端点 / 凭据签发方 …)
3
+ * 的应答体解 JSON,只经这里。
4
+ *
5
+ * 一条律:**上游应答体的字节不进本服务铸的报错句**(只说体长,{@link buildBodyWithheldNote})。V8 的 `JSON.parse` 报错句内嵌入参的片段
6
+ * (`Unexpected token 's', "sk-proj-ab"... is not valid JSON`)—— 那是在出口座**之前**就切好的半截:脱敏器认得整枚令牌,认不得它的前 10 个字,
7
+ * 于是之后任何经出口座的出口(运维日志接缝、trace 帧)都挡不住它(env 旋钮的坏 JSON 早就不转述 V8 句,同一条理由)。
8
+ * 这里解析失败只说形:`the response body is not JSON (<n> characters; the body is not echoed)`;类名照旧是 `SyntaxError` ——
9
+ * 调用方按类定成因的读法不变(中心拉取:`SyntaxError` ⇒ 候选被拒 `rejected`;hook 模型端点:按名判 `bad_response`)。
10
+ * 读体途中的传输错(连接被重置的 `TypeError`、超时的 `AbortError`)原样抛:那不是「答错了」,是没拿到完整应答。
11
+ *
12
+ * 门:`test/upstream-json-single-reader.test.ts` —— `src/` 里 `.json()` 调用在本模块之外恒为 0(语法树)。
13
+ * 纯叶(零 import)。
14
+ */
15
+ /** 报错句的固定头(钉与读者按它认这一形;句子其余部分只有体长)。 */
16
+ export declare const UPSTREAM_BODY_NOT_JSON = "the response body is not JSON";
17
+ /** 一段应答体进报错句时的那一格(只有体长;本服务对上游应答体在报错句里只说这一句 —— 体不是 JSON 的句子与记忆同步对端的非 2xx 句同读)。 */
18
+ export declare function buildBodyWithheldNote(text: string): string;
19
+ /** 已读出的应答体文本 → JSON 值;不是 JSON ⇒ 抛 `SyntaxError`(句子只有体长,不带体的任何字节)。 */
20
+ export declare function parseUpstreamJson(text: string): unknown;
21
+ /** 读完应答体再解 JSON(`Response.json()` 的替身:同一份 UTF-8 解码);读体途中的传输错原样抛。 */
22
+ export declare function readUpstreamJson(res: Response): Promise<unknown>;
23
+ //# sourceMappingURL=upstream-body.d.ts.map
@@ -0,0 +1,16 @@
1
+ export const UPSTREAM_BODY_NOT_JSON = "the response body is not JSON";
2
+ export function buildBodyWithheldNote(text) {
3
+ return `(${text.length} characters; the body is not echoed)`;
4
+ }
5
+ export function parseUpstreamJson(text) {
6
+ try {
7
+ return JSON.parse(text);
8
+ }
9
+ catch {
10
+ throw new SyntaxError(`${UPSTREAM_BODY_NOT_JSON} ${buildBodyWithheldNote(text)}`);
11
+ }
12
+ }
13
+ export async function readUpstreamJson(res) {
14
+ return parseUpstreamJson(await res.text());
15
+ }
16
+ //# sourceMappingURL=upstream-body.js.map
@@ -31,10 +31,10 @@ export declare function buildRefusalShownUrl(raw: string): string;
31
31
  /**
32
32
  * **自由文本里每一条嵌着的 http(s) URL 换成它的展示形**({@link buildRefusalShownUrl}:`scheme://host[:port]`,origin 之后还有东西接 `/…`;读法不唯一 / 读不出的串给展示铸点的占位),
33
33
  * 句子其余部分逐字不动。用在宿主不控制句子的日志面 —— 引擎把「拨不通的 A2A 对端 / MCP 服务器」连同被拨的 URL 拼成一句交来(`onError`),宿主手里没有那条 URL 的结构化值,
34
- * 只能在文本上换。展示形的铸点仍只有 {@link buildRefusalShownUrl} 一只(userinfo / 路径 / query / fragment 一个字节不进,不赌形状律认得出的令牌形);本函数只负责「找到文本里的 URL」。
35
- * 非 http(s) 的 scheme 不在射程(这两座的 URL 读器只收 http(s))。纯函数。
34
+ * 只能在文本上换。展示形的铸点仍只有 {@link buildRefusalShownUrl} 一只(userinfo / 路径 / query / fragment 一个字节不进,不赌形状律认得出的令牌形);本函数只负责「找到文本里的 URL」,
35
+ * 找的界见 {@link EMBEDDED_HTTP_URL}(authority 文法)。非 http(s) 的 scheme 不在射程(这两座的 URL 读器只收 http(s))。纯函数。
36
36
  *
37
- * 已知的界(不是兜底):URL 串里含**裸空白**的(userinfo 里写了空格)在第一个空白处被截 —— 余下的尾巴留在句里。那一形是调用方在受理口就被拒的(userinfo 一律 400),
37
+ * 已知的界(文法之外,不是兜底):userinfo 里的**裸空白**不是 URL 文法的一部分 —— 串在第一个空白处结束,余下的尾巴留在句里。那一形是调用方在受理口就被拒的(userinfo 一律 400),
38
38
  * 到不了这里的只有存量停驻体 / 部署基线;引擎的警告句对该形也是把 URL 原样拼进去,没有结构化值可救。
39
39
  */
40
40
  export declare function buildShownUrlsInText(text: string): string;
@@ -11,11 +11,18 @@ export function buildRefusalShownUrl(raw) {
11
11
  const origin = `${u.protocol}//${u.host}`;
12
12
  return `${buildDisplaySafeUrl(origin)}${u.href === `${origin}/` ? "" : "/…"}`;
13
13
  }
14
- const EMBEDDED_HTTP_URL = /https?:\/\/[^\s"'`<>()[\]{}]+/gi;
14
+ const EMBEDDED_HTTP_URL = /(https?:\/\/)(?=\S)((?:[^\s/?#\\]*@)?(?:\[[^\s\]/?#\\]*\]|[^\s"'`<>()[\]{}/?#\\@:]*)(?::\d+)?)(\S*)/gi;
15
+ const SENTENCE_TAIL_CHARS = ".,;:!?)]}>'\"`";
16
+ function sentenceTailStart(rest) {
17
+ let at = rest.length;
18
+ while (at > 0 && SENTENCE_TAIL_CHARS.includes(rest.charAt(at - 1)))
19
+ at -= 1;
20
+ return at;
21
+ }
15
22
  export function buildShownUrlsInText(text) {
16
- return text.replace(EMBEDDED_HTTP_URL, (token) => {
17
- const trail = /[.,;:!?]+$/.exec(token)?.[0] ?? "";
18
- return buildRefusalShownUrl(trail === "" ? token : token.slice(0, -trail.length)) + trail;
23
+ return text.replace(EMBEDDED_HTTP_URL, (_token, scheme, authority, rest) => {
24
+ const at = sentenceTailStart(rest);
25
+ return buildRefusalShownUrl(`${scheme}${authority}${rest.slice(0, at)}`) + rest.slice(at);
19
26
  });
20
27
  }
21
28
  export function buildHttpUrlRefusal(subject, raw, flaws) {
@@ -32,7 +32,7 @@ export declare function buildRunObjectivePreview(objective: string): string;
32
32
  * 这条消息是不是**附件帧**(core 7.50.0 请求层附件:目标声明的每只文件由引擎铸成一条自己的 user 消息,紧跟目标提交)。
33
33
  * 判据 = 引擎写在消息上的送达记录 `attachment` **在场**(core:那只记录是「这条消息是附件帧」的唯一来源,文本从不判)。坏形记录同样算在场 ——
34
34
  * 两个读者都往「不是人写的话」那一侧落(预览走下一条;会话视图按文件字节脱敏),那是安全的一侧。
35
- * 一个事实一个读法:会话视图的处置表(`audit.ts`)与本地会话列表的预览(`plugins/local-session-store.ts`)同调这一只。
35
+ * 一个事实一个读法:会话视图的处置表(`audit.ts`)调这一只(会话列表的预览读 run 行预览列,不读会话条目 —— 附件帧本不在其中)。
36
36
  */
37
37
  export declare function isAttachmentFrame(message: unknown): boolean;
38
38
  //# sourceMappingURL=user-authored-text.d.ts.map
@@ -13,9 +13,8 @@
13
13
  * 「本服务以回执向调用方承诺已交给引擎、而消费只发生在进程内存里的用户输入」,**且承载它的那只 `TaskStream` 活在本服务的一条 run 腿里**([ref])——
14
14
  * 后半句是收敛判词成立的前提:证据面是那条 run 行(下文「收敛判据」)。行的 `taskId` = 回执上的 run、`sessionId` = 那条 run 的会话(人看的那一只),
15
15
  * run 里是哪一只流(run 自己的 / 同步子代的)**不是**账本的事实:告知按 run 并帧(`steer` = 条数),读面行同形。今天只有 steer 一族(`kind:"steer"` =
16
- * 受理它的引擎动词 `TaskStream.steer`,三档 `now` / `next` / `later` 同一个动词同一族),三个入口同一个引擎动词:
17
- * · `POST /v1/runs/:id/steer` 的 live 腿(200 applied);
18
- * · `POST /v1/runs/:id/interrupt` 的带 text 形(202 queued-immediate,档位 now;设计稿把它划在病面外,车 SW 亲核它进的是同一只进程内队列 ⇒ 同类同修);
16
+ * 受理它的引擎动词 `TaskStream.steer`,三档 `now` / `next` / `later` 同一个动词同一族),两个入口同一个引擎动词:
17
+ * · `POST /v1/runs/:id/steer` 的 live 腿(200 applied;档位只来自它的体 —— 「切断并说话」= `priority:"now"`,同一扇门);
19
18
  * · `POST /v1/runs/:id/subagents/:target/steer`(200 applied,[ref])—— 投进**同步子代**自己的流(core `createSteerHandle` → `stream.steer`)。子代由父腿
20
19
  * await,父腿收场时 core 撤掉在飞的复活(`subagentRetain.disposeAll`),所以它活在父 run 的腿里;腿 = 子代句柄,`handle.settled` 兑现 ⇒ 结清。
21
20
  * 规则的反面(不是例外表):workflow agent steer(`POST /v1/workflows/:id/agents/:label/steer`,200 applied)不在本账 —— workflow 是会话锚定的后台件
@@ -45,8 +44,8 @@
45
44
  * —— run 事件账与本账是两只店、没有共同事务,两害取「多说一遍」,不取「声称说过」。
46
45
  * 转移只有四条(open → settled | converged;converged → announced),两只孪生都按 CAS 守它们(File 单进程 = 内存判;SQL = `WHERE state=…`)。
47
46
  * · `erased` —— ([ref])**会话树删除**:该会话此前的每一次受理(不论状态)离开账本。行随会话走 —— 账本行的唯一归属键就是 `sessionId`,
48
- * 所以两条删会话树的级联(在线删除协调器 `boot/session-faces.ts` 的 `purgeSession`、托管留存的事务化孪生
49
- * `plugins/retention-deployment.ts` 的 `deleteDeploymentSessionRows`)各有一臂删它,谓词同一只(`session_id` 单键,店动词 `deleteBySession`)。
47
+ * 所以删净一只会话的唯一执行体(`session-erase.ts`)删它,谓词同一只(`session_id` 单键):local 执行体调店动词 `deleteBySession`,
48
+ * SQL 上在线删除与托管留存同一段会话树事务经 `plugins/retention-deployment.ts` 的 `deleteDeploymentSessionRows` 发同一只谓词。
50
49
  * File 孪生的盘上形 = 一行会话级墓碑 `{ kind:"erased", sessionId, at }`(与 workflow 完成信箱 `drain{sessionId}` 同形),
51
50
  * 只擦它**之前**的同会话行 —— 会话 id 删后可被重新登记,之后的受理属于下一位住客;SQL 孪生 = 真删行。被删受理上迟到的转移全输
52
51
  * (行不在了,与「未知 acceptId」同一条守卫)。
@@ -105,7 +104,7 @@ export type UserInputKind = (typeof LEDGER_KIND_OF_LANE)[UserInputLane];
105
104
  /** 读盘词表(判定走 `Object.hasOwn`;派生自 {@link LEDGER_KIND_OF_LANE})。≤7.117.x 的读腿不认 `follow_up`(回滚须知在 MIGRATION)。 */
106
105
  export declare const USER_INPUT_KIND_WORDS: Readonly<Record<UserInputKind, true>>;
107
106
  /**
108
- * 一次受理的族词 —— 三个受理口(run steer 的 live 腿 / interrupt 带 text 形 / 子代 steer)同调这一只。车道是引擎的那一只读法
107
+ * 一次受理的族词 —— 两个受理口(run steer 的 live 腿 / 子代 steer)同调这一只。车道是引擎的那一只读法
109
108
  * `injectionLaneOf(steerPriorityOf(…))`(core 7.45.0 [ref]:缺席档 = `next`;`later` 走 follow-up 车道,`now` / `next` 走 steer 车道;
110
109
  * 档外值抛 `steering.invalid_content` —— 受理口在这之前已按 `isSystemInjectionPriority` 400 掉档外值,这一抛在本仓不可达)。
111
110
  */
@@ -263,8 +262,8 @@ export interface UserInputLedgerStore {
263
262
  listUnannounced(sessionId: string, limit: number): Promise<UserInputAcceptance[]>;
264
263
  /** [ref] —— **会话树删除**:删掉该会话**每一种状态**的受理,回删除条数(没有可删的 ⇒ 0、零写;幂等)。按 `session_id` 单键:行上没有属主列,
265
264
  * 会话所有权由调用方证过(在线删除 = 路由的 DELETE 门;留存 = 候选集本身出自本域加锁读的 `session_meta`),与 anchors / exemptions /
266
- * attachments 同律。调用方 = 在线删除协调器(`boot/session-faces.ts` `purgeSession` 的一腿);托管留存的事务化孪生不调店、在自己的事务里
267
- * 发**同一只谓词**(`retention-deployment.ts` `deleteDeploymentSessionRows` ④)。写不进 ⇒ 抛(协调器据此不删会话本体,幂等重试收敛)。 */
265
+ * attachments 同律。调用方 = local 删净执行体(`session-erase.ts` `createLocalSessionEraser` 的一腿);SQL 上的删净(在线与留存同一段事务体)不调店、
266
+ * 在自己的事务里发**同一只谓词**(`retention-deployment.ts` `deleteDeploymentSessionRows` ④)。写不进 ⇒ 抛(执行体据此不删会话本体,幂等重试收敛)。 */
268
267
  deleteBySession(sessionId: string): Promise<number>;
269
268
  }
270
269
  /** 收敛判词读的 run 店面(只读一只动词)。 */
@@ -138,7 +138,7 @@ export function buildCrashedUndrainedNotice(input) {
138
138
  const face = USER_INPUT_UNDRAINED_FAMILIES[lane];
139
139
  return {
140
140
  code: face.code,
141
- message: `Check the earlier run's transcript and results before re-sending any of these steers to a live run. The server accepted ${input.count} ${UNDRAINED_WHAT_OF_LANE[lane]} for run ${input.taskId} (each answered 200 applied or 202 queued-immediate), but the process running that run ended before the engine confirmed consuming them. They are NOT redelivered.`,
141
+ message: `Check the earlier run's transcript and results before re-sending any of these steers to a live run. The server accepted ${input.count} ${UNDRAINED_WHAT_OF_LANE[lane]} for run ${input.taskId}, but the process running that run ended before the engine confirmed consuming them. They are NOT redelivered.`,
142
142
  detail: { [face.countKey]: input.count, cause: CRASHED_CAUSE, taskId: input.taskId, sessionId: input.sessionId },
143
143
  sessionId: input.sessionId,
144
144
  };
@@ -16,9 +16,12 @@ import { type ConfigCandidateRead } from "./candidate-gate.js";
16
16
  import type { CatalogSource } from "../env-model-table-gate.js";
17
17
  /** Apply center config OVER the env-derived config (mutates `config`). Empty domains keep env defaults. */
18
18
  /** Replace a record's contents IN PLACE (clear keys, copy source) so holders of the SAME reference see the
19
- * change. This is what makes models/roles/pricing HOT-apply: core's Runner reads
20
- * `this.deps.models/roles/pricing` LIVE per-task and `/v1/models` reads `config.models` — both share the
21
- * reference captured at boot, so mutating it (vs reassigning) updates both with no split, no Runner rebuild. */
19
+ * change. Who holds it: this service's own readers (`/v1/models`, resolveSpec, the quota / key maps) read
20
+ * `config.models` / `config.roles` / `pricing` per request off the reference captured at boot; the engine reads
21
+ * `deps.roles` (the role map stays the caller's object between operations) and `deps.pricing` live off the same
22
+ * reference. NOT `models` / `tiers`: since core 7.60.0 the catalog door receives a whole generation at
23
+ * `new Runner` / `swapDeps` and keeps a frozen snapshot, so a model-plane change reaches the Runner only through
24
+ * `swapPlane` (applyEffective, before this commit) — the in-place write here is for this service's readers. */
22
25
  export declare function mutateInPlace<V>(target: Record<string, V>, source: Record<string, V>): void;
23
26
  /** 返回值=是否 COMMIT(false 两臂:[ref]③ 世代序 CAS 拒绝 / 7.10.0 swapPlane 换装拒绝——两臂都在
24
27
  * commit 之前,活配置零触碰)。caller 收到 false 必须把**同一世代的旁路消费**(prompts 采用/pricing/