@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,1356 +0,0 @@
1
- import { createHash } from 'node:crypto';
2
- import { classifyDataDescriptor, } from '../data-governance/data-governance.js';
3
- import { materializeDisclosureManifest, } from '../data-governance/disclosure-manifest.js';
4
- import { EncryptedFilePayloadVault, PayloadVaultCryptographyUnavailableError, } from '../data-governance/encrypted-file-payload-vault.js';
5
- import { FileDataGovernanceAuthorityRepository, DataGovernanceAuthorityUnauthorizedError, createGovernedSourceAuthority, } from '../data-governance/governance-authority-repository.js';
6
- import { FileGovernedPayloadWriteSagaRepository, GovernedPayloadPublicationReconciler, GovernedPayloadWritePurgeConsumer, createGovernedPayloadWriteIntentId, } from '../data-governance/governed-payload-write-saga.js';
7
- import { join } from 'node:path';
8
- import { createToken } from '@zhin.js/plugin-runtime';
9
- import { WorkroomPlanningClarificationError, } from '../workroom/human-ingress-orchestrator.js';
10
- import { canonicalWorkroomJson, deepFreezeWorkroomValue as deepFreeze, digestCanonicalWorkroomValue as digest, } from '../workroom/canonical-value.js';
11
- import { WorkroomGovernedPayloadHeaderCasLostError, WorkroomGovernedPayloadPublicationAbandonedError, } from '../workroom/workroom-task-report-store.js';
12
- import { createWorkroomJournalPayloadObjectId, } from '../workroom/journal/index.js';
13
- import { createWorkroomDynamicPlanningGenerationSnapshot, createWorkroomPlanningDisclosure, createWorkroomPlanningDisclosureSourceBinding, } from './workroom-dynamic-planning-provider.js';
14
- import { createWorkroomGovernedAcceptanceProjection, } from './workroom-acceptance-provider-composition.js';
15
- export const workroomDisclosureManifestAuthorityToken = createToken('zhin.agent.workroom-disclosure-manifest-authority', 'Authority-owned exact sink-rule Disclosure Manifest materializer');
16
- /** Trusted Root composition helper; raw repository/Vault are intentionally not returned. */
17
- export function createFileWorkroomDataGovernanceRuntime(options) {
18
- const repository = new FileDataGovernanceAuthorityRepository(join(options.stateRoot, 'workroom-data-governance-authority'), options.governance);
19
- const cryptography = options.cryptography ?? Object.freeze({
20
- wrap: async () => null,
21
- unwrap: async () => null,
22
- });
23
- const vault = options.vault ?? new EncryptedFilePayloadVault({
24
- directory: join(options.stateRoot, 'workroom-payload-vault'),
25
- generation: options.generation,
26
- cryptography,
27
- });
28
- const payloadWrites = new FileGovernedPayloadWriteSagaRepository(join(options.stateRoot, 'workroom-payload-write-sagas'));
29
- const payloadPurge = options.payloadPurge
30
- ? new GovernedPayloadWritePurgeConsumer({
31
- generation: options.generation,
32
- repository: payloadWrites,
33
- provider: options.payloadPurge,
34
- })
35
- : undefined;
36
- return new WorkroomDataGovernanceRuntime({
37
- generation: options.generation,
38
- repository,
39
- vault,
40
- payloadWrites,
41
- ...(payloadPurge ? { payloadPurge } : {}),
42
- ...(options.payloadPublicationVerifier
43
- ? { payloadPublicationVerifier: options.payloadPublicationVerifier }
44
- : {}),
45
- ...(options.payloadLifecycleIndex ? { payloadLifecycleIndex: options.payloadLifecycleIndex } : {}),
46
- signal: options.signal,
47
- ...(options.evidenceSources ? { evidenceSources: options.evidenceSources } : {}),
48
- ...(options.acceptanceProjectionSources
49
- ? { acceptanceProjectionSources: options.acceptanceProjectionSources }
50
- : {}),
51
- ...(options.transforms ? { transforms: options.transforms } : {}),
52
- ...(options.now ? { now: options.now } : {}),
53
- });
54
- }
55
- export const workroomAcceptanceProjectionSourceAuthorityToken = createToken('zhin.agent.workroom-acceptance-projection-source-authority', 'Trusted exact Profile-policy source resolver for governed Acceptance projection payloads');
56
- /**
57
- * One immutable Root-generation adapter over persistent policy/source facts.
58
- * It never falls back to config or request metadata authority.
59
- */
60
- export class WorkroomDataGovernanceRuntime {
61
- options;
62
- generation;
63
- planningDisclosure;
64
- disclosureManifest;
65
- assignmentDisclosure;
66
- evidencePayloads;
67
- taskReportPayloads;
68
- acceptanceProjectionPayloads;
69
- journalPayloads;
70
- #now;
71
- constructor(options) {
72
- this.options = options;
73
- this.generation = positive(options.generation, 'generation');
74
- this.#now = options.now ?? Date.now;
75
- this.planningDisclosure = Object.freeze({
76
- materialize: async (request, signal) => await this.#materializePlanning(request, signal),
77
- });
78
- this.disclosureManifest = Object.freeze({
79
- materialize: async (request, signal) => await this.#materializeRegistered(request, signal),
80
- revalidate: async (input, signal) => await this.#revalidateRegistered(input, signal),
81
- prepareProjection: async (input, signal) => await this.#prepareProjection(input, signal),
82
- });
83
- this.assignmentDisclosure = Object.freeze({
84
- materialize: async (request) => await this.#materializeAssignment(request),
85
- });
86
- this.evidencePayloads = Object.freeze({
87
- write: async (input, signal) => await this.#writeEvidence(input, signal),
88
- });
89
- this.taskReportPayloads = Object.freeze({
90
- write: async (input, signal) => await this.#writeTaskReport(input, signal),
91
- read: async (input, signal) => await this.#readTaskReport(input, signal),
92
- });
93
- this.acceptanceProjectionPayloads = Object.freeze({
94
- write: async (input, signal) => await this.#writeAcceptanceProjection(input, signal),
95
- read: async (input, signal) => await this.#readAcceptanceProjection(input, signal),
96
- });
97
- this.journalPayloads = Object.freeze({
98
- write: async (input) => await this.#writeJournalPayload(input),
99
- read: async (input) => await this.#readJournalPayload(input),
100
- publish: async (input) => await this.#publishJournalPayloads(input),
101
- prepare: async (input) => await this.#prepareJournalPayloads(input),
102
- abandon: async (input) => await this.#abandonJournalPayloads(input),
103
- reconcile: async (input) => await this.#reconcileJournalPayloads(input),
104
- });
105
- }
106
- /** Trusted generation handoff hook; no raw Vault or receipt body is returned. */
107
- async reconcilePayloadPurges(projectIds, signal) {
108
- if (!this.options.payloadPurge || !this.options.payloadWrites)
109
- return;
110
- const publications = new GovernedPayloadPublicationReconciler({
111
- repository: this.options.payloadWrites,
112
- purge: this.options.payloadPurge,
113
- ...(this.options.payloadPublicationVerifier
114
- ? { verifier: this.options.payloadPublicationVerifier }
115
- : {}),
116
- });
117
- for (const projectId of [...new Set(projectIds)].sort()) {
118
- await publications.drainProject(projectId, signal);
119
- await this.options.payloadPurge.drainProject(projectId, signal);
120
- }
121
- }
122
- async #writeJournalPayload(input) {
123
- const operationId = `workroom-journal-write:${input.eventId}:${digest(input.fieldPath)}`;
124
- await this.#requirePayloadInfrastructure(this.options.signal, {
125
- operationId,
126
- projectId: input.projectId,
127
- });
128
- const payload = new TextEncoder().encode(canonicalWorkroomJson(input.value));
129
- if (hashBytes(payload) !== input.contentHash) {
130
- throw new Error('Governed Workroom Journal payload content hash drift');
131
- }
132
- const source = deepFreeze({
133
- kind: 'command',
134
- ref: input.source.ref,
135
- digest: input.source.digest,
136
- bindingDigest: input.source.bindingDigest,
137
- verification: 'verified',
138
- });
139
- return await this.#writeDerivedPayload({
140
- operationId,
141
- projectId: input.projectId,
142
- kind: 'journal',
143
- objectId: createWorkroomJournalPayloadObjectId(input),
144
- payload,
145
- source,
146
- signal: this.options.signal,
147
- createdAt: input.occurredAt,
148
- publicationScope: input.runId,
149
- });
150
- }
151
- async #publishJournalPayloads(input) {
152
- if (!this.options.payloadWrites)
153
- return;
154
- for (const receipt of input.receipts) {
155
- const intentId = journalIntentId(input.projectId, input.runId, receipt);
156
- const pending = await this.options.payloadWrites.read(intentId);
157
- if (!pending)
158
- throw new Error('Governed Workroom Journal payload intent is unavailable');
159
- if (pending.state === 'published')
160
- continue;
161
- if (pending.state !== 'authority_indexed') {
162
- throw new Error(`Governed Workroom Journal payload cannot be published from ${pending.state}`);
163
- }
164
- await this.options.payloadWrites.publish(intentId, input.publicationDigest);
165
- }
166
- }
167
- async #prepareJournalPayloads(input) {
168
- if (!this.options.payloadWrites)
169
- return;
170
- for (const receipt of input.receipts) {
171
- const pending = await this.options.payloadWrites.read(journalIntentId(input.projectId, input.runId, receipt));
172
- if (!pending || (pending.state !== 'authority_indexed' && pending.state !== 'published')) {
173
- throw new Error('Governed Workroom Journal payload is not ready for header publication');
174
- }
175
- }
176
- }
177
- async #abandonJournalPayloads(input) {
178
- if (!this.options.payloadWrites)
179
- return;
180
- for (const receipt of input.receipts) {
181
- const intentId = journalIntentId(input.projectId, input.runId, receipt);
182
- const pending = await this.options.payloadWrites.read(intentId);
183
- if (!pending || pending.state === 'published' || pending.state === 'purge_required')
184
- continue;
185
- await this.options.payloadWrites.requirePurge(intentId, input.reason);
186
- await this.#purgeIntent(intentId);
187
- }
188
- }
189
- async #reconcileJournalPayloads(input) {
190
- if (!this.options.payloadWrites)
191
- return;
192
- for (const receipt of input.receipts) {
193
- const intentId = journalIntentId(input.projectId, input.runId, receipt);
194
- const pending = await this.options.payloadWrites.read(intentId);
195
- if (!pending)
196
- throw new Error('Governed Workroom Journal payload intent is unavailable');
197
- if (pending.state === 'published')
198
- continue;
199
- if (pending.state !== 'authority_indexed') {
200
- throw new Error(`Governed Workroom Journal committed payload is ${pending.state}`);
201
- }
202
- await this.options.payloadWrites.publish(intentId, input.publicationDigest);
203
- }
204
- }
205
- async #readJournalPayload(input) {
206
- await this.#requirePayloadInfrastructure(this.options.signal, {
207
- operationId: `workroom-journal-read:${input.eventId}:${digest(input.fieldPath)}`,
208
- projectId: input.projectId,
209
- });
210
- const currentAuthority = await this.options.repository.readProject(input.projectId);
211
- const source = await this.options.repository.readSource(input.projectId, input.receipt.descriptor.objectId, input.receipt.descriptor.payloadHash);
212
- const authority = source && currentAuthority
213
- ? source.projectAuthorityDigest === currentAuthority.digest
214
- ? currentAuthority
215
- : await this.options.repository.readProjectRevision?.(input.projectId, source.projectAuthorityRevision)
216
- : undefined;
217
- const sinkRuleId = 'workroom-journal:kernel-replay';
218
- const sink = authority?.sinks[sinkRuleId];
219
- const destination = sink && authority?.policy.destinations[sink.destinationId];
220
- if (!source || !authority || source.projectAuthorityDigest !== authority.digest
221
- || source.projectAuthorityRevision !== authority.revision || !sink?.fixedPrincipalId
222
- || !destination) {
223
- throw new Error('Workroom Journal replay disclosure authority is unavailable');
224
- }
225
- const manifest = await this.#materialize({
226
- operationId: `workroom-journal-read:${input.eventId}:${digest(input.fieldPath)}`,
227
- authority,
228
- source,
229
- context: {
230
- channel: sink.channel,
231
- purpose: sink.purpose,
232
- requestedMode: sink.requestedMode,
233
- policyRevision: authority.policy.revision,
234
- principal: {
235
- principalId: sink.fixedPrincipalId,
236
- tenantId: authority.tenantId,
237
- projectId: authority.projectId,
238
- ...sink.principal,
239
- },
240
- destination,
241
- recipients: structuredClone(sink.recipients),
242
- },
243
- signal: this.options.signal,
244
- });
245
- if (!manifest || manifest.output.mode !== 'full'
246
- || manifest.output.handle.vaultObjectId !== input.receipt.descriptor.vaultObjectId
247
- || manifest.output.handle.descriptorDigest !== input.receipt.descriptor.descriptorDigest
248
- || manifest.output.handle.locationManifestDigest !== input.receipt.descriptor.locationManifestDigest
249
- || manifest.output.payloadHash !== input.contentHash) {
250
- throw new Error('Workroom Journal replay disclosure is not exact/full');
251
- }
252
- await this.#requirePayloadInfrastructure(this.options.signal);
253
- const payload = await this.options.vault.readExact({
254
- handle: manifest.output.handle,
255
- requestDigest: manifest.requestDigest,
256
- purpose: manifest.purpose,
257
- principalId: manifest.principal.principalId,
258
- destinationId: manifest.destination.id,
259
- }, this.options.signal);
260
- if (hashBytes(payload) !== input.contentHash) {
261
- throw new Error('Governed Workroom Journal payload content hash mismatch');
262
- }
263
- try {
264
- return JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(payload));
265
- }
266
- catch (error) {
267
- throw new Error('Governed Workroom Journal payload is not canonical JSON', { cause: error });
268
- }
269
- }
270
- async #writeEvidence(input, signal) {
271
- const operationId = `evidence:${input.attribution.assignmentId}:${input.attribution.attempt}:${input.attribution.fence}`;
272
- await this.#requirePayloadInfrastructure(signal, {
273
- operationId,
274
- projectId: input.attribution.projectId,
275
- });
276
- const payload = new TextEncoder().encode(input.content);
277
- const payloadHash = hashBytes(payload);
278
- const trusted = await this.options.evidenceSources?.resolve({
279
- claimedSource: structuredClone(input.claimedSource),
280
- attribution: structuredClone(input.attribution),
281
- payloadHash,
282
- }) ?? null;
283
- const source = trusted
284
- ? validateReceiptSource(trusted)
285
- : deepFreeze({
286
- kind: input.claimedSource.kind,
287
- ref: `quarantine:workroom-evidence:${digest({
288
- attribution: input.attribution,
289
- mediaType: input.mediaType,
290
- payloadHash,
291
- })}`,
292
- digest: digest({ version: 1, disposition: 'unverified', payloadHash }),
293
- bindingDigest: digest({ version: 1, attribution: input.attribution, payloadHash }),
294
- verification: 'unverified',
295
- });
296
- return await this.#writeDerivedPayload({
297
- operationId,
298
- projectId: input.attribution.projectId,
299
- kind: 'evidence',
300
- objectId: `workroom-evidence-payload:${digest({
301
- attribution: input.attribution,
302
- mediaType: input.mediaType,
303
- payloadHash,
304
- })}`,
305
- payload,
306
- source,
307
- signal,
308
- consumer: 'evidence_header',
309
- publicationScope: digest({
310
- version: 1,
311
- attribution: input.attribution,
312
- payloadHash,
313
- }),
314
- publication: input.publication,
315
- });
316
- }
317
- async #writeTaskReport(input, signal) {
318
- const operationId = `task-report:${input.report.candidateHash}`;
319
- await this.#requirePayloadInfrastructure(signal, {
320
- operationId,
321
- projectId: input.attribution.projectId,
322
- });
323
- const payload = new TextEncoder().encode(canonicalWorkroomJson(input.report));
324
- const payloadHash = hashBytes(payload);
325
- const source = deepFreeze({
326
- kind: 'tool',
327
- ref: `workroom-task:${encodeURIComponent(input.attribution.projectId)}:`
328
- + `${encodeURIComponent(input.attribution.runId)}:${encodeURIComponent(input.attribution.taskKey)}:`
329
- + input.attribution.taskRevision,
330
- digest: digest({ version: 1, reportRef: input.report.ref, candidateHash: input.report.candidateHash }),
331
- bindingDigest: digest({ version: 1, attribution: input.attribution, reportDigest: input.report.digest }),
332
- verification: 'verified',
333
- });
334
- return await this.#writeDerivedPayload({
335
- operationId,
336
- projectId: input.attribution.projectId,
337
- kind: 'taskReport',
338
- objectId: `workroom-task-report-payload:${input.report.candidateHash}`,
339
- payload,
340
- source,
341
- signal,
342
- consumer: 'task_report_header',
343
- publicationScope: input.report.ref,
344
- publication: input.publication,
345
- });
346
- }
347
- async #writeAcceptanceProjection(input, signal) {
348
- const linked = linkSignals(this.options.signal, signal);
349
- try {
350
- linked.signal.throwIfAborted();
351
- const projection = createWorkroomGovernedAcceptanceProjection(input.projection);
352
- if (canonicalWorkroomJson(projection) !== canonicalWorkroomJson(input.projection)
353
- || projection.projectId !== input.projectId) {
354
- throw new Error('Acceptance projection governed payload candidate drift');
355
- }
356
- const trusted = await this.options.acceptanceProjectionSources?.resolve({
357
- projectId: input.projectId,
358
- projectionDigest: projection.digest,
359
- source: structuredClone(input.source),
360
- }, linked.signal);
361
- linked.signal.throwIfAborted();
362
- if (!trusted || trusted.kind !== 'profile-policy' || trusted.verification !== 'verified'
363
- || trusted.ref !== input.source.ref || trusted.digest !== input.source.digest
364
- || trusted.issuer !== input.source.issuer || trusted.issuerDigest !== input.source.issuerDigest
365
- || trusted.revision !== input.source.revision
366
- || trusted.bindingDigest !== input.source.bindingDigest) {
367
- throw new Error('Trusted Acceptance projection Profile-policy source is unavailable');
368
- }
369
- const { digest: _projectionDigest, ...projectionInput } = projection;
370
- const payload = new TextEncoder().encode(canonicalWorkroomJson(projectionInput));
371
- if (hashBytes(payload) !== projection.digest) {
372
- throw new Error('Acceptance projection canonical payload hash drift');
373
- }
374
- const receipt = await this.#writeDerivedPayload({
375
- operationId: input.operationId,
376
- projectId: input.projectId,
377
- kind: 'acceptanceProjection',
378
- objectId: `workroom-acceptance-projection:${projection.digest.slice('sha256:'.length)}`,
379
- payload,
380
- source: deepFreeze(structuredClone(trusted)),
381
- signal: linked.signal,
382
- });
383
- return deepFreeze({
384
- vaultObjectId: receipt.descriptor.vaultObjectId,
385
- objectId: receipt.descriptor.objectId,
386
- payloadHash: receipt.descriptor.payloadHash,
387
- descriptorDigest: receipt.descriptor.descriptorDigest,
388
- locationManifestDigest: receipt.descriptor.locationManifestDigest,
389
- source: receipt.source,
390
- sourceBindingDigest: receipt.source.bindingDigest,
391
- bytes: receipt.descriptor.bytes,
392
- });
393
- }
394
- finally {
395
- linked.dispose();
396
- }
397
- }
398
- async #readAcceptanceProjection(input, signal) {
399
- const linked = linkSignals(this.options.signal, signal);
400
- try {
401
- linked.signal.throwIfAborted();
402
- if (input.purpose !== 'acceptance-policy') {
403
- throw new Error('Acceptance projection disclosure purpose is invalid');
404
- }
405
- assertAcceptanceProjectionReceipt(input.receipt);
406
- const trusted = await this.options.acceptanceProjectionSources?.resolve({
407
- projectId: input.projectId,
408
- projectionDigest: input.receipt.payloadHash,
409
- source: {
410
- kind: input.receipt.source.kind,
411
- ref: input.receipt.source.ref,
412
- digest: input.receipt.source.digest,
413
- issuer: input.receipt.source.issuer,
414
- issuerDigest: input.receipt.source.issuerDigest,
415
- revision: input.receipt.source.revision,
416
- bindingDigest: input.receipt.source.bindingDigest,
417
- },
418
- }, linked.signal);
419
- linked.signal.throwIfAborted();
420
- if (!trusted || canonicalWorkroomJson(trusted) !== canonicalWorkroomJson(input.receipt.source)) {
421
- return undefined;
422
- }
423
- const sourceAuthority = await this.options.repository.readSource(input.projectId, input.receipt.objectId, input.receipt.payloadHash);
424
- if (!sourceAuthority
425
- || sourceAuthority.sourceBindingDigest !== input.receipt.source.bindingDigest
426
- || sourceAuthority.handle.vaultObjectId !== input.receipt.vaultObjectId
427
- || sourceAuthority.handle.descriptorDigest !== input.receipt.descriptorDigest
428
- || sourceAuthority.handle.locationManifestDigest !== input.receipt.locationManifestDigest) {
429
- return undefined;
430
- }
431
- const currentAuthority = await this.options.repository.readProject(input.projectId);
432
- const authority = currentAuthority?.revision === sourceAuthority.projectAuthorityRevision
433
- && currentAuthority.digest === sourceAuthority.projectAuthorityDigest
434
- ? currentAuthority
435
- : await this.options.repository.readProjectRevision?.(input.projectId, sourceAuthority.projectAuthorityRevision);
436
- const sinkRuleId = 'acceptance-projection:acceptance-policy';
437
- const sink = authority?.sinks[sinkRuleId];
438
- const destination = sink && authority?.policy.destinations[sink.destinationId];
439
- if (!authority || authority.digest !== sourceAuthority.projectAuthorityDigest
440
- || !sink?.fixedPrincipalId || !destination)
441
- return undefined;
442
- const manifest = await this.#materialize({
443
- operationId: input.operationId,
444
- authority,
445
- source: sourceAuthority,
446
- context: {
447
- channel: sink.channel,
448
- purpose: sink.purpose,
449
- requestedMode: sink.requestedMode,
450
- policyRevision: authority.policy.revision,
451
- principal: {
452
- principalId: sink.fixedPrincipalId,
453
- tenantId: authority.tenantId,
454
- projectId: authority.projectId,
455
- ...sink.principal,
456
- },
457
- destination,
458
- recipients: structuredClone(sink.recipients),
459
- },
460
- signal: linked.signal,
461
- });
462
- if (manifest.output.mode !== 'full'
463
- || manifest.output.handle.vaultObjectId !== input.receipt.vaultObjectId
464
- || manifest.output.handle.descriptorDigest !== input.receipt.descriptorDigest
465
- || manifest.output.handle.locationManifestDigest !== input.receipt.locationManifestDigest
466
- || manifest.output.payloadHash !== input.receipt.payloadHash)
467
- return undefined;
468
- await this.#requirePayloadInfrastructure(linked.signal);
469
- const payload = await this.options.vault.readExact({
470
- handle: manifest.output.handle,
471
- requestDigest: manifest.requestDigest,
472
- purpose: manifest.purpose,
473
- principalId: manifest.principal.principalId,
474
- destinationId: manifest.destination.id,
475
- }, linked.signal);
476
- let candidate;
477
- try {
478
- candidate = JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(payload));
479
- }
480
- catch (error) {
481
- throw new Error('Acceptance projection governed payload is malformed', { cause: error });
482
- }
483
- if (!isAcceptanceProjectionInput(candidate)) {
484
- throw new Error('Acceptance projection governed payload is malformed');
485
- }
486
- const projection = createWorkroomGovernedAcceptanceProjection(candidate);
487
- if (projection.digest !== input.receipt.payloadHash || projection.projectId !== input.projectId) {
488
- throw new Error('Acceptance projection governed payload binding drift');
489
- }
490
- return projection;
491
- }
492
- finally {
493
- linked.dispose();
494
- }
495
- }
496
- async #writeDerivedPayload(input) {
497
- const linked = linkSignals(this.options.signal, input.signal);
498
- let intentId;
499
- let authorityIndexed = false;
500
- let publicationStarted = false;
501
- let publicationConfirmed = false;
502
- try {
503
- const infrastructure = await this.#requirePayloadInfrastructure(linked.signal);
504
- const authority = await this.options.repository.readProject(input.projectId);
505
- if (!authority)
506
- throw new Error('Data Governance Project authority is unavailable');
507
- const rule = authority.derivedPayloads[input.kind];
508
- if (!rule)
509
- throw new Error(`Governed ${input.kind} payload authority is unavailable`);
510
- const payloadHash = hashBytes(input.payload);
511
- const existingSource = await this.options.repository.readSource(input.projectId, input.objectId, payloadHash);
512
- if (existingSource && !input.publication
513
- && existingSource.sourceBindingDigest === input.source.bindingDigest
514
- && existingSource.projectAuthorityRevision === authority.revision
515
- && existingSource.projectAuthorityDigest === authority.digest
516
- && existingSource.descriptor.objectId === input.objectId
517
- && existingSource.descriptor.payloadHash === payloadHash
518
- && existingSource.handle.objectId === input.objectId
519
- && existingSource.handle.payloadHash === payloadHash
520
- && existingSource.handle.descriptorDigest === digest(existingSource.descriptor)) {
521
- await infrastructure.payloadLifecycleIndex.register({
522
- operationId: input.operationId,
523
- handle: existingSource.handle,
524
- }, linked.signal);
525
- return deepFreeze({
526
- descriptor: {
527
- vaultObjectId: existingSource.handle.vaultObjectId,
528
- objectId: existingSource.handle.objectId,
529
- payloadHash: existingSource.handle.payloadHash,
530
- descriptorDigest: existingSource.handle.descriptorDigest,
531
- locationManifestDigest: existingSource.handle.locationManifestDigest,
532
- bytes: input.payload.byteLength,
533
- },
534
- source: structuredClone(input.source),
535
- });
536
- }
537
- const createdAt = input.createdAt ?? this.#now();
538
- const classified = classifyDataDescriptor({
539
- objectId: input.objectId,
540
- payloadHash,
541
- tenantId: authority.tenantId,
542
- projectId: authority.projectId,
543
- kind: input.kind === 'evidence'
544
- ? 'evidence'
545
- : input.kind === 'taskReport'
546
- ? 'task_report'
547
- : input.kind === 'acceptanceProjection' || input.kind === 'journal'
548
- ? 'workroom_fact'
549
- : 'projection_payload',
550
- proposedConfidentiality: rule.proposedConfidentiality,
551
- categories: rule.categories,
552
- allowedPurposes: rule.allowedPurposes,
553
- allowedRegions: rule.allowedRegions,
554
- subjectRefs: [],
555
- retention: {
556
- class: rule.retentionClass,
557
- minimumRetainUntil: safeAdd(createdAt, rule.minimumRetentionMs),
558
- deleteAfter: safeAdd(createdAt, rule.maximumRetentionMs),
559
- },
560
- lineage: { sourceObjectIds: [input.source.ref] },
561
- }, authority.categoryRegistry);
562
- if (classified.status === 'quarantined') {
563
- await this.#block(input.operationId, input.projectId, 'source_classification_quarantined');
564
- throw new Error(`Governed ${input.kind} payload classification is quarantined`);
565
- }
566
- const descriptor = classified.descriptor;
567
- const descriptorDigest = digest(descriptor);
568
- let intent = await infrastructure.payloadWrites.begin({
569
- operationId: input.operationId,
570
- projectId: input.projectId,
571
- objectId: descriptor.objectId,
572
- payloadHash: descriptor.payloadHash,
573
- descriptorDigest,
574
- sourceBindingDigest: input.source.bindingDigest,
575
- consumer: input.consumer ?? (input.kind === 'journal' ? 'journal_header' : 'authority_source'),
576
- ...(input.publicationScope ? { publicationScope: input.publicationScope } : {}),
577
- });
578
- intentId = intent.intentId;
579
- if (intent.state === 'purge_required') {
580
- throw new Error('Governed Payload write was abandoned and cannot be republished');
581
- }
582
- let handle = intent.handle;
583
- if (!handle) {
584
- handle = await this.options.vault.putSource({
585
- descriptor,
586
- descriptorDigest,
587
- payload: input.payload,
588
- sourceBindingDigest: input.source.bindingDigest,
589
- }, linked.signal);
590
- intent = await infrastructure.payloadWrites.recordVault(intentId, handle);
591
- }
592
- if (intent.state === 'vault_written') {
593
- const lifecycleIndex = await infrastructure.payloadLifecycleIndex.register({
594
- operationId: input.operationId,
595
- handle,
596
- }, linked.signal);
597
- const sourceAuthority = createGovernedSourceAuthority({
598
- version: 1,
599
- projectId: authority.projectId,
600
- sourceRef: descriptor.objectId,
601
- sourceDigest: descriptor.payloadHash,
602
- sourceBindingDigest: input.source.bindingDigest,
603
- descriptor,
604
- handle,
605
- projectAuthorityRevision: authority.revision,
606
- projectAuthorityDigest: authority.digest,
607
- });
608
- const persistedSource = await this.options.repository.appendSource(sourceAuthority);
609
- if (canonicalWorkroomJson(persistedSource) !== canonicalWorkroomJson(sourceAuthority)) {
610
- throw new Error('Governed Payload source authority CAS winner drift');
611
- }
612
- intent = await infrastructure.payloadWrites.recordAuthorityIndex(intentId, digest({
613
- sourceAuthorityDigest: sourceAuthority.digest,
614
- lifecycleIndexDigest: lifecycleIndex.digest,
615
- }));
616
- }
617
- authorityIndexed = intent.state === 'authority_indexed' || intent.state === 'published';
618
- const receipt = deepFreeze({
619
- descriptor: {
620
- vaultObjectId: handle.vaultObjectId,
621
- objectId: handle.objectId,
622
- payloadHash: handle.payloadHash,
623
- descriptorDigest: handle.descriptorDigest,
624
- locationManifestDigest: handle.locationManifestDigest,
625
- bytes: input.payload.byteLength,
626
- },
627
- source: structuredClone(input.source),
628
- });
629
- if (input.publication && intent.state !== 'published') {
630
- publicationStarted = true;
631
- const publicationReceipt = deepFreeze({
632
- descriptor: receipt.descriptor,
633
- source: validatePublicationReceiptSource(input.source),
634
- });
635
- const publication = await input.publication.publish(publicationReceipt, linked.signal);
636
- publicationConfirmed = true;
637
- await infrastructure.payloadWrites.publish(intentId, exactDigest(publication.publicationDigest, 'payload publicationDigest'));
638
- }
639
- return receipt;
640
- }
641
- catch (error) {
642
- if (intentId) {
643
- const snapshot = await this.options.payloadWrites?.read(intentId);
644
- const definiteAbandon = !authorityIndexed
645
- || error instanceof WorkroomGovernedPayloadHeaderCasLostError
646
- || error instanceof WorkroomGovernedPayloadPublicationAbandonedError;
647
- if (snapshot && snapshot.state !== 'published' && definiteAbandon
648
- && !(publicationStarted && publicationConfirmed)) {
649
- if (snapshot.state !== 'purge_required') {
650
- await this.options.payloadWrites?.requirePurge(intentId, error instanceof WorkroomGovernedPayloadHeaderCasLostError
651
- ? 'cas_lost'
652
- : 'write_failed');
653
- }
654
- await this.#purgeIntent(intentId);
655
- }
656
- }
657
- if (linked.signal.aborted) {
658
- throw linked.signal.reason ?? new DOMException('Governed payload write cancelled', 'AbortError');
659
- }
660
- await this.#block(input.operationId, input.projectId, blockerKind(error));
661
- throw error;
662
- }
663
- finally {
664
- linked.dispose();
665
- }
666
- }
667
- async #purgeIntent(intentId) {
668
- if (!this.options.payloadPurge)
669
- return;
670
- await this.options.payloadPurge.processIntent(intentId, this.options.signal);
671
- }
672
- async #requirePayloadInfrastructure(signal, blocker) {
673
- signal.throwIfAborted();
674
- const payloadWrites = this.options.payloadWrites;
675
- const payloadLifecycleIndex = this.options.payloadLifecycleIndex;
676
- const payloadPurge = this.options.payloadPurge;
677
- const rejectUnavailable = async (unavailable) => {
678
- if (blocker) {
679
- await this.#block(blocker.operationId, blocker.projectId, blockerKind(unavailable));
680
- }
681
- throw unavailable;
682
- };
683
- if (!payloadWrites) {
684
- return await rejectUnavailable(new Error('Governed Payload durable write saga authority is unavailable'));
685
- }
686
- if (!payloadLifecycleIndex) {
687
- return await rejectUnavailable(new Error('Governed Payload Lifecycle index authority is unavailable'));
688
- }
689
- if (!payloadPurge) {
690
- return await rejectUnavailable(new Error('Governed Payload orphan purge authority is unavailable'));
691
- }
692
- await payloadWrites.assertReady();
693
- signal.throwIfAborted();
694
- return Object.freeze({
695
- payloadWrites,
696
- payloadLifecycleIndex,
697
- payloadPurge,
698
- });
699
- }
700
- async #readTaskReport(input, signal) {
701
- await this.#requirePayloadInfrastructure(signal, {
702
- operationId: `accepted-source-read:${input.candidateHash}`,
703
- projectId: input.projectId,
704
- });
705
- const authority = await this.options.repository.readProject(input.projectId);
706
- const sinkRuleId = 'task-report:accepted-source-memory-projector';
707
- const sink = authority?.sinks[sinkRuleId];
708
- if (!authority || !sink?.fixedPrincipalId) {
709
- throw new Error('Accepted-source Task Report disclosure authority is unavailable');
710
- }
711
- const manifest = await this.disclosureManifest.materialize({
712
- operationId: `accepted-source-read:${input.candidateHash}`,
713
- projectId: input.projectId,
714
- sourceRef: input.receipt.descriptor.objectId,
715
- sourceDigest: input.receipt.descriptor.payloadHash,
716
- sinkRuleId,
717
- principalId: sink.fixedPrincipalId,
718
- }, signal);
719
- if (!manifest || manifest.output.mode !== 'full'
720
- || manifest.output.handle.vaultObjectId !== input.receipt.descriptor.vaultObjectId
721
- || manifest.output.handle.descriptorDigest !== input.receipt.descriptor.descriptorDigest
722
- || manifest.output.payloadHash !== input.receipt.descriptor.payloadHash) {
723
- throw new Error('Accepted-source Task Report disclosure is not exact/full');
724
- }
725
- const payload = await this.options.vault.readExact({
726
- handle: manifest.output.handle,
727
- requestDigest: manifest.requestDigest,
728
- purpose: manifest.purpose,
729
- principalId: manifest.principal.principalId,
730
- destinationId: manifest.destination.id,
731
- }, signal);
732
- let report;
733
- try {
734
- report = JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(payload));
735
- }
736
- catch (error) {
737
- throw new Error('Governed Task Report payload is not canonical JSON', { cause: error });
738
- }
739
- if (!report || typeof report !== 'object'
740
- || report.projectId !== input.projectId
741
- || report.runId !== input.runId
742
- || report.taskKey !== input.taskKey
743
- || report.ref !== input.reportRef
744
- || report.candidateHash !== input.candidateHash) {
745
- throw new Error('Governed Task Report payload escaped accepted-source scope');
746
- }
747
- return deepFreeze(report);
748
- }
749
- async #materializePlanning(request, operationSignal) {
750
- const linked = linkSignals(this.options.signal, operationSignal);
751
- const binding = createWorkroomPlanningDisclosureSourceBinding(request.input.source);
752
- try {
753
- this.#assertGeneration(request);
754
- if (canonicalWorkroomJson(binding) !== canonicalWorkroomJson(request.source)) {
755
- throw new Error('Planning disclosure source binding drift');
756
- }
757
- const authority = await this.options.repository.readProject(request.input.projectId);
758
- if (!authority) {
759
- await this.#block(request.input.operationId, request.input.projectId, 'project_authority_unavailable', binding.digest);
760
- throw new WorkroomPlanningClarificationError('planning_disclosure_unavailable');
761
- }
762
- const source = await this.#resolvePlanningSource(request, authority, binding.digest, linked.signal);
763
- const manifest = await this.#materialize({
764
- operationId: request.input.operationId,
765
- authority,
766
- source,
767
- context: {
768
- channel: 'model_provider',
769
- purpose: 'orchestration',
770
- requestedMode: authority.planning.source.requestedMode,
771
- policyRevision: authority.policy.revision,
772
- principal: {
773
- principalId: request.input.principalId,
774
- tenantId: authority.tenantId,
775
- projectId: authority.projectId,
776
- ...authority.planning.principal,
777
- },
778
- destination: authority.policy.destinations[authority.planning.destinationId],
779
- recipients: authority.planning.recipients,
780
- },
781
- signal: linked.signal,
782
- });
783
- await this.#requirePayloadInfrastructure(linked.signal);
784
- const payload = await this.options.vault.readExact(deepFreeze({
785
- handle: structuredClone(manifest.output.handle),
786
- requestDigest: manifest.requestDigest,
787
- purpose: manifest.purpose,
788
- principalId: manifest.principal.principalId,
789
- destinationId: manifest.destination.id,
790
- }), linked.signal);
791
- if (hashBytes(payload) !== manifest.output.payloadHash) {
792
- throw new Error('Planning disclosure output body hash mismatch');
793
- }
794
- let text;
795
- try {
796
- text = new TextDecoder('utf-8', { fatal: true }).decode(payload);
797
- }
798
- catch (error) {
799
- throw new Error('Planning disclosure output is not valid UTF-8', { cause: error });
800
- }
801
- return createWorkroomPlanningDisclosure({ source: request.source, manifest, text });
802
- }
803
- catch (error) {
804
- if (error instanceof WorkroomPlanningClarificationError)
805
- throw error;
806
- const kind = blockerKind(error);
807
- await this.#block(request.input.operationId, request.input.projectId, kind, binding.digest);
808
- if (linked.signal.aborted) {
809
- throw linked.signal.reason ?? new DOMException('Data Governance planning cancelled', 'AbortError');
810
- }
811
- throw new WorkroomPlanningClarificationError('planning_disclosure_unavailable');
812
- }
813
- finally {
814
- linked.dispose();
815
- }
816
- }
817
- async #resolvePlanningSource(request, authority, sourceBindingDigest, signal) {
818
- const infrastructure = await this.#requirePayloadInfrastructure(signal);
819
- const existing = await this.options.repository.readSource(request.input.projectId, request.input.source.ref, request.input.source.digest);
820
- if (existing) {
821
- if (existing.sourceBindingDigest !== sourceBindingDigest
822
- || existing.projectAuthorityDigest !== authority.digest
823
- || existing.projectAuthorityRevision !== authority.revision) {
824
- throw new Error('Governed source authority is stale for current policy');
825
- }
826
- await infrastructure.payloadLifecycleIndex.register({
827
- operationId: request.input.operationId,
828
- handle: existing.handle,
829
- }, signal);
830
- return existing;
831
- }
832
- const payload = new TextEncoder().encode(request.input.source.text);
833
- const payloadHash = hashBytes(payload);
834
- const timestamp = nonNegative(request.input.source.event.timestamp, 'source timestamp');
835
- const rule = authority.planning.source;
836
- const classified = classifyDataDescriptor({
837
- objectId: `workroom-source:${request.input.source.digest}`,
838
- payloadHash,
839
- tenantId: authority.tenantId,
840
- projectId: authority.projectId,
841
- kind: 'source_message',
842
- proposedConfidentiality: rule.proposedConfidentiality,
843
- categories: rule.categories,
844
- allowedPurposes: rule.allowedPurposes,
845
- allowedRegions: rule.allowedRegions,
846
- subjectRefs: rule.linkPrincipalAsSubject ? [request.input.principalId] : [],
847
- retention: {
848
- class: rule.retentionClass,
849
- minimumRetainUntil: safeAdd(timestamp, rule.minimumRetentionMs),
850
- deleteAfter: safeAdd(timestamp, rule.maximumRetentionMs),
851
- },
852
- lineage: { sourceObjectIds: [request.input.source.ref] },
853
- }, authority.categoryRegistry);
854
- if (classified.status === 'quarantined') {
855
- throw new Error(`Source classification quarantined: ${classified.reasonCodes.join(',')}`);
856
- }
857
- const descriptor = classified.descriptor;
858
- const handle = await this.options.vault.putSource({
859
- descriptor,
860
- descriptorDigest: digest(descriptor),
861
- payload,
862
- sourceBindingDigest,
863
- }, signal);
864
- await infrastructure.payloadLifecycleIndex.register({
865
- operationId: request.input.operationId,
866
- handle,
867
- }, signal);
868
- return await this.options.repository.appendSource(createGovernedSourceAuthority({
869
- version: 1,
870
- projectId: authority.projectId,
871
- sourceRef: request.input.source.ref,
872
- sourceDigest: request.input.source.digest,
873
- sourceBindingDigest,
874
- descriptor,
875
- handle,
876
- projectAuthorityRevision: authority.revision,
877
- projectAuthorityDigest: authority.digest,
878
- }));
879
- }
880
- async #materializeRegistered(request, operationSignal) {
881
- const linked = linkSignals(this.options.signal, operationSignal);
882
- try {
883
- const authority = await this.options.repository.readProject(request.projectId);
884
- if (!authority) {
885
- await this.#block(request.operationId, request.projectId, 'project_authority_unavailable');
886
- return null;
887
- }
888
- const source = await this.options.repository.readSource(request.projectId, request.sourceRef, request.sourceDigest);
889
- if (!source || source.projectAuthorityDigest !== authority.digest) {
890
- await this.#block(request.operationId, request.projectId, 'source_authority_conflict', undefined, authority.digest);
891
- return null;
892
- }
893
- const rule = authority.sinks[request.sinkRuleId];
894
- const destination = rule && authority.policy.destinations[rule.destinationId];
895
- if (!rule || !destination
896
- || (rule.fixedPrincipalId !== undefined && request.principalId !== rule.fixedPrincipalId)) {
897
- await this.#block(request.operationId, request.projectId, 'disclosure_denied', source.sourceBindingDigest, authority.digest);
898
- return null;
899
- }
900
- return await this.#materialize({
901
- operationId: request.operationId,
902
- authority,
903
- source,
904
- context: {
905
- channel: rule.channel,
906
- purpose: rule.purpose,
907
- requestedMode: rule.requestedMode,
908
- policyRevision: authority.policy.revision,
909
- principal: {
910
- principalId: request.principalId,
911
- ...(request.assignmentId === undefined ? {} : { assignmentId: request.assignmentId }),
912
- tenantId: authority.tenantId,
913
- projectId: authority.projectId,
914
- ...rule.principal,
915
- },
916
- destination,
917
- recipients: structuredClone(rule.recipients),
918
- },
919
- signal: linked.signal,
920
- });
921
- }
922
- catch (error) {
923
- await this.#block(request.operationId, request.projectId, blockerKind(error));
924
- if (linked.signal.aborted) {
925
- throw linked.signal.reason ?? new DOMException('Data Governance operation cancelled', 'AbortError');
926
- }
927
- return null;
928
- }
929
- finally {
930
- linked.dispose();
931
- }
932
- }
933
- async #prepareProjection(input, operationSignal) {
934
- const linked = linkSignals(this.options.signal, operationSignal);
935
- try {
936
- const authority = await this.options.repository.readProject(input.projectId);
937
- const sink = authority?.sinks[input.sinkRuleId];
938
- const expectedChannel = input.sinkRuleId === 'projection:sponsor-room'
939
- ? 'sponsor_projection'
940
- : 'workroom_projection';
941
- if (!authority || !sink || sink.channel !== expectedChannel || !sink.fixedPrincipalId
942
- || !authority.derivedPayloads.projection) {
943
- const reason = authority ? 'disclosure_denied' : 'project_authority_unavailable';
944
- await this.#block(input.operationId, input.projectId, reason, undefined, authority?.digest);
945
- return deepFreeze({ status: 'blocked', reason });
946
- }
947
- if (input.sourceEventIds.length === 0 || input.sourceEventIds.some(value => !value.trim())) {
948
- await this.#block(input.operationId, input.projectId, 'source_authority_conflict', undefined, authority.digest);
949
- return deepFreeze({ status: 'blocked', reason: 'source_authority_conflict' });
950
- }
951
- const authorityEpoch = deepFreeze({
952
- revision: authority.revision,
953
- digest: authority.digest,
954
- });
955
- const payload = new TextEncoder().encode(input.body);
956
- const payloadHash = hashBytes(payload);
957
- const source = deepFreeze({
958
- kind: 'tool',
959
- ref: `workroom-projection-events:${digest({
960
- projectId: input.projectId,
961
- sourceEventIds: input.sourceEventIds,
962
- authorityEpoch,
963
- })}`,
964
- digest: digest({ version: 1, sourceEventIds: input.sourceEventIds, authorityEpoch }),
965
- bindingDigest: digest({
966
- version: 1, projectId: input.projectId, sourceEventIds: input.sourceEventIds, payloadHash,
967
- authorityEpoch,
968
- }),
969
- verification: 'verified',
970
- });
971
- const receipt = await this.#writeDerivedPayload({
972
- operationId: `${input.operationId}:authority:${authority.revision}:${authority.digest}`,
973
- projectId: input.projectId,
974
- kind: 'projection',
975
- objectId: `workroom-projection-payload:${digest({
976
- projectId: input.projectId, sourceEventIds: input.sourceEventIds, payloadHash, authorityEpoch,
977
- })}`,
978
- payload,
979
- source,
980
- signal: linked.signal,
981
- });
982
- const request = deepFreeze({
983
- operationId: input.operationId,
984
- projectId: input.projectId,
985
- sourceRef: receipt.descriptor.objectId,
986
- sourceDigest: receipt.descriptor.payloadHash,
987
- sinkRuleId: input.sinkRuleId,
988
- principalId: sink.fixedPrincipalId,
989
- });
990
- const manifest = await this.#materializeRegistered(request, linked.signal);
991
- if (!manifest)
992
- return deepFreeze({ status: 'blocked', reason: 'disclosure_denied' });
993
- return deepFreeze({ status: 'ready', request, manifest });
994
- }
995
- catch (error) {
996
- if (linked.signal.aborted) {
997
- throw linked.signal.reason ?? new DOMException('Projection disclosure cancelled', 'AbortError');
998
- }
999
- const reason = blockerKind(error);
1000
- await this.#block(input.operationId, input.projectId, reason);
1001
- return deepFreeze({ status: 'blocked', reason });
1002
- }
1003
- finally {
1004
- linked.dispose();
1005
- }
1006
- }
1007
- async #revalidateRegistered(input, operationSignal) {
1008
- const linked = linkSignals(this.options.signal, operationSignal);
1009
- let reason;
1010
- try {
1011
- const { request, manifest } = input;
1012
- const authority = await this.options.repository.readProject(request.projectId);
1013
- if (!authority)
1014
- reason = 'project_authority_unavailable';
1015
- const source = authority
1016
- ? await this.options.repository.readSource(request.projectId, request.sourceRef, request.sourceDigest)
1017
- : undefined;
1018
- const sourceInvalid = !source
1019
- || source.sourceRef !== request.sourceRef
1020
- || source.sourceDigest !== request.sourceDigest
1021
- || source.projectAuthorityDigest !== authority.digest
1022
- || source.projectAuthorityRevision !== authority.revision
1023
- || source.descriptor.objectId !== manifest.source.objectId
1024
- || source.descriptor.payloadHash !== manifest.source.payloadHash
1025
- || digest(source.descriptor) !== manifest.source.descriptorDigest
1026
- || digest(source.descriptor.lineage) !== manifest.source.lineageDigest
1027
- || canonicalWorkroomJson(source.handle) !== canonicalWorkroomJson(manifest.source.handle);
1028
- const rule = authority?.sinks[request.sinkRuleId];
1029
- const destination = rule && authority?.policy.destinations[rule.destinationId];
1030
- if (!reason && (!rule || !destination
1031
- || (rule.fixedPrincipalId !== undefined && request.principalId !== rule.fixedPrincipalId)
1032
- || manifest.channel !== rule.channel
1033
- || manifest.purpose !== rule.purpose
1034
- || manifest.principal.principalId !== request.principalId
1035
- || manifest.principal.assignmentId !== request.assignmentId
1036
- || manifest.destination.id !== rule.destinationId)) {
1037
- reason = 'disclosure_manifest_stale';
1038
- }
1039
- if (!reason && (manifest.destination.recipientRevision !== rule.recipients.revision
1040
- || manifest.destination.recipientDigest !== rule.recipients.digest
1041
- || destination.recipientSnapshotRevision !== rule.recipients.revision
1042
- || destination.recipientSnapshotDigest !== rule.recipients.digest)) {
1043
- reason = 'disclosure_recipient_revoked';
1044
- }
1045
- if (!reason && manifest.destination.contractDigest !== destination.contractDigest) {
1046
- reason = 'disclosure_manifest_stale';
1047
- }
1048
- // Any policy replacement invalidates the persisted decision. A wider
1049
- // current policy must never silently extend an older Manifest.
1050
- if (!reason && (manifest.policy.revision !== authority.policy.revision
1051
- || manifest.policy.digest !== authority.policy.digest)) {
1052
- reason = 'disclosure_manifest_stale';
1053
- }
1054
- if (!reason && sourceInvalid)
1055
- reason = 'source_authority_conflict';
1056
- const now = this.#now();
1057
- if (!reason && now >= manifest.expiresAt)
1058
- reason = 'disclosure_manifest_expired';
1059
- if (!reason && !exactCurrentApprovals(manifest, authority.approvals, now)) {
1060
- reason = 'disclosure_approval_required';
1061
- }
1062
- if (reason) {
1063
- await this.#block(request.operationId, request.projectId, reason, source?.sourceBindingDigest, authority?.digest);
1064
- return deepFreeze({ status: 'blocked', reason });
1065
- }
1066
- linked.signal.throwIfAborted();
1067
- await this.#requirePayloadInfrastructure(linked.signal);
1068
- const body = await this.options.vault.readExact({
1069
- handle: structuredClone(manifest.output.handle),
1070
- requestDigest: manifest.requestDigest,
1071
- purpose: manifest.purpose,
1072
- principalId: manifest.principal.principalId,
1073
- destinationId: manifest.destination.id,
1074
- }, linked.signal);
1075
- if (hashBytes(body) !== manifest.output.payloadHash) {
1076
- await this.#block(request.operationId, request.projectId, 'source_authority_conflict', source?.sourceBindingDigest, authority?.digest);
1077
- return deepFreeze({ status: 'blocked', reason: 'source_authority_conflict' });
1078
- }
1079
- return Object.freeze({ status: 'ready', manifest: deepFreeze(structuredClone(manifest)), body });
1080
- }
1081
- catch (error) {
1082
- if (linked.signal.aborted) {
1083
- throw linked.signal.reason ?? new DOMException('Data Governance dispatch cancelled', 'AbortError');
1084
- }
1085
- const blocked = blockerKind(error);
1086
- await this.#block(input.request.operationId, input.request.projectId, blocked);
1087
- return deepFreeze({ status: 'blocked', reason: blocked });
1088
- }
1089
- finally {
1090
- linked.dispose();
1091
- }
1092
- }
1093
- async #materializeAssignment(request) {
1094
- let authority;
1095
- try {
1096
- authority = await this.options.repository.readProject(request.preview.projectId);
1097
- }
1098
- catch (error) {
1099
- if (this.options.signal.aborted)
1100
- throw this.options.signal.reason;
1101
- await this.#block(request.preview.operationId, request.preview.projectId, blockerKind(error));
1102
- return null;
1103
- }
1104
- const rule = authority?.remote[request.endpointId];
1105
- if (!authority || !rule || request.preview.generation !== this.generation
1106
- || rule.principal.role !== request.preview.role) {
1107
- await this.#block(request.preview.operationId, request.preview.projectId, authority ? 'disclosure_denied' : 'project_authority_unavailable', undefined, authority?.digest);
1108
- return null;
1109
- }
1110
- return await this.disclosureManifest.materialize({
1111
- operationId: request.preview.operationId,
1112
- projectId: request.preview.projectId,
1113
- sourceRef: request.contextView.ref,
1114
- sourceDigest: request.contextView.hash,
1115
- sinkRuleId: `remote:${request.endpointId}`,
1116
- principalId: request.principalId,
1117
- assignmentId: request.assignmentId,
1118
- }, this.options.signal);
1119
- }
1120
- async #materialize(input) {
1121
- const decisionInput = deepFreeze({
1122
- descriptor: structuredClone(input.source.descriptor),
1123
- policy: structuredClone(input.authority.policy),
1124
- context: structuredClone(input.context),
1125
- approvals: structuredClone(input.authority.approvals),
1126
- evaluatedAt: this.#now(),
1127
- });
1128
- return await materializeDisclosureManifest({
1129
- decisionInput,
1130
- categoryRegistry: input.authority.categoryRegistry,
1131
- source: input.source.handle,
1132
- vault: this.options.vault,
1133
- ...(this.options.transforms ? { transforms: this.options.transforms } : {}),
1134
- signal: input.signal,
1135
- });
1136
- }
1137
- #assertGeneration(request) {
1138
- const expected = createWorkroomDynamicPlanningGenerationSnapshot(this.generation);
1139
- if (canonicalWorkroomJson(request.generation) !== canonicalWorkroomJson(expected)) {
1140
- throw new Error('Data Governance request escaped its Root generation');
1141
- }
1142
- this.options.signal.throwIfAborted();
1143
- }
1144
- async #block(operationId, projectId, kind, sourceBindingDigest, authorityDigest) {
1145
- await this.options.repository.recordBlocker({
1146
- version: 1,
1147
- generation: this.generation,
1148
- operationId,
1149
- projectId,
1150
- kind,
1151
- ...(authorityDigest ? { authorityDigest } : {}),
1152
- ...(sourceBindingDigest && /^sha256:[a-f\d]{64}$/u.test(sourceBindingDigest)
1153
- ? { sourceBindingDigest }
1154
- : {}),
1155
- createdAt: this.#now(),
1156
- });
1157
- }
1158
- }
1159
- function blockerKind(error) {
1160
- if (error instanceof DOMException && error.name === 'AbortError')
1161
- return 'generation_retired';
1162
- if (error instanceof DataGovernanceAuthorityUnauthorizedError)
1163
- return 'project_authority_unavailable';
1164
- if (error instanceof PayloadVaultCryptographyUnavailableError)
1165
- return 'payload_vault_key_unavailable';
1166
- const message = error instanceof Error ? error.message : String(error);
1167
- if (message.includes('Project authority is unavailable'))
1168
- return 'project_authority_unavailable';
1169
- if (message.includes('quarantined'))
1170
- return 'source_classification_quarantined';
1171
- if (message.includes('approval'))
1172
- return 'disclosure_approval_required';
1173
- if (message.includes('stale') || message.includes('conflict'))
1174
- return 'source_authority_conflict';
1175
- if (message.includes('Abort') || message.includes('retired'))
1176
- return 'generation_retired';
1177
- return 'disclosure_denied';
1178
- }
1179
- function exactCurrentApprovals(manifest, approvals, now) {
1180
- if (manifest.approvalIds.length === 0)
1181
- return true;
1182
- const byId = new Map(approvals.map(approval => [approval.id, approval]));
1183
- return manifest.approvalIds.every((id) => {
1184
- const approval = byId.get(id);
1185
- return approval?.decision === 'approved'
1186
- && approval.requestDigest === manifest.requestDigest
1187
- && approval.policyRevision === manifest.policy.revision
1188
- && now < approval.expiresAt;
1189
- });
1190
- }
1191
- function validateReceiptSource(value) {
1192
- if (!value || !['command', 'file', 'url', 'tool', 'human'].includes(value.kind)
1193
- || typeof value.ref !== 'string' || !value.ref.trim()
1194
- || !/^sha256:[a-f\d]{64}$/u.test(value.digest)
1195
- || !/^sha256:[a-f\d]{64}$/u.test(value.bindingDigest)
1196
- || (value.verification !== 'verified' && value.verification !== 'unverified')) {
1197
- throw new Error('Trusted Evidence source resolver returned invalid canonical authority');
1198
- }
1199
- return deepFreeze(structuredClone(value));
1200
- }
1201
- function validatePublicationReceiptSource(value) {
1202
- const kind = (() => {
1203
- switch (value.kind) {
1204
- case 'command': return 'command';
1205
- case 'file': return 'file';
1206
- case 'url': return 'url';
1207
- case 'tool': return 'tool';
1208
- case 'human': return 'human';
1209
- default: throw new Error('Governed Payload header publication source kind is invalid');
1210
- }
1211
- })();
1212
- return validateReceiptSource(deepFreeze({
1213
- kind,
1214
- ref: value.ref,
1215
- digest: value.digest,
1216
- bindingDigest: value.bindingDigest,
1217
- verification: value.verification,
1218
- }));
1219
- }
1220
- function exactDigest(value, label) {
1221
- if (!/^sha256:[a-f\d]{64}$/u.test(value)) {
1222
- throw new Error(`${label} is invalid`);
1223
- }
1224
- return value;
1225
- }
1226
- function assertAcceptanceProjectionReceipt(receipt) {
1227
- if (!receipt.vaultObjectId.trim() || !receipt.objectId.trim()
1228
- || !/^sha256:[a-f\d]{64}$/u.test(receipt.payloadHash)
1229
- || !/^sha256:[a-f\d]{64}$/u.test(receipt.descriptorDigest)
1230
- || !/^sha256:[a-f\d]{64}$/u.test(receipt.locationManifestDigest)
1231
- || !/^sha256:[a-f\d]{64}$/u.test(receipt.sourceBindingDigest)
1232
- || receipt.source.kind !== 'profile-policy'
1233
- || !receipt.source.ref.trim()
1234
- || !/^sha256:[a-f\d]{64}$/u.test(receipt.source.digest)
1235
- || !receipt.source.issuer.trim()
1236
- || !/^sha256:[a-f\d]{64}$/u.test(receipt.source.issuerDigest)
1237
- || !Number.isSafeInteger(receipt.source.revision) || receipt.source.revision < 1
1238
- || !/^sha256:[a-f\d]{64}$/u.test(receipt.source.bindingDigest)
1239
- || receipt.source.bindingDigest !== receipt.sourceBindingDigest
1240
- || receipt.source.verification !== 'verified'
1241
- || !Number.isSafeInteger(receipt.bytes) || receipt.bytes < 1) {
1242
- throw new Error('Acceptance projection governed payload receipt is malformed');
1243
- }
1244
- }
1245
- function isAcceptanceProjectionInput(value) {
1246
- if (!isRecord(value)
1247
- || value.version !== 1
1248
- || typeof value.projectId !== 'string'
1249
- || typeof value.profileRevisionId !== 'string'
1250
- || typeof value.profileDigest !== 'string'
1251
- || typeof value.revision !== 'number'
1252
- || typeof value.issuer !== 'string'
1253
- || !Array.isArray(value.tasks)
1254
- || !value.tasks.every(isAcceptanceTaskPolicy)
1255
- || !isRecord(value.memorySchema)
1256
- || typeof value.memorySchema.revision !== 'number'
1257
- || !Array.isArray(value.memorySchema.claimRules)
1258
- || !value.memorySchema.claimRules.every(isMemoryClaimRule)) {
1259
- return false;
1260
- }
1261
- return Object.keys(value).every(key => [
1262
- 'version', 'projectId', 'profileRevisionId', 'profileDigest', 'revision', 'issuer', 'tasks', 'memorySchema',
1263
- ].includes(key));
1264
- }
1265
- function isAcceptanceTaskPolicy(value) {
1266
- if (!isRecord(value)
1267
- || typeof value.taskKey !== 'string'
1268
- || !['task_result', 'integration_candidate', 'effect_intent'].includes(String(value.kind))
1269
- || !Array.isArray(value.criteria)
1270
- || !value.criteria.every(isAcceptanceCriterion)
1271
- || !Array.isArray(value.requiredEvidence)
1272
- || !value.requiredEvidence.every(item => typeof item === 'string')
1273
- || !['baseline', 'reviewer_required', 'sponsor_required', 'reviewer_then_sponsor']
1274
- .includes(String(value.minimumRoute))
1275
- || typeof value.reviewerPrincipalId !== 'string'
1276
- || typeof value.sponsorPrincipalId !== 'string'
1277
- || typeof value.reviewerTimeoutMs !== 'number'
1278
- || typeof value.sponsorTimeoutMs !== 'number') {
1279
- return false;
1280
- }
1281
- return Object.keys(value).every(key => [
1282
- 'taskKey', 'kind', 'criteria', 'requiredEvidence', 'minimumRoute', 'reviewerPrincipalId',
1283
- 'sponsorPrincipalId', 'reviewerTimeoutMs', 'sponsorTimeoutMs',
1284
- ].includes(key));
1285
- }
1286
- function isAcceptanceCriterion(value) {
1287
- return isRecord(value)
1288
- && typeof value.id === 'string'
1289
- && ['deterministic', 'judgment'].includes(String(value.kind))
1290
- && typeof value.description === 'string'
1291
- && Object.keys(value).every(key => ['id', 'kind', 'description'].includes(key));
1292
- }
1293
- function isMemoryClaimRule(value) {
1294
- return isRecord(value)
1295
- && typeof value.key === 'string'
1296
- && value.valueType === 'string'
1297
- && Array.isArray(value.allowedStatuses)
1298
- && value.allowedStatuses.every(status => status === 'verified' || status === 'assumed')
1299
- && typeof value.allowSupersedes === 'boolean'
1300
- && Object.keys(value).every(key => [
1301
- 'key', 'valueType', 'allowedStatuses', 'allowSupersedes',
1302
- ].includes(key));
1303
- }
1304
- function isRecord(value) {
1305
- return typeof value === 'object' && value !== null && !Array.isArray(value);
1306
- }
1307
- function linkSignals(generation, operation) {
1308
- const controller = new AbortController();
1309
- const abortGeneration = () => controller.abort(generation.reason);
1310
- const abortOperation = () => controller.abort(operation.reason);
1311
- generation.addEventListener('abort', abortGeneration, { once: true });
1312
- operation.addEventListener('abort', abortOperation, { once: true });
1313
- if (generation.aborted)
1314
- abortGeneration();
1315
- else if (operation.aborted)
1316
- abortOperation();
1317
- return {
1318
- signal: controller.signal,
1319
- dispose: () => {
1320
- generation.removeEventListener('abort', abortGeneration);
1321
- operation.removeEventListener('abort', abortOperation);
1322
- },
1323
- };
1324
- }
1325
- function journalIntentId(projectId, runId, receipt) {
1326
- return createGovernedPayloadWriteIntentId({
1327
- operationId: `journal-publication:${runId}`,
1328
- projectId,
1329
- objectId: receipt.descriptor.objectId,
1330
- payloadHash: receipt.descriptor.payloadHash,
1331
- descriptorDigest: receipt.descriptor.descriptorDigest,
1332
- sourceBindingDigest: receipt.source.bindingDigest,
1333
- consumer: 'journal_header',
1334
- publicationScope: runId,
1335
- });
1336
- }
1337
- function hashBytes(value) {
1338
- return `sha256:${createHash('sha256').update(value).digest('hex')}`;
1339
- }
1340
- function positive(value, label) {
1341
- if (!Number.isSafeInteger(value) || Number(value) < 1)
1342
- throw new Error(`Data Governance ${label} is invalid`);
1343
- return Number(value);
1344
- }
1345
- function nonNegative(value, label) {
1346
- if (!Number.isSafeInteger(value) || Number(value) < 0)
1347
- throw new Error(`Data Governance ${label} is invalid`);
1348
- return Number(value);
1349
- }
1350
- function safeAdd(left, right) {
1351
- const value = left + right;
1352
- if (!Number.isSafeInteger(value) || value < 0)
1353
- throw new Error('Data Governance retention overflow');
1354
- return value;
1355
- }
1356
- //# sourceMappingURL=workroom-data-governance-runtime.js.map