@sema-agent/server 7.147.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 (725) hide show
  1. package/MIGRATION.md +1039 -24
  2. package/README.md +20 -7
  3. package/README.zh-CN.md +14 -8
  4. package/USAGE.md +380 -163
  5. package/deploy/sema-up/README.md +16 -5
  6. package/deploy/sema-up/chart/templates/NOTES.txt +1 -1
  7. package/deploy/sema-up/chart/templates/_helpers.tpl +20 -4
  8. package/deploy/sema-up/chart/values.yaml +3 -2
  9. package/deploy/sema-up/cluster-up.sh +74 -176
  10. package/deploy/sema-up/kube-up.sh +29 -49
  11. package/deploy/sema-up/lib/chart-run.sh +23 -0
  12. package/deploy/sema-up/lib/dataroot.sh +3 -3
  13. package/deploy/sema-up/lib/health.sh +62 -13
  14. package/deploy/sema-up/lib/helm-values-cluster.py +18 -0
  15. package/deploy/sema-up/lib/helm-values-kube.py +35 -0
  16. package/deploy/sema-up/lib/regcred.py +8 -0
  17. package/deploy/sema-up/lib/remote/helm-install.sh +3 -0
  18. package/deploy/sema-up/lib/remote/image-import.sh +6 -0
  19. package/deploy/sema-up/lib/remote/machine-precheck.sh +11 -0
  20. package/deploy/sema-up/lib/remote/region-probe.sh +3 -0
  21. package/deploy/sema-up/lib/remote/stack-ready.sh +26 -0
  22. package/deploy/sema-up/lib/remote/vxlan-guard.sh +8 -0
  23. package/deploy/sema-up/lib/render-stack.py +17 -0
  24. package/deploy/sema-up/lib/shell-text.sh +87 -0
  25. package/deploy/sema-up/lib/usage-flags.txt +10 -0
  26. package/deploy/sema-up/lib/usage-head.txt +1 -0
  27. package/deploy/sema-up/lib/usage-tail.txt +13 -0
  28. package/deploy/sema-up/preflight.sh +10 -8
  29. package/deploy/sema-up/sema-up.sh +14 -39
  30. package/deploy/sema-up/smoke.sh +7 -6
  31. package/deploy/sema-up/stack/compose.dataroot.yaml +3 -0
  32. package/deploy/sema-up/stack/compose.yaml +13 -1
  33. package/deploy/sema-up/stack/sema-stack-cluster.yaml +21 -0
  34. package/dist/adoption/plan.d.ts +24 -0
  35. package/dist/adoption/plan.js +53 -1
  36. package/dist/adoption/runner.d.ts +10 -1
  37. package/dist/adoption/runner.js +36 -16
  38. package/dist/adoption/wire.d.ts +3 -3
  39. package/dist/approval-card.d.ts +28 -30
  40. package/dist/approval-gate-currency.js +3 -2
  41. package/dist/approval-reconciler.d.ts +4 -13
  42. package/dist/approval-reconciler.js +2 -2
  43. package/dist/approval.d.ts +13 -11
  44. package/dist/approval.js +3 -3
  45. package/dist/audit.d.ts +10 -3
  46. package/dist/audit.js +15 -7
  47. package/dist/auth-bridge.d.ts +0 -14
  48. package/dist/auth-bridge.js +0 -7
  49. package/dist/auto-mode-face.d.ts +10 -7
  50. package/dist/auto-mode-face.js +7 -4
  51. package/dist/background-agent-name.d.ts +19 -1
  52. package/dist/background-agent-name.js +12 -2
  53. package/dist/background-session-reap.d.ts +1 -1
  54. package/dist/bake-runner/main.js +9 -6
  55. package/dist/bench/s1/arms.js +6 -5
  56. package/dist/bench/s1/live-deps.js +5 -2
  57. package/dist/bench/s1/run-firm.js +6 -5
  58. package/dist/bind-host.d.ts +25 -0
  59. package/dist/bind-host.js +25 -0
  60. package/dist/boot/adoption.d.ts +3 -0
  61. package/dist/boot/adoption.js +1 -0
  62. package/dist/boot/deployment-mods.d.ts +1 -1
  63. package/dist/boot/execution-env.d.ts +17 -7
  64. package/dist/boot/execution-env.js +37 -31
  65. package/dist/boot/exit-boundary.d.ts +2 -2
  66. package/dist/boot/exit-boundary.js +6 -5
  67. package/dist/boot/fatal-exit.d.ts +3 -5
  68. package/dist/boot/fatal-exit.js +2 -2
  69. package/dist/boot/leader.d.ts +15 -0
  70. package/dist/boot/leader.js +17 -15
  71. package/dist/boot/memory-consolidation.d.ts +37 -29
  72. package/dist/boot/memory-consolidation.js +11 -5
  73. package/dist/boot/org-memory.js +1 -1
  74. package/dist/boot/parked-revive-gate.js +2 -2
  75. package/dist/boot/reapers.d.ts +4 -3
  76. package/dist/boot/reapers.js +19 -16
  77. package/dist/boot/resolve-spec.d.ts +5 -3
  78. package/dist/boot/resolve-spec.js +55 -67
  79. package/dist/boot/retention-lane.d.ts +4 -4
  80. package/dist/boot/retention-lane.js +2 -2
  81. package/dist/boot/runner-deps.d.ts +28 -7
  82. package/dist/boot/runner-deps.js +11 -4
  83. package/dist/boot/runtime-caps.d.ts +2 -2
  84. package/dist/boot/runtime-caps.js +16 -2
  85. package/dist/boot/session-faces.d.ts +16 -7
  86. package/dist/boot/session-faces.js +114 -94
  87. package/dist/boot/shutdown.d.ts +5 -4
  88. package/dist/boot/shutdown.js +6 -4
  89. package/dist/boot/stage-01-config.js +9 -1
  90. package/dist/boot/stage-02-web-admin-pull.d.ts +1 -0
  91. package/dist/boot/stage-02-web-admin-pull.js +6 -1
  92. package/dist/boot/stage-03-store-backend.d.ts +3 -0
  93. package/dist/boot/stage-03-store-backend.js +4 -3
  94. package/dist/boot/stage-04-stores.d.ts +2 -0
  95. package/dist/boot/stage-04-stores.js +2 -2
  96. package/dist/boot/stage-05-execution-env.d.ts +7 -3
  97. package/dist/boot/stage-05-execution-env.js +2 -2
  98. package/dist/boot/stage-06-runners.d.ts +10 -12
  99. package/dist/boot/stage-06-runners.js +23 -15
  100. package/dist/boot/stage-07-capability-layer.d.ts +11 -8
  101. package/dist/boot/stage-07-capability-layer.js +5 -3
  102. package/dist/boot/stage-08-reapers.d.ts +11 -8
  103. package/dist/boot/stage-08-reapers.js +3 -3
  104. package/dist/boot/stage-09-leader.d.ts +12 -15
  105. package/dist/boot/stage-09-leader.js +12 -4
  106. package/dist/boot/stage-10-http-server.d.ts +12 -15
  107. package/dist/boot/stage-10-http-server.js +7 -4
  108. package/dist/boot/store-evidence.d.ts +20 -0
  109. package/dist/boot/store-evidence.js +13 -0
  110. package/dist/boot/stores.d.ts +3 -0
  111. package/dist/boot/stores.js +21 -10
  112. package/dist/boot/task-list-lane.d.ts +4 -4
  113. package/dist/boot/web-admin.d.ts +4 -2
  114. package/dist/boot/web-admin.js +55 -35
  115. package/dist/boot/webfetch-summarize-lane.d.ts +1 -1
  116. package/dist/boot-reclaim.d.ts +3 -1
  117. package/dist/boot-reclaim.js +1 -1
  118. package/dist/brain.d.ts +7 -18
  119. package/dist/brain.js +5 -17
  120. package/dist/budget.js +6 -6
  121. package/dist/capabilities/center-plugins.d.ts +7 -1
  122. package/dist/capabilities/center-plugins.js +32 -10
  123. package/dist/capabilities/center-wiring.js +1 -1
  124. package/dist/capabilities/composite-members.d.ts +2 -2
  125. package/dist/capabilities/composite-members.js +2 -2
  126. package/dist/capabilities/repo-tools.d.ts +2 -0
  127. package/dist/capabilities/repo-tools.js +14 -12
  128. package/dist/capabilities/scenarios.d.ts +6 -15
  129. package/dist/capabilities/scenarios.js +11 -16
  130. package/dist/capabilities/skills.d.ts +1 -1
  131. package/dist/capabilities/tool-defer.d.ts +1 -1
  132. package/dist/capability-facts.d.ts +38 -11
  133. package/dist/capability-facts.js +47 -8
  134. package/dist/card-void.d.ts +4 -4
  135. package/dist/card-void.js +1 -1
  136. package/dist/center-credential-renewer.d.ts +6 -2
  137. package/dist/center-credential-renewer.js +7 -3
  138. package/dist/config-catalog.d.ts +16 -1
  139. package/dist/config-catalog.js +62 -56
  140. package/dist/config-dir-trust.d.ts +37 -4
  141. package/dist/config-dir-trust.js +88 -44
  142. package/dist/config-invariants.d.ts +42 -3
  143. package/dist/config-invariants.js +69 -5
  144. package/dist/config-lkg.d.ts +23 -1
  145. package/dist/config-lkg.js +17 -3
  146. package/dist/config-provider.d.ts +9 -9
  147. package/dist/config-provider.js +25 -110
  148. package/dist/config-pull-failure.d.ts +50 -0
  149. package/dist/config-pull-failure.js +48 -0
  150. package/dist/config-types.d.ts +26 -17
  151. package/dist/config.d.ts +8 -16
  152. package/dist/config.js +113 -47
  153. package/dist/delegated-session-owner.d.ts +1 -1
  154. package/dist/deleted-session-ids.d.ts +3 -2
  155. package/dist/deployment-governance.d.ts +3 -3
  156. package/dist/deployment-shape.d.ts +30 -4
  157. package/dist/deployment-shape.js +7 -0
  158. package/dist/egress-redirect.d.ts +25 -7
  159. package/dist/egress-redirect.js +20 -2
  160. package/dist/elicitation.d.ts +6 -5
  161. package/dist/elicitation.js +23 -22
  162. package/dist/engine-identity.d.ts +28 -0
  163. package/dist/engine-identity.js +10 -0
  164. package/dist/entry-problems.d.ts +5 -7
  165. package/dist/entry-problems.js +1 -1
  166. package/dist/env-facts.js +2 -1
  167. package/dist/env-witness.d.ts +7 -0
  168. package/dist/env-witness.js +16 -0
  169. package/dist/execution-lane-caps.d.ts +5 -18
  170. package/dist/execution-lane-caps.js +0 -22
  171. package/dist/execution-placement.d.ts +58 -18
  172. package/dist/execution-placement.js +41 -2
  173. package/dist/field-conflict.d.ts +7 -11
  174. package/dist/field-conflict.js +3 -3
  175. package/dist/file-history-capture.d.ts +3 -3
  176. package/dist/file-history-disclosure.js +1 -0
  177. package/dist/fleet/fleet-bus.d.ts +21 -3
  178. package/dist/fleet/fleet-bus.js +35 -25
  179. package/dist/fleet/fleet-reconciler.js +2 -2
  180. package/dist/fleet/serving-lease.js +3 -3
  181. package/dist/fleet-client.js +3 -3
  182. package/dist/fleet-lease.d.ts +0 -1
  183. package/dist/fleet-lease.js +4 -5
  184. package/dist/history-anchor.d.ts +23 -3
  185. package/dist/history-anchor.js +24 -4
  186. package/dist/hitl-delivery.d.ts +90 -0
  187. package/dist/hitl-delivery.js +98 -0
  188. package/dist/hooks/classic-stations.d.ts +8 -11
  189. package/dist/hooks/classic-stations.js +0 -7
  190. package/dist/hooks/hook-llm.d.ts +5 -1
  191. package/dist/hooks/hook-llm.js +24 -15
  192. package/dist/hooks/hook-runner.d.ts +67 -57
  193. package/dist/hooks/hook-runner.js +260 -186
  194. package/dist/host-lsp-manager.d.ts +22 -8
  195. package/dist/host-lsp-manager.js +4 -1
  196. package/dist/http/active-run-conflict.d.ts +2 -43
  197. package/dist/http/active-run-conflict.js +3 -7
  198. package/dist/http/admission.d.ts +4 -18
  199. package/dist/http/admission.js +75 -78
  200. package/dist/http/approval-sweeps.d.ts +3 -3
  201. package/dist/http/approval-sweeps.js +54 -30
  202. package/dist/http/caller-trust.d.ts +8 -10
  203. package/dist/http/caller-trust.js +1 -2
  204. package/dist/http/claim-heartbeat.d.ts +49 -0
  205. package/dist/http/claim-heartbeat.js +46 -0
  206. package/dist/http/claimed-run.d.ts +4 -3
  207. package/dist/http/dispatch.d.ts +8 -1
  208. package/dist/http/dispatch.js +76 -30
  209. package/dist/http/durable-run-leg.d.ts +3 -3
  210. package/dist/http/durable-run-leg.js +17 -12
  211. package/dist/http/execution-context.d.ts +17 -43
  212. package/dist/http/execution-context.js +7 -5
  213. package/dist/http/health-reader.d.ts +36 -0
  214. package/dist/http/health-reader.js +21 -0
  215. package/dist/http/health-self-report.d.ts +9 -9
  216. package/dist/http/health-self-report.js +4 -4
  217. package/dist/http/idempotency.d.ts +9 -5
  218. package/dist/http/idempotency.js +4 -4
  219. package/dist/http/memory-compliance-failure-reply.d.ts +15 -16
  220. package/dist/http/memory-compliance-failure-reply.js +4 -2
  221. package/dist/http/memory-face-fault-reply.d.ts +67 -0
  222. package/dist/http/memory-face-fault-reply.js +71 -0
  223. package/dist/http/memory-store-refusal-reply.d.ts +1 -1
  224. package/dist/http/memory-store-refusal-reply.js +3 -0
  225. package/dist/http/owner-access.d.ts +391 -67
  226. package/dist/http/owner-access.js +371 -35
  227. package/dist/http/principal-gate.d.ts +24 -81
  228. package/dist/http/principal-gate.js +24 -68
  229. package/dist/http/refusal-body.d.ts +35 -2
  230. package/dist/http/refusal-body.js +34 -0
  231. package/dist/http/request-guards.d.ts +9 -13
  232. package/dist/http/request-guards.js +34 -68
  233. package/dist/http/resume-composition.d.ts +37 -0
  234. package/dist/http/resume-composition.js +18 -0
  235. package/dist/http/resume-ctx-read.d.ts +35 -12
  236. package/dist/http/resume-ctx-read.js +25 -6
  237. package/dist/http/resume-legs.d.ts +21 -18
  238. package/dist/http/resume-legs.js +189 -129
  239. package/dist/http/retired-skill-manifest.d.ts +1 -1
  240. package/dist/http/route-ctx.d.ts +25 -32
  241. package/dist/http/routes/a2a-serve.d.ts +43 -5
  242. package/dist/http/routes/a2a-serve.js +58 -37
  243. package/dist/http/routes/admin-config-refresh.js +2 -2
  244. package/dist/http/routes/admin-drain.js +2 -2
  245. package/dist/http/routes/admin-memory-optout.js +4 -3
  246. package/dist/http/routes/adoption.d.ts +3 -0
  247. package/dist/http/routes/adoption.js +17 -10
  248. package/dist/http/routes/agents-roster.js +13 -7
  249. package/dist/http/routes/approvals-assistant.js +70 -65
  250. package/dist/http/routes/attachments.js +2 -2
  251. package/dist/http/routes/background.d.ts +3 -3
  252. package/dist/http/routes/background.js +9 -17
  253. package/dist/http/routes/capabilities.js +15 -18
  254. package/dist/http/routes/config-catalog.js +2 -2
  255. package/dist/http/routes/devices.d.ts +3 -3
  256. package/dist/http/routes/devices.js +4 -4
  257. package/dist/http/routes/diagnostics.d.ts +27 -3
  258. package/dist/http/routes/diagnostics.js +27 -21
  259. package/dist/http/routes/engine.js +2 -2
  260. package/dist/http/routes/fleet.js +5 -3
  261. package/dist/http/routes/images.js +10 -6
  262. package/dist/http/routes/leader.d.ts +7 -2
  263. package/dist/http/routes/leader.js +12 -3
  264. package/dist/http/routes/mcp-reconnect.d.ts +1 -1
  265. package/dist/http/routes/mcp-reconnect.js +7 -15
  266. package/dist/http/routes/memory-bundle.js +4 -7
  267. package/dist/http/routes/memory-compliance.js +4 -4
  268. package/dist/http/routes/memory-consolidation.js +6 -9
  269. package/dist/http/routes/memory-origin.d.ts +2 -0
  270. package/dist/http/routes/memory-origin.js +7 -8
  271. package/dist/http/routes/memory-policy.js +17 -12
  272. package/dist/http/routes/notify-wake.js +10 -19
  273. package/dist/http/routes/observability.js +3 -3
  274. package/dist/http/routes/principal-inbox.d.ts +1 -1
  275. package/dist/http/routes/principal-inbox.js +2 -2
  276. package/dist/http/routes/projects.d.ts +1 -1
  277. package/dist/http/routes/projects.js +3 -2
  278. package/dist/http/routes/retention-ops.js +6 -9
  279. package/dist/http/routes/rules.js +20 -5
  280. package/dist/http/routes/run-memory-capture.d.ts +2 -2
  281. package/dist/http/routes/run-memory-capture.js +6 -12
  282. package/dist/http/routes/run-permission-mode.d.ts +2 -2
  283. package/dist/http/routes/run-permission-mode.js +10 -17
  284. package/dist/http/routes/runs.js +146 -231
  285. package/dist/http/routes/session-memory-sync.d.ts +2 -2
  286. package/dist/http/routes/session-memory-sync.js +7 -13
  287. package/dist/http/routes/session-sync.d.ts +4 -2
  288. package/dist/http/routes/session-sync.js +21 -20
  289. package/dist/http/routes/sessions-list.d.ts +3 -3
  290. package/dist/http/routes/sessions-list.js +9 -9
  291. package/dist/http/routes/sessions.js +87 -124
  292. package/dist/http/routes/shared-memory.js +6 -6
  293. package/dist/http/routes/side-query.js +2 -2
  294. package/dist/http/routes/tasks.js +136 -120
  295. package/dist/http/routes/trace-usage.d.ts +0 -12
  296. package/dist/http/routes/trace-usage.js +40 -46
  297. package/dist/http/routes/workflows.d.ts +39 -4
  298. package/dist/http/routes/workflows.js +42 -14
  299. package/dist/http/run-concurrency-cap.d.ts +20 -12
  300. package/dist/http/run-concurrency-cap.js +39 -26
  301. package/dist/http/run-read-face.d.ts +3 -5
  302. package/dist/http/run-read-face.js +8 -13
  303. package/dist/http/send.d.ts +12 -3
  304. package/dist/http/send.js +42 -6
  305. package/dist/http/server.d.ts +39 -40
  306. package/dist/http/server.js +36 -11
  307. package/dist/http/sse-log.d.ts +17 -10
  308. package/dist/http/sse-log.js +7 -7
  309. package/dist/http/stored-body-replay.d.ts +12 -0
  310. package/dist/http/stored-body-replay.js +2 -2
  311. package/dist/http/submit-ctx.d.ts +16 -8
  312. package/dist/http/submit-ctx.js +6 -2
  313. package/dist/http/submit-replay.d.ts +19 -6
  314. package/dist/http/submit-replay.js +18 -6
  315. package/dist/http/sync-submit-body.d.ts +3 -4
  316. package/dist/http/sync-submit-body.js +4 -5
  317. package/dist/http/wire-types.d.ts +4 -3
  318. package/dist/identity-source.d.ts +36 -5
  319. package/dist/identity-source.js +27 -0
  320. package/dist/index.d.ts +1 -0
  321. package/dist/index.js +1 -0
  322. package/dist/key-resolver.d.ts +32 -0
  323. package/dist/key-resolver.js +23 -9
  324. package/dist/leader/diffup.js +2 -1
  325. package/dist/leader/endpoint.d.ts +26 -5
  326. package/dist/leader/endpoint.js +154 -14
  327. package/dist/leader/fanout.d.ts +3 -0
  328. package/dist/leader/fanout.js +78 -63
  329. package/dist/leader/leader.d.ts +16 -0
  330. package/dist/leader/leader.js +43 -3
  331. package/dist/leader/merge.d.ts +9 -1
  332. package/dist/leader/merge.js +16 -1
  333. package/dist/leader/repair-wire.js +1 -1
  334. package/dist/leader/wire.d.ts +36 -3
  335. package/dist/leader/wire.js +59 -18
  336. package/dist/lsp-evict.d.ts +6 -4
  337. package/dist/lsp-evict.js +2 -3
  338. package/dist/memory-operator-faces.d.ts +5 -4
  339. package/dist/memory-operator-faces.js +1 -1
  340. package/dist/memory-scope.d.ts +29 -2
  341. package/dist/memory-scope.js +64 -15
  342. package/dist/memory-store-refusal.d.ts +5 -2
  343. package/dist/memory-sync-client.d.ts +3 -2
  344. package/dist/memory-sync-client.js +6 -3
  345. package/dist/model-compat.d.ts +17 -8
  346. package/dist/model-compat.js +6 -2
  347. package/dist/model-context-window.d.ts +18 -0
  348. package/dist/model-context-window.js +2 -0
  349. package/dist/model-entry-headers.d.ts +46 -4
  350. package/dist/model-entry-headers.js +2 -2
  351. package/dist/model-entry-refusal.d.ts +35 -16
  352. package/dist/model-entry-refusal.js +40 -27
  353. package/dist/model-plane-face.d.ts +19 -11
  354. package/dist/model-plane-face.js +9 -1
  355. package/dist/model-plane-probe.d.ts +2 -0
  356. package/dist/model-plane-probe.js +17 -0
  357. package/dist/model-provider.d.ts +3 -3
  358. package/dist/model-route-endpoint.d.ts +9 -5
  359. package/dist/model-route-endpoint.js +29 -7
  360. package/dist/model-select.d.ts +16 -0
  361. package/dist/model-select.js +4 -0
  362. package/dist/mountinfo.d.ts +37 -0
  363. package/dist/mountinfo.js +47 -0
  364. package/dist/namespaced-rule-name.d.ts +23 -14
  365. package/dist/namespaced-rule-name.js +8 -11
  366. package/dist/net-address.d.ts +1 -1
  367. package/dist/observability/corrupt-read-seat.d.ts +4 -4
  368. package/dist/observability/corrupt-read-seat.js +5 -3
  369. package/dist/observability/fail-open.d.ts +58 -38
  370. package/dist/observability/fail-open.js +60 -38
  371. package/dist/observability/logger.d.ts +22 -1
  372. package/dist/observability/logger.js +89 -12
  373. package/dist/observability/metrics.js +3 -4
  374. package/dist/observability/otel-exporter.js +2 -1
  375. package/dist/observability/principal-context.d.ts +14 -7
  376. package/dist/observability/principal-context.js +8 -3
  377. package/dist/observability/run-terminal.d.ts +7 -1
  378. package/dist/observability/run-terminal.js +5 -2
  379. package/dist/orchestration/hardened-vm-runner.d.ts +1 -0
  380. package/dist/orchestration/hardened-vm-runner.js +11 -5
  381. package/dist/orchestration/hardened-vm-worker-runner.d.ts +0 -14
  382. package/dist/orchestration/hardened-vm-worker-runner.js +5 -0
  383. package/dist/orchestration/hardened-vm-worker.js +2 -1
  384. package/dist/orchestration/workflow-completion-inbox.d.ts +3 -3
  385. package/dist/orchestration/workflow-completion-inbox.js +3 -2
  386. package/dist/org-delivery-gate.d.ts +5 -4
  387. package/dist/org-delivery-gate.js +7 -6
  388. package/dist/outbound-dispatcher.d.ts +1 -1
  389. package/dist/outbound-dispatcher.js +6 -12
  390. package/dist/owner-brands.d.ts +81 -0
  391. package/dist/owner-brands.js +42 -0
  392. package/dist/owner-faces.d.ts +531 -0
  393. package/dist/owner-faces.js +126 -0
  394. package/dist/parked-decide.d.ts +67 -5
  395. package/dist/parked-decide.js +127 -5
  396. package/dist/parked-revive-surface.d.ts +14 -4
  397. package/dist/parked-revive-surface.js +5 -4
  398. package/dist/peer-directory.d.ts +6 -8
  399. package/dist/peer-directory.js +3 -2
  400. package/dist/permission-rule-vocab.d.ts +53 -8
  401. package/dist/permission-rule-vocab.js +30 -2
  402. package/dist/plugins/adoption-log-sql.d.ts +0 -22
  403. package/dist/plugins/adoption-log-sql.js +5 -3
  404. package/dist/plugins/approval-ask-retired-delete-by-task-m50.d.ts +7 -0
  405. package/dist/plugins/approval-ask-retired-delete-by-task-m50.js +17 -0
  406. package/dist/plugins/approval-ask-store-file.d.ts +18 -7
  407. package/dist/plugins/approval-ask-store-file.js +37 -14
  408. package/dist/plugins/approval-ask-store-memory.d.ts +12 -4
  409. package/dist/plugins/approval-ask-store-memory.js +24 -10
  410. package/dist/plugins/approval-ask-store-sql.d.ts +39 -20
  411. package/dist/plugins/approval-ask-store-sql.js +41 -10
  412. package/dist/plugins/approval-exemption-skill-m46.d.ts +20 -0
  413. package/dist/plugins/approval-exemption-skill-m46.js +25 -0
  414. package/dist/plugins/approval-exemption-store.d.ts +6 -1
  415. package/dist/plugins/approval-exemption-store.js +14 -0
  416. package/dist/plugins/approval-nonce-store.d.ts +39 -12
  417. package/dist/plugins/approval-nonce-store.js +72 -23
  418. package/dist/plugins/blob-backend.d.ts +2 -0
  419. package/dist/plugins/blob-backend.js +9 -6
  420. package/dist/plugins/caching-session-store.d.ts +13 -1
  421. package/dist/plugins/caching-session-store.js +43 -4
  422. package/dist/plugins/checkpoint-index-columns.d.ts +32 -5
  423. package/dist/plugins/checkpoint-index-columns.js +36 -1
  424. package/dist/plugins/checkpoint-store-face.d.ts +83 -10
  425. package/dist/plugins/checkpoint-store-face.js +18 -1
  426. package/dist/plugins/device-store-sql.js +1 -0
  427. package/dist/plugins/ensure-index.d.ts +13 -1
  428. package/dist/plugins/ensure-index.js +154 -21
  429. package/dist/plugins/ensure-schema-lock-policy.d.ts +0 -15
  430. package/dist/plugins/ensure-schema-lock-policy.js +3 -2
  431. package/dist/plugins/file-run-store.d.ts +63 -23
  432. package/dist/plugins/file-run-store.js +138 -83
  433. package/dist/plugins/host-platform.d.ts +24 -3
  434. package/dist/plugins/host-platform.js +15 -1
  435. package/dist/plugins/image-bake-store-sql.js +2 -0
  436. package/dist/plugins/imported-layer-root-retirement.d.ts +2 -2
  437. package/dist/plugins/k8s-pod-reaper.d.ts +1 -3
  438. package/dist/plugins/k8s-pod-reaper.js +0 -1
  439. package/dist/plugins/leader-run-store-sql.d.ts +22 -0
  440. package/dist/plugins/leader-run-store-sql.js +34 -4
  441. package/dist/plugins/local-checkpoint-store.d.ts +58 -23
  442. package/dist/plugins/local-checkpoint-store.js +195 -76
  443. package/dist/plugins/local-data-dir-modes-m39.js +2 -1
  444. package/dist/plugins/local-docker-capacity.d.ts +93 -0
  445. package/dist/plugins/local-docker-capacity.js +194 -0
  446. package/dist/plugins/local-docker-reaper.d.ts +92 -0
  447. package/dist/plugins/local-docker-reaper.js +102 -0
  448. package/dist/plugins/local-engine-high-water.d.ts +4 -2
  449. package/dist/plugins/local-engine-high-water.js +4 -1
  450. package/dist/plugins/local-session-store.d.ts +358 -125
  451. package/dist/plugins/local-session-store.js +824 -251
  452. package/dist/plugins/local-session-window.d.ts +3 -2
  453. package/dist/plugins/local-session-window.js +3 -2
  454. package/dist/plugins/local-sidecar-quarantine.js +3 -2
  455. package/dist/plugins/local-task-attachment-store.d.ts +18 -1
  456. package/dist/plugins/local-task-attachment-store.js +22 -1
  457. package/dist/plugins/memory-embedder.js +9 -7
  458. package/dist/plugins/memory-engine-pg.d.ts +3 -2
  459. package/dist/plugins/memory-engine-pg.js +14 -5
  460. package/dist/plugins/memory-engine-sql-apply.d.ts +8 -4
  461. package/dist/plugins/memory-engine-sql-apply.js +6 -8
  462. package/dist/plugins/memory-engine-tidb.d.ts +4 -2
  463. package/dist/plugins/memory-engine-tidb.js +11 -2
  464. package/dist/plugins/memory-optout-grant-store-sql.d.ts +1 -1
  465. package/dist/plugins/memory-optout-grant-store-sql.js +3 -3
  466. package/dist/plugins/memory-run-store.d.ts +39 -27
  467. package/dist/plugins/memory-run-store.js +72 -70
  468. package/dist/plugins/one-time-migration-marker.d.ts +10 -0
  469. package/dist/plugins/one-time-migration-marker.js +7 -0
  470. package/dist/plugins/one-time-migrations.d.ts +186 -45
  471. package/dist/plugins/one-time-migrations.js +442 -119
  472. package/dist/plugins/org-delivery-quota-store.js +2 -1
  473. package/dist/plugins/permission-rule-store-file.d.ts +3 -3
  474. package/dist/plugins/permission-rule-store-sql.d.ts +4 -63
  475. package/dist/plugins/permission-rule-store-sql.js +6 -86
  476. package/dist/plugins/pg-pool.d.ts +1 -31
  477. package/dist/plugins/pg-pool.js +16 -7
  478. package/dist/plugins/remote-env-e2b.d.ts +7 -25
  479. package/dist/plugins/remote-env-e2b.js +34 -25
  480. package/dist/plugins/remote-env-host.d.ts +2 -9
  481. package/dist/plugins/remote-env-host.js +34 -22
  482. package/dist/plugins/remote-env-k8s.d.ts +40 -45
  483. package/dist/plugins/remote-env-k8s.js +107 -58
  484. package/dist/plugins/remote-env-local-docker.d.ts +148 -14
  485. package/dist/plugins/remote-env-local-docker.js +367 -72
  486. package/dist/plugins/remote-scratchpad.js +4 -0
  487. package/dist/plugins/retention-deployment.d.ts +49 -17
  488. package/dist/plugins/retention-deployment.js +39 -8
  489. package/dist/plugins/run-preview-m45.d.ts +11 -0
  490. package/dist/plugins/run-preview-m45.js +19 -0
  491. package/dist/plugins/run-store-sql.d.ts +56 -68
  492. package/dist/plugins/run-store-sql.js +127 -116
  493. package/dist/plugins/s3-answer.d.ts +2 -1
  494. package/dist/plugins/sandbox-reaper.d.ts +26 -0
  495. package/dist/plugins/sandbox-reaper.js +2 -0
  496. package/dist/plugins/scenario-prefix-switch-m42.d.ts +54 -0
  497. package/dist/plugins/scenario-prefix-switch-m42.js +55 -0
  498. package/dist/plugins/scheduler-support.d.ts +16 -1
  499. package/dist/plugins/scheduler-support.js +22 -2
  500. package/dist/plugins/schema-consistency.d.ts +42 -9
  501. package/dist/plugins/schema-consistency.js +212 -11
  502. package/dist/plugins/schema-drift-sentence.d.ts +4 -1
  503. package/dist/plugins/schema-drift-sentence.js +4 -4
  504. package/dist/plugins/schema-ensure-legs.d.ts +9 -0
  505. package/dist/plugins/schema-ensure-legs.js +1 -1
  506. package/dist/plugins/schema-indexes.js +3 -0
  507. package/dist/plugins/schema-live-columns.d.ts +14 -5
  508. package/dist/plugins/schema-live-columns.js +10 -10
  509. package/dist/plugins/send-user-file.js +2 -1
  510. package/dist/plugins/session-birth.d.ts +37 -0
  511. package/dist/plugins/session-birth.js +38 -0
  512. package/dist/plugins/session-epoch-anchor.d.ts +40 -12
  513. package/dist/plugins/session-epoch-anchor.js +33 -11
  514. package/dist/plugins/session-ext-table.d.ts +27 -3
  515. package/dist/plugins/session-ext-table.js +19 -6
  516. package/dist/plugins/session-fork.d.ts +15 -1
  517. package/dist/plugins/session-fork.js +3 -0
  518. package/dist/plugins/session-ownership.d.ts +1 -1
  519. package/dist/plugins/session-placement.d.ts +22 -16
  520. package/dist/plugins/session-placement.js +15 -12
  521. package/dist/plugins/session-row-sql.d.ts +12 -0
  522. package/dist/plugins/session-row-sql.js +3 -3
  523. package/dist/plugins/session-run-rollup.d.ts +29 -0
  524. package/dist/plugins/session-run-rollup.js +40 -0
  525. package/dist/plugins/session-store-sql.d.ts +38 -12
  526. package/dist/plugins/session-store-sql.js +130 -30
  527. package/dist/plugins/session-withdraw-sql.d.ts +36 -0
  528. package/dist/plugins/session-withdraw-sql.js +42 -0
  529. package/dist/plugins/shared-memory-store-sql.d.ts +0 -69
  530. package/dist/plugins/shared-memory-store-sql.js +2 -1
  531. package/dist/plugins/shell-sentinel-owner-m48.d.ts +20 -0
  532. package/dist/plugins/shell-sentinel-owner-m48.js +3 -0
  533. package/dist/plugins/snapshot-bucket-presence.d.ts +2 -1
  534. package/dist/plugins/sql-driver.d.ts +1 -1
  535. package/dist/plugins/sql-driver.js +2 -1
  536. package/dist/plugins/sql-errors.d.ts +32 -5
  537. package/dist/plugins/sql-errors.js +55 -7
  538. package/dist/plugins/sql-json-column.d.ts +8 -7
  539. package/dist/plugins/sql-json-column.js +10 -6
  540. package/dist/plugins/store-backend.d.ts +84 -15
  541. package/dist/plugins/store-backend.js +186 -55
  542. package/dist/plugins/store-contracts.d.ts +90 -30
  543. package/dist/plugins/store-contracts.js +22 -1
  544. package/dist/plugins/store-fault.d.ts +28 -2
  545. package/dist/plugins/store-fault.js +20 -2
  546. package/dist/plugins/task-attachment-store.d.ts +15 -3
  547. package/dist/plugins/task-attachment-store.js +22 -9
  548. package/dist/plugins/tidb-pool.js +23 -8
  549. package/dist/plugins/web-search.js +5 -3
  550. package/dist/plugins/workflow-run-store-sql.d.ts +6 -1
  551. package/dist/plugins/workflow-run-store-sql.js +11 -5
  552. package/dist/principal-jwt.d.ts +4 -4
  553. package/dist/principal-jwt.js +20 -5
  554. package/dist/principal-shape.d.ts +41 -0
  555. package/dist/principal-shape.js +19 -0
  556. package/dist/question.d.ts +13 -23
  557. package/dist/question.js +21 -39
  558. package/dist/request-declaration-refusal.d.ts +35 -12
  559. package/dist/request-declaration-refusal.js +21 -9
  560. package/dist/request-form.d.ts +58 -0
  561. package/dist/request-form.js +72 -0
  562. package/dist/request-image-urls.d.ts +8 -2
  563. package/dist/request-image-urls.js +2 -1
  564. package/dist/request-images.d.ts +20 -0
  565. package/dist/request-images.js +59 -0
  566. package/dist/request-key-closure.d.ts +6 -7
  567. package/dist/request-key-closure.js +15 -2
  568. package/dist/resource-suspend.d.ts +7 -16
  569. package/dist/resource-suspend.js +1 -1
  570. package/dist/retired-name-host-notice.d.ts +21 -0
  571. package/dist/retired-name-host-notice.js +12 -0
  572. package/dist/rule-entry-list.d.ts +2 -2
  573. package/dist/rule-entry-list.js +3 -4
  574. package/dist/rule-issue-reading.d.ts +58 -0
  575. package/dist/rule-issue-reading.js +14 -0
  576. package/dist/rules-consent.d.ts +5 -3
  577. package/dist/rules-consent.js +1 -0
  578. package/dist/run-acceptance.d.ts +3 -1
  579. package/dist/run-acceptance.js +3 -0
  580. package/dist/run-local.d.ts +14 -6
  581. package/dist/run-local.js +92 -80
  582. package/dist/run-stale-default.d.ts +7 -0
  583. package/dist/run-stale-default.js +2 -0
  584. package/dist/runs.d.ts +26 -15
  585. package/dist/runs.js +39 -27
  586. package/dist/runtime-caps-resolver.d.ts +21 -6
  587. package/dist/runtime-caps-resolver.js +17 -4
  588. package/dist/runtime-governance.d.ts +2 -2
  589. package/dist/runtime-governance.js +5 -3
  590. package/dist/sealed-key-layout.d.ts +12 -5
  591. package/dist/sealed-key-layout.js +5 -0
  592. package/dist/sealed-key.d.ts +12 -2
  593. package/dist/sealed-key.js +115 -27
  594. package/dist/security.d.ts +128 -158
  595. package/dist/security.js +163 -59
  596. package/dist/sema-config-dir.d.ts +20 -0
  597. package/dist/sema-config-dir.js +25 -0
  598. package/dist/server-secret-env.d.ts +21 -5
  599. package/dist/server-secret-env.js +14 -4
  600. package/dist/session-children-retire.d.ts +7 -5
  601. package/dist/session-children-retire.js +7 -2
  602. package/dist/session-deletion.d.ts +88 -0
  603. package/dist/session-deletion.js +8 -0
  604. package/dist/session-erase.d.ts +145 -0
  605. package/dist/session-erase.js +115 -0
  606. package/dist/session-error-wire.d.ts +5 -5
  607. package/dist/session-error-wire.js +1 -1
  608. package/dist/session-incarnation.d.ts +52 -5
  609. package/dist/session-incarnation.js +19 -2
  610. package/dist/session-policy-wire.d.ts +6 -3
  611. package/dist/session-policy-wire.js +11 -1
  612. package/dist/session-resident-background.d.ts +0 -71
  613. package/dist/session-resident-background.js +4 -3
  614. package/dist/session-row.d.ts +2 -1
  615. package/dist/session-rules-seat.d.ts +12 -0
  616. package/dist/session-rules-seat.js +19 -0
  617. package/dist/session-titler.d.ts +7 -15
  618. package/dist/session-titler.js +1 -1
  619. package/dist/spec-fields.d.ts +57 -3
  620. package/dist/spec-fields.js +72 -51
  621. package/dist/store-posture.d.ts +136 -20
  622. package/dist/store-posture.js +188 -3
  623. package/dist/stored-request-hooks-m20.js +2 -2
  624. package/dist/stores-sql/background-agent-store-sql.d.ts +11 -2
  625. package/dist/stores-sql/background-agent-store-sql.js +73 -20
  626. package/dist/stores-sql/checkpoint-store-sql.d.ts +33 -28
  627. package/dist/stores-sql/checkpoint-store-sql.js +75 -44
  628. package/dist/stores-sql/mailbox-store-sql.d.ts +7 -4
  629. package/dist/stores-sql/mailbox-store-sql.js +31 -32
  630. package/dist/stores-sql/pg-session-storage.d.ts +7 -5
  631. package/dist/stores-sql/pg-session-storage.js +54 -46
  632. package/dist/stores-sql/retention-store-sql.d.ts +87 -19
  633. package/dist/stores-sql/retention-store-sql.js +92 -27
  634. package/dist/stores-sql/session-policy-store-sql.d.ts +32 -10
  635. package/dist/stores-sql/session-policy-store-sql.js +44 -36
  636. package/dist/stores-sql/session-write-hooks.d.ts +12 -6
  637. package/dist/stores-sql/tidb-session-storage.d.ts +4 -4
  638. package/dist/stores-sql/tidb-session-storage.js +13 -8
  639. package/dist/stores-sql/tidb-session-store.d.ts +36 -17
  640. package/dist/stores-sql/tidb-session-store.js +69 -39
  641. package/dist/stores-sql/windowed-session-storage.d.ts +5 -0
  642. package/dist/stores-sql/windowed-session-storage.js +9 -0
  643. package/dist/submission-exit.d.ts +50 -0
  644. package/dist/submission-exit.js +108 -0
  645. package/dist/task-a2a.d.ts +1 -1
  646. package/dist/task-a2a.js +3 -3
  647. package/dist/task-cwd.d.ts +20 -0
  648. package/dist/task-cwd.js +8 -0
  649. package/dist/task-mcp.d.ts +1 -1
  650. package/dist/task-mcp.js +3 -3
  651. package/dist/task-settings.d.ts +14 -10
  652. package/dist/task-settings.js +18 -7
  653. package/dist/terminal.d.ts +25 -43
  654. package/dist/terminal.js +31 -11
  655. package/dist/tool-approval.d.ts +131 -129
  656. package/dist/tool-approval.js +189 -193
  657. package/dist/trace/core-keyset-guard.d.ts +13 -6
  658. package/dist/trace/core-vocab-wire.d.ts +95 -0
  659. package/dist/trace/core-vocab-wire.js +15 -0
  660. package/dist/trace/exit-seat.d.ts +30 -4
  661. package/dist/trace/exit-seat.js +40 -36
  662. package/dist/trace/extension-call-face.d.ts +3 -2
  663. package/dist/trace/extension-call-face.js +3 -1
  664. package/dist/trace/ledger-events.d.ts +4 -7
  665. package/dist/trace/ledger-sink.d.ts +1 -30
  666. package/dist/trace/ledger-sink.js +0 -11
  667. package/dist/trace/model-segment.d.ts +5 -5
  668. package/dist/trace/model-segment.js +5 -5
  669. package/dist/trace/project.d.ts +55 -42
  670. package/dist/trace/project.js +52 -19
  671. package/dist/trace/redact.d.ts +123 -27
  672. package/dist/trace/redact.js +880 -260
  673. package/dist/trace/self-minted-wire.d.ts +487 -19
  674. package/dist/trace/self-minted-wire.js +172 -23
  675. package/dist/trace/wire-projection-faces.d.ts +5 -6
  676. package/dist/trace/wire-projection-faces.js +2 -2
  677. package/dist/upstream-body.d.ts +23 -0
  678. package/dist/upstream-body.js +16 -0
  679. package/dist/url-refusal.d.ts +3 -3
  680. package/dist/url-refusal.js +11 -4
  681. package/dist/user-authored-text.d.ts +1 -1
  682. package/dist/user-input-ledger.d.ts +7 -8
  683. package/dist/user-input-ledger.js +1 -1
  684. package/dist/web-admin-client/apply-effective.d.ts +6 -3
  685. package/dist/web-admin-client/apply-effective.js +13 -16
  686. package/dist/web-admin-client/apply-ledger.d.ts +16 -7
  687. package/dist/web-admin-client/apply-ledger.js +5 -2
  688. package/dist/web-admin-client/center-request.d.ts +2 -2
  689. package/dist/web-admin-client/center-request.js +15 -15
  690. package/dist/web-admin-client/effective-keys.d.ts +1 -1
  691. package/dist/web-admin-client/effective-keys.js +1 -1
  692. package/dist/web-admin-client/entry-metadata.d.ts +8 -0
  693. package/dist/web-admin-client/entry-metadata.js +13 -0
  694. package/dist/web-admin-client/http-client.d.ts +1 -1
  695. package/dist/web-admin-client/http-client.js +23 -4
  696. package/dist/web-admin-client/mcp-revocation.d.ts +1 -1
  697. package/dist/web-admin-client/mcp-revocation.js +2 -1
  698. package/dist/web-admin-client/read-warnings.d.ts +1 -0
  699. package/dist/web-admin-client/read-warnings.js +1 -0
  700. package/dist/web-admin-client/restart-signal.js +8 -4
  701. package/dist/web-admin-client/skills-mcp.d.ts +2 -2
  702. package/dist/web-admin-client/types.d.ts +1 -2
  703. package/dist/workspace-space.d.ts +3 -2
  704. package/docs/DEVICE-EXECUTOR-PROTOCOL.md +4 -4
  705. package/package.json +6 -3
  706. package/scripts/drain-check-local.mjs +118 -147
  707. package/scripts/drain-check.mysql.sql +22 -2
  708. package/scripts/drain-check.pg.sql +22 -2
  709. package/wire-changes/server@7.148.0.json +1517 -0
  710. package/dist/http/memory-control-plane-corrupt-reply.d.ts +0 -25
  711. package/dist/http/memory-control-plane-corrupt-reply.js +0 -19
  712. package/dist/http/memory-layer-reply.d.ts +0 -30
  713. package/dist/http/memory-layer-reply.js +0 -24
  714. package/dist/lsp/e2b-bridge.d.ts +0 -57
  715. package/dist/lsp/e2b-bridge.js +0 -139
  716. package/dist/lsp/e2b-manager.d.ts +0 -93
  717. package/dist/lsp/e2b-manager.js +0 -178
  718. package/dist/lsp/lsp-frames.d.ts +0 -14
  719. package/dist/lsp/lsp-frames.js +0 -25
  720. package/dist/lsp/manager.d.ts +0 -129
  721. package/dist/lsp/manager.js +0 -127
  722. package/dist/lsp/types.d.ts +0 -12
  723. package/dist/lsp/types.js +0 -2
  724. package/dist/lsp/ws-transport.d.ts +0 -40
  725. package/dist/lsp/ws-transport.js +0 -210
@@ -0,0 +1,531 @@
1
+ /**
2
+ * 🔴 **属主律**([ref] RH-3 第二期):「这个调用方看得见 / 动得了这一行 run / 会话吗」只有**一只事实函数 + 一张政策表**。
3
+ *
4
+ * ## 律(三句)
5
+ * 1. **事实一处算**:调用方对这一行持有哪些资格 = {@link qualsOf}(调用方四格事实 + 部署两格 × 行格 → 资格集合)。别处不再判「是不是属主 / 是不是哨兵 /
6
+ * 是不是存量无主 / 是不是 fleet」—— 此前六只判官(run 面 / 会话面 / 无主臂 / 存量互认臂 / fleet 视域 / 各口手抄)各判一份。
7
+ * 2. **政策一张表**:每口放哪些资格 = {@link FACES} 一行(行资格 `grants` + fleet 资格 `fleet` + 运维位 `operator`)。可见 = 资格集合与该口三列之并有交
8
+ * ({@link visibleOn})—— 是集合交,不是首中:精确属主不会被别的分支吞,也没有「先判哪条臂」的序。
9
+ * 3. **看不见 ≡ 该口「没有这一行」的那一答**:每口登记一只投影 `projection`(闭集 {@link FaceProjection},码按口的既有契约:404 族 / 200 `{deleted:false}` /
10
+ * 409 / 401),「没有这一行」与「这一行你看不见」走同一只投影(下发口在 `http/owner-access.ts` 的 `refuse`,一只)。
11
+ *
12
+ * ## 调用方与证明(两种身份不并成一只)
13
+ * {@link Caller} 是**这一次判定**的调用方:一般口是这次请求验过的主体(`http/owner-access.ts` 的 `callerOf`);决定门(计划审阅)上是**这一次决定的证明**推出的主体
14
+ * —— 证明主体替换请求主体时,与主体相连的资格(`operator`)随之重算、fleet 两格清空(决定口不放 fleet;`callerOfDecision`)。
15
+ * 部署两格(`principalRequired` / `multiTenant`)随调用方一起铸(`multiTenant` 是 `j4` 一格的输入,`principalRequired` 是身份前门的输入),不在判定时另读配置。
16
+ *
17
+ * ## D1 列
18
+ * `fleet` 列是「只持部署 service 凭据、不报主体的调用方」(`deployment_token`)在哪些口算数的**唯一一处**:读面(run 轮询 / 事件 / 按幂等键;会话视图 / 记忆状态 /
19
+ * 头 / 事件流 / 执行放置;trace 五口)与存续面(fork / 删除 / 同步族)放,驱动面与键面不放。改成「部署凭据看不见任何用户行」= 把这一列里的 `deployment_token` 全删,
20
+ * 别处不动(列表的过滤参数随后由同一列派生)。
21
+ *
22
+ * ## 资源(五类同表)
23
+ run 行、会话行之外,**停驻行**(检查点 scope 列,`scope.*`)、**ask 行 / 活登记 / 活问**(`ask.*`)、**收件条目**(`inbox.*`)与**列表面**(`list.*` / `session.list`)
24
+ 同在 {@link FACES} 里:「这个调用方是不是这一行的属主」在全仓只有 `visibleOn(face, qualsOf(caller, cell))` 一种判法 —— 单行门、ask 门、检查点 scope 门
25
+ ({@link keyAdmits} / {@link keyAdmission}:行资格只有 owner / open 的面)、列表过滤({@link listFilterOf}:过滤参数从同一行的列派生)同读。
26
+ 行属主列的读数只经 {@link ownerCellOf}(铸 `DurableOwnerKey`),调用方与行属主只经 {@link sameParty} / {@link sameKey} 两座桥比。
27
+
28
+ 本模块是叶子:只 import 两个品牌与铸造口(`owner-brands.ts`)与行格型(`security.ts`,type-only),不读请求、不读店、不读配置 —— 判定是纯函数,读与发在 `http/owner-access.ts`。
29
+ */
30
+ import type { SessionOwnerCell } from "./security.js";
31
+ import { type DurableOwnerKey, type Subject } from "./owner-brands.js";
32
+ /** 行资格:调用方对**这一行**的关系(四格,见 {@link qualsOf})。 */
33
+ export type RowQual = "owner" | "open" | "j4" | "anon_tree";
34
+ /** fleet 资格:与行无关的调用方事实 —— 没有身份边界的部署(`dev_open`)、代部署本人说话的 service 凭据(`deployment_token`)、只读 trace 凭据(`trace_read`)。 */
35
+ export type FleetQual = "dev_open" | "deployment_token" | "trace_read";
36
+ /** 资格闭集:行资格 ∪ fleet 资格 ∪ 运维(`operator`,与行无关的调用方事实)。 */
37
+ export type Qual = RowQual | FleetQual | "operator";
38
+ /**
39
+ * 一次判定的调用方(四格事实 + 部署两格)。铸点闭集:`http/owner-access.ts` 的 `callerOf`(请求口)/ `callerOfDecision`(决定口),`security.ts` 的 `claimCallerOf`(认领面与协议口:不放 fleet、不放运维),别处不手搓。
40
+ * · `subject` —— 验过的主体(分区键,`owner-brands.ts`;`gatedSubject`;决定口是证明推出的人的主体);载体只带这一格,人经 `personOf(subject)` 读;
41
+ * · `operator` —— `explicitOperatorOk(personOf(subject))`(运维名册的唯一读法:读人,不读分区),与 `subject` 同一次铸;
42
+ * · `fleet` —— `dev_open`(装配没接任何身份来源)/ `deployment_token`(出示 service 凭据、不报主体、部署没声明关掉)/ 缺席;两来源互斥;
43
+ * · `traceRead` —— 出示了只读 trace 凭据;
44
+ * · `principalRequired` / `multiTenant` —— 部署形表的两只谓词(身份前门的条件 / `j4` 的条件)。
45
+ */
46
+ export interface Caller {
47
+ readonly subject: Subject | undefined;
48
+ readonly operator: boolean;
49
+ readonly fleet: "dev_open" | "deployment_token" | undefined;
50
+ readonly traceRead: boolean;
51
+ readonly principalRequired: boolean;
52
+ readonly multiTenant: boolean;
53
+ }
54
+ /** 单机形下 core 写侧 `spec.principal ?? "default"` 铸出的租户键(壳随请求带的那一个):`j4` 一格的调用方条件。它是单机形的真租户键,不是哨兵。 */
55
+ export declare const LEGACY_UNOWNED_AMNESTY_TENANT = "default";
56
+ /**
57
+ * 🔴 **调用方与行属主之间唯一的桥**:两个品牌在类型上不可比(`Subject === DurableOwnerKey` 编译红),只在这里按字节比。调用方一侧是**主体**(分区键):
58
+ * 人不上桥(`Person` 收不进这只形参)—— 带场景的请求只看得见它自己那一格分区里的行。
59
+ * 全仓「调用方 vs 行属主」的比较只经这一只(普查门 ② 的允许集只有本函数与 {@link qualsOf} 的体)。
60
+ */
61
+ export declare function sameParty(subject: Subject, owner: DurableOwnerKey): boolean;
62
+ /**
63
+ * 🔴 **存储键的桥**(null 同 null):一份落下的属主键(`null` = 匿名写下的那一格)是不是这位调用方的键(调用方的键 = 主体,没有主体 = `null`)。
64
+ * 与 {@link sameParty} 的差只在两侧缺席:这里缺席只等于缺席(匿名写下的锚只投给匿名读者,有主体的读者看不见它;有主体写下的只投给那一位)——
65
+ * 这是「行属主将成存储键」的读法(回退锚、同步暂存句柄),不是可见性(可见性的无主开放臂是面表的 `open` 格,走 {@link qualsOf})。
66
+ */
67
+ export declare function sameKey(subject: Subject | null | undefined, key: DurableOwnerKey | null): boolean;
68
+ /**
69
+ * 🔴 **属主列读数的唯一铸法**(`DurableOwnerKey` 铸点之一;另一只是 `security.ts` 的 `decodeCheckpointScope`):行上 / 条目上 / 锚上读出的那一格属主,
70
+ * `null` = 无主(匿名写下)。run / 会话 / ask 行、活登记、活问、收件条目、回退锚、同步暂存句柄的属主都经这一只成键。
71
+ */
72
+ export declare function ownerKeyOf(persisted: string | null): DurableOwnerKey | null;
73
+ /**
74
+ * 一格属主读数的行格(不问 placed 位:run 行 / ask 行 / 活登记 / 收件条目恒非 placed;会话行的 placed 位由 `security.ts` 的 `sessionOwnerCellOf` 另问店):
75
+ * 串 = 有主,`null` = 普通无主行,`undefined` = 属主格坏了(盘上少了这个键)⇒ 坏格(行资格一格不给,fail-closed,不猜成无主)。
76
+ */
77
+ export declare function ownerCellOf(owner: string | null | undefined): SessionOwnerCell | undefined;
78
+ /**
79
+ * **收纯串的协议内部口**的主体读法(恢复管线;不是铸点):活登记的应答口 / 按问读口(`tool-approval.ts` 协调器)、活问的应答口(`elicitation.ts` / `question.ts`)、
80
+ * 迟到决定的赎回席(`http/approval-sweeps.ts`)、停驻完成收件箱的排空门、peer 目录席 —— 这几扇口经纯串收「上游已铸的那一只主体」(HTTP 路由层的 `gatedSubject`
81
+ * 读数、续跑腿交来的 run 属主、引擎交来的 scope)。串就是一只已落成字节的属主键,按 {@link ownerKeyOf} → `partsOf` 恢复(坏形的 `_scn:` 串响亮抛),
82
+ * 不重判保留前缀 / 在册 / 宽度(那三判只在外部管线)。公开面改收 `Subject` 品牌是另一车(这几扇口的测试调用面数以百计)。
83
+ */
84
+ export declare function recoveredSubject(persisted: string): Subject;
85
+ export declare function recoveredSubject(persisted: string | null | undefined): Subject | undefined;
86
+ /**
87
+ * 🔴 **调用方对一行持有的全部资格**(唯一事实函数)。`cell` = 行格(`SessionOwnerCell`:有主 / 无主 + 是否委派子代 placed 行;run 行恒 `placed: false`);
88
+ * `undefined` = 行在、属主格坏了(run 行盘上少了 `owner` 键)⇒ 一个行资格都不给(fail-closed,不猜成无主),与行无关的资格照给。
89
+ * · `owner` —— 有主 ∧ 同一主体({@link sameParty});
90
+ * · `open` —— 无主 ∧ 不是 placed 行(普通无主行对任何调用方开放;placed 行是别人那棵委派树的子代转录,不是公共行);
91
+ * · `j4` —— `open` ∧ 单机形(`¬multiTenant`)∧ 调用方恰为 {@link LEGACY_UNOWNED_AMNESTY_TENANT}(存量无主行判给单机唯一的那位用户);
92
+ * · `anon_tree` —— 无主 ∧ placed ∧ 调用方是 fleet(委派树的子代只对代部署说话的调用方开放);
93
+ * · `operator` / `dev_open` / `deployment_token` / `trace_read` —— 调用方事实,与行无关。
94
+ */
95
+ export declare function qualsOf(caller: Caller, cell: SessionOwnerCell | undefined): ReadonlySet<Qual>;
96
+ /**
97
+ * 身份前门(闭集):没有主体、也不持有本口 `fleet` 列里任何一格的调用方,在读行之前答什么。
98
+ * · `P401` —— 部署要求主体时答主体拒(`sendPrincipalRefusal`:`auth.principal_required` / 证明验不过 `principal_unverified`);不要求时不拦;
99
+ * · `I401` —— 一律答 401 `auth.unauthorized`(identity 面):这一口要一位验过的调用方或 fleet;
100
+ * · `I401r` —— 部署要求主体时答 401 `auth.unauthorized`(identity 面);不要求时不拦;
101
+ * · `none` —— 本口没有身份前门(认领面由提交管线自己的门先判 / 决定口由证明门判 / 协议口由各自入口判)。
102
+ */
103
+ export type FaceDoor = "P401" | "I401" | "I401r" | "none";
104
+ /**
105
+ * 「没有这一行 / 看不见这一行」的那一答(闭集;码与句是各口既有的契约,本表只登记)。
106
+ * · `run_missing` —— 404 `not_found.run`,句 = `runNotFoundMessage(id)`(没有路径 id 的口取常量句);
107
+ * · `task_missing` —— 404 `not_found.run` "task not found"(trace 五口 / 续跑 / preempt 的既有句);
108
+ * · `decision_missing` —— 直连门上 401 `principal_unverified` "principal proof required"(查无此行与坏证明同体),否则 404 `not_found.run` "task not found";
109
+ * · `session_missing` —— 404 `not_found.session` "session not found";
110
+ * · `exemption_missing` —— 404 `not_found.session` "not found"(审批豁免面的既有句);
111
+ * · `deleted_false` —— 200 `{deleted:false}`(删除口幂等形:没删到东西);
112
+ * · `run_exists` —— 409 `conflict.run_exists`(提交重放:这把键 / 这只 taskId 已被占用);
113
+ * · `attach_absent` —— 404 `resume.session_not_found`「requireExistingSession: session does not exist …」(提交挂接:认领面没有「没有就建」可镜像,占用 = 不存在那一体);
114
+ * · `omit` —— 本模块不下发:调用点把「看不见」当「没有」走它自己的缺席路径(协议口的 RpcError / leader 404 / 嵌套可选字段省略)。
115
+ */
116
+ export type FaceProjection = "run_missing" | "task_missing" | "decision_missing" | "session_missing" | "exemption_missing" | "deleted_false" | "run_exists" | "attach_absent" | "omit";
117
+ /** 属主读不出(会话店交出具名拒「属主读不出」)时本口怎么读:`fold` = 读作没有这一行(同一只投影,原故障进运维日志一行);`raise` = 原故障照常上抛。 */
118
+ export type FaceUnreadable = "fold" | "raise";
119
+ /**
120
+ * 无主行的 placed 位要读、而这只会话的**存档读不出**(placed 位住在存档行头 —— 本机文件后端;core `SessionError` 的两个结构码)时本口怎么读:
121
+ * · `raise` —— 原故障照常上抛(500 `corrupt_session`;与读存档内容的口同码);
122
+ * · `ordinary` —— 读作普通无主行。只给「普通无主行这一答对两种假设都不放出内容」的口:认领面(放给执行席判目标合法性,存档的故障由读存档那一步按腿答)、
123
+ * 策略口(无主行在这里只有 409 一答 —— 键列:无主行没有那把存储键,placed 行同样无主)。
124
+ * 只管「存档读不出」这一件;店的连接类故障一律照常上抛(各口按店故障的码族答,如同步族 503 transient)。
125
+ */
126
+ export type FacePlacementUnreadable = "raise" | "ordinary";
127
+ export interface Face {
128
+ /** 行的种类:run / 会话行(路由经 `http/owner-access.ts` 的门判)、停驻行 scope 列(`scope`)、ask 行 / 活登记 / 活问(`ask`)、收件条目(`inbox`)、列表面(`list`)。 */
129
+ readonly resource: "run" | "session" | "scope" | "ask" | "inbox" | "list";
130
+ /** 行资格里本口放哪几格。 */
131
+ readonly grants: readonly RowQual[];
132
+ /** fleet 资格里本口放哪几格(D1 列,见模块头注)。 */
133
+ readonly fleet: readonly FleetQual[];
134
+ /** 显式运维能不能越过属主看 / 动这一行。 */
135
+ readonly operator: boolean;
136
+ readonly door: FaceDoor;
137
+ readonly projection: FaceProjection;
138
+ readonly unreadable: FaceUnreadable;
139
+ readonly placementUnreadable: FacePlacementUnreadable;
140
+ }
141
+ /**
142
+ * 🔴 **面表**(闭集;每口一行)。行名 = `资源.用途`;路由经 `http/owner-access.ts` 的 `ROUTE_FACES`(路由 id → 面)取面,路由自己不挑词。
143
+ * 用途:读(看内容)/ 驱动(动内容,运维可越)/ 存续(fork / 删除 / 同步,改存续或归属)/ 键(行属主将落成存储键:策略、通知)/ 认领(没有就建)/ 协议口(A2A、leader、
144
+ * 提交重放、preempt、嵌套可选读)。
145
+ */
146
+ export declare const FACES: {
147
+ readonly "run.read": {
148
+ readonly resource: "run";
149
+ readonly grants: readonly ["owner", "open"];
150
+ readonly fleet: readonly ["dev_open", "deployment_token"];
151
+ readonly operator: false;
152
+ readonly door: "P401";
153
+ readonly projection: "run_missing";
154
+ readonly unreadable: "raise";
155
+ readonly placementUnreadable: "raise";
156
+ };
157
+ readonly "run.drive": {
158
+ readonly resource: "run";
159
+ readonly grants: readonly ["owner", "open"];
160
+ readonly fleet: readonly [];
161
+ readonly operator: false;
162
+ readonly door: "P401";
163
+ readonly projection: "run_missing";
164
+ readonly unreadable: "raise";
165
+ readonly placementUnreadable: "raise";
166
+ };
167
+ readonly "run.supervise": {
168
+ readonly resource: "run";
169
+ readonly grants: readonly ["owner", "open"];
170
+ readonly fleet: readonly [];
171
+ readonly operator: true;
172
+ readonly door: "P401";
173
+ readonly projection: "run_missing";
174
+ readonly unreadable: "raise";
175
+ readonly placementUnreadable: "raise";
176
+ };
177
+ readonly "run.resume": {
178
+ readonly resource: "run";
179
+ readonly grants: readonly ["owner", "open"];
180
+ readonly fleet: readonly [];
181
+ readonly operator: true;
182
+ readonly door: "P401";
183
+ readonly projection: "task_missing";
184
+ readonly unreadable: "raise";
185
+ readonly placementUnreadable: "raise";
186
+ };
187
+ readonly "run.decision": {
188
+ readonly resource: "run";
189
+ readonly grants: readonly ["owner", "open"];
190
+ readonly fleet: readonly [];
191
+ readonly operator: true;
192
+ readonly door: "none";
193
+ readonly projection: "decision_missing";
194
+ readonly unreadable: "raise";
195
+ readonly placementUnreadable: "raise";
196
+ };
197
+ readonly "run.trace": {
198
+ readonly resource: "run";
199
+ readonly grants: readonly ["owner", "open"];
200
+ readonly fleet: readonly ["dev_open", "deployment_token", "trace_read"];
201
+ readonly operator: false;
202
+ readonly door: "I401";
203
+ readonly projection: "task_missing";
204
+ readonly unreadable: "raise";
205
+ readonly placementUnreadable: "raise";
206
+ };
207
+ readonly "run.preempt": {
208
+ readonly resource: "run";
209
+ readonly grants: readonly ["owner", "open"];
210
+ readonly fleet: readonly [];
211
+ readonly operator: true;
212
+ readonly door: "P401";
213
+ readonly projection: "task_missing";
214
+ readonly unreadable: "raise";
215
+ readonly placementUnreadable: "raise";
216
+ };
217
+ readonly "run.replay": {
218
+ readonly resource: "run";
219
+ readonly grants: readonly ["owner", "open"];
220
+ readonly fleet: readonly [];
221
+ readonly operator: false;
222
+ readonly door: "none";
223
+ readonly projection: "run_exists";
224
+ readonly unreadable: "raise";
225
+ readonly placementUnreadable: "raise";
226
+ };
227
+ readonly "run.a2a": {
228
+ readonly resource: "run";
229
+ readonly grants: readonly ["owner", "open"];
230
+ readonly fleet: readonly [];
231
+ readonly operator: false;
232
+ readonly door: "none";
233
+ readonly projection: "omit";
234
+ readonly unreadable: "raise";
235
+ readonly placementUnreadable: "raise";
236
+ };
237
+ readonly "run.leader": {
238
+ readonly resource: "run";
239
+ readonly grants: readonly ["owner", "open"];
240
+ readonly fleet: readonly [];
241
+ readonly operator: false;
242
+ readonly door: "none";
243
+ readonly projection: "omit";
244
+ readonly unreadable: "raise";
245
+ readonly placementUnreadable: "raise";
246
+ };
247
+ readonly "run.preview": {
248
+ readonly resource: "run";
249
+ readonly grants: readonly ["owner", "open"];
250
+ readonly fleet: readonly [];
251
+ readonly operator: true;
252
+ readonly door: "none";
253
+ readonly projection: "omit";
254
+ readonly unreadable: "raise";
255
+ readonly placementUnreadable: "raise";
256
+ };
257
+ readonly "run.panel": {
258
+ readonly resource: "run";
259
+ readonly grants: readonly ["owner", "open"];
260
+ readonly fleet: readonly ["dev_open"];
261
+ readonly operator: true;
262
+ readonly door: "none";
263
+ readonly projection: "omit";
264
+ readonly unreadable: "raise";
265
+ readonly placementUnreadable: "raise";
266
+ };
267
+ readonly "run.anchor": {
268
+ readonly resource: "run";
269
+ readonly grants: readonly ["owner", "open"];
270
+ readonly fleet: readonly [];
271
+ readonly operator: false;
272
+ readonly door: "none";
273
+ readonly projection: "omit";
274
+ readonly unreadable: "raise";
275
+ readonly placementUnreadable: "raise";
276
+ };
277
+ readonly "session.read": {
278
+ readonly resource: "session";
279
+ readonly grants: readonly ["owner", "open", "anon_tree"];
280
+ readonly fleet: readonly ["dev_open", "deployment_token"];
281
+ readonly operator: false;
282
+ readonly door: "P401";
283
+ readonly projection: "session_missing";
284
+ readonly unreadable: "fold";
285
+ readonly placementUnreadable: "raise";
286
+ };
287
+ readonly "session.placement": {
288
+ readonly resource: "session";
289
+ readonly grants: readonly ["owner", "open", "anon_tree"];
290
+ readonly fleet: readonly ["dev_open", "deployment_token"];
291
+ readonly operator: true;
292
+ readonly door: "P401";
293
+ readonly projection: "session_missing";
294
+ readonly unreadable: "fold";
295
+ readonly placementUnreadable: "raise";
296
+ };
297
+ readonly "session.erase": {
298
+ readonly resource: "session";
299
+ readonly grants: readonly ["owner", "open", "anon_tree"];
300
+ readonly fleet: readonly ["dev_open"];
301
+ readonly operator: false;
302
+ readonly door: "P401";
303
+ readonly projection: "session_missing";
304
+ readonly unreadable: "fold";
305
+ readonly placementUnreadable: "raise";
306
+ };
307
+ readonly "session.act": {
308
+ readonly resource: "session";
309
+ readonly grants: readonly ["owner", "open", "anon_tree"];
310
+ readonly fleet: readonly ["dev_open"];
311
+ readonly operator: false;
312
+ readonly door: "P401";
313
+ readonly projection: "session_missing";
314
+ readonly unreadable: "raise";
315
+ readonly placementUnreadable: "raise";
316
+ };
317
+ readonly "session.supervise": {
318
+ readonly resource: "session";
319
+ readonly grants: readonly ["owner", "open", "anon_tree"];
320
+ readonly fleet: readonly ["dev_open"];
321
+ readonly operator: true;
322
+ readonly door: "P401";
323
+ readonly projection: "session_missing";
324
+ readonly unreadable: "raise";
325
+ readonly placementUnreadable: "raise";
326
+ };
327
+ readonly "session.exemption": {
328
+ readonly resource: "session";
329
+ readonly grants: readonly ["owner", "open", "anon_tree"];
330
+ readonly fleet: readonly ["dev_open"];
331
+ readonly operator: true;
332
+ readonly door: "none";
333
+ readonly projection: "exemption_missing";
334
+ readonly unreadable: "raise";
335
+ readonly placementUnreadable: "raise";
336
+ };
337
+ readonly "session.own": {
338
+ readonly resource: "session";
339
+ readonly grants: readonly ["owner", "j4"];
340
+ readonly fleet: readonly ["dev_open", "deployment_token"];
341
+ readonly operator: false;
342
+ readonly door: "I401";
343
+ readonly projection: "session_missing";
344
+ readonly unreadable: "raise";
345
+ readonly placementUnreadable: "raise";
346
+ };
347
+ readonly "session.delete": {
348
+ readonly resource: "session";
349
+ readonly grants: readonly ["owner", "j4"];
350
+ readonly fleet: readonly ["dev_open", "deployment_token"];
351
+ readonly operator: false;
352
+ readonly door: "I401";
353
+ readonly projection: "deleted_false";
354
+ readonly unreadable: "raise";
355
+ readonly placementUnreadable: "raise";
356
+ };
357
+ readonly "session.policy": {
358
+ readonly resource: "session";
359
+ readonly grants: readonly ["owner", "open", "anon_tree"];
360
+ readonly fleet: readonly ["dev_open"];
361
+ readonly operator: true;
362
+ readonly door: "I401r";
363
+ readonly projection: "session_missing";
364
+ readonly unreadable: "raise";
365
+ readonly placementUnreadable: "ordinary";
366
+ };
367
+ readonly "session.notify": {
368
+ readonly resource: "session";
369
+ readonly grants: readonly ["owner", "open", "anon_tree"];
370
+ readonly fleet: readonly ["dev_open"];
371
+ readonly operator: true;
372
+ readonly door: "P401";
373
+ readonly projection: "session_missing";
374
+ readonly unreadable: "raise";
375
+ readonly placementUnreadable: "raise";
376
+ };
377
+ readonly "session.attach": {
378
+ readonly resource: "session";
379
+ readonly grants: readonly ["owner", "open"];
380
+ readonly fleet: readonly [];
381
+ readonly operator: false;
382
+ readonly door: "none";
383
+ readonly projection: "attach_absent";
384
+ readonly unreadable: "raise";
385
+ readonly placementUnreadable: "ordinary";
386
+ };
387
+ readonly "scope.decide": {
388
+ readonly resource: "scope";
389
+ readonly grants: readonly ["owner", "open"];
390
+ readonly fleet: readonly [];
391
+ readonly operator: true;
392
+ readonly door: "none";
393
+ readonly projection: "omit";
394
+ readonly unreadable: "raise";
395
+ readonly placementUnreadable: "raise";
396
+ };
397
+ readonly "ask.decide": {
398
+ readonly resource: "ask";
399
+ readonly grants: readonly ["owner", "open"];
400
+ readonly fleet: readonly [];
401
+ readonly operator: true;
402
+ readonly door: "none";
403
+ readonly projection: "omit";
404
+ readonly unreadable: "raise";
405
+ readonly placementUnreadable: "raise";
406
+ };
407
+ readonly "ask.answer": {
408
+ readonly resource: "ask";
409
+ readonly grants: readonly ["owner", "open"];
410
+ readonly fleet: readonly [];
411
+ readonly operator: false;
412
+ readonly door: "none";
413
+ readonly projection: "omit";
414
+ readonly unreadable: "raise";
415
+ readonly placementUnreadable: "raise";
416
+ };
417
+ readonly "inbox.drain": {
418
+ readonly resource: "inbox";
419
+ readonly grants: readonly ["owner", "open"];
420
+ readonly fleet: readonly [];
421
+ readonly operator: false;
422
+ readonly door: "none";
423
+ readonly projection: "omit";
424
+ readonly unreadable: "raise";
425
+ readonly placementUnreadable: "raise";
426
+ };
427
+ readonly "list.read": {
428
+ readonly resource: "list";
429
+ readonly grants: readonly ["owner"];
430
+ readonly fleet: readonly ["dev_open", "deployment_token", "trace_read"];
431
+ readonly operator: false;
432
+ readonly door: "I401";
433
+ readonly projection: "omit";
434
+ readonly unreadable: "raise";
435
+ readonly placementUnreadable: "raise";
436
+ };
437
+ readonly "session.list": {
438
+ readonly resource: "list";
439
+ readonly grants: readonly ["owner", "j4"];
440
+ readonly fleet: readonly ["dev_open", "deployment_token", "trace_read"];
441
+ readonly operator: false;
442
+ readonly door: "I401";
443
+ readonly projection: "omit";
444
+ readonly unreadable: "raise";
445
+ readonly placementUnreadable: "raise";
446
+ };
447
+ };
448
+ export type FaceId = keyof typeof FACES;
449
+ export type RunFaceId = {
450
+ [F in FaceId]: (typeof FACES)[F]["resource"] extends "run" ? F : never;
451
+ }[FaceId];
452
+ export type SessionFaceId = {
453
+ [F in FaceId]: (typeof FACES)[F]["resource"] extends "session" ? F : never;
454
+ }[FaceId];
455
+ export type ListFaceId = {
456
+ [F in FaceId]: (typeof FACES)[F]["resource"] extends "list" ? F : never;
457
+ }[FaceId];
458
+ /**
459
+ * **只看「验过的主体 + 运维位」的面**(派生型:行资格 ⊆ {owner, open} ∧ fleet 列空):这几只面的可见性与部署形、fleet 事实都无关 ——
460
+ * 面表里给其中一行加上 `j4` / 任一 fleet 格,它就掉出本型,{@link keyAdmits} 的调用点编译红(那时它要一只完整的 {@link Caller})。
461
+ */
462
+ export type KeyFaceId = {
463
+ [F in FaceId]: (typeof FACES)[F]["grants"][number] extends "owner" | "open" ? ((typeof FACES)[F]["fleet"] extends readonly [] ? F : never) : never;
464
+ }[FaceId];
465
+ /** 本口对这份资格集合可见吗 —— 集合交:`quals ∩ (grants ∪ fleet ∪ {operator 若本口放})` 非空。 */
466
+ export declare function visibleOn(face: FaceId, quals: ReadonlySet<Qual>): boolean;
467
+ /**
468
+ * 🔴 **无主行的 placed 位什么时候不问店**:只在两种假设(普通无主行 / 委派子代的 placed 行)下本口对这只调用方**都放行**的时候 —— 交回 placed 假设的行格
469
+ * (按较窄的那一形记,不替行声称它是公共行),调用点不读店;否则交回 `undefined`,调用点去读。
470
+ * 为什么都放行才不读:placed 位住在会话存档的行头(文件后端),存档读不出那一读就拒 —— 用不上它也放得行的调用方(fleet、运维旁路、普通与 placed 同放的口)
471
+ * 不为一只用不上的读答 500(契约:只判归属的口门不碰存档)。为什么都拒也照读:那一读的店故障要按店故障的码族答(如同步族 503 transient,客户端重试),
472
+ * 不能被「没有这一行」(404,客户端当不存在)盖住 —— 不读只许省掉一次放行,不许改掉一个拒的码。读的故障怎么答见面表的 `placementUnreadable` 列。
473
+ */
474
+ export declare function ownerlessCellWithoutRead(face: FaceId, caller: Caller): SessionOwnerCell | undefined;
475
+ /** 普通无主行的行格(面表 `placementUnreadable: "ordinary"` 的口在存档读不出时读作它;停驻行匿名 scope 的行格)。 */
476
+ export declare const OWNERLESS_ORDINARY_CELL: SessionOwnerCell;
477
+ /** {@link KeyFaceId} 的调用方:只要验过的主体与运维位(`Caller` 结构上就是它 —— 有完整调用方的口直接交 `Caller`)。 */
478
+ export interface KeyCaller {
479
+ readonly subject: Subject | undefined;
480
+ readonly operator: boolean;
481
+ }
482
+ /**
483
+ * 🔴 **只看主体的面上的承认**(检查点 scope / ask / 收件条目):`"row"` = 经行资格(属主 ∨ 无主开放),`"operator"` = 经本口的运维越域,`undefined` = 看不见。
484
+ * 事实仍只由 {@link qualsOf} 算、政策仍只读 {@link FACES} 那一行 —— 本函数只是把 {@link KeyFaceId} 的调用方补成一只完整调用方:部署两格对这几只面不改判
485
+ * (它们不放 `j4`,{@link KeyFaceId} 在型上保证),按最窄形填;fleet / 只读 trace 两格恒缺(这几只面的 fleet 列空)。
486
+ * 「经哪一格」只有一处读:ask 决定的出处 `via`(经行资格 ⇒ 属主自决;经运维 ⇒ 运维代决)读它,不再各自重判「是不是属主 / 是不是运维」。
487
+ */
488
+ export declare function keyAdmission(face: KeyFaceId, who: KeyCaller, cell: SessionOwnerCell | undefined): "row" | "operator" | undefined;
489
+ /** {@link keyAdmission} 的可见性读法:看得见吗(看不见 ≡ 没有,调用点按它自己的缺席形答)。 */
490
+ export declare function keyAdmits(face: KeyFaceId, who: KeyCaller, cell: SessionOwnerCell | undefined): boolean;
491
+ /**
492
+ * 一只调用方在一口上的**属主视域**:`fleetWide` = 不钉人(持有本口 fleet 列的一格);否则 `gateOwner` = 钉住的那位验过的主体(分区键;`null` = 没有可用身份,调用点按它的
493
+ * 身份前门答);`includeUnowned` = 钉人时并上无主行(本口的行资格里有一格对「普通无主行」成立 —— 今天只有 `session.list` 的 `j4`)。
494
+ */
495
+ export interface ListFilter {
496
+ readonly fleetWide: boolean;
497
+ readonly gateOwner: Subject | null;
498
+ readonly includeUnowned: boolean;
499
+ }
500
+ /**
501
+ * 🔴 **列表口的属主过滤只有这一只**(列表读的 SQL 过滤参数从面表派生,不在路由里各写一份):舰队流、会话列表、发件链接列表、后台名册、用量三口、
502
+ * `/v1/tasks/source-summary`、trace 列表、项目登记簿、peer 目录席,以及同步族的暂存句柄归属(同步面的视域)同读。
503
+ * 派生:fleet 列有一格成立 ⇒ 不钉人;否则钉主体;行资格里对普通无主行成立的格({@link qualsOf} 对无主普通行算)⇒ 并上无主行(store 的 `owner IS NULL` 谓词)。
504
+ * 列表 SQL 只表达「属主 = 我 ∨ 属主为空」两格 ⇒ 列表面的行资格只许 `owner` 与无主格(`j4` / `open`);placed 位与哨兵格在列表上表达不了,结构钉在 `test/owner-access.test.ts`。
505
+ */
506
+ export declare function listFilterOf(face: FaceId, caller: Caller): ListFilter;
507
+ /** 调用方持有本口 `fleet` 列里的某一格吗 —— 持有则可见与行无关(身份前门放过它;trace 口据此不做逐 id 读)。 */
508
+ export declare function fleetOn(face: FaceId, caller: Caller): boolean;
509
+ /**
510
+ * 承认:门放过的那一行 + 调用方对**这一行**持有的全部资格(含与行无关的 `operator` / fleet 两格)—— 不是「放行的那一格」。
511
+ * 无主行的 placement 没读时(它改不了本口的判,见 {@link ownerlessCellWithoutRead}),行资格按 placed 假设记;与行无关的格恒全。
512
+ * 下游要「按哪一格派生」的(fork 新属主 / 会话断言的运维旁路)读 `quals`,不再各自重判运维或 fleet。
513
+ * 再读(两读之间行可能易主)= 对新读数再判一次同一只({@link qualsOf} + {@link visibleOn}),交回新的资格集合;住客(化身)绑定不在这里 ——
514
+ * 各写口既有的 CAS(行期望 / `expectedOwner` / 执行席住客复核)是它唯一的真源。
515
+ */
516
+ export interface Admitted<R extends OwnedReading> {
517
+ readonly row: OwnedRow<R>;
518
+ readonly quals: ReadonlySet<Qual>;
519
+ }
520
+ /** 门读的那一读的最小形:带属主那一格(`null` = 无主)。 */
521
+ export type OwnedReading = {
522
+ readonly owner: string | null;
523
+ };
524
+ /**
525
+ * 🔴 **门放过的行**:属主那一格带 `DurableOwnerKey` 品牌(铸点 = 存取器判行处,经 `owner-brands.ts` 的 `mintOwnedRow`:同一个行对象原样交出,不展开 —— 行上可能有惰性读的格)。路由拿到的承认行上,
526
+ * 属主与调用方身份(`Subject`)直接比较编译红 —— 要比只经 {@link sameParty} / {@link sameKey}。
527
+ */
528
+ export type OwnedRow<R extends OwnedReading> = R & {
529
+ readonly owner: DurableOwnerKey | null;
530
+ };
531
+ //# sourceMappingURL=owner-faces.d.ts.map