@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
@@ -4,7 +4,7 @@ import type { EffectiveConfig, ExecutionRuling } from "./types.js";
4
4
  import { type DroppedConfigEntry, type UnreadConfigFile } from "./read-warnings.js";
5
5
  import { type CenterEndpoint } from "./center-request.js";
6
6
  /** GET the effective config (Bearer + ETag). null = 304 (unchanged). Throws on transport/HTTP error, and on a
7
- * payload that is not an effective config at all(非对象 / version 非有限数 / gate 域坏形——[ref] 裁B)。
7
+ * payload that is not an effective config at all(非对象 / version 非有限数 / gate 域坏形——[ref] 裁B;这一类抛是 `ConfigCandidateRefusedError`,成因 `rejected`)。
8
8
  * `refusedDocuments`:被拒文档(契约类型 `ConfigDocumentRefusal`,与本地腿同键同义;wire 上只有一种 —— 带事实的退役域,墓碑,成因词 `retired_domain`)不抛 —— 交成发现、那一键不进 effective,
9
9
  * 候选判官整拒这份候选。
10
10
  * `domainErrors`:坏 catalog 域(schema default 已落)逐域单列——与本地腿 `FetchEffectiveResult` 同键同义,
@@ -53,6 +53,7 @@ export declare function fetchPrincipalCaps(center: CenterEndpoint, principal: st
53
53
  runtimeCaps: EntitlementRuntimeCaps | null;
54
54
  configured: boolean;
55
55
  scenario?: ScenarioRuling;
56
+ scenarioDrift?: string;
56
57
  execution?: ExecutionRuling;
57
58
  executionDrift?: string;
58
59
  orgMemory?: unknown;
@@ -1,17 +1,36 @@
1
1
  import { createHash } from "node:crypto";
2
- import { readEffectiveWire, PrincipalCapsWire } from "@sema-agent/settings-schema";
2
+ import { isStringArray, readEffectiveWire, PrincipalCapsWire } from "@sema-agent/settings-schema";
3
3
  import { separateRetiredDomains, splitFoldedReadWarnings, withDroppedCatalogEntries } from "./read-warnings.js";
4
4
  import { CENTER_PULL_TIMEOUT_MS, centerFetch } from "./center-request.js";
5
5
  import { answerStillCurrent } from "../center-credential.js";
6
+ import { candidateRefusedBy } from "../config-pull-failure.js";
7
+ import { readUpstreamJson } from "../upstream-body.js";
6
8
  export async function fetchEffective(center, etag, fetchImpl, worker) {
7
9
  const { res, identity } = await centerFetch(center, { kind: "effective", worker }, { etag, timeoutMs: CENTER_PULL_TIMEOUT_MS, fetchImpl });
8
10
  if (res.status === 304)
9
11
  return null;
10
12
  if (!res.ok)
11
13
  throw new Error(`web-admin HTTP ${res.status}`);
14
+ let raw;
15
+ try {
16
+ raw = await readUpstreamJson(res);
17
+ }
18
+ catch (bodyError) {
19
+ if (bodyError instanceof SyntaxError)
20
+ throw candidateRefusedBy(bodyError);
21
+ throw bodyError;
22
+ }
12
23
  const warnings = [];
13
- const { body, refusedDocuments } = separateRetiredDomains(await res.json());
14
- const wire = readEffectiveWire(body, (w) => warnings.push(w));
24
+ let body;
25
+ let refusedDocuments;
26
+ let wire;
27
+ try {
28
+ ({ body, refusedDocuments } = separateRetiredDomains(raw));
29
+ wire = readEffectiveWire(body, (w) => warnings.push(w));
30
+ }
31
+ catch (readerError) {
32
+ throw candidateRefusedBy(readerError);
33
+ }
15
34
  const { domainErrors, droppedEntries, droppedCatalogEntries, unreadFiles } = splitFoldedReadWarnings(warnings, "center");
16
35
  const effective = withDroppedCatalogEntries(wire, droppedCatalogEntries);
17
36
  return {
@@ -38,14 +57,7 @@ export async function fetchPrincipalCaps(center, principal, etag, fetchImpl, wor
38
57
  return {
39
58
  runtimeCaps: body.runtimeCaps ?? null,
40
59
  configured: Boolean(body.configured),
41
- ...("scenario" in body || "allowlist" in body
42
- ? {
43
- scenario: {
44
- scenario: typeof body.scenario === "string" ? body.scenario : null,
45
- allowlist: Array.isArray(body.allowlist) ? body.allowlist.filter((s) => typeof s === "string") : [],
46
- },
47
- }
48
- : {}),
60
+ ...scenarioRulingOf(body),
49
61
  ...((() => {
50
62
  const isRecord = (v) => v !== null && typeof v === "object" && !Array.isArray(v);
51
63
  const exRaw = body.execution;
@@ -73,6 +85,21 @@ export async function fetchPrincipalCaps(center, principal, etag, fetchImpl, wor
73
85
  etag: raw.etag,
74
86
  };
75
87
  }
88
+ function scenarioRulingOf(body) {
89
+ const hasScenario = "scenario" in body;
90
+ const hasAllowlist = "allowlist" in body;
91
+ if (!hasScenario && !hasAllowlist)
92
+ return {};
93
+ if (!hasScenario || !hasAllowlist)
94
+ return { scenarioDrift: `${hasScenario ? "allowlist" : "scenario"} is missing while ${hasScenario ? "scenario" : "allowlist"} is present` };
95
+ const { scenario, allowlist } = body;
96
+ if (scenario !== null && typeof scenario !== "string")
97
+ return { scenarioDrift: `scenario is ${Array.isArray(scenario) ? "array" : typeof scenario}, expected string or null` };
98
+ if (!isStringArray(allowlist)) {
99
+ return { scenarioDrift: Array.isArray(allowlist) ? "allowlist has a non-string element, expected string[]" : `allowlist is ${allowlist === null ? "null" : typeof allowlist}, expected string[]` };
100
+ }
101
+ return { scenario: { scenario: typeof scenario === "string" ? scenario : null, allowlist: [...allowlist] } };
102
+ }
76
103
  function assertPrincipalEcho(echoed, principal) {
77
104
  if (echoed !== undefined && echoed !== principal) {
78
105
  throw new Error(`web-admin principal-caps response echoes principal ${JSON.stringify(echoed)} but ${JSON.stringify(principal)} was requested — discarding the whole response`);
@@ -94,7 +121,7 @@ async function requestPrincipalView(center, principal, etag, fetchImpl, worker)
94
121
  if (!res.ok)
95
122
  throw new Error(`web-admin principal-caps HTTP ${res.status}`);
96
123
  const responseEtag = res.headers.get("etag");
97
- const json = await res.json();
124
+ const json = await readUpstreamJson(res);
98
125
  stillCurrent();
99
126
  return { json, ...(responseEtag !== null ? { etag: responseEtag } : {}) };
100
127
  }
@@ -133,7 +160,7 @@ export async function fetchPromptArtifact(center, artifactDigest, fetchImpl) {
133
160
  const { res } = await centerFetch(center, { kind: "prompt-artifact", digest: artifactDigest }, { timeoutMs: CENTER_PULL_TIMEOUT_MS, fetchImpl });
134
161
  if (!res.ok)
135
162
  throw new WebAdminHttpError(`prompt artifact HTTP ${res.status} for ${artifactDigest}`, res.status);
136
- return await res.json();
163
+ return await readUpstreamJson(res);
137
164
  }
138
165
  export async function fetchPromptBlob(center, contentDigest, fetchImpl) {
139
166
  const { res } = await centerFetch(center, { kind: "prompt-blob", digest: contentDigest }, { timeoutMs: CENTER_PULL_TIMEOUT_MS, fetchImpl });
@@ -45,7 +45,7 @@ export declare function createMcpRevocationLedger(onChange?: (ev: {
45
45
  restored: string[];
46
46
  }) => void): McpRevocationLedger;
47
47
  /** 一拍 EffectiveConfig 的 ENABLED MCP 服务器条目表(`resolveMcpServers` 同判据:`enabled !== false`;
48
- * 值=整条目的 key 排序 JSON 指纹,Map 插入序=发布序);mcp 域缺席 ⇒ `null`(台账不动)。
48
+ * 值=条目的指纹面(`entry-metadata.ts` `mcpEntryFingerprintFace`:减备注 / 名册标签,分组标签按挂载口判据读)的 key 排序 JSON 指纹,Map 插入序=发布序);mcp 域缺席 ⇒ `null`(台账不动)。
49
49
  * 指纹序列化器 = `@sema-agent/settings-schema/hash` 的 `stableStringify`([ref] 起;[ref] 2026-08-31 起与 restart-signal 同源:此前本文件
50
50
  * 持一份**逐字相同**的私有复刻 `fingerprintOf`;JSON 形输入上字节恒等,golden 钉 test/canonical-json-golden.test.ts)。
51
51
  * 两处指纹仍只在各自域内自比、不跨域比对——同源只是去掉一份多余的复刻,不引入跨域约束;也**不**改用
@@ -1,4 +1,5 @@
1
1
  import { stableStringify } from "@sema-agent/settings-schema/hash";
2
+ import { mcpEntryFingerprintFace } from "./entry-metadata.js";
2
3
  export function createMcpRevocationLedger(onChange) {
3
4
  let baseline;
4
5
  let seen;
@@ -41,7 +42,7 @@ export function enabledMcpEntries(mcp) {
41
42
  const out = new Map();
42
43
  for (const s of mcp.servers) {
43
44
  if (s.enabled !== false)
44
- out.set(s.name, stableStringify(s));
45
+ out.set(s.name, stableStringify(mcpEntryFingerprintFace(s)));
45
46
  }
46
47
  return out;
47
48
  }
@@ -143,6 +143,7 @@ export declare const DroppedCatalogEntryRow: z.ZodObject<{
143
143
  "entry-schema-invalid": "entry-schema-invalid";
144
144
  "entry-key-invalid": "entry-key-invalid";
145
145
  "entry-unreadable": "entry-unreadable";
146
+ "entry-unknown-key": "entry-unknown-key";
146
147
  }>;
147
148
  identity: z.ZodOptional<z.ZodObject<{
148
149
  name: z.ZodOptional<z.ZodString>;
@@ -209,6 +209,7 @@ function reasonCodeForWire(code) {
209
209
  case "entry-schema-invalid":
210
210
  case "entry-key-invalid":
211
211
  case "entry-unreadable":
212
+ case "entry-unknown-key":
212
213
  return code;
213
214
  default: {
214
215
  const never = code;
@@ -2,14 +2,19 @@ import { resolveActiveTiers, resolveCatalogDefaultModel } from "@sema-agent/sett
2
2
  import { stableStringify } from "@sema-agent/settings-schema/hash";
3
3
  import { DEFAULT_PLUGIN_ALLOW_HOSTS, materializablePlugins } from "../capabilities/center-plugins.js";
4
4
  import { CENTER_READ_FACE_LIVE_KEYS } from "./read-face.js";
5
+ import { enabledA2aPeerView } from "./skills-mcp.js";
6
+ import { mcpEntryFingerprintFace, withoutEntryMetadata } from "./entry-metadata.js";
5
7
  const RESTART_SLICES = ["skills", "mcp", "a2a", "scenarios", "degrade-route", "read-face", "memory-consolidation"];
6
8
  function enabledOnly(rows) {
7
9
  if (!rows)
8
10
  return null;
9
11
  return rows.filter((r) => r.enabled !== false);
10
12
  }
13
+ function enabledEntriesFingerprint(rows, face = withoutEntryMetadata) {
14
+ return enabledOnly(rows)?.map((r) => face(r)) ?? null;
15
+ }
11
16
  export function catalogEntryFingerprint(entry) {
12
- const { cost, quotaWeight: _quotaWeight, enabled: _enabled, ...route } = entry;
17
+ const { cost, quotaWeight: _quotaWeight, enabled: _enabled, ...route } = withoutEntryMetadata(entry);
13
18
  return { ...route, costDeclared: cost !== undefined };
14
19
  }
15
20
  function planeEntriesFingerprint(rows) {
@@ -34,17 +39,19 @@ function restartSliceValue(eff, slice, ctx) {
34
39
  return null;
35
40
  switch (slice) {
36
41
  case "skills": {
37
- const skills = enabledOnly(eff.skills?.skills);
42
+ const skills = enabledEntriesFingerprint(eff.skills?.skills);
38
43
  const materialized = materializablePlugins(eff, ctx?.pluginsAllowHosts ?? DEFAULT_PLUGIN_ALLOW_HOSTS);
39
44
  const plugins = materialized.length > 0 ? materialized : null;
40
45
  return skills === null && plugins === null ? null : { skills, plugins };
41
46
  }
42
47
  case "mcp":
43
- return enabledOnly(eff.mcp?.servers);
44
- case "a2a":
45
- return enabledOnly(eff.a2a?.peers);
48
+ return enabledEntriesFingerprint(eff.mcp?.servers, mcpEntryFingerprintFace);
49
+ case "a2a": {
50
+ const views = (eff.a2a?.peers ?? []).flatMap((peer) => enabledA2aPeerView(peer) ?? []);
51
+ return views.length > 0 ? views : null;
52
+ }
46
53
  case "scenarios":
47
- return enabledOnly(eff.scenarios?.scenarios);
54
+ return enabledEntriesFingerprint(eff.scenarios?.scenarios);
48
55
  case "read-face": {
49
56
  const d = eff.readFace;
50
57
  if (!d)
@@ -4,7 +4,8 @@ import type { Logger } from "../observability/logger.js";
4
4
  import { type PeerDesk, type PeerLease } from "../peer-seat.js";
5
5
  import type { LoadedSkill } from "../capabilities/skills.js";
6
6
  import type { ConfigProvider } from "../config-provider.js";
7
- import type { CenterA2aPeer, CenterMcpServer, CenterSkillManifest } from "./types.js";
7
+ import type { CenterMcpServer, CenterSkillManifest } from "./types.js";
8
+ import type { A2aConfig, A2aPeerSpec } from "@sema-agent/settings-schema";
8
9
  /**
9
10
  * 技能正文的来源 = **拉到这份清单的配置源自己**([ref]):`fetchSkillContent(contentHash)` 按 hash 答正文 —— 远程 = 中心内容端点
10
11
  * (传输自验 hash;未知 hash ⇒ `undefined`),本地 = config.d 里内联的正文(与清单同一种容错读);`skillBodyCacheDir` = 这只配置源
@@ -16,8 +17,8 @@ export type SkillBodySource = Pick<ConfigProvider, "fetchSkillContent" | "skillB
16
17
  * **在场 ⇒ 整只数组原样**(含 `[]`;不去重、不排序、不判拼写 —— settings-schema 14.4.0 的读法一句话,判官在引擎:`allowedTools` 是 allow 规则来源、`disallowedTools` 拒侧读成空的条目让
17
18
  * 那次激活 fail-closed)。数组复制一份:规格上的数组是引擎规格自己的,不与配置源手里的 manifest / 本地店对象共享。
18
19
  *
19
- * 本函数住在技能域的读口旁,三个读者共用 —— 本地腿 CLOSED 投影(`config-provider.ts` 的 `mapToServiceEffective`)、manifest → 规格的铸点({@link applySkillsManifest})、
20
- * 已装技能 ↔ manifest 的投影一致判据({@link installedSkillMatchesManifest}):三处各写一份键表就是下一次同形丢位([ref] 族)。契约再加一个技能键时的看守不在这里,
20
+ * 本函数住在技能域的读口旁,两个读者共用 —— manifest → 规格的铸点({@link applySkillsManifest})、
21
+ * 已装技能 ↔ manifest 的投影一致判据({@link installedSkillMatchesManifest}):两处各写一份键表就是下一次同形丢位(本地腿的 manifest 由契约 `toSkillsManifest` 铸,条目整只过境,不再有第三份键表)。契约再加一个技能键时的看守不在这里,
21
22
  * 在 `test/skill-tool-lists-carry.test.ts` 的键处置表(按 `keyof SkillSpec` 铸型)与 `test/settings-schema-consumption-gates.test.ts` 门 4(叶路径由契约形状派生)。
22
23
  */
23
24
  export declare function skillToolListsOf(source: {
@@ -68,8 +69,8 @@ export declare function resolveMcpServers(mcp: {
68
69
  * [ref]:alias 窗撤销,单键命中(同 `skillsForScenario`)。 */
69
70
  export declare function mcpForScenario(center: CenterMcp | undefined, scenario: string): McpServerSpec[] | undefined;
70
71
  /**
71
- * DESIGN-269 §2.1 —— resolve center A2A peers (`/effective.a2a`) into core `A2aServerSpec`s + the scenarios
72
- * each applies to. Exact sibling of {@link resolveMcpServers}, same three rules:
72
+ * DESIGN-269 §2.1 —— resolve the deployment's A2A peers (the `a2a` domain: `config.d/a2a.json` on the local leg, `/effective.a2a` on the
73
+ * center leg — one declaration seat, both legs read through the contract) into core `A2aServerSpec`s + the scenarios each applies to. Exact sibling of {@link resolveMcpServers}, same three rules:
73
74
  * · header-NAME refs → real values from THIS service's env (the secret boundary is unchanged — the center
74
75
  * never holds the bearer), registered on `desk` under `rosterLease` (`mintDeclaration`, only for a peer that mounts); the spec carries the minted
75
76
  * reference, never the values. A peer with ANY missing ref is SKIPPED wholesale (`resolveRefs` → null):
@@ -85,9 +86,22 @@ export declare function mcpForScenario(center: CenterMcp | undefined, scenario:
85
86
  * the caller. Absent face > a face that quietly launders trust. (`allowSkills` is the operator's real
86
87
  * knob here: narrow WHAT mounts, never re-label what it does.)
87
88
  */
88
- export declare function resolveA2aPeers(a2a: {
89
- peers: CenterA2aPeer[];
90
- }, desk: Pick<PeerDesk, "declare">, rosterLease: PeerLease, logger?: Logger): ScopedA2aPeer[];
89
+ export declare function resolveA2aPeers(a2a: A2aConfig, desk: Pick<PeerDesk, "declare">, rosterLease: PeerLease, logger?: Logger): ScopedA2aPeer[];
90
+ /** 解析器从一条 a2a 对端上真读的七键,读成同一件事的写法归一成一形:`cardUrl` / `principalHeader` 空串 ≡ 缺席、`allowSkills` 空表 ≡ 缺席
91
+ * (不收窄)、`headerRefs` 空记录 ≡ 缺席(没有件)、`scenarios` 缺席 ≡ `[]`(全场景)。禁用的对端 ⇒ undefined(解析器跳过,零运行期效果)。
92
+ * 两个读者:{@link resolveA2aPeers}(拨号的输入就是它)与 restart 片 `a2a`(指纹的就是它 —— 只指纹真重启的字段,与模型条目同律)。
93
+ * 七键名单只在这里成文:解析器多读一个键而这里没投 ⇒ 解析器读不到(编译红);片不会漏签。
94
+ * `enabled` / `scenarios` 按可缺席读:型上它们恒在(契约读口补缺省),但 LKG 回放不经读口(删除条件同解析器的名字臂)。 */
95
+ export interface A2aPeerView {
96
+ name: string;
97
+ url: string;
98
+ cardUrl?: string;
99
+ headerRefs?: Record<string, string>;
100
+ principalHeader?: string;
101
+ allowSkills?: string[];
102
+ scenarios: string[];
103
+ }
104
+ export declare function enabledA2aPeerView(peer: A2aPeerSpec): A2aPeerView | undefined;
91
105
  /** The A2A peers applicable to a scenario: tagged with it, or untagged (global). undefined when none.
92
106
  * Twin of {@link mcpForScenario} — `undefined` (not `[]`) is load-bearing: an empty array would put an
93
107
  * `a2a: []` key on the spec, i.e. "this deployment declares an empty peer set", where absence means
@@ -1,10 +1,11 @@
1
1
  import { readMcpSourceLabel } from "../mcp-source-label.js";
2
2
  import { skillContentHash } from "@sema-agent/settings-schema";
3
- import { judgeSessionMetaKey, readMcpToolAxes, readToolFaces } from "@sema-agent/core";
3
+ import { ensureDir, judgeSessionMetaKey, readMcpToolAxes, readToolFaces } from "@sema-agent/core";
4
4
  import { MCP_CONTENT_ORIGINS, describeBadContentOrigin, describeBadWireName, isContentOriginWord, isUsableWireName } from "@sema-agent/settings-schema";
5
5
  import { noteMcpAssertionHeaderNotSent, withholdsMcpAssertionHeader } from "../mcp-assertion-header.js";
6
6
  import { mintDeclaration, peerSentence } from "../peer-seat.js";
7
7
  import { SHA256_HEX_RE } from "../digest-form.js";
8
+ import { atomicWriteFileAsync } from "../plugins/owner-only-file-mode.js";
8
9
  export function skillToolListsOf(source) {
9
10
  return {
10
11
  ...(source.allowedTools !== undefined ? { allowedTools: [...source.allowedTools] } : {}),
@@ -62,10 +63,8 @@ export async function applySkillsManifest(baseline, manifest, bodies, logger) {
62
63
  return;
63
64
  const hex = hash.replace(/^sha256:/, "");
64
65
  pendingWrites.push((async () => {
65
- await fsp.mkdir(diskCacheDir, { recursive: true });
66
- const tmp = joinPath(diskCacheDir, `${hex}.${Math.random().toString(36).slice(2, 8)}.tmp`);
67
- await fsp.writeFile(tmp, content, { mode: 0o600 });
68
- await fsp.rename(tmp, joinPath(diskCacheDir, hex));
66
+ ensureDir(diskCacheDir);
67
+ await atomicWriteFileAsync(joinPath(diskCacheDir, hex), content, { durability: "best-effort" });
69
68
  })().catch((err) => logger?.warn("web_admin_skill_cache_write_failed", { hash, err: String(err) })));
70
69
  };
71
70
  const byName = new Map(baseline.map((s) => [s.spec.name, s]));
@@ -211,35 +210,41 @@ export function mcpForScenario(center, scenario) {
211
210
  }
212
211
  export function resolveA2aPeers(a2a, desk, rosterLease, logger) {
213
212
  const out = [];
214
- for (const p of a2a.peers ?? []) {
215
- if (p.enabled === false)
213
+ for (const declared of a2a.peers ?? []) {
214
+ const view = enabledA2aPeerView(declared);
215
+ if (view === undefined)
216
216
  continue;
217
- if (!isUsableWireName(p.name)) {
217
+ if (!isUsableWireName(view.name)) {
218
218
  logger?.warn("web_admin_a2a_name_unusable", {
219
- peer: describeBadWireName(p.name),
219
+ peer: describeBadWireName(view.name),
220
220
  note: "peer SKIPPED — an A2A peer name is its identity (it lands as the roster's `origin.peer`) and core REFUSES an out-of-bound name at prepare, which would fail every task in this scenario. Shorten the name and republish; sibling peers are unaffected.",
221
221
  });
222
222
  continue;
223
223
  }
224
- const headers = resolveRefs(p.headerRefs, p.name, "header", logger, "web_admin_a2a_env_missing", "skipping this A2A peer — referenced env var is unset in this service");
224
+ const { headerRefs, scenarios, ...spec } = view;
225
+ const headers = resolveRefs(headerRefs, spec.name, "header", logger, "web_admin_a2a_env_missing", "skipping this A2A peer — referenced env var is unset in this service");
225
226
  if (headers === null)
226
227
  continue;
227
- const draft = {
228
- spec: {
229
- name: p.name,
230
- url: p.url,
231
- ...(p.cardUrl ? { cardUrl: p.cardUrl } : {}),
232
- ...(p.principalHeader ? { principalHeader: p.principalHeader } : {}),
233
- ...(p.allowSkills && p.allowSkills.length > 0 ? { allowSkills: p.allowSkills } : {}),
234
- },
235
- pieces: headers,
236
- };
237
- out.push({ scenarios: p.scenarios ?? [], spec: mintDeclaration(desk, draft, rosterLease) });
228
+ const draft = { spec, pieces: headers };
229
+ out.push({ scenarios, spec: mintDeclaration(desk, draft, rosterLease) });
238
230
  }
239
231
  if (out.length > 0)
240
232
  logger?.info("web_admin_a2a", { peers: out.map((p) => p.spec.name) });
241
233
  return out;
242
234
  }
235
+ export function enabledA2aPeerView(peer) {
236
+ if (peer.enabled === false)
237
+ return undefined;
238
+ return {
239
+ name: peer.name,
240
+ url: peer.url,
241
+ ...(peer.cardUrl ? { cardUrl: peer.cardUrl } : {}),
242
+ ...(peer.headerRefs && Object.keys(peer.headerRefs).length > 0 ? { headerRefs: peer.headerRefs } : {}),
243
+ ...(peer.principalHeader ? { principalHeader: peer.principalHeader } : {}),
244
+ ...(peer.allowSkills && peer.allowSkills.length > 0 ? { allowSkills: peer.allowSkills } : {}),
245
+ scenarios: peer.scenarios ?? [],
246
+ };
247
+ }
243
248
  export function a2aForScenario(peers, scenario) {
244
249
  if (!peers || peers.length === 0)
245
250
  return undefined;
@@ -1,11 +1,12 @@
1
1
  /**
2
2
  * web-admin wire types — the web-admin `/api/config/effective` payload shapes (`CenterModel`,
3
- * `CenterSkillManifest`, `CenterMcpServer`, `CenterA2aPeer`, `EffectiveConfig`) plus the per-principal
3
+ * `CenterSkillManifest`, `CenterMcpServer`, `EffectiveConfig`; the `a2a` domain is the contract's own `A2aConfig`) plus the per-principal
4
4
  * execution/session-mirror ruling shapes riding the caps view (`ExecutionRuling`/`SessionMirrorRuling`).
5
5
  * Pure type/interface declarations — no runtime logic. Split out of `facade.ts` ([ref] A13,
6
6
  * internal-lossless: the facade re-exports every symbol below unchanged).
7
7
  */
8
8
  import type { ToolContentOrigin } from "@sema-agent/core";
9
+ import type { A2aConfig, ModelThinkingLevelMap } from "@sema-agent/settings-schema";
9
10
  import type { Autonomy, CommandRule } from "../runtime-governance.js";
10
11
  import type { DroppedCatalogEntry } from "./read-warnings.js";
11
12
  export interface CenterModel {
@@ -28,6 +29,13 @@ export interface CenterModel {
28
29
  tier?: string;
29
30
  reasoning?: boolean;
30
31
  vision?: boolean;
32
+ /**
33
+ * [ref](settings-schema 20.0.0 `ModelEntry.thinkingLevelMap`)—— 这条条目的逐档思考拼写,上引擎 `Model.thinkingLevelMap`(键 off / minimal / low / medium / high / xhigh / max;
34
+ * 串 = 供应商对这一档的值,`null` = 这一档不支持,没写的档 = 供应商缺省)。类型就是契约型(不是 `unknown`):与 {@link CenterModel.compat} 不同,这一席的**形归契约包判**
35
+ * (闭集键,坏形整条被读腿丢 —— 中心腿 `readEffectiveWire`、本地腿契约文件店同一只 zod),到得了这里的都是判过的;本服务不二判,`toModel` 原样交引擎。
36
+ * 缺席 = 未声明(不补 `{}`);`{}` = 声明了、无覆盖。env 腿没有这一席(声明座只有目录条目)。
37
+ */
38
+ thinkingLevelMap?: ModelThinkingLevelMap;
31
39
  contextWindow?: number;
32
40
  maxTokens?: number;
33
41
  /** [ref]① 1M dual-window (core 1.289 `Model.autoCompactTokens`): an EXPLICIT roster value wins the
@@ -48,10 +56,10 @@ export interface CenterModel {
48
56
  * 此后记账,不回算窗口内历史(registry types.d.ts 同句契约)。 */
49
57
  quotaWeight?: number;
50
58
  /**
51
- * [ref](settings-schema 1.10.0 `ModelEntry.compat`)—— 这条目录条目对 **openai-completions 线路**的
52
- * 兼容声明,上 core `Model.compat`(`OpenAICompletionsCompat` 五键)。真需求 = vLLM / Qwen 类**缺省开
53
- * 思考**的网关:关思考只能靠 `thinkingFormat: "qwen-chat-template"`(`chat_template_kwargs.
54
- * enable_thinking=false`),而 `extraBody` 穿不过引擎的 OpenAI 保留键表。
59
+ * [ref](settings-schema 1.10.0 `ModelEntry.compat`)—— 这条目录条目对**它那条线路**的兼容声明,上 core `Model.compat`:
60
+ * openai-completions 条目 = `OpenAICompletionsCompat` 五键,anthropic-messages 条目 = `AnthropicMessagesCompat`([ref] (b) 起按线路读;此前 anthropic 条目一律整只丢)。
61
+ * 真需求 = vLLM / Qwen 类**缺省开思考**的网关:关思考只能靠 `thinkingFormat: "qwen-chat-template"`(`chat_template_kwargs.
62
+ * enable_thinking=false`),而 `extraBody` 穿不过引擎的 OpenAI 保留键表;adaptive 族 anthropic 端点(无 budget、关不掉)靠 `thinkingMode: "adaptive"`。
55
63
  *
56
64
  * 🔴 类型是 `unknown` 而不是那个结构,**刻意的**(与 {@link CenterMcpServer.toolFaces} 逐字同姿):本类型
57
65
  * 是两条腿的**承载形**(本地 config.d 经 settings-schema 的 `z.unknown()` 解析透明地过来、远端 /effective
@@ -63,8 +71,7 @@ export interface CenterModel {
63
71
  * `readEffectiveWire`)都把它们当未知键剥掉(1.10.0 夹具实测:`unknown-keys-dropped
64
72
  * {keys:["models.0.defaultThinking","models.0.reasoningEffortLevels"]}`;settings-schema 3.0.0 起同一条
65
73
  * 告警的坐标是**段数组** `{keys:[["models",0,"defaultThinking"],…]}`,出门形走 `formatConfigPath`),
66
- * `mapToServiceEffective` 的
67
- * CLOSED 投影也从未列过它们。留着 = 一份读不到任何东西的类型承诺 + `compat.reasoningEffortLevels`
74
+ * 当年本地腿的 CLOSED 投影(已删)也从未列过它们。留着 = 一份读不到任何东西的类型承诺 + `compat.reasoningEffortLevels`
68
75
  * 之外的第二个写者([ref]:同一语义面禁两个写者)。roster 级 `defaultThinking` 若要真做,归 schema 补键
69
76
  * 另立单据(见 CHANGELOG 未闭环)。
70
77
  */
@@ -160,8 +167,9 @@ export interface CenterMcpServer {
160
167
  toolFaces?: unknown;
161
168
  /**
162
169
  * [ref](settings-schema 12.2.x `McpServerSpec.toolAxes`,解析透明 `z.unknown()`)—— 部署侧为这台 server 的**每只工具**声明的
163
- * 风险轴(`effect` / `egress` / `irreversibility`),键 = server 的**原始(未加命名空间)**工具名,上 core
164
- * `McpServerSpec.toolAxes`。
170
+ * 风险轴(引擎的成员集:`effect` / `egress` / `irreversibility` / `boundaryFlow`),键 = server 的**原始(未加命名空间)**工具名,上 core
171
+ * `McpServerSpec.toolAxes`。其中 `boundaryFlow: "engine"`(须同条 `egress: false`)声明一只引擎专用工具(设备车道的发射闸对它的调用不欠任何东西),
172
+ * 只有部署声明(本地 config.d / 中心)能写,请求侧写它被拒;两条部署腿都原样交给引擎判。
165
173
  *
166
174
  * 🔴 类型是 `unknown` 而不是那个结构,**刻意的**(与 {@link CenterMcpServer.toolFaces} 逐字同姿):本类型是两条部署腿的**承载形**
167
175
  * (本地 config.d 经 `z.unknown()` 解析透明地过来、远端 /effective 是直读 JSON),形判与投影的单一属主是**引擎**根导出的
@@ -204,31 +212,8 @@ export interface CenterMcpServer {
204
212
  };
205
213
  }
206
214
  /**
207
- * DESIGN-269 §2.1 —— A2A peer registry entry (the `CenterMcpServer` sibling). `headerRefs` are env-NAME
208
- * refs (header-name → ENV_NAME), **never** literal secrets: the bearer for a peer lives in THIS service's
209
- * env, the center only ever stores the NAME. (A2A has a single transport — every peer is an https(s)
210
- * endpoint — so unlike MCP there is no transport discriminant; the two ref-carrying shapes collapse to one.)
211
- */
212
- export interface CenterA2aPeer {
213
- name: string;
214
- scenarios: string[];
215
- enabled?: boolean;
216
- /** The peer's service URL (also the origin the well-known agent-card path resolves against). */
217
- url: string;
218
- /** Explicit agent-card location when the peer does not publish at a well-known path. Set ⇒ used ALONE. */
219
- cardUrl?: string;
220
- /** env-NAME refs (header-name → ENV_NAME) resolved from THIS service's env at boot. A peer with ANY
221
- * unset ref is SKIPPED wholesale (fail-safe — never dial a peer half-credentialed). */
222
- headerRefs?: Record<string, string>;
223
- /** [ref], same contract as the MCP side: the header name the runner injects the task's authenticated
224
- * end-user principal into. Not a ref — a literal header NAME (the runner fills the value, never the model). */
225
- principalHeader?: string;
226
- /** Optional allowlist of the peer's skill ids to mount (others are not mounted). */
227
- allowSkills?: string[];
228
- }
229
- /**
230
- * #A4([ref] 窗三件批 件1;[ref]/[ref] 承诺件)—— READ 容纳面的 center 下发形(`CenterA2aPeer` 的
231
- * 同族:一个 additive 顶层域,server 声明它才不会被静默丢弃)。四个成员逐一对应部署 env 的四键
215
+ * #A4([ref] 窗三件批 件1;[ref]/[ref] 承诺件)—— READ 容纳面的 center 下发形(一个 additive 顶层键,
216
+ * 不是契约域:server 声明它才不会被静默丢弃)。四个成员逐一对应部署 env 的四键
232
217
  * (`READ_FACE` / `READ_DENY_PATTERNS` / `READ_DENY_BUILTIN_TIERS` / `READ_DENY_BUILTIN_EXCLUDE`),
233
218
  * 消费半场 = `web-admin-client/read-face.ts` `applyCenterReadFace`。
234
219
  *
@@ -334,11 +319,14 @@ export interface EffectiveConfig {
334
319
  mcp?: {
335
320
  servers: CenterMcpServer[];
336
321
  };
337
- /** DESIGN-269 §2.1: center-declared A2A peers. Absent (the shape every center ships today) ⇒ the leg
338
- * does not exist for this deployment — `config.a2aPeers` stays undefined, no peer is ever dialed. */
339
- a2a?: {
340
- peers: CenterA2aPeer[];
341
- };
322
+ /** The deployment's resident outbound A2A peers — the contract's `a2a` domain (settings-schema 18.0.0, portable): `config.d/a2a.json`
323
+ * on the local leg, `/effective.a2a` on the center leg, both read through the contract. The local leg materializes the domain (no file ⇒
324
+ * `{ peers: [] }` — the reader is the contract itself, it always knows the domain); the center leg does NOT invent a domain the producer did not
325
+ * send (settings-schema 20.0.0 `WIRE_CARRIED_DOMAINS`: an `/effective` body without `a2a` — an older center that does not know the domain —
326
+ * reads ABSENT; `{ peers: [] }` = the center says "empty roster"). Absent and an empty `peers` ⇒ no peer is dialed (one state: `resolveA2aPeers`
327
+ * yields nothing / is not called, `a2aForScenario` yields undefined, the restart slice reads null). Optional because of that center leg and because
328
+ * the LKG replay (raw file, not read through the contract) may predate the domain. */
329
+ a2a?: A2aConfig;
342
330
  /** Center-declared scenarios (composition-as-config; capability stays code-pinned): each entry names a
343
331
  * deploy-registered TOOLSET (`none` / `repo-readonly`) + an optional static prompt (≤4KB, audited at
344
332
  * publish). Restart-to-apply like skills/mcp (baked into the scenario table at boot). Center entries
@@ -360,14 +348,10 @@ export interface EffectiveConfig {
360
348
  * `limits` 在 PORTABLE_DOMAINS 里)。
361
349
  */
362
350
  limits?: EffectiveLimits;
363
- /** 142-S4(registry-core 0.10.0 第 15 域):center 项目登记簿。wire 面 verbatim JSON —
364
- * registry-core `ProjectsConfig` 的形状是 `{projects: Record<projectId, ProjectRegistration>}`(skills/mcp
365
- * 同款域包裹)。[ref]B-8:裸 Record 联合臂随 apply-effective 的宽读一起删(0.13.0 只有包裹形,
366
- * 裸形无 producer)。消费=applyEffective → config.projects(displayName/gitRemotes/defaultScopes
367
- * 三个 runtime 字段;审计字段不进 ServiceConfig)。 */
368
- projects?: {
369
- projects?: Record<string, unknown>;
370
- };
351
+ /** 项目登记簿(settings-schema `projects` 域)。wire 面 verbatim JSON —— settings-schema `ProjectsConfig` 的形状是
352
+ * `{projects: Record<projectId, ProjectRegistration>}`(skills / mcp 同款域包裹)。这里不声明更窄的型:判官是 settings-schema 的视图面读函数,
353
+ * 唯一调用点 applyEffective(→ config.projects,`ProjectRegistration` 原样)。 */
354
+ projects?: unknown;
371
355
  /** settings-schema 0.6 起治理三件(autonomy/commandPolicy/approvalRequire)的**唯一**承运域(0.7.1 撤
372
356
  * runtime 位双写镜像;顺序契约当年已走完:消费端先切、center 再撤)。键集与 schema `GovernanceConfig.shape`
373
357
  * 逐字相等([ref] 件3 对账门钉)。消费:autonomy/commandPolicy 逐请求热(`stageRuntimeHot`,boot+refresh);
@@ -400,10 +384,10 @@ export interface EffectiveConfig {
400
384
  /** (stage7 P5,registry-core 0.8 `execution` 域): the center-resolved per-principal execution
401
385
  * ruling riding the caps view. `required=false` / ruling absent = no enforcement (legacy). `allowedLanes` is
402
386
  * an OPEN value domain (adding one is never BREAKING; consumers tolerate unknown names). Known lane names:
403
- * `host`/`e2b`/`k8s`/`ssh`/`adb`/`local-docker`/`device` (the REMOTE_EXEC providers) **plus `in-process`**
404
- * — the REMOTE_EXEC-unset fleet posture ([ref]: previously "OA/review-style workers", a scenario family retired in 5.0.0; named distinctly from the explicit
405
- * `host` lane on purpose). ⚠️ Admins writing `required=true` policies must include `in-process` when such
406
- * workers should stay admittable — center UI/doc 词表待补齐。
387
+ * `host`/`e2b`/`k8s`/`ssh`/`adb`/`local-docker`/`device`/`none` (the REMOTE_EXEC lanes; `none` = a declared
388
+ * no-execution-environment lane). Since 7.147.0 every deployment declares its lane; the name earlier versions gave an
389
+ * unset lane (`in-process`) is retired and renamed `none` ⇒ admins writing `required=true` policies list `none` for workers
390
+ * without an execution environment (during the switch, list both names, then drop the old one — data, not a code double-read).
407
391
  *
408
392
  * 🔴 **`device` 是 per-principal 执行面上最需要写清的一条**(device-executor-lane-v2 §4.1 的 web-admin
409
393
  * 行,车A-4 补):它是「在**员工自己的机器**上执行」的那条车道 —— 允许它 ≠ 允许一台云沙箱,而是允许
@@ -139,8 +139,9 @@ export interface EndedSpace {
139
139
  * no second read to fail — a head read that throws fails the delete itself (retried to convergence). */
140
140
  export type CacheReclaimReason = "delete_failed" | "budget";
141
141
  /**
142
- * The ONE reclaim seat for an ended space — called where a space ENDS: the session-delete coordinator (`boot/session-faces.ts` `purgeSession`)
143
- * and the managed-retention sweep after it deletes session trees (`boot/retention-lane.ts`); neither writes a reclaim of its own. It reclaims
142
+ * The ONE reclaim seat for an ended space — called where a space ENDS, through the one session-erase settler (`session-erase.ts`
143
+ * `createSessionEraseSettler`) both deciders run after a session tree is erased: the session-delete coordinator (`boot/session-faces.ts` `purgeSession`)
144
+ * and the managed-retention sweep (`boot/retention-lane.ts`); neither writes a reclaim of its own. It reclaims
144
145
  * everything the space left behind: the cache volume (when configured), the `space/` snapshot partition and the session's park snapshots whose names carry the ended occupant's ownership mark (when a
145
146
  * snapshot store is configured; old-form / `none` park objects are left to the bucket's lifecycle rule). ONE call runs under ONE
146
147
  * absolute deadline (`dataTimeoutMs`) built at its entry — the cache volume and the objects of every space in the call; a space the deadline passed
@@ -13,7 +13,7 @@ dials the device, so the device needs no inbound port, no public address and no
13
13
 
14
14
  | Plane | Transport | Who calls whom | Where it is specified |
15
15
  |---|---|---|---|
16
- | Management / enrollment / binding | HTTPS, JSON | the user's client calls the server | `docs/ASSISTANT-WIRE-CONTRACT.md` §14 |
16
+ | Management / enrollment / binding | HTTPS, JSON | the user's client calls the server | the server's wire contract, device-management section (internal record, not shipped) |
17
17
  | Executor | WebSocket (upgrade on the WS path below), text frames, JSON | the device connects out to the server | **this document** |
18
18
 
19
19
  **Discovery before you connect**: `GET /v1/capabilities` carries a `deviceExecutor` key — either `false`
@@ -1103,6 +1103,6 @@ The short version for an executor implementer:
1103
1103
  *different* device is refused — changing devices is an explicit rebind action, never an implicit one;
1104
1104
  - a non-device deployment refuses the key outright rather than ignoring it.
1105
1105
 
1106
- The full contract — request shapes, every refusal code, the rebind verb, and the disclosed races — is in
1107
- `docs/ASSISTANT-WIRE-CONTRACT.md` §14.6 (and §14.1–14.5 for the management verbs). It is not repeated
1108
- here.
1106
+ The full contract — request shapes, every refusal code, the rebind verb, and the disclosed races — is part of
1107
+ the server's wire contract, in its device-lane section (the first-bind write protocol and the management verbs;
1108
+ internal record, not shipped). It is not repeated here.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema-agent/server",
3
- "version": "7.146.0",
3
+ "version": "7.148.0",
4
4
  "description": "Sema Server — the server/API implementation layer for Sema, wiring core, registry, model providers, and cloud agent execution. Built on @sema-agent/core.",
5
5
  "type": "module",
6
6
  "license": "BUSL-1.1",
@@ -14,6 +14,9 @@
14
14
  "./main": {
15
15
  "default": "./dist/main.js"
16
16
  },
17
+ "./model-plane-probe": {
18
+ "default": "./dist/model-plane-probe.js"
19
+ },
17
20
  "./device-protocol": {
18
21
  "types": "./dist/device-protocol.d.ts",
19
22
  "default": "./dist/device-protocol.js"
@@ -78,23 +81,23 @@
78
81
  },
79
82
  "dependencies": {
80
83
  "@modelcontextprotocol/server": "2.4.0",
81
- "@sema-agent/core": "7.64.0",
82
- "@sema-agent/settings-schema": "17.1.0",
83
- "e2b": "^2.28.0",
84
- "libsodium-wrappers": "^0.8.4",
85
- "mysql2": "^3.22.4",
86
- "pg": "^8.22.0",
87
- "ssh2": "^1.17.0",
84
+ "@sema-agent/core": "7.66.0",
85
+ "@sema-agent/settings-schema": "24.0.0",
86
+ "e2b": "2.36.0",
87
+ "libsodium-wrappers": "0.8.4",
88
+ "mysql2": "3.22.6",
89
+ "pg": "8.22.0",
90
+ "ssh2": "1.17.0",
88
91
  "typebox": "1.1.39",
89
92
  "undici": "7.30.0",
90
- "ws": "^8.21.0",
91
- "zod": "^4.4.3"
93
+ "ws": "8.21.0",
94
+ "zod": "4.4.3"
92
95
  },
93
96
  "optionalDependencies": {
94
- "sharp": "^0.35.3"
97
+ "sharp": "0.35.3"
95
98
  },
96
99
  "devDependencies": {
97
- "@sema-agent/sdk": "24.0.0",
100
+ "@sema-agent/sdk": "36.0.0",
98
101
  "@types/libsodium-wrappers": "^0.7.14",
99
102
  "@types/node": "22.10.2",
100
103
  "@types/pg": "^8.20.0",
@@ -103,6 +106,7 @@
103
106
  "ajv": "^8.20.0",
104
107
  "ajv-formats": "^3.0.1",
105
108
  "core-mixed-version-reader": "npm:@sema-agent/core@7.54.1",
109
+ "semver": "7.8.5",
106
110
  "tsx": "4.19.2",
107
111
  "typescript": "5.7.2",
108
112
  "vitest": "^4.1.8",