@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
@@ -1,14 +1,85 @@
1
- export const SEMA_PROVENANCE_KINDS = ["agent_message"];
2
- export const SEMA_PROVENANCE_KINDS_EXCLUDED = ["cross_session_message", "cross_session_notice", "inbox_notice"];
1
+ import { MAILBOX_PEER_FROM_MODES, MAILBOX_PEER_RECORD_KINDS } from "@sema-agent/core";
2
+ import { seatText } from "./exit-seat.js";
3
+ import { dropProjectedFace } from "./projection-drop.js";
4
+ import { isPlainObject, isString, memberOf, optional, settle } from "./task-notification-facets.js";
5
+ export const SEMA_PROVENANCE_KINDS = ["agent_message", "cross_session_message", "cross_session_notice", "inbox_notice"];
3
6
  const _semaProvenanceExhaustive = true;
4
7
  void _semaProvenanceExhaustive;
5
- const _semaProvenanceNoDoubleBook = true;
6
- void _semaProvenanceNoDoubleBook;
7
- export function semaProvenanceOrAbsent(p) {
8
- if (!SEMA_PROVENANCE_KINDS.includes(p.kind))
9
- return undefined;
10
- if (typeof p.from !== "string" || typeof p.taskId !== "string" || typeof p.seq !== "number")
11
- return undefined;
12
- return { kind: p.kind, from: p.from, taskId: p.taskId, seq: p.seq, ...(typeof p.agentType === "string" ? { agentType: p.agentType } : {}) };
8
+ const isKind = memberOf(SEMA_PROVENANCE_KINDS);
9
+ const optString = optional(isString);
10
+ const optFromMode = optional(memberOf(MAILBOX_PEER_FROM_MODES));
11
+ const optRecordKind = optional(memberOf(MAILBOX_PEER_RECORD_KINDS));
12
+ const optBoolean = optional((v) => typeof v === "boolean");
13
+ const optInstant = optional((v) => typeof v === "number" && Number.isFinite(v) && v >= 0);
14
+ export function semaProvenanceFields(n, seat) {
15
+ if (n._sema_provenance === undefined)
16
+ return {};
17
+ const p = settle(provenanceOf(n._sema_provenance, seat), (why) => dropProjectedFace("task_notification._sema_provenance " + why));
18
+ return p !== undefined ? { _sema_provenance: p } : {};
19
+ }
20
+ function provenanceOf(raw, seat) {
21
+ if (!isPlainObject(raw))
22
+ return { why: "is not a plain-data record" };
23
+ const { kind, from, taskId, seq, agentType, peerMeta } = raw;
24
+ if (!isKind(kind))
25
+ return { why: "kind is outside the core lane vocabulary" };
26
+ if (!isString(from) || !isString(taskId) || typeof seq !== "number")
27
+ return { why: "is missing a string from / taskId or a number seq" };
28
+ if (!optString(agentType))
29
+ return { why: "agentType is present but not a string" };
30
+ const meta = peerMeta === undefined ? undefined : peerMetaOf(peerMeta, seat);
31
+ if (meta !== undefined && "why" in meta)
32
+ return { why: `peerMeta ${meta.why}` };
33
+ return { wire: { kind, from, taskId, seq, ...(agentType !== undefined ? { agentType } : {}), ...(meta !== undefined ? { peerMeta: meta.wire } : {}) } };
34
+ }
35
+ function peerMetaOf(raw, seat) {
36
+ if (!isPlainObject(raw))
37
+ return { why: "is not a plain-data record" };
38
+ const { fromSession, fromRoot, fromMode, kind, fromScope, notice, urgent } = raw;
39
+ if (!optString(fromSession) || !optString(fromRoot) || !optString(fromScope)) {
40
+ return { why: "has a present fromSession / fromRoot / fromScope that is not a string" };
41
+ }
42
+ if (!optFromMode(fromMode))
43
+ return { why: "fromMode is outside core MAILBOX_PEER_FROM_MODES" };
44
+ if (!optRecordKind(kind))
45
+ return { why: "kind is outside core MAILBOX_PEER_RECORD_KINDS" };
46
+ if (!optBoolean(urgent))
47
+ return { why: "urgent is present but not a boolean" };
48
+ const typed = notice === undefined ? undefined : noticeOf(notice, seat);
49
+ if (typed !== undefined && "why" in typed)
50
+ return { why: `notice ${typed.why}` };
51
+ return {
52
+ wire: {
53
+ ...(fromSession !== undefined ? { fromSession } : {}),
54
+ ...(fromRoot !== undefined ? { fromRoot } : {}),
55
+ ...(fromMode !== undefined ? { fromMode } : {}),
56
+ ...(kind !== undefined ? { kind } : {}),
57
+ ...(fromScope !== undefined ? { fromScope } : {}),
58
+ ...(typed !== undefined ? { notice: typed.wire } : {}),
59
+ ...(urgent !== undefined ? { urgent } : {}),
60
+ },
61
+ };
62
+ }
63
+ function noticeOf(raw, seat) {
64
+ if (!isPlainObject(raw))
65
+ return { why: "is not a plain-data record" };
66
+ const { state, refSeq, recipient, dropReason, finishedAt, detail, target } = raw;
67
+ if (!isString(state))
68
+ return { why: "is missing a string state" };
69
+ if (!optInstant(refSeq) || !optInstant(finishedAt))
70
+ return { why: "has a present refSeq / finishedAt that is not a non-negative finite number" };
71
+ if (!optString(recipient) || !optString(dropReason) || !optString(detail) || !optString(target))
72
+ return { why: "has a present recipient / dropReason / detail / target that is not a string" };
73
+ return {
74
+ wire: {
75
+ state,
76
+ ...(refSeq !== undefined ? { refSeq } : {}),
77
+ ...(recipient !== undefined ? { recipient: seatText(seat, recipient) } : {}),
78
+ ...(dropReason !== undefined ? { dropReason: seatText(seat, dropReason) } : {}),
79
+ ...(finishedAt !== undefined ? { finishedAt } : {}),
80
+ ...(detail !== undefined ? { detail: seatText(seat, detail) } : {}),
81
+ ...(target !== undefined ? { target: seatText(seat, target) } : {}),
82
+ },
83
+ };
13
84
  }
14
85
  //# sourceMappingURL=sema-provenance.js.map
@@ -9,13 +9,16 @@
9
9
  * `terminalFrameFacets` 统一铸:`spawnName` / `handback` / `compaction`;
10
10
  * · {@link resupplyFields} —— 重供两键([ref]):`resupplied` / `attempt`。
11
11
  * 全部是引擎铸的闭形值(身份键 / 闭集词 / 计数 / 布尔),零模型自由文本 ⇒ 不过 `redactSecrets`;判不过形 ⇒ 那一键
12
- * 缺席(不折默认、不编值)。同一只会话箱车道的**载体** `inboxNotice` 不在这里 —— 它在 EXCLUDED 簿
13
- * (`core-keyset-guard.ts` ①,理由逐字在那里)。
12
+ * 缺席(不折默认、不编值)。
13
+ * [ref] 起第三组:会话箱车道的三只**载体** —— {@link sessionBoxCarrierFields}:`crossSessionMessage` / `crossSessionNotice` /
14
+ * `inboxNotice`(同一条律;载体带别处来的自由文本,经出口座 —— 座由腿给,见 {@link FrameTextSeat})。它们的侧记 `_sema_provenance`
15
+ * (含 typed 的 `peerMeta.notice`)是同帧另一只键,判据在 `sema-provenance.ts`(一只 wire 键一个判据文件,两腿共用)。
14
16
  * 🔴 NP-5(7.100.0 合并复审 [ref] 交叉表 #7):「在场但读不出」经 present-iff 投影脸族的唯一丢弃留痕 `dropProjectedFace`
15
17
  * (`./projection-drop.ts`,`server.trace.projection-input-malformed`)计一次再丢;**缺席从不计数**。此前这里静默丢,
16
18
  * 而同批 `wiring_manifest.teamRole` 走那只计数 —— 同一条规则两种处置。
17
19
  */
18
20
  import { type HandbackState, type TaskNotificationPayload } from "@sema-agent/core";
21
+ import { type ExitSeat, type SafeText } from "./exit-seat.js";
19
22
  /**
20
23
  * 委派终态帧 `compaction` facet 的形 —— **从 core 载荷派生,不手写**(NP-7,7.100.0 合并复审 [ref] 交叉表 #9,opus A5)。
21
24
  * 修前是手写的 `{ passes; breakerOpen; kind? }`:core 给它加成员时 tsc 不红、逐挑处把新成员静默丢(变异探针实测:给 core 的
@@ -61,5 +64,70 @@ export declare function resupplyFields(n: TaskNotificationFacetInput): {
61
64
  resupplied?: true;
62
65
  attempt?: number;
63
66
  };
67
+ /**
68
+ * 一只 `task_notification` 帧的自由文本从哪一行出口座出门 —— **座由腿给,判据不分腿**:
69
+ * · live 三腿(sync SSE / bg·resume 账本行):`trace-frame-text`(不设界,与同帧 `summary` / `result` 同一行);
70
+ * · park 腿(入会话收件、下一次开流 drain):`inbox-frame-text`(界 4000,与 park 条目既有的文本位同额 —— `payload` 列是 TEXT)。
71
+ * 两行同一个脱敏 scope,所以界内的文本两腿逐字节同;非文本成员两腿恒逐字节同。
72
+ */
73
+ export type FrameTextSeat = Extract<ExitSeat, "trace-frame-text" | "inbox-frame-text">;
74
+ type Faces = typeof import("./wire-projection-faces.js").WIRE_PROJECTION_FACES;
75
+ /** 登记表嵌套面那一行的 `excluded`(「哪个成员不投」的单写者)读成联合型 —— 本文件与 `sema-provenance.ts` 的投影型 = core 型减它。 */
76
+ export type FaceExcluded<F extends keyof Faces> = Faces[F]["excluded"][number];
77
+ type CrossSessionMessage = NonNullable<TaskNotificationPayload["crossSessionMessage"]>;
78
+ type CrossSessionNotice = NonNullable<TaskNotificationPayload["crossSessionNotice"]>;
79
+ type InboxNotice = NonNullable<TaskNotificationPayload["inboxNotice"]>;
80
+ /** 消息载体的 wire 形:core 型减登记表排除;`fromName`(发信方原始显示名)与 `body`(对端正文)是出口座铸的 {@link SafeText}。 */
81
+ export type CrossSessionMessageWire = Omit<CrossSessionMessage, "fromName" | "body" | FaceExcluded<"task_notification_cross_session_message">> & {
82
+ fromName?: SafeText;
83
+ body: SafeText;
84
+ };
85
+ /** 通告载体的 wire 形:`kind` 闭二词 + `text`(drain 由 typed notice 渲的句子,句子里嵌着别的会话的标签与那一行 ⇒ 经座)。 */
86
+ export type CrossSessionNoticeWire = Omit<CrossSessionNotice, "text" | FaceExcluded<"task_notification_cross_session_notice">> & {
87
+ text: SafeText;
88
+ };
89
+ /** 收件箱通告载体的 wire 形:四个计数(`box` 登记不投 —— 同帧已有)。 */
90
+ export type InboxNoticeWire = Omit<InboxNotice, FaceExcluded<"task_notification_inbox_notice">>;
91
+ /** 通告载体的 `kind` 闭集。core 只在型上写这两个词、没导出常量 ⇒ 本表 + 两向锚(`satisfies` 保表内无词表外的词;穷举保词表无表外的词 —— core 加 / 删词 ⇒ tsc 红)。 */
92
+ export declare const CROSS_SESSION_NOTICE_KINDS: readonly ["delivery_notice", "idle_notice"];
93
+ /** 一只嵌套键的判决:读得出 ⇒ 要上 wire 的形;读不出 ⇒ 理由(调用方整键丢并计一次)。 */
94
+ export type Verdict<W> = {
95
+ readonly wire: W;
96
+ } | {
97
+ readonly why: string;
98
+ };
99
+ /** 成员读法(本文件与 `sema-provenance.ts` 共用的一组;只判形,不改值)。 */
100
+ /** 纯数据记录:原型是 `Object.prototype` 或 `null`(类实例 / `Date` / `Map` / 数组不算 —— 成员全可选的容器不判原型就会把它们读成 `{}`)。 */
101
+ export declare const isPlainObject: (v: unknown) => v is Record<string, unknown>;
102
+ export declare const isString: (v: unknown) => v is string;
103
+ /** 闭集成员判定 —— 集是 core 导出的常量(不手抄,[ref]),或 core 只在型上写词时本仓经两向锚钉住的词表。 */
104
+ export declare const memberOf: <T extends string>(set: readonly T[]) => (v: unknown) => v is T;
105
+ /** 可选成员:缺席读得出(缺席即缺席,不计数),在场按 `guard` 判。 */
106
+ export declare const optional: <T>(guard: (v: unknown) => v is T) => (v: unknown) => v is T | undefined;
107
+ /** 两条腿入参的形(运行期载荷,先当 `unknown` 收、判过形才成 typed)。 */
108
+ export interface SessionBoxCarrierInput {
109
+ crossSessionMessage?: unknown;
110
+ crossSessionNotice?: unknown;
111
+ inboxNotice?: unknown;
112
+ }
113
+ /**
114
+ * 会话箱车道的三只载体(core 的 session-box drain 唯一铸点;在场 = 渲染判别,core 优先序 agentMessage → crossSessionMessage →
115
+ * crossSessionNotice → inboxNotice,本服务不判跨键优先 —— 那是消费端的渲染律)。规则与本文件其余两组同一条:逐成员挑、在场才带、
116
+ * **在场却读不出 ⇒ 那一只载体整键丢并计一次**(半张卡比没有卡更坏:成员缺席在这些形上是一句正面陈述,读不出若只丢那个成员,
117
+ * 等于替 producer 说了一句它没说的话)、缺席不计。不跨键判(哪个 lane 词配哪只载体是产生者的律,core 在铸点守)。
118
+ * · `crossSessionMessage` —— 对端会话的一条信:`from`(规范编码的发信地址,回信抄进 `to` 的那一串)/ `fromSession` / `fromScope` 身份逐字
119
+ * (遮身份会把两个合法地址塌成一个值,与 `spawnName` 同律);`fromMode` 闭集取 core 的 `PERMISSION_MODE_CLASSES`;`fromName`(原始显示名,
120
+ * core 只在建信封时规范化)与 `body`(对端正文,UNTRUSTED)经座。
121
+ * · `crossSessionNotice` —— `kind` 闭二词({@link CROSS_SESSION_NOTICE_KINDS});`text` 经座。typed 位(`state` / `refSeq` / …)在侧记的
122
+ * `peerMeta.notice`(core:「a host renders a card from there, never by parsing `text`」)—— 不平铺进这里(同一事实只一个读点)。
123
+ * · `inboxNotice` —— `pending` / `delivered` 必需、`urgent` / `resupplied` 可选,全是计数(非负整数)逐字;`box` 不读不投(登记表排除)。
124
+ */
125
+ export declare function sessionBoxCarrierFields(n: SessionBoxCarrierInput, seat: FrameTextSeat): {
126
+ crossSessionMessage?: CrossSessionMessageWire;
127
+ crossSessionNotice?: CrossSessionNoticeWire;
128
+ inboxNotice?: InboxNoticeWire;
129
+ };
130
+ /** 判决落定:读得出 ⇒ 形;读不出 ⇒ 交给调用点的丢弃口(字面面名留在调用点,普查门 GU-2 按它点名)。 */
131
+ export declare const settle: <W>(v: Verdict<W>, drop: (why: string) => undefined) => W | undefined;
64
132
  export {};
65
133
  //# sourceMappingURL=task-notification-facets.d.ts.map
@@ -1,4 +1,5 @@
1
- import { COMPACTION_KINDS, HANDBACK_STATES } from "@sema-agent/core";
1
+ import { COMPACTION_KINDS, HANDBACK_STATES, PERMISSION_MODE_CLASSES } from "@sema-agent/core";
2
+ import { seatText } from "./exit-seat.js";
2
3
  import { dropProjectedFace } from "./projection-drop.js";
3
4
  export function terminalFrameFacetFields(n) {
4
5
  const spawnName = n.spawnName === undefined ? undefined : typeof n.spawnName === "string" ? n.spawnName : dropProjectedFace("task_notification.spawnName is not a string");
@@ -28,4 +29,73 @@ export function resupplyFields(n) {
28
29
  ...(attempt !== undefined ? { attempt } : {}),
29
30
  };
30
31
  }
32
+ export const CROSS_SESSION_NOTICE_KINDS = ["delivery_notice", "idle_notice"];
33
+ const _noticeKindsExhaustive = true;
34
+ void _noticeKindsExhaustive;
35
+ export const isPlainObject = (v) => {
36
+ if (typeof v !== "object" || v === null || Array.isArray(v))
37
+ return false;
38
+ const proto = Object.getPrototypeOf(v);
39
+ return proto === Object.prototype || proto === null;
40
+ };
41
+ export const isString = (v) => typeof v === "string";
42
+ const isCount = (v) => Number.isInteger(v) && v >= 0;
43
+ export const memberOf = (set) => (v) => set.includes(v);
44
+ export const optional = (guard) => (v) => v === undefined || guard(v);
45
+ const optString = optional(isString);
46
+ const optCount = optional(isCount);
47
+ const optModeClass = optional(memberOf(PERMISSION_MODE_CLASSES));
48
+ const isNoticeKind = memberOf(CROSS_SESSION_NOTICE_KINDS);
49
+ export function sessionBoxCarrierFields(n, seat) {
50
+ const message = n.crossSessionMessage === undefined ? undefined : settle(crossSessionMessageOf(n.crossSessionMessage, seat), (why) => dropProjectedFace("task_notification.crossSessionMessage " + why));
51
+ const notice = n.crossSessionNotice === undefined ? undefined : settle(crossSessionNoticeOf(n.crossSessionNotice, seat), (why) => dropProjectedFace("task_notification.crossSessionNotice " + why));
52
+ const inbox = n.inboxNotice === undefined ? undefined : settle(inboxNoticeOf(n.inboxNotice), (why) => dropProjectedFace("task_notification.inboxNotice " + why));
53
+ return {
54
+ ...(message !== undefined ? { crossSessionMessage: message } : {}),
55
+ ...(notice !== undefined ? { crossSessionNotice: notice } : {}),
56
+ ...(inbox !== undefined ? { inboxNotice: inbox } : {}),
57
+ };
58
+ }
59
+ export const settle = (v, drop) => ("why" in v ? drop(v.why) : v.wire);
60
+ function crossSessionMessageOf(raw, seat) {
61
+ if (!isPlainObject(raw))
62
+ return { why: "is not a plain-data record" };
63
+ const { from, fromSession, fromName, fromMode, fromScope, body } = raw;
64
+ if (!isString(from) || !isString(body))
65
+ return { why: "is missing a string from / body" };
66
+ if (!optString(fromSession) || !optString(fromName) || !optString(fromScope))
67
+ return { why: "has a present fromSession / fromName / fromScope that is not a string" };
68
+ if (!optModeClass(fromMode))
69
+ return { why: "fromMode is outside core PERMISSION_MODE_CLASSES" };
70
+ return {
71
+ wire: {
72
+ from,
73
+ ...(fromSession !== undefined ? { fromSession } : {}),
74
+ ...(fromName !== undefined ? { fromName: seatText(seat, fromName) } : {}),
75
+ ...(fromMode !== undefined ? { fromMode } : {}),
76
+ ...(fromScope !== undefined ? { fromScope } : {}),
77
+ body: seatText(seat, body),
78
+ },
79
+ };
80
+ }
81
+ function crossSessionNoticeOf(raw, seat) {
82
+ if (!isPlainObject(raw))
83
+ return { why: "is not a plain-data record" };
84
+ const { kind, text } = raw;
85
+ if (!isNoticeKind(kind))
86
+ return { why: "kind is outside delivery_notice / idle_notice" };
87
+ if (!isString(text))
88
+ return { why: "is missing a string text" };
89
+ return { wire: { kind, text: seatText(seat, text) } };
90
+ }
91
+ function inboxNoticeOf(raw) {
92
+ if (!isPlainObject(raw))
93
+ return { why: "is not a plain-data record" };
94
+ const { pending, delivered, urgent, resupplied } = raw;
95
+ if (!isCount(pending) || !isCount(delivered))
96
+ return { why: "is missing a non-negative integer pending / delivered" };
97
+ if (!optCount(urgent) || !optCount(resupplied))
98
+ return { why: "has a present urgent / resupplied that is not a non-negative integer" };
99
+ return { wire: { pending, delivered, ...(urgent !== undefined ? { urgent } : {}), ...(resupplied !== undefined ? { resupplied } : {}) } };
100
+ }
31
101
  //# sourceMappingURL=task-notification-facets.js.map
@@ -92,15 +92,14 @@ export type DeclaredKey = ManifestShape & {
92
92
  readonly optional?: true;
93
93
  };
94
94
  /**
95
- * `TaskEvent` **信封**上的键 —— 这一族构造器一个都不管,所以在每一只 TaskEvent 面上统一扣除。
96
- * · `type`:臂名由调用点自己拼在投影体外(`{ type: "tool_end", ...toolEndEventData(ev) }`),不是载荷键;
97
- * · `sourceTaskId` / `bgAgentId`:live 腿的**四键身份**由 `liveIdentityFields` 单独挑(durable 两腿只挑两键),
98
- * 属主是那只函数而不是各面构造器 —— 所以对本族构造器它们恒不在投影体里。
95
+ * `TaskEvent` **信封**上的键 —— 这一族构造器一个都不管,所以在每一只 TaskEvent 面上统一扣除:只有 `type`(臂名由调用点自己拼在投影体外,
96
+ * `{ type: "tool_end", ...toolEndEventData(ev) }`,不是载荷键)。身份四键(`eventId` / `parentToolCallId` / `sourceTaskId` / `bgAgentId`)
97
+ * 是载荷键,每只构造器经同一只 `identityFields` 投 —— 不在这里扣。
99
98
  * 这是**一条统一规则**,不是十六个面各自的豁免名单:新臂进来自动适用。
100
99
  */
101
- export declare const FRAME_ENVELOPE_KEYS: readonly ["type", "sourceTaskId", "bgAgentId"];
100
+ export declare const FRAME_ENVELOPE_KEYS: readonly ["type"];
102
101
  /** 探针文件要从 `@sema-agent/core` 具名导入的类型(`coreType` 表达式里用到的全部名字)。 */
103
- export declare const WIRE_PROJECTION_CORE_IMPORTS: readonly ["TaskEvent", "BrainStatus", "TaskNotificationPayload", "WiringManifest", "EngineNotice", "MemoryImportReport", "OriginClearanceRow", "OriginClearanceEvent", "MemoryEntryOrigin", "TraceEvent", "PromptManifestIdentity", "PromptIdentityLayers", "PromptManifestSelectors", "PromptManifestSection", "PromptChainLink", "SupersededOverlay", "ToolDisclosureManifest"];
102
+ export declare const WIRE_PROJECTION_CORE_IMPORTS: readonly ["TaskEvent", "BrainStatus", "TaskNotificationPayload", "WiringManifest", "EngineNotice", "MemoryImportReport", "OriginClearanceRow", "OriginClearanceEvent", "MemoryEntryOrigin", "TraceEvent", "PromptManifestIdentity", "PromptIdentityLayers", "PromptManifestSelectors", "PromptManifestSection", "PromptChainLink", "SupersededOverlay", "ToolDisclosureManifest", "SemaProvenance", "MailboxPeerMeta", "MailboxPeerNoticeMeta", "CrossSessionEnvelopeFields"];
104
103
  /**
105
104
  * `wiring_manifest` 的 **operator 面多投的那几段**(`wiringManifestOperatorEventData` 在租户形之上加的段)。
106
105
  * operator 行的 `excluded` = 租户行减本常量(派生);四段各自的受众裁定在 `core-keyset-guard.ts` ⑥b。
@@ -213,16 +212,52 @@ export declare const WIRE_PROJECTION_FACES: {
213
212
  readonly human_input: {
214
213
  readonly projector: "humanInputEventData";
215
214
  readonly coreType: string;
216
- readonly excluded: readonly ["principal", "runOrigin"];
215
+ readonly excluded: readonly ["principal"];
217
216
  readonly minted: readonly [];
218
217
  };
219
218
  readonly task_notification: {
220
219
  readonly projector: "taskNotificationEventData";
221
220
  readonly coreType: `TaskNotificationPayload & ${string}`;
222
- readonly excluded: readonly ["peer", "crossSessionMessage", "crossSessionNotice", "inboxNotice", "received"];
221
+ readonly excluded: readonly ["peer", "received"];
223
222
  readonly unwrapped: readonly ["notification"];
224
223
  readonly minted: readonly ["injected"];
225
224
  };
225
+ readonly task_notification_cross_session_message: {
226
+ readonly projector: "taskNotificationEventData";
227
+ readonly coreType: "CrossSessionEnvelopeFields & NonNullable<TaskNotificationPayload[\"crossSessionMessage\"]>";
228
+ readonly excluded: readonly [];
229
+ readonly minted: readonly [];
230
+ };
231
+ readonly task_notification_cross_session_notice: {
232
+ readonly projector: "taskNotificationEventData";
233
+ readonly coreType: "NonNullable<TaskNotificationPayload[\"crossSessionNotice\"]>";
234
+ readonly excluded: readonly [];
235
+ readonly minted: readonly [];
236
+ };
237
+ readonly task_notification_inbox_notice: {
238
+ readonly projector: "taskNotificationEventData";
239
+ readonly coreType: "NonNullable<TaskNotificationPayload[\"inboxNotice\"]>";
240
+ readonly excluded: readonly ["box"];
241
+ readonly minted: readonly [];
242
+ };
243
+ readonly task_notification_provenance: {
244
+ readonly projector: "taskNotificationEventData";
245
+ readonly coreType: "SemaProvenance";
246
+ readonly excluded: readonly [];
247
+ readonly minted: readonly [];
248
+ };
249
+ readonly task_notification_peer_meta: {
250
+ readonly projector: "taskNotificationEventData";
251
+ readonly coreType: "MailboxPeerMeta";
252
+ readonly excluded: readonly ["senderKey", "gateReceiptId", "occupant", "fromOccupant"];
253
+ readonly minted: readonly [];
254
+ };
255
+ readonly task_notification_peer_notice: {
256
+ readonly projector: "taskNotificationEventData";
257
+ readonly coreType: "MailboxPeerNoticeMeta";
258
+ readonly excluded: readonly [];
259
+ readonly minted: readonly [];
260
+ };
226
261
  readonly wiring_manifest_tenant: {
227
262
  readonly projector: "wiringManifestEventData";
228
263
  readonly coreType: `WiringManifest & ${string}`;
@@ -1,4 +1,4 @@
1
- export const FRAME_ENVELOPE_KEYS = ["type", "sourceTaskId", "bgAgentId"];
1
+ export const FRAME_ENVELOPE_KEYS = ["type"];
2
2
  export const WIRE_PROJECTION_CORE_IMPORTS = [
3
3
  "TaskEvent",
4
4
  "BrainStatus",
@@ -17,6 +17,10 @@ export const WIRE_PROJECTION_CORE_IMPORTS = [
17
17
  "PromptChainLink",
18
18
  "SupersededOverlay",
19
19
  "ToolDisclosureManifest",
20
+ "SemaProvenance",
21
+ "MailboxPeerMeta",
22
+ "MailboxPeerNoticeMeta",
23
+ "CrossSessionEnvelopeFields",
20
24
  ];
21
25
  const arm = (name) => `Extract<TaskEvent, { type: "${name}" }>`;
22
26
  const MANIFEST_FRAME = `Extract<TraceEvent, { kind: "prompt.assembled" }>`;
@@ -41,14 +45,35 @@ export const WIRE_PROJECTION_FACES = {
41
45
  turn_end: { projector: "turnEndEventData", coreType: arm("turn_end"), excluded: [], minted: [] },
42
46
  compaction_outcome: { projector: "compactionOutcomeEventData", coreType: arm("compaction_outcome"), excluded: [], minted: [] },
43
47
  compaction_started: { projector: "compactionStartedEventData", coreType: arm("compaction_started"), excluded: [], minted: [] },
44
- human_input: { projector: "humanInputEventData", coreType: arm("human_input"), excluded: ["principal", "runOrigin"], minted: [] },
48
+ human_input: { projector: "humanInputEventData", coreType: arm("human_input"), excluded: ["principal"], minted: [] },
45
49
  task_notification: {
46
50
  projector: "taskNotificationEventData",
47
51
  coreType: `TaskNotificationPayload & ${arm("task_notification")}`,
48
- excluded: ["peer", "crossSessionMessage", "crossSessionNotice", "inboxNotice", "received"],
52
+ excluded: ["peer", "received"],
49
53
  unwrapped: ["notification"],
50
54
  minted: ["injected"],
51
55
  },
56
+ task_notification_cross_session_message: {
57
+ projector: "taskNotificationEventData",
58
+ coreType: `CrossSessionEnvelopeFields & NonNullable<TaskNotificationPayload["crossSessionMessage"]>`,
59
+ excluded: [],
60
+ minted: [],
61
+ },
62
+ task_notification_cross_session_notice: {
63
+ projector: "taskNotificationEventData",
64
+ coreType: `NonNullable<TaskNotificationPayload["crossSessionNotice"]>`,
65
+ excluded: [],
66
+ minted: [],
67
+ },
68
+ task_notification_inbox_notice: {
69
+ projector: "taskNotificationEventData",
70
+ coreType: `NonNullable<TaskNotificationPayload["inboxNotice"]>`,
71
+ excluded: ["box"],
72
+ minted: [],
73
+ },
74
+ task_notification_provenance: { projector: "taskNotificationEventData", coreType: "SemaProvenance", excluded: [], minted: [] },
75
+ task_notification_peer_meta: { projector: "taskNotificationEventData", coreType: "MailboxPeerMeta", excluded: ["senderKey", "gateReceiptId", "occupant", "fromOccupant"], minted: [] },
76
+ task_notification_peer_notice: { projector: "taskNotificationEventData", coreType: "MailboxPeerNoticeMeta", excluded: [], minted: [] },
52
77
  wiring_manifest_tenant: {
53
78
  projector: "wiringManifestEventData",
54
79
  coreType: `WiringManifest & ${arm("wiring_manifest")}`,
@@ -0,0 +1,66 @@
1
+ /**
2
+ * 「请求里有本版读者读不出、而这台部署本会采纳的成员」—— **一只**判据,两个调用点:`boot/resolve-spec.ts` 装配腿首(**拒点**;两腿同判)与
3
+ * `http/stored-body-replay.ts` 的存体重放预判(五个续跑问点同调,认领之前答)。
4
+ *
5
+ * ## 律(一条)
6
+ * 请求的某个成员,本版的读者读不出(整只不交,或其中几处不交给引擎),而这台部署对这个成员本会采纳(读得出就会生效)⇒ 这份请求不跑。
7
+ * · 新提交:`settings.env` 有成员不是帽内串 ⇒ 本判据是唯一的拒点(受理门只判形与帽;HTTP 新提交也走到这里)—— 采纳 env 的车道上 400,其余车道零变;
8
+ * 其余成员在受理门 / 腿首按各自的判据已 400(本判据在新提交腿上对它们只接得住绕过受理门直调 `resolveSpec` 的嵌入方);
9
+ * · 续跑重放(盘上的存量请求体,升级前受理时读得出、本版读不出):拒续跑 —— 409 `resume_blocked_by_policy`(`blockedBy` = `request.field_invalid`,
10
+ * `field` = 第一个读不出的坐标,句子点名全部坐标、不回显值),卡仍待决、行不动;出路 = 取消后按本版的形重提。
11
+ * 修前续跑重放腿把读不出的成员丢掉照跑,只留一行运维 warn(`task_settings_deferred` / `mcp_transport_members_dropped` / `a2a_peer_headers_members_dropped`):
12
+ * 丢掉的可能是同一份 hooks 里真在拦的守卫、MCP 服务的鉴权头 —— 调用方只看到续跑成功。三条 warn 与 P-DEBT 计数随本判据删除。
13
+ *
14
+ * ## 成员(三座,闭集)
15
+ * · `settings.<键>`:请求设置解析层(`task-settings.ts` `parseTaskSettings`)报 `deferred` 的键 —— `hooks`(唯一读者拒;续跑重放腿上一次性迁移 M20 的窗开着时先剥键重读,过了就读得出)、
16
+ * `env`(有成员读不出:不是对象 / 过帽 / 值不是帽内的串;空记录不算)、`permissions`(不是对象 / 桶不合法)、「只收紧」座位(座位门不过)。采纳与否按键({@link settingsMemberHonored}):
17
+ * `hooks` 读 `taskHooksHonored`;`env` 的读者有两个 —— 模型的工具 shell(部署形表行 `callerCwd`)与 settings hooks 的子进程 env / http `$NAME` 插值源(`taskHooksHonored` ∧ 这份请求带着读得出的 hooks),
18
+ * 任一在 ⇒ 采纳;其余每条车道都采纳;
19
+ * · `mcpServers[<下标>].transport.<路径>`:请求面 MCP 条目挂得上、名字不被部署占住(部署声明过的名字一律关给请求面,与挂载的合并同一只 `deploymentClosedMcpNames`)、
20
+ * transport 却有几处不交给引擎(`task-mcp.ts` `requestMcpTransportUnread`);采纳 = `mcpInjectionHonored`;
21
+ * · `a2aPeers[<下标>].headers.<成员>`:请求面 A2A 对端挂得上、`headers` 里剔掉的成员(`task-a2a.ts` `requestA2aHeadersUnread`);采纳 = `a2aInjectionHonored`。
22
+ * 坐标只有键路径与下标(成员名只会是读器的保留名),不带值、不带调用方写的名字。
23
+ * A2A 一座不看部署同名占位:A2A 的占位是**按场景**的部署对端(`a2aForScenario`),存体预判在认领之前答、不知道这一跑落在哪个场景 ⇒ 一只读不出的对端若会输给同场景的部署同名对端(不挂),
24
+ * 本判据照样拒 —— 方向是多拒一次(出路同上),不是少拦。MCP 的占位与场景无关(部署声明过的全部名字),所以 MCP 一座按占位判。
25
+ *
26
+ * ## 不在射程内(已披露)
27
+ * 读者把**整条**摘下的条目(MCP / A2A 条目不是对象、硬键坏形:有用户面通告 `mcp.injection_dropped` / 运维 warn `a2a_injection_dropped`)、条目上被丢的软键
28
+ * (`contentOrigin` 降级、`elicitation` / `source` 读不出)不在本判据里。
29
+ */
30
+ import { type LaneAxisInput, type PrincipalAxisInput } from "./deployment-shape.js";
31
+ import { type SettingsEnvLayer } from "./task-settings.js";
32
+ import { mcpInjectionHonored } from "./task-mcp.js";
33
+ import type { CenterMcp } from "./config-types.js";
34
+ import { type A2aGateConfig } from "./task-a2a.js";
35
+ import type { StoredToolAxesRereadM19 } from "./stored-request-tool-axes-m19.js";
36
+ import type { Refusal } from "./http/refusal-body.js";
37
+ /** 判据读的部署事实(`ServiceConfig` 结构上满足):租户轴、已合成的车道、两只注入闸的否决位、部署的 MCP 声明(占住的名字)。 */
38
+ export type UnreadMembersDeployment = PrincipalAxisInput & LaneAxisInput & A2aGateConfig & Parameters<typeof mcpInjectionHonored>[0] & {
39
+ readonly mcpServers?: Pick<CenterMcp, "servers" | "reservedNames"> | undefined;
40
+ };
41
+ /** 请求里本判据读的三座(原样;调用方从请求体取 —— `resolveSpec` 的 A2A 一座递它腿首那一份快照)。 */
42
+ export interface UnreadMembersRequest {
43
+ readonly settings: unknown;
44
+ readonly mcpServers: unknown;
45
+ readonly a2aPeers: unknown;
46
+ }
47
+ /** 读的是哪条腿,与那条腿的读法座:续跑重放腿递 M19 的重读座(调用方求值一次,挂载那一读用同一份)与「今天」(M20 的窗按它问);新提交腿两座都没有。 */
48
+ export type UnreadMembersLeg = {
49
+ readonly replay: false;
50
+ readonly settingsEnv?: SettingsEnvLayer | undefined;
51
+ } | {
52
+ readonly replay: true;
53
+ readonly today: string;
54
+ readonly storedToolAxes: StoredToolAxesRereadM19 | undefined;
55
+ readonly settingsEnv?: SettingsEnvLayer | undefined;
56
+ };
57
+ /** 拒句(与运维行)至多点名的坐标数(余下的报总数)。 */
58
+ export declare const MAX_NAMED_MEMBERS = 8;
59
+ /** 读不出、而本部署会采纳的成员坐标(文档序:设置 → MCP → A2A);空 = 这份请求的每个成员都读得出(或读不出的那几个本部署本来就不采纳)。 */
60
+ export declare function unreadRequestMembers(request: UnreadMembersRequest, deployment: UnreadMembersDeployment, leg: UnreadMembersLeg): readonly string[];
61
+ /**
62
+ * 判据命中的拒:码 `request.field_invalid`(各成员的新提交判据答的同一个码),`field` = 第一个坐标,句子点名全部坐标(至多 {@link MAX_NAMED_MEMBERS} 个,余下报总数)。
63
+ * 拒点(`resolveSpec`)把它抛成 400;续跑口把它折成 409 `resume_blocked_by_policy`(预判与折叠调同一只折法,同码同句)。纯数据。
64
+ */
65
+ export declare function unreadRequestMembersRefusal(members: readonly [string, ...string[]]): Refusal;
66
+ //# sourceMappingURL=unread-request-members.d.ts.map
@@ -0,0 +1,41 @@
1
+ import { DEPLOYMENT_SHAPE_PREDICATES } from "./deployment-shape.js";
2
+ import { parseTaskSettings, taskHooksHonored } from "./task-settings.js";
3
+ import { deploymentClosedMcpNames, mcpInjectionHonored, requestMcpTransportUnread } from "./task-mcp.js";
4
+ import { a2aInjectionHonored, requestA2aHeadersUnread } from "./task-a2a.js";
5
+ import { storedHooksRereadM20 } from "./stored-request-hooks-m20.js";
6
+ export const MAX_NAMED_MEMBERS = 8;
7
+ function settingsMemberHonored(key, deployment, carriesHooks) {
8
+ switch (key) {
9
+ case "hooks":
10
+ return taskHooksHonored(deployment);
11
+ case "env":
12
+ return DEPLOYMENT_SHAPE_PREDICATES.callerCwd.holds(deployment) || (carriesHooks && taskHooksHonored(deployment));
13
+ default:
14
+ return true;
15
+ }
16
+ }
17
+ export function unreadRequestMembers(request, deployment, leg) {
18
+ const hooksReread = leg.replay && taskHooksHonored(deployment) ? storedHooksRereadM20(leg.today) : undefined;
19
+ const settings = parseTaskSettings(request.settings, { ...(hooksReread !== undefined ? { storedHooksReread: hooksReread } : {}), ...(leg.settingsEnv !== undefined ? { settingsEnv: leg.settingsEnv } : {}) });
20
+ const carriesHooks = settings.settings?.hooks !== undefined;
21
+ const out = settings.deferred.filter((key) => settingsMemberHonored(key, deployment, carriesHooks)).map((key) => `settings.${key}`);
22
+ const storedToolAxes = leg.replay ? leg.storedToolAxes : undefined;
23
+ if (mcpInjectionHonored(deployment)) {
24
+ const closed = deploymentClosedMcpNames(deployment.mcpServers?.servers.map((s) => s.spec), deployment.mcpServers?.reservedNames ?? []);
25
+ out.push(...requestMcpTransportUnread(request.mcpServers, closed, storedToolAxes));
26
+ }
27
+ if (a2aInjectionHonored(deployment))
28
+ out.push(...requestA2aHeadersUnread(request.a2aPeers, storedToolAxes));
29
+ return out;
30
+ }
31
+ export function unreadRequestMembersRefusal(members) {
32
+ const named = members.slice(0, MAX_NAMED_MEMBERS);
33
+ const more = members.length > named.length ? ` (and ${members.length - named.length} more)` : "";
34
+ return {
35
+ errorCode: "request.field_invalid",
36
+ message: `this request carries ${members.length === 1 ? "a member" : "members"} this server version's readers cannot take as written, on a deployment that would apply ${members.length === 1 ? "it" : "them"}: ` +
37
+ `${named.join(", ")}${more} — running it would silently leave ${members.length === 1 ? "that member" : "those members"} out (a hook that guards a tool, an MCP server's credentials); submit it again with ${members.length === 1 ? "this member" : "these members"} in the current form`,
38
+ facts: { field: members[0] },
39
+ };
40
+ }
41
+ //# sourceMappingURL=unread-request-members.js.map
@@ -0,0 +1,23 @@
1
+ /**
2
+ * 🔴 **上游应答体的 JSON 读口(唯一)** —— 本服务对任何上游(配置中心 / 记忆同步对端 / fleet 协调器 / 搜索后端 / bake 队列 / hook 的模型端点 / 凭据签发方 …)
3
+ * 的应答体解 JSON,只经这里。
4
+ *
5
+ * 一条律:**上游应答体的字节不进本服务铸的报错句**(只说体长,{@link buildBodyWithheldNote})。V8 的 `JSON.parse` 报错句内嵌入参的片段
6
+ * (`Unexpected token 's', "sk-proj-ab"... is not valid JSON`)—— 那是在出口座**之前**就切好的半截:脱敏器认得整枚令牌,认不得它的前 10 个字,
7
+ * 于是之后任何经出口座的出口(运维日志接缝、trace 帧)都挡不住它(env 旋钮的坏 JSON 早就不转述 V8 句,同一条理由)。
8
+ * 这里解析失败只说形:`the response body is not JSON (<n> characters; the body is not echoed)`;类名照旧是 `SyntaxError` ——
9
+ * 调用方按类定成因的读法不变(中心拉取:`SyntaxError` ⇒ 候选被拒 `rejected`;hook 模型端点:按名判 `bad_response`)。
10
+ * 读体途中的传输错(连接被重置的 `TypeError`、超时的 `AbortError`)原样抛:那不是「答错了」,是没拿到完整应答。
11
+ *
12
+ * 门:`test/upstream-json-single-reader.test.ts` —— `src/` 里 `.json()` 调用在本模块之外恒为 0(语法树)。
13
+ * 纯叶(零 import)。
14
+ */
15
+ /** 报错句的固定头(钉与读者按它认这一形;句子其余部分只有体长)。 */
16
+ export declare const UPSTREAM_BODY_NOT_JSON = "the response body is not JSON";
17
+ /** 一段应答体进报错句时的那一格(只有体长;本服务对上游应答体在报错句里只说这一句 —— 体不是 JSON 的句子与记忆同步对端的非 2xx 句同读)。 */
18
+ export declare function buildBodyWithheldNote(text: string): string;
19
+ /** 已读出的应答体文本 → JSON 值;不是 JSON ⇒ 抛 `SyntaxError`(句子只有体长,不带体的任何字节)。 */
20
+ export declare function parseUpstreamJson(text: string): unknown;
21
+ /** 读完应答体再解 JSON(`Response.json()` 的替身:同一份 UTF-8 解码);读体途中的传输错原样抛。 */
22
+ export declare function readUpstreamJson(res: Response): Promise<unknown>;
23
+ //# sourceMappingURL=upstream-body.d.ts.map
@@ -0,0 +1,16 @@
1
+ export const UPSTREAM_BODY_NOT_JSON = "the response body is not JSON";
2
+ export function buildBodyWithheldNote(text) {
3
+ return `(${text.length} characters; the body is not echoed)`;
4
+ }
5
+ export function parseUpstreamJson(text) {
6
+ try {
7
+ return JSON.parse(text);
8
+ }
9
+ catch {
10
+ throw new SyntaxError(`${UPSTREAM_BODY_NOT_JSON} ${buildBodyWithheldNote(text)}`);
11
+ }
12
+ }
13
+ export async function readUpstreamJson(res) {
14
+ return parseUpstreamJson(await res.text());
15
+ }
16
+ //# sourceMappingURL=upstream-body.js.map
@@ -31,10 +31,10 @@ export declare function buildRefusalShownUrl(raw: string): string;
31
31
  /**
32
32
  * **自由文本里每一条嵌着的 http(s) URL 换成它的展示形**({@link buildRefusalShownUrl}:`scheme://host[:port]`,origin 之后还有东西接 `/…`;读法不唯一 / 读不出的串给展示铸点的占位),
33
33
  * 句子其余部分逐字不动。用在宿主不控制句子的日志面 —— 引擎把「拨不通的 A2A 对端 / MCP 服务器」连同被拨的 URL 拼成一句交来(`onError`),宿主手里没有那条 URL 的结构化值,
34
- * 只能在文本上换。展示形的铸点仍只有 {@link buildRefusalShownUrl} 一只(userinfo / 路径 / query / fragment 一个字节不进,不赌形状律认得出的令牌形);本函数只负责「找到文本里的 URL」。
35
- * 非 http(s) 的 scheme 不在射程(这两座的 URL 读器只收 http(s))。纯函数。
34
+ * 只能在文本上换。展示形的铸点仍只有 {@link buildRefusalShownUrl} 一只(userinfo / 路径 / query / fragment 一个字节不进,不赌形状律认得出的令牌形);本函数只负责「找到文本里的 URL」,
35
+ * 找的界见 {@link EMBEDDED_HTTP_URL}(authority 文法)。非 http(s) 的 scheme 不在射程(这两座的 URL 读器只收 http(s))。纯函数。
36
36
  *
37
- * 已知的界(不是兜底):URL 串里含**裸空白**的(userinfo 里写了空格)在第一个空白处被截 —— 余下的尾巴留在句里。那一形是调用方在受理口就被拒的(userinfo 一律 400),
37
+ * 已知的界(文法之外,不是兜底):userinfo 里的**裸空白**不是 URL 文法的一部分 —— 串在第一个空白处结束,余下的尾巴留在句里。那一形是调用方在受理口就被拒的(userinfo 一律 400),
38
38
  * 到不了这里的只有存量停驻体 / 部署基线;引擎的警告句对该形也是把 URL 原样拼进去,没有结构化值可救。
39
39
  */
40
40
  export declare function buildShownUrlsInText(text: string): string;
@@ -11,11 +11,18 @@ export function buildRefusalShownUrl(raw) {
11
11
  const origin = `${u.protocol}//${u.host}`;
12
12
  return `${buildDisplaySafeUrl(origin)}${u.href === `${origin}/` ? "" : "/…"}`;
13
13
  }
14
- const EMBEDDED_HTTP_URL = /https?:\/\/[^\s"'`<>()[\]{}]+/gi;
14
+ const EMBEDDED_HTTP_URL = /(https?:\/\/)(?=\S)((?:[^\s/?#\\]*@)?(?:\[[^\s\]/?#\\]*\]|[^\s"'`<>()[\]{}/?#\\@:]*)(?::\d+)?)(\S*)/gi;
15
+ const SENTENCE_TAIL_CHARS = ".,;:!?)]}>'\"`";
16
+ function sentenceTailStart(rest) {
17
+ let at = rest.length;
18
+ while (at > 0 && SENTENCE_TAIL_CHARS.includes(rest.charAt(at - 1)))
19
+ at -= 1;
20
+ return at;
21
+ }
15
22
  export function buildShownUrlsInText(text) {
16
- return text.replace(EMBEDDED_HTTP_URL, (token) => {
17
- const trail = /[.,;:!?]+$/.exec(token)?.[0] ?? "";
18
- return buildRefusalShownUrl(trail === "" ? token : token.slice(0, -trail.length)) + trail;
23
+ return text.replace(EMBEDDED_HTTP_URL, (_token, scheme, authority, rest) => {
24
+ const at = sentenceTailStart(rest);
25
+ return buildRefusalShownUrl(`${scheme}${authority}${rest.slice(0, at)}`) + rest.slice(at);
19
26
  });
20
27
  }
21
28
  export function buildHttpUrlRefusal(subject, raw, flaws) {
@@ -32,7 +32,7 @@ export declare function buildRunObjectivePreview(objective: string): string;
32
32
  * 这条消息是不是**附件帧**(core 7.50.0 请求层附件:目标声明的每只文件由引擎铸成一条自己的 user 消息,紧跟目标提交)。
33
33
  * 判据 = 引擎写在消息上的送达记录 `attachment` **在场**(core:那只记录是「这条消息是附件帧」的唯一来源,文本从不判)。坏形记录同样算在场 ——
34
34
  * 两个读者都往「不是人写的话」那一侧落(预览走下一条;会话视图按文件字节脱敏),那是安全的一侧。
35
- * 一个事实一个读法:会话视图的处置表(`audit.ts`)与本地会话列表的预览(`plugins/local-session-store.ts`)同调这一只。
35
+ * 一个事实一个读法:会话视图的处置表(`audit.ts`)调这一只(会话列表的预览读 run 行预览列,不读会话条目 —— 附件帧本不在其中)。
36
36
  */
37
37
  export declare function isAttachmentFrame(message: unknown): boolean;
38
38
  //# sourceMappingURL=user-authored-text.d.ts.map