@sema-agent/server 7.147.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 (790) hide show
  1. package/MIGRATION.md +1468 -24
  2. package/README.md +35 -7
  3. package/README.zh-CN.md +18 -8
  4. package/USAGE.md +444 -193
  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/approval-card.d.ts +36 -38
  39. package/dist/approval-gate-currency.js +3 -2
  40. package/dist/approval-leg-origin.d.ts +33 -0
  41. package/dist/approval-leg-origin.js +4 -0
  42. package/dist/approval-reconciler.d.ts +4 -13
  43. package/dist/approval-reconciler.js +2 -2
  44. package/dist/approval.d.ts +13 -11
  45. package/dist/approval.js +3 -3
  46. package/dist/audit.d.ts +10 -3
  47. package/dist/audit.js +15 -7
  48. package/dist/auth-bridge.d.ts +9 -15
  49. package/dist/auth-bridge.js +4 -11
  50. package/dist/auth-keys.d.ts +10 -1
  51. package/dist/auth-keys.js +8 -0
  52. package/dist/auto-mode-face.d.ts +10 -7
  53. package/dist/auto-mode-face.js +7 -4
  54. package/dist/background-agent-name.d.ts +19 -1
  55. package/dist/background-agent-name.js +12 -2
  56. package/dist/background-session-reap.d.ts +1 -1
  57. package/dist/bake-runner/main.js +9 -6
  58. package/dist/bench/s1/arms.js +6 -5
  59. package/dist/bench/s1/live-deps.js +5 -2
  60. package/dist/bench/s1/run-firm.js +6 -5
  61. package/dist/bind-host.d.ts +25 -0
  62. package/dist/bind-host.js +25 -0
  63. package/dist/boot/adoption.d.ts +3 -0
  64. package/dist/boot/adoption.js +1 -0
  65. package/dist/boot/deployment-mods.d.ts +1 -1
  66. package/dist/boot/execution-env.d.ts +17 -7
  67. package/dist/boot/execution-env.js +47 -42
  68. package/dist/boot/execution-lane.d.ts +6 -4
  69. package/dist/boot/execution-lane.js +3 -1
  70. package/dist/boot/exit-boundary.d.ts +2 -2
  71. package/dist/boot/exit-boundary.js +6 -5
  72. package/dist/boot/fatal-exit.d.ts +3 -5
  73. package/dist/boot/fatal-exit.js +2 -2
  74. package/dist/boot/leader.d.ts +15 -0
  75. package/dist/boot/leader.js +17 -15
  76. package/dist/boot/memory-consolidation.d.ts +37 -29
  77. package/dist/boot/memory-consolidation.js +11 -5
  78. package/dist/boot/org-delivery.d.ts +3 -2
  79. package/dist/boot/org-memory.js +1 -1
  80. package/dist/boot/parked-revive-gate.js +2 -2
  81. package/dist/boot/reapers.d.ts +4 -3
  82. package/dist/boot/reapers.js +19 -16
  83. package/dist/boot/resolve-spec.d.ts +5 -3
  84. package/dist/boot/resolve-spec.js +60 -70
  85. package/dist/boot/retention-lane.d.ts +4 -4
  86. package/dist/boot/retention-lane.js +2 -2
  87. package/dist/boot/runner-deps.d.ts +28 -7
  88. package/dist/boot/runner-deps.js +14 -5
  89. package/dist/boot/runtime-caps.d.ts +2 -2
  90. package/dist/boot/runtime-caps.js +16 -2
  91. package/dist/boot/session-faces.d.ts +16 -7
  92. package/dist/boot/session-faces.js +114 -94
  93. package/dist/boot/shutdown.d.ts +5 -4
  94. package/dist/boot/shutdown.js +6 -4
  95. package/dist/boot/stage-01-config.d.ts +1 -0
  96. package/dist/boot/stage-01-config.js +13 -4
  97. package/dist/boot/stage-02-web-admin-pull.d.ts +2 -0
  98. package/dist/boot/stage-02-web-admin-pull.js +16 -3
  99. package/dist/boot/stage-03-store-backend.d.ts +4 -0
  100. package/dist/boot/stage-03-store-backend.js +4 -3
  101. package/dist/boot/stage-04-stores.d.ts +3 -0
  102. package/dist/boot/stage-04-stores.js +2 -2
  103. package/dist/boot/stage-05-execution-env.d.ts +8 -3
  104. package/dist/boot/stage-05-execution-env.js +2 -2
  105. package/dist/boot/stage-06-runners.d.ts +12 -13
  106. package/dist/boot/stage-06-runners.js +23 -15
  107. package/dist/boot/stage-07-capability-layer.d.ts +13 -9
  108. package/dist/boot/stage-07-capability-layer.js +5 -3
  109. package/dist/boot/stage-08-reapers.d.ts +13 -9
  110. package/dist/boot/stage-08-reapers.js +3 -3
  111. package/dist/boot/stage-09-leader.d.ts +14 -16
  112. package/dist/boot/stage-09-leader.js +12 -4
  113. package/dist/boot/stage-10-http-server.d.ts +14 -16
  114. package/dist/boot/stage-10-http-server.js +7 -4
  115. package/dist/boot/store-evidence.d.ts +20 -0
  116. package/dist/boot/store-evidence.js +13 -0
  117. package/dist/boot/stores.d.ts +6 -0
  118. package/dist/boot/stores.js +41 -27
  119. package/dist/boot/task-list-lane.d.ts +4 -4
  120. package/dist/boot/web-admin.d.ts +4 -2
  121. package/dist/boot/web-admin.js +55 -35
  122. package/dist/boot/webfetch-summarize-lane.d.ts +1 -1
  123. package/dist/boot-reclaim.d.ts +3 -1
  124. package/dist/boot-reclaim.js +1 -1
  125. package/dist/brain.d.ts +7 -18
  126. package/dist/brain.js +5 -17
  127. package/dist/budget.js +6 -6
  128. package/dist/capabilities/center-plugins.d.ts +7 -1
  129. package/dist/capabilities/center-plugins.js +32 -10
  130. package/dist/capabilities/center-wiring.js +1 -1
  131. package/dist/capabilities/composite-members.d.ts +2 -2
  132. package/dist/capabilities/composite-members.js +2 -2
  133. package/dist/capabilities/repo-tools.d.ts +2 -0
  134. package/dist/capabilities/repo-tools.js +14 -12
  135. package/dist/capabilities/scenarios.d.ts +6 -15
  136. package/dist/capabilities/scenarios.js +11 -16
  137. package/dist/capabilities/skills.d.ts +1 -1
  138. package/dist/capabilities/tool-defer.d.ts +1 -1
  139. package/dist/capability-facts.d.ts +39 -11
  140. package/dist/capability-facts.js +35 -7
  141. package/dist/card-settle-stored-scope.d.ts +56 -0
  142. package/dist/card-settle-stored-scope.js +27 -0
  143. package/dist/card-void.d.ts +8 -13
  144. package/dist/card-void.js +2 -7
  145. package/dist/center-credential-renewer.d.ts +6 -2
  146. package/dist/center-credential-renewer.js +7 -3
  147. package/dist/config-catalog.d.ts +28 -1
  148. package/dist/config-catalog.js +95 -85
  149. package/dist/config-dir-trust.d.ts +37 -4
  150. package/dist/config-dir-trust.js +88 -44
  151. package/dist/config-invariants.d.ts +43 -3
  152. package/dist/config-invariants.js +69 -5
  153. package/dist/config-lkg.d.ts +23 -1
  154. package/dist/config-lkg.js +17 -3
  155. package/dist/config-provider.d.ts +9 -9
  156. package/dist/config-provider.js +25 -110
  157. package/dist/config-pull-failure.d.ts +50 -0
  158. package/dist/config-pull-failure.js +48 -0
  159. package/dist/config-types.d.ts +62 -21
  160. package/dist/config.d.ts +14 -21
  161. package/dist/config.js +141 -64
  162. package/dist/context-window-notice.d.ts +31 -0
  163. package/dist/context-window-notice.js +28 -0
  164. package/dist/delegated-session-owner.d.ts +1 -1
  165. package/dist/deleted-session-ids.d.ts +3 -2
  166. package/dist/deployment-governance.d.ts +3 -3
  167. package/dist/deployment-shape.d.ts +46 -11
  168. package/dist/deployment-shape.js +8 -0
  169. package/dist/egress-redirect.d.ts +25 -7
  170. package/dist/egress-redirect.js +20 -2
  171. package/dist/elicitation.d.ts +6 -5
  172. package/dist/elicitation.js +23 -22
  173. package/dist/engine-identity.d.ts +28 -0
  174. package/dist/engine-identity.js +10 -0
  175. package/dist/entry-problems.d.ts +5 -7
  176. package/dist/entry-problems.js +1 -1
  177. package/dist/env-facts.js +2 -1
  178. package/dist/env-name-allowlist-knobs.d.ts +6 -5
  179. package/dist/env-name-allowlist-knobs.js +5 -0
  180. package/dist/env-witness.d.ts +7 -0
  181. package/dist/env-witness.js +16 -0
  182. package/dist/execution-lane-caps.d.ts +25 -23
  183. package/dist/execution-lane-caps.js +18 -26
  184. package/dist/execution-placement.d.ts +58 -18
  185. package/dist/execution-placement.js +41 -2
  186. package/dist/field-conflict.d.ts +7 -11
  187. package/dist/field-conflict.js +3 -3
  188. package/dist/file-history-capture.d.ts +3 -3
  189. package/dist/file-history-disclosure.js +1 -0
  190. package/dist/fleet/fleet-bus.d.ts +21 -3
  191. package/dist/fleet/fleet-bus.js +35 -25
  192. package/dist/fleet/fleet-reconciler.js +2 -2
  193. package/dist/fleet/serving-lease.js +3 -3
  194. package/dist/fleet-client.js +3 -3
  195. package/dist/fleet-lease.d.ts +0 -1
  196. package/dist/fleet-lease.js +4 -5
  197. package/dist/history-anchor.d.ts +23 -3
  198. package/dist/history-anchor.js +24 -4
  199. package/dist/hitl-delivery.d.ts +90 -0
  200. package/dist/hitl-delivery.js +98 -0
  201. package/dist/hooks/classic-stations.d.ts +8 -11
  202. package/dist/hooks/classic-stations.js +0 -7
  203. package/dist/hooks/command-spawn.d.ts +7 -2
  204. package/dist/hooks/command-spawn.js +13 -6
  205. package/dist/hooks/hook-llm.d.ts +5 -1
  206. package/dist/hooks/hook-llm.js +24 -15
  207. package/dist/hooks/hook-runner.d.ts +72 -57
  208. package/dist/hooks/hook-runner.js +271 -193
  209. package/dist/host-lsp-manager.d.ts +22 -8
  210. package/dist/host-lsp-manager.js +4 -1
  211. package/dist/http/active-run-conflict.d.ts +2 -43
  212. package/dist/http/active-run-conflict.js +3 -7
  213. package/dist/http/admission.d.ts +4 -18
  214. package/dist/http/admission.js +76 -79
  215. package/dist/http/approval-sweeps.d.ts +3 -3
  216. package/dist/http/approval-sweeps.js +56 -31
  217. package/dist/http/caller-trust.d.ts +8 -10
  218. package/dist/http/caller-trust.js +1 -2
  219. package/dist/http/claim-heartbeat.d.ts +49 -0
  220. package/dist/http/claim-heartbeat.js +46 -0
  221. package/dist/http/claimed-run.d.ts +16 -8
  222. package/dist/http/claimed-run.js +8 -0
  223. package/dist/http/dispatch.d.ts +8 -1
  224. package/dist/http/dispatch.js +78 -30
  225. package/dist/http/durable-run-leg.d.ts +11 -4
  226. package/dist/http/durable-run-leg.js +45 -21
  227. package/dist/http/execution-context.d.ts +122 -47
  228. package/dist/http/execution-context.js +135 -43
  229. package/dist/http/health-reader.d.ts +36 -0
  230. package/dist/http/health-reader.js +21 -0
  231. package/dist/http/health-self-report.d.ts +9 -9
  232. package/dist/http/health-self-report.js +4 -4
  233. package/dist/http/idempotency.d.ts +9 -5
  234. package/dist/http/idempotency.js +4 -4
  235. package/dist/http/memory-compliance-failure-reply.d.ts +15 -16
  236. package/dist/http/memory-compliance-failure-reply.js +4 -2
  237. package/dist/http/memory-face-fault-reply.d.ts +67 -0
  238. package/dist/http/memory-face-fault-reply.js +71 -0
  239. package/dist/http/memory-store-refusal-reply.d.ts +1 -1
  240. package/dist/http/memory-store-refusal-reply.js +3 -0
  241. package/dist/http/owner-access.d.ts +392 -67
  242. package/dist/http/owner-access.js +370 -35
  243. package/dist/http/principal-gate.d.ts +39 -89
  244. package/dist/http/principal-gate.js +26 -68
  245. package/dist/http/refusal-body.d.ts +35 -2
  246. package/dist/http/refusal-body.js +34 -0
  247. package/dist/http/request-guards.d.ts +9 -13
  248. package/dist/http/request-guards.js +34 -68
  249. package/dist/http/resume-composition.d.ts +37 -0
  250. package/dist/http/resume-composition.js +18 -0
  251. package/dist/http/resume-ctx-read.d.ts +46 -12
  252. package/dist/http/resume-ctx-read.js +31 -6
  253. package/dist/http/resume-legs.d.ts +54 -19
  254. package/dist/http/resume-legs.js +408 -196
  255. package/dist/http/retired-skill-manifest.d.ts +1 -1
  256. package/dist/http/route-ctx.d.ts +31 -32
  257. package/dist/http/routes/a2a-serve.d.ts +43 -5
  258. package/dist/http/routes/a2a-serve.js +60 -37
  259. package/dist/http/routes/admin-config-refresh.js +2 -2
  260. package/dist/http/routes/admin-drain.js +2 -2
  261. package/dist/http/routes/admin-memory-optout.js +4 -3
  262. package/dist/http/routes/adoption.d.ts +3 -0
  263. package/dist/http/routes/adoption.js +17 -10
  264. package/dist/http/routes/agents-roster.js +13 -7
  265. package/dist/http/routes/approvals-assistant.js +73 -67
  266. package/dist/http/routes/attachments.js +2 -2
  267. package/dist/http/routes/background.d.ts +3 -3
  268. package/dist/http/routes/background.js +9 -17
  269. package/dist/http/routes/capabilities.js +16 -19
  270. package/dist/http/routes/config-catalog.js +2 -2
  271. package/dist/http/routes/devices.d.ts +3 -3
  272. package/dist/http/routes/devices.js +4 -4
  273. package/dist/http/routes/diagnostics.d.ts +29 -3
  274. package/dist/http/routes/diagnostics.js +49 -18
  275. package/dist/http/routes/engine.js +2 -2
  276. package/dist/http/routes/fleet.js +5 -3
  277. package/dist/http/routes/images.js +10 -6
  278. package/dist/http/routes/leader.d.ts +7 -2
  279. package/dist/http/routes/leader.js +12 -3
  280. package/dist/http/routes/mcp-reconnect.d.ts +1 -1
  281. package/dist/http/routes/mcp-reconnect.js +7 -15
  282. package/dist/http/routes/memory-bundle.js +4 -7
  283. package/dist/http/routes/memory-compliance.js +4 -4
  284. package/dist/http/routes/memory-consolidation.js +6 -9
  285. package/dist/http/routes/memory-origin.d.ts +2 -0
  286. package/dist/http/routes/memory-origin.js +7 -8
  287. package/dist/http/routes/memory-policy.js +17 -12
  288. package/dist/http/routes/notify-wake.js +10 -19
  289. package/dist/http/routes/observability.js +3 -3
  290. package/dist/http/routes/principal-inbox.d.ts +4 -2
  291. package/dist/http/routes/principal-inbox.js +5 -4
  292. package/dist/http/routes/projects.d.ts +1 -1
  293. package/dist/http/routes/projects.js +3 -2
  294. package/dist/http/routes/retention-ops.js +6 -9
  295. package/dist/http/routes/rules.js +20 -5
  296. package/dist/http/routes/run-memory-capture.d.ts +2 -2
  297. package/dist/http/routes/run-memory-capture.js +6 -12
  298. package/dist/http/routes/run-permission-mode.d.ts +2 -2
  299. package/dist/http/routes/run-permission-mode.js +10 -17
  300. package/dist/http/routes/runs.js +155 -237
  301. package/dist/http/routes/session-memory-sync.d.ts +2 -2
  302. package/dist/http/routes/session-memory-sync.js +7 -13
  303. package/dist/http/routes/session-sync.d.ts +28 -7
  304. package/dist/http/routes/session-sync.js +63 -50
  305. package/dist/http/routes/sessions-list.d.ts +3 -3
  306. package/dist/http/routes/sessions-list.js +9 -9
  307. package/dist/http/routes/sessions.js +87 -124
  308. package/dist/http/routes/shared-memory.js +6 -6
  309. package/dist/http/routes/side-query.js +2 -2
  310. package/dist/http/routes/tasks.js +237 -187
  311. package/dist/http/routes/trace-usage.d.ts +0 -12
  312. package/dist/http/routes/trace-usage.js +40 -46
  313. package/dist/http/routes/workflows.d.ts +39 -4
  314. package/dist/http/routes/workflows.js +42 -14
  315. package/dist/http/run-concurrency-cap.d.ts +20 -12
  316. package/dist/http/run-concurrency-cap.js +39 -26
  317. package/dist/http/run-read-face.d.ts +3 -5
  318. package/dist/http/run-read-face.js +8 -13
  319. package/dist/http/send.d.ts +12 -3
  320. package/dist/http/send.js +42 -6
  321. package/dist/http/server.d.ts +43 -45
  322. package/dist/http/server.js +61 -11
  323. package/dist/http/sse-log.d.ts +17 -10
  324. package/dist/http/sse-log.js +7 -7
  325. package/dist/http/stored-body-replay.d.ts +12 -0
  326. package/dist/http/stored-body-replay.js +2 -2
  327. package/dist/http/submit-ctx.d.ts +17 -8
  328. package/dist/http/submit-ctx.js +8 -5
  329. package/dist/http/submit-replay.d.ts +19 -6
  330. package/dist/http/submit-replay.js +18 -6
  331. package/dist/http/sync-submit-body.d.ts +3 -4
  332. package/dist/http/sync-submit-body.js +4 -5
  333. package/dist/http/wire-types.d.ts +4 -3
  334. package/dist/identity-source.d.ts +36 -5
  335. package/dist/identity-source.js +27 -0
  336. package/dist/index.d.ts +4 -1
  337. package/dist/index.js +2 -0
  338. package/dist/key-resolver.d.ts +32 -0
  339. package/dist/key-resolver.js +23 -9
  340. package/dist/leader/diffup.js +2 -1
  341. package/dist/leader/endpoint.d.ts +26 -5
  342. package/dist/leader/endpoint.js +154 -14
  343. package/dist/leader/fanout.d.ts +3 -0
  344. package/dist/leader/fanout.js +78 -63
  345. package/dist/leader/leader.d.ts +16 -0
  346. package/dist/leader/leader.js +43 -3
  347. package/dist/leader/merge.d.ts +9 -1
  348. package/dist/leader/merge.js +16 -1
  349. package/dist/leader/repair-wire.js +1 -1
  350. package/dist/leader/wire.d.ts +36 -3
  351. package/dist/leader/wire.js +59 -18
  352. package/dist/leg-facts.d.ts +7 -2
  353. package/dist/leg-facts.js +1 -0
  354. package/dist/local-store-declaration.d.ts +54 -0
  355. package/dist/local-store-declaration.js +59 -0
  356. package/dist/lsp-evict.d.ts +6 -4
  357. package/dist/lsp-evict.js +2 -3
  358. package/dist/mcp-assertion-header.d.ts +1 -1
  359. package/dist/mcp-assertion-header.js +1 -1
  360. package/dist/memory-operator-faces.d.ts +5 -4
  361. package/dist/memory-operator-faces.js +1 -1
  362. package/dist/memory-project-layer.js +1 -1
  363. package/dist/memory-scope.d.ts +33 -6
  364. package/dist/memory-scope.js +68 -19
  365. package/dist/memory-store-refusal.d.ts +5 -2
  366. package/dist/memory-sync-client.d.ts +3 -2
  367. package/dist/memory-sync-client.js +8 -5
  368. package/dist/model-compat.d.ts +17 -8
  369. package/dist/model-compat.js +6 -2
  370. package/dist/model-context-window.d.ts +57 -0
  371. package/dist/model-context-window.js +21 -0
  372. package/dist/model-entry-headers.d.ts +46 -4
  373. package/dist/model-entry-headers.js +2 -2
  374. package/dist/model-entry-refusal.d.ts +40 -20
  375. package/dist/model-entry-refusal.js +57 -30
  376. package/dist/model-plane-face.d.ts +19 -11
  377. package/dist/model-plane-face.js +9 -1
  378. package/dist/model-plane-probe.d.ts +2 -0
  379. package/dist/model-plane-probe.js +17 -0
  380. package/dist/model-provider.d.ts +3 -3
  381. package/dist/model-reach-scope.d.ts +2 -1
  382. package/dist/model-route-endpoint.d.ts +9 -5
  383. package/dist/model-route-endpoint.js +29 -7
  384. package/dist/model-select.d.ts +16 -0
  385. package/dist/model-select.js +4 -0
  386. package/dist/mountinfo.d.ts +37 -0
  387. package/dist/mountinfo.js +47 -0
  388. package/dist/namespaced-rule-name.d.ts +23 -14
  389. package/dist/namespaced-rule-name.js +8 -11
  390. package/dist/net-address.d.ts +1 -1
  391. package/dist/observability/corrupt-read-seat.d.ts +4 -4
  392. package/dist/observability/corrupt-read-seat.js +5 -3
  393. package/dist/observability/fail-open.d.ts +72 -40
  394. package/dist/observability/fail-open.js +74 -40
  395. package/dist/observability/logger.d.ts +22 -1
  396. package/dist/observability/logger.js +89 -12
  397. package/dist/observability/metrics.js +4 -5
  398. package/dist/observability/otel-exporter.js +2 -1
  399. package/dist/observability/principal-context.d.ts +14 -7
  400. package/dist/observability/principal-context.js +8 -3
  401. package/dist/observability/run-terminal.d.ts +7 -1
  402. package/dist/observability/run-terminal.js +6 -2
  403. package/dist/observability/secret-env-scrub.d.ts +1 -1
  404. package/dist/observability/secret-env-scrub.js +1 -1
  405. package/dist/orchestration/hardened-vm-runner.d.ts +1 -0
  406. package/dist/orchestration/hardened-vm-runner.js +11 -5
  407. package/dist/orchestration/hardened-vm-worker-runner.d.ts +0 -14
  408. package/dist/orchestration/hardened-vm-worker-runner.js +5 -0
  409. package/dist/orchestration/hardened-vm-worker.js +2 -1
  410. package/dist/orchestration/workflow-completion-inbox.d.ts +3 -3
  411. package/dist/orchestration/workflow-completion-inbox.js +3 -2
  412. package/dist/org-delivery-gate.d.ts +36 -10
  413. package/dist/org-delivery-gate.js +12 -8
  414. package/dist/outbound-dispatcher.d.ts +1 -1
  415. package/dist/outbound-dispatcher.js +6 -12
  416. package/dist/owner-brands.d.ts +81 -0
  417. package/dist/owner-brands.js +42 -0
  418. package/dist/owner-faces.d.ts +532 -0
  419. package/dist/owner-faces.js +126 -0
  420. package/dist/park-row-commit.d.ts +67 -0
  421. package/dist/park-row-commit.js +76 -0
  422. package/dist/parked-decide.d.ts +76 -12
  423. package/dist/parked-decide.js +152 -11
  424. package/dist/parked-revive-surface.d.ts +14 -4
  425. package/dist/parked-revive-surface.js +5 -4
  426. package/dist/peer-directory.d.ts +7 -9
  427. package/dist/peer-directory.js +3 -2
  428. package/dist/permission-rule-vocab.d.ts +53 -8
  429. package/dist/permission-rule-vocab.js +30 -2
  430. package/dist/plugins/adoption-log-sql.d.ts +3 -25
  431. package/dist/plugins/adoption-log-sql.js +23 -21
  432. package/dist/plugins/approval-ask-retired-delete-by-task-m50.d.ts +7 -0
  433. package/dist/plugins/approval-ask-retired-delete-by-task-m50.js +17 -0
  434. package/dist/plugins/approval-ask-store-file.d.ts +18 -7
  435. package/dist/plugins/approval-ask-store-file.js +37 -14
  436. package/dist/plugins/approval-ask-store-memory.d.ts +12 -4
  437. package/dist/plugins/approval-ask-store-memory.js +24 -10
  438. package/dist/plugins/approval-ask-store-sql.d.ts +40 -21
  439. package/dist/plugins/approval-ask-store-sql.js +44 -15
  440. package/dist/plugins/approval-exemption-skill-cutoff.d.ts +64 -0
  441. package/dist/plugins/approval-exemption-skill-cutoff.js +122 -0
  442. package/dist/plugins/approval-exemption-skill-m46.d.ts +14 -0
  443. package/dist/plugins/approval-exemption-skill-m46.js +21 -0
  444. package/dist/plugins/approval-exemption-store.d.ts +32 -2
  445. package/dist/plugins/approval-exemption-store.js +42 -19
  446. package/dist/plugins/approval-nonce-store.d.ts +39 -12
  447. package/dist/plugins/approval-nonce-store.js +72 -23
  448. package/dist/plugins/blob-backend.d.ts +2 -0
  449. package/dist/plugins/blob-backend.js +9 -6
  450. package/dist/plugins/caching-session-store.d.ts +13 -1
  451. package/dist/plugins/caching-session-store.js +43 -4
  452. package/dist/plugins/checkpoint-index-columns.d.ts +32 -5
  453. package/dist/plugins/checkpoint-index-columns.js +36 -1
  454. package/dist/plugins/checkpoint-store-face.d.ts +83 -10
  455. package/dist/plugins/checkpoint-store-face.js +18 -1
  456. package/dist/plugins/device-store-sql.js +1 -0
  457. package/dist/plugins/ensure-index.d.ts +13 -1
  458. package/dist/plugins/ensure-index.js +154 -21
  459. package/dist/plugins/ensure-schema-lock-policy.d.ts +36 -18
  460. package/dist/plugins/ensure-schema-lock-policy.js +76 -9
  461. package/dist/plugins/file-run-store.d.ts +85 -32
  462. package/dist/plugins/file-run-store.js +177 -94
  463. package/dist/plugins/host-platform.d.ts +24 -3
  464. package/dist/plugins/host-platform.js +15 -1
  465. package/dist/plugins/image-bake-store-sql.js +2 -0
  466. package/dist/plugins/imported-layer-root-retirement.d.ts +2 -2
  467. package/dist/plugins/k8s-pod-reaper.d.ts +1 -3
  468. package/dist/plugins/k8s-pod-reaper.js +0 -1
  469. package/dist/plugins/leader-run-store-sql.d.ts +22 -0
  470. package/dist/plugins/leader-run-store-sql.js +34 -4
  471. package/dist/plugins/local-checkpoint-store.d.ts +62 -23
  472. package/dist/plugins/local-checkpoint-store.js +197 -77
  473. package/dist/plugins/local-data-dir-modes-m39.js +2 -1
  474. package/dist/plugins/local-data-root-admission.d.ts +52 -0
  475. package/dist/plugins/local-data-root-admission.js +100 -0
  476. package/dist/plugins/local-docker-capacity.d.ts +93 -0
  477. package/dist/plugins/local-docker-capacity.js +194 -0
  478. package/dist/plugins/local-docker-reaper.d.ts +92 -0
  479. package/dist/plugins/local-docker-reaper.js +102 -0
  480. package/dist/plugins/local-engine-high-water.d.ts +29 -6
  481. package/dist/plugins/local-engine-high-water.js +27 -19
  482. package/dist/plugins/local-session-store.d.ts +458 -140
  483. package/dist/plugins/local-session-store.js +906 -292
  484. package/dist/plugins/local-session-window.d.ts +3 -2
  485. package/dist/plugins/local-session-window.js +3 -2
  486. package/dist/plugins/local-sidecar-quarantine.js +3 -2
  487. package/dist/plugins/local-task-attachment-store.d.ts +18 -1
  488. package/dist/plugins/local-task-attachment-store.js +22 -1
  489. package/dist/plugins/memory-embedder.js +9 -7
  490. package/dist/plugins/memory-engine-pg.d.ts +3 -2
  491. package/dist/plugins/memory-engine-pg.js +14 -5
  492. package/dist/plugins/memory-engine-sql-apply.d.ts +8 -4
  493. package/dist/plugins/memory-engine-sql-apply.js +6 -8
  494. package/dist/plugins/memory-engine-tidb.d.ts +4 -2
  495. package/dist/plugins/memory-engine-tidb.js +11 -2
  496. package/dist/plugins/memory-optout-grant-store-sql.d.ts +1 -1
  497. package/dist/plugins/memory-optout-grant-store-sql.js +3 -3
  498. package/dist/plugins/memory-run-store.d.ts +53 -36
  499. package/dist/plugins/memory-run-store.js +116 -88
  500. package/dist/plugins/one-time-migration-marker.d.ts +26 -0
  501. package/dist/plugins/one-time-migration-marker.js +13 -0
  502. package/dist/plugins/one-time-migrations.d.ts +214 -47
  503. package/dist/plugins/one-time-migrations.js +481 -135
  504. package/dist/plugins/org-delivery-quota-store.d.ts +34 -11
  505. package/dist/plugins/org-delivery-quota-store.js +31 -15
  506. package/dist/plugins/permission-rule-store-file.d.ts +3 -3
  507. package/dist/plugins/permission-rule-store-sql.d.ts +5 -64
  508. package/dist/plugins/permission-rule-store-sql.js +11 -95
  509. package/dist/plugins/pg-pool.d.ts +2 -32
  510. package/dist/plugins/pg-pool.js +24 -17
  511. package/dist/plugins/remote-env-device.d.ts +3 -2
  512. package/dist/plugins/remote-env-e2b.d.ts +8 -32
  513. package/dist/plugins/remote-env-e2b.js +44 -32
  514. package/dist/plugins/remote-env-host.d.ts +51 -17
  515. package/dist/plugins/remote-env-host.js +111 -42
  516. package/dist/plugins/remote-env-k8s.d.ts +40 -45
  517. package/dist/plugins/remote-env-k8s.js +111 -60
  518. package/dist/plugins/remote-env-local-docker.d.ts +152 -15
  519. package/dist/plugins/remote-env-local-docker.js +352 -72
  520. package/dist/plugins/remote-scratchpad.js +4 -0
  521. package/dist/plugins/retention-deployment.d.ts +49 -17
  522. package/dist/plugins/retention-deployment.js +39 -8
  523. package/dist/plugins/run-preview-m45.d.ts +11 -0
  524. package/dist/plugins/run-preview-m45.js +19 -0
  525. package/dist/plugins/run-store-sql.d.ts +82 -75
  526. package/dist/plugins/run-store-sql.js +164 -125
  527. package/dist/plugins/s3-answer.d.ts +2 -1
  528. package/dist/plugins/sandbox-reaper.d.ts +26 -0
  529. package/dist/plugins/sandbox-reaper.js +2 -0
  530. package/dist/plugins/scenario-prefix-switch-m42.d.ts +56 -0
  531. package/dist/plugins/scenario-prefix-switch-m42.js +56 -0
  532. package/dist/plugins/scheduler-support.d.ts +16 -1
  533. package/dist/plugins/scheduler-support.js +22 -2
  534. package/dist/plugins/schema-consistency.d.ts +131 -14
  535. package/dist/plugins/schema-consistency.js +388 -18
  536. package/dist/plugins/schema-drift-sentence.d.ts +10 -6
  537. package/dist/plugins/schema-drift-sentence.js +15 -7
  538. package/dist/plugins/schema-ensure-legs.d.ts +9 -0
  539. package/dist/plugins/schema-ensure-legs.js +1 -1
  540. package/dist/plugins/schema-indexes.js +3 -0
  541. package/dist/plugins/schema-live-columns.d.ts +14 -5
  542. package/dist/plugins/schema-live-columns.js +10 -10
  543. package/dist/plugins/send-user-file.js +2 -1
  544. package/dist/plugins/session-birth.d.ts +37 -0
  545. package/dist/plugins/session-birth.js +38 -0
  546. package/dist/plugins/session-epoch-anchor.d.ts +40 -12
  547. package/dist/plugins/session-epoch-anchor.js +33 -11
  548. package/dist/plugins/session-ext-table.d.ts +27 -3
  549. package/dist/plugins/session-ext-table.js +19 -6
  550. package/dist/plugins/session-fork.d.ts +15 -1
  551. package/dist/plugins/session-fork.js +3 -0
  552. package/dist/plugins/session-ownership.d.ts +1 -1
  553. package/dist/plugins/session-placement.d.ts +27 -20
  554. package/dist/plugins/session-placement.js +15 -12
  555. package/dist/plugins/session-row-sql.d.ts +12 -0
  556. package/dist/plugins/session-row-sql.js +3 -3
  557. package/dist/plugins/session-run-rollup.d.ts +29 -0
  558. package/dist/plugins/session-run-rollup.js +40 -0
  559. package/dist/plugins/session-store-sql.d.ts +38 -12
  560. package/dist/plugins/session-store-sql.js +130 -30
  561. package/dist/plugins/session-withdraw-sql.d.ts +36 -0
  562. package/dist/plugins/session-withdraw-sql.js +42 -0
  563. package/dist/plugins/shared-memory-store-sql.d.ts +0 -69
  564. package/dist/plugins/shared-memory-store-sql.js +2 -1
  565. package/dist/plugins/shell-sentinel-owner-m48.d.ts +42 -0
  566. package/dist/plugins/shell-sentinel-owner-m48.js +9 -0
  567. package/dist/plugins/snapshot-bucket-presence.d.ts +2 -1
  568. package/dist/plugins/sql-driver.d.ts +1 -1
  569. package/dist/plugins/sql-driver.js +2 -1
  570. package/dist/plugins/sql-errors.d.ts +32 -5
  571. package/dist/plugins/sql-errors.js +55 -7
  572. package/dist/plugins/sql-json-column.d.ts +8 -7
  573. package/dist/plugins/sql-json-column.js +10 -6
  574. package/dist/plugins/stop-then-start-sentence.d.ts +16 -0
  575. package/dist/plugins/stop-then-start-sentence.js +7 -0
  576. package/dist/plugins/store-backend.d.ts +99 -16
  577. package/dist/plugins/store-backend.js +230 -65
  578. package/dist/plugins/store-contracts.d.ts +123 -33
  579. package/dist/plugins/store-contracts.js +38 -1
  580. package/dist/plugins/store-fault.d.ts +28 -2
  581. package/dist/plugins/store-fault.js +20 -2
  582. package/dist/plugins/task-attachment-store.d.ts +15 -3
  583. package/dist/plugins/task-attachment-store.js +22 -9
  584. package/dist/plugins/tidb-pool.d.ts +11 -6
  585. package/dist/plugins/tidb-pool.js +39 -18
  586. package/dist/plugins/web-search.js +5 -3
  587. package/dist/plugins/workflow-run-store-sql.d.ts +6 -1
  588. package/dist/plugins/workflow-run-store-sql.js +11 -5
  589. package/dist/plugins/workspace-custody.d.ts +44 -0
  590. package/dist/plugins/workspace-custody.js +47 -0
  591. package/dist/principal-jwt.d.ts +4 -4
  592. package/dist/principal-jwt.js +20 -5
  593. package/dist/principal-shape.d.ts +41 -0
  594. package/dist/principal-shape.js +19 -0
  595. package/dist/project-identity.d.ts +8 -7
  596. package/dist/project-identity.js +40 -17
  597. package/dist/project-layer-key.d.ts +13 -2
  598. package/dist/project-layer-key.js +9 -1
  599. package/dist/question.d.ts +13 -23
  600. package/dist/question.js +21 -39
  601. package/dist/read-deny-floor-notice.d.ts +36 -0
  602. package/dist/read-deny-floor-notice.js +40 -0
  603. package/dist/{plain-string-record.d.ts → request-declaration-disposition.d.ts} +9 -23
  604. package/dist/request-declaration-disposition.js +39 -0
  605. package/dist/request-declaration-refusal.d.ts +35 -12
  606. package/dist/request-declaration-refusal.js +21 -9
  607. package/dist/request-form.d.ts +58 -0
  608. package/dist/request-form.js +72 -0
  609. package/dist/request-image-urls.d.ts +8 -2
  610. package/dist/request-image-urls.js +2 -1
  611. package/dist/request-images.d.ts +20 -0
  612. package/dist/request-images.js +59 -0
  613. package/dist/request-key-closure.d.ts +6 -7
  614. package/dist/request-key-closure.js +15 -2
  615. package/dist/resource-suspend.d.ts +7 -16
  616. package/dist/resource-suspend.js +1 -1
  617. package/dist/retired-name-host-notice.d.ts +21 -0
  618. package/dist/retired-name-host-notice.js +12 -0
  619. package/dist/rule-entry-list.d.ts +2 -2
  620. package/dist/rule-entry-list.js +3 -4
  621. package/dist/rule-issue-reading.d.ts +58 -0
  622. package/dist/rule-issue-reading.js +14 -0
  623. package/dist/rules-consent.d.ts +5 -3
  624. package/dist/rules-consent.js +1 -0
  625. package/dist/run-acceptance.d.ts +3 -1
  626. package/dist/run-acceptance.js +3 -0
  627. package/dist/run-cancel-card.d.ts +28 -0
  628. package/dist/run-cancel-card.js +19 -0
  629. package/dist/run-cancel-context.d.ts +10 -0
  630. package/dist/run-cancel-context.js +1 -0
  631. package/dist/run-local.d.ts +14 -6
  632. package/dist/run-local.js +117 -90
  633. package/dist/run-stale-default.d.ts +7 -0
  634. package/dist/run-stale-default.js +2 -0
  635. package/dist/runs.d.ts +56 -21
  636. package/dist/runs.js +73 -43
  637. package/dist/runtime-caps-resolver.d.ts +21 -6
  638. package/dist/runtime-caps-resolver.js +17 -4
  639. package/dist/runtime-governance.d.ts +2 -2
  640. package/dist/runtime-governance.js +5 -3
  641. package/dist/sealed-key-layout.d.ts +12 -5
  642. package/dist/sealed-key-layout.js +5 -0
  643. package/dist/sealed-key.d.ts +12 -2
  644. package/dist/sealed-key.js +115 -27
  645. package/dist/security.d.ts +128 -158
  646. package/dist/security.js +163 -59
  647. package/dist/sema-config-dir.d.ts +20 -0
  648. package/dist/sema-config-dir.js +25 -0
  649. package/dist/server-secret-env.d.ts +55 -25
  650. package/dist/server-secret-env.js +75 -22
  651. package/dist/session-agent.d.ts +3 -2
  652. package/dist/session-children-retire.d.ts +13 -8
  653. package/dist/session-children-retire.js +9 -7
  654. package/dist/session-deletion.d.ts +88 -0
  655. package/dist/session-deletion.js +8 -0
  656. package/dist/session-erase.d.ts +145 -0
  657. package/dist/session-erase.js +115 -0
  658. package/dist/session-error-wire.d.ts +5 -5
  659. package/dist/session-error-wire.js +1 -1
  660. package/dist/session-incarnation.d.ts +52 -5
  661. package/dist/session-incarnation.js +19 -2
  662. package/dist/session-policy-wire.d.ts +6 -3
  663. package/dist/session-policy-wire.js +11 -1
  664. package/dist/session-resident-background.d.ts +0 -71
  665. package/dist/session-resident-background.js +4 -3
  666. package/dist/session-row.d.ts +2 -1
  667. package/dist/session-rules-seat.d.ts +12 -0
  668. package/dist/session-rules-seat.js +19 -0
  669. package/dist/session-titler.d.ts +7 -15
  670. package/dist/session-titler.js +1 -1
  671. package/dist/session-workspace.d.ts +3 -3
  672. package/dist/spec-fields.d.ts +57 -3
  673. package/dist/spec-fields.js +72 -51
  674. package/dist/store-admission.d.ts +33 -0
  675. package/dist/store-admission.js +49 -0
  676. package/dist/store-posture.d.ts +141 -20
  677. package/dist/store-posture.js +205 -3
  678. package/dist/stored-request-hooks-m20.js +2 -2
  679. package/dist/stores-sql/background-agent-store-sql.d.ts +11 -2
  680. package/dist/stores-sql/background-agent-store-sql.js +73 -20
  681. package/dist/stores-sql/checkpoint-store-sql.d.ts +34 -29
  682. package/dist/stores-sql/checkpoint-store-sql.js +78 -49
  683. package/dist/stores-sql/file-history-store-sql.d.ts +1 -1
  684. package/dist/stores-sql/file-history-store-sql.js +3 -5
  685. package/dist/stores-sql/mailbox-store-sql.d.ts +7 -4
  686. package/dist/stores-sql/mailbox-store-sql.js +31 -32
  687. package/dist/stores-sql/pg-session-storage.d.ts +7 -5
  688. package/dist/stores-sql/pg-session-storage.js +54 -46
  689. package/dist/stores-sql/retention-store-sql.d.ts +87 -19
  690. package/dist/stores-sql/retention-store-sql.js +92 -27
  691. package/dist/stores-sql/session-policy-store-sql.d.ts +32 -10
  692. package/dist/stores-sql/session-policy-store-sql.js +44 -36
  693. package/dist/stores-sql/session-write-hooks.d.ts +12 -6
  694. package/dist/stores-sql/tidb-session-storage.d.ts +4 -4
  695. package/dist/stores-sql/tidb-session-storage.js +13 -8
  696. package/dist/stores-sql/tidb-session-store.d.ts +36 -17
  697. package/dist/stores-sql/tidb-session-store.js +69 -39
  698. package/dist/stores-sql/tool-result-store-sql.d.ts +1 -1
  699. package/dist/stores-sql/tool-result-store-sql.js +4 -6
  700. package/dist/stores-sql/windowed-session-storage.d.ts +5 -0
  701. package/dist/stores-sql/windowed-session-storage.js +9 -0
  702. package/dist/submission-exit.d.ts +50 -0
  703. package/dist/submission-exit.js +108 -0
  704. package/dist/task-a2a.d.ts +3 -8
  705. package/dist/task-a2a.js +28 -30
  706. package/dist/task-cwd.d.ts +43 -7
  707. package/dist/task-cwd.js +11 -0
  708. package/dist/task-mcp.d.ts +3 -3
  709. package/dist/task-mcp.js +4 -4
  710. package/dist/task-settings.d.ts +14 -10
  711. package/dist/task-settings.js +19 -7
  712. package/dist/terminal.d.ts +27 -43
  713. package/dist/terminal.js +49 -14
  714. package/dist/tool-approval.d.ts +173 -163
  715. package/dist/tool-approval.js +247 -232
  716. package/dist/trace/core-keyset-guard.d.ts +13 -6
  717. package/dist/trace/core-vocab-wire.d.ts +95 -0
  718. package/dist/trace/core-vocab-wire.js +15 -0
  719. package/dist/trace/engine-notice-wire.d.ts +24 -21
  720. package/dist/trace/engine-notice-wire.js +7 -3
  721. package/dist/trace/exit-seat.d.ts +30 -4
  722. package/dist/trace/exit-seat.js +40 -36
  723. package/dist/trace/extension-call-face.d.ts +3 -2
  724. package/dist/trace/extension-call-face.js +3 -1
  725. package/dist/trace/ledger-events.d.ts +4 -7
  726. package/dist/trace/ledger-sink.d.ts +4 -31
  727. package/dist/trace/ledger-sink.js +0 -11
  728. package/dist/trace/model-segment.d.ts +5 -5
  729. package/dist/trace/model-segment.js +5 -5
  730. package/dist/trace/project.d.ts +59 -44
  731. package/dist/trace/project.js +60 -26
  732. package/dist/trace/redact.d.ts +135 -27
  733. package/dist/trace/redact.js +884 -260
  734. package/dist/trace/self-minted-wire.d.ts +567 -20
  735. package/dist/trace/self-minted-wire.js +205 -24
  736. package/dist/trace/wire-projection-faces.d.ts +5 -6
  737. package/dist/trace/wire-projection-faces.js +2 -2
  738. package/dist/upstream-body.d.ts +23 -0
  739. package/dist/upstream-body.js +16 -0
  740. package/dist/url-refusal.d.ts +3 -3
  741. package/dist/url-refusal.js +11 -4
  742. package/dist/user-authored-text.d.ts +1 -1
  743. package/dist/user-input-ledger.d.ts +7 -8
  744. package/dist/user-input-ledger.js +1 -1
  745. package/dist/web-admin-client/apply-effective.d.ts +6 -3
  746. package/dist/web-admin-client/apply-effective.js +33 -23
  747. package/dist/web-admin-client/apply-ledger.d.ts +16 -7
  748. package/dist/web-admin-client/apply-ledger.js +5 -2
  749. package/dist/web-admin-client/center-request.d.ts +2 -2
  750. package/dist/web-admin-client/center-request.js +15 -15
  751. package/dist/web-admin-client/effective-keys.d.ts +1 -1
  752. package/dist/web-admin-client/effective-keys.js +1 -1
  753. package/dist/web-admin-client/entry-metadata.d.ts +8 -0
  754. package/dist/web-admin-client/entry-metadata.js +13 -0
  755. package/dist/web-admin-client/http-client.d.ts +1 -1
  756. package/dist/web-admin-client/http-client.js +23 -4
  757. package/dist/web-admin-client/mcp-revocation.d.ts +1 -1
  758. package/dist/web-admin-client/mcp-revocation.js +2 -1
  759. package/dist/web-admin-client/read-warnings.d.ts +1 -0
  760. package/dist/web-admin-client/read-warnings.js +1 -0
  761. package/dist/web-admin-client/restart-signal.js +8 -4
  762. package/dist/web-admin-client/skills-mcp.d.ts +2 -2
  763. package/dist/web-admin-client/types.d.ts +1 -2
  764. package/dist/workspace-space.d.ts +3 -2
  765. package/docs/DEVICE-EXECUTOR-PROTOCOL.md +4 -4
  766. package/docs/error-text-lexicon.json +317 -0
  767. package/package.json +8 -3
  768. package/scripts/drain-check-local.mjs +118 -147
  769. package/scripts/drain-check.mysql.sql +22 -2
  770. package/scripts/drain-check.pg.sql +22 -2
  771. package/scripts/embed-minimal.mjs +183 -0
  772. package/wire-changes/server@7.148.0.json +1517 -0
  773. package/wire-changes/server@7.149.0.json +372 -0
  774. package/dist/http/memory-control-plane-corrupt-reply.d.ts +0 -25
  775. package/dist/http/memory-control-plane-corrupt-reply.js +0 -19
  776. package/dist/http/memory-layer-reply.d.ts +0 -30
  777. package/dist/http/memory-layer-reply.js +0 -24
  778. package/dist/lsp/e2b-bridge.d.ts +0 -57
  779. package/dist/lsp/e2b-bridge.js +0 -139
  780. package/dist/lsp/e2b-manager.d.ts +0 -93
  781. package/dist/lsp/e2b-manager.js +0 -178
  782. package/dist/lsp/lsp-frames.d.ts +0 -14
  783. package/dist/lsp/lsp-frames.js +0 -25
  784. package/dist/lsp/manager.d.ts +0 -129
  785. package/dist/lsp/manager.js +0 -127
  786. package/dist/lsp/types.d.ts +0 -12
  787. package/dist/lsp/types.js +0 -2
  788. package/dist/lsp/ws-transport.d.ts +0 -40
  789. package/dist/lsp/ws-transport.js +0 -210
  790. package/dist/plain-string-record.js +0 -70
@@ -32,10 +32,18 @@ export interface RunLocalDeps {
32
32
  fetchImpl?: typeof fetch;
33
33
  /** Structured logger (defaults to the real one at config.logLevel). */
34
34
  logger?: Logger;
35
- /** stdout sink for the human/JSON result (defaults to console.log). */
36
- print?: (line: string) => void;
37
- /** stderr sink for the "you still need to set …" guidance (defaults to console.error). */
38
- printErr?: (line: string) => void;
35
+ /** stdout sink for the human/JSON result (defaults to the log seam's declared non-log result exit `writeCliResult` — unscreened product output).
36
+ * A sink may be async: `runLocal` awaits what it returns at every call site, so the entry never returns (and `main()` never `process.exit`s)
37
+ * before the result bytes are handed to the stream — a piped stdout would otherwise lose the tail of a large result. A plain synchronous sink returns `void`.
38
+ * A sink that throws or rejects propagates out of `runLocal` (as a synchronous throw always did); one that never settles holds it. `writeCliResult` never rejects —
39
+ * it settles when the stream has taken the bytes (a reader that stops reading the pipe holds it until the reader reads or closes). */
40
+ print?: (text: string) => Promise<void> | void;
41
+ /** stderr sink for the short sentences (usage / refusals / "you still need to set …" guidance / the unfinished-stop footer; defaults to the log seam's text
42
+ * exit `writeLogText` — screened). Same law as {@link RunLocalDeps.print}: a sink may be async — `runLocal` (and the no-TTY notice of {@link createLocalApprover})
43
+ * awaits what it returns at every call site, so the entry never returns (and `main()` never `process.exit`s) before the sentence is handed to the stream — a piped
44
+ * stderr would otherwise cut the tail of a longer sentence. A plain synchronous sink returns `void`; a sink that throws or rejects propagates; one that never
45
+ * settles holds the entry. The default never rejects (it settles when the stream has taken the bytes). */
46
+ printErr?: (line: string) => Promise<void> | void;
39
47
  /** [ref] 件三: override the TTY detection behind the {@link createLocalApprover} seat
40
48
  * (defaults to `process.stdin.isTTY === true`) — lets a test drive BOTH arms deterministically. */
41
49
  isTty?: boolean;
@@ -105,8 +113,8 @@ export interface LocalApproverIo {
105
113
  readonly isTty: boolean;
106
114
  /** TTY 臂的问人器(默认 {@link promptYesNoOnTty} 的 readline y/N;`signal`=core 取消透传)。 */
107
115
  readonly askYesNo: (prompt: string, signal?: AbortSignal) => Promise<boolean>;
108
- /** 非 TTY 臂的告知面(stderr)。 */
109
- readonly printErr: (line: string) => void;
116
+ /** 非 TTY 臂的告知面(stderr)。可等:席在告知句交给流之后才交出拒答({@link RunLocalDeps.printErr} 同一条律)。 */
117
+ readonly printErr: (line: string) => Promise<void> | void;
110
118
  /** [ref]:本席**没有人被问**就拒了一只 ask(无 TTY / 参数展示不出)的事实出口 —— 退出码的判据之一(见 {@link unfinishedStopOf}):
111
119
  * 这一拒交给 core 的是部署政策拒(不停批、不记人拒),「活没干完」于是不再经 core 的人拒标记传出来,由本席自己说。 */
112
120
  readonly noteRefusedWithoutPerson: () => void;
package/dist/run-local.js CHANGED
@@ -1,14 +1,13 @@
1
1
  #!/usr/bin/env node
2
- import { DEFAULT_AT_MENTION, DEFAULT_MODEL_REF, resolveTaskModel } from "./model-select.js";
3
- import { defaultModelRefusal, modelUnavailableMessage } from "./model-entry-refusal.js";
2
+ import { DEFAULT_MODEL_REF, pickUserModel } from "./model-select.js";
3
+ import { defaultModelRefusal, modelNotAllowedMessage, modelUnavailableMessage } from "./model-entry-refusal.js";
4
4
  import { servedModelTableLeg } from "./model-select.js";
5
- import { createDurableAbsenceSeat } from "./observability/corrupt-read-seat.js";
6
- import { outwardPlane } from "./terminal.js";
5
+ import { outwardPlane, sealResultForExit } from "./terminal.js";
7
6
  import { join } from "node:path";
8
7
  import { realpathSync } from "node:fs";
9
8
  import { createInterface } from "node:readline/promises";
10
9
  import { fileURLToPath } from "node:url";
11
- import { BIDI_CONTROL_CHARS, Runner, uuidv7, FileStorageBackend, NodeExecutionEnv, TtlSessionStore, CenterPromptSource, FilePromptArtifactStore, FilePromptSourceStateStore, MemoryPromptArtifactStore, MemoryPromptSourceStateStore, defaultTaskRegistry } from "@sema-agent/core";
10
+ import { BIDI_CONTROL_CHARS, Runner, uuidv7, NodeExecutionEnv, TtlSessionStore, CenterPromptSource, FilePromptArtifactStore, FilePromptSourceStateStore, MemoryPromptArtifactStore, MemoryPromptSourceStateStore, defaultTaskRegistry } from "@sema-agent/core";
12
11
  import { readAskClassPair } from "./approval-card.js";
13
12
  import { singleUserAutoAcceptBaselineApplies } from "./approval.js";
14
13
  import { withUnattendedLeg } from "./unattended-permission-mode.js";
@@ -20,16 +19,18 @@ import { ForkRoutingSessionStore } from "./plugins/fork-routing-session-store.js
20
19
  import { taskWallClockSec } from "./task-workflow.js";
21
20
  import { applyCenterArtifact, centerSourceOnError } from "./capabilities/center-prompts.js";
22
21
  import { buildUnpricedCeilingNotice, isRosterGateArmed, loadConfig, logConfigDiagnostics, parseConfigProvider, parseNumOrFailNonNegative } from "./config.js";
23
- import { buildStoreOpenRefusalTail } from "./plugins/store-open-refusal.js";
24
- import { acquireLocalBackendWithWait } from "./plugins/store-lock-wait.js";
22
+ import { admitLocalDataRoot } from "./plugins/local-data-root-admission.js";
23
+ import { openLocalBackend } from "./plugins/store-backend.js";
24
+ import { runAndLogOneTimeMigrations } from "./plugins/one-time-migrations.js";
25
25
  import { configLocalRoot, createConfigProvider } from "./config-provider.js";
26
26
  import { CONFIG_DOMAIN_INVALID_NOTE, buildCandidateRejectedFields, buildCandidateRejectionNotes, judgeConfigCandidate } from "./web-admin-client/candidate-gate.js";
27
27
  import { buildUnreadConfigFileFields, buildUnreadConfigKeyFields } from "./web-admin-client/read-warnings.js";
28
- import { composeExecutionLane, settleHostLaneShell, warnReadDenyFloorUnkept } from "./boot/execution-lane.js";
28
+ import { composeExecutionLane, settleHostLaneShell, settleReadDenyFloor } from "./boot/execution-lane.js";
29
29
  import { judgeConsolidationValve } from "./boot/memory-consolidation.js";
30
30
  import { logConfigDirMigration, migrateLocalConfigDirectory } from "./config-d-migration.js";
31
31
  import { logEnvModelsMigration, runEnvModelsMigration } from "./config-root-migration.js";
32
32
  import { assertLocalConfigDirTrusted, ConfigDirUntrustedError } from "./config-dir-trust.js";
33
+ import { ConfigPullError, asConfigPullError, configPullFailureNote } from "./config-pull-failure.js";
33
34
  import { applyEffective, applyCenterReadFace, applySkillsManifest, resolveMcpServers, mcpForScenario, resolveA2aPeers, a2aForScenario } from "./web-admin-client/facade.js";
34
35
  import { hostExecutionEnvFactory } from "./plugins/remote-env-host.js";
35
36
  import { buildLaneHomeClaim, executionLaneOf } from "./execution-lane-caps.js";
@@ -43,12 +44,13 @@ import { createTaskListLane } from "./boot/task-list-lane.js";
43
44
  import { pickHandsRunner, withoutHands } from "./capabilities/hands-lane.js";
44
45
  import { HttpError, sessionIdShapeIssue } from "./security.js";
45
46
  import { createMemoryEngineIncidentSink } from "./memory-incident-sink.js";
46
- import { fileMemoryEngineRoot, memoryEngineBackendFor, memorySpecForRequest } from "./memory-scope.js";
47
+ import { announceMemoryLedgerForm, fileMemoryEngineRoot, memoryEngineBackendFor, memorySpecForRequest } from "./memory-scope.js";
47
48
  import { createMemoryScopeStores } from "./memory-scope-stores.js";
48
49
  import { createMemoryProjectLayers } from "./memory-project-layer.js";
49
50
  import { assertProjectLayerOwnable } from "./project-identity.js";
50
51
  import { declaredCredential } from "./model-route-gap.js";
51
52
  import { judgeServedModelRoute } from "./model-route-endpoint.js";
53
+ import { warnAssumedContextWindows } from "./context-window-notice.js";
52
54
  import { startMemorySyncRunner } from "./memory-sync-client.js";
53
55
  import { buildPricing, cappedCeiling, createTracer } from "./budget.js";
54
56
  import { createSharedRunnerDeps, installDefaultEngineNoticeSeat } from "./boot/runner-deps.js";
@@ -58,14 +60,16 @@ import { assertRetentionLaneWirable } from "./boot/retention-lane.js";
58
60
  import { createOrgMemoryAdmissionWiring } from "./boot/org-memory.js";
59
61
  import { assembleDeploymentMods } from "./boot/deployment-mods.js";
60
62
  import { createKeyResolver } from "./key-resolver.js";
61
- import { createLogger } from "./observability/logger.js";
63
+ import { createLogger, writeCliResult, writeLogText, ttyPromptOutput } from "./observability/logger.js";
62
64
  import { fatalExit } from "./boot/fatal-exit.js";
63
65
  import { installProcessExitBoundary } from "./boot/exit-boundary.js";
64
66
  import { createMetrics } from "./observability/metrics.js";
65
67
  import { installSecretEnvScrubRecorder } from "./observability/secret-env-scrub.js";
66
- import { createHostLspManager } from "./host-lsp-manager.js";
68
+ import { createLspManager } from "./host-lsp-manager.js";
67
69
  import { installOutboundDispatcher } from "./outbound-dispatcher.js";
68
- import { provisionSemaConfigDir } from "./sema-config-dir.js";
70
+ import { announceConfigRootEnclosingWorkspace, provisionSemaConfigDir } from "./sema-config-dir.js";
71
+ import { launchWorkspaceOf } from "./task-cwd.js";
72
+ import { DEPLOYMENT_SHAPE_PREDICATES } from "./deployment-shape.js";
69
73
  import { bindOwnCredentialsConfig, declareServerWithheldEnv } from "./server-secret-env.js";
70
74
  export function parseArgs(argv) {
71
75
  let objective;
@@ -207,12 +211,12 @@ export function createLocalApprover(io) {
207
211
  };
208
212
  return async (req, signal) => {
209
213
  if (!io.isTty) {
210
- io.printErr(`denied "${terminalSafeText(req.toolName)}" (${terminalSafeText(req.message)}) — this run-local invocation has no TTY, so there is nobody to ask. ${buildNoTtyRemedySentence(req)}`);
214
+ await io.printErr(`denied "${terminalSafeText(req.toolName)}" (${terminalSafeText(req.message)}) — this run-local invocation has no TTY, so there is nobody to ask. ${buildNoTtyRemedySentence(req)}`);
211
215
  return refuseWithoutPerson(NO_TTY_REFUSAL_REASON);
212
216
  }
213
217
  const argsShown = argsDisplayOf(req.args);
214
218
  if (!argsShown.ok) {
215
- io.printErr(`denied "${terminalSafeText(req.toolName)}" (${terminalSafeText(req.message)}) — its arguments cannot be displayed ` +
219
+ await io.printErr(`denied "${terminalSafeText(req.toolName)}" (${terminalSafeText(req.message)}) — its arguments cannot be displayed ` +
216
220
  `(${terminalSafeText(argsShown.reason)}), so there is nothing a person could review; refusing instead of asking.`);
217
221
  return refuseWithoutPerson(UNDISPLAYABLE_ARGS_REFUSAL_REASON);
218
222
  }
@@ -269,7 +273,7 @@ function inputAlreadyEnded(input) {
269
273
  const state = input;
270
274
  return state.readableEnded === true || state.destroyed === true;
271
275
  }
272
- export async function promptYesNoOnTty(prompt, signal, streams = { input: process.stdin, output: process.stderr }) {
276
+ export async function promptYesNoOnTty(prompt, signal, streams = { input: process.stdin, output: ttyPromptOutput() }) {
273
277
  if (signal?.aborted || inputAlreadyEnded(streams.input))
274
278
  return false;
275
279
  const rl = createInterface({ input: streams.input, output: streams.output });
@@ -321,22 +325,22 @@ export const RUN_LOCAL_CONFIG_SOURCE_REFUSAL = "CONFIG_PROVIDER=remote: run-loca
321
325
  "(center credential renewal, sealed model keys and the roster gate are assembled by the HTTP service). Unset CONFIG_PROVIDER or set " +
322
326
  "CONFIG_PROVIDER=local for this command, or run the HTTP service to use the center.";
323
327
  export async function runLocal(argv, deps = {}) {
324
- const print = deps.print ?? ((l) => console.log(l));
325
- const printErr = deps.printErr ?? ((l) => console.error(l));
328
+ const print = deps.print ?? writeCliResult;
329
+ const printErr = deps.printErr ?? ((l) => writeLogText("stderr", l));
326
330
  let args;
327
331
  try {
328
332
  args = parseArgs(argv);
329
333
  }
330
334
  catch (err) {
331
335
  if (err instanceof UsageError) {
332
- printErr(err.message);
336
+ await printErr(err.message);
333
337
  return 2;
334
338
  }
335
339
  throw err;
336
340
  }
337
341
  const configWord = parseConfigProvider();
338
342
  if (configWord === "remote") {
339
- printErr(RUN_LOCAL_CONFIG_SOURCE_REFUSAL);
343
+ await printErr(RUN_LOCAL_CONFIG_SOURCE_REFUSAL);
340
344
  return 2;
341
345
  }
342
346
  if (configWord === undefined)
@@ -355,36 +359,45 @@ export async function runLocal(argv, deps = {}) {
355
359
  installSecretEnvScrubRecorder({ logger, metrics });
356
360
  installDefaultEngineNoticeSeat(logger, metrics);
357
361
  logConfigDiagnostics(logger);
358
- provisionSemaConfigDir(loaded, logger);
362
+ let admission;
363
+ try {
364
+ admission = admitLocalDataRoot(root);
365
+ }
366
+ catch (e) {
367
+ await printErr(e instanceof Error ? e.message : String(e));
368
+ return 2;
369
+ }
359
370
  installOutboundDispatcher(logger);
360
371
  const providerInput = { provider: "local", localDir: root, localOwnerUid: loaded.configLocalOwnerUid };
361
372
  try {
362
373
  await assertLocalConfigDirTrusted({ root, declaredOwnerUid: loaded.configLocalOwnerUid });
363
374
  }
364
375
  catch (err) {
365
- printErr(err instanceof Error ? err.message : String(err));
376
+ await printErr(err instanceof Error ? err.message : String(err));
366
377
  return 2;
367
378
  }
368
- const envModelsMigration = { root, env: process.env, envTableIsPlaceholder: isRosterGateArmed(loaded.webAdmin) };
369
- logEnvModelsMigration(logger, envModelsMigration, await runEnvModelsMigration(envModelsMigration));
370
379
  logConfigDirMigration(logger, await migrateLocalConfigDirectory(root));
371
380
  let config;
372
381
  try {
373
382
  config = await composeExecutionLane(loaded, { configSource: "local", localRoot: root, logger, entry: RUN_LOCAL_LANE_ENTRY });
374
383
  }
375
384
  catch (err) {
376
- printErr(err instanceof Error ? err.message : String(err));
385
+ await printErr(err instanceof Error ? err.message : String(err));
377
386
  return 2;
378
387
  }
388
+ provisionSemaConfigDir(config, logger);
389
+ const envModelsMigration = { root, env: process.env, envTableIsPlaceholder: isRosterGateArmed(config.webAdmin) };
390
+ logEnvModelsMigration(logger, envModelsMigration, await runEnvModelsMigration(envModelsMigration));
379
391
  const configProvider = createConfigProvider(providerInput);
380
392
  const peerDesk = createPeerDesk({ log: logger });
381
393
  const rosterLease = peerDesk.lease("roster");
382
394
  let effective;
383
395
  let candidatePrompts;
384
396
  let candidateRejectionNotes;
385
- let applying = false;
386
397
  try {
387
- const r = await configProvider.fetchEffective(undefined);
398
+ const r = await configProvider.fetchEffective(undefined).catch((err) => {
399
+ throw asConfigPullError(err);
400
+ });
388
401
  if (r) {
389
402
  const verdict = judgeConfigCandidate(r);
390
403
  if (verdict.verdict === "rejected") {
@@ -400,7 +413,6 @@ export async function runLocal(argv, deps = {}) {
400
413
  logger.warn("config_unread_key", buildUnreadConfigKeyFields(k, configProvider.kind === "local" ? root : undefined));
401
414
  for (const d of r.droppedEntries ?? [])
402
415
  logger.warn("config_entry_dropped", { domain: d.domain, entry: d.entry, reasonCode: d.reasonCode, error: d.error, version: r.effective.version, phase: "boot", note: "this one entry failed its domain schema and was dropped on its own — the rest of the candidate applies (per-entry tolerance); fix the named entry to bring it back" });
403
- applying = true;
404
416
  applyEffective(config, r.effective, logger, { leg: "boot", catalogSource: r.catalogSource });
405
417
  effective = r.effective;
406
418
  candidatePrompts = verdict.prompts;
@@ -415,13 +427,13 @@ export async function runLocal(argv, deps = {}) {
415
427
  }
416
428
  catch (err) {
417
429
  if (err instanceof ConfigDirUntrustedError) {
418
- printErr(err.message);
430
+ await printErr(err.message);
419
431
  return 2;
420
432
  }
421
- if (applying)
422
- logger.warn("config_apply_refused", { source: configProvider.kind, err: String(err), note: "the candidate failed to apply at boot — running on env (run-local has no LKG); none of the candidate's domains is adopted; this is not a reachability failure" });
433
+ if (err instanceof ConfigPullError)
434
+ logger.warn("config_source_unreachable_using_env", { source: configProvider.kind, cause: err.pullCause, err: String(err), note: configPullFailureNote(err.pullCause) });
423
435
  else
424
- logger.warn("config_source_unreachable_using_env", { source: configProvider.kind, err: String(err) });
436
+ logger.warn("config_apply_refused", { source: configProvider.kind, err: String(err), note: "the candidate failed to apply at boot — running on env (run-local has no LKG); none of the candidate's domains is adopted; this is not a reachability failure" });
425
437
  }
426
438
  const noDefaultModel = defaultModelRefusal({ models: config.models, modelRefusals: config.modelRefusals, candidateRejectionNotes }, servedModelTableLeg(config));
427
439
  if (noDefaultModel !== undefined)
@@ -429,6 +441,7 @@ export async function runLocal(argv, deps = {}) {
429
441
  const routeVerdict = judgeServedModelRoute(config, { envTableIsPlaceholder: false });
430
442
  if (routeVerdict !== undefined)
431
443
  throw new Error(routeVerdict.reason);
444
+ warnAssumedContextWindows(config, logger, { envTableIsPlaceholder: false });
432
445
  const unpricedCeiling = buildUnpricedCeilingNotice(config.models, config);
433
446
  if (unpricedCeiling)
434
447
  logger.warn(unpricedCeiling.event, unpricedCeiling.fields);
@@ -436,8 +449,8 @@ export async function runLocal(argv, deps = {}) {
436
449
  assertGuardPatternsUsable(config);
437
450
  }
438
451
  catch (e) {
439
- printErr(e instanceof Error ? e.message : String(e));
440
- printErr(`(local config root: ${root} — fix it in ${join(root, ".env")} or your shell env; \`SENSITIVE_WRITE_PATTERNS=off\` disables the guard set)`);
452
+ await printErr(e instanceof Error ? e.message : String(e));
453
+ await printErr(`(local config root: ${root} — fix it in ${join(root, ".env")} or your shell env; \`SENSITIVE_WRITE_PATTERNS=off\` disables the guard set)`);
441
454
  return 2;
442
455
  }
443
456
  const ungatedCompensation = buildOnlySensitiveBaselineWarning(config, {
@@ -452,47 +465,53 @@ export async function runLocal(argv, deps = {}) {
452
465
  if (!deps.brain) {
453
466
  const missing = missingGatewayRequirements(config);
454
467
  if (missing.length > 0) {
455
- printErr("cannot run: you still need to set:");
468
+ await printErr("cannot run: you still need to set:");
456
469
  for (const m of missing)
457
- printErr(` - ${m}`);
458
- printErr(`(local config root: ${root} — put them in ${join(root, ".env")} or your shell env)`);
470
+ await printErr(` - ${m}`);
471
+ await printErr(`(local config root: ${root} — put them in ${join(root, ".env")} or your shell env)`);
459
472
  return 2;
460
473
  }
461
474
  }
462
475
  const brain = deps.brain ?? createBrain(config, deps.fetchImpl ? { fetchImpl: deps.fetchImpl } : {});
463
476
  const pricing = buildPricing(config.models);
464
- let fileBackend;
477
+ let backend;
478
+ try {
479
+ backend = openLocalBackend({ ...config, localDataRoot: root }, { lane: "run-local", admission, onWarn: (msg, fields) => logger.warn(msg, fields), onError: (msg, fields) => logger.error(msg, fields) });
480
+ }
481
+ catch (e) {
482
+ await printErr(e instanceof Error ? e.message : String(e));
483
+ return 2;
484
+ }
465
485
  try {
466
- fileBackend = acquireLocalBackendWithWait(() => new FileStorageBackend({
467
- root,
468
- ...(config.fileHistory !== undefined ? { fileHistory: config.fileHistory } : {}),
469
- onCorruptRead: createDurableAbsenceSeat(logger.warn.bind(logger), root, "file-snapshot = a snapshot or scope read as missing"),
470
- }), config.storeLockWaitMs, (fields) => logger.warn("store_dir_lock_wait", { ...fields }));
486
+ await backend.ensureSchema();
487
+ await runAndLogOneTimeMigrations(logger, backend);
471
488
  }
472
489
  catch (e) {
473
- printErr(`cannot open local data dir ${root}: ${e instanceof Error ? e.message : String(e)}`);
474
- const tail = buildStoreOpenRefusalTail(e, "run-local");
475
- if (tail !== undefined)
476
- printErr(tail);
490
+ await printErr(e instanceof Error ? e.message : String(e));
491
+ await backend.close();
477
492
  return 2;
478
493
  }
479
- const sessionStore = fileBackend.sessionStore;
494
+ const sessionStore = backend.session();
495
+ const engineStores = backend.engineFileStores();
480
496
  const keyResolver = createKeyResolver(config.modelApiKeyEnv, process.env, config.modelApiKeys);
481
497
  const hostRx = config.remoteExec.provider === "host" ? config.remoteExec : undefined;
482
- const workspaceDir = args.workspace ?? hostRx?.workspaceBase ?? process.cwd();
498
+ const launchWorkspace = launchWorkspaceOf(config, args.workspace);
499
+ const workspaceDir = launchWorkspace.dir;
500
+ announceConfigRootEnclosingWorkspace(config, logger, launchWorkspace);
483
501
  await settleHostLaneShell(config, logger);
484
- warnReadDenyFloorUnkept(config, logger);
502
+ settleReadDenyFloor(config, logger);
485
503
  const homeDirSeat = buildLaneHomeClaim(config);
486
504
  const executionEnvFactory = hostRx
487
505
  ? hostExecutionEnvFactory({
488
506
  workspaceDir,
489
507
  ...homeDirSeat,
490
- backgroundShell: config.requirePrincipal !== true,
508
+ backgroundShell: DEPLOYMENT_SHAPE_PREDICATES.backgroundShell.holds(config),
491
509
  ...(hostRx.commandTimeoutMs != null ? { commandTimeoutMs: hostRx.commandTimeoutMs } : {}),
492
510
  })
493
511
  : undefined;
494
- const lspManager = hostRx && config.lspHostEnabled && config.requirePrincipal !== true ? createHostLspManager(config, (event, fields) => logger.info(event, fields)) : undefined;
512
+ const lspManager = createLspManager(config, (event, fields) => logger.info(event, fields));
495
513
  const engineDataRoot = fileMemoryEngineRoot(config, root);
514
+ await announceMemoryLedgerForm(config, root, logger);
496
515
  const fileEngine = memoryEngineBackendFor(config, root, memoryEngineIncident);
497
516
  const memoryEngine = fileEngine !== undefined
498
517
  ? createMemoryScopeStores({ backend: fileEngine.backend, root: engineDataRoot, onIncident: memoryEngineIncident })
@@ -501,9 +520,9 @@ export async function runLocal(argv, deps = {}) {
501
520
  judgeConsolidationValve({ config, memoryEngine });
502
521
  }
503
522
  catch (err) {
504
- printErr(err instanceof Error ? err.message : String(err));
523
+ await printErr(err instanceof Error ? err.message : String(err));
505
524
  void lspManager?.dispose();
506
- await fileBackend.dispose();
525
+ await backend.close();
507
526
  return 2;
508
527
  }
509
528
  let memorySync;
@@ -565,9 +584,9 @@ export async function runLocal(argv, deps = {}) {
565
584
  orgMemoryAdmission = createOrgMemoryAdmissionWiring({ config, logger, metrics });
566
585
  }
567
586
  catch (e) {
568
- printErr(`MEMORY_ORG_DIRECTORY_JSON is invalid: ${e instanceof Error ? e.message : String(e)}`);
569
- printErr(`(local config root: ${root} — fix it in ${join(root, ".env")} or your shell env, or unset it)`);
570
- await fileBackend.dispose();
587
+ await printErr(`MEMORY_ORG_DIRECTORY_JSON is invalid: ${e instanceof Error ? e.message : String(e)}`);
588
+ await printErr(`(local config root: ${root} — fix it in ${join(root, ".env")} or your shell env, or unset it)`);
589
+ await backend.close();
571
590
  return 2;
572
591
  }
573
592
  assertRetentionLaneWirable({
@@ -575,8 +594,8 @@ export async function runLocal(argv, deps = {}) {
575
594
  executor: undefined,
576
595
  stores: [
577
596
  { name: "sessionStore", store: sessionStore },
578
- { name: "checkpointStore", store: fileBackend.checkpointStore },
579
- { name: "toolResultStore", store: fileBackend.toolResultStore },
597
+ { name: "checkpointStore", store: engineStores.checkpointStore },
598
+ { name: "toolResultStore", store: backend.toolResult() },
580
599
  ],
581
600
  locked: (config.lockedConfigKeys ?? []).includes("retentionPolicy"),
582
601
  });
@@ -585,8 +604,8 @@ export async function runLocal(argv, deps = {}) {
585
604
  logger,
586
605
  retentionStores: [
587
606
  { name: "sessionStore", store: sessionStore },
588
- { name: "checkpointStore", store: fileBackend.checkpointStore },
589
- { name: "toolResultStore", store: fileBackend.toolResultStore },
607
+ { name: "checkpointStore", store: engineStores.checkpointStore },
608
+ { name: "toolResultStore", store: backend.toolResult() },
590
609
  ],
591
610
  retentionExecutor: null,
592
611
  });
@@ -598,21 +617,22 @@ export async function runLocal(argv, deps = {}) {
598
617
  engineDataRoot,
599
618
  governanceSeams,
600
619
  logger,
601
- hands: { commitCoAuthor: "Sema <noreply@vivi-ai.com>" },
620
+ commitCoAuthor: "Sema <noreply@vivi-ai.com>",
602
621
  brain,
603
622
  pricing,
604
623
  tracer: createTracer(metrics),
605
624
  promptSource,
606
625
  executionEnvFactory,
607
626
  lspManager,
608
- backgroundAgentStore: fileBackend.backgroundAgentStore,
609
- mailboxStore: fileBackend.mailboxStore,
610
- rosterStore: fileBackend.rosterStore,
627
+ backgroundAgentStore: engineStores.backgroundAgentStore,
628
+ mailboxStore: engineStores.mailboxStore,
629
+ rosterStore: engineStores.rosterStore,
611
630
  deploymentMods,
612
- toolResultStore: fileBackend.toolResultStore,
631
+ toolResultStore: backend.toolResult(),
632
+ fileHistoryStore: undefined,
613
633
  checkpointStore: undefined,
614
- sessionPolicyStore: fileBackend.sessionPolicyStore,
615
- usageWindowStore: config.usageWindows ? fileBackend.usageWindowStore : undefined,
634
+ sessionPolicyStore: backend.sessionPolicy(),
635
+ usageWindowStore: config.usageWindows ? backend.fileUsageWindowStore() : undefined,
616
636
  orgMemoryAdmission,
617
637
  sharedMemoryStores: undefined,
618
638
  mcpRevocations: undefined,
@@ -644,7 +664,7 @@ export async function runLocal(argv, deps = {}) {
644
664
  const scenarioDeps = {
645
665
  runner, subRunner, model: DEFAULT_MODEL_REF, skills, repoClient, logger,
646
666
  ...(webSearch ? { webSearch } : {}),
647
- backgroundAgentStore: fileBackend.backgroundAgentStore,
667
+ backgroundAgentStore: engineStores.backgroundAgentStore,
648
668
  taskListStoreFor: taskListLane.storeFor,
649
669
  };
650
670
  const scenarios = buildScenarios(scenarioDeps);
@@ -661,21 +681,25 @@ export async function runLocal(argv, deps = {}) {
661
681
  }
662
682
  catch (err) {
663
683
  if (err instanceof HttpError) {
664
- printErr(`cannot run scenario "${scenarioName}": ${err.message}`);
684
+ await printErr(`cannot run scenario "${scenarioName}": ${err.message}`);
665
685
  if (scenarioName === "scan")
666
- printErr("(the `scan` scenario needs a git API base URL and a repo — run-local cannot supply a repo; use the default scenario)");
686
+ await printErr("(the `scan` scenario needs a git API base URL and a repo — run-local cannot supply a repo; use the default scenario)");
667
687
  void lspManager?.dispose();
668
- await fileBackend.dispose();
688
+ await backend.close();
669
689
  return 2;
670
690
  }
671
691
  throw err;
672
692
  }
673
- const mention = resolveTaskModel(undefined, args.objective, config.models, DEFAULT_AT_MENTION, config.modelRefusals);
674
- if (mention.unavailable !== undefined) {
675
- const { requested, name, refusal } = mention.unavailable;
676
- printErr(`cannot run: ${modelUnavailableMessage("@-mention", requested, name, refusal)}`);
693
+ const { picked: mention } = pickUserModel(config, undefined, args.objective);
694
+ const mentionRefusal = mention.unavailable !== undefined
695
+ ? modelUnavailableMessage("@-mention", mention.unavailable.requested, mention.unavailable.name, mention.unavailable.refusal)
696
+ : mention.notAllowed !== undefined
697
+ ? modelNotAllowedMessage("@-mention", mention.notAllowed.requested, mention.notAllowed.resolved)
698
+ : undefined;
699
+ if (mentionRefusal !== undefined) {
700
+ await printErr(`cannot run: ${mentionRefusal}`);
677
701
  void lspManager?.dispose();
678
- await fileBackend.dispose();
702
+ await backend.close();
679
703
  return 2;
680
704
  }
681
705
  const scope = args.user ?? "local";
@@ -684,9 +708,9 @@ export async function runLocal(argv, deps = {}) {
684
708
  assertProjectLayerOwnable(scope, "--user");
685
709
  }
686
710
  catch (err) {
687
- printErr(err instanceof Error ? err.message : String(err));
711
+ await printErr(err instanceof Error ? err.message : String(err));
688
712
  void lspManager?.dispose();
689
- await fileBackend.dispose();
713
+ await backend.close();
690
714
  return 2;
691
715
  }
692
716
  }
@@ -732,7 +756,7 @@ export async function runLocal(argv, deps = {}) {
732
756
  const deadline = Date.now() + 5_000;
733
757
  try {
734
758
  for (;;) {
735
- const running = (await fileBackend.backgroundAgentStore.listByScope(scope, { status: "running" })).length;
759
+ const running = (await engineStores.backgroundAgentStore.listByScope(scope, { status: "running" })).length;
736
760
  if (running === 0)
737
761
  return;
738
762
  if (Date.now() >= deadline) {
@@ -753,30 +777,33 @@ export async function runLocal(argv, deps = {}) {
753
777
  result = await taskRunner.runTask(spec);
754
778
  }
755
779
  catch (err) {
756
- printErr(`task crashed: ${err instanceof Error ? err.message : String(err)}`);
780
+ await printErr(`task crashed: ${err instanceof Error ? err.message : String(err)}`);
757
781
  await settleSessionBackground();
758
782
  runner.sessions.dispose();
759
783
  subRunner.sessions.dispose();
760
784
  void lspManager?.dispose();
761
- await fileBackend.dispose();
785
+ await backend.close();
762
786
  return 1;
763
787
  }
764
788
  const unfinishedStop = unfinishedStopOf(result, refusedWithoutPerson);
789
+ const shown = sealResultForExit(result);
765
790
  if (args.json) {
766
- print(JSON.stringify(result, null, 2));
791
+ await print(JSON.stringify(shown, null, 2));
767
792
  }
768
- else if (result.terminal.kind === "completed") {
769
- print(result.result);
793
+ else if (shown.terminal.kind === "completed") {
794
+ await print(shown.result);
770
795
  if (unfinishedStop !== undefined)
771
- printErr(buildUnfinishedStopFooter(unfinishedStop, sessionId));
796
+ await printErr(buildUnfinishedStopFooter(unfinishedStop, sessionId));
772
797
  }
773
798
  else {
774
- const plane = outwardPlane(result.terminal);
775
- const salvage = result.result || result.salvagedOutput || plane.blockedReason || "";
799
+ const plane = outwardPlane(shown.terminal);
800
+ const salvage = shown.result || shown.salvagedOutput || plane.blockedReason || "";
776
801
  if (salvage)
777
- print(salvage);
778
- printErr(`task ${plane.status}${plane.errorCode ? ` (${plane.errorCode})` : ""}${plane.errorMessage ? `: ${plane.errorMessage}` : ""}`);
802
+ await print(salvage);
803
+ await printErr(`task ${plane.status}${plane.errorCode ? ` (${plane.errorCode})` : ""}${plane.errorMessage ? `: ${plane.errorMessage}` : ""}`);
779
804
  }
805
+ if (!args.json && shown.readDenyFloor !== undefined)
806
+ await printErr(shown.readDenyFloor.message);
780
807
  if (result.terminal.kind !== "completed" || unfinishedStop !== undefined)
781
808
  exitCode = 1;
782
809
  if (memorySync)
@@ -785,7 +812,7 @@ export async function runLocal(argv, deps = {}) {
785
812
  runner.sessions.dispose();
786
813
  subRunner.sessions.dispose();
787
814
  void lspManager?.dispose();
788
- await fileBackend.dispose();
815
+ await backend.close();
789
816
  return exitCode;
790
817
  }
791
818
  const RUN_LOCAL_SIGNAL_EXIT_CODE = { SIGINT: 130, SIGTERM: 143 };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * `REAP_RUN_STALE_SEC` 的缺省值(秒)—— 唯一字面量。读者两处:配置装配(`config.ts`,env 缺席时)与 run 店的缺省判活窗
3
+ * (`plugins/store-contracts.ts` 的 {@link RUN_STALL_DEFAULT_WIRING}:不经后端装配、直接构造的店用它;生产装配一律递活配置的 getter)。
4
+ * 纯叶:零 import(配置层不得值引 plugins 层,所以它不住在店的契约文件里)。
5
+ */
6
+ export declare const RUN_STALE_SEC_DEFAULT = 120;
7
+ //# sourceMappingURL=run-stale-default.d.ts.map
@@ -0,0 +1,2 @@
1
+ export const RUN_STALE_SEC_DEFAULT = 120;
2
+ //# sourceMappingURL=run-stale-default.js.map