@sixb/core 0.1.1 → 0.1.2

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 (1133) hide show
  1. package/README.md +31 -20
  2. package/dist/actions/commit-edits.d.ts +0 -2
  3. package/dist/actions/commit-edits.d.ts.map +1 -1
  4. package/dist/actions/execution.d.ts +21 -0
  5. package/dist/actions/execution.d.ts.map +1 -0
  6. package/dist/actions/index.d.ts +1 -1
  7. package/dist/actions/index.d.ts.map +1 -1
  8. package/dist/actions/index.js +35 -24
  9. package/dist/actions/index.js.map +1 -1
  10. package/dist/actions/registry.d.ts +16 -7
  11. package/dist/actions/registry.d.ts.map +1 -1
  12. package/dist/actions/request.d.ts +3 -2
  13. package/dist/actions/request.d.ts.map +1 -1
  14. package/dist/actions/run-dispatch.d.ts +21 -0
  15. package/dist/actions/run-dispatch.d.ts.map +1 -0
  16. package/dist/actions/types/context.d.ts +2 -2
  17. package/dist/actions/types/context.d.ts.map +1 -1
  18. package/dist/actions/validation.d.ts +1 -1
  19. package/dist/actions/validation.d.ts.map +1 -1
  20. package/dist/actions/worker.js +7 -7
  21. package/dist/actions/worker.js.map +1 -1
  22. package/dist/agents/adapters.d.ts +10 -0
  23. package/dist/agents/adapters.d.ts.map +1 -1
  24. package/dist/agents/authority.d.ts +31 -0
  25. package/dist/agents/authority.d.ts.map +1 -0
  26. package/dist/agents/context.js +2 -2
  27. package/dist/agents/dispatch.d.ts.map +1 -1
  28. package/dist/agents/errors.d.ts +1 -1
  29. package/dist/agents/errors.d.ts.map +1 -1
  30. package/dist/agents/execution.d.ts +45 -0
  31. package/dist/agents/execution.d.ts.map +1 -0
  32. package/dist/agents/index.d.ts +6 -6
  33. package/dist/agents/index.d.ts.map +1 -1
  34. package/dist/agents/index.js +64 -16
  35. package/dist/agents/index.js.map +1 -1
  36. package/dist/agents/prompt.d.ts.map +1 -1
  37. package/dist/agents/request.d.ts +6 -2
  38. package/dist/agents/request.d.ts.map +1 -1
  39. package/dist/agents/streams.d.ts +29 -3
  40. package/dist/agents/streams.d.ts.map +1 -1
  41. package/dist/agents/streams.js +22 -3
  42. package/dist/agents/streams.js.map +1 -1
  43. package/dist/agents/types.d.ts +2 -2
  44. package/dist/agents/types.d.ts.map +1 -1
  45. package/dist/agents/validation.d.ts +3 -3
  46. package/dist/agents/validation.d.ts.map +1 -1
  47. package/dist/auth/attribution.d.ts +17 -0
  48. package/dist/auth/attribution.d.ts.map +1 -0
  49. package/dist/auth/index.d.ts +1 -0
  50. package/dist/auth/index.d.ts.map +1 -1
  51. package/dist/auth/index.js +9 -5
  52. package/dist/auth/index.js.map +1 -1
  53. package/dist/auth/runtime.d.ts +4 -4
  54. package/dist/auth/runtime.d.ts.map +1 -1
  55. package/dist/authorization/decision.d.ts +24 -11
  56. package/dist/authorization/decision.d.ts.map +1 -1
  57. package/dist/authorization/grant-kinds.d.ts +2 -1
  58. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  59. package/dist/authorization/index.d.ts +1 -1
  60. package/dist/authorization/index.d.ts.map +1 -1
  61. package/dist/authorization/index.js +8 -4
  62. package/dist/authorization/index.js.map +1 -1
  63. package/dist/blob-storage/browser.js +2 -2
  64. package/dist/blob-storage/execution.d.ts +16 -0
  65. package/dist/blob-storage/execution.d.ts.map +1 -0
  66. package/dist/blob-storage/index.js +3 -3
  67. package/dist/bootstrap/discovery.d.ts +90 -24
  68. package/dist/bootstrap/discovery.d.ts.map +1 -1
  69. package/dist/bootstrap/index.d.ts +2 -1
  70. package/dist/bootstrap/index.d.ts.map +1 -1
  71. package/dist/bootstrap/index.js +60 -60
  72. package/dist/bootstrap/index.js.map +1 -1
  73. package/dist/broker/in-memory.d.ts.map +1 -1
  74. package/dist/broker/index.js +2 -2
  75. package/dist/broker/types.d.ts +5 -0
  76. package/dist/broker/types.d.ts.map +1 -1
  77. package/dist/chunk-0172wgm9.js +333 -0
  78. package/dist/chunk-0172wgm9.js.map +11 -0
  79. package/dist/chunk-0k4avqr2.js +317 -0
  80. package/dist/chunk-0k4avqr2.js.map +11 -0
  81. package/dist/chunk-0mbx247x.js +2922 -0
  82. package/dist/chunk-0mbx247x.js.map +43 -0
  83. package/dist/chunk-34bqh420.js +1168 -0
  84. package/dist/chunk-34bqh420.js.map +23 -0
  85. package/dist/{chunk-y2ygpd0m.js → chunk-3j7573mj.js} +2 -2
  86. package/dist/{chunk-y2ygpd0m.js.map → chunk-3j7573mj.js.map} +2 -2
  87. package/dist/{chunk-md9jbrm9.js → chunk-4gz41why.js} +1 -1
  88. package/dist/chunk-4x43bkbp.js +55 -0
  89. package/dist/chunk-4x43bkbp.js.map +11 -0
  90. package/dist/{chunk-xqbtf4wn.js → chunk-57r1cpxx.js} +3 -2
  91. package/dist/{chunk-xqbtf4wn.js.map → chunk-57r1cpxx.js.map} +3 -3
  92. package/dist/chunk-57zpb99z.js +194 -0
  93. package/dist/chunk-57zpb99z.js.map +10 -0
  94. package/dist/{chunk-nbywkytr.js → chunk-5egfka8j.js} +13 -33
  95. package/dist/chunk-5egfka8j.js.map +15 -0
  96. package/dist/chunk-5gd7tpv6.js +28 -0
  97. package/dist/chunk-5gd7tpv6.js.map +11 -0
  98. package/dist/{chunk-867jxh7c.js → chunk-5sz8ta9r.js} +6 -295
  99. package/dist/chunk-5sz8ta9r.js.map +16 -0
  100. package/dist/chunk-62c7t4jc.js +27 -0
  101. package/dist/chunk-62c7t4jc.js.map +11 -0
  102. package/dist/chunk-63te770v.js.map +1 -1
  103. package/dist/chunk-663csy96.js +34 -0
  104. package/dist/chunk-663csy96.js.map +10 -0
  105. package/dist/{chunk-xz5g49bp.js → chunk-6gjqgd3d.js} +3 -1
  106. package/dist/chunk-6gjqgd3d.js.map +11 -0
  107. package/dist/chunk-7pc8b818.js +128 -0
  108. package/dist/chunk-7pc8b818.js.map +13 -0
  109. package/dist/{chunk-sb0shdvv.js → chunk-85j5ybfj.js} +1 -1
  110. package/dist/{chunk-sb0shdvv.js.map → chunk-85j5ybfj.js.map} +2 -2
  111. package/dist/{chunk-6rzdtvn5.js → chunk-8b55ygje.js} +1 -1
  112. package/dist/chunk-8m5ejdpn.js +33 -0
  113. package/dist/chunk-8m5ejdpn.js.map +10 -0
  114. package/dist/chunk-8ryen3p3.js +118 -0
  115. package/dist/chunk-8ryen3p3.js.map +10 -0
  116. package/dist/chunk-979ww6b3.js +298 -0
  117. package/dist/chunk-979ww6b3.js.map +12 -0
  118. package/dist/{chunk-ya6brh8a.js → chunk-9t8f5xfx.js} +10 -5
  119. package/dist/chunk-9t8f5xfx.js.map +11 -0
  120. package/dist/{chunk-r82k4z7z.js → chunk-a31h57d5.js} +2 -2
  121. package/dist/chunk-bct7hmfc.js +402 -0
  122. package/dist/chunk-bct7hmfc.js.map +14 -0
  123. package/dist/chunk-bh6k3nc6.js +164 -0
  124. package/dist/chunk-bh6k3nc6.js.map +12 -0
  125. package/dist/{chunk-t72dvahb.js → chunk-bhxaq2nn.js} +61 -44
  126. package/dist/chunk-bhxaq2nn.js.map +12 -0
  127. package/dist/{chunk-avppcgt6.js → chunk-c6qd89g5.js} +241 -144
  128. package/dist/chunk-c6qd89g5.js.map +15 -0
  129. package/dist/{chunk-qzyemcj7.js → chunk-ckxfnx7f.js} +2 -2
  130. package/dist/chunk-cy0n5dms.js +27 -0
  131. package/dist/chunk-cy0n5dms.js.map +11 -0
  132. package/dist/chunk-dsrkgtnh.js +50 -0
  133. package/dist/chunk-dsrkgtnh.js.map +10 -0
  134. package/dist/{chunk-50kv63vj.js → chunk-dysw7nsm.js} +118 -26
  135. package/dist/chunk-dysw7nsm.js.map +14 -0
  136. package/dist/chunk-ezake7g1.js +32 -0
  137. package/dist/chunk-ezake7g1.js.map +11 -0
  138. package/dist/{chunk-yn947ck3.js → chunk-f2rt4vkh.js} +48 -29
  139. package/dist/chunk-f2rt4vkh.js.map +14 -0
  140. package/dist/{chunk-hb9xcx9c.js → chunk-fmx1sz2h.js} +117 -56
  141. package/dist/chunk-fmx1sz2h.js.map +15 -0
  142. package/dist/chunk-g9t3kdtx.js +90 -0
  143. package/dist/chunk-g9t3kdtx.js.map +10 -0
  144. package/dist/{chunk-f6kyyeef.js → chunk-ghteq96b.js} +8 -8
  145. package/dist/{chunk-f6kyyeef.js.map → chunk-ghteq96b.js.map} +4 -4
  146. package/dist/chunk-h9kxd41f.js +271 -0
  147. package/dist/chunk-h9kxd41f.js.map +11 -0
  148. package/dist/chunk-htq0qh7z.js +59 -0
  149. package/dist/chunk-htq0qh7z.js.map +11 -0
  150. package/dist/{chunk-xt6qx9sh.js → chunk-jaj13078.js} +121 -9
  151. package/dist/chunk-jaj13078.js.map +38 -0
  152. package/dist/{chunk-p7vj8xgb.js → chunk-k9pts48t.js} +81 -58
  153. package/dist/chunk-k9pts48t.js.map +35 -0
  154. package/dist/chunk-n8herkry.js +3294 -0
  155. package/dist/chunk-n8herkry.js.map +35 -0
  156. package/dist/chunk-nf4r78r4.js +44 -0
  157. package/dist/chunk-nf4r78r4.js.map +10 -0
  158. package/dist/{chunk-b1bqvhpe.js → chunk-nnyp53zt.js} +14 -34
  159. package/dist/chunk-nnyp53zt.js.map +13 -0
  160. package/dist/chunk-nten49ta.js +404 -0
  161. package/dist/chunk-nten49ta.js.map +12 -0
  162. package/dist/chunk-qvybnnpe.js +137 -0
  163. package/dist/chunk-qvybnnpe.js.map +10 -0
  164. package/dist/{chunk-53s4asfm.js → chunk-rnshztfq.js} +2 -2
  165. package/dist/chunk-sa4340y1.js +607 -0
  166. package/dist/chunk-sa4340y1.js.map +14 -0
  167. package/dist/{chunk-rjqm6ksg.js → chunk-st4xgxey.js} +583 -251
  168. package/dist/chunk-st4xgxey.js.map +45 -0
  169. package/dist/{chunk-be9vm29v.js → chunk-t8t39h7v.js} +1 -1
  170. package/dist/{chunk-be9vm29v.js.map → chunk-t8t39h7v.js.map} +3 -3
  171. package/dist/chunk-t9xghkva.js +28 -0
  172. package/dist/chunk-t9xghkva.js.map +10 -0
  173. package/dist/chunk-vp1vc6ee.js +35 -0
  174. package/dist/chunk-vp1vc6ee.js.map +11 -0
  175. package/dist/{chunk-8kv2sez0.js → chunk-vybf6pkp.js} +1 -1
  176. package/dist/{chunk-4tvj3ate.js → chunk-wtmzkcht.js} +4 -3
  177. package/dist/chunk-wtmzkcht.js.map +11 -0
  178. package/dist/{chunk-v5c085yp.js → chunk-xhy826cz.js} +3 -2
  179. package/dist/chunk-xhy826cz.js.map +10 -0
  180. package/dist/chunk-xkthy56g.js +33 -0
  181. package/dist/chunk-xkthy56g.js.map +11 -0
  182. package/dist/{chunk-raq0x6bd.js → chunk-ys1nse2v.js} +2175 -381
  183. package/dist/chunk-ys1nse2v.js.map +56 -0
  184. package/dist/{chunk-6zrpewy4.js → chunk-z3zp0bj1.js} +1 -1
  185. package/dist/chunk-zcnhxkvd.js +7 -0
  186. package/dist/chunk-zcnhxkvd.js.map +10 -0
  187. package/dist/chunk-zg9yryhz.js +252 -0
  188. package/dist/chunk-zg9yryhz.js.map +12 -0
  189. package/dist/chunk-zqqz8052.js +3 -0
  190. package/dist/{storage/projection-runs/lifecycle.js.map → chunk-zqqz8052.js.map} +1 -1
  191. package/dist/{chunk-hz8m927w.js → chunk-zqysyfjt.js} +1 -1
  192. package/dist/connectors/builders.d.ts +2 -1
  193. package/dist/connectors/builders.d.ts.map +1 -1
  194. package/dist/connectors/connections/authorizations.d.ts +64 -0
  195. package/dist/connectors/connections/authorizations.d.ts.map +1 -0
  196. package/dist/connectors/connections/capability.d.ts +7 -0
  197. package/dist/connectors/connections/capability.d.ts.map +1 -0
  198. package/dist/connectors/connections/command-context.d.ts +23 -0
  199. package/dist/connectors/connections/command-context.d.ts.map +1 -0
  200. package/dist/connectors/connections/contracts.d.ts +127 -0
  201. package/dist/connectors/connections/contracts.d.ts.map +1 -0
  202. package/dist/connectors/connections/credential-codec.d.ts +15 -0
  203. package/dist/connectors/connections/credential-codec.d.ts.map +1 -0
  204. package/dist/connectors/connections/credential-mutations.d.ts +63 -0
  205. package/dist/connectors/connections/credential-mutations.d.ts.map +1 -0
  206. package/dist/connectors/connections/execution.d.ts +20 -0
  207. package/dist/connectors/connections/execution.d.ts.map +1 -0
  208. package/dist/connectors/connections/internal.d.ts +5 -0
  209. package/dist/connectors/connections/internal.d.ts.map +1 -0
  210. package/dist/connectors/connections/internal.js +16 -0
  211. package/dist/connectors/connections/internal.js.map +9 -0
  212. package/dist/connectors/connections/provider-operation.d.ts +7 -0
  213. package/dist/connectors/connections/provider-operation.d.ts.map +1 -0
  214. package/dist/connectors/connections/request.d.ts +84 -0
  215. package/dist/connectors/connections/request.d.ts.map +1 -0
  216. package/dist/connectors/connections/runs.d.ts +51 -0
  217. package/dist/connectors/connections/runs.d.ts.map +1 -0
  218. package/dist/connectors/connections/service.d.ts +52 -0
  219. package/dist/connectors/connections/service.d.ts.map +1 -0
  220. package/dist/connectors/connections/storage-boundary.d.ts +3 -0
  221. package/dist/connectors/connections/storage-boundary.d.ts.map +1 -0
  222. package/dist/connectors/connections/tokens.d.ts +32 -0
  223. package/dist/connectors/connections/tokens.d.ts.map +1 -0
  224. package/dist/connectors/connections/validation.d.ts +27 -0
  225. package/dist/connectors/connections/validation.d.ts.map +1 -0
  226. package/dist/connectors/connections/views.d.ts +7 -0
  227. package/dist/connectors/connections/views.d.ts.map +1 -0
  228. package/dist/connectors/credentials.d.ts +25 -0
  229. package/dist/connectors/credentials.d.ts.map +1 -0
  230. package/dist/connectors/errors.d.ts +35 -3
  231. package/dist/connectors/errors.d.ts.map +1 -1
  232. package/dist/connectors/execution.d.ts +19 -0
  233. package/dist/connectors/execution.d.ts.map +1 -0
  234. package/dist/connectors/index.d.ts +5 -3
  235. package/dist/connectors/index.d.ts.map +1 -1
  236. package/dist/connectors/service.d.ts +23 -0
  237. package/dist/connectors/service.d.ts.map +1 -0
  238. package/dist/connectors/types.d.ts +94 -2
  239. package/dist/connectors/types.d.ts.map +1 -1
  240. package/dist/datasets/execution.d.ts +8 -0
  241. package/dist/datasets/execution.d.ts.map +1 -0
  242. package/dist/error-reporting/capability.d.ts +4 -49
  243. package/dist/error-reporting/capability.d.ts.map +1 -1
  244. package/dist/error-reporting/internal.d.ts +2 -2
  245. package/dist/error-reporting/internal.d.ts.map +1 -1
  246. package/dist/error-reporting/internal.js +10 -4
  247. package/dist/error-reporting/internal.js.map +1 -1
  248. package/dist/error-reporting/reporter.d.ts +4 -1
  249. package/dist/error-reporting/reporter.d.ts.map +1 -1
  250. package/dist/error-reporting/reports.d.ts +64 -0
  251. package/dist/error-reporting/reports.d.ts.map +1 -0
  252. package/dist/error-reporting/types.d.ts +88 -34
  253. package/dist/error-reporting/types.d.ts.map +1 -1
  254. package/dist/errors/catalog.d.ts +141 -0
  255. package/dist/errors/catalog.d.ts.map +1 -0
  256. package/dist/errors/internal.d.ts +68 -0
  257. package/dist/errors/internal.d.ts.map +1 -0
  258. package/dist/errors/internal.js +29 -0
  259. package/dist/errors/internal.js.map +9 -0
  260. package/dist/errors/types.d.ts +20 -0
  261. package/dist/errors/types.d.ts.map +1 -0
  262. package/dist/events/definitions.d.ts +0 -1
  263. package/dist/events/definitions.d.ts.map +1 -1
  264. package/dist/events/execution.d.ts +13 -0
  265. package/dist/events/execution.d.ts.map +1 -0
  266. package/dist/events/index.d.ts +3 -2
  267. package/dist/events/index.d.ts.map +1 -1
  268. package/dist/events/index.js +10 -8
  269. package/dist/events/index.js.map +1 -1
  270. package/dist/events/outbox-dispatcher.d.ts +4 -2
  271. package/dist/events/outbox-dispatcher.d.ts.map +1 -1
  272. package/dist/events/{runtime.d.ts → service.d.ts} +13 -14
  273. package/dist/events/service.d.ts.map +1 -0
  274. package/dist/events/types/pipelines.d.ts +4 -1
  275. package/dist/events/types/pipelines.d.ts.map +1 -1
  276. package/dist/events/types/syncs.d.ts +3 -0
  277. package/dist/events/types/syncs.d.ts.map +1 -1
  278. package/dist/events/types/workflows.d.ts +4 -2
  279. package/dist/events/types/workflows.d.ts.map +1 -1
  280. package/dist/execution/agent.d.ts +42 -0
  281. package/dist/execution/agent.d.ts.map +1 -0
  282. package/dist/execution/agent.js +70 -0
  283. package/dist/execution/agent.js.map +9 -0
  284. package/dist/execution/authorization.d.ts +60 -0
  285. package/dist/execution/authorization.d.ts.map +1 -0
  286. package/dist/execution/dispatch.d.ts +8 -0
  287. package/dist/execution/dispatch.d.ts.map +1 -0
  288. package/dist/execution/durable.d.ts +37 -0
  289. package/dist/execution/durable.d.ts.map +1 -0
  290. package/dist/execution/index.d.ts +2 -0
  291. package/dist/execution/index.d.ts.map +1 -0
  292. package/dist/execution/primitive.d.ts +21 -0
  293. package/dist/execution/primitive.d.ts.map +1 -0
  294. package/dist/execution/primitive.js +88 -0
  295. package/dist/execution/primitive.js.map +10 -0
  296. package/dist/execution/request.d.ts +38 -0
  297. package/dist/execution/request.d.ts.map +1 -0
  298. package/dist/execution/request.js +97 -0
  299. package/dist/execution/request.js.map +10 -0
  300. package/dist/execution/scopes.d.ts +30 -0
  301. package/dist/execution/scopes.d.ts.map +1 -0
  302. package/dist/execution/types.d.ts +111 -0
  303. package/dist/execution/types.d.ts.map +1 -0
  304. package/dist/index.d.ts +30 -13
  305. package/dist/index.d.ts.map +1 -1
  306. package/dist/index.js +130 -105
  307. package/dist/index.js.map +1 -1
  308. package/dist/json.d.ts +0 -1
  309. package/dist/json.d.ts.map +1 -1
  310. package/dist/lake-storage/index.js +5 -5
  311. package/dist/logging/execution.d.ts +9 -0
  312. package/dist/logging/execution.d.ts.map +1 -0
  313. package/dist/logging/index.d.ts +1 -1
  314. package/dist/logging/index.d.ts.map +1 -1
  315. package/dist/logging/index.js +8 -8
  316. package/dist/logging/index.js.map +1 -1
  317. package/dist/logging/{runtime.d.ts → service.d.ts} +7 -7
  318. package/dist/logging/{runtime.d.ts.map → service.d.ts.map} +1 -1
  319. package/dist/logging/types.js +2 -2
  320. package/dist/materialization/events.d.ts +1 -0
  321. package/dist/materialization/events.d.ts.map +1 -1
  322. package/dist/materialization/index.d.ts +1 -1
  323. package/dist/materialization/index.d.ts.map +1 -1
  324. package/dist/materialization/index.js +2 -2
  325. package/dist/materialization/model.d.ts +26 -17
  326. package/dist/materialization/model.d.ts.map +1 -1
  327. package/dist/materializer/edits/commit.d.ts +2 -1
  328. package/dist/materializer/edits/commit.d.ts.map +1 -1
  329. package/dist/materializer/edits/load-state.d.ts +1 -1
  330. package/dist/materializer/edits/load-state.d.ts.map +1 -1
  331. package/dist/materializer/edits/operations.d.ts +1 -13
  332. package/dist/materializer/edits/operations.d.ts.map +1 -1
  333. package/dist/materializer/edits/plan.d.ts +2 -1
  334. package/dist/materializer/edits/plan.d.ts.map +1 -1
  335. package/dist/materializer/edits/working-state.d.ts +36 -8
  336. package/dist/materializer/edits/working-state.d.ts.map +1 -1
  337. package/dist/materializer/effective/build-events.d.ts +1 -0
  338. package/dist/materializer/effective/build-events.d.ts.map +1 -1
  339. package/dist/materializer/effective/diff.d.ts +7 -0
  340. package/dist/materializer/effective/diff.d.ts.map +1 -1
  341. package/dist/materializer/effective/load-state.d.ts +0 -2
  342. package/dist/materializer/effective/load-state.d.ts.map +1 -1
  343. package/dist/materializer/effective/resolve.d.ts +17 -2
  344. package/dist/materializer/effective/resolve.d.ts.map +1 -1
  345. package/dist/materializer/execution/commit-lifecycle.d.ts +2 -2
  346. package/dist/materializer/execution/commit-lifecycle.d.ts.map +1 -1
  347. package/dist/materializer/execution/plan-stream.d.ts.map +1 -1
  348. package/dist/materializer/execution/scope.d.ts +26 -0
  349. package/dist/materializer/execution/scope.d.ts.map +1 -0
  350. package/dist/materializer/execution/work-executor.d.ts.map +1 -1
  351. package/dist/materializer/execution/work-records.d.ts +6 -5
  352. package/dist/materializer/execution/work-records.d.ts.map +1 -1
  353. package/dist/materializer/index.d.ts +2 -2
  354. package/dist/materializer/index.d.ts.map +1 -1
  355. package/dist/materializer/index.js +30 -18
  356. package/dist/materializer/index.js.map +1 -1
  357. package/dist/materializer/materializer.d.ts +37 -5
  358. package/dist/materializer/materializer.d.ts.map +1 -1
  359. package/dist/materializer/projections/finish-run.d.ts +2 -1
  360. package/dist/materializer/projections/finish-run.d.ts.map +1 -1
  361. package/dist/materializer/projections/replace.d.ts +2 -1
  362. package/dist/materializer/projections/replace.d.ts.map +1 -1
  363. package/dist/materializer/projections/replacement-plan.d.ts +1 -0
  364. package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
  365. package/dist/materializer/shared/batching.d.ts.map +1 -1
  366. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  367. package/dist/materializer/telemetry/append.d.ts +2 -1
  368. package/dist/materializer/telemetry/append.d.ts.map +1 -1
  369. package/dist/materializer/telemetry/plan.d.ts +7 -1
  370. package/dist/materializer/telemetry/plan.d.ts.map +1 -1
  371. package/dist/objects/action/request.d.ts +3 -3
  372. package/dist/objects/action/request.d.ts.map +1 -1
  373. package/dist/objects/context/index.d.ts +1 -1
  374. package/dist/objects/context/index.d.ts.map +1 -1
  375. package/dist/objects/context/types.d.ts +5 -0
  376. package/dist/objects/context/types.d.ts.map +1 -1
  377. package/dist/objects/execution.d.ts +100 -0
  378. package/dist/objects/execution.d.ts.map +1 -0
  379. package/dist/objects/index.js +37 -24
  380. package/dist/objects/index.js.map +1 -1
  381. package/dist/objects/materializer-adapter.d.ts +1 -1
  382. package/dist/objects/materializer-adapter.d.ts.map +1 -1
  383. package/dist/objects/query/executor.d.ts +3 -8
  384. package/dist/objects/query/executor.d.ts.map +1 -1
  385. package/dist/objects/query/index.d.ts +2 -2
  386. package/dist/objects/query/index.d.ts.map +1 -1
  387. package/dist/objects/query/index.js +9 -13
  388. package/dist/objects/query/index.js.map +1 -1
  389. package/dist/objects/query/planner.d.ts +0 -3
  390. package/dist/objects/query/planner.d.ts.map +1 -1
  391. package/dist/objects/sdk/object-handle.d.ts +2 -2
  392. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  393. package/dist/objects/sdk/object-set.d.ts +2 -0
  394. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  395. package/dist/objects/sdk/runtime-query-executor.d.ts +2 -0
  396. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  397. package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
  398. package/dist/objects/service/action-service.d.ts +3 -2
  399. package/dist/objects/service/action-service.d.ts.map +1 -1
  400. package/dist/objects/service/list-service.d.ts +1 -1
  401. package/dist/objects/telemetry/history.d.ts +2 -0
  402. package/dist/objects/telemetry/history.d.ts.map +1 -1
  403. package/dist/objects/telemetry/write-batch.d.ts.map +1 -1
  404. package/dist/ontology/index.d.ts +1 -1
  405. package/dist/ontology/index.d.ts.map +1 -1
  406. package/dist/ontology/index.js +5 -5
  407. package/dist/ontology/internal.js +4 -4
  408. package/dist/ontology/registry.d.ts +15 -2
  409. package/dist/ontology/registry.d.ts.map +1 -1
  410. package/dist/pipelines/execution.d.ts +19 -0
  411. package/dist/pipelines/execution.d.ts.map +1 -0
  412. package/dist/pipelines/index.d.ts +1 -0
  413. package/dist/pipelines/index.d.ts.map +1 -1
  414. package/dist/pipelines/index.js +66 -0
  415. package/dist/pipelines/index.js.map +9 -0
  416. package/dist/pipelines/request.d.ts +6 -9
  417. package/dist/pipelines/request.d.ts.map +1 -1
  418. package/dist/pipelines/run-dispatch.d.ts +47 -0
  419. package/dist/pipelines/run-dispatch.d.ts.map +1 -0
  420. package/dist/projections/builders.d.ts +0 -2
  421. package/dist/projections/builders.d.ts.map +1 -1
  422. package/dist/projections/capability.d.ts +7 -0
  423. package/dist/projections/capability.d.ts.map +1 -0
  424. package/dist/projections/execution.d.ts +19 -0
  425. package/dist/projections/execution.d.ts.map +1 -0
  426. package/dist/projections/index.d.ts +3 -1
  427. package/dist/projections/index.d.ts.map +1 -1
  428. package/dist/projections/internal.d.ts +4 -10
  429. package/dist/projections/internal.d.ts.map +1 -1
  430. package/dist/projections/internal.js +42 -6
  431. package/dist/projections/internal.js.map +1 -1
  432. package/dist/projections/ownership.d.ts +2 -2
  433. package/dist/projections/ownership.d.ts.map +1 -1
  434. package/dist/projections/registry.d.ts +21 -11
  435. package/dist/projections/registry.d.ts.map +1 -1
  436. package/dist/projections/revision.d.ts +2 -2
  437. package/dist/projections/revision.d.ts.map +1 -1
  438. package/dist/projections/run-dispatch.d.ts +37 -0
  439. package/dist/projections/run-dispatch.d.ts.map +1 -0
  440. package/dist/projections/run-id.d.ts +3 -0
  441. package/dist/projections/run-id.d.ts.map +1 -0
  442. package/dist/projections/types.d.ts +3 -0
  443. package/dist/projections/types.d.ts.map +1 -1
  444. package/dist/projections/validation.d.ts +2 -2
  445. package/dist/projections/validation.d.ts.map +1 -1
  446. package/dist/queues/in-memory.d.ts +11 -10
  447. package/dist/queues/in-memory.d.ts.map +1 -1
  448. package/dist/queues/index.d.ts +1 -1
  449. package/dist/queues/index.d.ts.map +1 -1
  450. package/dist/queues/index.js +1 -1
  451. package/dist/queues/types.d.ts +52 -42
  452. package/dist/queues/types.d.ts.map +1 -1
  453. package/dist/rules/execution.d.ts +14 -0
  454. package/dist/rules/execution.d.ts.map +1 -0
  455. package/dist/rules/index.d.ts +1 -1
  456. package/dist/rules/index.d.ts.map +1 -1
  457. package/dist/rules/validation.d.ts +1 -2
  458. package/dist/rules/validation.d.ts.map +1 -1
  459. package/dist/runtime/ai-usage.d.ts +8 -0
  460. package/dist/runtime/ai-usage.d.ts.map +1 -0
  461. package/dist/runtime/create.d.ts +7 -5
  462. package/dist/runtime/create.d.ts.map +1 -1
  463. package/dist/runtime/definitions.d.ts +35 -0
  464. package/dist/runtime/definitions.d.ts.map +1 -0
  465. package/dist/runtime/host.d.ts +123 -0
  466. package/dist/runtime/host.d.ts.map +1 -0
  467. package/dist/runtime/index.d.ts +6 -5
  468. package/dist/runtime/index.d.ts.map +1 -1
  469. package/dist/runtime/internal.d.ts +4 -0
  470. package/dist/runtime/internal.d.ts.map +1 -1
  471. package/dist/runtime/internal.js +6 -2
  472. package/dist/runtime/internal.js.map +1 -1
  473. package/dist/runtime/ontology-mutations.d.ts +4 -2
  474. package/dist/runtime/ontology-mutations.d.ts.map +1 -1
  475. package/dist/runtime/resolve-definitions.d.ts +42 -0
  476. package/dist/runtime/resolve-definitions.d.ts.map +1 -0
  477. package/dist/runtime/sixb.d.ts +43 -219
  478. package/dist/runtime/sixb.d.ts.map +1 -1
  479. package/dist/runtime/types.d.ts +16 -216
  480. package/dist/runtime/types.d.ts.map +1 -1
  481. package/dist/scheduler/index.d.ts +1 -1
  482. package/dist/scheduler/index.d.ts.map +1 -1
  483. package/dist/scheduler/index.js +3 -6
  484. package/dist/scheduler/index.js.map +1 -1
  485. package/dist/scheduler/runtime.d.ts +7 -2
  486. package/dist/scheduler/runtime.d.ts.map +1 -1
  487. package/dist/schedules/execution.d.ts +6 -0
  488. package/dist/schedules/execution.d.ts.map +1 -0
  489. package/dist/schedules/index.js +9 -7
  490. package/dist/schedules/index.js.map +1 -1
  491. package/dist/schedules/types.d.ts +1 -3
  492. package/dist/schedules/types.d.ts.map +1 -1
  493. package/dist/security/every.d.ts +4 -1
  494. package/dist/security/every.d.ts.map +1 -1
  495. package/dist/security/grants.d.ts +4 -1
  496. package/dist/security/grants.d.ts.map +1 -1
  497. package/dist/security/index.d.ts +3 -1
  498. package/dist/security/index.d.ts.map +1 -1
  499. package/dist/security/registry.d.ts +42 -0
  500. package/dist/security/registry.d.ts.map +1 -0
  501. package/dist/security/types.d.ts +7 -12
  502. package/dist/security/types.d.ts.map +1 -1
  503. package/dist/security/validation.d.ts +2 -0
  504. package/dist/security/validation.d.ts.map +1 -1
  505. package/dist/storage/action-runs/failure.d.ts +7 -0
  506. package/dist/storage/action-runs/failure.d.ts.map +1 -0
  507. package/dist/storage/action-runs/failure.js +14 -0
  508. package/dist/storage/action-runs/failure.js.map +9 -0
  509. package/dist/storage/action-runs/idempotency.d.ts.map +1 -1
  510. package/dist/storage/action-runs/in-memory.d.ts +3 -1
  511. package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
  512. package/dist/storage/action-runs/index.d.ts +2 -1
  513. package/dist/storage/action-runs/index.d.ts.map +1 -1
  514. package/dist/storage/action-runs/provider.d.ts +10 -0
  515. package/dist/storage/action-runs/provider.d.ts.map +1 -0
  516. package/dist/storage/action-runs/provider.js +13 -0
  517. package/dist/storage/action-runs/provider.js.map +9 -0
  518. package/dist/storage/action-runs/types.d.ts +37 -18
  519. package/dist/storage/action-runs/types.d.ts.map +1 -1
  520. package/dist/storage/agents/errors.d.ts +1 -1
  521. package/dist/storage/agents/errors.d.ts.map +1 -1
  522. package/dist/storage/agents/in-memory.d.ts +4 -1
  523. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  524. package/dist/storage/agents/index.d.ts +2 -2
  525. package/dist/storage/agents/index.d.ts.map +1 -1
  526. package/dist/storage/agents/provider.d.ts +10 -0
  527. package/dist/storage/agents/provider.d.ts.map +1 -0
  528. package/dist/storage/agents/provider.js +17 -0
  529. package/dist/storage/agents/provider.js.map +9 -0
  530. package/dist/storage/agents/types.d.ts +13 -22
  531. package/dist/storage/agents/types.d.ts.map +1 -1
  532. package/dist/storage/ai-usage/errors.d.ts +8 -0
  533. package/dist/storage/ai-usage/errors.d.ts.map +1 -0
  534. package/dist/storage/ai-usage/in-memory.d.ts +28 -0
  535. package/dist/storage/ai-usage/in-memory.d.ts.map +1 -0
  536. package/dist/storage/ai-usage/index.d.ts +8 -0
  537. package/dist/storage/ai-usage/index.d.ts.map +1 -0
  538. package/dist/storage/ai-usage/record.d.ts +6 -0
  539. package/dist/storage/ai-usage/record.d.ts.map +1 -0
  540. package/dist/storage/ai-usage/types.d.ts +89 -0
  541. package/dist/storage/ai-usage/types.d.ts.map +1 -0
  542. package/dist/storage/ai-usage/usage.d.ts +11 -0
  543. package/dist/storage/ai-usage/usage.d.ts.map +1 -0
  544. package/dist/storage/auth/types.d.ts +1 -0
  545. package/dist/storage/auth/types.d.ts.map +1 -1
  546. package/dist/storage/connector-connections/errors.d.ts +12 -0
  547. package/dist/storage/connector-connections/errors.d.ts.map +1 -0
  548. package/dist/storage/connector-connections/in-memory.d.ts +81 -0
  549. package/dist/storage/connector-connections/in-memory.d.ts.map +1 -0
  550. package/dist/storage/connector-connections/index.d.ts +7 -0
  551. package/dist/storage/connector-connections/index.d.ts.map +1 -0
  552. package/dist/storage/connector-connections/provider/authorizations.d.ts +20 -0
  553. package/dist/storage/connector-connections/provider/authorizations.d.ts.map +1 -0
  554. package/dist/storage/connector-connections/provider/connections.d.ts +17 -0
  555. package/dist/storage/connector-connections/provider/connections.d.ts.map +1 -0
  556. package/dist/storage/connector-connections/provider/runs.d.ts +14 -0
  557. package/dist/storage/connector-connections/provider/runs.d.ts.map +1 -0
  558. package/dist/storage/connector-connections/provider/shared.d.ts +74 -0
  559. package/dist/storage/connector-connections/provider/shared.d.ts.map +1 -0
  560. package/dist/storage/connector-connections/provider.d.ts +49 -0
  561. package/dist/storage/connector-connections/provider.d.ts.map +1 -0
  562. package/dist/storage/connector-connections/provider.js +1025 -0
  563. package/dist/storage/connector-connections/provider.js.map +14 -0
  564. package/dist/storage/connector-connections/types.d.ts +402 -0
  565. package/dist/storage/connector-connections/types.d.ts.map +1 -0
  566. package/dist/storage/executions/errors.d.ts +8 -0
  567. package/dist/storage/executions/errors.d.ts.map +1 -0
  568. package/dist/storage/executions/in-memory.d.ts +21 -0
  569. package/dist/storage/executions/in-memory.d.ts.map +1 -0
  570. package/dist/storage/executions/index.d.ts +5 -0
  571. package/dist/storage/executions/index.d.ts.map +1 -0
  572. package/dist/storage/executions/provider.d.ts +29 -0
  573. package/dist/storage/executions/provider.d.ts.map +1 -0
  574. package/dist/storage/executions/provider.js +208 -0
  575. package/dist/storage/executions/provider.js.map +10 -0
  576. package/dist/storage/executions/run-link.d.ts +24 -0
  577. package/dist/storage/executions/run-link.d.ts.map +1 -0
  578. package/dist/storage/executions/types.d.ts +62 -0
  579. package/dist/storage/executions/types.d.ts.map +1 -0
  580. package/dist/storage/executions/validation.d.ts +13 -0
  581. package/dist/storage/executions/validation.d.ts.map +1 -0
  582. package/dist/storage/in-memory/index.d.ts +20 -5
  583. package/dist/storage/in-memory/index.d.ts.map +1 -1
  584. package/dist/storage/index.d.ts +28 -17
  585. package/dist/storage/index.d.ts.map +1 -1
  586. package/dist/storage/index.js +92 -29
  587. package/dist/storage/index.js.map +1 -1
  588. package/dist/storage/ontology/commits.d.ts +1 -0
  589. package/dist/storage/ontology/commits.d.ts.map +1 -1
  590. package/dist/storage/ontology/in-memory/index.d.ts +1 -0
  591. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  592. package/dist/storage/ontology/in-memory/materializations-state.d.ts +3 -2
  593. package/dist/storage/ontology/in-memory/materializations-state.d.ts.map +1 -1
  594. package/dist/storage/ontology/in-memory/materializations-work.d.ts +2 -2
  595. package/dist/storage/ontology/in-memory/materializations-work.d.ts.map +1 -1
  596. package/dist/storage/ontology/in-memory/materializations.d.ts +3 -1
  597. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  598. package/dist/storage/ontology/in-memory/shared-state.d.ts +7 -2
  599. package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
  600. package/dist/storage/ontology/index.d.ts +3 -2
  601. package/dist/storage/ontology/index.d.ts.map +1 -1
  602. package/dist/storage/ontology/materializations.d.ts +50 -5
  603. package/dist/storage/ontology/materializations.d.ts.map +1 -1
  604. package/dist/storage/ontology/outbox.d.ts +8 -2
  605. package/dist/storage/ontology/outbox.d.ts.map +1 -1
  606. package/dist/storage/ontology/provider-work.d.ts.map +1 -1
  607. package/dist/storage/ontology/provider.d.ts +5 -22
  608. package/dist/storage/ontology/provider.d.ts.map +1 -1
  609. package/dist/storage/ontology/provider.js +6 -7
  610. package/dist/storage/ontology/provider.js.map +1 -1
  611. package/dist/storage/operation-scope.d.ts.map +1 -1
  612. package/dist/storage/operation-scope.js +1 -1
  613. package/dist/storage/pipeline-runs/idempotency.d.ts +3 -0
  614. package/dist/storage/pipeline-runs/idempotency.d.ts.map +1 -0
  615. package/dist/storage/pipeline-runs/in-memory.d.ts +5 -1
  616. package/dist/storage/pipeline-runs/in-memory.d.ts.map +1 -1
  617. package/dist/storage/pipeline-runs/index.d.ts +3 -1
  618. package/dist/storage/pipeline-runs/index.d.ts.map +1 -1
  619. package/dist/storage/pipeline-runs/provider.d.ts +10 -0
  620. package/dist/storage/pipeline-runs/provider.d.ts.map +1 -0
  621. package/dist/storage/pipeline-runs/provider.js +11 -0
  622. package/dist/storage/pipeline-runs/provider.js.map +9 -0
  623. package/dist/storage/pipeline-runs/types.d.ts +30 -14
  624. package/dist/storage/pipeline-runs/types.d.ts.map +1 -1
  625. package/dist/storage/projection-runs/in-memory.d.ts +8 -3
  626. package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
  627. package/dist/storage/projection-runs/index.d.ts +2 -2
  628. package/dist/storage/projection-runs/index.d.ts.map +1 -1
  629. package/dist/storage/projection-runs/lifecycle.d.ts +14 -8
  630. package/dist/storage/projection-runs/lifecycle.d.ts.map +1 -1
  631. package/dist/storage/projection-runs/provider.d.ts +13 -0
  632. package/dist/storage/projection-runs/provider.d.ts.map +1 -0
  633. package/dist/storage/projection-runs/{lifecycle.js → provider.js} +15 -4
  634. package/dist/storage/projection-runs/provider.js.map +9 -0
  635. package/dist/storage/projection-runs/types.d.ts +28 -11
  636. package/dist/storage/projection-runs/types.d.ts.map +1 -1
  637. package/dist/storage/run-listing.d.ts +8 -9
  638. package/dist/storage/run-listing.d.ts.map +1 -1
  639. package/dist/storage/sync-runs/idempotency.d.ts +3 -0
  640. package/dist/storage/sync-runs/idempotency.d.ts.map +1 -0
  641. package/dist/storage/sync-runs/in-memory.d.ts +5 -1
  642. package/dist/storage/sync-runs/in-memory.d.ts.map +1 -1
  643. package/dist/storage/sync-runs/index.d.ts +3 -1
  644. package/dist/storage/sync-runs/index.d.ts.map +1 -1
  645. package/dist/storage/sync-runs/provider.d.ts +10 -0
  646. package/dist/storage/sync-runs/provider.d.ts.map +1 -0
  647. package/dist/storage/sync-runs/provider.js +11 -0
  648. package/dist/storage/sync-runs/provider.js.map +9 -0
  649. package/dist/storage/sync-runs/types.d.ts +28 -11
  650. package/dist/storage/sync-runs/types.d.ts.map +1 -1
  651. package/dist/storage/types.d.ts +20 -15
  652. package/dist/storage/types.d.ts.map +1 -1
  653. package/dist/storage/webhook-runs/errors.d.ts +3 -0
  654. package/dist/storage/webhook-runs/errors.d.ts.map +1 -1
  655. package/dist/storage/webhook-runs/in-memory.d.ts +13 -1
  656. package/dist/storage/webhook-runs/in-memory.d.ts.map +1 -1
  657. package/dist/storage/webhook-runs/index.d.ts +3 -2
  658. package/dist/storage/webhook-runs/index.d.ts.map +1 -1
  659. package/dist/storage/webhook-runs/provider.d.ts +10 -0
  660. package/dist/storage/webhook-runs/provider.d.ts.map +1 -0
  661. package/dist/storage/webhook-runs/provider.js +11 -0
  662. package/dist/storage/webhook-runs/provider.js.map +9 -0
  663. package/dist/storage/webhook-runs/types.d.ts +37 -11
  664. package/dist/storage/webhook-runs/types.d.ts.map +1 -1
  665. package/dist/storage/workflow-runs/in-memory.d.ts +6 -2
  666. package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
  667. package/dist/storage/workflow-runs/index.d.ts +2 -1
  668. package/dist/storage/workflow-runs/index.d.ts.map +1 -1
  669. package/dist/storage/workflow-runs/provider.d.ts +19 -0
  670. package/dist/storage/workflow-runs/provider.d.ts.map +1 -0
  671. package/dist/storage/workflow-runs/provider.js +19 -0
  672. package/dist/storage/workflow-runs/provider.js.map +9 -0
  673. package/dist/storage/workflow-runs/types.d.ts +28 -30
  674. package/dist/storage/workflow-runs/types.d.ts.map +1 -1
  675. package/dist/syncs/execution.d.ts +18 -0
  676. package/dist/syncs/execution.d.ts.map +1 -0
  677. package/dist/syncs/index.d.ts +3 -1
  678. package/dist/syncs/index.d.ts.map +1 -1
  679. package/dist/syncs/index.js +65 -0
  680. package/dist/syncs/index.js.map +9 -0
  681. package/dist/syncs/request.d.ts +6 -16
  682. package/dist/syncs/request.d.ts.map +1 -1
  683. package/dist/syncs/run-dispatch.d.ts +47 -0
  684. package/dist/syncs/run-dispatch.d.ts.map +1 -0
  685. package/dist/syncs/sources.d.ts +8 -0
  686. package/dist/syncs/sources.d.ts.map +1 -0
  687. package/dist/syncs/types.d.ts +16 -9
  688. package/dist/syncs/types.d.ts.map +1 -1
  689. package/dist/testing/action-execution.d.ts +12 -0
  690. package/dist/testing/action-execution.d.ts.map +1 -0
  691. package/dist/testing/agent-execution.d.ts +14 -0
  692. package/dist/testing/agent-execution.d.ts.map +1 -0
  693. package/dist/testing/agent-storage-contract.d.ts +10 -3
  694. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  695. package/dist/testing/ai-usage-storage-contract.d.ts +13 -0
  696. package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -0
  697. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  698. package/dist/testing/broker-contract.d.ts.map +1 -1
  699. package/dist/testing/connector-connection-storage-contract.d.ts +16 -0
  700. package/dist/testing/connector-connection-storage-contract.d.ts.map +1 -0
  701. package/dist/testing/execution-storage-contract.d.ts +15 -0
  702. package/dist/testing/execution-storage-contract.d.ts.map +1 -0
  703. package/dist/testing/execution.d.ts +23 -0
  704. package/dist/testing/execution.d.ts.map +1 -0
  705. package/dist/testing/index.d.ts +12 -0
  706. package/dist/testing/index.d.ts.map +1 -1
  707. package/dist/testing/index.js +4088 -1556
  708. package/dist/testing/index.js.map +25 -13
  709. package/dist/testing/materializer-fixture.d.ts +2 -2
  710. package/dist/testing/materializer-fixture.d.ts.map +1 -1
  711. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  712. package/dist/testing/ontology-contract-fixture.d.ts +1 -0
  713. package/dist/testing/ontology-contract-fixture.d.ts.map +1 -1
  714. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  715. package/dist/testing/pipeline-execution.d.ts +16 -0
  716. package/dist/testing/pipeline-execution.d.ts.map +1 -0
  717. package/dist/testing/projection-execution.d.ts +20 -0
  718. package/dist/testing/projection-execution.d.ts.map +1 -0
  719. package/dist/testing/projection-run-storage-contract.d.ts +9 -4
  720. package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
  721. package/dist/testing/queues-contract.d.ts.map +1 -1
  722. package/dist/testing/sync-execution.d.ts +16 -0
  723. package/dist/testing/sync-execution.d.ts.map +1 -0
  724. package/dist/testing/webhook-execution.d.ts +12 -0
  725. package/dist/testing/webhook-execution.d.ts.map +1 -0
  726. package/dist/testing/webhook-run-storage-contract.d.ts +11 -0
  727. package/dist/testing/webhook-run-storage-contract.d.ts.map +1 -0
  728. package/dist/testing/workflow-execution.d.ts +23 -0
  729. package/dist/testing/workflow-execution.d.ts.map +1 -0
  730. package/dist/webhooks/index.d.ts +2 -1
  731. package/dist/webhooks/index.d.ts.map +1 -1
  732. package/dist/webhooks/internal.d.ts +2 -0
  733. package/dist/webhooks/internal.d.ts.map +1 -0
  734. package/dist/webhooks/internal.js +150 -0
  735. package/dist/webhooks/internal.js.map +10 -0
  736. package/dist/webhooks/registry.d.ts +18 -4
  737. package/dist/webhooks/registry.d.ts.map +1 -1
  738. package/dist/webhooks/run-admission.d.ts +25 -0
  739. package/dist/webhooks/run-admission.d.ts.map +1 -0
  740. package/dist/webhooks/types.d.ts +8 -5
  741. package/dist/webhooks/types.d.ts.map +1 -1
  742. package/dist/workers/index.js +18 -19
  743. package/dist/workers/index.js.map +4 -4
  744. package/dist/workers/queue-delivery.d.ts +7 -7
  745. package/dist/workers/queue-delivery.d.ts.map +1 -1
  746. package/dist/workers/queue-worker.d.ts +30 -11
  747. package/dist/workers/queue-worker.d.ts.map +1 -1
  748. package/dist/workflows/execution.d.ts +49 -0
  749. package/dist/workflows/execution.d.ts.map +1 -0
  750. package/dist/workflows/failure.d.ts +28 -0
  751. package/dist/workflows/failure.d.ts.map +1 -0
  752. package/dist/workflows/index.d.ts +4 -2
  753. package/dist/workflows/index.d.ts.map +1 -1
  754. package/dist/workflows/index.js +64 -36
  755. package/dist/workflows/index.js.map +1 -1
  756. package/dist/workflows/request.d.ts +2 -1
  757. package/dist/workflows/request.d.ts.map +1 -1
  758. package/dist/workflows/run-dispatch.d.ts +59 -0
  759. package/dist/workflows/run-dispatch.d.ts.map +1 -0
  760. package/dist/workflows/types.d.ts +38 -8
  761. package/dist/workflows/types.d.ts.map +1 -1
  762. package/package.json +107 -5
  763. package/src/actions/commit-edits.ts +0 -3
  764. package/src/actions/execution.ts +83 -0
  765. package/src/actions/index.ts +1 -1
  766. package/src/actions/registry.ts +22 -10
  767. package/src/actions/request.ts +55 -177
  768. package/src/actions/run-dispatch.ts +276 -0
  769. package/src/actions/types/context.ts +2 -4
  770. package/src/actions/validation.ts +2 -2
  771. package/src/agents/adapters.ts +7 -3
  772. package/src/agents/authority.ts +189 -0
  773. package/src/agents/dispatch.ts +1 -6
  774. package/src/agents/errors.ts +2 -0
  775. package/src/agents/execution.ts +254 -0
  776. package/src/agents/index.ts +15 -3
  777. package/src/agents/prompt.ts +15 -3
  778. package/src/agents/request.ts +153 -13
  779. package/src/agents/streams.ts +150 -3
  780. package/src/agents/types.ts +2 -4
  781. package/src/agents/validation.ts +3 -3
  782. package/src/auth/attribution.ts +48 -0
  783. package/src/auth/index.ts +1 -0
  784. package/src/auth/runtime.ts +5 -5
  785. package/src/authorization/decision.ts +75 -14
  786. package/src/authorization/grant-kinds.ts +9 -0
  787. package/src/authorization/index.ts +2 -0
  788. package/src/blob-storage/execution.ts +78 -0
  789. package/src/bootstrap/discovery.ts +88 -268
  790. package/src/bootstrap/index.ts +2 -13
  791. package/src/broker/in-memory.ts +8 -1
  792. package/src/broker/types.ts +5 -0
  793. package/src/connectors/builders.ts +37 -2
  794. package/src/connectors/connections/authorizations.ts +646 -0
  795. package/src/connectors/connections/capability.ts +59 -0
  796. package/src/connectors/connections/command-context.ts +98 -0
  797. package/src/connectors/connections/contracts.ts +208 -0
  798. package/src/connectors/connections/credential-codec.ts +48 -0
  799. package/src/connectors/connections/credential-mutations.ts +574 -0
  800. package/src/connectors/connections/execution.ts +138 -0
  801. package/src/connectors/connections/internal.ts +17 -0
  802. package/src/connectors/connections/provider-operation.ts +41 -0
  803. package/src/connectors/connections/request.ts +447 -0
  804. package/src/connectors/connections/runs.ts +702 -0
  805. package/src/connectors/connections/service.ts +644 -0
  806. package/src/connectors/connections/storage-boundary.ts +13 -0
  807. package/src/connectors/connections/tokens.ts +292 -0
  808. package/src/connectors/connections/validation.ts +316 -0
  809. package/src/connectors/connections/views.ts +37 -0
  810. package/src/connectors/credentials.ts +149 -0
  811. package/src/connectors/errors.ts +111 -3
  812. package/src/connectors/execution.ts +157 -0
  813. package/src/connectors/index.ts +26 -2
  814. package/src/connectors/service.ts +142 -0
  815. package/src/connectors/types.ts +156 -7
  816. package/src/datasets/execution.ts +24 -0
  817. package/src/error-reporting/capability.ts +33 -106
  818. package/src/error-reporting/internal.ts +3 -1
  819. package/src/error-reporting/reporter.ts +19 -3
  820. package/src/error-reporting/reports.ts +172 -0
  821. package/src/error-reporting/types.ts +97 -43
  822. package/src/errors/catalog.ts +149 -0
  823. package/src/errors/internal.ts +322 -0
  824. package/src/errors/types.ts +21 -0
  825. package/src/events/definitions.ts +0 -4
  826. package/src/events/execution.ts +45 -0
  827. package/src/events/index.ts +15 -14
  828. package/src/events/outbox-dispatcher.ts +53 -18
  829. package/src/events/{runtime.ts → service.ts} +19 -23
  830. package/src/events/types/pipelines.ts +4 -1
  831. package/src/events/types/syncs.ts +3 -0
  832. package/src/events/types/workflows.ts +4 -2
  833. package/src/execution/agent.ts +130 -0
  834. package/src/execution/authorization.ts +409 -0
  835. package/src/execution/dispatch.ts +7 -0
  836. package/src/execution/durable.ts +193 -0
  837. package/src/execution/index.ts +12 -0
  838. package/src/execution/primitive.ts +50 -0
  839. package/src/execution/request.ts +109 -0
  840. package/src/execution/scopes.ts +198 -0
  841. package/src/execution/types.ts +113 -0
  842. package/src/http/api-routes.ts +3 -3
  843. package/src/index.ts +109 -9
  844. package/src/json.ts +0 -4
  845. package/src/logging/execution.ts +28 -0
  846. package/src/logging/index.ts +4 -4
  847. package/src/logging/{runtime.ts → service.ts} +7 -7
  848. package/src/materialization/events.ts +1 -0
  849. package/src/materialization/index.ts +2 -0
  850. package/src/materialization/model.ts +30 -18
  851. package/src/materializer/README.md +9 -13
  852. package/src/materializer/edits/commit.ts +85 -28
  853. package/src/materializer/edits/load-state.ts +79 -16
  854. package/src/materializer/edits/operations.ts +72 -36
  855. package/src/materializer/edits/plan.ts +95 -22
  856. package/src/materializer/edits/working-state.ts +86 -55
  857. package/src/materializer/effective/build-events.ts +2 -0
  858. package/src/materializer/effective/diff.ts +22 -0
  859. package/src/materializer/effective/load-state.ts +0 -31
  860. package/src/materializer/effective/resolve.ts +62 -0
  861. package/src/materializer/execution/commit-lifecycle.ts +9 -1
  862. package/src/materializer/execution/plan-stream.ts +33 -9
  863. package/src/materializer/execution/scope.ts +95 -0
  864. package/src/materializer/execution/work-executor.ts +6 -2
  865. package/src/materializer/execution/work-records.ts +39 -6
  866. package/src/materializer/index.ts +9 -1
  867. package/src/materializer/materializer.ts +67 -5
  868. package/src/materializer/projections/finish-run.ts +29 -11
  869. package/src/materializer/projections/replace.ts +55 -22
  870. package/src/materializer/projections/replacement-plan.ts +37 -7
  871. package/src/materializer/shared/batching.ts +4 -1
  872. package/src/materializer/shared/normalize.ts +0 -19
  873. package/src/materializer/telemetry/append.ts +57 -26
  874. package/src/materializer/telemetry/plan.ts +15 -6
  875. package/src/objects/action/request.ts +5 -5
  876. package/src/objects/context/index.ts +1 -0
  877. package/src/objects/context/types.ts +6 -0
  878. package/src/objects/execution.ts +346 -0
  879. package/src/objects/materializer-adapter.ts +1 -23
  880. package/src/objects/query/executor.ts +15 -29
  881. package/src/objects/query/index.ts +1 -2
  882. package/src/objects/query/planner.ts +0 -6
  883. package/src/objects/sdk/object-handle.ts +2 -2
  884. package/src/objects/sdk/object-set.ts +17 -7
  885. package/src/objects/sdk/runtime-query-executor.ts +9 -2
  886. package/src/objects/sdk/telemetry-channel.ts +5 -1
  887. package/src/objects/service/action-service.ts +5 -2
  888. package/src/objects/service/list-service.ts +1 -1
  889. package/src/objects/telemetry/history.ts +8 -3
  890. package/src/objects/telemetry/write-batch.ts +0 -2
  891. package/src/ontology/index.ts +6 -1
  892. package/src/ontology/registry.ts +16 -2
  893. package/src/pipelines/execution.ts +105 -0
  894. package/src/pipelines/index.ts +7 -0
  895. package/src/pipelines/request.ts +32 -26
  896. package/src/pipelines/run-dispatch.ts +308 -0
  897. package/src/projections/builders.ts +0 -9
  898. package/src/projections/capability.ts +37 -0
  899. package/src/projections/execution.ts +85 -0
  900. package/src/projections/index.ts +2 -1
  901. package/src/projections/internal.ts +17 -60
  902. package/src/projections/ownership.ts +2 -2
  903. package/src/projections/registry.ts +26 -11
  904. package/src/projections/revision.ts +7 -5
  905. package/src/projections/run-dispatch.ts +497 -0
  906. package/src/projections/run-id.ts +20 -0
  907. package/src/projections/types.ts +12 -0
  908. package/src/projections/validation.ts +3 -3
  909. package/src/queues/in-memory.ts +37 -11
  910. package/src/queues/index.ts +9 -2
  911. package/src/queues/types.ts +70 -45
  912. package/src/rules/execution.ts +49 -0
  913. package/src/rules/index.ts +0 -1
  914. package/src/rules/validation.ts +2 -6
  915. package/src/runtime/ai-usage.ts +17 -0
  916. package/src/runtime/create.ts +28 -68
  917. package/src/runtime/definitions.ts +44 -0
  918. package/src/runtime/host.ts +377 -0
  919. package/src/runtime/index.ts +5 -13
  920. package/src/runtime/internal.ts +12 -0
  921. package/src/runtime/ontology-mutations.ts +5 -3
  922. package/src/runtime/resolve-definitions.ts +238 -0
  923. package/src/runtime/sixb.ts +95 -822
  924. package/src/runtime/types.ts +17 -290
  925. package/src/scheduler/index.ts +1 -1
  926. package/src/scheduler/runtime.ts +37 -6
  927. package/src/schedules/execution.ts +14 -0
  928. package/src/schedules/types.ts +0 -8
  929. package/src/security/every.ts +4 -0
  930. package/src/security/grants.ts +13 -1
  931. package/src/security/index.ts +3 -1
  932. package/src/security/registry.ts +107 -0
  933. package/src/security/types.ts +8 -12
  934. package/src/security/validation.ts +7 -0
  935. package/src/storage/action-runs/failure.ts +64 -0
  936. package/src/storage/action-runs/idempotency.ts +3 -1
  937. package/src/storage/action-runs/in-memory.ts +39 -9
  938. package/src/storage/action-runs/index.ts +3 -0
  939. package/src/storage/action-runs/provider.ts +25 -0
  940. package/src/storage/action-runs/types.ts +61 -27
  941. package/src/storage/agents/errors.ts +1 -0
  942. package/src/storage/agents/in-memory.ts +49 -11
  943. package/src/storage/agents/index.ts +2 -1
  944. package/src/storage/agents/provider.ts +27 -0
  945. package/src/storage/agents/types.ts +19 -19
  946. package/src/storage/ai-usage/errors.ts +13 -0
  947. package/src/storage/ai-usage/in-memory.ts +162 -0
  948. package/src/storage/ai-usage/index.ts +21 -0
  949. package/src/storage/ai-usage/record.ts +74 -0
  950. package/src/storage/ai-usage/types.ts +102 -0
  951. package/src/storage/ai-usage/usage.ts +104 -0
  952. package/src/storage/auth/types.ts +1 -0
  953. package/src/storage/connector-connections/errors.ts +24 -0
  954. package/src/storage/connector-connections/in-memory.ts +1377 -0
  955. package/src/storage/connector-connections/index.ts +66 -0
  956. package/src/storage/connector-connections/provider/authorizations.ts +446 -0
  957. package/src/storage/connector-connections/provider/connections.ts +291 -0
  958. package/src/storage/connector-connections/provider/runs.ts +369 -0
  959. package/src/storage/connector-connections/provider/shared.ts +342 -0
  960. package/src/storage/connector-connections/provider.ts +219 -0
  961. package/src/storage/connector-connections/types.ts +546 -0
  962. package/src/storage/executions/errors.ts +21 -0
  963. package/src/storage/executions/in-memory.ts +75 -0
  964. package/src/storage/executions/index.ts +16 -0
  965. package/src/storage/executions/provider.ts +292 -0
  966. package/src/storage/executions/run-link.ts +70 -0
  967. package/src/storage/executions/types.ts +49 -0
  968. package/src/storage/executions/validation.ts +370 -0
  969. package/src/storage/in-memory/index.ts +50 -16
  970. package/src/storage/index.ts +154 -15
  971. package/src/storage/ontology/commits.ts +1 -0
  972. package/src/storage/ontology/in-memory/index.ts +2 -0
  973. package/src/storage/ontology/in-memory/materializations-finalization.ts +2 -1
  974. package/src/storage/ontology/in-memory/materializations-state.ts +10 -0
  975. package/src/storage/ontology/in-memory/materializations-work.ts +2 -1
  976. package/src/storage/ontology/in-memory/materializations.ts +131 -9
  977. package/src/storage/ontology/in-memory/outbox.ts +1 -1
  978. package/src/storage/ontology/in-memory/shared-state.ts +12 -1
  979. package/src/storage/ontology/index.ts +6 -0
  980. package/src/storage/ontology/materializations.ts +50 -4
  981. package/src/storage/ontology/outbox.ts +13 -2
  982. package/src/storage/ontology/provider-header-validation.ts +1 -0
  983. package/src/storage/ontology/provider-work.ts +33 -14
  984. package/src/storage/ontology/provider.ts +72 -52
  985. package/src/storage/operation-scope.ts +1 -0
  986. package/src/storage/pipeline-runs/idempotency.ts +14 -0
  987. package/src/storage/pipeline-runs/in-memory.ts +88 -8
  988. package/src/storage/pipeline-runs/index.ts +5 -1
  989. package/src/storage/pipeline-runs/provider.ts +25 -0
  990. package/src/storage/pipeline-runs/types.ts +37 -14
  991. package/src/storage/projection-runs/in-memory.ts +93 -24
  992. package/src/storage/projection-runs/index.ts +4 -0
  993. package/src/storage/projection-runs/lifecycle.ts +165 -36
  994. package/src/storage/projection-runs/provider.ts +34 -0
  995. package/src/storage/projection-runs/types.ts +34 -11
  996. package/src/storage/run-listing.ts +22 -13
  997. package/src/storage/sync-runs/idempotency.ts +18 -0
  998. package/src/storage/sync-runs/in-memory.ts +90 -7
  999. package/src/storage/sync-runs/index.ts +4 -1
  1000. package/src/storage/sync-runs/provider.ts +25 -0
  1001. package/src/storage/sync-runs/types.ts +35 -11
  1002. package/src/storage/types.ts +44 -17
  1003. package/src/storage/webhook-runs/errors.ts +14 -0
  1004. package/src/storage/webhook-runs/in-memory.ts +84 -9
  1005. package/src/storage/webhook-runs/index.ts +5 -1
  1006. package/src/storage/webhook-runs/provider.ts +30 -0
  1007. package/src/storage/webhook-runs/types.ts +52 -11
  1008. package/src/storage/workflow-runs/in-memory.ts +89 -55
  1009. package/src/storage/workflow-runs/index.ts +2 -0
  1010. package/src/storage/workflow-runs/provider.ts +70 -0
  1011. package/src/storage/workflow-runs/types.ts +36 -25
  1012. package/src/syncs/builders.ts +2 -2
  1013. package/src/syncs/execution.ts +78 -0
  1014. package/src/syncs/index.ts +13 -0
  1015. package/src/syncs/request.ts +32 -43
  1016. package/src/syncs/run-dispatch.ts +312 -0
  1017. package/src/syncs/sources.ts +20 -0
  1018. package/src/syncs/types.ts +32 -8
  1019. package/src/testing/action-execution.ts +61 -0
  1020. package/src/testing/agent-execution.ts +81 -0
  1021. package/src/testing/agent-storage-contract.ts +158 -63
  1022. package/src/testing/ai-usage-storage-contract.ts +528 -0
  1023. package/src/testing/auth-storage-contract.ts +17 -1
  1024. package/src/testing/broker-contract.ts +16 -1
  1025. package/src/testing/connector-connection-storage-contract.ts +1052 -0
  1026. package/src/testing/execution-storage-contract.ts +435 -0
  1027. package/src/testing/execution.ts +48 -0
  1028. package/src/testing/index.ts +52 -0
  1029. package/src/testing/materializer-fixture.ts +11 -3
  1030. package/src/testing/materializer-storage-contract.ts +213 -11
  1031. package/src/testing/ontology-contract-fixture.ts +35 -2
  1032. package/src/testing/ontology-storage-contract.ts +75 -14
  1033. package/src/testing/pipeline-execution.ts +64 -0
  1034. package/src/testing/projection-execution.ts +98 -0
  1035. package/src/testing/projection-run-storage-contract.ts +215 -29
  1036. package/src/testing/queues-contract.ts +40 -51
  1037. package/src/testing/sync-execution.ts +61 -0
  1038. package/src/testing/webhook-execution.ts +47 -0
  1039. package/src/testing/webhook-run-storage-contract.ts +240 -0
  1040. package/src/testing/workflow-execution.ts +77 -0
  1041. package/src/webhooks/index.ts +2 -1
  1042. package/src/webhooks/internal.ts +5 -0
  1043. package/src/webhooks/registry.ts +60 -36
  1044. package/src/webhooks/run-admission.ts +172 -0
  1045. package/src/webhooks/types.ts +8 -5
  1046. package/src/workers/queue-delivery.ts +25 -22
  1047. package/src/workers/queue-worker.ts +62 -32
  1048. package/src/workflows/execution.ts +292 -0
  1049. package/src/workflows/failure.ts +63 -0
  1050. package/src/workflows/index.ts +10 -1
  1051. package/src/workflows/request.ts +39 -118
  1052. package/src/workflows/run-dispatch.ts +359 -0
  1053. package/src/workflows/types.ts +39 -8
  1054. package/dist/actions/runtime.d.ts +0 -11
  1055. package/dist/actions/runtime.d.ts.map +0 -1
  1056. package/dist/agents/runtime.d.ts +0 -41
  1057. package/dist/agents/runtime.d.ts.map +0 -1
  1058. package/dist/chunk-4hwxq5e6.js +0 -49
  1059. package/dist/chunk-4hwxq5e6.js.map +0 -10
  1060. package/dist/chunk-4tvj3ate.js.map +0 -11
  1061. package/dist/chunk-50kv63vj.js.map +0 -12
  1062. package/dist/chunk-86459jn0.js +0 -1091
  1063. package/dist/chunk-86459jn0.js.map +0 -22
  1064. package/dist/chunk-867jxh7c.js.map +0 -19
  1065. package/dist/chunk-9k3hgv8h.js +0 -352
  1066. package/dist/chunk-9k3hgv8h.js.map +0 -13
  1067. package/dist/chunk-avppcgt6.js.map +0 -14
  1068. package/dist/chunk-b1bqvhpe.js.map +0 -13
  1069. package/dist/chunk-b5dp7gaf.js +0 -1092
  1070. package/dist/chunk-b5dp7gaf.js.map +0 -26
  1071. package/dist/chunk-bh8bwma3.js +0 -37
  1072. package/dist/chunk-bh8bwma3.js.map +0 -10
  1073. package/dist/chunk-btcsywk4.js +0 -985
  1074. package/dist/chunk-btcsywk4.js.map +0 -15
  1075. package/dist/chunk-exrfbt2d.js +0 -354
  1076. package/dist/chunk-exrfbt2d.js.map +0 -17
  1077. package/dist/chunk-hb9xcx9c.js.map +0 -14
  1078. package/dist/chunk-k25jm1x5.js +0 -102
  1079. package/dist/chunk-k25jm1x5.js.map +0 -10
  1080. package/dist/chunk-k6j72mtt.js +0 -9
  1081. package/dist/chunk-k6j72mtt.js.map +0 -10
  1082. package/dist/chunk-m9w0artv.js +0 -554
  1083. package/dist/chunk-m9w0artv.js.map +0 -13
  1084. package/dist/chunk-nbywkytr.js.map +0 -16
  1085. package/dist/chunk-p7vj8xgb.js.map +0 -34
  1086. package/dist/chunk-raq0x6bd.js.map +0 -48
  1087. package/dist/chunk-rgzed50y.js +0 -1445
  1088. package/dist/chunk-rgzed50y.js.map +0 -22
  1089. package/dist/chunk-rjqm6ksg.js.map +0 -44
  1090. package/dist/chunk-t72dvahb.js.map +0 -12
  1091. package/dist/chunk-v5c085yp.js.map +0 -10
  1092. package/dist/chunk-xt6qx9sh.js.map +0 -36
  1093. package/dist/chunk-xz5g49bp.js.map +0 -11
  1094. package/dist/chunk-ya6brh8a.js.map +0 -11
  1095. package/dist/chunk-yn947ck3.js.map +0 -14
  1096. package/dist/connectors/runtime.d.ts +0 -13
  1097. package/dist/connectors/runtime.d.ts.map +0 -1
  1098. package/dist/events/runtime.d.ts.map +0 -1
  1099. package/dist/objects/contexts.d.ts +0 -45
  1100. package/dist/objects/contexts.d.ts.map +0 -1
  1101. package/dist/objects/helpers.d.ts +0 -7
  1102. package/dist/objects/helpers.d.ts.map +0 -1
  1103. package/dist/runtime/scoped.d.ts +0 -158
  1104. package/dist/runtime/scoped.d.ts.map +0 -1
  1105. package/dist/security/runtime.d.ts +0 -16
  1106. package/dist/security/runtime.d.ts.map +0 -1
  1107. package/dist/storage/webhook-deliveries/in-memory.d.ts +0 -18
  1108. package/dist/storage/webhook-deliveries/in-memory.d.ts.map +0 -1
  1109. package/dist/storage/webhook-deliveries/index.d.ts +0 -3
  1110. package/dist/storage/webhook-deliveries/index.d.ts.map +0 -1
  1111. package/dist/storage/webhook-deliveries/types.d.ts +0 -43
  1112. package/dist/storage/webhook-deliveries/types.d.ts.map +0 -1
  1113. package/dist/workflows/runtime.d.ts +0 -33
  1114. package/dist/workflows/runtime.d.ts.map +0 -1
  1115. package/src/actions/runtime.ts +0 -31
  1116. package/src/agents/runtime.ts +0 -124
  1117. package/src/connectors/runtime.ts +0 -100
  1118. package/src/objects/contexts.ts +0 -64
  1119. package/src/objects/helpers.ts +0 -18
  1120. package/src/runtime/scoped.ts +0 -436
  1121. package/src/security/runtime.ts +0 -101
  1122. package/src/storage/webhook-deliveries/in-memory.ts +0 -108
  1123. package/src/storage/webhook-deliveries/index.ts +0 -9
  1124. package/src/storage/webhook-deliveries/types.ts +0 -41
  1125. package/src/workflows/runtime.ts +0 -68
  1126. /package/dist/{chunk-md9jbrm9.js.map → chunk-4gz41why.js.map} +0 -0
  1127. /package/dist/{chunk-6rzdtvn5.js.map → chunk-8b55ygje.js.map} +0 -0
  1128. /package/dist/{chunk-r82k4z7z.js.map → chunk-a31h57d5.js.map} +0 -0
  1129. /package/dist/{chunk-qzyemcj7.js.map → chunk-ckxfnx7f.js.map} +0 -0
  1130. /package/dist/{chunk-53s4asfm.js.map → chunk-rnshztfq.js.map} +0 -0
  1131. /package/dist/{chunk-8kv2sez0.js.map → chunk-vybf6pkp.js.map} +0 -0
  1132. /package/dist/{chunk-6zrpewy4.js.map → chunk-z3zp0bj1.js.map} +0 -0
  1133. /package/dist/{chunk-hz8m927w.js.map → chunk-zqysyfjt.js.map} +0 -0
@@ -0,0 +1,1168 @@
1
+ // @bun
2
+ import {
3
+ createSixbError
4
+ } from "./chunk-0172wgm9.js";
5
+ import {
6
+ compareStrings
7
+ } from "./chunk-t8t39h7v.js";
8
+
9
+ // src/authorization/grant-kinds.ts
10
+ var GRANT_KINDS = {
11
+ "access:application": {
12
+ universeKey: "applicationIds",
13
+ subject: "application",
14
+ fix: "Use an application exported from '@sixb/core'."
15
+ },
16
+ "view:object": {
17
+ universeKey: "objectTypeIds",
18
+ subject: "object type",
19
+ fix: "Register it in 'ontology/' or pass it to createSixb({ ontologies }).",
20
+ expandsSubtypes: true
21
+ },
22
+ "view:dataset": {
23
+ universeKey: "datasetIds",
24
+ subject: "dataset",
25
+ fix: "Add it to 'datasets/' or pass it to createSixb({ datasets })."
26
+ },
27
+ "edit:object": {
28
+ universeKey: "objectTypeIds",
29
+ subject: "object type",
30
+ fix: "Register it in 'ontology/' or pass it to createSixb({ ontologies })."
31
+ },
32
+ "append:telemetry": {
33
+ universeKey: "objectTypeIds",
34
+ subject: "object type",
35
+ fix: "Register it in 'ontology/' or pass it to createSixb({ ontologies })."
36
+ },
37
+ "apply:action": {
38
+ universeKey: "actionIds",
39
+ subject: "action",
40
+ fix: "Add it to 'actions/' or pass it to createSixb({ actions })."
41
+ },
42
+ "run:workflow": {
43
+ universeKey: "workflowIds",
44
+ subject: "workflow",
45
+ fix: "Add it to 'workflows/' or pass it to createSixb({ workflows })."
46
+ },
47
+ "run:sync": {
48
+ universeKey: "syncIds",
49
+ subject: "sync",
50
+ fix: "Add it to 'syncs/' or pass it to createSixb({ syncs })."
51
+ },
52
+ "run:pipeline": {
53
+ universeKey: "pipelineIds",
54
+ subject: "pipeline",
55
+ fix: "Add it to 'pipelines/' or pass it to createSixb({ pipelines })."
56
+ },
57
+ "run:agent": {
58
+ universeKey: "agentIds",
59
+ subject: "agent",
60
+ fix: "Add it to 'agents/' or pass it to createSixb({ agents })."
61
+ },
62
+ "observe:logs": {
63
+ universeKey: "observableIds",
64
+ subject: "observability surface",
65
+ fix: 'Use can.observe("logs").'
66
+ },
67
+ "manage:connector": {
68
+ universeKey: "connectorIds",
69
+ subject: "connector",
70
+ fix: "Add it to 'connectors/' or pass it to createSixb({ connectors })."
71
+ }
72
+ };
73
+ var GRANT_KIND_KEYS = Object.keys(GRANT_KINDS);
74
+ function grantKindOf(grant) {
75
+ switch (grant.capability) {
76
+ case "access":
77
+ return "access:application";
78
+ case "view":
79
+ return `view:${grant.target}`;
80
+ case "edit":
81
+ return "edit:object";
82
+ case "append":
83
+ return "append:telemetry";
84
+ case "apply":
85
+ return "apply:action";
86
+ case "run":
87
+ return `run:${grant.target}`;
88
+ case "observe":
89
+ return "observe:logs";
90
+ case "manage":
91
+ return "manage:connector";
92
+ }
93
+ }
94
+ function emptyGrantSets() {
95
+ const sets = {};
96
+ for (const kind of GRANT_KIND_KEYS) {
97
+ sets[kind] = new Set;
98
+ }
99
+ return sets;
100
+ }
101
+
102
+ // src/execution/types.ts
103
+ class RuntimeAuthorizationCapability {
104
+ #runtimeAuthorization = true;
105
+ constructor() {}
106
+ static create() {
107
+ const capability = new RuntimeAuthorizationCapability;
108
+ Object.freeze(capability);
109
+ return capability;
110
+ }
111
+ static is(value) {
112
+ return typeof value === "object" && value !== null && #runtimeAuthorization in value;
113
+ }
114
+ }
115
+ function createRuntimeAuthorizationCapability() {
116
+ return RuntimeAuthorizationCapability.create();
117
+ }
118
+ function isRuntimeAuthorizationCapability(value) {
119
+ return RuntimeAuthorizationCapability.is(value);
120
+ }
121
+
122
+ // src/execution/authorization.ts
123
+ var registeredAuthorizations = new WeakMap;
124
+ function createPrincipalRuntimeAuthorization(input) {
125
+ return createRegisteredPrincipalAuthorization(input);
126
+ }
127
+ function createAgentRuntimeAuthorization(input) {
128
+ if (input.context.principal.type !== "serviceAccount") {
129
+ throw new Error("[Sixb] Agent execution authority must belong to a service account.");
130
+ }
131
+ assertNonEmpty(input.executionId, "Execution id");
132
+ assertNonEmpty(input.agentId, "Agent id");
133
+ assertNonEmpty(input.runId, "Agent run id");
134
+ return createRegisteredPrincipalAuthorization(input, {
135
+ type: "agent",
136
+ executionId: input.executionId,
137
+ agentId: input.agentId,
138
+ runId: input.runId
139
+ });
140
+ }
141
+ function createRegisteredPrincipalAuthorization(input, executionBinding) {
142
+ const context = snapshotAuthorizationContext(input.context);
143
+ const credential = input.credential ? snapshotCredential(input.credential) : undefined;
144
+ assertCredentialMatchesContext(context, credential);
145
+ const ref = Object.freeze({
146
+ type: "principal",
147
+ principal: context.principal,
148
+ ...credential === undefined ? {} : { credential }
149
+ });
150
+ return register({
151
+ type: "principal",
152
+ projectId: input.projectId,
153
+ context,
154
+ ref,
155
+ ...executionBinding === undefined ? {} : { executionBinding: Object.freeze({ ...executionBinding }) }
156
+ });
157
+ }
158
+ function createDisabledRuntimeAuthorization(projectId) {
159
+ return register({ type: "unrestricted", projectId, ref: Object.freeze({ type: "disabled" }) });
160
+ }
161
+ function createTrustedPrimitiveRuntimeAuthorization(input) {
162
+ const primitive = snapshotTrustedPrimitive(input.primitive);
163
+ return register({
164
+ type: "unrestricted",
165
+ projectId: input.projectId,
166
+ ref: Object.freeze({ type: "trustedPrimitive", primitive })
167
+ });
168
+ }
169
+ function resolveRuntimeAuthorization(authorization) {
170
+ if (!isRuntimeAuthorizationCapability(authorization)) {
171
+ return { type: "denied" };
172
+ }
173
+ return registeredAuthorizations.get(authorization) ?? { type: "denied" };
174
+ }
175
+ function getAuthorizationRef(authorization) {
176
+ const resolved = resolveRuntimeAuthorization(authorization);
177
+ if (resolved.type === "denied") {
178
+ throw new Error("[Sixb] Runtime authorization is not a registered Core capability.");
179
+ }
180
+ return cloneAuthorizationRef(resolved.ref);
181
+ }
182
+ function assertExecutionScopeProject(projectId, scope) {
183
+ assertNonEmpty(projectId, "Project id");
184
+ if (scope.execution.projectId !== projectId) {
185
+ throw createSixbError("internal.unexpected", `[Sixb] Execution scope belongs to project '${scope.execution.projectId}', not '${projectId}'.`, {
186
+ details: {
187
+ executionId: scope.execution.id,
188
+ expectedProjectId: projectId,
189
+ scopeProjectId: scope.execution.projectId
190
+ }
191
+ });
192
+ }
193
+ const resolved = resolveRuntimeAuthorization(scope.authorization);
194
+ if (resolved.type === "denied") {
195
+ throw createSixbError("internal.unexpected", "[Sixb] Execution scope carries unregistered runtime authorization.", { details: { executionId: scope.execution.id, projectId } });
196
+ }
197
+ if (resolved.projectId !== projectId) {
198
+ throw createSixbError("internal.unexpected", `[Sixb] Execution authorization belongs to project '${resolved.projectId}', not '${projectId}'.`, {
199
+ details: {
200
+ authorizationProjectId: resolved.projectId,
201
+ executionId: scope.execution.id,
202
+ expectedProjectId: projectId
203
+ }
204
+ });
205
+ }
206
+ }
207
+ function resolveExecutionScopeAuthorization(projectId, scope) {
208
+ assertExecutionScopeProject(projectId, scope);
209
+ const resolved = resolveRuntimeAuthorization(scope.authorization);
210
+ if (resolved.type === "denied") {
211
+ throw createSixbError("internal.unexpected", "[Sixb] Execution scope carries unregistered runtime authorization.", { details: { executionId: scope.execution.id, projectId } });
212
+ }
213
+ const { execution } = scope;
214
+ switch (execution.executor.type) {
215
+ case "request":
216
+ if (execution.source.type !== "http" || execution.source.requestId !== execution.executor.requestId) {
217
+ throw invalidExecutionAuthority(execution.id, "request source does not match its executor");
218
+ }
219
+ if (resolved.ref.type === "principal") {
220
+ if (resolved.type !== "principal" || resolved.executionBinding !== undefined || !principalsEqual(execution.requestedBy, resolved.ref.principal)) {
221
+ throw invalidExecutionAuthority(execution.id, "request authority does not match its requested-by principal");
222
+ }
223
+ return resolved;
224
+ }
225
+ if (resolved.ref.type === "disabled" && execution.requestedBy === undefined)
226
+ return resolved;
227
+ throw invalidExecutionAuthority(execution.id, "request execution requires principal or explicitly disabled authority");
228
+ case "primitive":
229
+ if (resolved.ref.type !== "trustedPrimitive" || resolved.ref.primitive.kind !== execution.executor.kind || resolved.ref.primitive.id !== execution.executor.id || resolved.ref.primitive.runId !== execution.executor.runId) {
230
+ throw invalidExecutionAuthority(execution.id, "trusted primitive authority does not match its executor");
231
+ }
232
+ return resolved;
233
+ case "agent":
234
+ if (resolved.type !== "principal" || resolved.ref.type !== "principal" || resolved.ref.principal.type !== "serviceAccount" || resolved.ref.credential !== undefined || resolved.executionBinding?.type !== "agent" || resolved.executionBinding.executionId !== execution.id || resolved.executionBinding.agentId !== execution.executor.agentId || resolved.executionBinding.runId !== execution.executor.runId) {
235
+ throw invalidExecutionAuthority(execution.id, "agent authority does not match its execution binding");
236
+ }
237
+ return resolved;
238
+ case "kernel":
239
+ if (resolved.ref.type !== "kernel" || execution.requestedBy !== undefined || resolved.ref.operation.type !== execution.executor.operation.type || resolved.ref.operation.recoveryId !== execution.executor.operation.recoveryId) {
240
+ throw invalidExecutionAuthority(execution.id, "kernel authority does not match its executor");
241
+ }
242
+ return resolved;
243
+ }
244
+ }
245
+ function principalsEqual(left, right) {
246
+ return left?.type === right?.type && left?.id === right?.id;
247
+ }
248
+ function invalidExecutionAuthority(executionId, reason) {
249
+ return createSixbError("internal.unexpected", `[Sixb] Execution '${executionId}' is incompatible with its authority: ${reason}.`, { details: { executionId, reason } });
250
+ }
251
+ function register(input) {
252
+ assertNonEmpty(input.projectId, "Authorization project id");
253
+ const authorization = createRuntimeAuthorizationCapability();
254
+ registeredAuthorizations.set(authorization, Object.freeze(input));
255
+ return authorization;
256
+ }
257
+ function snapshotAuthorizationContext(context) {
258
+ const principal = snapshotAuthorizablePrincipal(context.principal);
259
+ const grants = emptyGrantSets();
260
+ for (const kind of GRANT_KIND_KEYS) {
261
+ grants[kind] = new Set(context.grants[kind]);
262
+ }
263
+ const frozenGrants = Object.freeze(grants);
264
+ return Object.freeze({
265
+ principal,
266
+ ...context.sessionId === undefined ? {} : { sessionId: context.sessionId },
267
+ groupIds: Object.freeze([...context.groupIds]),
268
+ roleIds: Object.freeze([...context.roleIds]),
269
+ grants: frozenGrants
270
+ });
271
+ }
272
+ function snapshotAuthorizablePrincipal(principal) {
273
+ if (principal.type !== "user" && principal.type !== "serviceAccount") {
274
+ throw new Error(`[Sixb] Principal type '${principal.type}' cannot hold runtime authorization.`);
275
+ }
276
+ assertNonEmpty(principal.id, "Authorization principal id");
277
+ return Object.freeze({ type: principal.type, id: principal.id });
278
+ }
279
+ function snapshotCredential(credential) {
280
+ assertNonEmpty(credential.id, "Authorization credential id");
281
+ if (credential.type !== "session" && credential.type !== "accessToken") {
282
+ const credentialType = credential.type;
283
+ throw new Error(`[Sixb] Unknown authorization credential type '${credentialType}'.`);
284
+ }
285
+ return Object.freeze({ type: credential.type, id: credential.id });
286
+ }
287
+ function assertCredentialMatchesContext(context, credential) {
288
+ if (credential?.type === "session") {
289
+ if (context.sessionId !== credential.id) {
290
+ throw new Error("[Sixb] Session credential id must match the authorization context session id.");
291
+ }
292
+ return;
293
+ }
294
+ if (context.sessionId !== undefined) {
295
+ throw new Error("[Sixb] Authorization context session requires a matching session credential.");
296
+ }
297
+ }
298
+ function snapshotTrustedPrimitive(primitive) {
299
+ if (!isTrustedPrimitiveKind(primitive.kind)) {
300
+ throw new Error(`[Sixb] Unknown trusted primitive kind '${primitive.kind}'.`);
301
+ }
302
+ assertNonEmpty(primitive.id, "Trusted primitive id");
303
+ assertNonEmpty(primitive.runId, "Trusted primitive run id");
304
+ return Object.freeze({ kind: primitive.kind, id: primitive.id, runId: primitive.runId });
305
+ }
306
+ function cloneAuthorizationRef(ref) {
307
+ switch (ref.type) {
308
+ case "principal":
309
+ return {
310
+ type: "principal",
311
+ principal: { ...ref.principal },
312
+ ...ref.credential === undefined ? {} : { credential: { ...ref.credential } }
313
+ };
314
+ case "trustedPrimitive":
315
+ return { type: "trustedPrimitive", primitive: { ...ref.primitive } };
316
+ case "kernel":
317
+ return { type: "kernel", operation: { ...ref.operation } };
318
+ case "disabled":
319
+ return { type: "disabled" };
320
+ }
321
+ }
322
+ function isTrustedPrimitiveKind(value) {
323
+ return value === "action" || value === "pipeline" || value === "projection" || value === "rule" || value === "sync" || value === "webhook" || value === "workflow";
324
+ }
325
+ function assertNonEmpty(value, label) {
326
+ if (!value.trim()) {
327
+ throw new Error(`[Sixb] ${label} must not be empty.`);
328
+ }
329
+ }
330
+
331
+ // src/authorization/errors.ts
332
+ class AuthorizationError extends Error {
333
+ grantKey;
334
+ name = "AuthorizationError";
335
+ constructor(grantKey, message) {
336
+ super(message);
337
+ this.grantKey = grantKey;
338
+ }
339
+ }
340
+
341
+ // src/authorization/decision.ts
342
+ function atomsFor(request) {
343
+ switch (request.kind) {
344
+ case "application.access":
345
+ return [{ kind: "access:application", id: request.audience }];
346
+ case "object.view":
347
+ return [{ kind: "view:object", id: request.objectTypeId }];
348
+ case "dataset.view":
349
+ return [{ kind: "view:dataset", id: request.datasetId }];
350
+ case "object.edit":
351
+ return [{ kind: "edit:object", id: request.objectTypeId }];
352
+ case "telemetry.append":
353
+ return [{ kind: "append:telemetry", id: request.objectTypeId }];
354
+ case "action.apply":
355
+ return [{ kind: "apply:action", id: request.actionId }];
356
+ case "workflow.run":
357
+ return [{ kind: "run:workflow", id: request.workflowId }];
358
+ case "sync.run":
359
+ return [{ kind: "run:sync", id: request.syncId }];
360
+ case "pipeline.run":
361
+ return [{ kind: "run:pipeline", id: request.pipelineId }];
362
+ case "agent.run":
363
+ return [{ kind: "run:agent", id: request.agentId }];
364
+ case "logs.observe":
365
+ return [{ kind: "observe:logs", id: "logs" }];
366
+ case "connector.manage":
367
+ return [{ kind: "manage:connector", id: request.connectorId }];
368
+ case "object.query":
369
+ return request.touchedObjectTypeIds.map((id) => ({ kind: "view:object", id }));
370
+ }
371
+ }
372
+ function atomKey(atom) {
373
+ if (atom.kind === "observe:logs")
374
+ return atom.kind;
375
+ return `${atom.kind}:${atom.id}`;
376
+ }
377
+ function holds(grants, atom) {
378
+ return grants[atom.kind].has(atom.id);
379
+ }
380
+ function evaluate(authorization, request) {
381
+ const atoms = atomsFor(request);
382
+ const requirements = atoms.map(atomKey);
383
+ const missing = authorization ? atoms.filter((atom) => !holds(authorization.grants, atom)).map(atomKey) : [];
384
+ return { allowed: missing.length === 0, requirements, missing };
385
+ }
386
+ function isAllowed(authorization, request) {
387
+ return evaluate(authorization, request).allowed;
388
+ }
389
+ function assertAuthorized(runtime, request) {
390
+ const resolved = assertRuntimeAuthorizationBound(runtime);
391
+ const authorization = resolved.type === "principal" ? resolved.context : undefined;
392
+ const decision = evaluate(authorization, request);
393
+ if (decision.allowed) {
394
+ return;
395
+ }
396
+ throw new AuthorizationError(decision.missing[0] ?? request.kind, deniedMessage(authorization, request));
397
+ }
398
+ function assertRuntimeAuthorizationBound(runtime) {
399
+ const resolved = resolveRuntimeAuthorization(runtime.runtimeAuthorization);
400
+ if (resolved.type === "denied") {
401
+ throw new AuthorizationError("runtime:unbound", "[Sixb] Protected operations require a registered execution scope.");
402
+ }
403
+ return resolved;
404
+ }
405
+ function assertCanEdit(runtime, objectTypeId) {
406
+ assertAuthorized(runtime, { kind: "object.view", objectTypeId });
407
+ assertAuthorized(runtime, { kind: "object.edit", objectTypeId });
408
+ }
409
+ function assertCanAppendTelemetry(runtime, objectTypeId) {
410
+ assertAuthorized(runtime, { kind: "telemetry.append", objectTypeId });
411
+ }
412
+ function assertCanManageConnector(runtime, connectorId) {
413
+ assertAuthorized(runtime, { kind: "connector.manage", connectorId });
414
+ }
415
+ function assertPrivileged(runtime, operation) {
416
+ const resolved = assertRuntimeAuthorizationBound(runtime);
417
+ if (resolved.type === "unrestricted") {
418
+ return;
419
+ }
420
+ throw new AuthorizationError(`privileged:${operation}`, `[Sixb] Operation '${operation}' is not covered by scoped authorization grants.`);
421
+ }
422
+ function assertProviderAccess(runtime, execution, operation) {
423
+ const resolved = assertRuntimeAuthorizationBound(runtime);
424
+ if (resolved.type === "unrestricted") {
425
+ return;
426
+ }
427
+ const binding = resolved.executionBinding;
428
+ const executor = execution.executor;
429
+ if (binding?.type === "agent" && executor.type === "agent" && binding.executionId === execution.id && binding.agentId === executor.agentId && binding.runId === executor.runId) {
430
+ return;
431
+ }
432
+ throw new AuthorizationError(`privileged:${operation}`, `[Sixb] Operation '${operation}' is not covered by scoped authorization grants.`);
433
+ }
434
+ function deniedMessage(authorization, request) {
435
+ const principalId = authorization?.principal.id ?? "unknown";
436
+ switch (request.kind) {
437
+ case "application.access":
438
+ return `[Sixb] Principal '${principalId}' is not allowed to access application '${request.audience}'.`;
439
+ case "object.view":
440
+ return `[Sixb] Principal '${principalId}' is not allowed to view object type '${request.objectTypeId}'.`;
441
+ case "dataset.view":
442
+ return `[Sixb] Principal '${principalId}' is not allowed to view dataset '${request.datasetId}'.`;
443
+ case "object.edit":
444
+ return `[Sixb] Principal '${principalId}' is not allowed to write object type '${request.objectTypeId}'.`;
445
+ case "telemetry.append":
446
+ return `[Sixb] Principal '${principalId}' is not allowed to append telemetry for object type '${request.objectTypeId}'.`;
447
+ case "action.apply":
448
+ return `[Sixb] Principal '${principalId}' is not allowed to apply action '${request.actionId}'.`;
449
+ case "workflow.run":
450
+ return `[Sixb] Principal '${principalId}' is not allowed to run workflow '${request.workflowId}'.`;
451
+ case "sync.run":
452
+ return `[Sixb] Principal '${principalId}' is not allowed to run sync '${request.syncId}'.`;
453
+ case "pipeline.run":
454
+ return `[Sixb] Principal '${principalId}' is not allowed to run pipeline '${request.pipelineId}'.`;
455
+ case "agent.run":
456
+ return `[Sixb] Principal '${principalId}' is not allowed to run agent '${request.agentId}'.`;
457
+ case "logs.observe":
458
+ return `[Sixb] Principal '${principalId}' is not allowed to observe project logs.`;
459
+ case "connector.manage":
460
+ return `[Sixb] Principal '${principalId}' is not allowed to manage connector '${request.connectorId}'.`;
461
+ case "object.query": {
462
+ const blocked = request.touchedObjectTypeIds.find((objectTypeId) => !isAllowed(authorization, { kind: "object.view", objectTypeId }));
463
+ return `[Sixb] Principal '${principalId}' is not allowed to view object type '${blocked}'.`;
464
+ }
465
+ }
466
+ }
467
+
468
+ // src/authorization/application-access.ts
469
+ function isApplicationAccessControlled(roles, audience) {
470
+ return roles.some((role) => role.grants["access:application"].has(audience));
471
+ }
472
+ function canAccessApplication(authorization, roles, audience) {
473
+ return !isApplicationAccessControlled(roles, audience) || isAllowed(authorization, { kind: "application.access", audience });
474
+ }
475
+ // src/authorization/event-visibility.ts
476
+ function canViewEvent(authorization, event) {
477
+ if (!authorization) {
478
+ return true;
479
+ }
480
+ switch (event.topic) {
481
+ case "objects":
482
+ case "telemetry":
483
+ return isAllowed(authorization, {
484
+ kind: "object.view",
485
+ objectTypeId: event.payload.objectTypeId
486
+ });
487
+ case "links":
488
+ return isAllowed(authorization, {
489
+ kind: "object.view",
490
+ objectTypeId: event.payload.sourceTypeId
491
+ }) && isAllowed(authorization, { kind: "object.view", objectTypeId: event.payload.targetTypeId });
492
+ case "actions": {
493
+ if (!isAllowed(authorization, { kind: "action.apply", actionId: event.payload.actionId })) {
494
+ return false;
495
+ }
496
+ const subject = event.payload.subject;
497
+ return subject.kind === "object" ? isAllowed(authorization, { kind: "object.view", objectTypeId: subject.objectTypeId }) : true;
498
+ }
499
+ case "workflows":
500
+ return isAllowed(authorization, {
501
+ kind: "workflow.run",
502
+ workflowId: event.payload.workflowId
503
+ });
504
+ case "rules":
505
+ return isAllowed(authorization, {
506
+ kind: "object.view",
507
+ objectTypeId: event.payload.subject.objectTypeId
508
+ });
509
+ case "syncs":
510
+ return isAllowed(authorization, {
511
+ kind: "sync.run",
512
+ syncId: event.payload.syncId
513
+ });
514
+ case "pipelines":
515
+ return isAllowed(authorization, {
516
+ kind: "pipeline.run",
517
+ pipelineId: event.payload.pipelineId
518
+ });
519
+ case "schedules":
520
+ return true;
521
+ case "datasets":
522
+ return isAllowed(authorization, {
523
+ kind: "dataset.view",
524
+ datasetId: event.payload.datasetId
525
+ });
526
+ default:
527
+ return false;
528
+ }
529
+ }
530
+ // src/authorization/resolve.ts
531
+ function resolveRoleGrants(role, universe) {
532
+ const grants = emptyGrantSets();
533
+ for (const grant of role.grants) {
534
+ const kind = grantKindOf(grant);
535
+ const spec = GRANT_KINDS[kind];
536
+ expandSelection(grant.selection, universe[spec.universeKey], grants[kind], spec.expandsSubtypes ? universe.getSubTypes : undefined);
537
+ }
538
+ return grants;
539
+ }
540
+ function expandSelection(selection, universe, into, expand) {
541
+ if (selection.all) {
542
+ const except = new Set(selection.except);
543
+ for (const id of universe) {
544
+ if (!except.has(id)) {
545
+ into.add(id);
546
+ }
547
+ }
548
+ return;
549
+ }
550
+ for (const id of selection.ids) {
551
+ into.add(id);
552
+ if (expand) {
553
+ for (const subTypeId of expand(id)) {
554
+ into.add(subTypeId);
555
+ }
556
+ }
557
+ }
558
+ }
559
+ function resolveAuthorizationContext(input) {
560
+ const memberGroupIds = new Set(input.groupIds);
561
+ const roleIds = [];
562
+ const grants = emptyGrantSets();
563
+ for (const role of input.roles) {
564
+ if (!role.grantedToGroupIds.some((groupId) => memberGroupIds.has(groupId))) {
565
+ continue;
566
+ }
567
+ roleIds.push(role.id);
568
+ for (const kind of GRANT_KIND_KEYS) {
569
+ for (const id of role.grants[kind]) {
570
+ grants[kind].add(id);
571
+ }
572
+ }
573
+ }
574
+ return {
575
+ principal: input.principal,
576
+ ...input.sessionId !== undefined ? { sessionId: input.sessionId } : {},
577
+ groupIds: input.groupIds,
578
+ roleIds,
579
+ grants
580
+ };
581
+ }
582
+ // src/projections/errors.ts
583
+ class ProjectionValidationError extends Error {
584
+ name = "ProjectionValidationError";
585
+ }
586
+
587
+ // src/projections/ownership.ts
588
+ function computeProjectionOwnership(projection, ontology) {
589
+ if (projection._tag === "ObjectProjectionDefinition") {
590
+ const primaryId = ontology.getPrimaryPropertyId(projection.objectTypeId);
591
+ return freezeOwnership({
592
+ objects: [
593
+ {
594
+ objectTypeId: projection.objectTypeId,
595
+ existence: true,
596
+ propertyIds: Object.keys(projection.properties).filter((propertyId) => propertyId !== primaryId).sort(compareStrings)
597
+ }
598
+ ],
599
+ links: Object.keys(projection.links).sort(compareStrings).map((linkId) => ({ sourceObjectTypeId: projection.objectTypeId, linkId })),
600
+ telemetry: []
601
+ });
602
+ }
603
+ if (projection._tag === "LinkProjectionDefinition") {
604
+ return freezeOwnership({
605
+ objects: [],
606
+ links: [
607
+ {
608
+ sourceObjectTypeId: projection.sourceObjectTypeId,
609
+ linkId: projection.linkId
610
+ }
611
+ ],
612
+ telemetry: []
613
+ });
614
+ }
615
+ return freezeOwnership({
616
+ objects: [],
617
+ links: [],
618
+ telemetry: [
619
+ {
620
+ objectTypeId: projection.objectTypeId,
621
+ propertyId: projection.propertyId
622
+ }
623
+ ]
624
+ });
625
+ }
626
+ function validateProjectionOwnership(projections) {
627
+ const existenceOwners = new Map;
628
+ const propertyOwners = new Map;
629
+ const linkOwners = new Map;
630
+ const telemetryOwners = new Map;
631
+ for (const { definition, ownership } of projections) {
632
+ for (const object of ownership.objects) {
633
+ if (object.existence) {
634
+ registerOwner(existenceOwners, object.objectTypeId, definition.id, `object type '${object.objectTypeId}' existence`);
635
+ }
636
+ for (const propertyId of object.propertyIds) {
637
+ registerOwner(propertyOwners, JSON.stringify([object.objectTypeId, propertyId]), definition.id, `property '${object.objectTypeId}.${propertyId}'`);
638
+ }
639
+ }
640
+ for (const link of ownership.links) {
641
+ registerOwner(linkOwners, JSON.stringify([link.sourceObjectTypeId, link.linkId]), definition.id, `link scope '${link.sourceObjectTypeId}.${link.linkId}'`);
642
+ }
643
+ for (const telemetry of ownership.telemetry) {
644
+ registerOwner(telemetryOwners, JSON.stringify([telemetry.objectTypeId, telemetry.propertyId]), definition.id, `telemetry source '${telemetry.objectTypeId}.${telemetry.propertyId}'`);
645
+ }
646
+ }
647
+ }
648
+ function registerOwner(owners, key, projectionId, description) {
649
+ const existing = owners.get(key);
650
+ if (existing !== undefined) {
651
+ throw new ProjectionValidationError(`[Sixb] Projection '${projectionId}' overlaps ${description} owned by projection '${existing}'.`);
652
+ }
653
+ owners.set(key, projectionId);
654
+ }
655
+ function freezeOwnership(ownership) {
656
+ return Object.freeze({
657
+ objects: Object.freeze(ownership.objects.map((object) => Object.freeze({ ...object, propertyIds: Object.freeze([...object.propertyIds]) }))),
658
+ links: Object.freeze(ownership.links.map((link) => Object.freeze({ ...link }))),
659
+ telemetry: Object.freeze(ownership.telemetry.map((telemetry) => Object.freeze({ ...telemetry })))
660
+ });
661
+ }
662
+
663
+ // src/projections/validation.ts
664
+ function validatePropertyMapping(objectType, mapping) {
665
+ const propertyIds = new Set(objectType.properties.map((p) => p.id));
666
+ const mappingKeys = Object.keys(mapping);
667
+ for (const key of mappingKeys) {
668
+ if (!propertyIds.has(key)) {
669
+ const available = [...propertyIds].sort().join(", ");
670
+ throw new ProjectionValidationError(`Property '${key}' does not exist on object type '${objectType.id}'. ` + `Available properties: ${available}`);
671
+ }
672
+ }
673
+ const primaryProperties = objectType.properties.filter((p) => p.primary === true);
674
+ if (primaryProperties.length !== 1) {
675
+ throw new ProjectionValidationError(`Object type '${objectType.id}' must have exactly one primary property, ` + `found ${primaryProperties.length}.`);
676
+ }
677
+ const primaryId = primaryProperties[0].id;
678
+ if (!(primaryId in mapping)) {
679
+ throw new ProjectionValidationError(`Primary property '${primaryId}' of object type '${objectType.id}' ` + `must be included in the property mapping.`);
680
+ }
681
+ }
682
+ function validateAndLowerLinkMapping(objectType, linkMapping, propertyMapping) {
683
+ const linkIds = new Set(objectType.links.map((l) => l.id));
684
+ const linksById = new Map(objectType.links.map((l) => [l.id, l]));
685
+ const propertyIds = new Set(objectType.properties.map((p) => p.id));
686
+ for (const [key, descriptor] of Object.entries(linkMapping)) {
687
+ if (!linkIds.has(key)) {
688
+ const available = [...linkIds].sort().join(", ");
689
+ throw new ProjectionValidationError(`Link '${key}' does not exist on object type '${objectType.id}'. ` + `Available links: ${available}`);
690
+ }
691
+ if (key !== descriptor.linkId) {
692
+ throw new ProjectionValidationError(`Link mapping key '${key}' does not match descriptor linkId '${descriptor.linkId}'.`);
693
+ }
694
+ const link = linksById.get(key);
695
+ if (Array.isArray(link.targetObjectTypeId)) {
696
+ throw new ProjectionValidationError(`Link '${key}' on object type '${objectType.id}' has a polymorphic target. ` + `FK projection of polymorphic links is not yet supported.`);
697
+ }
698
+ if (link.targetObjectTypeId === "*") {
699
+ throw new ProjectionValidationError(`Link '${key}' on object type '${objectType.id}' has a wildcard target. ` + `FK projection of wildcard links is not supported.`);
700
+ }
701
+ const sourcePropertyId = descriptor.sourcePropertyId;
702
+ const sourceField = descriptor.sourceField;
703
+ if (sourcePropertyId && sourceField) {
704
+ throw new ProjectionValidationError(`FK link '${key}' must use either sourceProperty or sourceField, not both.`);
705
+ }
706
+ if (!sourcePropertyId && !sourceField) {
707
+ throw new ProjectionValidationError(`FK link '${key}' must declare sourceProperty or sourceField.`);
708
+ }
709
+ if (!sourcePropertyId) {
710
+ continue;
711
+ }
712
+ if (!propertyIds.has(sourcePropertyId)) {
713
+ const available = [...propertyIds].sort().join(", ");
714
+ throw new ProjectionValidationError(`Source property '${sourcePropertyId}' does not exist on ` + `object type '${objectType.id}'. Available properties: ${available}`);
715
+ }
716
+ if (!(sourcePropertyId in propertyMapping)) {
717
+ throw new ProjectionValidationError(`Source property '${sourcePropertyId}' for link '${key}' ` + `must be included in the property mapping.`);
718
+ }
719
+ }
720
+ return Object.fromEntries(Object.entries(linkMapping).map(([linkId, descriptor]) => [
721
+ linkId,
722
+ {
723
+ linkId: descriptor.linkId,
724
+ ...descriptor.sourcePropertyId !== undefined ? { sourcePropertyId: descriptor.sourcePropertyId } : {},
725
+ ...descriptor.sourceField !== undefined ? { sourceField: descriptor.sourceField } : {},
726
+ targetObjectTypeId: descriptor.targetObjectTypeId
727
+ }
728
+ ]));
729
+ }
730
+ function validateLinkProjectionTarget(linkToken) {
731
+ if (Array.isArray(linkToken.targetObjectTypeId)) {
732
+ throw new ProjectionValidationError(`Link '${linkToken.id}' has a polymorphic target. ` + `Link projection of polymorphic links is not yet supported.`);
733
+ }
734
+ if (linkToken.targetObjectTypeId === "*") {
735
+ throw new ProjectionValidationError(`Link '${linkToken.id}' has a wildcard target. ` + `Link projection of wildcard links is not supported.`);
736
+ }
737
+ }
738
+ function validateTelemetryProjectionFieldMapping(projection, objectType, datasetColumnNames, prefix) {
739
+ const property = objectType.properties.find((candidate) => candidate.id === projection.propertyId);
740
+ if (!property) {
741
+ throw new ProjectionValidationError(`${prefix}: unknown property "${projection.propertyId}" on type "${projection.objectTypeId}"`);
742
+ }
743
+ if (property.mode !== "telemetry") {
744
+ throw new ProjectionValidationError(`${prefix}: property "${projection.propertyId}" on type "${projection.objectTypeId}" must be telemetry-enabled`);
745
+ }
746
+ const mappedFields = [
747
+ ["objectId", projection.objectIdField],
748
+ ["at", projection.atField],
749
+ ["value", projection.valueField],
750
+ ...projection.unitField !== undefined ? [["unit", projection.unitField]] : []
751
+ ];
752
+ for (const [fieldRole, columnName] of mappedFields) {
753
+ if (!datasetColumnNames.has(columnName)) {
754
+ throw new ProjectionValidationError(`${prefix}: ${fieldRole} field "${columnName}" references unknown dataset column ` + `on dataset "${projection.datasetId}"`);
755
+ }
756
+ }
757
+ return property;
758
+ }
759
+ function validateProjectionsAtStartup(projections, ontology, datasetsById) {
760
+ const { objectProjections, linkProjections, telemetryProjections } = projections;
761
+ const objectTypesById = ontology.getObjectTypesById();
762
+ const primaryByTypeId = ontology.getPrimaryByTypeId();
763
+ const validatedObjectProjections = [];
764
+ const validatedLinkProjections = [];
765
+ const validatedTelemetryProjections = [];
766
+ validateMaterializationOntologyConstraints(ontology);
767
+ for (const projection of objectProjections) {
768
+ const prefix = `Projection "${projection.id}"`;
769
+ const dataset = datasetsById.get(projection.datasetId);
770
+ if (!dataset) {
771
+ throw new ProjectionValidationError(`${prefix}: unknown dataset "${projection.datasetId}". ` + `Add it to 'datasets' in createSixb() or export it from 'datasets/'.`);
772
+ }
773
+ const objectType = objectTypesById.get(projection.objectTypeId);
774
+ if (!objectType) {
775
+ throw new ProjectionValidationError(`${prefix}: unknown object type "${projection.objectTypeId}"`);
776
+ }
777
+ const datasetColumnNames = new Set(dataset.schema.columns.map((column) => column.name));
778
+ const propertyIds = new Set(objectType.properties.map((p) => p.id));
779
+ for (const [propId, columnName] of Object.entries(projection.properties)) {
780
+ if (!propertyIds.has(propId)) {
781
+ throw new ProjectionValidationError(`${prefix}: unknown property "${propId}" on type "${projection.objectTypeId}"`);
782
+ }
783
+ if (!datasetColumnNames.has(columnName)) {
784
+ throw new ProjectionValidationError(`${prefix}: property "${propId}" references unknown dataset column "${columnName}" ` + `on dataset "${projection.datasetId}"`);
785
+ }
786
+ const property = objectType.properties.find((candidate) => candidate.id === propId);
787
+ if (property?.mode === "telemetry") {
788
+ throw new ProjectionValidationError(`[Sixb] ${prefix}: source mappings cannot own telemetry property "${projection.objectTypeId}.${propId}"`);
789
+ }
790
+ }
791
+ const primaryId = primaryByTypeId.get(projection.objectTypeId);
792
+ if (!(primaryId in projection.properties)) {
793
+ throw new ProjectionValidationError(`${prefix}: primary property "${primaryId}" must be in property mapping`);
794
+ }
795
+ const linkIds = new Set(objectType.links.map((l) => l.id));
796
+ for (const [linkId, fk] of Object.entries(projection.links)) {
797
+ if (!linkIds.has(linkId)) {
798
+ throw new ProjectionValidationError(`${prefix}: FK link "${linkId}" references unknown link on type "${projection.objectTypeId}"`);
799
+ }
800
+ if (fk.linkId !== linkId) {
801
+ throw new ProjectionValidationError(`${prefix}: FK link mapping key "${linkId}" does not match descriptor linkId "${fk.linkId}"`);
802
+ }
803
+ const sourcePropertyId = fk.sourcePropertyId;
804
+ const sourceField = fk.sourceField;
805
+ if (sourcePropertyId && sourceField) {
806
+ throw new ProjectionValidationError(`${prefix}: FK link "${linkId}" must use either sourcePropertyId or sourceField, not both`);
807
+ }
808
+ if (!sourcePropertyId && !sourceField) {
809
+ throw new ProjectionValidationError(`${prefix}: FK link "${linkId}" must declare sourcePropertyId or sourceField`);
810
+ }
811
+ if (sourcePropertyId && !propertyIds.has(sourcePropertyId)) {
812
+ throw new ProjectionValidationError(`${prefix}: FK link "${linkId}" source property "${sourcePropertyId}" does not exist on type "${projection.objectTypeId}"`);
813
+ }
814
+ if (sourcePropertyId && !(sourcePropertyId in projection.properties)) {
815
+ throw new ProjectionValidationError(`${prefix}: FK link "${linkId}" source property "${sourcePropertyId}" must be in property mapping`);
816
+ }
817
+ if (sourceField && !datasetColumnNames.has(sourceField)) {
818
+ throw new ProjectionValidationError(`${prefix}: FK link "${linkId}" source field "${sourceField}" references unknown dataset column on dataset "${projection.datasetId}"`);
819
+ }
820
+ if (!objectTypesById.has(fk.targetObjectTypeId)) {
821
+ throw new ProjectionValidationError(`${prefix}: FK link "${linkId}" target type "${fk.targetObjectTypeId}" is unknown`);
822
+ }
823
+ if (!primaryByTypeId.has(fk.targetObjectTypeId)) {
824
+ throw new ProjectionValidationError(`${prefix}: FK link "${linkId}" target type "${fk.targetObjectTypeId}" has no primary property`);
825
+ }
826
+ const link = objectType.links.find((candidate) => candidate.id === linkId);
827
+ if (!ontology.isValidLinkTarget(link.targetObjectTypeId, fk.targetObjectTypeId)) {
828
+ throw new ProjectionValidationError(`${prefix}: FK link "${linkId}" target type "${fk.targetObjectTypeId}" is not compatible with its declared target`);
829
+ }
830
+ }
831
+ validatedObjectProjections.push({
832
+ definition: projection,
833
+ dataset,
834
+ ownership: computeProjectionOwnership(projection, ontology)
835
+ });
836
+ }
837
+ for (const projection of linkProjections) {
838
+ const prefix = `Projection "${projection.id}"`;
839
+ const dataset = datasetsById.get(projection.datasetId);
840
+ if (!dataset) {
841
+ throw new ProjectionValidationError(`${prefix}: unknown dataset "${projection.datasetId}". ` + `Add it to 'datasets' in createSixb() or export it from 'datasets/'.`);
842
+ }
843
+ if (!objectTypesById.has(projection.sourceObjectTypeId)) {
844
+ throw new ProjectionValidationError(`${prefix}: unknown source type "${projection.sourceObjectTypeId}"`);
845
+ }
846
+ if (!objectTypesById.has(projection.targetObjectTypeId)) {
847
+ throw new ProjectionValidationError(`${prefix}: unknown target type "${projection.targetObjectTypeId}"`);
848
+ }
849
+ const sourceType = objectTypesById.get(projection.sourceObjectTypeId);
850
+ const link = sourceType.links.find((candidate) => candidate.id === projection.linkId);
851
+ if (!link) {
852
+ throw new ProjectionValidationError(`${prefix}: link "${projection.linkId}" does not exist on source type "${projection.sourceObjectTypeId}"`);
853
+ }
854
+ if (!ontology.isValidLinkTarget(link.targetObjectTypeId, projection.targetObjectTypeId)) {
855
+ throw new ProjectionValidationError(`${prefix}: target type "${projection.targetObjectTypeId}" is not compatible with link "${projection.linkId}"`);
856
+ }
857
+ const datasetColumnNames = new Set(dataset.schema.columns.map((column) => column.name));
858
+ if (!datasetColumnNames.has(projection.sourceField)) {
859
+ throw new ProjectionValidationError(`${prefix}: source field "${projection.sourceField}" references unknown dataset column ` + `on dataset "${projection.datasetId}"`);
860
+ }
861
+ if (!datasetColumnNames.has(projection.targetField)) {
862
+ throw new ProjectionValidationError(`${prefix}: target field "${projection.targetField}" references unknown dataset column ` + `on dataset "${projection.datasetId}"`);
863
+ }
864
+ if (!primaryByTypeId.has(projection.sourceObjectTypeId)) {
865
+ throw new ProjectionValidationError(`${prefix}: source type "${projection.sourceObjectTypeId}" has no primary property`);
866
+ }
867
+ if (!primaryByTypeId.has(projection.targetObjectTypeId)) {
868
+ throw new ProjectionValidationError(`${prefix}: target type "${projection.targetObjectTypeId}" has no primary property`);
869
+ }
870
+ validatedLinkProjections.push({
871
+ definition: projection,
872
+ dataset,
873
+ ownership: computeProjectionOwnership(projection, ontology)
874
+ });
875
+ }
876
+ for (const projection of telemetryProjections) {
877
+ const prefix = `Projection "${projection.id}"`;
878
+ const dataset = datasetsById.get(projection.datasetId);
879
+ if (!dataset) {
880
+ throw new ProjectionValidationError(`${prefix}: unknown dataset "${projection.datasetId}". ` + `Add it to 'datasets' in createSixb() or export it from 'datasets/'.`);
881
+ }
882
+ const objectType = objectTypesById.get(projection.objectTypeId);
883
+ if (!objectType) {
884
+ throw new ProjectionValidationError(`${prefix}: unknown object type "${projection.objectTypeId}"`);
885
+ }
886
+ const datasetColumnNames = new Set(dataset.schema.columns.map((column) => column.name));
887
+ validateTelemetryProjectionFieldMapping(projection, objectType, datasetColumnNames, prefix);
888
+ validatedTelemetryProjections.push({
889
+ definition: projection,
890
+ dataset,
891
+ ownership: computeProjectionOwnership(projection, ontology)
892
+ });
893
+ }
894
+ const validatedProjections = [
895
+ ...validatedObjectProjections,
896
+ ...validatedLinkProjections,
897
+ ...validatedTelemetryProjections
898
+ ];
899
+ validateProjectionOwnership(validatedProjections);
900
+ return {
901
+ objectProjections: validatedObjectProjections,
902
+ linkProjections: validatedLinkProjections,
903
+ telemetryProjections: validatedTelemetryProjections
904
+ };
905
+ }
906
+ function validateMaterializationOntologyConstraints(ontology) {
907
+ for (const objectType of ontology.getObjectTypesById().values()) {
908
+ for (const property of objectType.properties) {
909
+ if (property.mode === "telemetry" && property.required === true) {
910
+ throw new ProjectionValidationError(`[Sixb] Telemetry property '${objectType.id}.${property.id}' cannot be required.`);
911
+ }
912
+ }
913
+ for (const link of objectType.links) {
914
+ for (const property of link.properties ?? []) {
915
+ if (property.mode === "telemetry") {
916
+ throw new ProjectionValidationError(`[Sixb] Link property '${objectType.id}.${link.id}.${property.id}' cannot use telemetry mode.`);
917
+ }
918
+ }
919
+ }
920
+ }
921
+ }
922
+
923
+ // src/projections/builders.ts
924
+ function assertNonEmpty2(value, field) {
925
+ if (!value.trim()) {
926
+ throw new ProjectionValidationError(`Projection ${field} must not be empty.`);
927
+ }
928
+ }
929
+ function assertProjectionDataset(dataset) {
930
+ if (!dataset || dataset.kind !== "dataset" || typeof dataset.id !== "string") {
931
+ throw new ProjectionValidationError("Projection dataset must be a dataset definition.");
932
+ }
933
+ assertNonEmpty2(dataset.id, "dataset id");
934
+ }
935
+ function isRecord(value) {
936
+ return typeof value === "object" && value !== null && !Array.isArray(value);
937
+ }
938
+ function lowerForeignKeyMapping(mapping) {
939
+ const lowered = {};
940
+ for (const [linkId, descriptor] of Object.entries(mapping)) {
941
+ if (!descriptor)
942
+ continue;
943
+ lowered[linkId] = isForeignKeyDescriptor(descriptor) ? descriptor : fromForeignKey(descriptor);
944
+ }
945
+ return lowered;
946
+ }
947
+ function isForeignKeyDescriptor(value) {
948
+ return isRecord(value) && typeof value.linkId === "string";
949
+ }
950
+ function defineProjection(id, target) {
951
+ if ("link" in target)
952
+ return buildLinkProjection(id, target);
953
+ if ("property" in target)
954
+ return buildTelemetryProjection(id, target);
955
+ return buildObjectProjection(id, target);
956
+ }
957
+ function buildObjectProjection(id, objectType) {
958
+ assertNonEmpty2(id, "id");
959
+ return {
960
+ fromDataset(dataset) {
961
+ assertProjectionDataset(dataset);
962
+ const datasetId = dataset.id;
963
+ return {
964
+ properties(mapping) {
965
+ const propertyMapping = mapping;
966
+ validatePropertyMapping(objectType, propertyMapping);
967
+ const definition = {
968
+ _tag: "ObjectProjectionDefinition",
969
+ id,
970
+ objectTypeId: objectType.id,
971
+ datasetId,
972
+ properties: { ...propertyMapping },
973
+ links: {}
974
+ };
975
+ return Object.assign(definition, {
976
+ withLinks(linkMapping) {
977
+ const loweredLinkMapping = lowerForeignKeyMapping(linkMapping);
978
+ const validatedLinks = validateAndLowerLinkMapping(objectType, loweredLinkMapping, propertyMapping);
979
+ return {
980
+ _tag: "ObjectProjectionDefinition",
981
+ id,
982
+ objectTypeId: objectType.id,
983
+ datasetId,
984
+ properties: { ...propertyMapping },
985
+ links: validatedLinks
986
+ };
987
+ }
988
+ });
989
+ }
990
+ };
991
+ }
992
+ };
993
+ }
994
+ function buildTelemetryProjection(id, propertyToken) {
995
+ assertNonEmpty2(id, "id");
996
+ validateTelemetryProjectionProperty(propertyToken);
997
+ return {
998
+ fromDataset(dataset) {
999
+ assertProjectionDataset(dataset);
1000
+ const datasetId = dataset.id;
1001
+ return {
1002
+ points(mapping) {
1003
+ const pointMapping = lowerTelemetryPointMapping(mapping);
1004
+ return {
1005
+ _tag: "TelemetryProjectionDefinition",
1006
+ id,
1007
+ objectTypeId: propertyToken.objectTypeId,
1008
+ propertyId: propertyToken.id,
1009
+ datasetId,
1010
+ objectIdField: pointMapping.objectId,
1011
+ atField: pointMapping.at,
1012
+ valueField: pointMapping.value,
1013
+ ...pointMapping.unit !== undefined ? { unitField: pointMapping.unit } : {}
1014
+ };
1015
+ }
1016
+ };
1017
+ }
1018
+ };
1019
+ }
1020
+ function validateTelemetryProjectionProperty(propertyToken) {
1021
+ if (propertyToken.property.mode !== "telemetry") {
1022
+ throw new ProjectionValidationError(`Projection property '${propertyToken.objectTypeId}.${propertyToken.id}' must be telemetry-enabled.`);
1023
+ }
1024
+ }
1025
+ function lowerTelemetryPointMapping(mapping) {
1026
+ const allowedKeys = new Set(["objectId", "at", "value", "unit"]);
1027
+ for (const key of Object.keys(mapping)) {
1028
+ if (!allowedKeys.has(key)) {
1029
+ throw new ProjectionValidationError(`Telemetry projection point mapping contains unknown key '${key}'.`);
1030
+ }
1031
+ }
1032
+ if (mapping.objectId === undefined) {
1033
+ throw new ProjectionValidationError("Telemetry projection point mapping requires objectId.");
1034
+ }
1035
+ if (mapping.at === undefined) {
1036
+ throw new ProjectionValidationError("Telemetry projection point mapping requires at.");
1037
+ }
1038
+ if (mapping.value === undefined) {
1039
+ throw new ProjectionValidationError("Telemetry projection point mapping requires value.");
1040
+ }
1041
+ assertNonEmpty2(mapping.objectId, "objectId field");
1042
+ assertNonEmpty2(mapping.at, "at field");
1043
+ assertNonEmpty2(mapping.value, "value field");
1044
+ if (mapping.unit !== undefined) {
1045
+ assertNonEmpty2(mapping.unit, "unit field");
1046
+ }
1047
+ return {
1048
+ objectId: mapping.objectId,
1049
+ at: mapping.at,
1050
+ value: mapping.value,
1051
+ ...mapping.unit !== undefined ? { unit: mapping.unit } : {}
1052
+ };
1053
+ }
1054
+ function fromForeignKey(input) {
1055
+ validateLinkProjectionTarget(input.link);
1056
+ if (input.sourceProperty) {
1057
+ return {
1058
+ linkId: input.link.id,
1059
+ sourcePropertyId: input.sourceProperty.id,
1060
+ targetObjectTypeId: input.target.id
1061
+ };
1062
+ }
1063
+ if (input.sourceField === undefined) {
1064
+ throw new ProjectionValidationError("Foreign key sourceField is required.");
1065
+ }
1066
+ assertNonEmpty2(input.sourceField, "source field");
1067
+ return {
1068
+ linkId: input.link.id,
1069
+ sourceField: input.sourceField,
1070
+ targetObjectTypeId: input.target.id
1071
+ };
1072
+ }
1073
+ function buildLinkProjection(id, linkToken) {
1074
+ assertNonEmpty2(id, "id");
1075
+ validateLinkProjectionTarget(linkToken);
1076
+ return {
1077
+ fromDataset(dataset) {
1078
+ assertProjectionDataset(dataset);
1079
+ const datasetId = dataset.id;
1080
+ return {
1081
+ sourceField(columnName) {
1082
+ assertNonEmpty2(columnName, "source field");
1083
+ return {
1084
+ targetField(targetColumnName) {
1085
+ assertNonEmpty2(targetColumnName, "target field");
1086
+ return {
1087
+ _tag: "LinkProjectionDefinition",
1088
+ id,
1089
+ linkId: linkToken.id,
1090
+ sourceObjectTypeId: linkToken.objectTypeId,
1091
+ targetObjectTypeId: linkToken.targetObjectTypeId,
1092
+ datasetId,
1093
+ sourceField: columnName,
1094
+ targetField: targetColumnName
1095
+ };
1096
+ }
1097
+ };
1098
+ }
1099
+ };
1100
+ }
1101
+ };
1102
+ }
1103
+ function isObjectProjectionDefinition(value) {
1104
+ if (!isRecord(value))
1105
+ return false;
1106
+ return value._tag === "ObjectProjectionDefinition" && typeof value.id === "string" && typeof value.objectTypeId === "string" && typeof value.datasetId === "string" && isRecord(value.properties) && isRecord(value.links);
1107
+ }
1108
+ function isLinkProjectionDefinition(value) {
1109
+ if (!isRecord(value))
1110
+ return false;
1111
+ return value._tag === "LinkProjectionDefinition" && typeof value.id === "string" && typeof value.linkId === "string" && typeof value.sourceObjectTypeId === "string" && typeof value.targetObjectTypeId === "string" && typeof value.datasetId === "string" && typeof value.sourceField === "string" && typeof value.targetField === "string";
1112
+ }
1113
+ function isTelemetryProjectionDefinition(value) {
1114
+ if (!isRecord(value))
1115
+ return false;
1116
+ return value._tag === "TelemetryProjectionDefinition" && typeof value.id === "string" && typeof value.objectTypeId === "string" && typeof value.propertyId === "string" && typeof value.datasetId === "string" && typeof value.objectIdField === "string" && typeof value.atField === "string" && typeof value.valueField === "string" && (value.unitField === undefined || typeof value.unitField === "string");
1117
+ }
1118
+ function isProjectionDefinition(value) {
1119
+ return isObjectProjectionDefinition(value) || isLinkProjectionDefinition(value) || isTelemetryProjectionDefinition(value);
1120
+ }
1121
+ function projectionTargetOf(projection) {
1122
+ return projection._tag === "LinkProjectionDefinition" ? {
1123
+ sourceObjectTypeId: projection.sourceObjectTypeId,
1124
+ targetObjectTypeId: projection.targetObjectTypeId
1125
+ } : { objectTypeId: projection.objectTypeId };
1126
+ }
1127
+
1128
+ // src/authorization/run-visibility.ts
1129
+ function canViewActionRun(authorization, run) {
1130
+ if (!authorization) {
1131
+ return true;
1132
+ }
1133
+ if (!isAllowed(authorization, { kind: "action.apply", actionId: run.actionId })) {
1134
+ return false;
1135
+ }
1136
+ return run.subject.kind !== "object" ? true : isAllowed(authorization, {
1137
+ kind: "object.view",
1138
+ objectTypeId: run.subject.objectTypeId
1139
+ });
1140
+ }
1141
+ function canViewWorkflowRun(authorization, run) {
1142
+ return !authorization || isAllowed(authorization, { kind: "workflow.run", workflowId: run.workflowId });
1143
+ }
1144
+ function canViewWorkflowIntervention(authorization, intervention) {
1145
+ return !authorization || isAllowed(authorization, { kind: "workflow.run", workflowId: intervention.workflowId });
1146
+ }
1147
+ function canViewPipelineRun(authorization, run) {
1148
+ return !authorization || isAllowed(authorization, { kind: "pipeline.run", pipelineId: run.pipelineId });
1149
+ }
1150
+ function canViewProjectionRun(authorization, target) {
1151
+ if (!authorization)
1152
+ return true;
1153
+ const canView = (objectTypeId) => isAllowed(authorization, { kind: "object.view", objectTypeId });
1154
+ if ("sourceObjectTypeId" in target) {
1155
+ return canView(target.sourceObjectTypeId) && canView(target.targetObjectTypeId);
1156
+ }
1157
+ return canView(target.objectTypeId);
1158
+ }
1159
+ function canViewProjection(authorization, projection) {
1160
+ return canViewProjectionRun(authorization, projectionTargetOf(projection));
1161
+ }
1162
+ // src/authorization/types.ts
1163
+ function emptyGrantIndex() {
1164
+ return emptyGrantSets();
1165
+ }
1166
+ export { ProjectionValidationError, computeProjectionOwnership, validateProjectionOwnership, validateTelemetryProjectionFieldMapping, validateProjectionsAtStartup, defineProjection, fromForeignKey, isObjectProjectionDefinition, isLinkProjectionDefinition, isTelemetryProjectionDefinition, isProjectionDefinition, projectionTargetOf, GRANT_KINDS, grantKindOf, createPrincipalRuntimeAuthorization, createAgentRuntimeAuthorization, createDisabledRuntimeAuthorization, createTrustedPrimitiveRuntimeAuthorization, getAuthorizationRef, resolveExecutionScopeAuthorization, AuthorizationError, evaluate, isAllowed, assertAuthorized, assertCanEdit, assertCanAppendTelemetry, assertCanManageConnector, assertPrivileged, assertProviderAccess, isApplicationAccessControlled, canAccessApplication, canViewEvent, resolveRoleGrants, resolveAuthorizationContext, canViewActionRun, canViewWorkflowRun, canViewWorkflowIntervention, canViewPipelineRun, canViewProjectionRun, canViewProjection, emptyGrantIndex };
1167
+
1168
+ //# debugId=EA88C5F91530A04564756E2164756E21