@sema-agent/server 7.132.0 → 7.133.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 (402) hide show
  1. package/MIGRATION.md +266 -0
  2. package/README.md +8 -9
  3. package/README.zh-CN.md +7 -6
  4. package/USAGE.md +174 -55
  5. package/deploy/sema-up/README.md +19 -1
  6. package/deploy/sema-up/chart/templates/server-v4pro.yaml +5 -2
  7. package/deploy/sema-up/chart/templates/server.yaml +5 -2
  8. package/deploy/sema-up/stack/compose.yaml +3 -0
  9. package/deploy/sema-up/stack/sema-stack-cluster.yaml +4 -2
  10. package/dist/adoption/plan.d.ts +3 -2
  11. package/dist/adoption/plan.js +7 -5
  12. package/dist/adoption/runner.js +3 -10
  13. package/dist/adoption/sql.d.ts +3 -2
  14. package/dist/adoption/sql.js +3 -5
  15. package/dist/adoption/wire.d.ts +4 -1
  16. package/dist/adoption/wire.js +1 -0
  17. package/dist/approval-ask-audit-store.d.ts +31 -13
  18. package/dist/approval-ask-audit-store.js +272 -74
  19. package/dist/approval-ask-machine.d.ts +15 -0
  20. package/dist/approval-ask-machine.js +6 -0
  21. package/dist/approval-ask-retention.d.ts +136 -0
  22. package/dist/approval-ask-retention.js +102 -0
  23. package/dist/approval-card.d.ts +79 -19
  24. package/dist/approval-card.js +44 -13
  25. package/dist/approval-deny-reasons.d.ts +1 -1
  26. package/dist/approval.d.ts +9 -0
  27. package/dist/approval.js +24 -3
  28. package/dist/audit.d.ts +27 -10
  29. package/dist/audit.js +12 -16
  30. package/dist/bake-runner/main.js +3 -2
  31. package/dist/boot/deferred-sandbox-path-env.js +1 -1
  32. package/dist/boot/execution-env.js +9 -7
  33. package/dist/boot/execution-lane.js +11 -0
  34. package/dist/boot/leader.js +2 -0
  35. package/dist/boot/memory-boundary.js +2 -2
  36. package/dist/boot/memory-consolidation.d.ts +5 -4
  37. package/dist/boot/memory-consolidation.js +7 -6
  38. package/dist/boot/org-delivery.d.ts +28 -0
  39. package/dist/boot/org-delivery.js +20 -0
  40. package/dist/boot/reapers.d.ts +3 -0
  41. package/dist/boot/reapers.js +21 -1
  42. package/dist/boot/resolve-spec.d.ts +3 -0
  43. package/dist/boot/resolve-spec.js +60 -81
  44. package/dist/boot/runner-deps.js +1 -0
  45. package/dist/boot/session-faces.d.ts +1 -0
  46. package/dist/boot/session-faces.js +4 -2
  47. package/dist/boot/stage-02-web-admin-pull.js +4 -1
  48. package/dist/boot/stage-06-runners.d.ts +2 -0
  49. package/dist/boot/stage-06-runners.js +6 -3
  50. package/dist/boot/stage-07-capability-layer.d.ts +2 -0
  51. package/dist/boot/stage-07-capability-layer.js +24 -3
  52. package/dist/boot/stage-08-reapers.d.ts +2 -0
  53. package/dist/boot/stage-08-reapers.js +2 -2
  54. package/dist/boot/stage-09-leader.d.ts +3 -0
  55. package/dist/boot/stage-10-http-server.d.ts +3 -0
  56. package/dist/boot/stage-10-http-server.js +5 -6
  57. package/dist/boot/stores.js +2 -2
  58. package/dist/boot/web-admin.d.ts +4 -0
  59. package/dist/boot/web-admin.js +151 -63
  60. package/dist/boot/workflow-orchestration.d.ts +2 -0
  61. package/dist/boot/workflow-orchestration.js +2 -1
  62. package/dist/brain.js +8 -3
  63. package/dist/breaker-key.d.ts +6 -0
  64. package/dist/breaker-key.js +29 -0
  65. package/dist/caller-text-echo.d.ts +9 -6
  66. package/dist/caller-text-echo.js +8 -11
  67. package/dist/capabilities/center-plugins.d.ts +7 -0
  68. package/dist/capabilities/center-plugins.js +1 -1
  69. package/dist/capabilities/composite-members.d.ts +1 -1
  70. package/dist/capabilities/composite-members.js +1 -1
  71. package/dist/capabilities/execution-lane.js +2 -2
  72. package/dist/capabilities/hands-lane.d.ts +21 -0
  73. package/dist/capabilities/hands-lane.js +10 -0
  74. package/dist/capabilities/mcp-probe.d.ts +36 -4
  75. package/dist/capabilities/mcp-probe.js +27 -4
  76. package/dist/capabilities/scenarios.d.ts +63 -7
  77. package/dist/capabilities/scenarios.js +39 -7
  78. package/dist/capability-facts.d.ts +34 -4
  79. package/dist/capability-facts.js +28 -2
  80. package/dist/center-config-tier.d.ts +69 -0
  81. package/dist/center-config-tier.js +42 -0
  82. package/dist/checkpoint-identity.d.ts +16 -0
  83. package/dist/checkpoint-identity.js +19 -0
  84. package/dist/config-catalog.d.ts +17 -10
  85. package/dist/config-catalog.js +43 -28
  86. package/dist/config-d-migration.d.ts +3 -1
  87. package/dist/config-d-migration.js +2 -2
  88. package/dist/config-dir-trust.d.ts +114 -0
  89. package/dist/config-dir-trust.js +388 -0
  90. package/dist/config-invariants.d.ts +18 -5
  91. package/dist/config-invariants.js +35 -3
  92. package/dist/config-provider.d.ts +6 -1
  93. package/dist/config-provider.js +6 -2
  94. package/dist/config-types.d.ts +71 -14
  95. package/dist/config-types.js +8 -0
  96. package/dist/config.d.ts +13 -0
  97. package/dist/config.js +121 -59
  98. package/dist/delegated-session-owner.d.ts +185 -0
  99. package/dist/delegated-session-owner.js +119 -0
  100. package/dist/device-protocol.d.ts +5 -3
  101. package/dist/device-protocol.js +1 -1
  102. package/dist/device-ws-hub.js +21 -2
  103. package/dist/device-ws-protocol.d.ts +70 -6
  104. package/dist/device-ws-protocol.js +50 -23
  105. package/dist/elicitation.js +3 -2
  106. package/dist/entry-problems.d.ts +34 -0
  107. package/dist/entry-problems.js +14 -0
  108. package/dist/execution-lane-caps.d.ts +49 -10
  109. package/dist/execution-lane-caps.js +43 -4
  110. package/dist/field-conflict.d.ts +43 -0
  111. package/dist/field-conflict.js +20 -0
  112. package/dist/fleet/fleet-bus.d.ts +80 -6
  113. package/dist/fleet/fleet-bus.js +41 -9
  114. package/dist/hooks/classic-stations.d.ts +10 -5
  115. package/dist/hooks/classic-stations.js +4 -4
  116. package/dist/hooks/command-spawn.d.ts +57 -0
  117. package/dist/hooks/command-spawn.js +139 -0
  118. package/dist/hooks/hook-llm.js +2 -2
  119. package/dist/hooks/hook-runner.d.ts +127 -25
  120. package/dist/hooks/hook-runner.js +668 -287
  121. package/dist/hooks/hook-source.d.ts +44 -0
  122. package/dist/hooks/hook-source.js +40 -0
  123. package/dist/http/active-run-conflict.d.ts +5 -13
  124. package/dist/http/active-run-conflict.js +17 -27
  125. package/dist/http/admission.js +103 -60
  126. package/dist/http/approval-sweeps.js +55 -18
  127. package/dist/http/caller-trust.d.ts +77 -0
  128. package/dist/http/caller-trust.js +143 -0
  129. package/dist/http/checkpoint-ctx.d.ts +16 -16
  130. package/dist/http/checkpoint-ctx.js +13 -10
  131. package/dist/http/claimed-run.d.ts +4 -3
  132. package/dist/http/device-placement.d.ts +2 -4
  133. package/dist/http/device-placement.js +2 -1
  134. package/dist/http/dispatch.js +10 -4
  135. package/dist/http/durable-run-leg.d.ts +4 -32
  136. package/dist/http/durable-run-leg.js +34 -10
  137. package/dist/http/owner-access.d.ts +56 -0
  138. package/dist/http/owner-access.js +42 -0
  139. package/dist/http/principal-gate.d.ts +48 -23
  140. package/dist/http/principal-gate.js +39 -12
  141. package/dist/http/readiness.d.ts +11 -5
  142. package/dist/http/readiness.js +10 -3
  143. package/dist/http/request-guards.d.ts +16 -23
  144. package/dist/http/request-guards.js +30 -15
  145. package/dist/http/resume-ctx-read.d.ts +2 -5
  146. package/dist/http/resume-ctx-read.js +7 -4
  147. package/dist/http/resume-legs.d.ts +3 -4
  148. package/dist/http/resume-legs.js +126 -69
  149. package/dist/http/retired-service-deps.d.ts +43 -0
  150. package/dist/http/retired-service-deps.js +18 -0
  151. package/dist/http/route-ctx.d.ts +44 -28
  152. package/dist/http/route-ctx.js +4 -0
  153. package/dist/http/route-table.js +2 -0
  154. package/dist/http/routes/a2a-serve.js +3 -4
  155. package/dist/http/routes/admin-config-refresh.js +1 -1
  156. package/dist/http/routes/admin-drain.js +1 -1
  157. package/dist/http/routes/admin-memory-optout.js +5 -1
  158. package/dist/http/routes/adoption.js +2 -9
  159. package/dist/http/routes/approvals-assistant.js +49 -48
  160. package/dist/http/routes/background.js +3 -2
  161. package/dist/http/routes/capabilities.js +20 -4
  162. package/dist/http/routes/config-catalog.d.ts +3 -3
  163. package/dist/http/routes/config-catalog.js +1 -1
  164. package/dist/http/routes/devices.js +3 -17
  165. package/dist/http/routes/diagnostics.js +5 -1
  166. package/dist/http/routes/images.js +6 -7
  167. package/dist/http/routes/leader.js +1 -8
  168. package/dist/http/routes/mcp-reconnect.d.ts +1 -1
  169. package/dist/http/routes/mcp-reconnect.js +3 -2
  170. package/dist/http/routes/memory-bundle.js +1 -1
  171. package/dist/http/routes/memory-compliance.js +1 -1
  172. package/dist/http/routes/memory-consolidation.js +1 -1
  173. package/dist/http/routes/memory-origin.js +1 -1
  174. package/dist/http/routes/memory-policy.d.ts +1 -1
  175. package/dist/http/routes/memory-policy.js +3 -2
  176. package/dist/http/routes/notify-wake.js +8 -21
  177. package/dist/http/routes/observability.js +2 -2
  178. package/dist/http/routes/principal-inbox.d.ts +39 -0
  179. package/dist/http/routes/principal-inbox.js +76 -0
  180. package/dist/http/routes/retention-ops.js +2 -9
  181. package/dist/http/routes/rules.js +5 -18
  182. package/dist/http/routes/runs.d.ts +5 -0
  183. package/dist/http/routes/runs.js +33 -106
  184. package/dist/http/routes/session-sync.js +15 -28
  185. package/dist/http/routes/sessions.js +30 -40
  186. package/dist/http/routes/side-query.js +6 -4
  187. package/dist/http/routes/tasks.js +50 -14
  188. package/dist/http/routes/workflows.d.ts +351 -0
  189. package/dist/http/routes/workflows.js +153 -119
  190. package/dist/http/send.d.ts +24 -3
  191. package/dist/http/send.js +14 -2
  192. package/dist/http/server.d.ts +17 -18
  193. package/dist/http/server.js +15 -13
  194. package/dist/http/stored-body-replay.js +17 -4
  195. package/dist/http/submit-ctx.js +4 -3
  196. package/dist/http/submit-replay.d.ts +4 -3
  197. package/dist/http/submit-replay.js +5 -4
  198. package/dist/http/wire-types.d.ts +10 -7
  199. package/dist/index.d.ts +1 -1
  200. package/dist/index.js +0 -1
  201. package/dist/lane-home-probe.d.ts +78 -9
  202. package/dist/lane-home-probe.js +78 -12
  203. package/dist/leader/endpoint.d.ts +4 -1
  204. package/dist/leader/endpoint.js +11 -10
  205. package/dist/limit-refusal.d.ts +17 -5
  206. package/dist/limit-refusal.js +4 -1
  207. package/dist/mcp-assertion-header.d.ts +31 -10
  208. package/dist/mcp-assertion-header.js +10 -3
  209. package/dist/mcp-tool-faces.js +1 -3
  210. package/dist/memory-project-layer.d.ts +37 -0
  211. package/dist/memory-project-layer.js +46 -0
  212. package/dist/memory-scope.d.ts +23 -16
  213. package/dist/memory-scope.js +24 -8
  214. package/dist/memory-sync-client.d.ts +27 -13
  215. package/dist/memory-sync-client.js +107 -18
  216. package/dist/model-entry-refusal.d.ts +9 -1
  217. package/dist/model-entry-refusal.js +6 -1
  218. package/dist/model-plane-face.d.ts +51 -0
  219. package/dist/model-plane-face.js +24 -0
  220. package/dist/model-provider.d.ts +5 -0
  221. package/dist/model-provider.js +4 -2
  222. package/dist/model-route-endpoint.d.ts +8 -11
  223. package/dist/model-route-endpoint.js +4 -7
  224. package/dist/model-route-env.d.ts +22 -0
  225. package/dist/model-route-env.js +2 -0
  226. package/dist/model-route-gap.d.ts +60 -30
  227. package/dist/model-route-gap.js +21 -15
  228. package/dist/observability/corrupt-read-seat.d.ts +7 -0
  229. package/dist/observability/corrupt-read-seat.js +9 -0
  230. package/dist/observability/err-text.d.ts +6 -0
  231. package/dist/observability/err-text.js +18 -4
  232. package/dist/observability/fail-open.d.ts +35 -9
  233. package/dist/observability/fail-open.js +35 -9
  234. package/dist/observability/metrics.js +1 -0
  235. package/dist/observability/prompt-manifest.d.ts +3 -17
  236. package/dist/observability/prompt-manifest.js +45 -42
  237. package/dist/observability/tool-trace.js +9 -9
  238. package/dist/operator-ask.d.ts +10 -0
  239. package/dist/operator-ask.js +3 -0
  240. package/dist/orchestration/workflow-agent-session-index.d.ts +12 -12
  241. package/dist/orchestration/workflow-agent-session-index.js +9 -13
  242. package/dist/orchestration/workflow-completion-inbox.d.ts +42 -15
  243. package/dist/orchestration/workflow-completion-inbox.js +13 -0
  244. package/dist/orchestration/workflow-notify-journal.d.ts +13 -32
  245. package/dist/orchestration/workflow-notify-journal.js +27 -34
  246. package/dist/orchestration/workflow-park-decision.d.ts +89 -0
  247. package/dist/orchestration/workflow-park-decision.js +118 -0
  248. package/dist/org-delivery-gate.d.ts +81 -0
  249. package/dist/org-delivery-gate.js +59 -0
  250. package/dist/panel-tool-names.d.ts +23 -0
  251. package/dist/panel-tool-names.js +8 -0
  252. package/dist/parked-decide.d.ts +39 -6
  253. package/dist/parked-decide.js +98 -51
  254. package/dist/parked-revive-surface.d.ts +9 -2
  255. package/dist/parked-revive-surface.js +11 -8
  256. package/dist/permission-rule-list.d.ts +1 -1
  257. package/dist/permission-rule-list.js +2 -2
  258. package/dist/plugins/approval-ask-store-file.d.ts +16 -1
  259. package/dist/plugins/approval-ask-store-file.js +21 -0
  260. package/dist/plugins/approval-ask-store-memory.d.ts +18 -1
  261. package/dist/plugins/approval-ask-store-memory.js +34 -2
  262. package/dist/plugins/approval-ask-store-sql.d.ts +25 -0
  263. package/dist/plugins/approval-ask-store-sql.js +37 -1
  264. package/dist/plugins/blob-backend.d.ts +38 -25
  265. package/dist/plugins/blob-backend.js +29 -19
  266. package/dist/plugins/breaker-state-sql.d.ts +2 -2
  267. package/dist/plugins/breaker-state-sql.js +4 -4
  268. package/dist/plugins/caching-session-store.d.ts +3 -0
  269. package/dist/plugins/caching-session-store.js +3 -0
  270. package/dist/plugins/checkpoint-store-sql.d.ts +14 -0
  271. package/dist/plugins/checkpoint-store-sql.js +20 -2
  272. package/dist/plugins/file-history-store-sql.d.ts +5 -2
  273. package/dist/plugins/file-history-store-sql.js +3 -1
  274. package/dist/plugins/file-run-store.d.ts +5 -13
  275. package/dist/plugins/file-run-store.js +9 -0
  276. package/dist/plugins/fork-routing-session-store.d.ts +9 -1
  277. package/dist/plugins/fork-routing-session-store.js +12 -1
  278. package/dist/plugins/host-platform.d.ts +2 -0
  279. package/dist/plugins/host-platform.js +2 -1
  280. package/dist/plugins/local-checkpoint-store.d.ts +2 -0
  281. package/dist/plugins/local-checkpoint-store.js +6 -1
  282. package/dist/plugins/local-session-store.d.ts +1 -1
  283. package/dist/plugins/local-session-window.d.ts +39 -0
  284. package/dist/plugins/local-session-window.js +54 -0
  285. package/dist/plugins/mailbox-recipient-lifecycle.d.ts +3 -2
  286. package/dist/plugins/mailbox-store-sql.d.ts +30 -48
  287. package/dist/plugins/mailbox-store-sql.js +77 -52
  288. package/dist/plugins/memory-embedder-fingerprint.js +2 -1
  289. package/dist/plugins/memory-run-store.d.ts +5 -13
  290. package/dist/plugins/memory-run-store.js +8 -0
  291. package/dist/plugins/one-time-migrations.d.ts +110 -5
  292. package/dist/plugins/one-time-migrations.js +320 -8
  293. package/dist/plugins/org-delivery-quota-store.d.ts +123 -0
  294. package/dist/plugins/org-delivery-quota-store.js +228 -0
  295. package/dist/plugins/pg-pool.js +39 -7
  296. package/dist/plugins/pg-session-storage.d.ts +17 -4
  297. package/dist/plugins/pg-session-storage.js +29 -6
  298. package/dist/plugins/remote-env-adb.d.ts +6 -12
  299. package/dist/plugins/remote-env-adb.js +12 -2
  300. package/dist/plugins/remote-env-k8s.d.ts +8 -12
  301. package/dist/plugins/remote-env-k8s.js +23 -5
  302. package/dist/plugins/remote-env-local-docker.d.ts +10 -15
  303. package/dist/plugins/remote-env-local-docker.js +12 -9
  304. package/dist/plugins/remote-env-ssh.d.ts +10 -16
  305. package/dist/plugins/remote-env-ssh.js +17 -11
  306. package/dist/plugins/run-store-sql.d.ts +16 -14
  307. package/dist/plugins/run-store-sql.js +22 -2
  308. package/dist/plugins/schema-indexes.js +2 -0
  309. package/dist/plugins/send-user-file.js +2 -2
  310. package/dist/plugins/session-epoch-anchor.d.ts +32 -6
  311. package/dist/plugins/session-epoch-anchor.js +2 -3
  312. package/dist/plugins/session-store.d.ts +18 -8
  313. package/dist/plugins/session-store.js +15 -4
  314. package/dist/plugins/sql-driver.d.ts +74 -11
  315. package/dist/plugins/sql-driver.js +210 -12
  316. package/dist/plugins/sql-errors.d.ts +23 -0
  317. package/dist/plugins/sql-errors.js +21 -0
  318. package/dist/plugins/store-backend.d.ts +36 -1
  319. package/dist/plugins/store-backend.js +40 -14
  320. package/dist/plugins/store-contracts.d.ts +42 -0
  321. package/dist/plugins/store-contracts.js +1 -0
  322. package/dist/plugins/tidb-pool.d.ts +6 -1
  323. package/dist/plugins/tidb-pool.js +44 -10
  324. package/dist/plugins/tidb-session-storage.d.ts +3 -2
  325. package/dist/plugins/tidb-session-storage.js +2 -2
  326. package/dist/plugins/tidb-session-store.d.ts +24 -4
  327. package/dist/plugins/tidb-session-store.js +28 -4
  328. package/dist/plugins/workflow-journal-store-sql.d.ts +73 -19
  329. package/dist/plugins/workflow-journal-store-sql.js +19 -6
  330. package/dist/plugins/workflow-run-store-sql.d.ts +30 -8
  331. package/dist/plugins/workflow-run-store-sql.js +50 -9
  332. package/dist/posture-source.d.ts +18 -10
  333. package/dist/posture-source.js +4 -1
  334. package/dist/project-identity.d.ts +45 -6
  335. package/dist/project-identity.js +162 -8
  336. package/dist/project-layer-key.d.ts +28 -0
  337. package/dist/project-layer-key.js +29 -0
  338. package/dist/question.js +3 -2
  339. package/dist/read-deny-entry.d.ts +25 -0
  340. package/dist/read-deny-entry.js +12 -0
  341. package/dist/read-face-posture.d.ts +37 -11
  342. package/dist/read-face-posture.js +32 -3
  343. package/dist/request-key-closure.d.ts +7 -0
  344. package/dist/request-key-closure.js +9 -1
  345. package/dist/request-value-closure.d.ts +5 -0
  346. package/dist/request-value-closure.js +11 -3
  347. package/dist/rule-entry-list.d.ts +26 -2
  348. package/dist/rule-entry-list.js +72 -12
  349. package/dist/rules-consent.js +3 -4
  350. package/dist/run-acceptance.d.ts +19 -3
  351. package/dist/run-acceptance.js +13 -1
  352. package/dist/run-local.js +36 -6
  353. package/dist/runs.d.ts +10 -9
  354. package/dist/runs.js +21 -3
  355. package/dist/runtime-caps-resolver.d.ts +16 -6
  356. package/dist/runtime-caps-resolver.js +18 -5
  357. package/dist/sandbox-pkg-source.d.ts +19 -1
  358. package/dist/sandbox-pkg-source.js +29 -7
  359. package/dist/security.d.ts +87 -9
  360. package/dist/security.js +52 -9
  361. package/dist/session-error-wire.d.ts +19 -2
  362. package/dist/session-error-wire.js +5 -1
  363. package/dist/session-titled-frame.d.ts +33 -0
  364. package/dist/session-titled-frame.js +4 -0
  365. package/dist/session-titler.d.ts +9 -1
  366. package/dist/session-titler.js +15 -4
  367. package/dist/spec-fields.js +21 -2
  368. package/dist/sql-engine-posture.d.ts +3 -1
  369. package/dist/task-cwd.d.ts +1 -1
  370. package/dist/task-mcp.d.ts +3 -3
  371. package/dist/task-mcp.js +7 -66
  372. package/dist/task-settings.d.ts +89 -88
  373. package/dist/task-settings.js +71 -63
  374. package/dist/text-bidi.d.ts +0 -4
  375. package/dist/text-bidi.js +1 -3
  376. package/dist/tighten-only-seats.d.ts +150 -0
  377. package/dist/tighten-only-seats.js +196 -0
  378. package/dist/tool-approval.d.ts +303 -87
  379. package/dist/tool-approval.js +623 -239
  380. package/dist/trace/core-keyset-guard.d.ts +104 -22
  381. package/dist/trace/exit-seat.d.ts +28 -0
  382. package/dist/trace/exit-seat.js +76 -0
  383. package/dist/trace/ledger-events.d.ts +3 -2
  384. package/dist/trace/project.d.ts +80 -12
  385. package/dist/trace/project.js +41 -28
  386. package/dist/trace/projection-table.d.ts +100 -0
  387. package/dist/trace/projection-table.js +130 -0
  388. package/dist/trace/redact.d.ts +54 -0
  389. package/dist/trace/redact.js +778 -152
  390. package/dist/trace/self-minted-wire.d.ts +345 -1
  391. package/dist/trace/self-minted-wire.js +117 -1
  392. package/dist/trace/wire-projection-faces.d.ts +298 -2
  393. package/dist/trace/wire-projection-faces.js +154 -13
  394. package/dist/url-refusal.js +2 -0
  395. package/dist/web-admin-client/apply-effective.d.ts +12 -0
  396. package/dist/web-admin-client/apply-effective.js +56 -5
  397. package/dist/web-admin-client/facade.d.ts +1 -1
  398. package/dist/web-admin-client/facade.js +1 -1
  399. package/dist/web-admin-client/read-face.js +5 -9
  400. package/dist/web-admin-client/skills-mcp.js +4 -5
  401. package/docs/DEVICE-EXECUTOR-PROTOCOL.md +57 -9
  402. package/package.json +7 -3
@@ -10,6 +10,11 @@
10
10
  * 没有任何机器能替人决定一个键该不该上 wire,所以这一栏必须是人写的。它的正确性由门反向钉住
11
11
  * (登记的词必须仍是 core 的键;core 退役一个键而这里留着残条目 ⇒ 红)。
12
12
  * · `minted` —— 本仓**自铸**、core 没有的 wire 键。同样是处置,同样被反向钉住(铸键不许与 core 键重名)。
13
+ * · `keys` —— 只有一类面才有:投影器**就是这份声明的解释器**的面(今天 = 清单行 `promptManifestRecordOf` 的各层)。声明是键集本身
14
+ * (键 → 值形 + 是否可选 + 嵌套层的面名),不是对 core 键集的第二份抄本:解释器按它读,所以它与 core 型的分岔会在键等式门(与 `keys`
15
+ * 对 core `.d.ts` 的对账格)和 `core-keyset-guard.ts` ⑦b 的编译期钉上红。要它的理由是**机器清单**:`scripts/wire-changes-server.mjs`
16
+ * 只读本文件的纯数据,看不见 `coreType` 在安装态 core 里展开成哪些键 —— 声明在表里,生成器对同一张表、同一只比较器就能逐键比
17
+ * (删 / 改形 ⇒ breaking,新增 ⇒ additive)。
13
18
  *
14
19
  * ## 为什么在 `src/` 而不在 `test/`
15
20
  * 与 `core-keyset-guard.ts` 同一条理由:它的**执行点之一是 `tsc --noEmit`** —— 那个文件的 ① 面把
@@ -17,7 +22,8 @@
17
22
  * 旧形是两个:守卫文件一簿、`test/wire-whitelist-exhaustiveness.test.ts` 的 `KnownExcluded` 一簿,那份门注
18
23
  * 自己写着「两处必须同时改」—— 而「必须同时改」正是 [ref] 要下线的东西(对账门不算替代,单写者才算)。
19
24
  * 本表是纯数据、无行为(唯一的派生是 `wiring_manifest_operator` 行的两只取值器:`excluded` = 租户行减具名常量,S-724;`minted` = 租户行,S-961),
20
- * 被守卫文件以 `typeof import(...)` 的**类型查询**读取(编译期擦除,零运行期边)。
25
+ * 被守卫文件以 `typeof import(...)` 的**类型查询**读取(编译期擦除,零运行期边);唯一的运行期读者是清单行的解释器
26
+ * (`observability/prompt-manifest.ts`,读 `keys` 声明)与机器清单生成器(转译本文件、求值、只读数据)—— 两者都不改表。
21
27
  *
22
28
  * ## 门在哪里
23
29
  * `test/wire-whitelist-exhaustiveness.test.ts`:对每一行喂一枚 core 型全键 fixture,真的跑一遍构造器,
@@ -44,7 +50,47 @@ export interface WireProjectionFace {
44
50
  * **没有**的嵌套成员」,而全键 fixture 是照 core 型生成的,结构上永远触发不了它。
45
51
  */
46
52
  readonly mintedConditional?: readonly string[];
53
+ /**
54
+ * 本面的键集**声明**(键 → 值形 + 是否可选)。只有投影器是这份声明的解释器的面才登记,今天 = `promptManifestRecordOf` 登记的清单行各层
55
+ * (一层一行,层与层靠 {@link ManifestShape} 的 `object.face` 引用)。声明与该行的 `coreType` 在键名与可选性上必须一致(对账格:
56
+ * `test/wire-whitelist-exhaustiveness.test.ts`;编译期:`core-keyset-guard.ts` ⑦b)。值形(text / count / flag …)错了,真帧上读不出,
57
+ * 键等式门按漏投报红。其余面(键集由 `coreType` 在安装态 core 里展开)不登记本栏。
58
+ */
59
+ readonly keys?: Readonly<Record<string, DeclaredKey>>;
47
60
  }
61
+ /**
62
+ * 清单行一个键的值形(纯数据;解释器对这个闭集做穷尽 `switch`,不认得的词是编译红)。**词表的属主是引擎**:`text` 是开集串 —— 本仓不判词、
63
+ * 新词原样过境;`true` 是唯一的闭一词(在场即真,从不铸 `false`)。
64
+ * · `object` —— 一句话:嵌套对象,键声明在名为 `face` 的那一行里;每一格都读得出才算读得出(半句话不上行);
65
+ * · `list` —— 列表,每个元素都读得出才算读得出;
66
+ * · `rows` —— 一行一判的列表:读不出的那一行丢并计一次,空列表是一句正面陈述原样上行,「本来有行、一行都读不出」才缺席;
67
+ * · `entries` —— 以名为键的表,每个条目的值都读得出才算读得出。
68
+ */
69
+ export type ManifestShape = {
70
+ readonly is: "text";
71
+ } | {
72
+ readonly is: "count";
73
+ } | {
74
+ readonly is: "flag";
75
+ } | {
76
+ readonly is: "true";
77
+ } | {
78
+ readonly is: "object";
79
+ readonly face: string;
80
+ } | {
81
+ readonly is: "list";
82
+ readonly of: ManifestShape;
83
+ } | {
84
+ readonly is: "rows";
85
+ readonly of: ManifestShape;
86
+ } | {
87
+ readonly is: "entries";
88
+ readonly of: ManifestShape;
89
+ };
90
+ /** 一个键的声明:值形 + 是否可选(`optional: true` = 缺席是合法的一句话;不写 = 必选,缺席即这一层读不出)。 */
91
+ export type DeclaredKey = ManifestShape & {
92
+ readonly optional?: true;
93
+ };
48
94
  /**
49
95
  * `TaskEvent` **信封**上的键 —— 这一族构造器一个都不管,所以在每一只 TaskEvent 面上统一扣除。
50
96
  * · `type`:臂名由调用点自己拼在投影体外(`{ type: "tool_end", ...toolEndEventData(ev) }`),不是载荷键;
@@ -180,7 +226,7 @@ export declare const WIRE_PROJECTION_FACES: {
180
226
  readonly wiring_manifest_tenant: {
181
227
  readonly projector: "wiringManifestEventData";
182
228
  readonly coreType: `WiringManifest & ${string}`;
183
- readonly excluded: readonly ["governance", "configFingerprint", "autoConsolidation", "readDeny", "peerPresence", "permissionMode"];
229
+ readonly excluded: readonly ["governance", "configFingerprint", "autoConsolidation", "readDeny", "peerPresence"];
184
230
  readonly unwrapped: readonly ["manifest"];
185
231
  readonly minted: readonly ["instructions"];
186
232
  };
@@ -227,72 +273,322 @@ export declare const WIRE_PROJECTION_FACES: {
227
273
  readonly coreType: "Extract<TraceEvent, { kind: \"prompt.assembled\" }>";
228
274
  readonly excluded: readonly ["kind", "version", "taskId", "snapshot", "lowering", "ts"];
229
275
  readonly minted: readonly [];
276
+ readonly keys: {
277
+ readonly identity: {
278
+ readonly is: "object";
279
+ readonly face: "prompt_manifest_identity";
280
+ readonly optional: true;
281
+ };
282
+ readonly selectors: {
283
+ readonly is: "object";
284
+ readonly face: "prompt_manifest_selectors";
285
+ readonly optional: true;
286
+ };
287
+ readonly blocks: {
288
+ readonly is: "rows";
289
+ readonly of: {
290
+ readonly is: "object";
291
+ readonly face: "prompt_manifest_block";
292
+ };
293
+ readonly optional: true;
294
+ };
295
+ readonly sections: {
296
+ readonly is: "rows";
297
+ readonly of: {
298
+ readonly is: "object";
299
+ readonly face: "prompt_manifest_section";
300
+ };
301
+ readonly optional: true;
302
+ };
303
+ readonly superseded: {
304
+ readonly is: "rows";
305
+ readonly of: {
306
+ readonly is: "object";
307
+ readonly face: "prompt_manifest_superseded";
308
+ };
309
+ readonly optional: true;
310
+ };
311
+ readonly tools: {
312
+ readonly is: "rows";
313
+ readonly of: {
314
+ readonly is: "object";
315
+ readonly face: "prompt_manifest_tool";
316
+ };
317
+ readonly optional: true;
318
+ };
319
+ readonly toolDisclosure: {
320
+ readonly is: "object";
321
+ readonly face: "prompt_manifest_tool_disclosure";
322
+ readonly optional: true;
323
+ };
324
+ readonly totalChars: {
325
+ readonly is: "count";
326
+ readonly optional: true;
327
+ };
328
+ };
230
329
  };
231
330
  readonly prompt_manifest_identity: {
232
331
  readonly projector: "promptManifestRecordOf";
233
332
  readonly coreType: "PromptManifestIdentity";
234
333
  readonly excluded: readonly [];
235
334
  readonly minted: readonly [];
335
+ readonly keys: {
336
+ readonly artifact: {
337
+ readonly is: "text";
338
+ };
339
+ readonly layers: {
340
+ readonly is: "object";
341
+ readonly face: "prompt_manifest_identity_layers";
342
+ };
343
+ readonly epoch: {
344
+ readonly is: "count";
345
+ };
346
+ readonly activatedBy: {
347
+ readonly is: "text";
348
+ };
349
+ };
236
350
  };
237
351
  readonly prompt_manifest_identity_layers: {
238
352
  readonly projector: "promptManifestRecordOf";
239
353
  readonly coreType: "PromptIdentityLayers";
240
354
  readonly excluded: readonly [];
241
355
  readonly minted: readonly [];
356
+ readonly keys: {
357
+ readonly catalog: {
358
+ readonly is: "text";
359
+ };
360
+ readonly renderers: {
361
+ readonly is: "entries";
362
+ readonly of: {
363
+ readonly is: "count";
364
+ };
365
+ };
366
+ readonly center: {
367
+ readonly is: "text";
368
+ readonly optional: true;
369
+ };
370
+ readonly deploy: {
371
+ readonly is: "text";
372
+ readonly optional: true;
373
+ };
374
+ readonly task: {
375
+ readonly is: "text";
376
+ readonly optional: true;
377
+ };
378
+ readonly binding: {
379
+ readonly is: "text";
380
+ };
381
+ };
242
382
  };
243
383
  readonly prompt_manifest_selectors: {
244
384
  readonly projector: "promptManifestRecordOf";
245
385
  readonly coreType: "PromptManifestSelectors";
246
386
  readonly excluded: readonly [];
247
387
  readonly minted: readonly [];
388
+ readonly keys: {
389
+ readonly binding: {
390
+ readonly is: "text";
391
+ readonly optional: true;
392
+ };
393
+ readonly traits: {
394
+ readonly is: "list";
395
+ readonly of: {
396
+ readonly is: "text";
397
+ };
398
+ };
399
+ readonly host: {
400
+ readonly is: "object";
401
+ readonly face: "prompt_manifest_selectors_host";
402
+ };
403
+ readonly facts: {
404
+ readonly is: "entries";
405
+ readonly of: {
406
+ readonly is: "flag";
407
+ };
408
+ };
409
+ };
248
410
  };
249
411
  readonly prompt_manifest_selectors_host: {
250
412
  readonly projector: "promptManifestRecordOf";
251
413
  readonly coreType: "PromptManifestSelectors[\"host\"]";
252
414
  readonly excluded: readonly [];
253
415
  readonly minted: readonly [];
416
+ readonly keys: {
417
+ readonly role: {
418
+ readonly is: "text";
419
+ };
420
+ readonly form: {
421
+ readonly is: "text";
422
+ };
423
+ };
254
424
  };
255
425
  readonly prompt_manifest_block: {
256
426
  readonly projector: "promptManifestRecordOf";
257
427
  readonly coreType: "Extract<TraceEvent, { kind: \"prompt.assembled\" }>[\"blocks\"][number]";
258
428
  readonly excluded: readonly [];
259
429
  readonly minted: readonly [];
430
+ readonly keys: {
431
+ readonly id: {
432
+ readonly is: "text";
433
+ };
434
+ readonly chars: {
435
+ readonly is: "count";
436
+ };
437
+ readonly hash: {
438
+ readonly is: "text";
439
+ };
440
+ };
260
441
  };
261
442
  readonly prompt_manifest_section: {
262
443
  readonly projector: "promptManifestRecordOf";
263
444
  readonly coreType: "PromptManifestSection";
264
445
  readonly excluded: readonly [];
265
446
  readonly minted: readonly [];
447
+ readonly keys: {
448
+ readonly id: {
449
+ readonly is: "text";
450
+ };
451
+ readonly band: {
452
+ readonly is: "text";
453
+ };
454
+ readonly rank: {
455
+ readonly is: "count";
456
+ };
457
+ readonly variant: {
458
+ readonly is: "text";
459
+ readonly optional: true;
460
+ };
461
+ readonly renderer: {
462
+ readonly is: "object";
463
+ readonly face: "prompt_manifest_section_renderer";
464
+ readonly optional: true;
465
+ };
466
+ readonly chars: {
467
+ readonly is: "count";
468
+ };
469
+ readonly locale: {
470
+ readonly is: "text";
471
+ };
472
+ readonly contentHash: {
473
+ readonly is: "text";
474
+ };
475
+ readonly chain: {
476
+ readonly is: "list";
477
+ readonly of: {
478
+ readonly is: "object";
479
+ readonly face: "prompt_manifest_chain_link";
480
+ };
481
+ };
482
+ };
266
483
  };
267
484
  readonly prompt_manifest_section_renderer: {
268
485
  readonly projector: "promptManifestRecordOf";
269
486
  readonly coreType: "NonNullable<PromptManifestSection[\"renderer\"]>";
270
487
  readonly excluded: readonly [];
271
488
  readonly minted: readonly [];
489
+ readonly keys: {
490
+ readonly id: {
491
+ readonly is: "text";
492
+ };
493
+ readonly version: {
494
+ readonly is: "count";
495
+ };
496
+ };
272
497
  };
273
498
  readonly prompt_manifest_chain_link: {
274
499
  readonly projector: "promptManifestRecordOf";
275
500
  readonly coreType: "PromptChainLink";
276
501
  readonly excluded: readonly [];
277
502
  readonly minted: readonly [];
503
+ readonly keys: {
504
+ readonly source: {
505
+ readonly is: "text";
506
+ };
507
+ readonly overlay: {
508
+ readonly is: "text";
509
+ readonly optional: true;
510
+ };
511
+ readonly op: {
512
+ readonly is: "text";
513
+ readonly optional: true;
514
+ };
515
+ readonly superseded: {
516
+ readonly is: "true";
517
+ readonly optional: true;
518
+ };
519
+ };
278
520
  };
279
521
  readonly prompt_manifest_superseded: {
280
522
  readonly projector: "promptManifestRecordOf";
281
523
  readonly coreType: "SupersededOverlay";
282
524
  readonly excluded: readonly [];
283
525
  readonly minted: readonly [];
526
+ readonly keys: {
527
+ readonly id: {
528
+ readonly is: "text";
529
+ };
530
+ readonly source: {
531
+ readonly is: "text";
532
+ };
533
+ readonly by: {
534
+ readonly is: "text";
535
+ };
536
+ readonly target: {
537
+ readonly is: "text";
538
+ };
539
+ readonly supersededBy: {
540
+ readonly is: "text";
541
+ };
542
+ };
284
543
  };
285
544
  readonly prompt_manifest_tool: {
286
545
  readonly projector: "promptManifestRecordOf";
287
546
  readonly coreType: "NonNullable<Extract<TraceEvent, { kind: \"prompt.assembled\" }>[\"tools\"]>[number]";
288
547
  readonly excluded: readonly [];
289
548
  readonly minted: readonly [];
549
+ readonly keys: {
550
+ readonly wireName: {
551
+ readonly is: "text";
552
+ };
553
+ readonly aliases: {
554
+ readonly is: "list";
555
+ readonly of: {
556
+ readonly is: "text";
557
+ };
558
+ };
559
+ readonly contractId: {
560
+ readonly is: "text";
561
+ };
562
+ readonly implementationRevision: {
563
+ readonly is: "text";
564
+ };
565
+ readonly cardId: {
566
+ readonly is: "text";
567
+ };
568
+ readonly shapeDigest: {
569
+ readonly is: "text";
570
+ };
571
+ readonly wireSchemaDigest: {
572
+ readonly is: "text";
573
+ };
574
+ };
290
575
  };
291
576
  readonly prompt_manifest_tool_disclosure: {
292
577
  readonly projector: "promptManifestRecordOf";
293
578
  readonly coreType: "ToolDisclosureManifest";
294
579
  readonly excluded: readonly [];
295
580
  readonly minted: readonly [];
581
+ readonly keys: {
582
+ readonly deferredTools: {
583
+ readonly is: "count";
584
+ };
585
+ readonly strategy: {
586
+ readonly is: "text";
587
+ };
588
+ readonly source: {
589
+ readonly is: "text";
590
+ };
591
+ };
296
592
  };
297
593
  };
298
594
  /** 面名。 */
@@ -51,7 +51,7 @@ export const WIRE_PROJECTION_FACES = {
51
51
  wiring_manifest_tenant: {
52
52
  projector: "wiringManifestEventData",
53
53
  coreType: `WiringManifest & ${arm("wiring_manifest")}`,
54
- excluded: ["governance", "configFingerprint", "autoConsolidation", "readDeny", "peerPresence", "permissionMode"],
54
+ excluded: ["governance", "configFingerprint", "autoConsolidation", "readDeny", "peerPresence"],
55
55
  unwrapped: ["manifest"],
56
56
  minted: ["instructions"],
57
57
  },
@@ -77,17 +77,158 @@ export const WIRE_PROJECTION_FACES = {
77
77
  },
78
78
  origin_clearance_origin: { projector: "buildClearanceRowWire", coreType: "MemoryEntryOrigin", excluded: [], minted: [] },
79
79
  origin_clearance_event: { projector: "buildClearanceRowWire", coreType: "OriginClearanceEvent", excluded: [], minted: [] },
80
- prompt_manifest: { projector: "promptManifestRecordOf", coreType: MANIFEST_FRAME, excluded: ["kind", "version", "taskId", "snapshot", "lowering", "ts"], minted: [] },
81
- prompt_manifest_identity: { projector: "promptManifestRecordOf", coreType: "PromptManifestIdentity", excluded: [], minted: [] },
82
- prompt_manifest_identity_layers: { projector: "promptManifestRecordOf", coreType: "PromptIdentityLayers", excluded: [], minted: [] },
83
- prompt_manifest_selectors: { projector: "promptManifestRecordOf", coreType: "PromptManifestSelectors", excluded: [], minted: [] },
84
- prompt_manifest_selectors_host: { projector: "promptManifestRecordOf", coreType: `PromptManifestSelectors["host"]`, excluded: [], minted: [] },
85
- prompt_manifest_block: { projector: "promptManifestRecordOf", coreType: `${MANIFEST_FRAME}["blocks"][number]`, excluded: [], minted: [] },
86
- prompt_manifest_section: { projector: "promptManifestRecordOf", coreType: "PromptManifestSection", excluded: [], minted: [] },
87
- prompt_manifest_section_renderer: { projector: "promptManifestRecordOf", coreType: `NonNullable<PromptManifestSection["renderer"]>`, excluded: [], minted: [] },
88
- prompt_manifest_chain_link: { projector: "promptManifestRecordOf", coreType: "PromptChainLink", excluded: [], minted: [] },
89
- prompt_manifest_superseded: { projector: "promptManifestRecordOf", coreType: "SupersededOverlay", excluded: [], minted: [] },
90
- prompt_manifest_tool: { projector: "promptManifestRecordOf", coreType: `NonNullable<${MANIFEST_FRAME}["tools"]>[number]`, excluded: [], minted: [] },
91
- prompt_manifest_tool_disclosure: { projector: "promptManifestRecordOf", coreType: "ToolDisclosureManifest", excluded: [], minted: [] },
80
+ prompt_manifest: {
81
+ projector: "promptManifestRecordOf",
82
+ coreType: MANIFEST_FRAME,
83
+ excluded: ["kind", "version", "taskId", "snapshot", "lowering", "ts"],
84
+ minted: [],
85
+ keys: {
86
+ identity: { is: "object", face: "prompt_manifest_identity", optional: true },
87
+ selectors: { is: "object", face: "prompt_manifest_selectors", optional: true },
88
+ blocks: { is: "rows", of: { is: "object", face: "prompt_manifest_block" }, optional: true },
89
+ sections: { is: "rows", of: { is: "object", face: "prompt_manifest_section" }, optional: true },
90
+ superseded: { is: "rows", of: { is: "object", face: "prompt_manifest_superseded" }, optional: true },
91
+ tools: { is: "rows", of: { is: "object", face: "prompt_manifest_tool" }, optional: true },
92
+ toolDisclosure: { is: "object", face: "prompt_manifest_tool_disclosure", optional: true },
93
+ totalChars: { is: "count", optional: true },
94
+ },
95
+ },
96
+ prompt_manifest_identity: {
97
+ projector: "promptManifestRecordOf",
98
+ coreType: "PromptManifestIdentity",
99
+ excluded: [],
100
+ minted: [],
101
+ keys: {
102
+ artifact: { is: "text" },
103
+ layers: { is: "object", face: "prompt_manifest_identity_layers" },
104
+ epoch: { is: "count" },
105
+ activatedBy: { is: "text" },
106
+ },
107
+ },
108
+ prompt_manifest_identity_layers: {
109
+ projector: "promptManifestRecordOf",
110
+ coreType: "PromptIdentityLayers",
111
+ excluded: [],
112
+ minted: [],
113
+ keys: {
114
+ catalog: { is: "text" },
115
+ renderers: { is: "entries", of: { is: "count" } },
116
+ center: { is: "text", optional: true },
117
+ deploy: { is: "text", optional: true },
118
+ task: { is: "text", optional: true },
119
+ binding: { is: "text" },
120
+ },
121
+ },
122
+ prompt_manifest_selectors: {
123
+ projector: "promptManifestRecordOf",
124
+ coreType: "PromptManifestSelectors",
125
+ excluded: [],
126
+ minted: [],
127
+ keys: {
128
+ binding: { is: "text", optional: true },
129
+ traits: { is: "list", of: { is: "text" } },
130
+ host: { is: "object", face: "prompt_manifest_selectors_host" },
131
+ facts: { is: "entries", of: { is: "flag" } },
132
+ },
133
+ },
134
+ prompt_manifest_selectors_host: {
135
+ projector: "promptManifestRecordOf",
136
+ coreType: `PromptManifestSelectors["host"]`,
137
+ excluded: [],
138
+ minted: [],
139
+ keys: {
140
+ role: { is: "text" },
141
+ form: { is: "text" },
142
+ },
143
+ },
144
+ prompt_manifest_block: {
145
+ projector: "promptManifestRecordOf",
146
+ coreType: `${MANIFEST_FRAME}["blocks"][number]`,
147
+ excluded: [],
148
+ minted: [],
149
+ keys: {
150
+ id: { is: "text" },
151
+ chars: { is: "count" },
152
+ hash: { is: "text" },
153
+ },
154
+ },
155
+ prompt_manifest_section: {
156
+ projector: "promptManifestRecordOf",
157
+ coreType: "PromptManifestSection",
158
+ excluded: [],
159
+ minted: [],
160
+ keys: {
161
+ id: { is: "text" },
162
+ band: { is: "text" },
163
+ rank: { is: "count" },
164
+ variant: { is: "text", optional: true },
165
+ renderer: { is: "object", face: "prompt_manifest_section_renderer", optional: true },
166
+ chars: { is: "count" },
167
+ locale: { is: "text" },
168
+ contentHash: { is: "text" },
169
+ chain: { is: "list", of: { is: "object", face: "prompt_manifest_chain_link" } },
170
+ },
171
+ },
172
+ prompt_manifest_section_renderer: {
173
+ projector: "promptManifestRecordOf",
174
+ coreType: `NonNullable<PromptManifestSection["renderer"]>`,
175
+ excluded: [],
176
+ minted: [],
177
+ keys: {
178
+ id: { is: "text" },
179
+ version: { is: "count" },
180
+ },
181
+ },
182
+ prompt_manifest_chain_link: {
183
+ projector: "promptManifestRecordOf",
184
+ coreType: "PromptChainLink",
185
+ excluded: [],
186
+ minted: [],
187
+ keys: {
188
+ source: { is: "text" },
189
+ overlay: { is: "text", optional: true },
190
+ op: { is: "text", optional: true },
191
+ superseded: { is: "true", optional: true },
192
+ },
193
+ },
194
+ prompt_manifest_superseded: {
195
+ projector: "promptManifestRecordOf",
196
+ coreType: "SupersededOverlay",
197
+ excluded: [],
198
+ minted: [],
199
+ keys: {
200
+ id: { is: "text" },
201
+ source: { is: "text" },
202
+ by: { is: "text" },
203
+ target: { is: "text" },
204
+ supersededBy: { is: "text" },
205
+ },
206
+ },
207
+ prompt_manifest_tool: {
208
+ projector: "promptManifestRecordOf",
209
+ coreType: `NonNullable<${MANIFEST_FRAME}["tools"]>[number]`,
210
+ excluded: [],
211
+ minted: [],
212
+ keys: {
213
+ wireName: { is: "text" },
214
+ aliases: { is: "list", of: { is: "text" } },
215
+ contractId: { is: "text" },
216
+ implementationRevision: { is: "text" },
217
+ cardId: { is: "text" },
218
+ shapeDigest: { is: "text" },
219
+ wireSchemaDigest: { is: "text" },
220
+ },
221
+ },
222
+ prompt_manifest_tool_disclosure: {
223
+ projector: "promptManifestRecordOf",
224
+ coreType: "ToolDisclosureManifest",
225
+ excluded: [],
226
+ minted: [],
227
+ keys: {
228
+ deferredTools: { is: "count" },
229
+ strategy: { is: "text" },
230
+ source: { is: "text" },
231
+ },
232
+ },
92
233
  };
93
234
  //# sourceMappingURL=wire-projection-faces.js.map
@@ -3,6 +3,8 @@ import { DISPLAY_SAFE_URL_TOKEN, buildDisplaySafeUrl } from "./trace/redact.js";
3
3
  export function buildRefusalShownUrl(raw) {
4
4
  if (!isHierarchicalUrl(raw))
5
5
  return DISPLAY_SAFE_URL_TOKEN;
6
+ if (raw.includes("\\"))
7
+ return DISPLAY_SAFE_URL_TOKEN;
6
8
  const u = new URL(raw);
7
9
  if (u.protocol !== "http:" && u.protocol !== "https:")
8
10
  return DISPLAY_SAFE_URL_TOKEN;
@@ -104,6 +104,18 @@ export declare const PLANE_REFUSAL_INVARIANT_OF: {
104
104
  readonly "config.model_route_endpoint_missing": "model-route-endpoint";
105
105
  readonly "config.gateway_fallback_without_primary": "model-route-endpoint";
106
106
  };
107
+ /**
108
+ * S-667 —— **「无中心配置」档的候选**:中心凭证换人时,server 把在用的中心配置降到这一档({@link applyEffective} 吃它,和吃任何候选走同一条 stage → swap → commit)。
109
+ * 它的意思是「**撤回**中心配置」—— 中心下发的每个热面回 env 底:
110
+ * · 限额键 / 审批名单 / autonomy / commandPolicy / projects:本来就**非粘**(域缺席 ⇒ 回 env 底),这份候选什么域都没有,于是自然回底,不另写降档代码;
111
+ * · 模型面组:中心发来的零启用条目空候选 = 本候选不管模型面、上一代继续(不是撤回),所以模型面需要这一个专门的词 —— 见 {@link stageEnvModelPlane};
112
+ * · MCP:带一张**空的已发布**服务器表(`mcp.servers: []`)—— 撤销台账只在域「已发布」时才动(域缺席 ≠ 撤销指令),空表 = 每一条 boot 烘焙的挂载都不再被发布 ⇒ 即时撤销
113
+ * (core 每次 MCP dispatch 前探 isRevoked);新身份重新发布同形条目才恢复。其余没有热面的域(技能 / A2A / 场景 …)不在 stage 里读,缺席。
114
+ * 判别在候选的**身份**上(本常量是进程里唯一的这一个对象,深冻结),不在调用点另传旗子:拿别的空候选来「降档」降不了模型面,而这一条是编译期看得见的。
115
+ */
116
+ export declare const NO_CENTER_EFFECTIVE: EffectiveConfig;
117
+ /** 这份候选是不是「无中心配置」档的那一个(对象身份)。 */
118
+ export declare const isNoCenterEffective: (eff: EffectiveConfig) => boolean;
107
119
  /**
108
120
  * collab 域 = 中心的多成员讨论模板。**本仓不执行它们**:唯一的执行体是引擎的团队讨论脚本,core 7.49.0 已删(本仓不留第二份
109
121
  * 团队编排)。这一只是本仓对该域的**唯一读法**:已发布且启用的模板 id(`enabled === false` 是运营态关闭,不算发布)——