@zhin.js/agent 1.1.31 → 1.1.33

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 (1095) hide show
  1. package/README.md +11 -23
  2. package/lib/config/deprecated-agent-binding-keys.d.ts +21 -0
  3. package/lib/config/deprecated-agent-binding-keys.d.ts.map +1 -0
  4. package/lib/config/deprecated-agent-binding-keys.js +37 -0
  5. package/lib/config/deprecated-agent-binding-keys.js.map +1 -0
  6. package/lib/config/deprecated-agent-keys.d.ts +16 -0
  7. package/lib/config/deprecated-agent-keys.d.ts.map +1 -0
  8. package/lib/config/deprecated-agent-keys.js +23 -0
  9. package/lib/config/deprecated-agent-keys.js.map +1 -0
  10. package/lib/config/fix-ai-config.d.ts.map +1 -1
  11. package/lib/config/fix-ai-config.js +16 -20
  12. package/lib/config/fix-ai-config.js.map +1 -1
  13. package/lib/config/index.d.ts +4 -1
  14. package/lib/config/index.d.ts.map +1 -1
  15. package/lib/config/index.js +3 -1
  16. package/lib/config/index.js.map +1 -1
  17. package/lib/config/model-harness-runtime.d.ts.map +1 -1
  18. package/lib/config/model-harness-runtime.js +47 -5
  19. package/lib/config/model-harness-runtime.js.map +1 -1
  20. package/lib/config/model-harness.d.ts +30 -0
  21. package/lib/config/model-harness.d.ts.map +1 -1
  22. package/lib/config/normalize-ai-config.d.ts.map +1 -1
  23. package/lib/config/normalize-ai-config.js +10 -2
  24. package/lib/config/normalize-ai-config.js.map +1 -1
  25. package/lib/config/perception-config.d.ts +36 -0
  26. package/lib/config/perception-config.d.ts.map +1 -0
  27. package/lib/config/perception-config.js +55 -0
  28. package/lib/config/perception-config.js.map +1 -0
  29. package/lib/config/types.d.ts +13 -1
  30. package/lib/config/types.d.ts.map +1 -1
  31. package/lib/config/types.js.map +1 -1
  32. package/lib/config/validate-ai-config.d.ts.map +1 -1
  33. package/lib/config/validate-ai-config.js +0 -19
  34. package/lib/config/validate-ai-config.js.map +1 -1
  35. package/lib/config/zhin-agent-config.d.ts +41 -1
  36. package/lib/config/zhin-agent-config.d.ts.map +1 -1
  37. package/lib/config/zhin-agent-defaults.d.ts.map +1 -1
  38. package/lib/config/zhin-agent-defaults.js +7 -4
  39. package/lib/config/zhin-agent-defaults.js.map +1 -1
  40. package/lib/config/zhin-agent-dependencies.d.ts +5 -0
  41. package/lib/config/zhin-agent-dependencies.d.ts.map +1 -1
  42. package/lib/context/context-system.d.ts +4 -0
  43. package/lib/context/context-system.d.ts.map +1 -1
  44. package/lib/context/context-system.js +2 -0
  45. package/lib/context/context-system.js.map +1 -1
  46. package/lib/context/model-resolver.d.ts +1 -0
  47. package/lib/context/model-resolver.d.ts.map +1 -1
  48. package/lib/context/model-resolver.js +4 -1
  49. package/lib/context/model-resolver.js.map +1 -1
  50. package/lib/context/turn-envelope.d.ts +4 -0
  51. package/lib/context/turn-envelope.d.ts.map +1 -1
  52. package/lib/context/turn-envelope.js +4 -0
  53. package/lib/context/turn-envelope.js.map +1 -1
  54. package/lib/core/agent-core-run.d.ts +22 -1
  55. package/lib/core/agent-core-run.d.ts.map +1 -1
  56. package/lib/core/agent-core-run.js +369 -51
  57. package/lib/core/agent-core-run.js.map +1 -1
  58. package/lib/core/agent-core.d.ts +5 -0
  59. package/lib/core/agent-core.d.ts.map +1 -1
  60. package/lib/core/agent-core.js +5 -0
  61. package/lib/core/agent-core.js.map +1 -1
  62. package/lib/core/agent-loop-standalone.d.ts +6 -0
  63. package/lib/core/agent-loop-standalone.d.ts.map +1 -1
  64. package/lib/core/agent-loop-standalone.js +7 -2
  65. package/lib/core/agent-loop-standalone.js.map +1 -1
  66. package/lib/core/agent-loop-turn.d.ts +5 -0
  67. package/lib/core/agent-loop-turn.d.ts.map +1 -1
  68. package/lib/core/agent-loop-turn.js +5 -0
  69. package/lib/core/agent-loop-turn.js.map +1 -1
  70. package/lib/core/contracts.d.ts +1 -1
  71. package/lib/core/contracts.js +1 -1
  72. package/lib/core/exhausted-turn-reply.d.ts +33 -0
  73. package/lib/core/exhausted-turn-reply.d.ts.map +1 -0
  74. package/lib/core/exhausted-turn-reply.js +54 -0
  75. package/lib/core/exhausted-turn-reply.js.map +1 -0
  76. package/lib/core/exploration-budget.d.ts +17 -0
  77. package/lib/core/exploration-budget.d.ts.map +1 -0
  78. package/lib/core/exploration-budget.js +41 -0
  79. package/lib/core/exploration-budget.js.map +1 -0
  80. package/lib/core/index.d.ts +3 -0
  81. package/lib/core/index.d.ts.map +1 -1
  82. package/lib/core/index.js +2 -0
  83. package/lib/core/index.js.map +1 -1
  84. package/lib/core/missing-tool-resolver.d.ts +17 -0
  85. package/lib/core/missing-tool-resolver.d.ts.map +1 -0
  86. package/lib/core/missing-tool-resolver.js +21 -0
  87. package/lib/core/missing-tool-resolver.js.map +1 -0
  88. package/lib/core/progress-reporter.d.ts +46 -0
  89. package/lib/core/progress-reporter.d.ts.map +1 -0
  90. package/lib/core/progress-reporter.js +100 -0
  91. package/lib/core/progress-reporter.js.map +1 -0
  92. package/lib/core/tool-calls-user-format.d.ts +5 -0
  93. package/lib/core/tool-calls-user-format.d.ts.map +1 -1
  94. package/lib/core/tool-calls-user-format.js +23 -3
  95. package/lib/core/tool-calls-user-format.js.map +1 -1
  96. package/lib/core/turn-event-mapper.d.ts.map +1 -1
  97. package/lib/core/turn-event-mapper.js +2 -0
  98. package/lib/core/turn-event-mapper.js.map +1 -1
  99. package/lib/core/turn-progress.d.ts +75 -0
  100. package/lib/core/turn-progress.d.ts.map +1 -0
  101. package/lib/core/turn-progress.js +152 -0
  102. package/lib/core/turn-progress.js.map +1 -0
  103. package/lib/deferred-worker-runner.d.ts +6 -0
  104. package/lib/deferred-worker-runner.d.ts.map +1 -1
  105. package/lib/deferred-worker-runner.js +4 -0
  106. package/lib/deferred-worker-runner.js.map +1 -1
  107. package/lib/detached-task/index.d.ts +6 -0
  108. package/lib/detached-task/index.d.ts.map +1 -0
  109. package/lib/detached-task/index.js +6 -0
  110. package/lib/detached-task/index.js.map +1 -0
  111. package/lib/detached-task/interjection.d.ts +28 -0
  112. package/lib/detached-task/interjection.d.ts.map +1 -0
  113. package/lib/detached-task/interjection.js +128 -0
  114. package/lib/detached-task/interjection.js.map +1 -0
  115. package/lib/detached-task/runner.d.ts +89 -0
  116. package/lib/detached-task/runner.d.ts.map +1 -0
  117. package/lib/detached-task/runner.js +334 -0
  118. package/lib/detached-task/runner.js.map +1 -0
  119. package/lib/detached-task/store.d.ts +21 -0
  120. package/lib/detached-task/store.d.ts.map +1 -0
  121. package/lib/detached-task/store.js +63 -0
  122. package/lib/detached-task/store.js.map +1 -0
  123. package/lib/detached-task/token.d.ts +8 -0
  124. package/lib/detached-task/token.d.ts.map +1 -0
  125. package/lib/detached-task/token.js +8 -0
  126. package/lib/detached-task/token.js.map +1 -0
  127. package/lib/detached-task/types.d.ts +104 -0
  128. package/lib/detached-task/types.d.ts.map +1 -0
  129. package/lib/detached-task/types.js +43 -0
  130. package/lib/detached-task/types.js.map +1 -0
  131. package/lib/event/turn-event.d.ts +11 -0
  132. package/lib/event/turn-event.d.ts.map +1 -1
  133. package/lib/event/turn-event.js.map +1 -1
  134. package/lib/index.d.ts +7 -87
  135. package/lib/index.d.ts.map +1 -1
  136. package/lib/index.js +6 -85
  137. package/lib/index.js.map +1 -1
  138. package/lib/init/activate-ai-database-storage.d.ts +1 -3
  139. package/lib/init/activate-ai-database-storage.d.ts.map +1 -1
  140. package/lib/init/activate-ai-database-storage.js +13 -18
  141. package/lib/init/activate-ai-database-storage.js.map +1 -1
  142. package/lib/init/configure-zhin-agent.d.ts +1 -1
  143. package/lib/init/configure-zhin-agent.d.ts.map +1 -1
  144. package/lib/init/configure-zhin-agent.js +4 -0
  145. package/lib/init/configure-zhin-agent.js.map +1 -1
  146. package/lib/init/define-ai-database-models.d.ts +1 -1
  147. package/lib/init/define-ai-database-models.d.ts.map +1 -1
  148. package/lib/init/define-ai-database-models.js +1 -21
  149. package/lib/init/define-ai-database-models.js.map +1 -1
  150. package/lib/init/runtime-management-commands.d.ts +8 -0
  151. package/lib/init/runtime-management-commands.d.ts.map +1 -1
  152. package/lib/init/runtime-management-commands.js +38 -0
  153. package/lib/init/runtime-management-commands.js.map +1 -1
  154. package/lib/internal/agent-host.d.ts +11 -0
  155. package/lib/internal/agent-host.d.ts.map +1 -1
  156. package/lib/media/index.d.ts +1 -0
  157. package/lib/media/index.d.ts.map +1 -1
  158. package/lib/media/index.js +1 -0
  159. package/lib/media/index.js.map +1 -1
  160. package/lib/media/perception.d.ts +47 -0
  161. package/lib/media/perception.d.ts.map +1 -0
  162. package/lib/media/perception.js +136 -0
  163. package/lib/media/perception.js.map +1 -0
  164. package/lib/memory/compaction-runtime.d.ts +13 -0
  165. package/lib/memory/compaction-runtime.d.ts.map +1 -1
  166. package/lib/memory/compaction-runtime.js +25 -3
  167. package/lib/memory/compaction-runtime.js.map +1 -1
  168. package/lib/memory/index.d.ts +2 -0
  169. package/lib/memory/index.d.ts.map +1 -1
  170. package/lib/memory/index.js +1 -0
  171. package/lib/memory/index.js.map +1 -1
  172. package/lib/memory/memory-write-policy.d.ts +39 -0
  173. package/lib/memory/memory-write-policy.d.ts.map +1 -0
  174. package/lib/memory/memory-write-policy.js +44 -0
  175. package/lib/memory/memory-write-policy.js.map +1 -0
  176. package/lib/memory/semantic-recall.d.ts +44 -0
  177. package/lib/memory/semantic-recall.d.ts.map +1 -0
  178. package/lib/memory/semantic-recall.js +69 -0
  179. package/lib/memory/semantic-recall.js.map +1 -0
  180. package/lib/memory/told-ledger.d.ts +54 -0
  181. package/lib/memory/told-ledger.d.ts.map +1 -0
  182. package/lib/memory/told-ledger.js +119 -0
  183. package/lib/memory/told-ledger.js.map +1 -0
  184. package/lib/plugin-runtime/agent-host-port.d.ts +0 -102
  185. package/lib/plugin-runtime/agent-host-port.d.ts.map +1 -1
  186. package/lib/plugin-runtime/agent-host-port.js.map +1 -1
  187. package/lib/plugin-runtime/agent-runtime.d.ts +3 -0
  188. package/lib/plugin-runtime/agent-runtime.d.ts.map +1 -1
  189. package/lib/plugin-runtime/agent-runtime.js +42 -10
  190. package/lib/plugin-runtime/agent-runtime.js.map +1 -1
  191. package/lib/plugin-runtime/agent-trace-runtime.d.ts +5 -0
  192. package/lib/plugin-runtime/agent-trace-runtime.d.ts.map +1 -1
  193. package/lib/plugin-runtime/agent-trace-runtime.js +7 -0
  194. package/lib/plugin-runtime/agent-trace-runtime.js.map +1 -1
  195. package/lib/plugin-runtime/ai-completion.d.ts +54 -0
  196. package/lib/plugin-runtime/ai-completion.d.ts.map +1 -0
  197. package/lib/plugin-runtime/ai-completion.js +120 -0
  198. package/lib/plugin-runtime/ai-completion.js.map +1 -0
  199. package/lib/plugin-runtime/deferred-capability-plan.d.ts +27 -24
  200. package/lib/plugin-runtime/deferred-capability-plan.d.ts.map +1 -1
  201. package/lib/plugin-runtime/deferred-capability-plan.js +52 -82
  202. package/lib/plugin-runtime/deferred-capability-plan.js.map +1 -1
  203. package/lib/plugin-runtime/file-search-scope.d.ts +22 -0
  204. package/lib/plugin-runtime/file-search-scope.d.ts.map +1 -0
  205. package/lib/plugin-runtime/file-search-scope.js +129 -0
  206. package/lib/plugin-runtime/file-search-scope.js.map +1 -0
  207. package/lib/plugin-runtime/full-agent-turn-engine.d.ts.map +1 -1
  208. package/lib/plugin-runtime/full-agent-turn-engine.js +177 -21
  209. package/lib/plugin-runtime/full-agent-turn-engine.js.map +1 -1
  210. package/lib/plugin-runtime/index.d.ts +1 -78
  211. package/lib/plugin-runtime/index.d.ts.map +1 -1
  212. package/lib/plugin-runtime/index.js +1 -77
  213. package/lib/plugin-runtime/index.js.map +1 -1
  214. package/lib/plugin-runtime/native-bash-tool.d.ts +12 -0
  215. package/lib/plugin-runtime/native-bash-tool.d.ts.map +1 -1
  216. package/lib/plugin-runtime/native-bash-tool.js +32 -8
  217. package/lib/plugin-runtime/native-bash-tool.js.map +1 -1
  218. package/lib/plugin-runtime/native-file-tools.d.ts.map +1 -1
  219. package/lib/plugin-runtime/native-file-tools.js +120 -51
  220. package/lib/plugin-runtime/native-file-tools.js.map +1 -1
  221. package/lib/plugin-runtime/native-semantic-memory-tools.d.ts +27 -1
  222. package/lib/plugin-runtime/native-semantic-memory-tools.d.ts.map +1 -1
  223. package/lib/plugin-runtime/native-semantic-memory-tools.js +87 -9
  224. package/lib/plugin-runtime/native-semantic-memory-tools.js.map +1 -1
  225. package/lib/plugin-runtime/subagent-turn-capability.d.ts +32 -0
  226. package/lib/plugin-runtime/subagent-turn-capability.d.ts.map +1 -0
  227. package/lib/plugin-runtime/subagent-turn-capability.js +168 -0
  228. package/lib/plugin-runtime/subagent-turn-capability.js.map +1 -0
  229. package/lib/prompt/estimate-tokens.d.ts +7 -0
  230. package/lib/prompt/estimate-tokens.d.ts.map +1 -0
  231. package/lib/prompt/estimate-tokens.js +12 -0
  232. package/lib/prompt/estimate-tokens.js.map +1 -0
  233. package/lib/prompt/system-prompt.d.ts +2 -0
  234. package/lib/prompt/system-prompt.d.ts.map +1 -1
  235. package/lib/prompt/system-prompt.js +13 -2
  236. package/lib/prompt/system-prompt.js.map +1 -1
  237. package/lib/routing/subagent-summarize.d.ts +1 -1
  238. package/lib/routing/subagent-summarize.d.ts.map +1 -1
  239. package/lib/routing/subagent-summarize.js +2 -2
  240. package/lib/routing/subagent-summarize.js.map +1 -1
  241. package/lib/security/file-role-policy.d.ts +4 -2
  242. package/lib/security/file-role-policy.d.ts.map +1 -1
  243. package/lib/security/file-role-policy.js +21 -9
  244. package/lib/security/file-role-policy.js.map +1 -1
  245. package/lib/security/network-authority.d.ts +24 -0
  246. package/lib/security/network-authority.d.ts.map +1 -0
  247. package/lib/security/network-authority.js +28 -0
  248. package/lib/security/network-authority.js.map +1 -0
  249. package/lib/security/outbound-leak-guard.d.ts +61 -0
  250. package/lib/security/outbound-leak-guard.d.ts.map +1 -0
  251. package/lib/security/outbound-leak-guard.js +145 -0
  252. package/lib/security/outbound-leak-guard.js.map +1 -0
  253. package/lib/security/policy-facade.d.ts.map +1 -1
  254. package/lib/security/policy-facade.js +12 -2
  255. package/lib/security/policy-facade.js.map +1 -1
  256. package/lib/security/policy-narrowing.d.ts +12 -0
  257. package/lib/security/policy-narrowing.d.ts.map +1 -0
  258. package/lib/security/policy-narrowing.js +38 -0
  259. package/lib/security/policy-narrowing.js.map +1 -0
  260. package/lib/security/provenance.d.ts +65 -0
  261. package/lib/security/provenance.d.ts.map +1 -0
  262. package/lib/security/provenance.js +112 -0
  263. package/lib/security/provenance.js.map +1 -0
  264. package/lib/security/trust-level.d.ts +76 -0
  265. package/lib/security/trust-level.d.ts.map +1 -0
  266. package/lib/security/trust-level.js +87 -0
  267. package/lib/security/trust-level.js.map +1 -0
  268. package/lib/security/turn-network-client.d.ts.map +1 -1
  269. package/lib/security/turn-network-client.js +2 -1
  270. package/lib/security/turn-network-client.js.map +1 -1
  271. package/lib/security/usage-quota.d.ts +73 -0
  272. package/lib/security/usage-quota.d.ts.map +1 -0
  273. package/lib/security/usage-quota.js +123 -0
  274. package/lib/security/usage-quota.js.map +1 -0
  275. package/lib/service.d.ts +9 -1
  276. package/lib/service.d.ts.map +1 -1
  277. package/lib/service.js +17 -2
  278. package/lib/service.js.map +1 -1
  279. package/lib/session/approval-port.d.ts +26 -0
  280. package/lib/session/approval-port.d.ts.map +1 -1
  281. package/lib/session/approval-port.js +36 -0
  282. package/lib/session/approval-port.js.map +1 -1
  283. package/lib/session/approval-review-agent.d.ts +2 -2
  284. package/lib/session/approval-review-agent.d.ts.map +1 -1
  285. package/lib/session/approval-review-agent.js +57 -39
  286. package/lib/session/approval-review-agent.js.map +1 -1
  287. package/lib/session/session-io.d.ts.map +1 -1
  288. package/lib/session/session-io.js +1 -0
  289. package/lib/session/session-io.js.map +1 -1
  290. package/lib/session/turn-ingress-session.d.ts.map +1 -1
  291. package/lib/session/turn-ingress-session.js +1 -0
  292. package/lib/session/turn-ingress-session.js.map +1 -1
  293. package/lib/skill/capability-catalog.d.ts +27 -0
  294. package/lib/skill/capability-catalog.d.ts.map +1 -0
  295. package/lib/skill/capability-catalog.js +70 -0
  296. package/lib/skill/capability-catalog.js.map +1 -0
  297. package/lib/tool/deferred-resolution.d.ts.map +1 -1
  298. package/lib/tool/deferred-resolution.js +2 -1
  299. package/lib/tool/deferred-resolution.js.map +1 -1
  300. package/lib/tool/turn-tool-runtime.d.ts +13 -1
  301. package/lib/tool/turn-tool-runtime.d.ts.map +1 -1
  302. package/lib/tool/turn-tool-runtime.js +81 -7
  303. package/lib/tool/turn-tool-runtime.js.map +1 -1
  304. package/lib/tool-catalog/deferred-turn-controller.d.ts +4 -0
  305. package/lib/tool-catalog/deferred-turn-controller.d.ts.map +1 -1
  306. package/lib/tool-catalog/deferred-turn-controller.js +13 -3
  307. package/lib/tool-catalog/deferred-turn-controller.js.map +1 -1
  308. package/lib/tool-catalog/resolve-config.d.ts.map +1 -1
  309. package/lib/tool-catalog/resolve-config.js +5 -1
  310. package/lib/tool-catalog/resolve-config.js.map +1 -1
  311. package/lib/tool-catalog/types.d.ts +14 -1
  312. package/lib/tool-catalog/types.d.ts.map +1 -1
  313. package/lib/tool-catalog/types.js +15 -0
  314. package/lib/tool-catalog/types.js.map +1 -1
  315. package/lib/trace/context-budget.d.ts +56 -0
  316. package/lib/trace/context-budget.d.ts.map +1 -0
  317. package/lib/trace/context-budget.js +102 -0
  318. package/lib/trace/context-budget.js.map +1 -0
  319. package/lib/trace/index.d.ts +12 -0
  320. package/lib/trace/index.d.ts.map +1 -0
  321. package/lib/trace/index.js +7 -0
  322. package/lib/trace/index.js.map +1 -0
  323. package/lib/trace/turn-trace-archive.d.ts +49 -0
  324. package/lib/trace/turn-trace-archive.d.ts.map +1 -0
  325. package/lib/trace/turn-trace-archive.js +208 -0
  326. package/lib/trace/turn-trace-archive.js.map +1 -0
  327. package/lib/trace/turn-trace-format.d.ts +10 -0
  328. package/lib/trace/turn-trace-format.d.ts.map +1 -0
  329. package/lib/trace/turn-trace-format.js +132 -0
  330. package/lib/trace/turn-trace-format.js.map +1 -0
  331. package/lib/trace/turn-trace-registry.d.ts +30 -0
  332. package/lib/trace/turn-trace-registry.d.ts.map +1 -0
  333. package/lib/trace/turn-trace-registry.js +62 -0
  334. package/lib/trace/turn-trace-registry.js.map +1 -0
  335. package/lib/trace/turn-trace-store.d.ts +15 -0
  336. package/lib/trace/turn-trace-store.d.ts.map +1 -0
  337. package/lib/trace/turn-trace-store.js +67 -0
  338. package/lib/trace/turn-trace-store.js.map +1 -0
  339. package/lib/trace/turn-trace.d.ts +147 -0
  340. package/lib/trace/turn-trace.d.ts.map +1 -0
  341. package/lib/trace/turn-trace.js +341 -0
  342. package/lib/trace/turn-trace.js.map +1 -0
  343. package/lib/turn/execute-agent-turn.d.ts.map +1 -1
  344. package/lib/turn/execute-agent-turn.js +21 -10
  345. package/lib/turn/execute-agent-turn.js.map +1 -1
  346. package/lib/turn/inbound-media.d.ts +15 -0
  347. package/lib/turn/inbound-media.d.ts.map +1 -1
  348. package/lib/turn/inbound-media.js +41 -1
  349. package/lib/turn/inbound-media.js.map +1 -1
  350. package/lib/turn/inbound-queue-config.d.ts +1 -0
  351. package/lib/turn/inbound-queue-config.d.ts.map +1 -1
  352. package/lib/turn/inbound-queue-config.js +9 -1
  353. package/lib/turn/inbound-queue-config.js.map +1 -1
  354. package/lib/turn/index.d.ts +5 -0
  355. package/lib/turn/index.d.ts.map +1 -1
  356. package/lib/turn/index.js +4 -0
  357. package/lib/turn/index.js.map +1 -1
  358. package/lib/turn/journal-feed.d.ts +31 -0
  359. package/lib/turn/journal-feed.d.ts.map +1 -0
  360. package/lib/turn/journal-feed.js +43 -0
  361. package/lib/turn/journal-feed.js.map +1 -0
  362. package/lib/turn/turn-admission-gate.d.ts +62 -0
  363. package/lib/turn/turn-admission-gate.d.ts.map +1 -0
  364. package/lib/turn/turn-admission-gate.js +194 -0
  365. package/lib/turn/turn-admission-gate.js.map +1 -0
  366. package/lib/turn/turn-ingress.d.ts +4 -0
  367. package/lib/turn/turn-ingress.d.ts.map +1 -1
  368. package/lib/turn/turn-ingress.js.map +1 -1
  369. package/lib/turn/turn-pipeline.js +1 -0
  370. package/lib/turn/turn-pipeline.js.map +1 -1
  371. package/lib/zhin-agent/index.d.ts +9 -0
  372. package/lib/zhin-agent/index.d.ts.map +1 -1
  373. package/lib/zhin-agent/index.js +13 -0
  374. package/lib/zhin-agent/index.js.map +1 -1
  375. package/package.json +21 -33
  376. package/lib/data-governance/data-governance.d.ts +0 -198
  377. package/lib/data-governance/data-governance.d.ts.map +0 -1
  378. package/lib/data-governance/data-governance.js +0 -660
  379. package/lib/data-governance/data-governance.js.map +0 -1
  380. package/lib/data-governance/database-payload-lifecycle-repository.d.ts +0 -68
  381. package/lib/data-governance/database-payload-lifecycle-repository.d.ts.map +0 -1
  382. package/lib/data-governance/database-payload-lifecycle-repository.js +0 -226
  383. package/lib/data-governance/database-payload-lifecycle-repository.js.map +0 -1
  384. package/lib/data-governance/disclosure-authority.d.ts +0 -38
  385. package/lib/data-governance/disclosure-authority.d.ts.map +0 -1
  386. package/lib/data-governance/disclosure-authority.js +0 -2
  387. package/lib/data-governance/disclosure-authority.js.map +0 -1
  388. package/lib/data-governance/disclosure-manifest.d.ts +0 -110
  389. package/lib/data-governance/disclosure-manifest.d.ts.map +0 -1
  390. package/lib/data-governance/disclosure-manifest.js +0 -264
  391. package/lib/data-governance/disclosure-manifest.js.map +0 -1
  392. package/lib/data-governance/encrypted-database-payload-vault.d.ts +0 -107
  393. package/lib/data-governance/encrypted-database-payload-vault.d.ts.map +0 -1
  394. package/lib/data-governance/encrypted-database-payload-vault.js +0 -236
  395. package/lib/data-governance/encrypted-database-payload-vault.js.map +0 -1
  396. package/lib/data-governance/encrypted-file-payload-vault.d.ts +0 -117
  397. package/lib/data-governance/encrypted-file-payload-vault.d.ts.map +0 -1
  398. package/lib/data-governance/encrypted-file-payload-vault.js +0 -507
  399. package/lib/data-governance/encrypted-file-payload-vault.js.map +0 -1
  400. package/lib/data-governance/file-payload-lifecycle-repository.d.ts +0 -19
  401. package/lib/data-governance/file-payload-lifecycle-repository.d.ts.map +0 -1
  402. package/lib/data-governance/file-payload-lifecycle-repository.js +0 -194
  403. package/lib/data-governance/file-payload-lifecycle-repository.js.map +0 -1
  404. package/lib/data-governance/governance-authority-repository.d.ts +0 -152
  405. package/lib/data-governance/governance-authority-repository.d.ts.map +0 -1
  406. package/lib/data-governance/governance-authority-repository.js +0 -455
  407. package/lib/data-governance/governance-authority-repository.js.map +0 -1
  408. package/lib/data-governance/governed-payload-write-saga.d.ts +0 -126
  409. package/lib/data-governance/governed-payload-write-saga.d.ts.map +0 -1
  410. package/lib/data-governance/governed-payload-write-saga.js +0 -471
  411. package/lib/data-governance/governed-payload-write-saga.js.map +0 -1
  412. package/lib/data-governance/payload-hold-overdue-projection.d.ts +0 -57
  413. package/lib/data-governance/payload-hold-overdue-projection.d.ts.map +0 -1
  414. package/lib/data-governance/payload-hold-overdue-projection.js +0 -80
  415. package/lib/data-governance/payload-hold-overdue-projection.js.map +0 -1
  416. package/lib/data-governance/payload-lifecycle.d.ts +0 -359
  417. package/lib/data-governance/payload-lifecycle.d.ts.map +0 -1
  418. package/lib/data-governance/payload-lifecycle.js +0 -930
  419. package/lib/data-governance/payload-lifecycle.js.map +0 -1
  420. package/lib/data-governance/payload-vault-storage-handoff.d.ts +0 -255
  421. package/lib/data-governance/payload-vault-storage-handoff.d.ts.map +0 -1
  422. package/lib/data-governance/payload-vault-storage-handoff.js +0 -471
  423. package/lib/data-governance/payload-vault-storage-handoff.js.map +0 -1
  424. package/lib/plugin-runtime/database-overlay-pack-promotion-repository.d.ts +0 -70
  425. package/lib/plugin-runtime/database-overlay-pack-promotion-repository.d.ts.map +0 -1
  426. package/lib/plugin-runtime/database-overlay-pack-promotion-repository.js +0 -203
  427. package/lib/plugin-runtime/database-overlay-pack-promotion-repository.js.map +0 -1
  428. package/lib/plugin-runtime/github-actions-delivery-provider.d.ts +0 -44
  429. package/lib/plugin-runtime/github-actions-delivery-provider.d.ts.map +0 -1
  430. package/lib/plugin-runtime/github-actions-delivery-provider.js +0 -246
  431. package/lib/plugin-runtime/github-actions-delivery-provider.js.map +0 -1
  432. package/lib/plugin-runtime/github-exact-merge-gateway.d.ts +0 -62
  433. package/lib/plugin-runtime/github-exact-merge-gateway.d.ts.map +0 -1
  434. package/lib/plugin-runtime/github-exact-merge-gateway.js +0 -79
  435. package/lib/plugin-runtime/github-exact-merge-gateway.js.map +0 -1
  436. package/lib/plugin-runtime/github-workroom-capability.d.ts +0 -15
  437. package/lib/plugin-runtime/github-workroom-capability.d.ts.map +0 -1
  438. package/lib/plugin-runtime/github-workroom-capability.js +0 -79
  439. package/lib/plugin-runtime/github-workroom-capability.js.map +0 -1
  440. package/lib/plugin-runtime/self-delivery-project-composition.d.ts +0 -25
  441. package/lib/plugin-runtime/self-delivery-project-composition.d.ts.map +0 -1
  442. package/lib/plugin-runtime/self-delivery-project-composition.js +0 -85
  443. package/lib/plugin-runtime/self-delivery-project-composition.js.map +0 -1
  444. package/lib/plugin-runtime/self-delivery-project.d.ts +0 -65
  445. package/lib/plugin-runtime/self-delivery-project.d.ts.map +0 -1
  446. package/lib/plugin-runtime/self-delivery-project.js +0 -140
  447. package/lib/plugin-runtime/self-delivery-project.js.map +0 -1
  448. package/lib/plugin-runtime/workroom-acceptance-authority.d.ts +0 -5
  449. package/lib/plugin-runtime/workroom-acceptance-authority.d.ts.map +0 -1
  450. package/lib/plugin-runtime/workroom-acceptance-authority.js +0 -14
  451. package/lib/plugin-runtime/workroom-acceptance-authority.js.map +0 -1
  452. package/lib/plugin-runtime/workroom-acceptance-fact-providers.d.ts +0 -233
  453. package/lib/plugin-runtime/workroom-acceptance-fact-providers.d.ts.map +0 -1
  454. package/lib/plugin-runtime/workroom-acceptance-fact-providers.js +0 -517
  455. package/lib/plugin-runtime/workroom-acceptance-fact-providers.js.map +0 -1
  456. package/lib/plugin-runtime/workroom-acceptance-internal-providers.d.ts +0 -139
  457. package/lib/plugin-runtime/workroom-acceptance-internal-providers.d.ts.map +0 -1
  458. package/lib/plugin-runtime/workroom-acceptance-internal-providers.js +0 -435
  459. package/lib/plugin-runtime/workroom-acceptance-internal-providers.js.map +0 -1
  460. package/lib/plugin-runtime/workroom-acceptance-policy.d.ts +0 -4
  461. package/lib/plugin-runtime/workroom-acceptance-policy.d.ts.map +0 -1
  462. package/lib/plugin-runtime/workroom-acceptance-policy.js +0 -20
  463. package/lib/plugin-runtime/workroom-acceptance-policy.js.map +0 -1
  464. package/lib/plugin-runtime/workroom-acceptance-production-composition.d.ts +0 -177
  465. package/lib/plugin-runtime/workroom-acceptance-production-composition.d.ts.map +0 -1
  466. package/lib/plugin-runtime/workroom-acceptance-production-composition.js +0 -794
  467. package/lib/plugin-runtime/workroom-acceptance-production-composition.js.map +0 -1
  468. package/lib/plugin-runtime/workroom-acceptance-provider-composition.d.ts +0 -189
  469. package/lib/plugin-runtime/workroom-acceptance-provider-composition.d.ts.map +0 -1
  470. package/lib/plugin-runtime/workroom-acceptance-provider-composition.js +0 -590
  471. package/lib/plugin-runtime/workroom-acceptance-provider-composition.js.map +0 -1
  472. package/lib/plugin-runtime/workroom-accepted-source-runtime.d.ts +0 -75
  473. package/lib/plugin-runtime/workroom-accepted-source-runtime.d.ts.map +0 -1
  474. package/lib/plugin-runtime/workroom-accepted-source-runtime.js +0 -267
  475. package/lib/plugin-runtime/workroom-accepted-source-runtime.js.map +0 -1
  476. package/lib/plugin-runtime/workroom-assignment-authority-grant-runtime.d.ts +0 -42
  477. package/lib/plugin-runtime/workroom-assignment-authority-grant-runtime.d.ts.map +0 -1
  478. package/lib/plugin-runtime/workroom-assignment-authority-grant-runtime.js +0 -90
  479. package/lib/plugin-runtime/workroom-assignment-authority-grant-runtime.js.map +0 -1
  480. package/lib/plugin-runtime/workroom-assignment-authority-provider.d.ts +0 -84
  481. package/lib/plugin-runtime/workroom-assignment-authority-provider.d.ts.map +0 -1
  482. package/lib/plugin-runtime/workroom-assignment-authority-provider.js +0 -494
  483. package/lib/plugin-runtime/workroom-assignment-authority-provider.js.map +0 -1
  484. package/lib/plugin-runtime/workroom-assignment-knowledge-composition.d.ts +0 -58
  485. package/lib/plugin-runtime/workroom-assignment-knowledge-composition.d.ts.map +0 -1
  486. package/lib/plugin-runtime/workroom-assignment-knowledge-composition.js +0 -218
  487. package/lib/plugin-runtime/workroom-assignment-knowledge-composition.js.map +0 -1
  488. package/lib/plugin-runtime/workroom-data-governance-authority-writer.d.ts +0 -49
  489. package/lib/plugin-runtime/workroom-data-governance-authority-writer.d.ts.map +0 -1
  490. package/lib/plugin-runtime/workroom-data-governance-authority-writer.js +0 -140
  491. package/lib/plugin-runtime/workroom-data-governance-authority-writer.js.map +0 -1
  492. package/lib/plugin-runtime/workroom-data-governance-bootstrap.d.ts +0 -27
  493. package/lib/plugin-runtime/workroom-data-governance-bootstrap.d.ts.map +0 -1
  494. package/lib/plugin-runtime/workroom-data-governance-bootstrap.js +0 -324
  495. package/lib/plugin-runtime/workroom-data-governance-bootstrap.js.map +0 -1
  496. package/lib/plugin-runtime/workroom-data-governance-composition.d.ts +0 -28
  497. package/lib/plugin-runtime/workroom-data-governance-composition.d.ts.map +0 -1
  498. package/lib/plugin-runtime/workroom-data-governance-composition.js +0 -41
  499. package/lib/plugin-runtime/workroom-data-governance-composition.js.map +0 -1
  500. package/lib/plugin-runtime/workroom-data-governance-root-provider.d.ts +0 -51
  501. package/lib/plugin-runtime/workroom-data-governance-root-provider.d.ts.map +0 -1
  502. package/lib/plugin-runtime/workroom-data-governance-root-provider.js +0 -66
  503. package/lib/plugin-runtime/workroom-data-governance-root-provider.js.map +0 -1
  504. package/lib/plugin-runtime/workroom-data-governance-runtime.d.ts +0 -100
  505. package/lib/plugin-runtime/workroom-data-governance-runtime.d.ts.map +0 -1
  506. package/lib/plugin-runtime/workroom-data-governance-runtime.js +0 -1356
  507. package/lib/plugin-runtime/workroom-data-governance-runtime.js.map +0 -1
  508. package/lib/plugin-runtime/workroom-data-governance-storage.d.ts +0 -66
  509. package/lib/plugin-runtime/workroom-data-governance-storage.d.ts.map +0 -1
  510. package/lib/plugin-runtime/workroom-data-governance-storage.js +0 -159
  511. package/lib/plugin-runtime/workroom-data-governance-storage.js.map +0 -1
  512. package/lib/plugin-runtime/workroom-data-lifecycle-composition.d.ts +0 -37
  513. package/lib/plugin-runtime/workroom-data-lifecycle-composition.d.ts.map +0 -1
  514. package/lib/plugin-runtime/workroom-data-lifecycle-composition.js +0 -131
  515. package/lib/plugin-runtime/workroom-data-lifecycle-composition.js.map +0 -1
  516. package/lib/plugin-runtime/workroom-data-lifecycle-console.d.ts +0 -238
  517. package/lib/plugin-runtime/workroom-data-lifecycle-console.d.ts.map +0 -1
  518. package/lib/plugin-runtime/workroom-data-lifecycle-console.js +0 -495
  519. package/lib/plugin-runtime/workroom-data-lifecycle-console.js.map +0 -1
  520. package/lib/plugin-runtime/workroom-data-lifecycle-human-ingress.d.ts +0 -15
  521. package/lib/plugin-runtime/workroom-data-lifecycle-human-ingress.d.ts.map +0 -1
  522. package/lib/plugin-runtime/workroom-data-lifecycle-human-ingress.js +0 -119
  523. package/lib/plugin-runtime/workroom-data-lifecycle-human-ingress.js.map +0 -1
  524. package/lib/plugin-runtime/workroom-delivery-gateway.d.ts +0 -96
  525. package/lib/plugin-runtime/workroom-delivery-gateway.d.ts.map +0 -1
  526. package/lib/plugin-runtime/workroom-delivery-gateway.js +0 -129
  527. package/lib/plugin-runtime/workroom-delivery-gateway.js.map +0 -1
  528. package/lib/plugin-runtime/workroom-dynamic-planning-provider.d.ts +0 -142
  529. package/lib/plugin-runtime/workroom-dynamic-planning-provider.d.ts.map +0 -1
  530. package/lib/plugin-runtime/workroom-dynamic-planning-provider.js +0 -302
  531. package/lib/plugin-runtime/workroom-dynamic-planning-provider.js.map +0 -1
  532. package/lib/plugin-runtime/workroom-dynamic-planning.d.ts +0 -4
  533. package/lib/plugin-runtime/workroom-dynamic-planning.d.ts.map +0 -1
  534. package/lib/plugin-runtime/workroom-dynamic-planning.js +0 -13
  535. package/lib/plugin-runtime/workroom-dynamic-planning.js.map +0 -1
  536. package/lib/plugin-runtime/workroom-effect-composition.d.ts +0 -37
  537. package/lib/plugin-runtime/workroom-effect-composition.d.ts.map +0 -1
  538. package/lib/plugin-runtime/workroom-effect-composition.js +0 -80
  539. package/lib/plugin-runtime/workroom-effect-composition.js.map +0 -1
  540. package/lib/plugin-runtime/workroom-effect-production.d.ts +0 -138
  541. package/lib/plugin-runtime/workroom-effect-production.d.ts.map +0 -1
  542. package/lib/plugin-runtime/workroom-effect-production.js +0 -291
  543. package/lib/plugin-runtime/workroom-effect-production.js.map +0 -1
  544. package/lib/plugin-runtime/workroom-effect-runtime.d.ts +0 -56
  545. package/lib/plugin-runtime/workroom-effect-runtime.d.ts.map +0 -1
  546. package/lib/plugin-runtime/workroom-effect-runtime.js +0 -239
  547. package/lib/plugin-runtime/workroom-effect-runtime.js.map +0 -1
  548. package/lib/plugin-runtime/workroom-governed-dispatch-composition.d.ts +0 -32
  549. package/lib/plugin-runtime/workroom-governed-dispatch-composition.d.ts.map +0 -1
  550. package/lib/plugin-runtime/workroom-governed-dispatch-composition.js +0 -43
  551. package/lib/plugin-runtime/workroom-governed-dispatch-composition.js.map +0 -1
  552. package/lib/plugin-runtime/workroom-journal-payload-composition.d.ts +0 -16
  553. package/lib/plugin-runtime/workroom-journal-payload-composition.d.ts.map +0 -1
  554. package/lib/plugin-runtime/workroom-journal-payload-composition.js +0 -69
  555. package/lib/plugin-runtime/workroom-journal-payload-composition.js.map +0 -1
  556. package/lib/plugin-runtime/workroom-local-agent-core-adapter.d.ts +0 -17
  557. package/lib/plugin-runtime/workroom-local-agent-core-adapter.d.ts.map +0 -1
  558. package/lib/plugin-runtime/workroom-local-agent-core-adapter.js +0 -101
  559. package/lib/plugin-runtime/workroom-local-agent-core-adapter.js.map +0 -1
  560. package/lib/plugin-runtime/workroom-local-agent-loop.d.ts +0 -91
  561. package/lib/plugin-runtime/workroom-local-agent-loop.d.ts.map +0 -1
  562. package/lib/plugin-runtime/workroom-local-agent-loop.js +0 -313
  563. package/lib/plugin-runtime/workroom-local-agent-loop.js.map +0 -1
  564. package/lib/plugin-runtime/workroom-local-assignment-authority.d.ts +0 -5
  565. package/lib/plugin-runtime/workroom-local-assignment-authority.d.ts.map +0 -1
  566. package/lib/plugin-runtime/workroom-local-assignment-authority.js +0 -16
  567. package/lib/plugin-runtime/workroom-local-assignment-authority.js.map +0 -1
  568. package/lib/plugin-runtime/workroom-local-assignment-executor.d.ts +0 -59
  569. package/lib/plugin-runtime/workroom-local-assignment-executor.d.ts.map +0 -1
  570. package/lib/plugin-runtime/workroom-local-assignment-executor.js +0 -197
  571. package/lib/plugin-runtime/workroom-local-assignment-executor.js.map +0 -1
  572. package/lib/plugin-runtime/workroom-local-assignment-runtime.d.ts +0 -34
  573. package/lib/plugin-runtime/workroom-local-assignment-runtime.d.ts.map +0 -1
  574. package/lib/plugin-runtime/workroom-local-assignment-runtime.js +0 -235
  575. package/lib/plugin-runtime/workroom-local-assignment-runtime.js.map +0 -1
  576. package/lib/plugin-runtime/workroom-local-assignment-supply.d.ts +0 -39
  577. package/lib/plugin-runtime/workroom-local-assignment-supply.d.ts.map +0 -1
  578. package/lib/plugin-runtime/workroom-local-assignment-supply.js +0 -107
  579. package/lib/plugin-runtime/workroom-local-assignment-supply.js.map +0 -1
  580. package/lib/plugin-runtime/workroom-overlay-pack-promotion.d.ts +0 -145
  581. package/lib/plugin-runtime/workroom-overlay-pack-promotion.d.ts.map +0 -1
  582. package/lib/plugin-runtime/workroom-overlay-pack-promotion.js +0 -516
  583. package/lib/plugin-runtime/workroom-overlay-pack-promotion.js.map +0 -1
  584. package/lib/plugin-runtime/workroom-payload-processor-recall.d.ts +0 -91
  585. package/lib/plugin-runtime/workroom-payload-processor-recall.d.ts.map +0 -1
  586. package/lib/plugin-runtime/workroom-payload-processor-recall.js +0 -189
  587. package/lib/plugin-runtime/workroom-payload-processor-recall.js.map +0 -1
  588. package/lib/plugin-runtime/workroom-plan-gate-authority.d.ts +0 -7
  589. package/lib/plugin-runtime/workroom-plan-gate-authority.d.ts.map +0 -1
  590. package/lib/plugin-runtime/workroom-plan-gate-authority.js +0 -40
  591. package/lib/plugin-runtime/workroom-plan-gate-authority.js.map +0 -1
  592. package/lib/plugin-runtime/workroom-portfolio-capacity.d.ts +0 -132
  593. package/lib/plugin-runtime/workroom-portfolio-capacity.d.ts.map +0 -1
  594. package/lib/plugin-runtime/workroom-portfolio-capacity.js +0 -189
  595. package/lib/plugin-runtime/workroom-portfolio-capacity.js.map +0 -1
  596. package/lib/plugin-runtime/workroom-portfolio-checkpoint-ack.d.ts +0 -38
  597. package/lib/plugin-runtime/workroom-portfolio-checkpoint-ack.d.ts.map +0 -1
  598. package/lib/plugin-runtime/workroom-portfolio-checkpoint-ack.js +0 -103
  599. package/lib/plugin-runtime/workroom-portfolio-checkpoint-ack.js.map +0 -1
  600. package/lib/plugin-runtime/workroom-portfolio-control-composition.d.ts +0 -30
  601. package/lib/plugin-runtime/workroom-portfolio-control-composition.d.ts.map +0 -1
  602. package/lib/plugin-runtime/workroom-portfolio-control-composition.js +0 -103
  603. package/lib/plugin-runtime/workroom-portfolio-control-composition.js.map +0 -1
  604. package/lib/plugin-runtime/workroom-portfolio-control-runtime.d.ts +0 -42
  605. package/lib/plugin-runtime/workroom-portfolio-control-runtime.d.ts.map +0 -1
  606. package/lib/plugin-runtime/workroom-portfolio-control-runtime.js +0 -209
  607. package/lib/plugin-runtime/workroom-portfolio-control-runtime.js.map +0 -1
  608. package/lib/plugin-runtime/workroom-portfolio-grant-assignment.d.ts +0 -141
  609. package/lib/plugin-runtime/workroom-portfolio-grant-assignment.d.ts.map +0 -1
  610. package/lib/plugin-runtime/workroom-portfolio-grant-assignment.js +0 -334
  611. package/lib/plugin-runtime/workroom-portfolio-grant-assignment.js.map +0 -1
  612. package/lib/plugin-runtime/workroom-portfolio-kernel-authority.d.ts +0 -23
  613. package/lib/plugin-runtime/workroom-portfolio-kernel-authority.d.ts.map +0 -1
  614. package/lib/plugin-runtime/workroom-portfolio-kernel-authority.js +0 -88
  615. package/lib/plugin-runtime/workroom-portfolio-kernel-authority.js.map +0 -1
  616. package/lib/plugin-runtime/workroom-portfolio-sponsor.d.ts +0 -96
  617. package/lib/plugin-runtime/workroom-portfolio-sponsor.d.ts.map +0 -1
  618. package/lib/plugin-runtime/workroom-portfolio-sponsor.js +0 -313
  619. package/lib/plugin-runtime/workroom-portfolio-sponsor.js.map +0 -1
  620. package/lib/plugin-runtime/workroom-preemption-runtime.d.ts +0 -57
  621. package/lib/plugin-runtime/workroom-preemption-runtime.d.ts.map +0 -1
  622. package/lib/plugin-runtime/workroom-preemption-runtime.js +0 -163
  623. package/lib/plugin-runtime/workroom-preemption-runtime.js.map +0 -1
  624. package/lib/plugin-runtime/workroom-priority-authority.d.ts +0 -19
  625. package/lib/plugin-runtime/workroom-priority-authority.d.ts.map +0 -1
  626. package/lib/plugin-runtime/workroom-priority-authority.js +0 -76
  627. package/lib/plugin-runtime/workroom-priority-authority.js.map +0 -1
  628. package/lib/plugin-runtime/workroom-profile-authority-composition.d.ts +0 -61
  629. package/lib/plugin-runtime/workroom-profile-authority-composition.d.ts.map +0 -1
  630. package/lib/plugin-runtime/workroom-profile-authority-composition.js +0 -232
  631. package/lib/plugin-runtime/workroom-profile-authority-composition.js.map +0 -1
  632. package/lib/plugin-runtime/workroom-profile-authority-runtime.d.ts +0 -229
  633. package/lib/plugin-runtime/workroom-profile-authority-runtime.d.ts.map +0 -1
  634. package/lib/plugin-runtime/workroom-profile-authority-runtime.js +0 -1133
  635. package/lib/plugin-runtime/workroom-profile-authority-runtime.js.map +0 -1
  636. package/lib/plugin-runtime/workroom-projection-outbound.d.ts +0 -10
  637. package/lib/plugin-runtime/workroom-projection-outbound.d.ts.map +0 -1
  638. package/lib/plugin-runtime/workroom-projection-outbound.js +0 -35
  639. package/lib/plugin-runtime/workroom-projection-outbound.js.map +0 -1
  640. package/lib/plugin-runtime/workroom-projection-runtime.d.ts +0 -93
  641. package/lib/plugin-runtime/workroom-projection-runtime.d.ts.map +0 -1
  642. package/lib/plugin-runtime/workroom-projection-runtime.js +0 -476
  643. package/lib/plugin-runtime/workroom-projection-runtime.js.map +0 -1
  644. package/lib/plugin-runtime/workroom-remote-assignment-authority.d.ts +0 -9
  645. package/lib/plugin-runtime/workroom-remote-assignment-authority.d.ts.map +0 -1
  646. package/lib/plugin-runtime/workroom-remote-assignment-authority.js +0 -20
  647. package/lib/plugin-runtime/workroom-remote-assignment-authority.js.map +0 -1
  648. package/lib/plugin-runtime/workroom-remote-callback-runtime.d.ts +0 -38
  649. package/lib/plugin-runtime/workroom-remote-callback-runtime.d.ts.map +0 -1
  650. package/lib/plugin-runtime/workroom-remote-callback-runtime.js +0 -80
  651. package/lib/plugin-runtime/workroom-remote-callback-runtime.js.map +0 -1
  652. package/lib/plugin-runtime/workroom-remote-executor.d.ts +0 -9
  653. package/lib/plugin-runtime/workroom-remote-executor.d.ts.map +0 -1
  654. package/lib/plugin-runtime/workroom-remote-executor.js +0 -23
  655. package/lib/plugin-runtime/workroom-remote-executor.js.map +0 -1
  656. package/lib/plugin-runtime/workroom-reviewer-authority-runtime.d.ts +0 -72
  657. package/lib/plugin-runtime/workroom-reviewer-authority-runtime.d.ts.map +0 -1
  658. package/lib/plugin-runtime/workroom-reviewer-authority-runtime.js +0 -142
  659. package/lib/plugin-runtime/workroom-reviewer-authority-runtime.js.map +0 -1
  660. package/lib/plugin-runtime/workroom-risk-acceptance-runtime.d.ts +0 -112
  661. package/lib/plugin-runtime/workroom-risk-acceptance-runtime.d.ts.map +0 -1
  662. package/lib/plugin-runtime/workroom-risk-acceptance-runtime.js +0 -376
  663. package/lib/plugin-runtime/workroom-risk-acceptance-runtime.js.map +0 -1
  664. package/lib/plugin-runtime/workroom-run-profile-pin-authority.d.ts +0 -42
  665. package/lib/plugin-runtime/workroom-run-profile-pin-authority.d.ts.map +0 -1
  666. package/lib/plugin-runtime/workroom-run-profile-pin-authority.js +0 -125
  667. package/lib/plugin-runtime/workroom-run-profile-pin-authority.js.map +0 -1
  668. package/lib/plugin-runtime/workroom-scheduler-portfolio-composition.d.ts +0 -32
  669. package/lib/plugin-runtime/workroom-scheduler-portfolio-composition.d.ts.map +0 -1
  670. package/lib/plugin-runtime/workroom-scheduler-portfolio-composition.js +0 -83
  671. package/lib/plugin-runtime/workroom-scheduler-portfolio-composition.js.map +0 -1
  672. package/lib/plugin-runtime/workroom-scheduler-portfolio-contract.d.ts +0 -16
  673. package/lib/plugin-runtime/workroom-scheduler-portfolio-contract.d.ts.map +0 -1
  674. package/lib/plugin-runtime/workroom-scheduler-portfolio-contract.js +0 -49
  675. package/lib/plugin-runtime/workroom-scheduler-portfolio-contract.js.map +0 -1
  676. package/lib/plugin-runtime/workroom-scheduler-portfolio-request-authority.d.ts +0 -66
  677. package/lib/plugin-runtime/workroom-scheduler-portfolio-request-authority.d.ts.map +0 -1
  678. package/lib/plugin-runtime/workroom-scheduler-portfolio-request-authority.js +0 -250
  679. package/lib/plugin-runtime/workroom-scheduler-portfolio-request-authority.js.map +0 -1
  680. package/lib/plugin-runtime/workroom-scheduler-portfolio-supply.d.ts +0 -42
  681. package/lib/plugin-runtime/workroom-scheduler-portfolio-supply.d.ts.map +0 -1
  682. package/lib/plugin-runtime/workroom-scheduler-portfolio-supply.js +0 -141
  683. package/lib/plugin-runtime/workroom-scheduler-portfolio-supply.js.map +0 -1
  684. package/lib/plugin-runtime/workroom-scheduler-route-registry.d.ts +0 -27
  685. package/lib/plugin-runtime/workroom-scheduler-route-registry.d.ts.map +0 -1
  686. package/lib/plugin-runtime/workroom-scheduler-route-registry.js +0 -136
  687. package/lib/plugin-runtime/workroom-scheduler-route-registry.js.map +0 -1
  688. package/lib/plugin-runtime/workroom-scheduler-runtime.d.ts +0 -84
  689. package/lib/plugin-runtime/workroom-scheduler-runtime.d.ts.map +0 -1
  690. package/lib/plugin-runtime/workroom-scheduler-runtime.js +0 -236
  691. package/lib/plugin-runtime/workroom-scheduler-runtime.js.map +0 -1
  692. package/lib/portfolio/capacity-control-outbox.d.ts +0 -174
  693. package/lib/portfolio/capacity-control-outbox.d.ts.map +0 -1
  694. package/lib/portfolio/capacity-control-outbox.js +0 -338
  695. package/lib/portfolio/capacity-control-outbox.js.map +0 -1
  696. package/lib/portfolio/database-capacity-control-outbox.d.ts +0 -62
  697. package/lib/portfolio/database-capacity-control-outbox.d.ts.map +0 -1
  698. package/lib/portfolio/database-capacity-control-outbox.js +0 -166
  699. package/lib/portfolio/database-capacity-control-outbox.js.map +0 -1
  700. package/lib/portfolio/file-capacity-control-outbox.d.ts +0 -10
  701. package/lib/portfolio/file-capacity-control-outbox.d.ts.map +0 -1
  702. package/lib/portfolio/file-capacity-control-outbox.js +0 -113
  703. package/lib/portfolio/file-capacity-control-outbox.js.map +0 -1
  704. package/lib/portfolio/file-portfolio-journal.d.ts +0 -11
  705. package/lib/portfolio/file-portfolio-journal.d.ts.map +0 -1
  706. package/lib/portfolio/file-portfolio-journal.js +0 -196
  707. package/lib/portfolio/file-portfolio-journal.js.map +0 -1
  708. package/lib/portfolio/portfolio-admission.d.ts +0 -95
  709. package/lib/portfolio/portfolio-admission.d.ts.map +0 -1
  710. package/lib/portfolio/portfolio-admission.js +0 -1080
  711. package/lib/portfolio/portfolio-admission.js.map +0 -1
  712. package/lib/portfolio/portfolio-journal.d.ts +0 -359
  713. package/lib/portfolio/portfolio-journal.d.ts.map +0 -1
  714. package/lib/portfolio/portfolio-journal.js +0 -844
  715. package/lib/portfolio/portfolio-journal.js.map +0 -1
  716. package/lib/portfolio/resource-bundle.d.ts +0 -136
  717. package/lib/portfolio/resource-bundle.d.ts.map +0 -1
  718. package/lib/portfolio/resource-bundle.js +0 -387
  719. package/lib/portfolio/resource-bundle.js.map +0 -1
  720. package/lib/portfolio/sponsor-projection.d.ts +0 -78
  721. package/lib/portfolio/sponsor-projection.d.ts.map +0 -1
  722. package/lib/portfolio/sponsor-projection.js +0 -135
  723. package/lib/portfolio/sponsor-projection.js.map +0 -1
  724. package/lib/routing/match-rules.d.ts +0 -4
  725. package/lib/routing/match-rules.d.ts.map +0 -1
  726. package/lib/routing/match-rules.js +0 -29
  727. package/lib/routing/match-rules.js.map +0 -1
  728. package/lib/routing/route-matcher.d.ts +0 -16
  729. package/lib/routing/route-matcher.d.ts.map +0 -1
  730. package/lib/routing/route-matcher.js +0 -62
  731. package/lib/routing/route-matcher.js.map +0 -1
  732. package/lib/routing/workroom-bot-identity.d.ts +0 -22
  733. package/lib/routing/workroom-bot-identity.d.ts.map +0 -1
  734. package/lib/routing/workroom-bot-identity.js +0 -53
  735. package/lib/routing/workroom-bot-identity.js.map +0 -1
  736. package/lib/workroom/acceptance-control.d.ts +0 -77
  737. package/lib/workroom/acceptance-control.d.ts.map +0 -1
  738. package/lib/workroom/acceptance-control.js +0 -345
  739. package/lib/workroom/acceptance-control.js.map +0 -1
  740. package/lib/workroom/acceptance-policy.d.ts +0 -152
  741. package/lib/workroom/acceptance-policy.d.ts.map +0 -1
  742. package/lib/workroom/acceptance-policy.js +0 -610
  743. package/lib/workroom/acceptance-policy.js.map +0 -1
  744. package/lib/workroom/accepted-source-memory-application.d.ts +0 -113
  745. package/lib/workroom/accepted-source-memory-application.d.ts.map +0 -1
  746. package/lib/workroom/accepted-source-memory-application.js +0 -327
  747. package/lib/workroom/accepted-source-memory-application.js.map +0 -1
  748. package/lib/workroom/accepted-source-projector.d.ts +0 -89
  749. package/lib/workroom/accepted-source-projector.d.ts.map +0 -1
  750. package/lib/workroom/accepted-source-projector.js +0 -281
  751. package/lib/workroom/accepted-source-projector.js.map +0 -1
  752. package/lib/workroom/assignment-authority-grant-application.d.ts +0 -125
  753. package/lib/workroom/assignment-authority-grant-application.d.ts.map +0 -1
  754. package/lib/workroom/assignment-authority-grant-application.js +0 -318
  755. package/lib/workroom/assignment-authority-grant-application.js.map +0 -1
  756. package/lib/workroom/assignment-authority-grant-repository.d.ts +0 -152
  757. package/lib/workroom/assignment-authority-grant-repository.d.ts.map +0 -1
  758. package/lib/workroom/assignment-authority-grant-repository.js +0 -389
  759. package/lib/workroom/assignment-authority-grant-repository.js.map +0 -1
  760. package/lib/workroom/assignment-authority.d.ts +0 -75
  761. package/lib/workroom/assignment-authority.d.ts.map +0 -1
  762. package/lib/workroom/assignment-authority.js +0 -179
  763. package/lib/workroom/assignment-authority.js.map +0 -1
  764. package/lib/workroom/assignment-executor.d.ts +0 -110
  765. package/lib/workroom/assignment-executor.d.ts.map +0 -1
  766. package/lib/workroom/assignment-executor.js +0 -371
  767. package/lib/workroom/assignment-executor.js.map +0 -1
  768. package/lib/workroom/assignment-observation-ingress.d.ts +0 -21
  769. package/lib/workroom/assignment-observation-ingress.d.ts.map +0 -1
  770. package/lib/workroom/assignment-observation-ingress.js +0 -24
  771. package/lib/workroom/assignment-observation-ingress.js.map +0 -1
  772. package/lib/workroom/canonical-value.d.ts +0 -7
  773. package/lib/workroom/canonical-value.d.ts.map +0 -1
  774. package/lib/workroom/canonical-value.js +0 -32
  775. package/lib/workroom/canonical-value.js.map +0 -1
  776. package/lib/workroom/catalog-definition.d.ts +0 -52
  777. package/lib/workroom/catalog-definition.d.ts.map +0 -1
  778. package/lib/workroom/catalog-definition.js +0 -6
  779. package/lib/workroom/catalog-definition.js.map +0 -1
  780. package/lib/workroom/catalog.d.ts +0 -80
  781. package/lib/workroom/catalog.d.ts.map +0 -1
  782. package/lib/workroom/catalog.js +0 -386
  783. package/lib/workroom/catalog.js.map +0 -1
  784. package/lib/workroom/coding-assignment-executor.d.ts +0 -90
  785. package/lib/workroom/coding-assignment-executor.d.ts.map +0 -1
  786. package/lib/workroom/coding-assignment-executor.js +0 -250
  787. package/lib/workroom/coding-assignment-executor.js.map +0 -1
  788. package/lib/workroom/coding-git-objects.d.ts +0 -17
  789. package/lib/workroom/coding-git-objects.d.ts.map +0 -1
  790. package/lib/workroom/coding-git-objects.js +0 -68
  791. package/lib/workroom/coding-git-objects.js.map +0 -1
  792. package/lib/workroom/database-project-knowledge-journal.d.ts +0 -62
  793. package/lib/workroom/database-project-knowledge-journal.d.ts.map +0 -1
  794. package/lib/workroom/database-project-knowledge-journal.js +0 -161
  795. package/lib/workroom/database-project-knowledge-journal.js.map +0 -1
  796. package/lib/workroom/durable-file-store.d.ts +0 -56
  797. package/lib/workroom/durable-file-store.d.ts.map +0 -1
  798. package/lib/workroom/durable-file-store.js +0 -125
  799. package/lib/workroom/durable-file-store.js.map +0 -1
  800. package/lib/workroom/dynamic-workflow-planner.d.ts +0 -86
  801. package/lib/workroom/dynamic-workflow-planner.d.ts.map +0 -1
  802. package/lib/workroom/dynamic-workflow-planner.js +0 -260
  803. package/lib/workroom/dynamic-workflow-planner.js.map +0 -1
  804. package/lib/workroom/effect-blocker-repository.d.ts +0 -51
  805. package/lib/workroom/effect-blocker-repository.d.ts.map +0 -1
  806. package/lib/workroom/effect-blocker-repository.js +0 -174
  807. package/lib/workroom/effect-blocker-repository.js.map +0 -1
  808. package/lib/workroom/effect-ledger.d.ts +0 -211
  809. package/lib/workroom/effect-ledger.d.ts.map +0 -1
  810. package/lib/workroom/effect-ledger.js +0 -484
  811. package/lib/workroom/effect-ledger.js.map +0 -1
  812. package/lib/workroom/file-accepted-source-memory-repository.d.ts +0 -15
  813. package/lib/workroom/file-accepted-source-memory-repository.d.ts.map +0 -1
  814. package/lib/workroom/file-accepted-source-memory-repository.js +0 -136
  815. package/lib/workroom/file-accepted-source-memory-repository.js.map +0 -1
  816. package/lib/workroom/file-coding-execution-store.d.ts +0 -25
  817. package/lib/workroom/file-coding-execution-store.d.ts.map +0 -1
  818. package/lib/workroom/file-coding-execution-store.js +0 -122
  819. package/lib/workroom/file-coding-execution-store.js.map +0 -1
  820. package/lib/workroom/file-effect-ledger.d.ts +0 -10
  821. package/lib/workroom/file-effect-ledger.d.ts.map +0 -1
  822. package/lib/workroom/file-effect-ledger.js +0 -121
  823. package/lib/workroom/file-effect-ledger.js.map +0 -1
  824. package/lib/workroom/file-human-ingress-application.d.ts +0 -10
  825. package/lib/workroom/file-human-ingress-application.d.ts.map +0 -1
  826. package/lib/workroom/file-human-ingress-application.js +0 -177
  827. package/lib/workroom/file-human-ingress-application.js.map +0 -1
  828. package/lib/workroom/file-human-ingress.d.ts +0 -24
  829. package/lib/workroom/file-human-ingress.d.ts.map +0 -1
  830. package/lib/workroom/file-human-ingress.js +0 -234
  831. package/lib/workroom/file-human-ingress.js.map +0 -1
  832. package/lib/workroom/file-interaction-space-binding-repository.d.ts +0 -24
  833. package/lib/workroom/file-interaction-space-binding-repository.d.ts.map +0 -1
  834. package/lib/workroom/file-interaction-space-binding-repository.js +0 -293
  835. package/lib/workroom/file-interaction-space-binding-repository.js.map +0 -1
  836. package/lib/workroom/file-profile-journal.d.ts +0 -33
  837. package/lib/workroom/file-profile-journal.d.ts.map +0 -1
  838. package/lib/workroom/file-profile-journal.js +0 -311
  839. package/lib/workroom/file-profile-journal.js.map +0 -1
  840. package/lib/workroom/git-workspace-gateway.d.ts +0 -152
  841. package/lib/workroom/git-workspace-gateway.d.ts.map +0 -1
  842. package/lib/workroom/git-workspace-gateway.js +0 -257
  843. package/lib/workroom/git-workspace-gateway.js.map +0 -1
  844. package/lib/workroom/github-workspace-transport.d.ts +0 -30
  845. package/lib/workroom/github-workspace-transport.d.ts.map +0 -1
  846. package/lib/workroom/github-workspace-transport.js +0 -224
  847. package/lib/workroom/github-workspace-transport.js.map +0 -1
  848. package/lib/workroom/governed-dispatch-reasons.d.ts +0 -10
  849. package/lib/workroom/governed-dispatch-reasons.d.ts.map +0 -1
  850. package/lib/workroom/governed-dispatch-reasons.js +0 -20
  851. package/lib/workroom/governed-dispatch-reasons.js.map +0 -1
  852. package/lib/workroom/human-ingress-application.d.ts +0 -128
  853. package/lib/workroom/human-ingress-application.d.ts.map +0 -1
  854. package/lib/workroom/human-ingress-application.js +0 -415
  855. package/lib/workroom/human-ingress-application.js.map +0 -1
  856. package/lib/workroom/human-ingress-orchestrator.d.ts +0 -99
  857. package/lib/workroom/human-ingress-orchestrator.d.ts.map +0 -1
  858. package/lib/workroom/human-ingress-orchestrator.js +0 -262
  859. package/lib/workroom/human-ingress-orchestrator.js.map +0 -1
  860. package/lib/workroom/human-ingress-source-reader.d.ts +0 -29
  861. package/lib/workroom/human-ingress-source-reader.d.ts.map +0 -1
  862. package/lib/workroom/human-ingress-source-reader.js +0 -126
  863. package/lib/workroom/human-ingress-source-reader.js.map +0 -1
  864. package/lib/workroom/human-ingress.d.ts +0 -182
  865. package/lib/workroom/human-ingress.d.ts.map +0 -1
  866. package/lib/workroom/human-ingress.js +0 -526
  867. package/lib/workroom/human-ingress.js.map +0 -1
  868. package/lib/workroom/interaction-space-binding-service.d.ts +0 -57
  869. package/lib/workroom/interaction-space-binding-service.d.ts.map +0 -1
  870. package/lib/workroom/interaction-space-binding-service.js +0 -197
  871. package/lib/workroom/interaction-space-binding-service.js.map +0 -1
  872. package/lib/workroom/interaction-space-router.d.ts +0 -75
  873. package/lib/workroom/interaction-space-router.d.ts.map +0 -1
  874. package/lib/workroom/interaction-space-router.js +0 -243
  875. package/lib/workroom/interaction-space-router.js.map +0 -1
  876. package/lib/workroom/journal/activatable-journal.d.ts +0 -15
  877. package/lib/workroom/journal/activatable-journal.d.ts.map +0 -1
  878. package/lib/workroom/journal/activatable-journal.js +0 -39
  879. package/lib/workroom/journal/activatable-journal.js.map +0 -1
  880. package/lib/workroom/journal/contracts.d.ts +0 -141
  881. package/lib/workroom/journal/contracts.d.ts.map +0 -1
  882. package/lib/workroom/journal/contracts.js +0 -19
  883. package/lib/workroom/journal/contracts.js.map +0 -1
  884. package/lib/workroom/journal/database-journal.d.ts +0 -31
  885. package/lib/workroom/journal/database-journal.d.ts.map +0 -1
  886. package/lib/workroom/journal/database-journal.js +0 -118
  887. package/lib/workroom/journal/database-journal.js.map +0 -1
  888. package/lib/workroom/journal/event-codec.d.ts +0 -26
  889. package/lib/workroom/journal/event-codec.d.ts.map +0 -1
  890. package/lib/workroom/journal/event-codec.js +0 -243
  891. package/lib/workroom/journal/event-codec.js.map +0 -1
  892. package/lib/workroom/journal/event-validation.d.ts +0 -10
  893. package/lib/workroom/journal/event-validation.d.ts.map +0 -1
  894. package/lib/workroom/journal/event-validation.js +0 -671
  895. package/lib/workroom/journal/event-validation.js.map +0 -1
  896. package/lib/workroom/journal/file-journal.d.ts +0 -15
  897. package/lib/workroom/journal/file-journal.d.ts.map +0 -1
  898. package/lib/workroom/journal/file-journal.js +0 -272
  899. package/lib/workroom/journal/file-journal.js.map +0 -1
  900. package/lib/workroom/journal/index.d.ts +0 -9
  901. package/lib/workroom/journal/index.d.ts.map +0 -1
  902. package/lib/workroom/journal/index.js +0 -8
  903. package/lib/workroom/journal/index.js.map +0 -1
  904. package/lib/workroom/journal/memory-journal.d.ts +0 -27
  905. package/lib/workroom/journal/memory-journal.d.ts.map +0 -1
  906. package/lib/workroom/journal/memory-journal.js +0 -103
  907. package/lib/workroom/journal/memory-journal.js.map +0 -1
  908. package/lib/workroom/journal/payload-governance.d.ts +0 -29
  909. package/lib/workroom/journal/payload-governance.d.ts.map +0 -1
  910. package/lib/workroom/journal/payload-governance.js +0 -282
  911. package/lib/workroom/journal/payload-governance.js.map +0 -1
  912. package/lib/workroom/journal/payload-reference.d.ts +0 -9
  913. package/lib/workroom/journal/payload-reference.d.ts.map +0 -1
  914. package/lib/workroom/journal/payload-reference.js +0 -60
  915. package/lib/workroom/journal/payload-reference.js.map +0 -1
  916. package/lib/workroom/journal/stored-event-projection.d.ts +0 -6
  917. package/lib/workroom/journal/stored-event-projection.d.ts.map +0 -1
  918. package/lib/workroom/journal/stored-event-projection.js +0 -280
  919. package/lib/workroom/journal/stored-event-projection.js.map +0 -1
  920. package/lib/workroom/journal-model.d.ts +0 -40
  921. package/lib/workroom/journal-model.d.ts.map +0 -1
  922. package/lib/workroom/journal-model.js +0 -12
  923. package/lib/workroom/journal-model.js.map +0 -1
  924. package/lib/workroom/kernel-contracts.d.ts +0 -168
  925. package/lib/workroom/kernel-contracts.d.ts.map +0 -1
  926. package/lib/workroom/kernel-contracts.js +0 -2
  927. package/lib/workroom/kernel-contracts.js.map +0 -1
  928. package/lib/workroom/kernel-state.d.ts +0 -5
  929. package/lib/workroom/kernel-state.d.ts.map +0 -1
  930. package/lib/workroom/kernel-state.js +0 -885
  931. package/lib/workroom/kernel-state.js.map +0 -1
  932. package/lib/workroom/legacy-embedded-payload-migration.d.ts +0 -89
  933. package/lib/workroom/legacy-embedded-payload-migration.d.ts.map +0 -1
  934. package/lib/workroom/legacy-embedded-payload-migration.js +0 -312
  935. package/lib/workroom/legacy-embedded-payload-migration.js.map +0 -1
  936. package/lib/workroom/legacy-run-offline-migration.d.ts +0 -84
  937. package/lib/workroom/legacy-run-offline-migration.d.ts.map +0 -1
  938. package/lib/workroom/legacy-run-offline-migration.js +0 -470
  939. package/lib/workroom/legacy-run-offline-migration.js.map +0 -1
  940. package/lib/workroom/local-assignment-issuance.d.ts +0 -68
  941. package/lib/workroom/local-assignment-issuance.d.ts.map +0 -1
  942. package/lib/workroom/local-assignment-issuance.js +0 -128
  943. package/lib/workroom/local-assignment-issuance.js.map +0 -1
  944. package/lib/workroom/plan-approval-control.d.ts +0 -52
  945. package/lib/workroom/plan-approval-control.d.ts.map +0 -1
  946. package/lib/workroom/plan-approval-control.js +0 -9
  947. package/lib/workroom/plan-approval-control.js.map +0 -1
  948. package/lib/workroom/plan-revision.d.ts +0 -44
  949. package/lib/workroom/plan-revision.d.ts.map +0 -1
  950. package/lib/workroom/plan-revision.js +0 -133
  951. package/lib/workroom/plan-revision.js.map +0 -1
  952. package/lib/workroom/profile-compiler.d.ts +0 -130
  953. package/lib/workroom/profile-compiler.d.ts.map +0 -1
  954. package/lib/workroom/profile-compiler.js +0 -357
  955. package/lib/workroom/profile-compiler.js.map +0 -1
  956. package/lib/workroom/profile-registry.d.ts +0 -191
  957. package/lib/workroom/profile-registry.d.ts.map +0 -1
  958. package/lib/workroom/profile-registry.js +0 -698
  959. package/lib/workroom/profile-registry.js.map +0 -1
  960. package/lib/workroom/project-knowledge-registry.d.ts +0 -136
  961. package/lib/workroom/project-knowledge-registry.d.ts.map +0 -1
  962. package/lib/workroom/project-knowledge-registry.js +0 -429
  963. package/lib/workroom/project-knowledge-registry.js.map +0 -1
  964. package/lib/workroom/projection-outbox/contracts.d.ts +0 -195
  965. package/lib/workroom/projection-outbox/contracts.d.ts.map +0 -1
  966. package/lib/workroom/projection-outbox/contracts.js +0 -11
  967. package/lib/workroom/projection-outbox/contracts.js.map +0 -1
  968. package/lib/workroom/projection-outbox/delivery-worker.d.ts +0 -22
  969. package/lib/workroom/projection-outbox/delivery-worker.d.ts.map +0 -1
  970. package/lib/workroom/projection-outbox/delivery-worker.js +0 -96
  971. package/lib/workroom/projection-outbox/delivery-worker.js.map +0 -1
  972. package/lib/workroom/projection-outbox/file-repository.d.ts +0 -11
  973. package/lib/workroom/projection-outbox/file-repository.d.ts.map +0 -1
  974. package/lib/workroom/projection-outbox/file-repository.js +0 -89
  975. package/lib/workroom/projection-outbox/file-repository.js.map +0 -1
  976. package/lib/workroom/projection-outbox/index.d.ts +0 -10
  977. package/lib/workroom/projection-outbox/index.d.ts.map +0 -1
  978. package/lib/workroom/projection-outbox/index.js +0 -8
  979. package/lib/workroom/projection-outbox/index.js.map +0 -1
  980. package/lib/workroom/projection-outbox/memory-repository.d.ts +0 -11
  981. package/lib/workroom/projection-outbox/memory-repository.d.ts.map +0 -1
  982. package/lib/workroom/projection-outbox/memory-repository.js +0 -40
  983. package/lib/workroom/projection-outbox/memory-repository.js.map +0 -1
  984. package/lib/workroom/projection-outbox/projector.d.ts +0 -36
  985. package/lib/workroom/projection-outbox/projector.d.ts.map +0 -1
  986. package/lib/workroom/projection-outbox/projector.js +0 -517
  987. package/lib/workroom/projection-outbox/projector.js.map +0 -1
  988. package/lib/workroom/projection-outbox/repository-state.d.ts +0 -17
  989. package/lib/workroom/projection-outbox/repository-state.d.ts.map +0 -1
  990. package/lib/workroom/projection-outbox/repository-state.js +0 -343
  991. package/lib/workroom/projection-outbox/repository-state.js.map +0 -1
  992. package/lib/workroom/projection-outbox/tracer.d.ts +0 -19
  993. package/lib/workroom/projection-outbox/tracer.d.ts.map +0 -1
  994. package/lib/workroom/projection-outbox/tracer.js +0 -201
  995. package/lib/workroom/projection-outbox/tracer.js.map +0 -1
  996. package/lib/workroom/remote-assignment-dispatch-command.d.ts +0 -31
  997. package/lib/workroom/remote-assignment-dispatch-command.d.ts.map +0 -1
  998. package/lib/workroom/remote-assignment-dispatch-command.js +0 -56
  999. package/lib/workroom/remote-assignment-dispatch-command.js.map +0 -1
  1000. package/lib/workroom/remote-assignment-issuance.d.ts +0 -88
  1001. package/lib/workroom/remote-assignment-issuance.d.ts.map +0 -1
  1002. package/lib/workroom/remote-assignment-issuance.js +0 -201
  1003. package/lib/workroom/remote-assignment-issuance.js.map +0 -1
  1004. package/lib/workroom/remote-callback-application.d.ts +0 -115
  1005. package/lib/workroom/remote-callback-application.d.ts.map +0 -1
  1006. package/lib/workroom/remote-callback-application.js +0 -570
  1007. package/lib/workroom/remote-callback-application.js.map +0 -1
  1008. package/lib/workroom/remote-callback-gateway.d.ts +0 -60
  1009. package/lib/workroom/remote-callback-gateway.d.ts.map +0 -1
  1010. package/lib/workroom/remote-callback-gateway.js +0 -173
  1011. package/lib/workroom/remote-callback-gateway.js.map +0 -1
  1012. package/lib/workroom/remote-callback-inbox.d.ts +0 -278
  1013. package/lib/workroom/remote-callback-inbox.d.ts.map +0 -1
  1014. package/lib/workroom/remote-callback-inbox.js +0 -1088
  1015. package/lib/workroom/remote-callback-inbox.js.map +0 -1
  1016. package/lib/workroom/remote-callback-reconciliation-worker.d.ts +0 -60
  1017. package/lib/workroom/remote-callback-reconciliation-worker.d.ts.map +0 -1
  1018. package/lib/workroom/remote-callback-reconciliation-worker.js +0 -197
  1019. package/lib/workroom/remote-callback-reconciliation-worker.js.map +0 -1
  1020. package/lib/workroom/remote-dispatch-admission.d.ts +0 -45
  1021. package/lib/workroom/remote-dispatch-admission.d.ts.map +0 -1
  1022. package/lib/workroom/remote-dispatch-admission.js +0 -187
  1023. package/lib/workroom/remote-dispatch-admission.js.map +0 -1
  1024. package/lib/workroom/remote-dispatch-outbox.d.ts +0 -204
  1025. package/lib/workroom/remote-dispatch-outbox.d.ts.map +0 -1
  1026. package/lib/workroom/remote-dispatch-outbox.js +0 -768
  1027. package/lib/workroom/remote-dispatch-outbox.js.map +0 -1
  1028. package/lib/workroom/remote-dispatch-scheduler.d.ts +0 -36
  1029. package/lib/workroom/remote-dispatch-scheduler.d.ts.map +0 -1
  1030. package/lib/workroom/remote-dispatch-scheduler.js +0 -133
  1031. package/lib/workroom/remote-dispatch-scheduler.js.map +0 -1
  1032. package/lib/workroom/remote-dispatch-worker.d.ts +0 -22
  1033. package/lib/workroom/remote-dispatch-worker.d.ts.map +0 -1
  1034. package/lib/workroom/remote-dispatch-worker.js +0 -124
  1035. package/lib/workroom/remote-dispatch-worker.js.map +0 -1
  1036. package/lib/workroom/remote-dispatch.d.ts +0 -79
  1037. package/lib/workroom/remote-dispatch.d.ts.map +0 -1
  1038. package/lib/workroom/remote-dispatch.js +0 -220
  1039. package/lib/workroom/remote-dispatch.js.map +0 -1
  1040. package/lib/workroom/remote-executor.d.ts +0 -15
  1041. package/lib/workroom/remote-executor.d.ts.map +0 -1
  1042. package/lib/workroom/remote-executor.js +0 -21
  1043. package/lib/workroom/remote-executor.js.map +0 -1
  1044. package/lib/workroom/role-capability-snapshot.d.ts +0 -88
  1045. package/lib/workroom/role-capability-snapshot.d.ts.map +0 -1
  1046. package/lib/workroom/role-capability-snapshot.js +0 -456
  1047. package/lib/workroom/role-capability-snapshot.js.map +0 -1
  1048. package/lib/workroom/runtime.d.ts +0 -142
  1049. package/lib/workroom/runtime.d.ts.map +0 -1
  1050. package/lib/workroom/runtime.js +0 -543
  1051. package/lib/workroom/runtime.js.map +0 -1
  1052. package/lib/workroom/scheduler-priority-control.d.ts +0 -35
  1053. package/lib/workroom/scheduler-priority-control.d.ts.map +0 -1
  1054. package/lib/workroom/scheduler-priority-control.js +0 -9
  1055. package/lib/workroom/scheduler-priority-control.js.map +0 -1
  1056. package/lib/workroom/software-delivery-plan.d.ts +0 -32
  1057. package/lib/workroom/software-delivery-plan.d.ts.map +0 -1
  1058. package/lib/workroom/software-delivery-plan.js +0 -60
  1059. package/lib/workroom/software-delivery-plan.js.map +0 -1
  1060. package/lib/workroom/validate-catalog.d.ts +0 -2
  1061. package/lib/workroom/validate-catalog.d.ts.map +0 -1
  1062. package/lib/workroom/validate-catalog.js +0 -230
  1063. package/lib/workroom/validate-catalog.js.map +0 -1
  1064. package/lib/workroom/workflow-plan-builder.d.ts +0 -88
  1065. package/lib/workroom/workflow-plan-builder.d.ts.map +0 -1
  1066. package/lib/workroom/workflow-plan-builder.js +0 -232
  1067. package/lib/workroom/workflow-plan-builder.js.map +0 -1
  1068. package/lib/workroom/workroom-assignment-knowledge-context.d.ts +0 -102
  1069. package/lib/workroom/workroom-assignment-knowledge-context.d.ts.map +0 -1
  1070. package/lib/workroom/workroom-assignment-knowledge-context.js +0 -127
  1071. package/lib/workroom/workroom-assignment-knowledge-context.js.map +0 -1
  1072. package/lib/workroom/workroom-kernel.d.ts +0 -157
  1073. package/lib/workroom/workroom-kernel.d.ts.map +0 -1
  1074. package/lib/workroom/workroom-kernel.js +0 -1526
  1075. package/lib/workroom/workroom-kernel.js.map +0 -1
  1076. package/lib/workroom/workroom-preemption.d.ts +0 -65
  1077. package/lib/workroom/workroom-preemption.d.ts.map +0 -1
  1078. package/lib/workroom/workroom-preemption.js +0 -213
  1079. package/lib/workroom/workroom-preemption.js.map +0 -1
  1080. package/lib/workroom/workroom-run-control.d.ts +0 -69
  1081. package/lib/workroom/workroom-run-control.d.ts.map +0 -1
  1082. package/lib/workroom/workroom-run-control.js +0 -144
  1083. package/lib/workroom/workroom-run-control.js.map +0 -1
  1084. package/lib/workroom/workroom-scheduler-application.d.ts +0 -43
  1085. package/lib/workroom/workroom-scheduler-application.d.ts.map +0 -1
  1086. package/lib/workroom/workroom-scheduler-application.js +0 -71
  1087. package/lib/workroom/workroom-scheduler-application.js.map +0 -1
  1088. package/lib/workroom/workroom-scheduler.d.ts +0 -135
  1089. package/lib/workroom/workroom-scheduler.d.ts.map +0 -1
  1090. package/lib/workroom/workroom-scheduler.js +0 -660
  1091. package/lib/workroom/workroom-scheduler.js.map +0 -1
  1092. package/lib/workroom/workroom-task-report-store.d.ts +0 -131
  1093. package/lib/workroom/workroom-task-report-store.d.ts.map +0 -1
  1094. package/lib/workroom/workroom-task-report-store.js +0 -528
  1095. package/lib/workroom/workroom-task-report-store.js.map +0 -1
@@ -1,930 +0,0 @@
1
- import { canonicalWorkroomJson, compareCanonicalWorkroomText, deepFreezeWorkroomValue as deepFreeze, digestCanonicalWorkroomValue as digest, } from '../workroom/canonical-value.js';
2
- export function digestPayloadSubjectRef(tenantId, subjectRef) {
3
- text(tenantId, 'Payload subject tenantId');
4
- text(subjectRef, 'Payload subject ref');
5
- return digest({ version: 1, tenantId, subjectRef });
6
- }
7
- export function createPayloadLocationManifest(input) {
8
- if (input.version !== 1)
9
- throw new Error('Payload Location Manifest version is invalid');
10
- text(input.tenantId, 'Location Manifest tenantId');
11
- text(input.projectId, 'Location Manifest projectId');
12
- text(input.objectId, 'Location Manifest objectId');
13
- text(input.vaultObjectId, 'Location Manifest vaultObjectId');
14
- requiredDigest(input.descriptorDigest, 'Location Manifest Descriptor digest');
15
- positive(input.revision, 'Location Manifest revision');
16
- if (!Array.isArray(input.locations) || input.locations.length === 0) {
17
- throw new Error('Payload Location Manifest must contain at least one location');
18
- }
19
- const locations = input.locations.map(location => {
20
- text(location.id, 'Payload location id');
21
- if (!['vault_primary', 'index', 'cache', 'replica', 'backup', 'processor'].includes(location.kind)) {
22
- throw new Error('Payload location kind is invalid');
23
- }
24
- if (!['crypto_erase', 'delete', 'processor_recall'].includes(location.deletionMode)) {
25
- throw new Error('Payload location deletion mode is invalid');
26
- }
27
- requiredDigest(location.authorityDigest, 'Payload location authority digest');
28
- return deepFreeze(structuredClone(location));
29
- }).sort((left, right) => compareCanonicalWorkroomText(left.id, right.id));
30
- if (new Set(locations.map(location => location.id)).size !== locations.length) {
31
- throw new Error('Payload Location Manifest contains duplicate locations');
32
- }
33
- if (locations.filter(location => location.deletionMode === 'crypto_erase').length > 1) {
34
- throw new Error('Payload Location Manifest has multiple object-key authorities');
35
- }
36
- const body = deepFreeze({
37
- version: 1,
38
- tenantId: input.tenantId,
39
- projectId: input.projectId,
40
- objectId: input.objectId,
41
- vaultObjectId: input.vaultObjectId,
42
- descriptorDigest: input.descriptorDigest,
43
- revision: input.revision,
44
- locations,
45
- });
46
- return deepFreeze({ ...body, digest: digest(body) });
47
- }
48
- export function createPayloadLifecycleObjectAuthority(input) {
49
- if (input.version !== 1)
50
- throw new Error('Payload Lifecycle object authority version is invalid');
51
- assertHandle(input.handle);
52
- const manifest = createPayloadLocationManifest(input.locations);
53
- if (canonicalWorkroomJson(manifest) !== canonicalWorkroomJson(input.locations)
54
- || manifest.tenantId !== input.handle.tenantId
55
- || manifest.projectId !== input.handle.projectId
56
- || manifest.objectId !== input.handle.objectId
57
- || manifest.vaultObjectId !== input.handle.vaultObjectId
58
- || manifest.descriptorDigest !== input.handle.descriptorDigest
59
- || manifest.digest !== input.handle.locationManifestDigest) {
60
- throw new Error('Payload Lifecycle object/Location Manifest binding is invalid');
61
- }
62
- if (!input.retention || !['transient', 'operational', 'project_record', 'regulated_record']
63
- .includes(input.retention.class)
64
- || !Number.isSafeInteger(input.retention.minimumRetainUntil)
65
- || !Number.isSafeInteger(input.retention.deleteAfter)
66
- || input.retention.minimumRetainUntil < 0
67
- || input.retention.deleteAfter < input.retention.minimumRetainUntil) {
68
- throw new Error('Payload Lifecycle retention authority is invalid');
69
- }
70
- const subjectDigests = uniqueDigests(input.subjectDigests, 'Payload Lifecycle subject digest');
71
- const body = deepFreeze({
72
- version: 1,
73
- handle: structuredClone(input.handle),
74
- retention: structuredClone(input.retention),
75
- subjectDigests,
76
- locations: manifest,
77
- });
78
- return deepFreeze({ ...body, digest: digest(body) });
79
- }
80
- export function createPayloadLifecycleClockSnapshot(input) {
81
- if (input.version !== 1 || !Number.isSafeInteger(input.now) || input.now < 0
82
- || !Number.isSafeInteger(input.revision) || input.revision < 0) {
83
- throw new Error('Payload Lifecycle Kernel clock is invalid');
84
- }
85
- const body = deepFreeze({ version: 1, now: input.now, revision: input.revision });
86
- return deepFreeze({ ...body, digest: digest(body) });
87
- }
88
- export function replayPayloadLifecycle(projectId, objectId, events) {
89
- text(projectId, 'Lifecycle Project id');
90
- text(objectId, 'Lifecycle object id');
91
- let authority;
92
- const holds = {};
93
- const erasures = [];
94
- const purges = {};
95
- let cryptoErased;
96
- let purgeComplete;
97
- events.forEach((event, index) => {
98
- assertEvent(event, projectId, objectId, index);
99
- switch (event.type) {
100
- case 'object.registered':
101
- if (authority)
102
- throw new Error('Payload Lifecycle object is already registered');
103
- authority = createPayloadLifecycleObjectAuthority(event.payload.authority);
104
- assertGovernanceBinding(event.payload.governance, authority, 'register_object');
105
- assertCandidate(event.payload.governance, authority.digest);
106
- break;
107
- case 'hold.placed':
108
- if (!authority || holds[event.payload.id] || Object.keys(purges).length > 0
109
- || cryptoErased || purgeComplete) {
110
- throw new Error('Payload Lifecycle Hold placement is invalid');
111
- }
112
- assertGovernanceBinding({ request: event.payload.placeRequest, decision: event.payload.placeDecision }, authority, 'place_hold');
113
- assertCandidate({ request: event.payload.placeRequest, decision: event.payload.placeDecision }, digest({
114
- holdId: event.payload.id,
115
- owner: event.payload.ownerPrincipalId,
116
- reasonCode: event.payload.reasonCode,
117
- reviewAt: event.payload.reviewAt,
118
- }));
119
- if (event.payload.placedAt !== event.payload.placeRequest.clock.now
120
- || event.payload.reviewAt <= event.payload.placedAt) {
121
- throw new Error('Payload Lifecycle Hold placement clock binding is invalid');
122
- }
123
- holds[event.payload.id] = deepFreeze(structuredClone(event.payload));
124
- break;
125
- case 'hold.reviewed': {
126
- const current = holds[event.payload.holdId];
127
- const nextReview = event.payload.hold.review;
128
- if (!current || current.release || current.review?.approved || !nextReview
129
- || canonicalWorkroomJson({ ...current, review: nextReview })
130
- !== canonicalWorkroomJson(event.payload.hold)) {
131
- throw new Error('Payload Lifecycle Hold review is stale');
132
- }
133
- assertGovernanceBinding({ request: nextReview.request, decision: nextReview.decision }, authority, 'review_hold');
134
- assertCandidate({ request: nextReview.request, decision: nextReview.decision }, digest({
135
- holdId: event.payload.holdId,
136
- approved: nextReview.approved,
137
- placeAuthority: current.placeDecision.authorityDigest,
138
- }));
139
- if (nextReview.reviewedAt !== nextReview.request.clock.now) {
140
- throw new Error('Payload Lifecycle Hold review clock binding is invalid');
141
- }
142
- holds[event.payload.holdId] = deepFreeze(structuredClone(event.payload.hold));
143
- break;
144
- }
145
- case 'hold.released': {
146
- const current = holds[event.payload.holdId];
147
- if (!current?.review?.approved || current.release)
148
- throw new Error('Payload Lifecycle Hold release is invalid');
149
- if (!event.payload.hold.release)
150
- throw new Error('Payload Lifecycle Hold release proof is unavailable');
151
- assertGovernanceBinding({ request: event.payload.hold.release.request, decision: event.payload.hold.release.decision }, authority, 'release_hold');
152
- assertCandidate({ request: event.payload.hold.release.request, decision: event.payload.hold.release.decision }, digest({
153
- holdId: event.payload.holdId,
154
- placeAuthority: current.placeDecision.authorityDigest,
155
- reviewAuthority: current.review.decision.authorityDigest,
156
- }));
157
- if (event.payload.hold.release.releasedAt !== event.payload.hold.release.request.clock.now) {
158
- throw new Error('Payload Lifecycle Hold release clock binding is invalid');
159
- }
160
- holds[event.payload.holdId] = deepFreeze(structuredClone(event.payload.hold));
161
- break;
162
- }
163
- case 'erasure.requested':
164
- if (!authority || !authority.subjectDigests.includes(event.payload.subjectDigest)) {
165
- throw new Error('Payload Lifecycle erasure subject binding is invalid');
166
- }
167
- assertGovernanceBinding({ request: event.payload.request, decision: event.payload.decision }, authority, 'request_subject_erasure');
168
- assertCandidate({ request: event.payload.request, decision: event.payload.decision }, digest({
169
- subjectDigest: event.payload.subjectDigest,
170
- resolverAuthorityDigest: event.payload.resolverAuthorityDigest,
171
- }));
172
- if (event.payload.requestedAt !== event.payload.request.clock.now) {
173
- throw new Error('Payload subject erasure clock binding is invalid');
174
- }
175
- erasures.push(deepFreeze(structuredClone(event.payload)));
176
- break;
177
- case 'purge.requested': {
178
- if (!authority || event.payload.objectAuthorityDigest !== authority.digest
179
- || event.payload.locationManifestDigest !== authority.locations.digest
180
- || event.payload.digest !== digestWithoutDigest(event.payload)) {
181
- throw new Error('Payload purge dispatch object authority is stale');
182
- }
183
- const exactLocation = authority.locations.locations.find(location => location.id === event.payload.location.id);
184
- if (!exactLocation || canonicalWorkroomJson(exactLocation) !== canonicalWorkroomJson(event.payload.location)
185
- || event.payload.id !== purgeId(projectId, objectId, exactLocation.id)
186
- || event.payload.requestedAt !== event.payload.governance.request.clock.now) {
187
- throw new Error('Payload purge dispatch Location Manifest binding is invalid');
188
- }
189
- assertGovernanceBinding(event.payload.governance, authority);
190
- const allowedActions = event.payload.reason === 'subject_erasure'
191
- ? ['request_subject_erasure', 'reconcile_purge']
192
- : ['schedule_retention_purge', 'reconcile_purge'];
193
- if (!allowedActions.includes(event.payload.governance.request.action)) {
194
- throw new Error('Payload purge governance action/reason binding is invalid');
195
- }
196
- const current = purges[event.payload.id];
197
- switch (event.payload.governance.request.action) {
198
- case 'request_subject_erasure':
199
- if (!erasures.some(value => value.request.digest === event.payload.requestDigest)) {
200
- throw new Error('Payload subject erasure purge lacks its exact erasure fact');
201
- }
202
- break;
203
- case 'schedule_retention_purge':
204
- assertCandidate(event.payload.governance, digest({ deleteAfter: authority.retention.deleteAfter }));
205
- break;
206
- case 'reconcile_purge':
207
- if (!current?.receipt)
208
- throw new Error('Payload purge reconciliation lacks its prior receipt');
209
- assertCandidate(event.payload.governance, digest({ purgeId: event.payload.id, receiptDigest: current.receipt.digest }));
210
- break;
211
- default:
212
- throw new Error('Payload purge governance action is invalid');
213
- }
214
- if ((!current && (event.payload.attempt !== 1 || event.payload.fence !== 1))
215
- || (current && (event.payload.attempt !== current.dispatch.attempt + 1
216
- || event.payload.fence !== current.dispatch.fence + 1
217
- || current.receipt?.status === 'confirmed'))) {
218
- throw new Error('Payload purge retry attempt/fence is invalid');
219
- }
220
- purges[event.payload.id] = { dispatch: deepFreeze(structuredClone(event.payload)) };
221
- break;
222
- }
223
- case 'purge.receipt': {
224
- const current = purges[event.payload.purgeId];
225
- if (!current || current.receipt
226
- || !receiptMatchesDispatch(event.payload, current.dispatch)) {
227
- throw new Error('Payload purge receipt is stale');
228
- }
229
- assertReceipt(event.payload, current.dispatch);
230
- purges[event.payload.purgeId] = {
231
- dispatch: current.dispatch,
232
- receipt: deepFreeze(structuredClone(event.payload)),
233
- };
234
- break;
235
- }
236
- case 'object.crypto_erased':
237
- if (cryptoErased || !authority || event.payload.objectAuthorityDigest !== authority.digest
238
- || event.payload.locationManifestDigest !== authority.locations.digest
239
- || event.payload.digest !== digestWithoutDigest(event.payload)) {
240
- throw new Error('Payload crypto-erasure tombstone is invalid');
241
- }
242
- {
243
- const confirmation = Object.values(purges).find(value => value.dispatch.location.id === event.payload.locationId
244
- && value.dispatch.location.deletionMode === 'crypto_erase'
245
- && value.receipt?.status === 'confirmed'
246
- && value.receipt.cryptoEraseReceiptDigest === event.payload.cryptoEraseReceiptDigest
247
- && value.receipt.observedAt === event.payload.erasedAt);
248
- if (!confirmation)
249
- throw new Error('Payload crypto-erasure tombstone lacks an exact confirmed receipt');
250
- }
251
- cryptoErased = deepFreeze(structuredClone(event.payload));
252
- break;
253
- case 'object.purge_complete':
254
- if (purgeComplete || !authority || event.payload.objectAuthorityDigest !== authority.digest
255
- || event.payload.locationManifestDigest !== authority.locations.digest
256
- || event.payload.digest !== digestWithoutDigest(event.payload)
257
- || Object.keys(purges).length !== authority.locations.locations.length
258
- || Object.values(purges).some(value => value.receipt?.status !== 'confirmed')) {
259
- throw new Error('Payload purge completion is not supported by all location receipts');
260
- }
261
- {
262
- const confirmed = Object.values(purges).map(value => value.receipt);
263
- if (canonicalWorkroomJson(event.payload.receiptDigests)
264
- !== canonicalWorkroomJson(confirmed.map(value => value.digest).sort())
265
- || event.payload.completedAt !== Math.max(...confirmed.map(value => value.observedAt))) {
266
- throw new Error('Payload purge completion receipt summary is stale');
267
- }
268
- }
269
- purgeComplete = deepFreeze(structuredClone(event.payload));
270
- break;
271
- }
272
- });
273
- const sequence = events.at(-1)?.sequence ?? -1;
274
- const body = deepFreeze({
275
- projectId,
276
- objectId,
277
- sequence,
278
- ...(authority ? { authority } : {}),
279
- holds: Object.fromEntries(Object.entries(holds).sort(([left], [right]) => compareCanonicalWorkroomText(left, right))),
280
- erasures,
281
- purges: Object.fromEntries(Object.entries(purges).sort(([left], [right]) => compareCanonicalWorkroomText(left, right))),
282
- ...(cryptoErased ? { cryptoErased } : {}),
283
- ...(purgeComplete ? { purgeComplete } : {}),
284
- });
285
- return deepFreeze({ ...body, digest: digest(body) });
286
- }
287
- export class PayloadLifecycleRuntime {
288
- options;
289
- control;
290
- worker;
291
- constructor(options) {
292
- this.options = options;
293
- this.control = Object.freeze({
294
- register: (command, signal) => this.#register(command, signal),
295
- placeHold: (command, signal) => this.#placeHold(command, signal),
296
- reviewHold: (command, signal) => this.#reviewHold(command, signal),
297
- releaseHold: (command, signal) => this.#releaseHold(command, signal),
298
- requestSubjectErasure: (command, signal) => this.#requestErasure(command, signal),
299
- evaluateRetention: (command, signal) => this.#evaluateRetention(command, signal),
300
- reconcile: (command, signal) => this.#reconcile(command, signal),
301
- });
302
- this.worker = Object.freeze({
303
- dispatch: (projectId, objectId, signal) => this.#dispatch(projectId, objectId, signal),
304
- drainProject: (projectId, signal) => this.#drainProject(projectId, signal),
305
- });
306
- }
307
- async read(projectId, objectId) {
308
- const events = await this.options.journal.read(projectId, objectId);
309
- const verifiedRequests = new Map();
310
- for (const [eventIndex, event] of events.entries()) {
311
- const stateBefore = replayPayloadLifecycle(projectId, objectId, events.slice(0, event.sequence));
312
- for (const proof of eventAuthorityProofs(event)) {
313
- const firstStateDigest = verifiedRequests.get(proof.request.digest);
314
- if (firstStateDigest === undefined) {
315
- if (proof.request.currentStateDigest !== stateBefore.digest) {
316
- throw new Error('Payload Lifecycle persisted governance proof state binding is stale');
317
- }
318
- verifiedRequests.set(proof.request.digest, stateBefore.digest);
319
- }
320
- else if (firstStateDigest !== proof.request.currentStateDigest) {
321
- throw new Error('Payload Lifecycle persisted governance proof replay binding is stale');
322
- }
323
- if (!await this.options.authority.verify(proof.request, proof.decision)) {
324
- throw new Error('Payload Lifecycle persisted governance proof is untrusted');
325
- }
326
- }
327
- if (event.type === 'purge.receipt') {
328
- const dispatch = stateBefore.purges[event.payload.purgeId]?.dispatch;
329
- if (!dispatch || !await this.options.receipts.verify(event.payload, dispatch)) {
330
- throw new Error('Payload Lifecycle persisted purge receipt is untrusted');
331
- }
332
- if (event.payload.status === 'confirmed' && dispatch.location.deletionMode === 'crypto_erase') {
333
- const tombstone = events[eventIndex + 1];
334
- if (!tombstone || tombstone.type !== 'object.crypto_erased'
335
- || tombstone.payload.cryptoEraseReceiptDigest !== event.payload.cryptoEraseReceiptDigest
336
- || tombstone.payload.locationId !== event.payload.locationId) {
337
- throw new Error('Payload crypto-erasure confirmation lacks its atomic tombstone');
338
- }
339
- }
340
- }
341
- }
342
- return replayPayloadLifecycle(projectId, objectId, events);
343
- }
344
- async #register(command, signal) {
345
- exactKeys(command, ['version', 'operationId', 'authenticatedPrincipalId', 'handle'], 'register command');
346
- header(command, signal);
347
- const object = await this.options.objects.resolve(command.handle, signal);
348
- if (!object || canonicalWorkroomJson(object.handle) !== canonicalWorkroomJson(command.handle)) {
349
- throw new Error('Trusted Payload Lifecycle object authority is unavailable');
350
- }
351
- const current = await this.read(object.handle.projectId, object.handle.objectId);
352
- if (current.authority) {
353
- if (current.authority.digest !== object.digest)
354
- throw new Error('Payload Lifecycle object authority drift');
355
- return current;
356
- }
357
- const clock = await this.#clock(command.operationId, object.handle.projectId, object.handle.objectId, 'control');
358
- const governance = await this.#authorize('register_object', 'data_steward', command, object, current, object.digest, clock);
359
- await this.options.journal.append(object.handle.projectId, object.handle.objectId, current.sequence, [{
360
- type: 'object.registered', payload: { authority: object, governance },
361
- }]);
362
- return await this.read(object.handle.projectId, object.handle.objectId);
363
- }
364
- async #placeHold(command, signal) {
365
- exactKeys(command, [
366
- 'version', 'operationId', 'authenticatedPrincipalId', 'projectId', 'objectId',
367
- 'holdId', 'ownerPrincipalId', 'reasonCode', 'reviewAt',
368
- ], 'place Hold command');
369
- header(command, signal);
370
- text(command.holdId, 'Hold id');
371
- text(command.ownerPrincipalId, 'Hold owner');
372
- if (command.ownerPrincipalId !== command.authenticatedPrincipalId)
373
- throw new Error('Hold owner must place the Hold');
374
- if (!['legal_hold', 'investigation', 'regulatory_preservation'].includes(command.reasonCode)) {
375
- throw new Error('Hold reason code is invalid');
376
- }
377
- if (!Number.isSafeInteger(command.reviewAt) || command.reviewAt < 0) {
378
- throw new Error('Hold reviewAt is invalid');
379
- }
380
- const state = await this.#registered(command.projectId, command.objectId);
381
- const existing = state.holds[command.holdId];
382
- if (existing) {
383
- if (existing.ownerPrincipalId !== command.ownerPrincipalId
384
- || existing.reasonCode !== command.reasonCode
385
- || existing.reviewAt !== command.reviewAt) {
386
- throw new Error('Retention Hold idempotency binding drift');
387
- }
388
- return state;
389
- }
390
- if (Object.keys(state.purges).length > 0 || state.cryptoErased || state.purgeComplete) {
391
- throw new Error('Retention Hold cannot be placed after deletion is scheduled');
392
- }
393
- const clock = await this.#clock(command.operationId, command.projectId, command.objectId, 'control');
394
- if (command.reviewAt <= clock.now)
395
- throw new Error('Hold reviewAt must be after placement time');
396
- const candidate = digest({
397
- holdId: command.holdId,
398
- owner: command.ownerPrincipalId,
399
- reasonCode: command.reasonCode,
400
- reviewAt: command.reviewAt,
401
- });
402
- const proof = await this.#authorize('place_hold', 'data_steward', command, state.authority, state, candidate, clock);
403
- const hold = deepFreeze({
404
- id: command.holdId,
405
- ownerPrincipalId: command.ownerPrincipalId,
406
- reasonCode: command.reasonCode,
407
- placedAt: clock.now,
408
- reviewAt: command.reviewAt,
409
- placeRequest: proof.request,
410
- placeDecision: proof.decision,
411
- });
412
- await this.options.journal.append(command.projectId, command.objectId, state.sequence, [{
413
- type: 'hold.placed', payload: hold,
414
- }]);
415
- return await this.read(command.projectId, command.objectId);
416
- }
417
- async #reviewHold(command, signal) {
418
- exactKeys(command, [
419
- 'version', 'operationId', 'authenticatedPrincipalId', 'projectId', 'objectId', 'holdId', 'approved',
420
- ], 'review Hold command');
421
- header(command, signal);
422
- if (typeof command.approved !== 'boolean')
423
- throw new Error('Hold review decision is invalid');
424
- const state = await this.#registered(command.projectId, command.objectId);
425
- const hold = state.holds[command.holdId];
426
- if (!hold)
427
- throw new Error('Retention Hold is unavailable');
428
- if (hold.review?.approved) {
429
- if (!command.approved || hold.review.reviewerPrincipalId !== command.authenticatedPrincipalId) {
430
- throw new Error('Retention Hold review idempotency binding drift');
431
- }
432
- return state;
433
- }
434
- const clock = await this.#clock(command.operationId, command.projectId, command.objectId, 'control');
435
- const proof = await this.#authorize('review_hold', 'compliance', command, state.authority, state, digest({ holdId: command.holdId, approved: command.approved, placeAuthority: hold.placeDecision.authorityDigest }), clock);
436
- if (command.authenticatedPrincipalId === hold.ownerPrincipalId
437
- && proof.decision.separationPolicy?.allowsSelfReview !== true) {
438
- throw new Error('Retention Hold owner cannot self-review without exact separation policy');
439
- }
440
- const next = deepFreeze({
441
- ...structuredClone(hold),
442
- review: {
443
- approved: command.approved,
444
- reviewerPrincipalId: command.authenticatedPrincipalId,
445
- reviewedAt: clock.now,
446
- request: proof.request,
447
- decision: proof.decision,
448
- },
449
- });
450
- await this.options.journal.append(command.projectId, command.objectId, state.sequence, [{
451
- type: 'hold.reviewed', payload: { holdId: hold.id, hold: next },
452
- }]);
453
- return await this.read(command.projectId, command.objectId);
454
- }
455
- async #releaseHold(command, signal) {
456
- exactKeys(command, [
457
- 'version', 'operationId', 'authenticatedPrincipalId', 'projectId', 'objectId', 'holdId',
458
- ], 'release Hold command');
459
- header(command, signal);
460
- const state = await this.#registered(command.projectId, command.objectId);
461
- const hold = state.holds[command.holdId];
462
- if (!hold?.review?.approved)
463
- throw new Error('Retention Hold requires an approved independent review');
464
- if (command.authenticatedPrincipalId !== hold.ownerPrincipalId)
465
- throw new Error('Only the Hold owner can release it');
466
- if (hold.release)
467
- return state;
468
- if (hold.review.reviewerPrincipalId === hold.ownerPrincipalId
469
- && hold.review.decision.separationPolicy?.allowsSelfReview !== true) {
470
- throw new Error('Retention Hold release lacks an independent review');
471
- }
472
- const clock = await this.#clock(command.operationId, command.projectId, command.objectId, 'control');
473
- const proof = await this.#authorize('release_hold', 'data_steward', command, state.authority, state, digest({ holdId: hold.id, placeAuthority: hold.placeDecision.authorityDigest,
474
- reviewAuthority: hold.review.decision.authorityDigest }), clock);
475
- const next = deepFreeze({
476
- ...structuredClone(hold),
477
- release: {
478
- releasedBy: command.authenticatedPrincipalId,
479
- releasedAt: clock.now,
480
- request: proof.request,
481
- decision: proof.decision,
482
- },
483
- });
484
- await this.options.journal.append(command.projectId, command.objectId, state.sequence, [{
485
- type: 'hold.released', payload: { holdId: hold.id, hold: next },
486
- }]);
487
- return await this.read(command.projectId, command.objectId);
488
- }
489
- async #requestErasure(command, signal) {
490
- exactKeys(command, [
491
- 'version', 'operationId', 'authenticatedPrincipalId', 'tenantId', 'projectId', 'subjectRef',
492
- ], 'subject erasure command');
493
- header(command, signal);
494
- text(command.tenantId, 'subject erasure tenantId');
495
- text(command.projectId, 'subject erasure projectId');
496
- text(command.subjectRef, 'subject erasure subjectRef');
497
- const resolution = await this.options.subjects.resolve({
498
- tenantId: command.tenantId, projectId: command.projectId, subjectRef: command.subjectRef,
499
- }, signal);
500
- assertSubjectResolution(resolution, command.tenantId, command.projectId);
501
- const results = [];
502
- for (const handle of resolution.handles) {
503
- signal.throwIfAborted();
504
- const state = await this.#registered(command.projectId, handle.objectId);
505
- if (state.authority.handle.tenantId !== command.tenantId
506
- || !state.authority.subjectDigests.includes(resolution.subjectDigest)) {
507
- throw new Error('Subject erasure resolution escaped its trusted object authority');
508
- }
509
- if (state.erasures.some(value => value.subjectDigest === resolution.subjectDigest)) {
510
- results.push(state);
511
- continue;
512
- }
513
- const clock = await this.#clock(command.operationId, command.projectId, handle.objectId, 'control');
514
- this.#assertNoActiveHold(state);
515
- const proof = await this.#authorize('request_subject_erasure', 'privacy', command, state.authority, state, digest({ subjectDigest: resolution.subjectDigest, resolverAuthorityDigest: resolution.authorityDigest }), clock);
516
- if (clock.now < state.authority.retention.minimumRetainUntil) {
517
- const override = proof.decision.minimumRetentionOverride;
518
- if (!override || override.objectAuthorityDigest !== state.authority.digest) {
519
- throw new Error('Subject erasure cannot override minimum retention without exact legal policy authority');
520
- }
521
- requiredDigest(override.policyDigest, 'minimum retention override policy digest');
522
- text(override.policyRef, 'minimum retention override policy ref');
523
- }
524
- const fact = deepFreeze({
525
- subjectDigest: resolution.subjectDigest,
526
- requestedAt: clock.now,
527
- request: proof.request,
528
- decision: proof.decision,
529
- resolverAuthorityDigest: resolution.authorityDigest,
530
- });
531
- const drafts = [{ type: 'erasure.requested', payload: fact }];
532
- if (Object.keys(state.purges).length === 0 && !state.purgeComplete) {
533
- drafts.push(...purgeDrafts(state, 'subject_erasure', clock.now, proof));
534
- }
535
- await this.options.journal.append(command.projectId, handle.objectId, state.sequence, drafts);
536
- results.push(await this.read(command.projectId, handle.objectId));
537
- }
538
- return deepFreeze(results);
539
- }
540
- async #evaluateRetention(command, signal) {
541
- exactKeys(command, [
542
- 'version', 'operationId', 'authenticatedPrincipalId', 'projectId', 'objectId',
543
- ], 'retention evaluation command');
544
- header(command, signal);
545
- const state = await this.#registered(command.projectId, command.objectId);
546
- if (state.purgeComplete || Object.keys(state.purges).length > 0)
547
- return state;
548
- const clock = await this.#clock(command.operationId, command.projectId, command.objectId, 'retention');
549
- if (clock.now < state.authority.retention.deleteAfter)
550
- throw new Error('Payload retention has not expired');
551
- this.#assertNoActiveHold(state);
552
- const proof = await this.#authorize('schedule_retention_purge', 'data_steward', command, state.authority, state, digest({ deleteAfter: state.authority.retention.deleteAfter }), clock);
553
- await this.options.journal.append(command.projectId, command.objectId, state.sequence, purgeDrafts(state, 'retention_expired', clock.now, proof));
554
- return await this.read(command.projectId, command.objectId);
555
- }
556
- async #reconcile(command, signal) {
557
- exactKeys(command, [
558
- 'version', 'operationId', 'authenticatedPrincipalId', 'projectId', 'objectId', 'purgeId',
559
- ], 'purge reconciliation command');
560
- header(command, signal);
561
- const state = await this.#registered(command.projectId, command.objectId);
562
- const current = state.purges[command.purgeId];
563
- if (!current?.receipt || current.receipt.status === 'confirmed') {
564
- throw new Error('Payload purge is not eligible for reconciliation');
565
- }
566
- const clock = await this.#clock(command.operationId, command.projectId, command.objectId, 'reconciliation');
567
- const proof = await this.#authorize('reconcile_purge', 'data_steward', command, state.authority, state, digest({ purgeId: command.purgeId, receiptDigest: current.receipt.digest }), clock);
568
- const { digest: _currentDigest, ...currentDispatch } = current.dispatch;
569
- const retry = createPurgeDispatch({
570
- ...currentDispatch,
571
- attempt: current.dispatch.attempt + 1,
572
- fence: current.dispatch.fence + 1,
573
- requestedAt: clock.now,
574
- requestDigest: proof.request.digest,
575
- governance: proof,
576
- });
577
- await this.options.journal.append(command.projectId, command.objectId, state.sequence, [{
578
- type: 'purge.requested', payload: retry,
579
- }]);
580
- return await this.read(command.projectId, command.objectId);
581
- }
582
- async #dispatch(projectId, objectId, signal) {
583
- signal.throwIfAborted();
584
- let state = await this.#registered(projectId, objectId);
585
- const pending = Object.values(state.purges)
586
- .filter(value => !value.receipt)
587
- .sort((left, right) => compareCanonicalWorkroomText(left.dispatch.location.id, right.dispatch.location.id));
588
- for (const item of pending) {
589
- const receipt = await this.options.deletion.purge(item.dispatch, signal);
590
- assertReceipt(receipt, item.dispatch);
591
- if (!await this.options.receipts.verify(receipt, item.dispatch)) {
592
- throw new Error('Payload purge receipt authority denied the observation');
593
- }
594
- const drafts = [{ type: 'purge.receipt', payload: receipt }];
595
- if (receipt.status === 'confirmed' && item.dispatch.location.deletionMode === 'crypto_erase') {
596
- if (!receipt.cryptoEraseReceiptDigest)
597
- throw new Error('Crypto erase confirmation lacks a receipt digest');
598
- const body = deepFreeze({
599
- version: 1,
600
- projectId,
601
- objectId,
602
- vaultObjectId: state.authority.handle.vaultObjectId,
603
- objectAuthorityDigest: state.authority.digest,
604
- locationManifestDigest: state.authority.locations.digest,
605
- locationId: item.dispatch.location.id,
606
- cryptoEraseReceiptDigest: receipt.cryptoEraseReceiptDigest,
607
- erasedAt: receipt.observedAt,
608
- });
609
- drafts.push({ type: 'object.crypto_erased', payload: deepFreeze({ ...body, digest: digest(body) }) });
610
- }
611
- await this.options.journal.append(projectId, objectId, state.sequence, drafts);
612
- state = await this.read(projectId, objectId);
613
- }
614
- if (!state.purgeComplete
615
- && Object.keys(state.purges).length === state.authority.locations.locations.length
616
- && Object.values(state.purges).every(value => value.receipt?.status === 'confirmed')) {
617
- const receipts = Object.values(state.purges).map(value => value.receipt.digest).sort();
618
- const completedAt = Math.max(...Object.values(state.purges).map(value => value.receipt.observedAt));
619
- const body = deepFreeze({
620
- version: 1,
621
- projectId,
622
- objectId,
623
- objectAuthorityDigest: state.authority.digest,
624
- locationManifestDigest: state.authority.locations.digest,
625
- completedAt,
626
- receiptDigests: receipts,
627
- });
628
- await this.options.journal.append(projectId, objectId, state.sequence, [{
629
- type: 'object.purge_complete', payload: deepFreeze({ ...body, digest: digest(body) }),
630
- }]);
631
- state = await this.read(projectId, objectId);
632
- }
633
- return state;
634
- }
635
- async #drainProject(projectId, signal) {
636
- text(projectId, 'Lifecycle Project id');
637
- const states = [];
638
- for (const objectId of await this.options.journal.listObjectIds(projectId)) {
639
- signal.throwIfAborted();
640
- const state = await this.read(projectId, objectId);
641
- const purges = Object.values(state.purges);
642
- const hasPendingAttempt = purges.some(value => !value.receipt);
643
- const needsCompletionRecovery = purges.length === state.authority?.locations.locations.length
644
- && purges.length > 0
645
- && purges.every(value => value.receipt?.status === 'confirmed');
646
- if (state.purgeComplete || (!hasPendingAttempt && !needsCompletionRecovery))
647
- continue;
648
- states.push(await this.#dispatch(projectId, objectId, signal));
649
- }
650
- return deepFreeze(states);
651
- }
652
- async #registered(projectId, objectId) {
653
- const state = await this.read(projectId, objectId);
654
- if (!state.authority)
655
- throw new Error('Payload Lifecycle object is not registered');
656
- return state;
657
- }
658
- async #clock(operationId, projectId, objectId, purpose) {
659
- const value = await this.options.clock.read({ operationId, projectId, objectId, purpose });
660
- if (!value)
661
- throw new Error('Payload Lifecycle Kernel clock authority is unavailable');
662
- const canonical = createPayloadLifecycleClockSnapshot(value);
663
- if (canonicalWorkroomJson(canonical) !== canonicalWorkroomJson(value)) {
664
- throw new Error('Payload Lifecycle Kernel clock digest drift');
665
- }
666
- return canonical;
667
- }
668
- async #authorize(action, requiredRole, command, object, state, candidateDigest, clock) {
669
- const body = deepFreeze({
670
- version: 1,
671
- action,
672
- requiredRole,
673
- operationId: command.operationId,
674
- authenticatedPrincipalId: command.authenticatedPrincipalId,
675
- tenantId: object.handle.tenantId,
676
- projectId: object.handle.projectId,
677
- objectId: object.handle.objectId,
678
- objectAuthorityDigest: object.digest,
679
- currentStateDigest: state.digest,
680
- candidateDigest: requiredDigest(candidateDigest, 'Lifecycle candidate digest'),
681
- clock,
682
- });
683
- const request = deepFreeze({ ...body, digest: digest(body) });
684
- const result = await this.options.authority.authorize(request);
685
- if (!result.approved) {
686
- if (result.requestDigest !== request.digest)
687
- throw new Error('Lifecycle authority denial echo mismatch');
688
- throw new Error(`Lifecycle authority denied: ${result.reason}`);
689
- }
690
- if (result.requestDigest !== request.digest
691
- || result.principalId !== request.authenticatedPrincipalId
692
- || result.role !== requiredRole
693
- || !await this.options.authority.verify(request, result)) {
694
- throw new Error('Lifecycle authority exact decision echo mismatch');
695
- }
696
- requiredDigest(result.authorityDigest, 'Lifecycle authority digest');
697
- text(result.decisionId, 'Lifecycle decision id');
698
- nonNegative(result.decidedAt, 'Lifecycle decision timestamp');
699
- return deepFreeze({ request, decision: structuredClone(result) });
700
- }
701
- #assertNoActiveHold(state) {
702
- if (Object.values(state.holds).some(hold => !hold.release)) {
703
- throw new Error('Payload Lifecycle purge is blocked by an active Retention Hold');
704
- }
705
- }
706
- }
707
- function purgeDrafts(state, reason, requestedAt, governance) {
708
- return state.authority.locations.locations.map(location => ({
709
- type: 'purge.requested',
710
- payload: createPurgeDispatch({
711
- id: purgeId(state.projectId, state.objectId, location.id),
712
- reason,
713
- objectAuthorityDigest: state.authority.digest,
714
- locationManifestDigest: state.authority.locations.digest,
715
- location,
716
- attempt: 1,
717
- fence: 1,
718
- requestedAt,
719
- requestDigest: governance.request.digest,
720
- governance,
721
- }),
722
- }));
723
- }
724
- function createPurgeDispatch(input) {
725
- text(input.id, 'Purge id');
726
- positive(input.attempt, 'Purge attempt');
727
- positive(input.fence, 'Purge fence');
728
- nonNegative(input.requestedAt, 'Purge requestedAt');
729
- requiredDigest(input.objectAuthorityDigest, 'Purge object authority digest');
730
- requiredDigest(input.locationManifestDigest, 'Purge Location Manifest digest');
731
- requiredDigest(input.location.authorityDigest, 'Purge location authority digest');
732
- requiredDigest(input.requestDigest, 'Purge request digest');
733
- if (input.requestDigest !== input.governance.request.digest) {
734
- throw new Error('Purge governance request binding is invalid');
735
- }
736
- const body = deepFreeze(structuredClone(input));
737
- return deepFreeze({ ...body, digest: digest(body) });
738
- }
739
- function purgeId(projectId, objectId, locationId) {
740
- return `purge:${digest({ projectId, objectId, locationId })}`;
741
- }
742
- function assertReceipt(receipt, dispatch) {
743
- const { digest: supplied, ...body } = receipt;
744
- if (receipt.version !== 1 || supplied !== digest(body) || !receiptMatchesDispatch(receipt, dispatch)
745
- || !['confirmed', 'failed', 'outcome_unknown'].includes(receipt.status)
746
- || !Number.isSafeInteger(receipt.observedAt) || receipt.observedAt < dispatch.requestedAt) {
747
- throw new Error('Payload purge receipt is malformed or stale');
748
- }
749
- text(receipt.authenticatedBy, 'Purge receipt authority');
750
- requiredDigest(receipt.authorityDigest, 'Purge receipt authority digest');
751
- if (receipt.status === 'confirmed' && receipt.reasonCode !== undefined) {
752
- throw new Error('Confirmed Payload purge receipt cannot carry a failure reason');
753
- }
754
- if (receipt.status !== 'confirmed' && receipt.reasonCode === undefined) {
755
- throw new Error('Unconfirmed Payload purge receipt requires a bounded reason code');
756
- }
757
- if (receipt.reasonCode !== undefined && ![
758
- 'unsupported', 'provider_denied', 'transient_failure', 'timeout', 'unknown_external_copy',
759
- ].includes(receipt.reasonCode)) {
760
- throw new Error('Payload purge receipt reason code is invalid');
761
- }
762
- if (receipt.cryptoEraseReceiptDigest !== undefined) {
763
- requiredDigest(receipt.cryptoEraseReceiptDigest, 'Crypto erase receipt digest');
764
- }
765
- if (dispatch.location.deletionMode === 'crypto_erase') {
766
- if (receipt.status === 'confirmed' && receipt.cryptoEraseReceiptDigest === undefined) {
767
- throw new Error('Confirmed crypto erase receipt lacks its exact key-destruction proof');
768
- }
769
- if (receipt.status !== 'confirmed' && receipt.cryptoEraseReceiptDigest !== undefined) {
770
- throw new Error('Unconfirmed crypto erase receipt cannot claim key destruction');
771
- }
772
- }
773
- else if (receipt.cryptoEraseReceiptDigest !== undefined) {
774
- throw new Error('Non-crypto purge receipt cannot claim key destruction');
775
- }
776
- }
777
- function receiptMatchesDispatch(receipt, dispatch) {
778
- return receipt.purgeId === dispatch.id
779
- && receipt.locationId === dispatch.location.id
780
- && receipt.locationAuthorityDigest === dispatch.location.authorityDigest
781
- && receipt.locationManifestDigest === dispatch.locationManifestDigest
782
- && receipt.attempt === dispatch.attempt
783
- && receipt.fence === dispatch.fence
784
- && receipt.requestDigest === dispatch.requestDigest;
785
- }
786
- function assertGovernanceBinding(proof, object, exactAction) {
787
- if (!proof || proof.request.digest !== digestWithoutDigest(proof.request)
788
- || canonicalWorkroomJson(createPayloadLifecycleClockSnapshot(proof.request.clock))
789
- !== canonicalWorkroomJson(proof.request.clock)
790
- || proof.decision.requestDigest !== proof.request.digest
791
- || proof.decision.principalId !== proof.request.authenticatedPrincipalId
792
- || proof.decision.role !== proof.request.requiredRole
793
- || proof.request.tenantId !== object.handle.tenantId
794
- || proof.request.projectId !== object.handle.projectId
795
- || proof.request.objectId !== object.handle.objectId
796
- || proof.request.objectAuthorityDigest !== object.digest
797
- || proof.request.requiredRole !== roleForAction(proof.request.action)
798
- || (exactAction !== undefined && proof.request.action !== exactAction)) {
799
- throw new Error('Payload Lifecycle governance proof binding is invalid');
800
- }
801
- requiredDigest(proof.decision.authorityDigest, 'Lifecycle authority digest');
802
- if (proof.decision.separationPolicy) {
803
- requiredDigest(proof.decision.separationPolicy.policyDigest, 'separation policy digest');
804
- }
805
- if (proof.decision.minimumRetentionOverride) {
806
- text(proof.decision.minimumRetentionOverride.policyRef, 'minimum retention override policy ref');
807
- requiredDigest(proof.decision.minimumRetentionOverride.policyDigest, 'minimum retention override policy digest');
808
- requiredDigest(proof.decision.minimumRetentionOverride.objectAuthorityDigest, 'minimum retention override object authority digest');
809
- }
810
- }
811
- function assertCandidate(proof, candidateDigest) {
812
- if (proof.request.candidateDigest !== candidateDigest) {
813
- throw new Error('Payload Lifecycle governance candidate binding is stale');
814
- }
815
- }
816
- function roleForAction(action) {
817
- switch (action) {
818
- case 'request_subject_erasure': return 'privacy';
819
- case 'review_hold': return 'compliance';
820
- case 'register_object':
821
- case 'place_hold':
822
- case 'release_hold':
823
- case 'schedule_retention_purge':
824
- case 'reconcile_purge':
825
- return 'data_steward';
826
- }
827
- }
828
- function eventAuthorityProofs(event) {
829
- switch (event.type) {
830
- case 'object.registered': return [event.payload.governance];
831
- case 'hold.placed': return [{ request: event.payload.placeRequest, decision: event.payload.placeDecision }];
832
- case 'hold.reviewed': return event.payload.hold.review
833
- ? [{ request: event.payload.hold.review.request, decision: event.payload.hold.review.decision }]
834
- : [];
835
- case 'hold.released': return event.payload.hold.release
836
- ? [{ request: event.payload.hold.release.request, decision: event.payload.hold.release.decision }]
837
- : [];
838
- case 'erasure.requested': return [{ request: event.payload.request, decision: event.payload.decision }];
839
- case 'purge.requested': return [event.payload.governance];
840
- default: return [];
841
- }
842
- }
843
- function assertEvent(event, projectId, objectId, sequence) {
844
- if (event.version !== 1 || event.projectId !== projectId || event.objectId !== objectId
845
- || event.sequence !== sequence)
846
- throw new Error('Payload Lifecycle event identity/sequence is invalid');
847
- const { digest: supplied, ...body } = event;
848
- if (supplied !== digest(body))
849
- throw new Error('Payload Lifecycle event digest mismatch');
850
- }
851
- function digestWithoutDigest(value) {
852
- const { digest: _supplied, ...body } = value;
853
- return digest(body);
854
- }
855
- function assertSubjectResolution(value, tenantId, projectId) {
856
- if (!value || value.version !== 1 || value.tenantId !== tenantId || value.projectId !== projectId
857
- || !Array.isArray(value.handles) || value.handles.length === 0) {
858
- throw new Error('Trusted subject erasure resolution is unavailable');
859
- }
860
- requiredDigest(value.subjectDigest, 'subject digest');
861
- requiredDigest(value.authorityDigest, 'subject resolver authority digest');
862
- const { digest: supplied, ...body } = value;
863
- if (supplied !== digest(body))
864
- throw new Error('Subject erasure resolution digest mismatch');
865
- value.handles.forEach(assertHandle);
866
- }
867
- function assertHandle(value) {
868
- if (!value || value.version !== 1)
869
- throw new Error('Payload Vault handle is invalid');
870
- text(value.vaultObjectId, 'Vault object id');
871
- text(value.objectId, 'Payload object id');
872
- text(value.tenantId, 'Payload tenant id');
873
- text(value.projectId, 'Payload Project id');
874
- requiredDigest(value.payloadHash, 'Payload hash');
875
- requiredDigest(value.descriptorDigest, 'Payload Descriptor digest');
876
- requiredDigest(value.locationManifestDigest, 'Payload Location Manifest digest');
877
- }
878
- function header(command, signal) {
879
- signal.throwIfAborted();
880
- if (command.version !== 1)
881
- throw new Error('Payload Lifecycle command version is invalid');
882
- text(command.operationId, 'Payload Lifecycle operation id');
883
- text(command.authenticatedPrincipalId, 'Payload Lifecycle authenticated principal');
884
- }
885
- function exactKeys(value, keys, label) {
886
- const allowed = new Set(keys);
887
- for (const key of Object.keys(value)) {
888
- if (!allowed.has(key))
889
- throw new Error(`Payload Lifecycle ${label} contains forbidden field ${key}`);
890
- }
891
- for (const key of keys) {
892
- if (!(key in value))
893
- throw new Error(`Payload Lifecycle ${label} is missing ${key}`);
894
- }
895
- }
896
- function uniqueDigests(values, label) {
897
- if (!Array.isArray(values))
898
- throw new Error(`${label} list is invalid`);
899
- const normalized = [...new Set(values.map(value => requiredDigest(value, label)))].sort();
900
- if (normalized.length !== values.length || canonicalWorkroomJson(normalized) !== canonicalWorkroomJson(values)) {
901
- throw new Error(`${label} list is non-canonical`);
902
- }
903
- return deepFreeze(normalized);
904
- }
905
- function text(value, label) {
906
- if (typeof value !== 'string' || !value.trim() || value !== value.trim()
907
- || value.length > 512 || [...value].some(character => {
908
- const code = character.codePointAt(0);
909
- return code <= 31 || code === 127;
910
- })) {
911
- throw new Error(`${label} is invalid`);
912
- }
913
- return value;
914
- }
915
- function requiredDigest(value, label) {
916
- if (!/^sha256:[a-f0-9]{64}$/u.test(value))
917
- throw new Error(`${label} is invalid`);
918
- return value;
919
- }
920
- function positive(value, label) {
921
- if (!Number.isSafeInteger(value) || value < 1)
922
- throw new Error(`${label} must be positive`);
923
- return value;
924
- }
925
- function nonNegative(value, label) {
926
- if (!Number.isSafeInteger(value) || value < 0)
927
- throw new Error(`${label} must be non-negative`);
928
- return value;
929
- }
930
- //# sourceMappingURL=payload-lifecycle.js.map