@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
@@ -4,7 +4,7 @@
4
4
  # (sema cloud deploy 渲染用,同一交互协议的 infeasible:{reason,suggestion} 字段)。
5
5
  # 只读探测,零改动,幂等。退出码:0=可部署(可能有 WARN),1=存在 BLOCK 项。
6
6
  set -u
7
- # >>> 自身目录(五个入口逐字同一段)
7
+ # [[[ 自身目录(五个入口逐字同一段)
8
8
  # HERE = 本脚本**真实文件**所在目录。经 npm bin 软链(node_modules/.bin/sema-up)调用时 $0 是软链路径,
9
9
  # 按它的目录找 lib/ 会落进 .bin/ ⇒ 逐跳解软链。只用不带参数的 readlink(macOS 自带 bash 3.2 / BSD readlink 没有 -f)。
10
10
  # 库要在知道 HERE 之后才找得到,所以这段不能收进库里:五个入口各持同一段,逐字一致由测试判。
@@ -16,11 +16,13 @@ while [ -L "$_self" ]; do
16
16
  done
17
17
  HERE="$(cd "$(dirname "$_self")" && pwd)"
18
18
  unset _self _hops _dir
19
- # <<< 自身目录
19
+ # ]]] 自身目录
20
20
  # 自动数据根的路径形只在 lib/dataroot.sh 定义一次:下面「多盘机」建议句与 sema-up 自动选的根同一条规则。
21
21
  . "$HERE/lib/dataroot.sh"
22
22
  # 取值旗的形:判据与词表同 sema-up.sh 一处定义。
23
23
  . "$HERE/lib/flagshape.sh"
24
+ # 把一段文本按行 / 按词 / 按分隔字符读进变量的三只函数(不用 here-document / here-string)。
25
+ . "$HERE/lib/shell-text.sh"
24
26
  log() { printf '[preflight] %s\n' "$*" >&2; }
25
27
 
26
28
  JSON=false
@@ -111,13 +113,13 @@ else add OK disk "${DISK_GB}G avail /" "" ""; fi
111
113
  BEST_MNT="" BEST_GB=0
112
114
  if [ "$OS_ID" = "macos" ]; then DF_OUT="$(df -g 2>/dev/null | awk '$1 ~ /^\/dev\// {print $9"\t"$4}')"
113
115
  else DF_OUT="$(df -BG --output=source,avail,target 2>/dev/null | awk '$1 ~ /^\/dev\// {gsub(/G/,"",$2); print $3"\t"$2}')"; fi
114
- while IFS="$(printf '\t')" read -r mnt avail; do
116
+ df_rest="$DF_OUT"$'\n'
117
+ while text_pop_line df_rest df_line; do
118
+ IFS=$'\t' text_words "$df_line" mnt avail
115
119
  [ -z "$mnt" ] && continue
116
120
  case "$mnt" in /boot*|/efi*|/System/*|/private/var/vm) continue ;; esac
117
121
  if [ "${avail:-0}" -gt "$BEST_GB" ] 2>/dev/null; then BEST_GB="$avail"; BEST_MNT="$mnt"; fi
118
- done <<EOF_DF
119
- $DF_OUT
120
- EOF_DF
122
+ done
121
123
  if [ -n "$BEST_MNT" ] && [ "$BEST_MNT" != "/" ] && [ "$BEST_GB" -gt "${DISK_GB:-0}" ]; then
122
124
  add WARN disk-alt "$BEST_MNT ${BEST_GB}G avail" "存在比 / 更大的数据盘(多盘机)" "--data-root=$(dataroot_for_disk "$BEST_MNT" "$PROJECT")(sema-up 未显式指定时会自动选它;数据根按项目分)"
123
125
  fi
@@ -172,7 +174,7 @@ if $JSON; then
172
174
  printf '{"profile":"%s","findings":[' "$PROFILE"
173
175
  first=true
174
176
  for f in "${FINDINGS[@]}"; do
175
- IFS='|' read -r lv ck rs why fix <<<"$f"
177
+ text_split '|' "$f" lv ck rs why fix
176
178
  [ "$lv" = "BLOCK" ] && BLOCKS=$((BLOCKS+1))
177
179
  $first || printf ','
178
180
  first=false
@@ -183,7 +185,7 @@ if $JSON; then
183
185
  else
184
186
  printf '── sema-up preflight(profile=%s)──\n' "$PROFILE"
185
187
  for f in "${FINDINGS[@]}"; do
186
- IFS='|' read -r lv ck rs why fix <<<"$f"
188
+ text_split '|' "$f" lv ck rs why fix
187
189
  [ "$lv" = "BLOCK" ] && BLOCKS=$((BLOCKS+1))
188
190
  printf '[%-5s] %-16s %s' "$lv" "$ck" "$rs"
189
191
  [ -n "$why" ] && printf ' — %s' "$why"
@@ -14,7 +14,7 @@
14
14
  # 本机装 k3s(后两态=kube-up.sh,helm chart 驱动)
15
15
  set -euo pipefail
16
16
 
17
- # >>> 自身目录(五个入口逐字同一段)
17
+ # [[[ 自身目录(五个入口逐字同一段)
18
18
  # HERE = 本脚本**真实文件**所在目录。经 npm bin 软链(node_modules/.bin/sema-up)调用时 $0 是软链路径,
19
19
  # 按它的目录找 lib/ 会落进 .bin/ ⇒ 逐跳解软链。只用不带参数的 readlink(macOS 自带 bash 3.2 / BSD readlink 没有 -f)。
20
20
  # 库要在知道 HERE 之后才找得到,所以这段不能收进库里:五个入口各持同一段,逐字一致由测试判。
@@ -26,7 +26,7 @@ while [ -L "$_self" ]; do
26
26
  done
27
27
  HERE="$(cd "$(dirname "$_self")" && pwd)"
28
28
  unset _self _hops _dir
29
- # <<< 自身目录
29
+ # ]]] 自身目录
30
30
  # `.env` 文法(写口 envf_representable + envf_encode / 读口 envf_canonical_line)的唯一定义 —— 写读两半从这一处取判据。
31
31
  . "$HERE/lib/envf.sh"
32
32
  # 数据根归属与「壳怎么接」的渲染各一处定义;preflight / kube-up / cluster-up 读同一份。
@@ -36,6 +36,8 @@ unset _self _hops _dir
36
36
  . "$HERE/lib/flagshape.sh"
37
37
  # 对象存储桶的唯一表(kube-up.sh / cluster-up.sh / smoke.sh 同读这一张)。
38
38
  . "$HERE/lib/buckets.sh"
39
+ # 把一段文本按行 / 按词 / 按分隔字符读进变量的三只函数(不用 here-document / here-string)。
40
+ . "$HERE/lib/shell-text.sh"
39
41
  # 日志一律打到 stderr(stdout 留给 --interactive=json 的协议行)。定义在最前面:参数一解析完就要判形,那时下面的函数都还没定义。
40
42
  log() { printf '[sema-up] %s\n' "$*" >&2; }
41
43
  # 执行车道表的唯一读者。定义在**最前面**:`--help` 的词表也从表渲(手抄的词表会在加一条
@@ -51,43 +53,16 @@ AGENT_PG_HOST="" AGENT_PG_PASSWORD="" AGENT_MINIO_ENDPOINT="" AGENT_MINIO_PASSWO
51
53
  PG_URL="${PG_URL:-}" S3_ENDPOINT="${S3_ENDPOINT:-}" S3_ACCESS_KEY="${S3_ACCESS_KEY:-}" S3_SECRET_KEY="${S3_SECRET_KEY:-}"
52
54
 
53
55
  usage() {
54
- cat <<'EOF'
55
- 用法: sema-up.sh [选项]
56
- EOF
56
+ cat "$HERE/lib/usage-head.txt"
57
57
  # 闭集词表从 lib/flagshape.sh 渲(单一属主):加 / 删一个词,这几行自己跟着变
58
58
  printf ' --profile=P %s\n' "$(printf '%s' "$FLAG_WORDS_PROFILE" | tr ' ' '|')"
59
59
  printf ' --users=U %s\n' "$(printf '%s' "$FLAG_WORDS_USERS" | tr ' ' '|')"
60
60
  printf ' --region=R %s\n' "$(printf '%s' "$FLAG_WORDS_REGION" | tr ' ' '|')"
61
- cat <<'EOF'
62
- --interactive=json 机器可读交互协议(sema cloud deploy 渲染用)
63
- --yes 全默认无人值守(与 -f 组合)
64
- -f FILE site 配置(env 形式;machines.yaml=固定形状 mini-parser)
65
- --project=NAME compose project 名(默认 sema;并行试验用)。也是工作目录 ~/.sema-up/<名> 与自动数据根
66
- <盘>/sema-data/<名> 的一段 ⇒ 只收小写字母 / 数字 / - / _,首字符是字母或数字
67
- --data-root=DIR 数据卷 bind 到这条目录(缺省:多盘机自动选大盘 <盘>/sema-data/<project>);首装落定不漂移,
68
- 一条数据根只归一个项目(根里的 .sema-up-project 标记,别的项目的根一律拒)
69
- --dry-run 只打印将执行计划(不写 .env、不起任何容器)
70
- --port=N 服务端口(默认 8090);--pg-port/--minio-port/--minio-console-port 同理(端口旗只收 1–65535 的整数)
71
- --gateway=URL --model=ID --model-key=K 模型面(带 agent 的档必需)
72
- EOF
61
+ cat "$HERE/lib/usage-flags.txt"
73
62
  # 词表从 lib/lanes.json 渲(单一属主):加/删一条车道,这行自己跟着变
74
63
  printf ' --sandbox=LANE %s(full-single / local-plus;kube 路径不选词,runtimeClass 自动)\n' \
75
64
  "$(lanes choices | tr '\n' '|' | sed 's/|$//')"
76
- cat <<'EOF'
77
- --registry=true|false 配置中心网站(默认 true;local-plus 默认 false;只收这两个词)
78
- --registry-image=REF sema-registry 镜像(registry=true 必需,可 -f 配置 SEMA_REGISTRY_IMAGE)
79
- --git=MODE none(默认)|provision(一键自建 Gitea)|connect(接已有 git)
80
- --git-url=URL --git-token=T git=connect 的已有服务(Gitea/GitHub/任意三方 git;自动识别,证书不校验)
81
- --pg-url=URL 外接第三方 PG(postgres://user:pass@host:port/db;连不上会先检,不部署本地 PG)
82
- --s3-endpoint=URL --s3-access-key=K --s3-secret-key=S 外接第三方 S3(兼容协议即可;不部署本地 MinIO)
83
- --git-http-port=N --git-ssh-port=N 自建 Gitea 端口(默认 3300/2222)
84
- --gitea-image=REF 自建 Gitea 镜像(默认 gitea/gitea:1.24)
85
- --pg-host=H --pg-password=P --minio-endpoint=URL --minio-password=P local-plus 远端数据面
86
- --kube=MODE full-cluster 单机两态:existing(已有 kubeconfig)|k3s(本机装 k3s)
87
- --kubeconfig=PATH --kube=existing 的 kubeconfig(缺省 $KUBECONFIG 或 ~/.kube/config)
88
- --teardown 卸载本 project(数据卷保留;--teardown-volumes 连卷删)
89
- --skip-preflight 跳过预检(不建议)
90
- EOF
65
+ cat "$HERE/lib/usage-tail.txt"
91
66
  }
92
67
 
93
68
  TEARDOWN_VOLUMES=false
@@ -334,7 +309,7 @@ if $TEARDOWN; then
334
309
  log "⛔ 卸载未完全成功。下一步:docker ps -a --filter label=com.docker.compose.project=$PROJECT 手查残留"
335
310
  exit 1
336
311
  fi
337
- log "已卸载 project=$PROJECT $($TEARDOWN_VOLUMES && echo '(含数据卷)' || echo '(数据卷保留:pgdata/miniodata/registrydata/gitdata)')"
312
+ log "已卸载 project=$PROJECT $($TEARDOWN_VOLUMES && echo '(含数据卷)' || echo '(数据卷保留:pgdata/miniodata/registrydata/gitdata/sealedkey)')"
338
313
  if $TEARDOWN_VOLUMES && [ -n "$DATA_ROOT" ]; then
339
314
  # 删不删盘上文件看这条根归谁(标记是别的项目 / 没有标记 ⇒ 不教 rm -rf)。
340
315
  dataroot_teardown_hint "$DATA_ROOT"
@@ -714,11 +689,11 @@ if [ "$PROFILE" = "full-single" ] || [ "$PROFILE" = "local-plus" ]; then
714
689
  # **resetk 不是 setk**:`setk` 见键在就不改,而升级路径上最常见的既有值恰是空串 `REMOTE_EXEC=`
715
690
  # (旧 compose 的 `${REMOTE_EXEC:-}` 渲出来的)——用 setk 就永远修不好那批无手部署。冲突检测在
716
691
  # 上面的车道块里已做过(非空且不同 ⇒ 早已拒),所以这里的重写只会落在「空串 / 同值」两种情形上。
717
- while IFS='=' read -r _k _v; do
692
+ lane_rest="$LANE_ENV"$'\n'
693
+ while text_pop_line lane_rest lane_line; do
694
+ text_split = "$lane_line" _k _v
718
695
  [ -n "$_k" ] && resetk "$_k" "$_v"
719
- done <<EOF_LANE
720
- $LANE_ENV
721
- EOF_LANE
696
+ done
722
697
  fi
723
698
  if [ "$PROFILE" = "local-plus" ]; then
724
699
  setk AGENT_PG_HOST "$AGENT_PG_HOST"
@@ -740,7 +715,7 @@ p=u.urlsplit(os.environ["PG_URL"])
740
715
  if p.scheme not in ("postgres","postgresql") or not p.hostname: raise SystemExit("bad")
741
716
  print(p.hostname, p.port or 5432, p.username or "postgres", p.password or "", (p.path or "/postgres").lstrip("/"))' 2>/dev/null)" \
742
717
  || { log "⛔ --pg-url 解析失败(期望 postgres://user:pass@host:port/db):已按 *** 隐去凭据"; exit 1; }
743
- read -r EXT_PG_HOST EXT_PG_PORT EXT_PG_USER EXT_PG_PW EXT_PG_DB <<<"$PGP"
718
+ text_words "$PGP" EXT_PG_HOST EXT_PG_PORT EXT_PG_USER EXT_PG_PW EXT_PG_DB
744
719
  resetk AGENT_PG_HOST "$EXT_PG_HOST"; resetk AGENT_PG_PORT "$EXT_PG_PORT"
745
720
  resetk AGENT_PG_USER "$EXT_PG_USER"; resetk AGENT_PG_DATABASE "$EXT_PG_DB"
746
721
  resetk PG_PASSWORD "$EXT_PG_PW"
@@ -1106,7 +1081,7 @@ else
1106
1081
  echo " ⚠ 待人工 $n"
1107
1082
  done
1108
1083
  echo " 凭据 $ENVF(0600;全部密码/token 常驻此文件,不进日志)"
1109
- echo " 数据卷 $(printf ',%s,' "$COMPOSE_PROFILES" | grep -q ',pg,' && printf '%s_pgdata ' "$PROJECT")$(printf ',%s,' "$COMPOSE_PROFILES" | grep -q ',s3,' && printf '%s_miniodata ' "$PROJECT")$([ "$REGISTRY_ENABLED" = "true" ] && printf '%s_registrydata ' "$PROJECT")$([ "$GIT_MODE" = "provision" ] && printf '%s_gitdata' "$PROJECT")$([ -n "$DATA_ROOT" ] && printf '(bind 落 %s)' "$DATA_ROOT")"
1084
+ echo " 数据卷 $(printf ',%s,' "$COMPOSE_PROFILES" | grep -q ',pg,' && printf '%s_pgdata ' "$PROJECT")$(printf ',%s,' "$COMPOSE_PROFILES" | grep -q ',s3,' && printf '%s_miniodata ' "$PROJECT")$([ "$REGISTRY_ENABLED" = "true" ] && printf '%s_registrydata ' "$PROJECT")$([ "$GIT_MODE" = "provision" ] && printf '%s_gitdata ' "$PROJECT")$(printf ',%s,' "$COMPOSE_PROFILES" | grep -q ',agent,' && printf '%s_sealedkey' "$PROJECT")$([ -n "$DATA_ROOT" ] && printf '(bind 落 %s)' "$DATA_ROOT")"
1110
1085
  echo " 重入 再跑同命令=幂等升级(凭据不轮换);验证=smoke.sh --project=$PROJECT"
1111
1086
  echo " 卸载 $0 --project=$PROJECT --teardown(留数据)/--teardown-volumes(连卷删)"
1112
1087
  [ "$PROFILE" = "data-center" ] && echo " 接入 别处 agent 连这个数据面 = sema-up.sh --profile=local-plus --pg-host=$HOSTIP --minio-endpoint=http://$HOSTIP:$MINIO_PORT + 两个密码(本机 .env 里)"
@@ -5,7 +5,7 @@
5
5
  # 远程 URL 模式: smoke.sh --url=http://host:8090 --token=T (引擎面:health/auth/真任务)
6
6
  # 每项 OK/FAIL 一行;FAIL 带原因+建议(§3d-2 报错规范);exit 0=全绿。
7
7
  set -u
8
- # >>> 自身目录(五个入口逐字同一段)
8
+ # [[[ 自身目录(五个入口逐字同一段)
9
9
  # HERE = 本脚本**真实文件**所在目录。经 npm bin 软链(node_modules/.bin/sema-up)调用时 $0 是软链路径,
10
10
  # 按它的目录找 lib/ 会落进 .bin/ ⇒ 逐跳解软链。只用不带参数的 readlink(macOS 自带 bash 3.2 / BSD readlink 没有 -f)。
11
11
  # 库要在知道 HERE 之后才找得到,所以这段不能收进库里:五个入口各持同一段,逐字一致由测试判。
@@ -17,7 +17,7 @@ while [ -L "$_self" ]; do
17
17
  done
18
18
  HERE="$(cd "$(dirname "$_self")" && pwd)"
19
19
  unset _self _hops _dir
20
- # <<< 自身目录
20
+ # ]]] 自身目录
21
21
  # `.env` 的文法与读原语只在 lib/envf.sh 定义:本脚本读 `.env` 只经 envf_load,不 source。
22
22
  . "$HERE/lib/envf.sh"
23
23
  # 取值旗的形:判据同 sema-up.sh 一处定义。
@@ -105,12 +105,13 @@ except Exception: print("")' 2>/dev/null)
105
105
  fi
106
106
 
107
107
  if [ -n "$URL" ]; then
108
- # ④ /health(整体取回:后端位在体的中后段,截断读会丢它)
109
- H=$(curl -m5 -s "$URL/health")
108
+ # ④ /health(整体取回:后端位在体的中后段,截断读会丢它;配了服务凭据的引擎只对出示凭据的读者给后端位 / 持久性,所以带 $TOKEN 读)
109
+ H=$(health_curl "$TOKEN" -m5 -s "$URL/health")
110
110
  case "$H" in *'"status":"ok"'*) ok "/health($URL)" ;; *) fail "/health" "无响应或非 ok:$(printf '%s' "${H:-空}" | head -c 200)" "服务没起/端口不对/防火墙;docker logs 或 systemctl 看进程" ;; esac
111
- # ④′ 后端位:/health 200 ≠ 数据落了库 —— 引擎的 sessionBackend 必须是期望的持久后端(durable(pg)),`memory` = 内存里跑、重启即丢
111
+ # ④′ 后端位:/health 200 ≠ 数据落了库 —— 引擎的 sessionBackend 必须是期望的后端(pg),`memory` = 内存里跑、重启即丢;
112
+ # store.durability 必须读得到(不是 durable 时照过,成功行带上读数与指路)
112
113
  case "$H" in *'"status":"ok"'*)
113
- if BK_WHY=$(health_backend_check "$H"); then ok "引擎后端(sessionBackend=$SEMA_UP_EXPECT_SESSION_BACKEND)"
114
+ if BK_WHY=$(health_backend_check "$H"); then ok "引擎后端(sessionBackend=$SEMA_UP_EXPECT_SESSION_BACKEND · store.durability=$(health_store_durability "$H"))${BK_WHY:+ — $BK_WHY}"
114
115
  else fail "引擎后端" "$BK_WHY" "库没连上时引擎不会再退内存起服(拒启);读到 memory 多半是旧镜像或手工起的引擎 —— 看 docker logs / kubectl logs 的 store_sql_open_wait 与拒启句"; fi ;;
115
116
  esac
116
117
  if [ -n "$TOKEN" ]; then
@@ -14,3 +14,6 @@ volumes:
14
14
  gitdata:
15
15
  driver: local
16
16
  driver_opts: { type: none, o: bind, device: "${DATA_ROOT_DIR:?}/gitdata" }
17
+ sealedkey:
18
+ driver: local
19
+ driver_opts: { type: none, o: bind, device: "${DATA_ROOT_DIR:?}/sealedkey" }
@@ -69,7 +69,7 @@ services:
69
69
  environment:
70
70
  PORT: "8090"
71
71
  # 1.123.0 收编:显式 DB_BACKEND=pg 即 durable。SESSION_BACKEND=auto 是旧镜像(<1.123)兜底——
72
- # 老版本 pg 不自动强转 durable 会静默 memory(真机验出 session:"memory");auto 新旧版都落 durable(pg)
72
+ # 老版本 pg 不自动强转 durable 会静默 memory(真机验出 session:"memory");auto 新旧版都落 pg(/health.sessionBackend 读 pg)
73
73
  DB_BACKEND: pg
74
74
  SESSION_BACKEND: auto
75
75
  PG_HOST: ${AGENT_PG_HOST:-pg}
@@ -104,8 +104,19 @@ services:
104
104
  REMOTE_EXEC: ${REMOTE_EXEC:-}
105
105
  E2B_API_KEY: ${E2B_API_KEY:-}
106
106
  # @generated-end lane-env
107
+ # 钥匙保管目录 = 下面 sealedkey 卷的挂载位(安装契约:显式绝对路径;与 chart / cluster 清单同一个值,只在 scripts/gen-deploy-lanes.ts 定义一次,圈起来的行由生成器渲出)
108
+ # @generated-begin sealed-key-env
109
+ SEALED_KEY_DIR: "/root/.ai-agent/sealed-key"
110
+ # @generated-end sealed-key-env
107
111
  ports:
108
112
  - "${SERVER_BIND:-0.0.0.0}:${SERVER_PORT:-8090}:8090"
113
+ # 停驻封签钥匙与模型钥匙的私钥只在钥匙保管目录里(不进库):容器重建不丢钥匙,重建之前停驻、带请求凭据的任务照常续跑。
114
+ # `--teardown-volumes` 删这只卷对象:docker 管的卷连钥匙一起没(之前停驻的任务续跑 409 key_not_held,web-admin 贴的 sealedApiKey 要对着新公钥重封);
115
+ # `--data-root` 时卷是 bind,盘上 <数据根>/sealedkey 留着,落回同一条数据根重装即读回原钥匙。
116
+ volumes:
117
+ # @generated-begin sealed-key-mount
118
+ - sealedkey:/root/.ai-agent/sealed-key
119
+ # @generated-end sealed-key-mount
109
120
 
110
121
  # sema-registry 配置中心(MCP/skill/模型配置云同步;管人+云同步一环,可选)。
111
122
  # 镜像=该仓 CI 产物,现行来源=GHCR/Hub(迁移中,SWR 已弃用 2026-07-13;公开仓匿名可拉,
@@ -168,3 +179,4 @@ volumes:
168
179
  miniodata:
169
180
  registrydata:
170
181
  gitdata:
182
+ sealedkey:
@@ -170,6 +170,17 @@ metadata: { name: sema-runner-nodes-sema-sandbox }
170
170
  roleRef: { apiGroup: rbac.authorization.k8s.io, kind: ClusterRole, name: sema-runner-nodes-sema-sandbox }
171
171
  subjects: [{ kind: ServiceAccount, name: sema-runner, namespace: sema-sandbox }]
172
172
  ---
173
+ # ── 停驻封签钥匙的持久卷(与 chart 的 sealedKey 块同形、同名 sema-server-sealed-key)──────────────────────
174
+ # 引擎的钥匙保管目录(SEALED_KEY_DIR;模型钥匙 + 子目录 checkpoint-ctx-keys/ 的停驻行封签钥匙)整个挂这一只卷。私钥只在这里(不进库):
175
+ # 不持久 ⇒ 每次重启换钥匙;各副本各一份 ⇒ 换副本就换了钥匙 —— 两种结局都是重启 / 换副本之前停驻、带请求凭据的任务续跑恒 409(key_not_held)。
176
+ # 本清单的副本数恒 > 1(cluster-up 按机器数渲 2 或 3)⇒ ReadWriteMany(与 chart 按共享 pod 数派生的结果相同)。Longhorn 的 RWX 走 NFS 共享管理器:
177
+ # **每个节点要装 NFS 客户端**(Debian / Ubuntu:nfs-common;RHEL 系:nfs-utils)—— cluster-up 不替你装,机器预检缺它会告警;缺了 server Pod 挂不上卷、
178
+ # rollout 等不到就绪,cluster-up 在第 7 步响亮失败。PVC 不随 kubectl delete -f 以外的任何动作删除;确认不要了再 kubectl -n sema delete pvc sema-server-sealed-key。
179
+ apiVersion: v1
180
+ kind: PersistentVolumeClaim
181
+ metadata: { name: sema-server-sealed-key, namespace: sema }
182
+ spec: { accessModes: [ReadWriteMany], storageClassName: longhorn, resources: { requests: { storage: 64Mi } } }
183
+ ---
173
184
  # ── 引擎(3 副本跨机打散;镜像=节点预灌 sema-server:local,imagePullPolicy Never
174
185
  # ⚠ k3s-uninstall.sh 会连 containerd 镜像一起清,重装过的节点必须补灌)──────────
175
186
  apiVersion: v1
@@ -233,7 +244,17 @@ spec:
233
244
  # 默认=公开池 code-node(小巧 git+node+python;clay 拍 2026-07-13,重任务 per-task profile 按需选)——裸 OS 镜像无 pkg-source hook,别退回
234
245
  - { name: K8S_SANDBOX_IMAGE, value: "docker.io/claybobby/code-node:20260707-749ab84f5fdd-786f5ef10ffd" }
235
246
  - { name: K8S_TOKEN, valueFrom: { secretKeyRef: { name: sema-runner-token-copy, key: token } } }
247
+ # 钥匙保管目录 = 下面那只卷的挂载位(安装契约:显式绝对路径);值与挂载位只有一处定义(scripts/gen-deploy-lanes.ts),圈起来的行由生成器渲出,不要手改
248
+ # @generated-begin sealed-key-env
249
+ - { name: SEALED_KEY_DIR, value: "/root/.ai-agent/sealed-key" }
250
+ # @generated-end sealed-key-env
236
251
  readinessProbe: { httpGet: { path: /readyz, port: 8090 }, initialDelaySeconds: 5, periodSeconds: 5 } # the only probe path (/health is diagnostic)
252
+ volumeMounts:
253
+ # @generated-begin sealed-key-mount
254
+ - { name: sealed-key, mountPath: "/root/.ai-agent/sealed-key" }
255
+ # @generated-end sealed-key-mount
256
+ volumes:
257
+ - { name: sealed-key, persistentVolumeClaim: { claimName: sema-server-sealed-key } }
237
258
  ---
238
259
  apiVersion: v1
239
260
  kind: Service
@@ -56,10 +56,34 @@ export interface BlobRewriteSpec {
56
56
  */
57
57
  readonly revInPayload?: string;
58
58
  }
59
+ /**
60
+ * 一条腿的表由**哪一段装配**建(闭集;消费它的 `switch` 穷尽,表外的词是编译错)。
61
+ * · `core` —— 中央 `ensureSchema` 或任一 SQL 后端上无条件的逐店 ensure 建的表:SQL 后端每次起服都建,库上恒在(本表缺 = 库被人动过,不是部署形态),腿恒跑、不探表;
62
+ * · `memory-engine` —— 记忆引擎 DB 后端(`MEMORY_ENGINE_BACKEND=pg|mysql` 且引擎开)那一段装配才建的六张 `agent_memory_engine_*` 表
63
+ * (`boot/stores.ts` 的记忆 SQL 臂:`ensure*MemoryEngineSchema` / `*MemoryHistorySchema` / `*MemorySyncSchema`);缺省 file 记忆引擎的部署上它们不存在;
64
+ * · `task-attachment` —— 附件店只在配了对象存储(`MINIO_*`)时才接线、才 ensure 的 `task_attachment`(无对象存储 ⇒ 整段不接线、表不建)。
65
+ * 非 `core` 的两面是**可选部署表面**:同一张计划表、同一套腿,只是「本部署有没有这张表」是**部署事实**,不是每条腿各带一个 `optional` 字面量。
66
+ */
67
+ export type AdoptionTablePlane = "core" | "memory-engine" | "task-attachment";
68
+ /**
69
+ * 本部署**装配出**了哪些可选表面(boot 的店接线事实,必填、无默认值:忘传 = 编译红;与留存执行器的 `taskAttachmentTable` 同一条理由)。
70
+ * 只在 runner 的腿集规划(`planLegs`)用来判「库上缺这张表是不是意外」—— 接线了却缺表 = 部署坏了(409 `adoption.table_missing`,点名表);没接线也缺表 = 这个部署本来就没有那个面,
71
+ * 它的腿不在回执里。**没接线但表在**(例:曾配过对象存储后撤掉配置、表与行都还在)不是「没有那个面」:行在库里就得迁,腿照跑 —— 腿集由库上在场的表定,接线只定缺席算不算错。
72
+ */
73
+ export interface AdoptionWiring {
74
+ /** 记忆引擎 DB 后端的那一段装配在 boot 里跑过(= `memoryExportStores` 在场 = DB 记忆平面亮起)。 */
75
+ readonly memoryEngine: boolean;
76
+ /** 附件店在 boot 里构造过(= `taskAttachmentStore` 在场;SQL 后端上它只在配了对象存储时才有)。 */
77
+ readonly taskAttachment: boolean;
78
+ }
79
+ /** 这个可选面在本部署上是不是**该有**(闭集 `switch`:`AdoptionTablePlane` 多一词 ⇒ 这里编译红)。`core` 恒该有。 */
80
+ export declare function planeExpected(plane: AdoptionTablePlane, wiring: AdoptionWiring): boolean;
59
81
  export interface RebindLegSpec {
60
82
  /** 腿的稳定标识(回执 `legs[].store`)= `<表名>#<身份轴>`。下游按它对账,改名 = wire 破坏。 */
61
83
  readonly leg: string;
62
84
  readonly table: string;
85
+ /** 这张表由哪一段装配建({@link AdoptionTablePlane});必填 —— 新腿加进来时必须说出它的表是库上恒在的还是可选面的。 */
86
+ readonly plane: AdoptionTablePlane;
63
87
  readonly kind: LegKind;
64
88
  readonly action: AdoptionLegAction;
65
89
  /** 携带同一个身份值、必须一起改的列(键列的字节孪生 `*_key` 与可读列并列时两个都在)。 */
@@ -1,9 +1,24 @@
1
1
  import { formatUserScope, encodeScopeSegment, SCOPE_SEGMENT_MAX_ENCODED } from "@sema-agent/core";
2
2
  import { PROJECT_LAYER_KEY_PREFIX } from "../project-layer-key.js";
3
+ export function planeExpected(plane, wiring) {
4
+ switch (plane) {
5
+ case "core":
6
+ return true;
7
+ case "memory-engine":
8
+ return wiring.memoryEngine;
9
+ case "task-attachment":
10
+ return wiring.taskAttachment;
11
+ default: {
12
+ const unhandled = plane;
13
+ throw new Error(`adoption: unhandled table plane ${JSON.stringify(unhandled)}`);
14
+ }
15
+ }
16
+ }
3
17
  export const REBIND_LEGS = [
4
18
  {
5
19
  leg: "session_meta#owner",
6
20
  table: "session_meta",
21
+ plane: "core",
7
22
  kind: "bulk-rebind",
8
23
  action: "row-rewrite",
9
24
  columns: ["owner"],
@@ -15,6 +30,7 @@ export const REBIND_LEGS = [
15
30
  {
16
31
  leg: "session_meta#placement_scope",
17
32
  table: "session_meta",
33
+ plane: "core",
18
34
  kind: "bulk-rebind",
19
35
  action: "row-rewrite",
20
36
  columns: ["placement_scope"],
@@ -26,6 +42,7 @@ export const REBIND_LEGS = [
26
42
  {
27
43
  leg: "task_run#owner",
28
44
  table: "task_run",
45
+ plane: "core",
29
46
  kind: "bulk-rebind",
30
47
  action: "row-rewrite",
31
48
  columns: ["owner"],
@@ -37,6 +54,7 @@ export const REBIND_LEGS = [
37
54
  {
38
55
  leg: "resume_anchor#owner",
39
56
  table: "resume_anchor",
57
+ plane: "core",
40
58
  kind: "bulk-rebind",
41
59
  action: "row-rewrite",
42
60
  columns: ["owner"],
@@ -48,6 +66,7 @@ export const REBIND_LEGS = [
48
66
  {
49
67
  leg: "sendfile_link#scope",
50
68
  table: "sendfile_link",
69
+ plane: "core",
51
70
  kind: "bulk-rebind",
52
71
  action: "row-rewrite",
53
72
  columns: ["scope"],
@@ -59,6 +78,7 @@ export const REBIND_LEGS = [
59
78
  {
60
79
  leg: "task_attachment#owner",
61
80
  table: "task_attachment",
81
+ plane: "task-attachment",
62
82
  kind: "bulk-rebind",
63
83
  action: "row-rewrite",
64
84
  columns: ["owner"],
@@ -70,6 +90,7 @@ export const REBIND_LEGS = [
70
90
  {
71
91
  leg: "approval_ask#owner",
72
92
  table: "approval_ask",
93
+ plane: "core",
73
94
  kind: "bulk-rebind",
74
95
  action: "row-rewrite",
75
96
  columns: ["owner"],
@@ -81,6 +102,7 @@ export const REBIND_LEGS = [
81
102
  {
82
103
  leg: "sandbox_image_index#tenant_id",
83
104
  table: "sandbox_image_index",
105
+ plane: "core",
84
106
  kind: "bulk-rebind",
85
107
  action: "row-rewrite",
86
108
  columns: ["tenant_id"],
@@ -92,6 +114,7 @@ export const REBIND_LEGS = [
92
114
  {
93
115
  leg: "leader_run#owner",
94
116
  table: "leader_run",
117
+ plane: "core",
95
118
  kind: "bulk-rebind",
96
119
  action: "row-rewrite",
97
120
  columns: ["owner"],
@@ -103,6 +126,7 @@ export const REBIND_LEGS = [
103
126
  {
104
127
  leg: "workflow_completion_inbox#owner",
105
128
  table: "workflow_completion_inbox",
129
+ plane: "core",
106
130
  kind: "bulk-rebind",
107
131
  action: "row-rewrite",
108
132
  columns: ["owner"],
@@ -114,6 +138,7 @@ export const REBIND_LEGS = [
114
138
  {
115
139
  leg: "workflow_inbox_fence#owner",
116
140
  table: "workflow_inbox_fence",
141
+ plane: "core",
117
142
  kind: "bulk-rebind",
118
143
  action: "row-rewrite",
119
144
  columns: ["owner"],
@@ -125,6 +150,7 @@ export const REBIND_LEGS = [
125
150
  {
126
151
  leg: "workflow_notify_journal#principal",
127
152
  table: "workflow_notify_journal",
153
+ plane: "core",
128
154
  kind: "bulk-rebind",
129
155
  action: "row-rewrite",
130
156
  columns: ["principal"],
@@ -136,6 +162,7 @@ export const REBIND_LEGS = [
136
162
  {
137
163
  leg: "workflow_notify_journal#scope",
138
164
  table: "workflow_notify_journal",
165
+ plane: "core",
139
166
  kind: "bulk-rebind",
140
167
  action: "bucket-rebind",
141
168
  columns: ["scope"],
@@ -147,6 +174,7 @@ export const REBIND_LEGS = [
147
174
  {
148
175
  leg: "background_agent#record_json",
149
176
  table: "background_agent",
177
+ plane: "core",
150
178
  kind: "blob-rewrite",
151
179
  action: "row-rewrite",
152
180
  columns: ["scope_key"],
@@ -159,6 +187,7 @@ export const REBIND_LEGS = [
159
187
  {
160
188
  leg: "background_agent#owner",
161
189
  table: "background_agent",
190
+ plane: "core",
162
191
  kind: "bulk-rebind",
163
192
  action: "row-rewrite",
164
193
  columns: ["owner"],
@@ -170,6 +199,7 @@ export const REBIND_LEGS = [
170
199
  {
171
200
  leg: "checkpoint#checkpoint_blob",
172
201
  table: "checkpoint",
202
+ plane: "core",
173
203
  kind: "blob-rewrite",
174
204
  action: "row-rewrite",
175
205
  columns: ["scope"],
@@ -182,6 +212,7 @@ export const REBIND_LEGS = [
182
212
  {
183
213
  leg: "checkpoint#scope",
184
214
  table: "checkpoint",
215
+ plane: "core",
185
216
  kind: "bulk-rebind",
186
217
  action: "bucket-rebind",
187
218
  columns: ["scope"],
@@ -193,6 +224,7 @@ export const REBIND_LEGS = [
193
224
  {
194
225
  leg: "workflow_run#run_blob",
195
226
  table: "workflow_run",
227
+ plane: "core",
196
228
  kind: "blob-rewrite",
197
229
  action: "row-rewrite",
198
230
  columns: ["scope"],
@@ -205,6 +237,7 @@ export const REBIND_LEGS = [
205
237
  {
206
238
  leg: "workflow_run#scope",
207
239
  table: "workflow_run",
240
+ plane: "core",
208
241
  kind: "bulk-rebind",
209
242
  action: "bucket-rebind",
210
243
  columns: ["scope"],
@@ -216,6 +249,7 @@ export const REBIND_LEGS = [
216
249
  {
217
250
  leg: "workflow_journal_owner#scope",
218
251
  table: "workflow_journal_owner",
252
+ plane: "core",
219
253
  kind: "bulk-rebind",
220
254
  action: "bucket-rebind",
221
255
  columns: ["scope"],
@@ -227,6 +261,7 @@ export const REBIND_LEGS = [
227
261
  {
228
262
  leg: "workflow_agent_session#scope",
229
263
  table: "workflow_agent_session",
264
+ plane: "core",
230
265
  kind: "bulk-rebind",
231
266
  action: "bucket-rebind",
232
267
  columns: ["scope"],
@@ -238,6 +273,7 @@ export const REBIND_LEGS = [
238
273
  {
239
274
  leg: "workflow_resume_claim#scope",
240
275
  table: "workflow_resume_claim",
276
+ plane: "core",
241
277
  kind: "bulk-rebind",
242
278
  action: "bucket-rebind",
243
279
  columns: ["scope"],
@@ -249,6 +285,7 @@ export const REBIND_LEGS = [
249
285
  {
250
286
  leg: "mailbox#scope",
251
287
  table: "mailbox",
288
+ plane: "core",
252
289
  kind: "bulk-rebind",
253
290
  action: "bucket-rebind",
254
291
  columns: ["scope_key", "scope"],
@@ -260,6 +297,7 @@ export const REBIND_LEGS = [
260
297
  {
261
298
  leg: "mailbox_tombstone#scope_key",
262
299
  table: "mailbox_tombstone",
300
+ plane: "core",
263
301
  kind: "bulk-rebind",
264
302
  action: "bucket-rebind",
265
303
  columns: ["scope_key"],
@@ -271,6 +309,7 @@ export const REBIND_LEGS = [
271
309
  {
272
310
  leg: "mailbox_message#scope_key",
273
311
  table: "mailbox_message",
312
+ plane: "core",
274
313
  kind: "bulk-rebind",
275
314
  action: "bucket-rebind",
276
315
  columns: ["scope_key"],
@@ -282,6 +321,7 @@ export const REBIND_LEGS = [
282
321
  {
283
322
  leg: "mailbox_consumed#scope_key",
284
323
  table: "mailbox_consumed",
324
+ plane: "core",
285
325
  kind: "bulk-rebind",
286
326
  action: "bucket-rebind",
287
327
  columns: ["scope_key"],
@@ -293,6 +333,7 @@ export const REBIND_LEGS = [
293
333
  {
294
334
  leg: "background_agent#scope",
295
335
  table: "background_agent",
336
+ plane: "core",
296
337
  kind: "bulk-rebind",
297
338
  action: "bucket-rebind",
298
339
  columns: ["scope_key", "scope"],
@@ -304,6 +345,7 @@ export const REBIND_LEGS = [
304
345
  {
305
346
  leg: "agent_roster#owner",
306
347
  table: "agent_roster",
348
+ plane: "core",
307
349
  kind: "bulk-rebind",
308
350
  action: "bucket-rebind",
309
351
  columns: ["owner_key", "owner"],
@@ -315,6 +357,7 @@ export const REBIND_LEGS = [
315
357
  {
316
358
  leg: "agent_roster#scope",
317
359
  table: "agent_roster",
360
+ plane: "core",
318
361
  kind: "bulk-rebind",
319
362
  action: "bucket-rebind",
320
363
  columns: ["scope_key", "scope"],
@@ -326,6 +369,7 @@ export const REBIND_LEGS = [
326
369
  {
327
370
  leg: "agent_memory_engine_entry#scope",
328
371
  table: "agent_memory_engine_entry",
372
+ plane: "memory-engine",
329
373
  kind: "bulk-rebind",
330
374
  action: "bucket-rebind",
331
375
  columns: ["scope"],
@@ -337,6 +381,7 @@ export const REBIND_LEGS = [
337
381
  {
338
382
  leg: "agent_memory_engine_cursor#scope",
339
383
  table: "agent_memory_engine_cursor",
384
+ plane: "memory-engine",
340
385
  kind: "bulk-rebind",
341
386
  action: "bucket-rebind",
342
387
  columns: ["scope"],
@@ -348,6 +393,7 @@ export const REBIND_LEGS = [
348
393
  {
349
394
  leg: "memory_optout_grant#principal",
350
395
  table: "memory_optout_grant",
396
+ plane: "core",
351
397
  kind: "bulk-rebind",
352
398
  action: "row-rewrite",
353
399
  columns: ["principal"],
@@ -359,6 +405,7 @@ export const REBIND_LEGS = [
359
405
  {
360
406
  leg: "agent_memory_engine_sync_cursor#scope",
361
407
  table: "agent_memory_engine_sync_cursor",
408
+ plane: "memory-engine",
362
409
  kind: "bulk-rebind",
363
410
  action: "bucket-rebind",
364
411
  columns: ["scope"],
@@ -370,6 +417,7 @@ export const REBIND_LEGS = [
370
417
  {
371
418
  leg: "agent_memory_engine_sync_partition#scope",
372
419
  table: "agent_memory_engine_sync_partition",
420
+ plane: "memory-engine",
373
421
  kind: "bulk-rebind",
374
422
  action: "bucket-rebind",
375
423
  columns: ["scope"],
@@ -381,6 +429,7 @@ export const REBIND_LEGS = [
381
429
  {
382
430
  leg: "agent_memory_engine_push_queue#scope",
383
431
  table: "agent_memory_engine_push_queue",
432
+ plane: "memory-engine",
384
433
  kind: "bulk-rebind",
385
434
  action: "bucket-rebind",
386
435
  columns: ["scope"],
@@ -392,6 +441,7 @@ export const REBIND_LEGS = [
392
441
  {
393
442
  leg: "agent_memory_engine_history#scope",
394
443
  table: "agent_memory_engine_history",
444
+ plane: "memory-engine",
395
445
  kind: "bulk-rebind",
396
446
  action: "bucket-rebind",
397
447
  columns: ["scope"],
@@ -403,6 +453,7 @@ export const REBIND_LEGS = [
403
453
  {
404
454
  leg: "session_policy#principal",
405
455
  table: "session_policy",
456
+ plane: "core",
406
457
  kind: "session-policy-rekey",
407
458
  action: "row-rewrite",
408
459
  columns: ["principal"],
@@ -414,6 +465,7 @@ export const REBIND_LEGS = [
414
465
  {
415
466
  leg: "permission_rule#owner_key",
416
467
  table: "permission_rule",
468
+ plane: "core",
417
469
  kind: "rule-owner-rekey",
418
470
  action: "bucket-rebind",
419
471
  columns: ["owner_key", "principal"],
@@ -449,7 +501,7 @@ export const AFFECTED_CONFIG_TEMPLATES = [
449
501
  { deployment: "cli", key: "~/.sema/cloud/credentials + cloud/profiles.json", requiredValue: "%TO%" },
450
502
  { deployment: "cli", key: "SEMA_LIVE_PRINCIPAL", requiredValue: "%TO%" },
451
503
  { deployment: "env", key: "REQUIRE_PRINCIPAL", requiredValue: "true (multi-tenant posture must stay on)" },
452
- { deployment: "core-decl", key: "localOwnerRules", requiredValue: "(withdraw — the declaration resolves to the adopted principal after adoption)" },
504
+ { deployment: "core-decl", key: "localOwnerRules", requiredValue: "(withdrawn by REQUIRE_PRINCIPAL=true — this server declares it only on a single-user deployment with a permission-rule store)" },
453
505
  ];
454
506
  export const IDENTITY_WIDTH_LIMITS = [
455
507
  { what: "sandbox_image_index.tenant_id VARCHAR(64)", unit: "chars", max: 64 },