@sema-agent/server 7.146.0 → 7.148.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (850) hide show
  1. package/MIGRATION.md +1423 -24
  2. package/README.md +21 -8
  3. package/README.zh-CN.md +15 -9
  4. package/USAGE.md +537 -216
  5. package/deploy/facts/lanes.json +7 -0
  6. package/deploy/sema-up/README.md +18 -7
  7. package/deploy/sema-up/chart/templates/NOTES.txt +1 -1
  8. package/deploy/sema-up/chart/templates/_helpers.tpl +42 -4
  9. package/deploy/sema-up/chart/templates/server-v4pro.yaml +5 -4
  10. package/deploy/sema-up/chart/templates/server.yaml +5 -4
  11. package/deploy/sema-up/chart/values.yaml +4 -3
  12. package/deploy/sema-up/cluster-up.sh +75 -176
  13. package/deploy/sema-up/kube-up.sh +29 -49
  14. package/deploy/sema-up/lib/chart-run.sh +23 -0
  15. package/deploy/sema-up/lib/dataroot.sh +3 -3
  16. package/deploy/sema-up/lib/flagshape.sh +4 -0
  17. package/deploy/sema-up/lib/health.sh +62 -13
  18. package/deploy/sema-up/lib/helm-values-cluster.py +18 -0
  19. package/deploy/sema-up/lib/helm-values-kube.py +35 -0
  20. package/deploy/sema-up/lib/lanes.json +2 -5
  21. package/deploy/sema-up/lib/regcred.py +8 -0
  22. package/deploy/sema-up/lib/remote/helm-install.sh +3 -0
  23. package/deploy/sema-up/lib/remote/image-import.sh +6 -0
  24. package/deploy/sema-up/lib/remote/machine-precheck.sh +11 -0
  25. package/deploy/sema-up/lib/remote/region-probe.sh +3 -0
  26. package/deploy/sema-up/lib/remote/stack-ready.sh +26 -0
  27. package/deploy/sema-up/lib/remote/vxlan-guard.sh +8 -0
  28. package/deploy/sema-up/lib/render-stack.py +17 -0
  29. package/deploy/sema-up/lib/shell-text.sh +87 -0
  30. package/deploy/sema-up/lib/usage-flags.txt +10 -0
  31. package/deploy/sema-up/lib/usage-head.txt +1 -0
  32. package/deploy/sema-up/lib/usage-tail.txt +13 -0
  33. package/deploy/sema-up/preflight.sh +10 -8
  34. package/deploy/sema-up/sema-up.sh +26 -48
  35. package/deploy/sema-up/smoke.sh +7 -6
  36. package/deploy/sema-up/stack/compose.dataroot.yaml +3 -0
  37. package/deploy/sema-up/stack/compose.yaml +18 -5
  38. package/deploy/sema-up/stack/sema-stack-cluster.yaml +25 -3
  39. package/dist/adoption/plan.d.ts +24 -0
  40. package/dist/adoption/plan.js +53 -1
  41. package/dist/adoption/runner.d.ts +10 -1
  42. package/dist/adoption/runner.js +36 -16
  43. package/dist/adoption/wire.d.ts +3 -3
  44. package/dist/approval-card.d.ts +32 -34
  45. package/dist/approval-gate-currency.js +3 -2
  46. package/dist/approval-reconciler.d.ts +4 -13
  47. package/dist/approval-reconciler.js +2 -2
  48. package/dist/approval.d.ts +16 -14
  49. package/dist/approval.js +3 -3
  50. package/dist/audit.d.ts +10 -3
  51. package/dist/audit.js +17 -9
  52. package/dist/auth-bridge.d.ts +0 -14
  53. package/dist/auth-bridge.js +0 -7
  54. package/dist/auto-mode-face.d.ts +10 -7
  55. package/dist/auto-mode-face.js +7 -4
  56. package/dist/background-agent-name.d.ts +19 -1
  57. package/dist/background-agent-name.js +12 -2
  58. package/dist/background-session-reap.d.ts +1 -1
  59. package/dist/bake-runner/main.js +9 -6
  60. package/dist/bench/s1/arms.js +6 -5
  61. package/dist/bench/s1/live-deps.js +8 -3
  62. package/dist/bench/s1/run-firm.js +6 -5
  63. package/dist/bind-host.d.ts +25 -0
  64. package/dist/bind-host.js +25 -0
  65. package/dist/boot/adoption.d.ts +3 -0
  66. package/dist/boot/adoption.js +1 -0
  67. package/dist/boot/crash-last.js +2 -1
  68. package/dist/boot/deployment-mods.d.ts +1 -1
  69. package/dist/boot/device-lane.js +5 -5
  70. package/dist/boot/engine-lease.d.ts +12 -11
  71. package/dist/boot/execution-env.d.ts +19 -8
  72. package/dist/boot/execution-env.js +80 -62
  73. package/dist/boot/execution-lane.d.ts +37 -9
  74. package/dist/boot/execution-lane.js +74 -20
  75. package/dist/boot/exit-boundary.d.ts +3 -3
  76. package/dist/boot/exit-boundary.js +6 -5
  77. package/dist/boot/exit-last.js +2 -1
  78. package/dist/boot/fatal-exit.d.ts +3 -5
  79. package/dist/boot/fatal-exit.js +2 -2
  80. package/dist/boot/governance-seams.d.ts +2 -2
  81. package/dist/boot/leader.d.ts +15 -0
  82. package/dist/boot/leader.js +18 -16
  83. package/dist/boot/memory-boundary.d.ts +11 -11
  84. package/dist/boot/memory-boundary.js +3 -3
  85. package/dist/boot/memory-consolidation.d.ts +50 -53
  86. package/dist/boot/memory-consolidation.js +11 -18
  87. package/dist/boot/org-memory.js +4 -3
  88. package/dist/boot/parked-revive-gate.d.ts +1 -1
  89. package/dist/boot/parked-revive-gate.js +3 -3
  90. package/dist/boot/reapers.d.ts +4 -3
  91. package/dist/boot/reapers.js +20 -17
  92. package/dist/boot/resolve-spec.d.ts +5 -3
  93. package/dist/boot/resolve-spec.js +133 -165
  94. package/dist/boot/retention-lane.d.ts +7 -45
  95. package/dist/boot/retention-lane.js +2 -2
  96. package/dist/boot/runner-deps.d.ts +28 -7
  97. package/dist/boot/runner-deps.js +11 -4
  98. package/dist/boot/runtime-caps.d.ts +2 -2
  99. package/dist/boot/runtime-caps.js +16 -2
  100. package/dist/boot/session-faces.d.ts +17 -7
  101. package/dist/boot/session-faces.js +122 -96
  102. package/dist/boot/shutdown.d.ts +5 -4
  103. package/dist/boot/shutdown.js +6 -4
  104. package/dist/boot/stage-01-config.d.ts +1 -1
  105. package/dist/boot/stage-01-config.js +14 -2
  106. package/dist/boot/stage-02-web-admin-pull.d.ts +2 -1
  107. package/dist/boot/stage-02-web-admin-pull.js +15 -8
  108. package/dist/boot/stage-03-store-backend.d.ts +4 -1
  109. package/dist/boot/stage-03-store-backend.js +4 -3
  110. package/dist/boot/stage-04-stores.d.ts +3 -1
  111. package/dist/boot/stage-04-stores.js +2 -2
  112. package/dist/boot/stage-05-execution-env.d.ts +9 -5
  113. package/dist/boot/stage-05-execution-env.js +5 -5
  114. package/dist/boot/stage-06-runners.d.ts +13 -15
  115. package/dist/boot/stage-06-runners.js +24 -18
  116. package/dist/boot/stage-07-capability-layer.d.ts +14 -11
  117. package/dist/boot/stage-07-capability-layer.js +9 -12
  118. package/dist/boot/stage-08-reapers.d.ts +14 -11
  119. package/dist/boot/stage-08-reapers.js +3 -3
  120. package/dist/boot/stage-09-leader.d.ts +16 -18
  121. package/dist/boot/stage-09-leader.js +12 -4
  122. package/dist/boot/stage-10-http-server.d.ts +16 -18
  123. package/dist/boot/stage-10-http-server.js +9 -5
  124. package/dist/boot/store-evidence.d.ts +20 -0
  125. package/dist/boot/store-evidence.js +13 -0
  126. package/dist/boot/stores.d.ts +12 -0
  127. package/dist/boot/stores.js +39 -17
  128. package/dist/boot/task-list-lane.d.ts +4 -4
  129. package/dist/boot/web-admin.d.ts +4 -2
  130. package/dist/boot/web-admin.js +58 -38
  131. package/dist/boot/webfetch-summarize-lane.d.ts +1 -1
  132. package/dist/boot-reclaim.d.ts +3 -1
  133. package/dist/boot-reclaim.js +1 -1
  134. package/dist/brain.d.ts +7 -18
  135. package/dist/brain.js +5 -17
  136. package/dist/budget.js +6 -6
  137. package/dist/capabilities/center-plugins.d.ts +9 -1
  138. package/dist/capabilities/center-plugins.js +37 -11
  139. package/dist/capabilities/center-wiring.js +1 -1
  140. package/dist/capabilities/composite-members.d.ts +3 -2
  141. package/dist/capabilities/composite-members.js +3 -2
  142. package/dist/capabilities/execution-lane.d.ts +7 -7
  143. package/dist/capabilities/execution-lane.js +2 -2
  144. package/dist/capabilities/hands-lane.d.ts +1 -1
  145. package/dist/capabilities/repo-tools.d.ts +2 -0
  146. package/dist/capabilities/repo-tools.js +14 -12
  147. package/dist/capabilities/scenarios.d.ts +38 -33
  148. package/dist/capabilities/scenarios.js +24 -25
  149. package/dist/capabilities/settings-contract.d.ts +29 -0
  150. package/dist/capabilities/settings-contract.js +14 -0
  151. package/dist/capabilities/skills.d.ts +6 -6
  152. package/dist/capabilities/tool-defer.d.ts +1 -1
  153. package/dist/capability-facts.d.ts +69 -4
  154. package/dist/capability-facts.js +77 -5
  155. package/dist/card-void.d.ts +4 -4
  156. package/dist/card-void.js +1 -1
  157. package/dist/center-credential-renewer.d.ts +6 -2
  158. package/dist/center-credential-renewer.js +10 -5
  159. package/dist/config-catalog.d.ts +16 -1
  160. package/dist/config-catalog.js +68 -61
  161. package/dist/config-dir-trust.d.ts +37 -4
  162. package/dist/config-dir-trust.js +88 -44
  163. package/dist/config-invariants.d.ts +58 -4
  164. package/dist/config-invariants.js +104 -23
  165. package/dist/config-lkg.d.ts +24 -2
  166. package/dist/config-lkg.js +22 -9
  167. package/dist/config-provider.d.ts +9 -9
  168. package/dist/config-provider.js +25 -108
  169. package/dist/config-pull-failure.d.ts +50 -0
  170. package/dist/config-pull-failure.js +48 -0
  171. package/dist/config-types.d.ts +215 -202
  172. package/dist/config.d.ts +69 -14
  173. package/dist/config.js +188 -96
  174. package/dist/degenerate-instrument.js +1 -1
  175. package/dist/delegated-session-owner.d.ts +1 -1
  176. package/dist/deleted-session-ids.d.ts +3 -2
  177. package/dist/deploy-facts.js +3 -2
  178. package/dist/deployment-governance.d.ts +3 -3
  179. package/dist/deployment-shape.d.ts +51 -16
  180. package/dist/deployment-shape.js +31 -6
  181. package/dist/egress-redirect.d.ts +25 -7
  182. package/dist/egress-redirect.js +20 -2
  183. package/dist/elicitation.d.ts +6 -5
  184. package/dist/elicitation.js +23 -22
  185. package/dist/engine-identity.d.ts +28 -0
  186. package/dist/engine-identity.js +10 -0
  187. package/dist/entry-problems.d.ts +5 -7
  188. package/dist/entry-problems.js +1 -1
  189. package/dist/env-facts.d.ts +7 -5
  190. package/dist/env-facts.js +12 -7
  191. package/dist/env-witness.d.ts +7 -0
  192. package/dist/env-witness.js +16 -0
  193. package/dist/execution-config-root.d.ts +5 -5
  194. package/dist/execution-config-root.js +5 -5
  195. package/dist/execution-env-purpose.d.ts +14 -0
  196. package/dist/execution-env-purpose.js +29 -0
  197. package/dist/execution-lane-caps.d.ts +53 -103
  198. package/dist/execution-lane-caps.js +51 -83
  199. package/dist/execution-placement.d.ts +65 -9
  200. package/dist/execution-placement.js +58 -0
  201. package/dist/field-conflict.d.ts +7 -11
  202. package/dist/field-conflict.js +3 -3
  203. package/dist/file-history-capture.d.ts +3 -3
  204. package/dist/file-history-disclosure.d.ts +2 -2
  205. package/dist/file-history-disclosure.js +1 -0
  206. package/dist/fleet/drain-entry.d.ts +17 -10
  207. package/dist/fleet/drain-entry.js +1 -1
  208. package/dist/fleet/fleet-bus.d.ts +21 -3
  209. package/dist/fleet/fleet-bus.js +35 -25
  210. package/dist/fleet/fleet-reconciler.js +2 -2
  211. package/dist/fleet/serving-lease.js +6 -7
  212. package/dist/fleet-client.js +3 -3
  213. package/dist/fleet-lease.d.ts +0 -1
  214. package/dist/fleet-lease.js +4 -5
  215. package/dist/history-anchor.d.ts +42 -0
  216. package/dist/history-anchor.js +34 -0
  217. package/dist/hitl-delivery.d.ts +90 -0
  218. package/dist/hitl-delivery.js +98 -0
  219. package/dist/hooks/classic-stations.d.ts +8 -11
  220. package/dist/hooks/classic-stations.js +0 -7
  221. package/dist/hooks/command-spawn.d.ts +1 -4
  222. package/dist/hooks/command-spawn.js +0 -11
  223. package/dist/hooks/hook-llm.d.ts +5 -1
  224. package/dist/hooks/hook-llm.js +24 -15
  225. package/dist/hooks/hook-runner.d.ts +119 -65
  226. package/dist/hooks/hook-runner.js +415 -217
  227. package/dist/host-lsp-manager.d.ts +22 -8
  228. package/dist/host-lsp-manager.js +4 -1
  229. package/dist/http/active-run-conflict.d.ts +2 -43
  230. package/dist/http/active-run-conflict.js +3 -7
  231. package/dist/http/admission.d.ts +4 -18
  232. package/dist/http/admission.js +75 -78
  233. package/dist/http/approval-sweeps.d.ts +5 -8
  234. package/dist/http/approval-sweeps.js +55 -30
  235. package/dist/http/caller-trust.d.ts +8 -10
  236. package/dist/http/caller-trust.js +1 -2
  237. package/dist/http/checkpoint-ctx.d.ts +17 -0
  238. package/dist/http/checkpoint-ctx.js +6 -0
  239. package/dist/http/claim-heartbeat.d.ts +49 -0
  240. package/dist/http/claim-heartbeat.js +46 -0
  241. package/dist/http/claim-latency.d.ts +10 -0
  242. package/dist/http/claim-latency.js +12 -0
  243. package/dist/http/claimed-run.d.ts +4 -3
  244. package/dist/http/dispatch.d.ts +8 -1
  245. package/dist/http/dispatch.js +77 -31
  246. package/dist/http/durable-run-leg.d.ts +3 -3
  247. package/dist/http/durable-run-leg.js +18 -12
  248. package/dist/http/execution-context.d.ts +18 -42
  249. package/dist/http/execution-context.js +11 -5
  250. package/dist/http/health-reader.d.ts +36 -0
  251. package/dist/http/health-reader.js +21 -0
  252. package/dist/http/health-self-report.d.ts +9 -9
  253. package/dist/http/health-self-report.js +4 -4
  254. package/dist/http/idempotency.d.ts +9 -5
  255. package/dist/http/idempotency.js +4 -4
  256. package/dist/http/memory-compliance-failure-reply.d.ts +15 -16
  257. package/dist/http/memory-compliance-failure-reply.js +7 -2
  258. package/dist/http/memory-face-fault-reply.d.ts +67 -0
  259. package/dist/http/memory-face-fault-reply.js +71 -0
  260. package/dist/http/memory-store-refusal-reply.d.ts +3 -3
  261. package/dist/http/memory-store-refusal-reply.js +6 -0
  262. package/dist/http/owner-access.d.ts +391 -56
  263. package/dist/http/owner-access.js +372 -33
  264. package/dist/http/principal-gate.d.ts +26 -94
  265. package/dist/http/principal-gate.js +24 -81
  266. package/dist/http/refusal-body.d.ts +35 -2
  267. package/dist/http/refusal-body.js +34 -0
  268. package/dist/http/request-guards.d.ts +10 -14
  269. package/dist/http/request-guards.js +34 -68
  270. package/dist/http/resume-composition.d.ts +37 -0
  271. package/dist/http/resume-composition.js +18 -0
  272. package/dist/http/resume-ctx-read.d.ts +35 -12
  273. package/dist/http/resume-ctx-read.js +25 -6
  274. package/dist/http/resume-legs.d.ts +24 -24
  275. package/dist/http/resume-legs.js +260 -171
  276. package/dist/http/retired-skill-manifest.d.ts +1 -1
  277. package/dist/http/rewind-files-reply.d.ts +34 -0
  278. package/dist/http/rewind-files-reply.js +36 -0
  279. package/dist/http/route-ctx.d.ts +56 -47
  280. package/dist/http/route-table.js +2 -0
  281. package/dist/http/routes/a2a-serve.d.ts +43 -5
  282. package/dist/http/routes/a2a-serve.js +58 -37
  283. package/dist/http/routes/admin-config-refresh.js +2 -2
  284. package/dist/http/routes/admin-drain.js +2 -2
  285. package/dist/http/routes/admin-memory-optout.js +4 -3
  286. package/dist/http/routes/adoption.d.ts +3 -0
  287. package/dist/http/routes/adoption.js +17 -10
  288. package/dist/http/routes/agents-roster.js +13 -7
  289. package/dist/http/routes/approvals-assistant.js +73 -88
  290. package/dist/http/routes/attachments.js +2 -2
  291. package/dist/http/routes/background.d.ts +3 -3
  292. package/dist/http/routes/background.js +9 -17
  293. package/dist/http/routes/capabilities.js +23 -20
  294. package/dist/http/routes/config-catalog.js +2 -2
  295. package/dist/http/routes/devices.d.ts +3 -3
  296. package/dist/http/routes/devices.js +5 -5
  297. package/dist/http/routes/diagnostics.d.ts +27 -3
  298. package/dist/http/routes/diagnostics.js +27 -21
  299. package/dist/http/routes/engine.js +2 -2
  300. package/dist/http/routes/fleet.js +5 -3
  301. package/dist/http/routes/images.js +10 -6
  302. package/dist/http/routes/leader.d.ts +7 -2
  303. package/dist/http/routes/leader.js +12 -3
  304. package/dist/http/routes/mcp-reconnect.d.ts +1 -1
  305. package/dist/http/routes/mcp-reconnect.js +7 -15
  306. package/dist/http/routes/memory-bundle.js +4 -7
  307. package/dist/http/routes/memory-compliance.js +4 -4
  308. package/dist/http/routes/memory-consolidation.js +6 -9
  309. package/dist/http/routes/memory-origin.d.ts +3 -1
  310. package/dist/http/routes/memory-origin.js +7 -8
  311. package/dist/http/routes/memory-policy.js +17 -12
  312. package/dist/http/routes/notify-wake.js +12 -20
  313. package/dist/http/routes/observability.js +3 -3
  314. package/dist/http/routes/principal-inbox.d.ts +1 -1
  315. package/dist/http/routes/principal-inbox.js +2 -2
  316. package/dist/http/routes/projects.d.ts +70 -0
  317. package/dist/http/routes/projects.js +87 -0
  318. package/dist/http/routes/retention-ops.js +6 -9
  319. package/dist/http/routes/rules.js +50 -7
  320. package/dist/http/routes/run-memory-capture.d.ts +2 -2
  321. package/dist/http/routes/run-memory-capture.js +6 -12
  322. package/dist/http/routes/run-permission-mode.d.ts +2 -2
  323. package/dist/http/routes/run-permission-mode.js +10 -17
  324. package/dist/http/routes/runs.js +148 -233
  325. package/dist/http/routes/session-memory-sync.d.ts +2 -2
  326. package/dist/http/routes/session-memory-sync.js +7 -13
  327. package/dist/http/routes/session-sync.d.ts +4 -2
  328. package/dist/http/routes/session-sync.js +48 -30
  329. package/dist/http/routes/sessions-list.d.ts +3 -3
  330. package/dist/http/routes/sessions-list.js +9 -9
  331. package/dist/http/routes/sessions.d.ts +7 -1
  332. package/dist/http/routes/sessions.js +177 -112
  333. package/dist/http/routes/shared-memory.js +6 -6
  334. package/dist/http/routes/side-query.js +2 -2
  335. package/dist/http/routes/tasks.js +144 -122
  336. package/dist/http/routes/trace-usage.d.ts +0 -12
  337. package/dist/http/routes/trace-usage.js +40 -46
  338. package/dist/http/routes/workflows.d.ts +39 -4
  339. package/dist/http/routes/workflows.js +42 -14
  340. package/dist/http/run-concurrency-cap.d.ts +20 -12
  341. package/dist/http/run-concurrency-cap.js +39 -26
  342. package/dist/http/run-read-face.d.ts +3 -5
  343. package/dist/http/run-read-face.js +8 -13
  344. package/dist/http/send.d.ts +12 -3
  345. package/dist/http/send.js +42 -6
  346. package/dist/http/server.d.ts +63 -50
  347. package/dist/http/server.js +52 -16
  348. package/dist/http/sse-log.d.ts +17 -10
  349. package/dist/http/sse-log.js +7 -7
  350. package/dist/http/stored-body-replay.d.ts +17 -3
  351. package/dist/http/stored-body-replay.js +11 -2
  352. package/dist/http/submit-ctx.d.ts +16 -8
  353. package/dist/http/submit-ctx.js +6 -2
  354. package/dist/http/submit-replay.d.ts +19 -6
  355. package/dist/http/submit-replay.js +18 -6
  356. package/dist/http/sync-submit-body.d.ts +3 -4
  357. package/dist/http/sync-submit-body.js +4 -5
  358. package/dist/http/wire-types.d.ts +23 -13
  359. package/dist/identity-source.d.ts +36 -5
  360. package/dist/identity-source.js +27 -0
  361. package/dist/index.d.ts +3 -2
  362. package/dist/index.js +2 -1
  363. package/dist/instruction-source-notice.d.ts +1 -1
  364. package/dist/key-resolver.d.ts +32 -0
  365. package/dist/key-resolver.js +23 -9
  366. package/dist/leader/diffup.js +2 -1
  367. package/dist/leader/endpoint.d.ts +26 -5
  368. package/dist/leader/endpoint.js +154 -14
  369. package/dist/leader/fanout.d.ts +3 -0
  370. package/dist/leader/fanout.js +78 -63
  371. package/dist/leader/leader.d.ts +16 -0
  372. package/dist/leader/leader.js +43 -3
  373. package/dist/leader/merge.d.ts +9 -1
  374. package/dist/leader/merge.js +16 -1
  375. package/dist/leader/repair-wire.js +1 -1
  376. package/dist/leader/wire.d.ts +36 -3
  377. package/dist/leader/wire.js +59 -18
  378. package/dist/lsp-evict.d.ts +6 -4
  379. package/dist/lsp-evict.js +2 -3
  380. package/dist/memory-embedder-reembed.d.ts +38 -0
  381. package/dist/memory-embedder-reembed.js +20 -0
  382. package/dist/memory-incident-sink.d.ts +0 -28
  383. package/dist/memory-incident-sink.js +5 -0
  384. package/dist/memory-operator-faces.d.ts +5 -4
  385. package/dist/memory-operator-faces.js +1 -1
  386. package/dist/memory-scope.d.ts +31 -4
  387. package/dist/memory-scope.js +65 -16
  388. package/dist/memory-store-refusal.d.ts +20 -4
  389. package/dist/memory-store-refusal.js +1 -1
  390. package/dist/memory-sync-client.d.ts +5 -2
  391. package/dist/memory-sync-client.js +19 -14
  392. package/dist/memory-sync.js +1 -1
  393. package/dist/model-compat.d.ts +51 -28
  394. package/dist/model-compat.js +55 -23
  395. package/dist/model-context-window.d.ts +18 -0
  396. package/dist/model-context-window.js +2 -0
  397. package/dist/model-entry-headers.d.ts +46 -4
  398. package/dist/model-entry-headers.js +2 -2
  399. package/dist/model-entry-refusal.d.ts +46 -17
  400. package/dist/model-entry-refusal.js +47 -27
  401. package/dist/model-plane-face.d.ts +19 -11
  402. package/dist/model-plane-face.js +9 -1
  403. package/dist/model-plane-probe.d.ts +2 -0
  404. package/dist/model-plane-probe.js +17 -0
  405. package/dist/model-provider.d.ts +3 -3
  406. package/dist/model-route-endpoint.d.ts +9 -5
  407. package/dist/model-route-endpoint.js +29 -7
  408. package/dist/model-select.d.ts +16 -0
  409. package/dist/model-select.js +4 -0
  410. package/dist/mountinfo.d.ts +37 -0
  411. package/dist/mountinfo.js +47 -0
  412. package/dist/namespaced-rule-name.d.ts +28 -2
  413. package/dist/namespaced-rule-name.js +10 -1
  414. package/dist/net-address.d.ts +1 -1
  415. package/dist/observability/corrupt-read-seat.d.ts +4 -4
  416. package/dist/observability/corrupt-read-seat.js +5 -3
  417. package/dist/observability/fail-open.d.ts +75 -47
  418. package/dist/observability/fail-open.js +77 -47
  419. package/dist/observability/logger.d.ts +22 -1
  420. package/dist/observability/logger.js +89 -12
  421. package/dist/observability/metrics.d.ts +2 -0
  422. package/dist/observability/metrics.js +5 -4
  423. package/dist/observability/otel-exporter.js +2 -1
  424. package/dist/observability/principal-context.d.ts +14 -7
  425. package/dist/observability/principal-context.js +8 -3
  426. package/dist/observability/run-terminal.d.ts +7 -1
  427. package/dist/observability/run-terminal.js +5 -2
  428. package/dist/observability/secret-env-scrub.d.ts +30 -4
  429. package/dist/observability/secret-env-scrub.js +15 -3
  430. package/dist/orchestration/hardened-vm-runner.d.ts +1 -0
  431. package/dist/orchestration/hardened-vm-runner.js +11 -5
  432. package/dist/orchestration/hardened-vm-worker-runner.d.ts +0 -14
  433. package/dist/orchestration/hardened-vm-worker-runner.js +5 -0
  434. package/dist/orchestration/hardened-vm-worker.js +2 -1
  435. package/dist/orchestration/workflow-agent-session-index.d.ts +7 -12
  436. package/dist/orchestration/workflow-agent-session-index.js +1 -6
  437. package/dist/orchestration/workflow-completion-inbox.d.ts +29 -9
  438. package/dist/orchestration/workflow-completion-inbox.js +65 -46
  439. package/dist/org-delivery-gate.d.ts +5 -4
  440. package/dist/org-delivery-gate.js +7 -6
  441. package/dist/org-memory-admission.d.ts +5 -2
  442. package/dist/org-memory-admission.js +25 -10
  443. package/dist/outbound-dispatcher.d.ts +1 -1
  444. package/dist/outbound-dispatcher.js +6 -12
  445. package/dist/owner-brands.d.ts +81 -0
  446. package/dist/owner-brands.js +42 -0
  447. package/dist/owner-faces.d.ts +531 -0
  448. package/dist/owner-faces.js +126 -0
  449. package/dist/parked-decide.d.ts +100 -31
  450. package/dist/parked-decide.js +162 -48
  451. package/dist/parked-revive-surface.d.ts +14 -4
  452. package/dist/parked-revive-surface.js +5 -4
  453. package/dist/peer-directory.d.ts +6 -8
  454. package/dist/peer-directory.js +3 -2
  455. package/dist/permission-rule-vocab.d.ts +53 -8
  456. package/dist/permission-rule-vocab.js +30 -2
  457. package/dist/plugins/adoption-log-sql.d.ts +0 -22
  458. package/dist/plugins/adoption-log-sql.js +5 -3
  459. package/dist/plugins/approval-ask-retired-delete-by-task-m50.d.ts +7 -0
  460. package/dist/plugins/approval-ask-retired-delete-by-task-m50.js +17 -0
  461. package/dist/plugins/approval-ask-store-file.d.ts +28 -9
  462. package/dist/plugins/approval-ask-store-file.js +74 -18
  463. package/dist/plugins/approval-ask-store-memory.d.ts +17 -7
  464. package/dist/plugins/approval-ask-store-memory.js +35 -12
  465. package/dist/plugins/approval-ask-store-sql.d.ts +42 -20
  466. package/dist/plugins/approval-ask-store-sql.js +44 -11
  467. package/dist/plugins/approval-exemption-skill-m46.d.ts +20 -0
  468. package/dist/plugins/approval-exemption-skill-m46.js +25 -0
  469. package/dist/plugins/approval-exemption-store.d.ts +6 -1
  470. package/dist/plugins/approval-exemption-store.js +14 -0
  471. package/dist/plugins/approval-nonce-store.d.ts +39 -12
  472. package/dist/plugins/approval-nonce-store.js +72 -23
  473. package/dist/plugins/blob-backend.d.ts +40 -195
  474. package/dist/plugins/blob-backend.js +41 -234
  475. package/dist/plugins/caching-session-store.d.ts +22 -5
  476. package/dist/plugins/caching-session-store.js +43 -4
  477. package/dist/plugins/checkpoint-index-columns.d.ts +33 -6
  478. package/dist/plugins/checkpoint-index-columns.js +39 -3
  479. package/dist/plugins/checkpoint-store-face.d.ts +84 -11
  480. package/dist/plugins/checkpoint-store-face.js +18 -1
  481. package/dist/plugins/device-store-sql.d.ts +2 -2
  482. package/dist/plugins/device-store-sql.js +6 -10
  483. package/dist/plugins/ensure-index.d.ts +13 -1
  484. package/dist/plugins/ensure-index.js +154 -21
  485. package/dist/plugins/ensure-schema-lock-policy.d.ts +0 -15
  486. package/dist/plugins/ensure-schema-lock-policy.js +3 -2
  487. package/dist/plugins/execution-lane-rename-m40.d.ts +20 -0
  488. package/dist/plugins/execution-lane-rename-m40.js +10 -0
  489. package/dist/plugins/execution-placement-sql.d.ts +63 -88
  490. package/dist/plugins/execution-placement-sql.js +94 -54
  491. package/dist/plugins/file-run-store.d.ts +89 -35
  492. package/dist/plugins/file-run-store.js +197 -142
  493. package/dist/plugins/host-platform.d.ts +24 -3
  494. package/dist/plugins/host-platform.js +15 -1
  495. package/dist/plugins/image-bake-store-sql.js +2 -0
  496. package/dist/plugins/imported-layer-root-retirement.d.ts +19 -10
  497. package/dist/plugins/imported-layer-root-retirement.js +4 -8
  498. package/dist/plugins/inbox-payload-column.d.ts +14 -0
  499. package/dist/plugins/inbox-payload-column.js +13 -0
  500. package/dist/plugins/k8s-pod-reaper.d.ts +1 -3
  501. package/dist/plugins/k8s-pod-reaper.js +0 -1
  502. package/dist/plugins/leader-run-store-sql.d.ts +22 -0
  503. package/dist/plugins/leader-run-store-sql.js +34 -4
  504. package/dist/plugins/local-checkpoint-store.d.ts +63 -23
  505. package/dist/plugins/local-checkpoint-store.js +204 -81
  506. package/dist/plugins/local-data-dir-modes-m39.d.ts +48 -0
  507. package/dist/plugins/local-data-dir-modes-m39.js +183 -0
  508. package/dist/plugins/local-docker-capacity.d.ts +93 -0
  509. package/dist/plugins/local-docker-capacity.js +194 -0
  510. package/dist/plugins/local-docker-reaper.d.ts +92 -0
  511. package/dist/plugins/local-docker-reaper.js +102 -0
  512. package/dist/plugins/local-engine-high-water.d.ts +13 -0
  513. package/dist/plugins/local-engine-high-water.js +62 -0
  514. package/dist/plugins/local-session-store.d.ts +442 -143
  515. package/dist/plugins/local-session-store.js +941 -289
  516. package/dist/plugins/local-session-window.d.ts +3 -2
  517. package/dist/plugins/local-session-window.js +3 -2
  518. package/dist/plugins/local-sidecar-quarantine.js +3 -2
  519. package/dist/plugins/local-task-attachment-store.d.ts +20 -1
  520. package/dist/plugins/local-task-attachment-store.js +32 -12
  521. package/dist/plugins/memory-embedder-fingerprint.d.ts +33 -10
  522. package/dist/plugins/memory-embedder-fingerprint.js +52 -12
  523. package/dist/plugins/memory-embedder.d.ts +1 -1
  524. package/dist/plugins/memory-embedder.js +11 -9
  525. package/dist/plugins/memory-engine-pg.d.ts +7 -5
  526. package/dist/plugins/memory-engine-pg.js +18 -9
  527. package/dist/plugins/memory-engine-sql-apply.d.ts +21 -8
  528. package/dist/plugins/memory-engine-sql-apply.js +7 -9
  529. package/dist/plugins/memory-engine-tidb.d.ts +12 -7
  530. package/dist/plugins/memory-engine-tidb.js +18 -10
  531. package/dist/plugins/memory-optout-grant-store-sql.d.ts +1 -1
  532. package/dist/plugins/memory-optout-grant-store-sql.js +3 -3
  533. package/dist/plugins/memory-run-store.d.ts +39 -27
  534. package/dist/plugins/memory-run-store.js +72 -70
  535. package/dist/plugins/one-time-migration-marker.d.ts +10 -0
  536. package/dist/plugins/one-time-migration-marker.js +7 -0
  537. package/dist/plugins/one-time-migrations.d.ts +325 -74
  538. package/dist/plugins/one-time-migrations.js +705 -230
  539. package/dist/plugins/org-delivery-quota-store.js +2 -1
  540. package/dist/plugins/owner-only-file-mode.d.ts +29 -0
  541. package/dist/plugins/owner-only-file-mode.js +141 -0
  542. package/dist/plugins/permission-rule-store-file.d.ts +11 -11
  543. package/dist/plugins/permission-rule-store-file.js +14 -2
  544. package/dist/plugins/permission-rule-store-sql.d.ts +4 -63
  545. package/dist/plugins/permission-rule-store-sql.js +6 -86
  546. package/dist/plugins/pg-pool.d.ts +3 -32
  547. package/dist/plugins/pg-pool.js +27 -11
  548. package/dist/plugins/release-version.d.ts +20 -0
  549. package/dist/plugins/release-version.js +28 -0
  550. package/dist/plugins/remote-env-adb.d.ts +20 -4
  551. package/dist/plugins/remote-env-adb.js +39 -11
  552. package/dist/plugins/remote-env-e2b.d.ts +19 -28
  553. package/dist/plugins/remote-env-e2b.js +40 -29
  554. package/dist/plugins/remote-env-host.d.ts +11 -10
  555. package/dist/plugins/remote-env-host.js +40 -27
  556. package/dist/plugins/remote-env-k8s.d.ts +45 -47
  557. package/dist/plugins/remote-env-k8s.js +122 -62
  558. package/dist/plugins/remote-env-local-docker.d.ts +152 -15
  559. package/dist/plugins/remote-env-local-docker.js +370 -75
  560. package/dist/plugins/remote-env-ssh.d.ts +8 -2
  561. package/dist/plugins/remote-env-ssh.js +26 -24
  562. package/dist/plugins/remote-scratchpad.js +4 -0
  563. package/dist/plugins/remote-shell.d.ts +59 -30
  564. package/dist/plugins/remote-shell.js +175 -62
  565. package/dist/plugins/retention-declaration.d.ts +37 -0
  566. package/dist/plugins/retention-declaration.js +9 -0
  567. package/dist/plugins/retention-deployment.d.ts +158 -0
  568. package/dist/plugins/retention-deployment.js +119 -0
  569. package/dist/plugins/retention-lane-store-sql.d.ts +74 -4
  570. package/dist/plugins/retention-lane-store-sql.js +103 -1
  571. package/dist/plugins/retention-sql.d.ts +29 -0
  572. package/dist/plugins/retention-sql.js +8 -0
  573. package/dist/plugins/run-preview-m45.d.ts +11 -0
  574. package/dist/plugins/run-preview-m45.js +19 -0
  575. package/dist/plugins/run-store-sql.d.ts +56 -68
  576. package/dist/plugins/run-store-sql.js +127 -116
  577. package/dist/plugins/s3-answer.d.ts +2 -1
  578. package/dist/plugins/sandbox-reaper.d.ts +26 -0
  579. package/dist/plugins/sandbox-reaper.js +2 -0
  580. package/dist/plugins/scenario-prefix-switch-m42.d.ts +54 -0
  581. package/dist/plugins/scenario-prefix-switch-m42.js +55 -0
  582. package/dist/plugins/scheduler-support.d.ts +16 -1
  583. package/dist/plugins/scheduler-support.js +22 -2
  584. package/dist/plugins/schema-consistency.d.ts +42 -15
  585. package/dist/plugins/schema-consistency.js +213 -13
  586. package/dist/plugins/schema-drift-sentence.d.ts +4 -1
  587. package/dist/plugins/schema-drift-sentence.js +4 -4
  588. package/dist/plugins/schema-ensure-legs.d.ts +10 -1
  589. package/dist/plugins/schema-ensure-legs.js +12 -2
  590. package/dist/plugins/schema-indexes.js +3 -0
  591. package/dist/plugins/schema-live-columns.d.ts +14 -5
  592. package/dist/plugins/schema-live-columns.js +10 -10
  593. package/dist/plugins/send-user-file.js +2 -1
  594. package/dist/plugins/session-birth.d.ts +37 -0
  595. package/dist/plugins/session-birth.js +38 -0
  596. package/dist/plugins/session-epoch-anchor.d.ts +40 -12
  597. package/dist/plugins/session-epoch-anchor.js +33 -11
  598. package/dist/plugins/session-ext-table.d.ts +98 -0
  599. package/dist/plugins/session-ext-table.js +134 -0
  600. package/dist/plugins/session-fork.d.ts +16 -2
  601. package/dist/plugins/session-fork.js +3 -0
  602. package/dist/plugins/session-ownership.d.ts +1 -1
  603. package/dist/plugins/session-placement.d.ts +22 -16
  604. package/dist/plugins/session-placement.js +15 -12
  605. package/dist/plugins/session-row-sql.d.ts +20 -7
  606. package/dist/plugins/session-row-sql.js +16 -8
  607. package/dist/plugins/session-run-rollup.d.ts +29 -0
  608. package/dist/plugins/session-run-rollup.js +40 -0
  609. package/dist/plugins/session-store-sql.d.ts +157 -0
  610. package/dist/plugins/session-store-sql.js +398 -0
  611. package/dist/plugins/session-withdraw-sql.d.ts +36 -0
  612. package/dist/plugins/session-withdraw-sql.js +42 -0
  613. package/dist/plugins/session-workspace-cell.d.ts +2 -2
  614. package/dist/plugins/session-workspace-cell.js +2 -2
  615. package/dist/plugins/shared-memory-store-sql.d.ts +10 -69
  616. package/dist/plugins/shared-memory-store-sql.js +15 -14
  617. package/dist/plugins/shell-sentinel-owner-m48.d.ts +20 -0
  618. package/dist/plugins/shell-sentinel-owner-m48.js +3 -0
  619. package/dist/plugins/snapshot-bucket-presence.d.ts +2 -1
  620. package/dist/plugins/snapshot-bucket-presence.js +1 -1
  621. package/dist/plugins/sql-driver.d.ts +24 -8
  622. package/dist/plugins/sql-driver.js +43 -9
  623. package/dist/plugins/sql-errors.d.ts +35 -5
  624. package/dist/plugins/sql-errors.js +55 -3
  625. package/dist/plugins/sql-json-column.d.ts +8 -7
  626. package/dist/plugins/sql-json-column.js +10 -6
  627. package/dist/plugins/store-backend.d.ts +114 -18
  628. package/dist/plugins/store-backend.js +340 -87
  629. package/dist/plugins/store-contracts.d.ts +97 -30
  630. package/dist/plugins/store-contracts.js +23 -1
  631. package/dist/plugins/store-fault.d.ts +28 -2
  632. package/dist/plugins/store-fault.js +20 -2
  633. package/dist/plugins/task-attachment-store.d.ts +21 -11
  634. package/dist/plugins/task-attachment-store.js +37 -19
  635. package/dist/plugins/task-list-store-sql.d.ts +1 -1
  636. package/dist/plugins/text-column-capacity.d.ts +21 -0
  637. package/dist/plugins/text-column-capacity.js +5 -0
  638. package/dist/plugins/tidb-pool.d.ts +3 -2
  639. package/dist/plugins/tidb-pool.js +42 -39
  640. package/dist/plugins/user-input-ledger-sql.d.ts +1 -1
  641. package/dist/plugins/web-search.js +5 -3
  642. package/dist/plugins/workflow-run-store-sql.d.ts +6 -1
  643. package/dist/plugins/workflow-run-store-sql.js +11 -5
  644. package/dist/principal-jwt.d.ts +4 -4
  645. package/dist/principal-jwt.js +20 -5
  646. package/dist/principal-shape.d.ts +41 -0
  647. package/dist/principal-shape.js +19 -0
  648. package/dist/question.d.ts +13 -23
  649. package/dist/question.js +21 -39
  650. package/dist/read-face-posture.d.ts +6 -6
  651. package/dist/read-face-posture.js +2 -2
  652. package/dist/request-declaration-refusal.d.ts +35 -12
  653. package/dist/request-declaration-refusal.js +21 -9
  654. package/dist/request-form.d.ts +58 -0
  655. package/dist/request-form.js +72 -0
  656. package/dist/request-image-urls.d.ts +8 -2
  657. package/dist/request-image-urls.js +2 -1
  658. package/dist/request-images.d.ts +20 -0
  659. package/dist/request-images.js +59 -0
  660. package/dist/request-key-closure.d.ts +6 -7
  661. package/dist/request-key-closure.js +15 -2
  662. package/dist/request-value-closure.d.ts +5 -5
  663. package/dist/request-value-closure.js +1 -1
  664. package/dist/resource-suspend.d.ts +7 -16
  665. package/dist/resource-suspend.js +1 -1
  666. package/dist/retired-name-host-notice.d.ts +21 -0
  667. package/dist/retired-name-host-notice.js +12 -0
  668. package/dist/rule-entry-list.d.ts +2 -2
  669. package/dist/rule-entry-list.js +3 -4
  670. package/dist/rule-issue-reading.d.ts +58 -0
  671. package/dist/rule-issue-reading.js +14 -0
  672. package/dist/rules-consent.d.ts +46 -16
  673. package/dist/rules-consent.js +102 -53
  674. package/dist/run-acceptance.d.ts +3 -1
  675. package/dist/run-acceptance.js +3 -0
  676. package/dist/run-local.d.ts +14 -6
  677. package/dist/run-local.js +109 -93
  678. package/dist/run-stale-default.d.ts +7 -0
  679. package/dist/run-stale-default.js +2 -0
  680. package/dist/runs.d.ts +73 -44
  681. package/dist/runs.js +65 -43
  682. package/dist/runtime-caps-resolver.d.ts +36 -14
  683. package/dist/runtime-caps-resolver.js +31 -14
  684. package/dist/runtime-governance.d.ts +2 -2
  685. package/dist/runtime-governance.js +5 -3
  686. package/dist/sealed-key-layout.d.ts +12 -6
  687. package/dist/sealed-key-layout.js +5 -1
  688. package/dist/sealed-key.d.ts +12 -2
  689. package/dist/sealed-key.js +116 -26
  690. package/dist/security.d.ts +133 -161
  691. package/dist/security.js +163 -59
  692. package/dist/sema-config-dir.d.ts +20 -0
  693. package/dist/sema-config-dir.js +27 -2
  694. package/dist/server-secret-env.d.ts +23 -5
  695. package/dist/server-secret-env.js +14 -4
  696. package/dist/service-version.d.ts +2 -1
  697. package/dist/service-version.js +2 -2
  698. package/dist/session-children-retire.d.ts +7 -5
  699. package/dist/session-children-retire.js +7 -2
  700. package/dist/session-deletion.d.ts +88 -0
  701. package/dist/session-deletion.js +8 -0
  702. package/dist/session-erase.d.ts +145 -0
  703. package/dist/session-erase.js +115 -0
  704. package/dist/session-error-wire.d.ts +6 -6
  705. package/dist/session-error-wire.js +1 -1
  706. package/dist/session-incarnation.d.ts +60 -10
  707. package/dist/session-incarnation.js +19 -2
  708. package/dist/session-policy-wire.d.ts +6 -3
  709. package/dist/session-policy-wire.js +11 -1
  710. package/dist/session-resident-background.d.ts +29 -47
  711. package/dist/session-resident-background.js +77 -8
  712. package/dist/session-row.d.ts +3 -2
  713. package/dist/session-rules-seat.d.ts +12 -0
  714. package/dist/session-rules-seat.js +19 -0
  715. package/dist/session-sync-kernel.d.ts +1 -1
  716. package/dist/session-titler.d.ts +7 -15
  717. package/dist/session-titler.js +1 -1
  718. package/dist/session-workspace.d.ts +11 -2
  719. package/dist/session-workspace.js +5 -0
  720. package/dist/sighup-idle.d.ts +1 -1
  721. package/dist/spec-fields.d.ts +57 -3
  722. package/dist/spec-fields.js +72 -51
  723. package/dist/store-posture.d.ts +138 -21
  724. package/dist/store-posture.js +188 -3
  725. package/dist/stored-request-hooks-m20.d.ts +3 -2
  726. package/dist/stored-request-hooks-m20.js +21 -16
  727. package/dist/stores-sql/background-agent-store-sql.d.ts +11 -2
  728. package/dist/stores-sql/background-agent-store-sql.js +73 -20
  729. package/dist/stores-sql/blob-index-sql.d.ts +148 -0
  730. package/dist/stores-sql/blob-index-sql.js +154 -0
  731. package/dist/stores-sql/checkpoint-store-sql.d.ts +34 -29
  732. package/dist/stores-sql/checkpoint-store-sql.js +86 -71
  733. package/dist/{plugins → stores-sql}/file-history-store-sql.d.ts +23 -11
  734. package/dist/{plugins → stores-sql}/file-history-store-sql.js +23 -18
  735. package/dist/stores-sql/mailbox-store-sql.d.ts +7 -4
  736. package/dist/stores-sql/mailbox-store-sql.js +31 -32
  737. package/dist/{plugins → stores-sql}/pg-session-storage.d.ts +30 -81
  738. package/dist/{plugins → stores-sql}/pg-session-storage.js +123 -244
  739. package/dist/{plugins → stores-sql}/retention-store-sql.d.ts +197 -223
  740. package/dist/{plugins → stores-sql}/retention-store-sql.js +148 -207
  741. package/dist/{plugins → stores-sql}/session-event-payload.d.ts +1 -1
  742. package/dist/{plugins → stores-sql}/session-event-payload.js +1 -1
  743. package/dist/stores-sql/session-policy-store-sql.d.ts +33 -11
  744. package/dist/stores-sql/session-policy-store-sql.js +44 -36
  745. package/dist/stores-sql/session-write-hooks.d.ts +65 -0
  746. package/dist/stores-sql/session-write-hooks.js +2 -0
  747. package/dist/{plugins → stores-sql}/tidb-session-storage.d.ts +14 -15
  748. package/dist/{plugins → stores-sql}/tidb-session-storage.js +22 -28
  749. package/dist/{plugins → stores-sql}/tidb-session-store.d.ts +67 -138
  750. package/dist/{plugins → stores-sql}/tidb-session-store.js +130 -200
  751. package/dist/stores-sql/tool-result-store-sql.d.ts +1 -1
  752. package/dist/stores-sql/tool-result-store-sql.js +1 -1
  753. package/dist/stores-sql/windowed-session-storage.d.ts +61 -0
  754. package/dist/stores-sql/windowed-session-storage.js +70 -0
  755. package/dist/submission-exit.d.ts +50 -0
  756. package/dist/submission-exit.js +108 -0
  757. package/dist/task-a2a.d.ts +7 -1
  758. package/dist/task-a2a.js +18 -17
  759. package/dist/task-cwd.d.ts +31 -3
  760. package/dist/task-cwd.js +25 -1
  761. package/dist/task-mcp.d.ts +11 -3
  762. package/dist/task-mcp.js +16 -19
  763. package/dist/task-settings.d.ts +23 -14
  764. package/dist/task-settings.js +35 -13
  765. package/dist/terminal.d.ts +25 -43
  766. package/dist/terminal.js +31 -11
  767. package/dist/tool-approval.d.ts +152 -137
  768. package/dist/tool-approval.js +199 -199
  769. package/dist/trace/core-keyset-guard.d.ts +22 -9
  770. package/dist/trace/core-vocab-wire.d.ts +95 -0
  771. package/dist/trace/core-vocab-wire.js +15 -0
  772. package/dist/trace/engine-notice-wire.d.ts +1 -1
  773. package/dist/trace/engine-notice-wire.js +2 -0
  774. package/dist/trace/exit-seat.d.ts +52 -4
  775. package/dist/trace/exit-seat.js +43 -36
  776. package/dist/trace/extension-call-face.d.ts +3 -2
  777. package/dist/trace/extension-call-face.js +3 -1
  778. package/dist/trace/ledger-events.d.ts +4 -7
  779. package/dist/trace/ledger-sink.d.ts +1 -30
  780. package/dist/trace/ledger-sink.js +0 -11
  781. package/dist/trace/model-segment.d.ts +5 -5
  782. package/dist/trace/model-segment.js +5 -5
  783. package/dist/trace/project.d.ts +88 -58
  784. package/dist/trace/project.js +64 -28
  785. package/dist/trace/redact.d.ts +124 -28
  786. package/dist/trace/redact.js +936 -328
  787. package/dist/trace/self-minted-wire.d.ts +750 -29
  788. package/dist/trace/self-minted-wire.js +262 -25
  789. package/dist/trace/sema-provenance.d.ts +45 -41
  790. package/dist/trace/sema-provenance.js +81 -10
  791. package/dist/trace/task-notification-facets.d.ts +70 -2
  792. package/dist/trace/task-notification-facets.js +71 -1
  793. package/dist/trace/wire-projection-faces.d.ts +43 -8
  794. package/dist/trace/wire-projection-faces.js +28 -3
  795. package/dist/unread-request-members.d.ts +66 -0
  796. package/dist/unread-request-members.js +41 -0
  797. package/dist/upstream-body.d.ts +23 -0
  798. package/dist/upstream-body.js +16 -0
  799. package/dist/url-refusal.d.ts +3 -3
  800. package/dist/url-refusal.js +11 -4
  801. package/dist/user-authored-text.d.ts +1 -1
  802. package/dist/user-input-ledger.d.ts +7 -8
  803. package/dist/user-input-ledger.js +1 -1
  804. package/dist/web-admin-client/apply-effective.d.ts +6 -3
  805. package/dist/web-admin-client/apply-effective.js +33 -40
  806. package/dist/web-admin-client/apply-ledger.d.ts +16 -7
  807. package/dist/web-admin-client/apply-ledger.js +5 -2
  808. package/dist/web-admin-client/candidate-gate.d.ts +35 -3
  809. package/dist/web-admin-client/candidate-gate.js +53 -5
  810. package/dist/web-admin-client/center-request.d.ts +6 -3
  811. package/dist/web-admin-client/center-request.js +17 -16
  812. package/dist/web-admin-client/effective-keys.d.ts +1 -1
  813. package/dist/web-admin-client/effective-keys.js +1 -2
  814. package/dist/web-admin-client/entry-metadata.d.ts +8 -0
  815. package/dist/web-admin-client/entry-metadata.js +13 -0
  816. package/dist/web-admin-client/facade.d.ts +1 -1
  817. package/dist/web-admin-client/http-client.d.ts +2 -1
  818. package/dist/web-admin-client/http-client.js +40 -13
  819. package/dist/web-admin-client/mcp-revocation.d.ts +1 -1
  820. package/dist/web-admin-client/mcp-revocation.js +2 -1
  821. package/dist/web-admin-client/read-warnings.d.ts +1 -0
  822. package/dist/web-admin-client/read-warnings.js +1 -0
  823. package/dist/web-admin-client/restart-signal.js +13 -6
  824. package/dist/web-admin-client/skills-mcp.d.ts +22 -8
  825. package/dist/web-admin-client/skills-mcp.js +26 -21
  826. package/dist/web-admin-client/types.d.ts +35 -51
  827. package/dist/workspace-space.d.ts +3 -2
  828. package/docs/DEVICE-EXECUTOR-PROTOCOL.md +4 -4
  829. package/package.json +16 -12
  830. package/scripts/drain-check-local.mjs +118 -173
  831. package/scripts/drain-check.mysql.sql +20 -16
  832. package/scripts/drain-check.pg.sql +20 -16
  833. package/wire-changes/server@7.147.0.json +813 -0
  834. package/wire-changes/server@7.148.0.json +1517 -0
  835. package/dist/http/memory-control-plane-corrupt-reply.d.ts +0 -25
  836. package/dist/http/memory-control-plane-corrupt-reply.js +0 -19
  837. package/dist/http/memory-layer-reply.d.ts +0 -30
  838. package/dist/http/memory-layer-reply.js +0 -24
  839. package/dist/lsp/e2b-bridge.d.ts +0 -57
  840. package/dist/lsp/e2b-bridge.js +0 -139
  841. package/dist/lsp/e2b-manager.d.ts +0 -93
  842. package/dist/lsp/e2b-manager.js +0 -178
  843. package/dist/lsp/lsp-frames.d.ts +0 -14
  844. package/dist/lsp/lsp-frames.js +0 -25
  845. package/dist/lsp/manager.d.ts +0 -129
  846. package/dist/lsp/manager.js +0 -127
  847. package/dist/lsp/types.d.ts +0 -12
  848. package/dist/lsp/types.js +0 -2
  849. package/dist/lsp/ws-transport.d.ts +0 -40
  850. package/dist/lsp/ws-transport.js +0 -210
@@ -11,7 +11,10 @@ export interface OlderWayOut {
11
11
  * 🔴 **没有销毁性的一条**:对带数据的库,任何「删库 / 重建」的指路都是教人销毁数据。
12
12
  */
13
13
  export declare function schemaWaysOut(older: OlderWayOut): readonly string[];
14
- /** 缺列方向的出路段(整库对账与单表探针共用;逐字钉在 `test/schema-consistency.test.ts` ⑤)。 */
14
+ /**
15
+ * 旧方向的出路段(整库对账与单表探针共用;逐字钉在 `test/schema-consistency.test.ts` ⑤)。「旧」= 缺列,或声明非空而库里仍允许 NULL 的列;
16
+ * 打印的是语句集,不只是 ADD COLUMN:要值列的值只有部署者知道(回填那一步以注释行给出),所以这一条把「值归部署者」和「打印的语句全部生效之前拒启不松」写明。
17
+ */
15
18
  export declare const SCHEMA_MISMATCH_WAYS_OUT: readonly string[];
16
19
  /** 探针读口:一条 SQL → `{ rows }`(各 `assert*Schema` 的 `query` 形)。 */
17
20
  export type ProbeQuery = (sql: string) => Promise<{
@@ -8,8 +8,8 @@ export function schemaWaysOut(older) {
8
8
  ];
9
9
  }
10
10
  export const SCHEMA_MISMATCH_WAYS_OUT = schemaWaysOut({
11
- when: "missing columns",
12
- action: "run the ALTER TABLE … ADD COLUMN statements printed above yourself",
11
+ when: "missing columns, or columns that allow NULL where this build declares NOT NULL",
12
+ action: "run the statements printed above yourself (where a column needs a value this build cannot choose for rows already in the table, the printed comment says so and that value is yours; this refusal stays until every printed statement has taken effect)",
13
13
  });
14
14
  export async function describeProbedTableDrift(query, dialect, tables) {
15
15
  const d = dialect === "pg" ? "pg" : "mysql";
@@ -18,9 +18,9 @@ export async function describeProbedTableDrift(query, dialect, tables) {
18
18
  try {
19
19
  const sc = await import("./schema-consistency.js");
20
20
  const diff = sc.diffSchema(await sc.expectedTableShapes(d), await readLiveColumns(read, d));
21
- const missingOnly = diff.filter((m) => tables.includes(m.table) && m.missing.length > 0).map((m) => ({ ...m, ghost: [] }));
21
+ const missingOnly = diff.filter((m) => tables.includes(m.table) && m.missing.length > 0).map((m) => ({ ...m, ghost: [], tightened: [] }));
22
22
  if (missingOnly.length > 0)
23
- return sc.describeMismatchedTables(missingOnly).join("\n");
23
+ return sc.describeMismatchedTables(d, missingOnly).join("\n");
24
24
  why = "this build's table definitions list no column that the database lacks on that table, so the probe and the definitions disagree";
25
25
  }
26
26
  catch (err) {
@@ -2,11 +2,20 @@ import type { PgQueryFn } from "./pg-query.js";
2
2
  import type { SqlDialect } from "./sql-driver.js";
3
3
  /** advisory lock 语句 —— 与 schema 无关,录制时跳过(但要答成功,否则 ensure* 走降级告警路径)。 */
4
4
  export declare const LOCK_RE: RegExp;
5
+ /**
6
+ * [ref] `ensureIndex` 的**索引在场**探针(MySQL 臂)。答「在场」——因为**新建库**上这批索引本来就随
7
+ * `CREATE TABLE` 的内联 `KEY` 一起到货,而基线按定义 =「启动时对一个新库真会执行的东西」。答"零行"会让
8
+ * 录制里凭空多出 68 条**新建库上永不发生**的 `ALTER TABLE … ADD INDEX`,基线就成了一份撒谎的产物。
9
+ * ⚠️ 这条特判**只**放行索引探针:任何别的 `information_schema` 探针照旧答零行 ⇒ 残留的「探列→ALTER」
10
+ * seam 仍会真的发出 ALTER 并被基线生成器的 `SeamViolation`(`scripts/dump-schema.ts`)当场抓住
11
+ * (SCHEMA POLICY 的那半一个字没松)。
12
+ */
13
+ export declare const INDEX_PROBE_RE: RegExp;
5
14
  /**
6
15
  * **「一个新库对 ensure 探针怎么答」的唯一属主**(合并复审 车HB 后收口:此前生成器录制器、`test/ensure-schema.test.ts`
7
16
  * 的假池、`test/schema-baseline-generated.test.ts` ③c 的假驱动各抄一份,[ref] 加了索引探针 + PG 锁改 `got === true`
8
17
  * 之后三份各漂一处 —— 假池答零行诱发 68 条 ALTER、③c 答 `got: 1` 让 PG 锁永远拿不到)。
9
- * 返回 `undefined` = 不是探针,由调用方录制 / 执行;三条例外的理由见上面三条正则的注。
18
+ * 返回 `undefined` = 不是探针,由调用方录制 / 执行;四条例外的理由见上面三条正则与 {@link newDatabaseSessionMetaKeyCollation} 的注。
10
19
  */
11
20
  export declare function answerEnsureProbe(text: string): {
12
21
  rows: Record<string, unknown>[];
@@ -1,4 +1,5 @@
1
- import { ensureSchema } from "./tidb-pool.js";
1
+ import { SCHEMA_STATEMENTS, ensureSchema } from "./tidb-pool.js";
2
+ import { SESSION_META_KEY_COLLATION_PROBE } from "./session-ext-table.js";
2
3
  import { ensurePgSchema } from "./pg-pool.js";
3
4
  import { ensureTiDBMemoryEngineSchema } from "./memory-engine-tidb.js";
4
5
  import { ensurePgMemoryEngineSchema } from "./memory-engine-pg.js";
@@ -13,8 +14,15 @@ import { ensureTiDBUsageWindowSchema, ensurePgUsageWindowSchema } from "../store
13
14
  import { ensureTiDBTaskListSchema, ensurePgTaskListSchema } from "./task-list-store-sql.js";
14
15
  import { ensureTiDBDeviceSchema, ensurePgDeviceSchema } from "./device-store-sql.js";
15
16
  export const LOCK_RE = /GET_LOCK|RELEASE_LOCK|pg_(try_)?advisory/i;
16
- const INDEX_PROBE_RE = /FROM information_schema\.statistics\b/i;
17
+ export const INDEX_PROBE_RE = /^\s*SHOW\s+INDEX\s+FROM\b/i;
17
18
  const PG_INDEX_VALID_RE = /FROM pg_index i WHERE i\.indexrelid = to_regclass/i;
19
+ function newDatabaseSessionMetaKeyCollation() {
20
+ const stmt = SCHEMA_STATEMENTS.find((s) => s.includes("CREATE TABLE IF NOT EXISTS session_meta ("));
21
+ const m = stmt === undefined ? null : /\)\s*COLLATE\s+([A-Za-z0-9_]+)\s*$/.exec(stmt);
22
+ if (m === null)
23
+ throw new Error("schema-ensure-legs: the central session_meta statement carries no table-level COLLATE — cannot answer the session_ext key-collation probe for a new database");
24
+ return { cs: m[1].split("_")[0], coll: m[1] };
25
+ }
18
26
  export function answerEnsureProbe(text) {
19
27
  if (LOCK_RE.test(text))
20
28
  return { rows: [{ got: true }] };
@@ -22,6 +30,8 @@ export function answerEnsureProbe(text) {
22
30
  return { rows: [{ present: 1 }] };
23
31
  if (PG_INDEX_VALID_RE.test(text))
24
32
  return { rows: [{ indisvalid: true }] };
33
+ if (text === SESSION_META_KEY_COLLATION_PROBE)
34
+ return { rows: [newDatabaseSessionMetaKeyCollation()] };
25
35
  return undefined;
26
36
  }
27
37
  function recorder() {
@@ -7,6 +7,7 @@ export const CENTRAL_SCHEMA_INDEXES = [
7
7
  { table: "task_active", name: "idx_task_active_task", columns: ["task_id"] },
8
8
  { table: "checkpoint", name: "idx_checkpoint_status_deadline", columns: ["status", "deadline"] },
9
9
  { table: "checkpoint", name: "idx_checkpoint_session_status", columns: ["session_id", "status"] },
10
+ { table: "checkpoint", name: "idx_checkpoint_host_session_status", columns: ["host_session_id", "status"] },
10
11
  { table: "resume_anchor", name: "idx_resume_anchor_session", columns: ["session_id"] },
11
12
  { table: "approval_nonce", name: "idx_approval_nonce_expires", columns: ["expires_at_ms"] },
12
13
  { table: "user_input_acceptance", name: "idx_user_input_acceptance_session", columns: ["session_id", "state", "accepted_at_ms"] },
@@ -17,6 +18,7 @@ export const CENTRAL_SCHEMA_INDEXES = [
17
18
  { table: "snapshot_blob", name: "idx_snapshot_blob_created", columns: ["created_at"] },
18
19
  { table: "file_history_version", name: "idx_file_history_version_blob", columns: ["blob_hash"] },
19
20
  { table: "file_history_boundary_file", name: "idx_file_history_bf_key", columns: ["scope", "key_hash"] },
21
+ { table: "file_history_boundary", name: "uq_file_history_boundary_seq", columns: ["scope", "publish_seq"], unique: true },
20
22
  { table: "file_history_blob", name: "idx_file_history_blob_created", columns: ["created_at"] },
21
23
  { table: "workflow_run", name: "idx_wfrun_scope_created", columns: ["scope", "created_at_ms"] },
22
24
  { table: "workflow_run", name: "idx_wfrun_scope_status", columns: ["scope", "status"] },
@@ -24,6 +26,7 @@ export const CENTRAL_SCHEMA_INDEXES = [
24
26
  { table: "workflow_park_decision", name: "idx_wfparkdec_host", columns: ["host_session_id"] },
25
27
  { table: "workflow_park_decision", name: "idx_wfparkdec_run", columns: ["run_id"] },
26
28
  { table: "workflow_completion_inbox", name: "idx_wfinbox_session_seq", columns: ["session_id", "seq"] },
29
+ { table: "workflow_completion_inbox", name: "uq_wfinbox_seq", columns: ["seq"], unique: true },
27
30
  { table: "workflow_inbox_fence", name: "idx_wffence_until", columns: ["until_ms"] },
28
31
  { table: "workflow_notify_journal", name: "idx_wfnotify_acked", columns: ["acked"] },
29
32
  { table: "shared_memory_store", name: "idx_shared_memory_store_scope", columns: ["scope_key", "store_id"] },
@@ -1,20 +1,29 @@
1
1
  /**
2
- * 库里**实际**的列集 —— 唯一读者([ref] 列册探针 `schema-consistency.ts` 的对账读它;`ensure-index.ts` 的索引补建在失败之后判「是不是这张表
2
+ * 库里**实际**的列册 —— 唯一读者([ref] 列册探针 `schema-consistency.ts` 的对账读它;`ensure-index.ts` 的索引补建在失败之后判「是不是这张表
3
3
  * 缺这条索引的列」也读它)。叶子模块:不值依赖任何模块(列册探针那边经录制驱动 / 建表腿值依赖 `ensure-index.ts`,读者若住在那边,
4
4
  * `ensure-index.ts` 读它就是一个运行时环)。方言词是 `ensure-index.ts` 的闭集(类型边,擦除)。
5
+ *
6
+ * 一个读者、一次读:同一张目录视图的同一批行同时回答「哪些列在」(键)与「它允许 NULL 吗」(值)。两方言的「读哪张表 / 哪个 schema」
7
+ * (MySQL 协议 = 连接上的库;PG = `search_path` 次序里的首次命中)只在这里写一遍;只问列在不在的读者(索引补建、退役 schema 判)用 `Map.has`,不看值。
5
8
  */
6
9
  import type { SqlDialect } from "./sql-driver.js";
7
10
  /** 探针读口:一条 SQL → 行数组(两方言由调用方各自绑)。 */
8
11
  export type SchemaProbeRead = (sql: string) => Promise<Array<Record<string, unknown>>>;
12
+ /** 库里一列的实况。`nullable` = 目录的 `is_nullable` 是 `YES`(两个目录都是 `YES` / `NO` 的闭集;读数里没有 `n` 或不是 `YES` ⇒ 不算可空,只有目录明说可空的列才被判)。 */
13
+ export interface LiveColumn {
14
+ readonly nullable: boolean;
15
+ }
16
+ /** 库里实际的列册:表名 → (列名 → 实况)。读者交出的是只读视图(消费方只问 `has` / `get`)。 */
17
+ export type LiveColumns = ReadonlyMap<string, ReadonlyMap<string, LiveColumn>>;
9
18
  /**
10
- * 库里实际的列集(表名 → 列名集合)。
19
+ * 库里实际的列册(表名 → 列名 → { nullable })。
11
20
  *
12
21
  * 🔴 **PG 侧读的是「查询真正会解析到的那个关系」,不是 `current_schema()`**(codex 对抗复审本轮 [medium]
13
22
  * 采纳):店里的 SQL 全是**不限定 schema** 的裸表名,它按 `search_path` **逐个** schema 解析,命中第一个;
14
23
  * 而 `current_schema()` 只是路径的第一段。两者不等的部署是真的存在(角色的 `search_path` 配了多段),那时
15
24
  * 只读第一段会让探针对「表其实住在路径后段、而且缺列」这一形**完全沉默**。⇒ 按 `current_schemas(false)`
16
- * 的**顺序**取每张表的第一次命中 —— 探针于是与执行器看同一张表。MySQL 协议没有这个概念(库 = 连接上的
17
- * `DATABASE()`),那条臂一个字不变。
25
+ * 的**顺序**取每张表的第一次命中 —— 探针于是与执行器看同一张表(列在不在、可不可空对同一张表说话)。MySQL 协议没有这个概念(库 = 连接上的
26
+ * `DATABASE()`),那条臂只有选择列多一格。
18
27
  */
19
- export declare function readLiveColumns(read: SchemaProbeRead, dialect: SqlDialect): Promise<Map<string, Set<string>>>;
28
+ export declare function readLiveColumns(read: SchemaProbeRead, dialect: SqlDialect): Promise<LiveColumns>;
20
29
  //# sourceMappingURL=schema-live-columns.d.ts.map
@@ -1,8 +1,8 @@
1
1
  export async function readLiveColumns(read, dialect) {
2
2
  const live = new Map();
3
3
  if (dialect !== "pg") {
4
- for (const row of await read("SELECT table_name AS t, column_name AS c FROM information_schema.columns WHERE table_schema = DATABASE()")) {
5
- addColumn(live, row["t"], row["c"], "fold");
4
+ for (const row of await read("SELECT table_name AS t, column_name AS c, is_nullable AS n FROM information_schema.columns WHERE table_schema = DATABASE()")) {
5
+ addColumn(live, row["t"], row["c"], row["n"], "fold");
6
6
  }
7
7
  return live;
8
8
  }
@@ -13,7 +13,7 @@ export async function readLiveColumns(read, dialect) {
13
13
  order.set(s, Number(row["ord"]));
14
14
  }
15
15
  const winner = new Map();
16
- for (const row of await read("SELECT table_schema AS s, table_name AS t, column_name AS c FROM information_schema.columns WHERE table_schema = ANY (current_schemas(false))")) {
16
+ for (const row of await read("SELECT table_schema AS s, table_name AS t, column_name AS c, is_nullable AS n FROM information_schema.columns WHERE table_schema = ANY (current_schemas(false))")) {
17
17
  const t = String(row["t"] ?? "");
18
18
  const rank = order.get(String(row["s"] ?? "")) ?? Number.MAX_SAFE_INTEGER;
19
19
  const held = winner.get(t);
@@ -23,20 +23,20 @@ export async function readLiveColumns(read, dialect) {
23
23
  winner.set(t, rank);
24
24
  live.delete(t);
25
25
  }
26
- addColumn(live, t, row["c"], "verbatim");
26
+ addColumn(live, t, row["c"], row["n"], "verbatim");
27
27
  }
28
28
  return live;
29
29
  }
30
- function addColumn(live, table, column, mode) {
30
+ function addColumn(live, table, column, isNullable, mode) {
31
31
  const t = mode === "fold" ? String(table ?? "").toLowerCase() : String(table ?? "");
32
32
  const c = mode === "fold" ? String(column ?? "").toLowerCase() : String(column ?? "");
33
33
  if (t === "" || c === "")
34
34
  return;
35
- let set = live.get(t);
36
- if (set === undefined) {
37
- set = new Set();
38
- live.set(t, set);
35
+ let columns = live.get(t);
36
+ if (columns === undefined) {
37
+ columns = new Map();
38
+ live.set(t, columns);
39
39
  }
40
- set.add(c);
40
+ columns.set(c, { nullable: String(isNullable ?? "").toUpperCase() === "YES" });
41
41
  }
42
42
  //# sourceMappingURL=schema-live-columns.js.map
@@ -3,6 +3,7 @@ import { uuidv7 } from "@sema-agent/core";
3
3
  import { stripControlAndBidi } from "@sema-agent/settings-schema";
4
4
  import { presignS3CopyUrl, presignS3Url } from "./s3-presign.js";
5
5
  import { OBJECT_STORE_IO_TIMEOUT_MS } from "./blob-backend.js";
6
+ import { createEgressFetch } from "../egress-redirect.js";
6
7
  export const PRESIGN_MAX_TTL_SEC = 604_800;
7
8
  export function scopeSegment(secretKey, scope) {
8
9
  if (scope === undefined || scope === "")
@@ -27,7 +28,7 @@ export function sanitizeSendFileName(name) {
27
28
  return clean.length > 0 ? clean : "file";
28
29
  }
29
30
  export function createSendUserFileIssuer(cfg, deps) {
30
- const f = deps?.fetchImpl ?? fetch;
31
+ const f = createEgressFetch("declare the final object-store address as MINIO_ENDPOINT / S3_ENDPOINT", deps?.fetchImpl);
31
32
  const bounded = () => ({ signal: AbortSignal.timeout(OBJECT_STORE_IO_TIMEOUT_MS) });
32
33
  const upload = deps?.upload ??
33
34
  (async (bucket, key, bytes) => {
@@ -0,0 +1,37 @@
1
+ /**
2
+ * **会话的出生回执与条件撤回** —— 会话店交给提交出口(`src/submission-exit.ts`)的两张窄面。引擎的 `SessionStore` 接口一个字节不动
3
+ * (`register(): Promise<void>` 照旧);本服务的店在它旁边各多一只方法,包装 / 转发层逐个转发。
4
+ *
5
+ * ## 出生回执({@link SessionBirthFace.registerWithReceipt})
6
+ * 与 `register` 同一笔写、同一条首写律;**只有这一笔真建了新行**时交回候选化身({@link SessionBirth}:这一次 INSERT 的入参里铸的那一只,
7
+ * 不是登记之后的复读)。已在的行、并发登记里输的那一只 ⇒ 不交候选。出生事实不在这里判:撤回事务锁住根行之后读到的
8
+ * 化身**等于**候选,才是「这一次提交铸下了这只会话」(两只同属主的并发登记只有赢家的候选进了行)。
9
+ *
10
+ * ## 条件撤回({@link SessionWithdrawFace.withdrawBirth})
11
+ * 一只事务 / 一把根锁里:锁根行 → 行不在 ⇒ `absent`;化身或属主不是候选那一位 ⇒ `incarnation` → 有可撤集合之外的会话条目 ⇒ `content`
12
+ * → 认领在(判官 `judgeSessionWrite` 的 `delete` 臂)⇒ `claim` → 客户端写过(计数 > 0)⇒ `client_writes` → 有本次 run 之外的 run 行 ⇒ `runs`
13
+ * → 撤回出口还没启用(一次性迁移的标记未落)⇒ `upgrade_pending` → 否则删本次 run 的部署行 + 会话行(旁表随外键级联)。每一读都是**锁定读**
14
+ * (TiDB 悲观事务里普通 SELECT 读的是事务开始时的快照,看不到等锁期间提交的写;两方言一律 `FOR UPDATE`)。
15
+ */
16
+ import type { SessionTreeEntry } from "@sema-agent/core";
17
+ import type { RegisterReceipt, SessionBirth, WithdrawOutcome } from "../session-incarnation.js";
18
+ /** 出生回执面(会话店的窄面;`register` 的同笔写形)。 */
19
+ export interface SessionBirthFace {
20
+ registerWithReceipt(sessionId: string, owner: string | null): Promise<RegisterReceipt>;
21
+ }
22
+ /** 条件撤回面(会话店的窄面;部署装配在店上,一只事务里判完、删完)。`ownTaskId` = 本次提交认领赢的那条 run(没有 ⇒ 缺)。 */
23
+ export interface SessionWithdrawFace {
24
+ withdrawBirth(birth: SessionBirth, ownTaskId: string | undefined): Promise<WithdrawOutcome>;
25
+ }
26
+ /** 店上的出生回执面(没有 ⇒ `undefined`:登记照走 `register`,不交候选 ⇒ 这只会话永不撤回)。 */
27
+ export declare function birthFaceOf(store: unknown): SessionBirthFace | undefined;
28
+ /** 店上的条件撤回面(没有 ⇒ `undefined`:候选不交给出口 ⇒ 永不撤回)。 */
29
+ export declare function withdrawFaceOf(store: unknown): SessionWithdrawFace | undefined;
30
+ /**
31
+ * 可撤集合的 A 组:引擎在受理之前 / 收尾时写下的记账条目(不进模型上下文的那些型)。引擎的条目型闭集逐型判 —— 引擎加一型 ⇒ 这里编译红,
32
+ * 新型归哪一边由人定。`false` 的五型(消息 / 会进上下文的自定义消息 / 压缩 / 标签 / 会话信息)= 内容:有一条 ⇒ 留(`content`)。
33
+ */
34
+ export declare function entryTypeWithdrawable(type: SessionTreeEntry["type"]): boolean;
35
+ /** A 组的型名单(SQL 锁定读的 `NOT IN` 参数;由 {@link entryTypeWithdrawable} 派生,不手写第二份)。 */
36
+ export declare const WITHDRAWABLE_ENTRY_TYPES: readonly SessionTreeEntry["type"][];
37
+ //# sourceMappingURL=session-birth.d.ts.map
@@ -0,0 +1,38 @@
1
+ export function birthFaceOf(store) {
2
+ const s = store;
3
+ return typeof s?.registerWithReceipt === "function" ? { registerWithReceipt: s.registerWithReceipt.bind(s) } : undefined;
4
+ }
5
+ export function withdrawFaceOf(store) {
6
+ const s = store;
7
+ return typeof s?.withdrawBirth === "function" ? { withdrawBirth: s.withdrawBirth.bind(s) } : undefined;
8
+ }
9
+ export function entryTypeWithdrawable(type) {
10
+ switch (type) {
11
+ case "thinking_level_change":
12
+ case "model_change":
13
+ case "custom":
14
+ case "leaf":
15
+ case "prompt_epoch":
16
+ case "announced_listing":
17
+ case "git_announcement":
18
+ case "workspace_state":
19
+ case "session_checkout":
20
+ case "reminder_mark":
21
+ return true;
22
+ case "message":
23
+ case "custom_message":
24
+ case "compaction":
25
+ case "label":
26
+ case "session_info":
27
+ return false;
28
+ default: {
29
+ const unknownType = type;
30
+ throw new Error(`entryTypeWithdrawable: no entry type ${JSON.stringify(unknownType)}`);
31
+ }
32
+ }
33
+ }
34
+ export const WITHDRAWABLE_ENTRY_TYPES = [
35
+ "message", "thinking_level_change", "model_change", "compaction", "custom", "custom_message", "label", "session_info",
36
+ "leaf", "prompt_epoch", "announced_listing", "git_announcement", "workspace_state", "session_checkout", "reminder_mark",
37
+ ].filter(entryTypeWithdrawable);
38
+ //# sourceMappingURL=session-birth.js.map
@@ -10,30 +10,58 @@
10
10
  * storage for the nearest carrier BELOW the floor and reads it itself. The storage returns that record **as stored**:
11
11
  * · a `prompt_epoch` entry ⇒ the whole entry (the engine's branch walk reads the whole entry too);
12
12
  * · a compaction whose `details.promptEpoch` is present ⇒ that restatement;
13
- * · a compaction without a restatement carries nothing ⇒ the scan pages past it, to exhaustion (a session that lived
13
+ * · a compaction without a restatement carries nothing ⇒ the scan walks past it, to exhaustion (a session that lived
14
14
  * across the release that introduced epochs can hold any number of them between the floor and its pin).
15
15
  * The storage never judges the record's shape. The engine answers a current-shape record as a pin and a retired-shape
16
16
  * record by name (`legacy`, with whether it pinned a center artifact) — a storage that normalized the record first would
17
17
  * turn a session pinned under a retired shape into one with no pin, and the engine would then skip the center source's
18
18
  * handling of that pin. A record that is neither is the engine's to read as well (it reads as no record).
19
19
  *
20
- * `floorSeq <= 0` (a full load: the walk already reaches the root) or no carrier below the floor ⇒ `undefined`
21
- * (a session that predates epochs).
20
+ * ## "Below the floor" is the branch, not the log
21
+ * "Nearest below the floor" means nearest on the branch the run reads: the floor entry's parent, its parent, … to the root — the walk the
22
+ * engine's own `getPathToRoot` makes. The log also holds abandoned branches (a resumeAt moves the leaf in place and the next entries hang
23
+ * off an earlier entry): a record on one of them is not the run's, however near it is by position. So the scan follows parent links — a
24
+ * row is read only when it is the next ancestor; every other row is off the branch and passed. A log is append-only, so every ancestor sits
25
+ * at a lower position than its child: one newest-first pass over the positions below the floor meets the ancestors in order, and the scan
26
+ * stops at the first carrier on them (or at the root). The three storages share this walk; what they page differs only in where the rows
27
+ * live — the SQL twins page their `session_event` rows by `seq` (every row below the floor, the payload only on the two carrier types),
28
+ * the local window pages the branch it was cut from.
22
29
  *
23
- * What "below the floor, newest first" walks is the storage's: the SQL twins page their `session_event` rows by `seq` (their
24
- * window is cut by `seq` too); the local window pages the branch path it was cut from.
30
+ * No floor, or a floor at the root (a full load: the walk already reaches the root), or no carrier on the branch below the floor ⇒
31
+ * `undefined` (a session that predates epochs).
25
32
  */
26
33
  import type { SessionTreeEntry } from "@sema-agent/core";
27
- /** One row of a scan: its position (`seq`, the keyset cursor). What else the row holds is the storage's — it reads the entry
28
- * out of the row itself ({@link scanEpochAnchor}'s `entryOf`), so a row is read only when the scan reaches it. */
34
+ import type { SqlDialect } from "./sql-driver.js";
35
+ /** One row of a scan: its position (`seq`, the keyset cursor), its entry id, its parent and its type. The entry itself is read out of the row
36
+ * by the storage ({@link scanEpochAnchor}'s `entryOf`) only when the row is an ancestor of the floor and of a carrier type. */
29
37
  export interface EpochAnchorRow {
30
38
  readonly seq: string | number;
39
+ readonly id: string;
40
+ readonly parentId: string | null;
41
+ readonly type: string;
31
42
  }
43
+ /** Where the walk starts: the floor's position (rows below it have `seq < floor.seq`) and the floor entry's parent (`null` = the floor is the root). */
44
+ export interface EpochFloor {
45
+ readonly seq: number;
46
+ readonly parentId: string | null;
47
+ }
48
+ /** The walk's start, from the window's floor entry and its position (no floor entry = a full load ⇒ no walk) — the one construction all three
49
+ * storages use. */
50
+ export declare function epochFloorOf(seq: number, floorEntry: SessionTreeEntry | undefined): EpochFloor | undefined;
51
+ /** Page the rows `seq < beforeSeq`, newest first (an empty page = no older row). Rows off the branch may be in a page — the scan passes them. */
52
+ export type EpochAnchorPage<R extends EpochAnchorRow> = (beforeSeq: number) => Promise<readonly R[]>;
53
+ /** The nearest epoch carrier on the branch below the floor, as stored; see the file header. */
54
+ export declare function scanEpochAnchor<R extends EpochAnchorRow>(floor: EpochFloor | undefined, page: EpochAnchorPage<R>, entryOf: (row: R) => SessionTreeEntry): Promise<unknown>;
32
55
  /**
33
- * Page the rows `seq < beforeSeq` that may carry an epoch record, newest first (an empty page = no older row). A page may hold
34
- * other rows too — they carry nothing and the scan passes them.
56
+ * The SQL twins' page (one statement, two dialect spellings): every `session_event` row below `?` newest first, 100 a page, keyset on the
57
+ * primary key `(session_id, seq)`; the payload — projected as text, the one reading of a JSON column — only on the two carrier types
58
+ * (`carrier_payload`; `NULL` elsewhere), so the walk carries ids and parents and reads a payload only where a record can be.
35
59
  */
36
- export type EpochAnchorPage<R extends EpochAnchorRow> = (beforeSeq: number) => Promise<readonly R[]>;
37
- /** The nearest epoch carrier below `floorSeq`, as stored; see the file header. */
38
- export declare function scanEpochAnchor<R extends EpochAnchorRow>(floorSeq: number, page: EpochAnchorPage<R>, entryOf: (row: R) => SessionTreeEntry): Promise<unknown>;
60
+ export declare function epochAnchorPageSql(dialect: SqlDialect): string;
61
+ /** One row of {@link epochAnchorPageSql}, read by both twins (BIGINT `seq` may arrive as a string). */
62
+ export interface SqlEpochAnchorRow extends EpochAnchorRow {
63
+ readonly payload: unknown;
64
+ }
65
+ /** A driver row of {@link epochAnchorPageSql} → a scan row (the one mapping both twins use). */
66
+ export declare function sqlEpochAnchorRowOf(r: Readonly<Record<string, unknown>>): SqlEpochAnchorRow;
39
67
  //# sourceMappingURL=session-epoch-anchor.d.ts.map
@@ -1,22 +1,44 @@
1
- export async function scanEpochAnchor(floorSeq, page, entryOf) {
2
- if (floorSeq <= 0)
1
+ import { jsonColumnTextExpr } from "./sql-json-column.js";
2
+ export function epochFloorOf(seq, floorEntry) {
3
+ return floorEntry === undefined ? undefined : { seq, parentId: floorEntry.parentId ?? null };
4
+ }
5
+ const CARRIER_TYPES = new Set(["prompt_epoch", "compaction"]);
6
+ export async function scanEpochAnchor(floor, page, entryOf) {
7
+ if (floor === undefined || floor.seq <= 0)
3
8
  return undefined;
4
- let cursor = floorSeq;
5
- for (;;) {
9
+ let want = floor.parentId;
10
+ let cursor = floor.seq;
11
+ while (want !== null) {
6
12
  const rows = await page(cursor);
7
13
  if (rows.length === 0)
8
14
  return undefined;
9
15
  for (const row of rows) {
10
- const entry = entryOf(row);
11
- if (entry.type === "prompt_epoch")
12
- return entry;
13
- if (entry.type === "compaction") {
14
- const details = entry.details;
15
- if (typeof details === "object" && details !== null && "promptEpoch" in details && details.promptEpoch !== undefined)
16
- return details.promptEpoch;
16
+ if (row.id !== want)
17
+ continue;
18
+ if (CARRIER_TYPES.has(row.type)) {
19
+ const entry = entryOf(row);
20
+ if (entry.type === "prompt_epoch")
21
+ return entry;
22
+ if (entry.type === "compaction") {
23
+ const details = entry.details;
24
+ if (typeof details === "object" && details !== null && "promptEpoch" in details && details.promptEpoch !== undefined)
25
+ return details.promptEpoch;
26
+ }
17
27
  }
28
+ want = row.parentId;
29
+ if (want === null)
30
+ return undefined;
18
31
  }
19
32
  cursor = Number(rows[rows.length - 1].seq);
20
33
  }
34
+ return undefined;
35
+ }
36
+ export function epochAnchorPageSql(dialect) {
37
+ const carrier = `CASE WHEN type IN ('prompt_epoch','compaction') THEN ${jsonColumnTextExpr(dialect, "payload")} END AS carrier_payload`;
38
+ const [sessionParam, seqParam] = dialect === "pg" ? ["$1", "$2"] : ["?", "?"];
39
+ return `SELECT seq, entry_id, parent_id, type, ${carrier} FROM session_event WHERE session_id = ${sessionParam} AND seq < ${seqParam} ORDER BY seq DESC LIMIT 100`;
40
+ }
41
+ export function sqlEpochAnchorRowOf(r) {
42
+ return { seq: r["seq"], id: String(r["entry_id"]), parentId: r["parent_id"] ?? null, type: String(r["type"]), payload: r["carrier_payload"] };
21
43
  }
22
44
  //# sourceMappingURL=session-epoch-anchor.js.map
@@ -0,0 +1,98 @@
1
+ import { StoreBootRefusalError } from "./store-contracts.js";
2
+ import type { SqlDialect, SqlDriver } from "./sql-driver.js";
3
+ /** 表名(建表句、语句模块、迁移同读)。 */
4
+ export declare const SESSION_EXT_TABLE = "session_ext";
5
+ /** 一列:名字 + 两方言定义。 */
6
+ export interface SessionExtColumn {
7
+ readonly name: string;
8
+ readonly mysql: string;
9
+ readonly pg: string;
10
+ }
11
+ /**
12
+ * 执行放置七列 + `fork_key` —— 宽度:车道词 ≤ 32、设备 id 与 `device` 表同宽 64、属主两列与设备店同宽 190、fork 键 255(服务端拼的不透明串)。
13
+ * 全部可空:NULL = absent / 非键控 fork。一次性迁移 M32(7.139–7.146 形:这八列在 `session_meta` 上)读同一份定义。
14
+ */
15
+ export declare const EXECUTION_PLACEMENT_COLUMNS: readonly SessionExtColumn[];
16
+ /**
17
+ * 客户端写计数(提交出口的撤回判据,`plugins/session-birth.ts`):**客户端可见会话态**的每一个写者(标题 / 置顶、导入、会话规则、附件绑定)在锁住根行之后、
18
+ * 自己的写之前同一事务 +1。读的是**写过几次**,不是格的当前值 —— 标题改回空、置顶改回 false、规则写了又删,这只会话都已经被人写过。不可空、缺省 0
19
+ * (行不在与行在而零写同读)。存量库缺这一列 ⇒ 起服列册对账拒启并给 `ALTER TABLE … ADD COLUMN`(中央建表句生成)。
20
+ */
21
+ export declare const CLIENT_WRITES_COLUMN: SessionExtColumn;
22
+ /** 计数 +1 的那一句的 SET 片段(四个写者同读这一份)。 */
23
+ export declare const BUMP_CLIENT_WRITES = "client_writes = client_writes + 1";
24
+ /**
25
+ * **在删令牌** —— 会话行的三态(活 → 在删 → 没了)在 SQL 上的那一格:`NULL` = 活;非空 = 一次删除已经立了围栏、还没删完,值是那一次删除尝试的令牌(uuidv7,36 字符)。
26
+ * 只有删除面写它(`plugins/session-store-sql.ts`:围栏写、接管换写;终刀随根行一起删掉 —— 旁表行走外键级联),读者只比等。
27
+ * 在删对删除门之外的一切读者与写者读作「行不在」(头读 / 列表 / 规则 L 的认领);存量库缺这一列 ⇒ 起服列册对账拒启并给 `ALTER TABLE … ADD COLUMN`。
28
+ */
29
+ export declare const DELETING_TOKEN_COLUMN: SessionExtColumn;
30
+ /** 本表的全部格(主键之外),按建表句的列序。一次性迁移 M41 逐列从 `session_meta` 搬进来的是产品格与执行放置格(计数格与在删令牌不在 `session_meta` 上出现过,不搬)。 */
31
+ export declare const SESSION_EXT_COLUMNS: readonly SessionExtColumn[];
32
+ /** M41 从 `session_meta` 搬进本表的那一组(计数格之前的全部格)。 */
33
+ export declare const SESSION_EXT_MOVED_COLUMNS: readonly SessionExtColumn[];
34
+ /** 外键约束名(两方言同名;起服探针与迁移的后置条件按名读)。 */
35
+ export declare const SESSION_EXT_FOREIGN_KEY = "fk_session_ext_session";
36
+ /** 被引列 `session_meta.session_id` 的字符集与排序规则(MySQL 协议方言;外键列逐字带上,见顶注「外键列的字符集与排序规则取自被引列」)。 */
37
+ export interface ReferencedKeyCollation {
38
+ readonly characterSet: string;
39
+ readonly collation: string;
40
+ }
41
+ /** 读被引列字符集 / 排序规则的那一句(只读;当前库、表 `session_meta`、列 `session_id`)。录制驱动按这一串认它、答新库的真相(`schema-ensure-legs.ts`)。 */
42
+ export declare const SESSION_META_KEY_COLLATION_PROBE = "SELECT CHARACTER_SET_NAME AS cs, COLLATION_NAME AS coll FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'session_meta' AND COLUMN_NAME = 'session_id'";
43
+ /** 探针读数 → 被引列的字符集与排序规则;恰一行、两格都是合形的名字才算读出,否则 `undefined`(调用方拒启,不猜)。 */
44
+ export declare function readReferencedKeyCollation(rows: readonly unknown[]): ReferencedKeyCollation | undefined;
45
+ /**
46
+ * 建表句(两方言;中央 `ensureSchema` 在 `session_meta` 之后发)。MySQL 协议方言必须给被引列的字符集与排序规则(外键列逐字带上它们);PostgreSQL 一形不收它。
47
+ */
48
+ export declare function sessionExtDdl(dialect: "pg"): string;
49
+ export declare function sessionExtDdl(dialect: "mysql", referenced: ReferencedKeyCollation): string;
50
+ /** 旁表建不出 —— 起服拒(确定的拒启表态,起服对账一族同一个码 `config.schema_mismatch`):点名表名、外键列按被引列写下的字符集 / 排序规则(读得出时)与库的原句。 */
51
+ export declare class SessionExtTableRefusedError extends StoreBootRefusalError {
52
+ readonly code = "config.schema_mismatch";
53
+ constructor(detail: string);
54
+ }
55
+ /**
56
+ * MySQL 协议方言建旁表(中央 `ensureSchema` 在 `session_meta` 建好之后调):读被引列的字符集 / 排序规则 → 按它铸建表句 → 建。`query` = 那条 DDL 连接上的一次查询(交回行)。
57
+ * 读不出被引列 ⇒ {@link SessionExtTableRefusedError};「库确定拒了这条建表句」只按本仓唯一判官的闭集认(`sql-errors.ts` 的 `isDeploymentFaultError`:建外键被库确定拒的一族 —— 两侧不相容 / 加不上外键 /
58
+ * 被引表缺索引、缺唯一键、缺列、打不开(不是 InnoDB)/ 约束名重复 / 选项不成立 —— 与建表被存储引擎拒 / 表级权限拒 …)⇒ 同一只拒,库答的原句与原码(errno / SQLSTATE)随拒句;认不出的错(连接类故障、TiDB 的瞬时错、锁等待超时 …,带不带 SQL 状态码都一样)原样上抛 —— 开库等待窗重试它。
59
+ * 本模块不自带分类:判官加一码,这里随之。
60
+ */
61
+ export declare function ensureSessionExtTableMysql(query: (sql: string) => Promise<readonly unknown[]>): Promise<void>;
62
+ /** 一条语句:文本 + 按序的参数。 */
63
+ export interface SessionExtStatement {
64
+ readonly text: string;
65
+ readonly values: readonly unknown[];
66
+ }
67
+ /**
68
+ * 补行(行在 ⇒ 不动):旁表写者在锁住根 `session_meta` 行之后、写格之前发。MySQL 协议方言的重复键臂改一只非键列成它自己(不碰主键 —— 子表主键即外键列,
69
+ * 改它会让引擎做一次外键检查);PG `ON CONFLICT DO NOTHING`。外键:根行必须在(调用方锁着它)。
70
+ */
71
+ export declare function ensureSessionExtRowStatement(dialect: SqlDialect, sessionId: string): SessionExtStatement;
72
+ /**
73
+ * 补行的**一批**形:按一句 SELECT(交回一列 `session_id`)补旁表行,行已在 ⇒ 不动任何格 —— 与 {@link ensureSessionExtRowStatement} 同一只冲突子句。
74
+ * SELECT 包成派生表 `picked`(只露 `session_id`)⇒ 冲突子句里的列名只可能指本表。只给一次性迁移用(运行期的写者一律按单行补,在锁住根行之后)。
75
+ */
76
+ export declare function ensureSessionExtRowsStatement(dialect: SqlDialect, selectSessionIds: string): SessionExtStatement;
77
+ /** 旁表的外键级联在这只库上不生效 —— 起服拒的机读码(确定的拒启表态,与 `config.schema_mismatch` 同一族)。 */
78
+ export declare const SESSION_EXT_CASCADE_REFUSED_CODE = "config.session_ext_cascade_absent";
79
+ /** 起服拒:旁表行没有随根行删掉。继承 {@link StoreBootRefusalError}(确定的拒启表态:再等也等不来另一个答案)。 */
80
+ export declare class SessionExtCascadeAbsentError extends StoreBootRefusalError {
81
+ readonly dialect: SqlDialect;
82
+ readonly code = "config.session_ext_cascade_absent";
83
+ constructor(dialect: SqlDialect);
84
+ }
85
+ /**
86
+ * 起服能力探针(fail-closed):一只事务里插一行根会话 + 一行旁表、删根行、读旁表行,**回滚**(库零写)。旁表行还在 ⇒ {@link SessionExtCascadeAbsentError}。
87
+ * 读不到 / 写不进 ⇒ 原样上抛(证不出级联 ≠ 通过)。调用点:起服序列在建表之后、一次性迁移之前(`boot/stores.ts`)。
88
+ */
89
+ export declare function assertSessionExtCascadeOn(db: Pick<SqlDriver, "dialect" | "connect">): Promise<void>;
90
+ /** 一条连接上的行读口(本事务的语句面:SQL 文本 + 参数 → 行)。 */
91
+ export type SessionExtRowsOn = (text: string, values: readonly unknown[]) => Promise<ReadonlyArray<Readonly<Record<string, unknown>>>>;
92
+ /**
93
+ * 锁定读这一行的在删令牌({@link DELETING_TOKEN_COLUMN};`null` = 活)。只在根 `session_meta` 行已被本事务锁住之后调(写序:根行 → 旁表)。
94
+ * **先补行、再锁定读**(与执行席的 `readCellOn` 同一条理由:InnoDB 可重复读下锁定读一只不在的键拿间隙锁,两只事务随后各自补行即互等);锁定读 = 最新已提交
95
+ * (TiDB 悲观事务的普通读读事务起点快照,读不到在本事务取锁之前刚提交的围栏)。读者:删除面的围栏 / 终刀判官、规则 L 的认领事务。
96
+ */
97
+ export declare function readDeletingTokenOn(conn: SessionExtRowsOn, dialect: SqlDialect, sessionId: string): Promise<string | null>;
98
+ //# sourceMappingURL=session-ext-table.d.ts.map