@sixb/core 0.1.1 → 0.1.3

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 (1187) 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 +38 -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 +21 -1
  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 +2 -2
  29. package/dist/agents/errors.d.ts.map +1 -1
  30. package/dist/agents/execution.d.ts +48 -0
  31. package/dist/agents/execution.d.ts.map +1 -0
  32. package/dist/agents/index.d.ts +12 -9
  33. package/dist/agents/index.d.ts.map +1 -1
  34. package/dist/agents/index.js +77 -18
  35. package/dist/agents/index.js.map +1 -1
  36. package/dist/agents/prompt.d.ts +8 -2
  37. package/dist/agents/prompt.d.ts.map +1 -1
  38. package/dist/agents/request.d.ts +6 -2
  39. package/dist/agents/request.d.ts.map +1 -1
  40. package/dist/agents/streams.d.ts +29 -3
  41. package/dist/agents/streams.d.ts.map +1 -1
  42. package/dist/agents/streams.js +22 -3
  43. package/dist/agents/streams.js.map +1 -1
  44. package/dist/agents/thread-context-projection.d.ts +19 -0
  45. package/dist/agents/thread-context-projection.d.ts.map +1 -0
  46. package/dist/agents/tool-definition.d.ts.map +1 -1
  47. package/dist/agents/tool-result.d.ts +6 -0
  48. package/dist/agents/tool-result.d.ts.map +1 -0
  49. package/dist/agents/types.d.ts +39 -3
  50. package/dist/agents/types.d.ts.map +1 -1
  51. package/dist/agents/validation.d.ts +3 -3
  52. package/dist/agents/validation.d.ts.map +1 -1
  53. package/dist/auth/attribution.d.ts +17 -0
  54. package/dist/auth/attribution.d.ts.map +1 -0
  55. package/dist/auth/index.d.ts +1 -0
  56. package/dist/auth/index.d.ts.map +1 -1
  57. package/dist/auth/index.js +11 -5
  58. package/dist/auth/index.js.map +1 -1
  59. package/dist/auth/runtime.d.ts +4 -4
  60. package/dist/auth/runtime.d.ts.map +1 -1
  61. package/dist/authorization/decision.d.ts +24 -11
  62. package/dist/authorization/decision.d.ts.map +1 -1
  63. package/dist/authorization/grant-kinds.d.ts +2 -1
  64. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  65. package/dist/authorization/index.d.ts +1 -1
  66. package/dist/authorization/index.d.ts.map +1 -1
  67. package/dist/authorization/index.js +8 -4
  68. package/dist/authorization/index.js.map +1 -1
  69. package/dist/blob-storage/browser.js +2 -2
  70. package/dist/blob-storage/execution.d.ts +16 -0
  71. package/dist/blob-storage/execution.d.ts.map +1 -0
  72. package/dist/blob-storage/index.js +3 -3
  73. package/dist/bootstrap/discovery.d.ts +90 -24
  74. package/dist/bootstrap/discovery.d.ts.map +1 -1
  75. package/dist/bootstrap/index.d.ts +2 -1
  76. package/dist/bootstrap/index.d.ts.map +1 -1
  77. package/dist/bootstrap/index.js +63 -60
  78. package/dist/bootstrap/index.js.map +1 -1
  79. package/dist/broker/in-memory.d.ts.map +1 -1
  80. package/dist/broker/index.js +2 -2
  81. package/dist/broker/types.d.ts +5 -0
  82. package/dist/broker/types.d.ts.map +1 -1
  83. package/dist/chunk-0172wgm9.js +333 -0
  84. package/dist/chunk-0172wgm9.js.map +11 -0
  85. package/dist/chunk-177ed2mp.js +3118 -0
  86. package/dist/chunk-177ed2mp.js.map +46 -0
  87. package/dist/chunk-1ywq4hzk.js +607 -0
  88. package/dist/chunk-1ywq4hzk.js.map +14 -0
  89. package/dist/chunk-261ag4t4.js +252 -0
  90. package/dist/chunk-261ag4t4.js.map +12 -0
  91. package/dist/{chunk-y2ygpd0m.js → chunk-3j7573mj.js} +2 -2
  92. package/dist/{chunk-y2ygpd0m.js.map → chunk-3j7573mj.js.map} +2 -2
  93. package/dist/{chunk-p7vj8xgb.js → chunk-3rsf30p4.js} +81 -58
  94. package/dist/chunk-3rsf30p4.js.map +35 -0
  95. package/dist/chunk-4aw0jwk0.js +118 -0
  96. package/dist/chunk-4aw0jwk0.js.map +10 -0
  97. package/dist/{chunk-md9jbrm9.js → chunk-4gz41why.js} +1 -1
  98. package/dist/chunk-4p9rh7jj.js +164 -0
  99. package/dist/chunk-4p9rh7jj.js.map +12 -0
  100. package/dist/chunk-4z3n1dzt.js +1206 -0
  101. package/dist/chunk-4z3n1dzt.js.map +23 -0
  102. package/dist/chunk-5gd7tpv6.js +28 -0
  103. package/dist/chunk-5gd7tpv6.js.map +11 -0
  104. package/dist/{chunk-867jxh7c.js → chunk-5sz8ta9r.js} +6 -295
  105. package/dist/chunk-5sz8ta9r.js.map +16 -0
  106. package/dist/chunk-62c7t4jc.js +27 -0
  107. package/dist/chunk-62c7t4jc.js.map +11 -0
  108. package/dist/chunk-63te770v.js.map +1 -1
  109. package/dist/{chunk-xz5g49bp.js → chunk-6gjqgd3d.js} +3 -1
  110. package/dist/chunk-6gjqgd3d.js.map +11 -0
  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-96swp2wd.js +47 -0
  115. package/dist/chunk-96swp2wd.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-t72dvahb.js → chunk-bhxaq2nn.js} +61 -44
  122. package/dist/chunk-bhxaq2nn.js.map +12 -0
  123. package/dist/chunk-bv41fmjn.js +3294 -0
  124. package/dist/chunk-bv41fmjn.js.map +35 -0
  125. package/dist/chunk-c6cfqydk.js +128 -0
  126. package/dist/chunk-c6cfqydk.js.map +13 -0
  127. package/dist/chunk-c8bw2b6c.js +317 -0
  128. package/dist/chunk-c8bw2b6c.js.map +11 -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-xt6qx9sh.js → chunk-d2adj15j.js} +91 -9
  133. package/dist/chunk-d2adj15j.js.map +37 -0
  134. package/dist/{chunk-avppcgt6.js → chunk-d6y2wsfg.js} +241 -144
  135. package/dist/chunk-d6y2wsfg.js.map +15 -0
  136. package/dist/chunk-dsrkgtnh.js +50 -0
  137. package/dist/chunk-dsrkgtnh.js.map +10 -0
  138. package/dist/{chunk-50kv63vj.js → chunk-dysw7nsm.js} +118 -26
  139. package/dist/chunk-dysw7nsm.js.map +14 -0
  140. package/dist/{chunk-rjqm6ksg.js → chunk-ettb0cy4.js} +725 -266
  141. package/dist/chunk-ettb0cy4.js.map +45 -0
  142. package/dist/chunk-ezake7g1.js +32 -0
  143. package/dist/chunk-ezake7g1.js.map +11 -0
  144. package/dist/{chunk-b1bqvhpe.js → chunk-f1cyvnrk.js} +14 -34
  145. package/dist/chunk-f1cyvnrk.js.map +13 -0
  146. package/dist/{chunk-yn947ck3.js → chunk-f2rt4vkh.js} +48 -29
  147. package/dist/chunk-f2rt4vkh.js.map +14 -0
  148. package/dist/{chunk-hb9xcx9c.js → chunk-fmx1sz2h.js} +117 -56
  149. package/dist/chunk-fmx1sz2h.js.map +15 -0
  150. package/dist/{chunk-f6kyyeef.js → chunk-ghteq96b.js} +8 -8
  151. package/dist/{chunk-f6kyyeef.js.map → chunk-ghteq96b.js.map} +4 -4
  152. package/dist/chunk-h9kxd41f.js +271 -0
  153. package/dist/chunk-h9kxd41f.js.map +11 -0
  154. package/dist/chunk-htq0qh7z.js +59 -0
  155. package/dist/chunk-htq0qh7z.js.map +11 -0
  156. package/dist/chunk-km4rkj4t.js +402 -0
  157. package/dist/chunk-km4rkj4t.js.map +14 -0
  158. package/dist/chunk-kqxgf6kv.js +898 -0
  159. package/dist/chunk-kqxgf6kv.js.map +15 -0
  160. package/dist/chunk-n5x5y80a.js +137 -0
  161. package/dist/chunk-n5x5y80a.js.map +10 -0
  162. package/dist/chunk-nf4r78r4.js +44 -0
  163. package/dist/chunk-nf4r78r4.js.map +10 -0
  164. package/dist/chunk-pxtrxm3p.js +55 -0
  165. package/dist/chunk-pxtrxm3p.js.map +11 -0
  166. package/dist/chunk-qer6am8w.js +133 -0
  167. package/dist/chunk-qer6am8w.js.map +11 -0
  168. package/dist/{chunk-sb0shdvv.js → chunk-rdeagz6b.js} +3 -3
  169. package/dist/{chunk-sb0shdvv.js.map → chunk-rdeagz6b.js.map} +3 -3
  170. package/dist/chunk-rhrbz7d4.js +36 -0
  171. package/dist/chunk-rhrbz7d4.js.map +10 -0
  172. package/dist/{chunk-53s4asfm.js → chunk-rnshztfq.js} +2 -2
  173. package/dist/chunk-t0jjkep3.js +35 -0
  174. package/dist/chunk-t0jjkep3.js.map +10 -0
  175. package/dist/{chunk-be9vm29v.js → chunk-t8t39h7v.js} +1 -1
  176. package/dist/{chunk-be9vm29v.js.map → chunk-t8t39h7v.js.map} +3 -3
  177. package/dist/chunk-t9xghkva.js +28 -0
  178. package/dist/chunk-t9xghkva.js.map +10 -0
  179. package/dist/{chunk-nbywkytr.js → chunk-ttba8x6z.js} +13 -33
  180. package/dist/chunk-ttba8x6z.js.map +15 -0
  181. package/dist/{chunk-8kv2sez0.js → chunk-vybf6pkp.js} +1 -1
  182. package/dist/chunk-wb4051cx.js +404 -0
  183. package/dist/chunk-wb4051cx.js.map +12 -0
  184. package/dist/{chunk-4tvj3ate.js → chunk-wtmzkcht.js} +4 -3
  185. package/dist/chunk-wtmzkcht.js.map +11 -0
  186. package/dist/{chunk-xqbtf4wn.js → chunk-xc7hq65b.js} +5 -3
  187. package/dist/{chunk-xqbtf4wn.js.map → chunk-xc7hq65b.js.map} +3 -3
  188. package/dist/{chunk-v5c085yp.js → chunk-xhy826cz.js} +3 -2
  189. package/dist/chunk-xhy826cz.js.map +10 -0
  190. package/dist/chunk-xkthy56g.js +33 -0
  191. package/dist/chunk-xkthy56g.js.map +11 -0
  192. package/dist/{chunk-raq0x6bd.js → chunk-xmggaxg4.js} +2199 -380
  193. package/dist/chunk-xmggaxg4.js.map +54 -0
  194. package/dist/{chunk-6zrpewy4.js → chunk-z3zp0bj1.js} +1 -1
  195. package/dist/chunk-z8j83gzd.js +90 -0
  196. package/dist/chunk-z8j83gzd.js.map +10 -0
  197. package/dist/chunk-zcnhxkvd.js +7 -0
  198. package/dist/chunk-zcnhxkvd.js.map +10 -0
  199. package/dist/chunk-zpw39qhj.js +194 -0
  200. package/dist/chunk-zpw39qhj.js.map +10 -0
  201. package/dist/chunk-zqqz8052.js +3 -0
  202. package/dist/{storage/projection-runs/lifecycle.js.map → chunk-zqqz8052.js.map} +1 -1
  203. package/dist/{chunk-hz8m927w.js → chunk-zqysyfjt.js} +1 -1
  204. package/dist/connectors/builders.d.ts +2 -1
  205. package/dist/connectors/builders.d.ts.map +1 -1
  206. package/dist/connectors/connections/authorizations.d.ts +64 -0
  207. package/dist/connectors/connections/authorizations.d.ts.map +1 -0
  208. package/dist/connectors/connections/capability.d.ts +7 -0
  209. package/dist/connectors/connections/capability.d.ts.map +1 -0
  210. package/dist/connectors/connections/command-context.d.ts +23 -0
  211. package/dist/connectors/connections/command-context.d.ts.map +1 -0
  212. package/dist/connectors/connections/contracts.d.ts +127 -0
  213. package/dist/connectors/connections/contracts.d.ts.map +1 -0
  214. package/dist/connectors/connections/credential-codec.d.ts +15 -0
  215. package/dist/connectors/connections/credential-codec.d.ts.map +1 -0
  216. package/dist/connectors/connections/credential-mutations.d.ts +63 -0
  217. package/dist/connectors/connections/credential-mutations.d.ts.map +1 -0
  218. package/dist/connectors/connections/execution.d.ts +20 -0
  219. package/dist/connectors/connections/execution.d.ts.map +1 -0
  220. package/dist/connectors/connections/internal.d.ts +5 -0
  221. package/dist/connectors/connections/internal.d.ts.map +1 -0
  222. package/dist/connectors/connections/internal.js +16 -0
  223. package/dist/connectors/connections/internal.js.map +9 -0
  224. package/dist/connectors/connections/provider-operation.d.ts +7 -0
  225. package/dist/connectors/connections/provider-operation.d.ts.map +1 -0
  226. package/dist/connectors/connections/request.d.ts +84 -0
  227. package/dist/connectors/connections/request.d.ts.map +1 -0
  228. package/dist/connectors/connections/runs.d.ts +51 -0
  229. package/dist/connectors/connections/runs.d.ts.map +1 -0
  230. package/dist/connectors/connections/service.d.ts +52 -0
  231. package/dist/connectors/connections/service.d.ts.map +1 -0
  232. package/dist/connectors/connections/storage-boundary.d.ts +3 -0
  233. package/dist/connectors/connections/storage-boundary.d.ts.map +1 -0
  234. package/dist/connectors/connections/tokens.d.ts +32 -0
  235. package/dist/connectors/connections/tokens.d.ts.map +1 -0
  236. package/dist/connectors/connections/validation.d.ts +27 -0
  237. package/dist/connectors/connections/validation.d.ts.map +1 -0
  238. package/dist/connectors/connections/views.d.ts +7 -0
  239. package/dist/connectors/connections/views.d.ts.map +1 -0
  240. package/dist/connectors/credentials.d.ts +25 -0
  241. package/dist/connectors/credentials.d.ts.map +1 -0
  242. package/dist/connectors/errors.d.ts +35 -3
  243. package/dist/connectors/errors.d.ts.map +1 -1
  244. package/dist/connectors/execution.d.ts +19 -0
  245. package/dist/connectors/execution.d.ts.map +1 -0
  246. package/dist/connectors/index.d.ts +5 -3
  247. package/dist/connectors/index.d.ts.map +1 -1
  248. package/dist/connectors/service.d.ts +23 -0
  249. package/dist/connectors/service.d.ts.map +1 -0
  250. package/dist/connectors/types.d.ts +94 -2
  251. package/dist/connectors/types.d.ts.map +1 -1
  252. package/dist/datasets/execution.d.ts +8 -0
  253. package/dist/datasets/execution.d.ts.map +1 -0
  254. package/dist/error-reporting/capability.d.ts +4 -49
  255. package/dist/error-reporting/capability.d.ts.map +1 -1
  256. package/dist/error-reporting/internal.d.ts +2 -2
  257. package/dist/error-reporting/internal.d.ts.map +1 -1
  258. package/dist/error-reporting/internal.js +10 -4
  259. package/dist/error-reporting/internal.js.map +1 -1
  260. package/dist/error-reporting/reporter.d.ts +4 -1
  261. package/dist/error-reporting/reporter.d.ts.map +1 -1
  262. package/dist/error-reporting/reports.d.ts +64 -0
  263. package/dist/error-reporting/reports.d.ts.map +1 -0
  264. package/dist/error-reporting/types.d.ts +88 -34
  265. package/dist/error-reporting/types.d.ts.map +1 -1
  266. package/dist/errors/catalog.d.ts +141 -0
  267. package/dist/errors/catalog.d.ts.map +1 -0
  268. package/dist/errors/internal.d.ts +68 -0
  269. package/dist/errors/internal.d.ts.map +1 -0
  270. package/dist/errors/internal.js +29 -0
  271. package/dist/errors/internal.js.map +9 -0
  272. package/dist/errors/types.d.ts +20 -0
  273. package/dist/errors/types.d.ts.map +1 -0
  274. package/dist/events/definitions.d.ts +0 -1
  275. package/dist/events/definitions.d.ts.map +1 -1
  276. package/dist/events/execution.d.ts +13 -0
  277. package/dist/events/execution.d.ts.map +1 -0
  278. package/dist/events/index.d.ts +3 -2
  279. package/dist/events/index.d.ts.map +1 -1
  280. package/dist/events/index.js +10 -8
  281. package/dist/events/index.js.map +1 -1
  282. package/dist/events/outbox-dispatcher.d.ts +4 -2
  283. package/dist/events/outbox-dispatcher.d.ts.map +1 -1
  284. package/dist/events/{runtime.d.ts → service.d.ts} +13 -14
  285. package/dist/events/service.d.ts.map +1 -0
  286. package/dist/events/types/pipelines.d.ts +4 -1
  287. package/dist/events/types/pipelines.d.ts.map +1 -1
  288. package/dist/events/types/syncs.d.ts +3 -0
  289. package/dist/events/types/syncs.d.ts.map +1 -1
  290. package/dist/events/types/workflows.d.ts +4 -2
  291. package/dist/events/types/workflows.d.ts.map +1 -1
  292. package/dist/execution/agent.d.ts +42 -0
  293. package/dist/execution/agent.d.ts.map +1 -0
  294. package/dist/execution/agent.js +73 -0
  295. package/dist/execution/agent.js.map +9 -0
  296. package/dist/execution/authorization.d.ts +60 -0
  297. package/dist/execution/authorization.d.ts.map +1 -0
  298. package/dist/execution/dispatch.d.ts +8 -0
  299. package/dist/execution/dispatch.d.ts.map +1 -0
  300. package/dist/execution/durable.d.ts +37 -0
  301. package/dist/execution/durable.d.ts.map +1 -0
  302. package/dist/execution/index.d.ts +2 -0
  303. package/dist/execution/index.d.ts.map +1 -0
  304. package/dist/execution/primitive.d.ts +21 -0
  305. package/dist/execution/primitive.d.ts.map +1 -0
  306. package/dist/execution/primitive.js +91 -0
  307. package/dist/execution/primitive.js.map +10 -0
  308. package/dist/execution/request.d.ts +38 -0
  309. package/dist/execution/request.d.ts.map +1 -0
  310. package/dist/execution/request.js +100 -0
  311. package/dist/execution/request.js.map +10 -0
  312. package/dist/execution/scopes.d.ts +30 -0
  313. package/dist/execution/scopes.d.ts.map +1 -0
  314. package/dist/execution/types.d.ts +111 -0
  315. package/dist/execution/types.d.ts.map +1 -0
  316. package/dist/index.d.ts +31 -14
  317. package/dist/index.d.ts.map +1 -1
  318. package/dist/index.js +133 -105
  319. package/dist/index.js.map +1 -1
  320. package/dist/json.d.ts +0 -1
  321. package/dist/json.d.ts.map +1 -1
  322. package/dist/lake-storage/index.js +5 -5
  323. package/dist/logging/execution.d.ts +9 -0
  324. package/dist/logging/execution.d.ts.map +1 -0
  325. package/dist/logging/index.d.ts +1 -1
  326. package/dist/logging/index.d.ts.map +1 -1
  327. package/dist/logging/index.js +8 -8
  328. package/dist/logging/index.js.map +1 -1
  329. package/dist/logging/{runtime.d.ts → service.d.ts} +7 -7
  330. package/dist/logging/{runtime.d.ts.map → service.d.ts.map} +1 -1
  331. package/dist/logging/types.js +2 -2
  332. package/dist/materialization/events.d.ts +1 -0
  333. package/dist/materialization/events.d.ts.map +1 -1
  334. package/dist/materialization/index.d.ts +1 -1
  335. package/dist/materialization/index.d.ts.map +1 -1
  336. package/dist/materialization/index.js +2 -2
  337. package/dist/materialization/model.d.ts +30 -17
  338. package/dist/materialization/model.d.ts.map +1 -1
  339. package/dist/materializer/edits/apply.d.ts +6 -1
  340. package/dist/materializer/edits/apply.d.ts.map +1 -1
  341. package/dist/materializer/edits/commit.d.ts +2 -1
  342. package/dist/materializer/edits/commit.d.ts.map +1 -1
  343. package/dist/materializer/edits/load-state.d.ts +1 -1
  344. package/dist/materializer/edits/load-state.d.ts.map +1 -1
  345. package/dist/materializer/edits/operations.d.ts +1 -13
  346. package/dist/materializer/edits/operations.d.ts.map +1 -1
  347. package/dist/materializer/edits/plan.d.ts +2 -1
  348. package/dist/materializer/edits/plan.d.ts.map +1 -1
  349. package/dist/materializer/edits/working-state.d.ts +38 -8
  350. package/dist/materializer/edits/working-state.d.ts.map +1 -1
  351. package/dist/materializer/effective/build-events.d.ts +1 -0
  352. package/dist/materializer/effective/build-events.d.ts.map +1 -1
  353. package/dist/materializer/effective/diff.d.ts +7 -0
  354. package/dist/materializer/effective/diff.d.ts.map +1 -1
  355. package/dist/materializer/effective/load-state.d.ts +0 -2
  356. package/dist/materializer/effective/load-state.d.ts.map +1 -1
  357. package/dist/materializer/effective/resolve.d.ts +19 -2
  358. package/dist/materializer/effective/resolve.d.ts.map +1 -1
  359. package/dist/materializer/execution/commit-lifecycle.d.ts +2 -2
  360. package/dist/materializer/execution/commit-lifecycle.d.ts.map +1 -1
  361. package/dist/materializer/execution/plan-stream.d.ts.map +1 -1
  362. package/dist/materializer/execution/scope.d.ts +26 -0
  363. package/dist/materializer/execution/scope.d.ts.map +1 -0
  364. package/dist/materializer/execution/work-executor.d.ts.map +1 -1
  365. package/dist/materializer/execution/work-records.d.ts +6 -5
  366. package/dist/materializer/execution/work-records.d.ts.map +1 -1
  367. package/dist/materializer/index.d.ts +2 -2
  368. package/dist/materializer/index.d.ts.map +1 -1
  369. package/dist/materializer/index.js +33 -18
  370. package/dist/materializer/index.js.map +1 -1
  371. package/dist/materializer/materializer.d.ts +37 -5
  372. package/dist/materializer/materializer.d.ts.map +1 -1
  373. package/dist/materializer/projections/finish-run.d.ts +2 -1
  374. package/dist/materializer/projections/finish-run.d.ts.map +1 -1
  375. package/dist/materializer/projections/replace.d.ts +2 -1
  376. package/dist/materializer/projections/replace.d.ts.map +1 -1
  377. package/dist/materializer/projections/replacement-plan.d.ts +1 -0
  378. package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
  379. package/dist/materializer/shared/batching.d.ts.map +1 -1
  380. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  381. package/dist/materializer/telemetry/append.d.ts +2 -1
  382. package/dist/materializer/telemetry/append.d.ts.map +1 -1
  383. package/dist/materializer/telemetry/plan.d.ts +7 -1
  384. package/dist/materializer/telemetry/plan.d.ts.map +1 -1
  385. package/dist/objects/action/request.d.ts +3 -3
  386. package/dist/objects/action/request.d.ts.map +1 -1
  387. package/dist/objects/context/index.d.ts +1 -1
  388. package/dist/objects/context/index.d.ts.map +1 -1
  389. package/dist/objects/context/types.d.ts +5 -0
  390. package/dist/objects/context/types.d.ts.map +1 -1
  391. package/dist/objects/execution.d.ts +100 -0
  392. package/dist/objects/execution.d.ts.map +1 -0
  393. package/dist/objects/index.js +40 -24
  394. package/dist/objects/index.js.map +1 -1
  395. package/dist/objects/materializer-adapter.d.ts +1 -1
  396. package/dist/objects/materializer-adapter.d.ts.map +1 -1
  397. package/dist/objects/query/executor.d.ts +3 -8
  398. package/dist/objects/query/executor.d.ts.map +1 -1
  399. package/dist/objects/query/index.d.ts +2 -2
  400. package/dist/objects/query/index.d.ts.map +1 -1
  401. package/dist/objects/query/index.js +9 -13
  402. package/dist/objects/query/index.js.map +1 -1
  403. package/dist/objects/query/planner.d.ts +0 -3
  404. package/dist/objects/query/planner.d.ts.map +1 -1
  405. package/dist/objects/sdk/object-handle.d.ts +2 -2
  406. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  407. package/dist/objects/sdk/object-set.d.ts +2 -0
  408. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  409. package/dist/objects/sdk/runtime-query-executor.d.ts +2 -0
  410. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  411. package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
  412. package/dist/objects/service/action-service.d.ts +3 -2
  413. package/dist/objects/service/action-service.d.ts.map +1 -1
  414. package/dist/objects/service/list-service.d.ts +1 -1
  415. package/dist/objects/telemetry/history.d.ts +2 -0
  416. package/dist/objects/telemetry/history.d.ts.map +1 -1
  417. package/dist/objects/telemetry/write-batch.d.ts.map +1 -1
  418. package/dist/ontology/index.d.ts +1 -1
  419. package/dist/ontology/index.d.ts.map +1 -1
  420. package/dist/ontology/index.js +5 -5
  421. package/dist/ontology/internal.js +4 -4
  422. package/dist/ontology/registry.d.ts +15 -2
  423. package/dist/ontology/registry.d.ts.map +1 -1
  424. package/dist/pipelines/execution.d.ts +19 -0
  425. package/dist/pipelines/execution.d.ts.map +1 -0
  426. package/dist/pipelines/index.d.ts +1 -0
  427. package/dist/pipelines/index.d.ts.map +1 -1
  428. package/dist/pipelines/index.js +68 -0
  429. package/dist/pipelines/index.js.map +9 -0
  430. package/dist/pipelines/request.d.ts +6 -9
  431. package/dist/pipelines/request.d.ts.map +1 -1
  432. package/dist/pipelines/run-dispatch.d.ts +47 -0
  433. package/dist/pipelines/run-dispatch.d.ts.map +1 -0
  434. package/dist/projections/builders.d.ts +19 -8
  435. package/dist/projections/builders.d.ts.map +1 -1
  436. package/dist/projections/capability.d.ts +7 -0
  437. package/dist/projections/capability.d.ts.map +1 -0
  438. package/dist/projections/execution.d.ts +19 -0
  439. package/dist/projections/execution.d.ts.map +1 -0
  440. package/dist/projections/index.d.ts +5 -2
  441. package/dist/projections/index.d.ts.map +1 -1
  442. package/dist/projections/internal.d.ts +8 -11
  443. package/dist/projections/internal.d.ts.map +1 -1
  444. package/dist/projections/internal.js +48 -6
  445. package/dist/projections/internal.js.map +1 -1
  446. package/dist/projections/ownership.d.ts +2 -2
  447. package/dist/projections/ownership.d.ts.map +1 -1
  448. package/dist/projections/registry.d.ts +21 -11
  449. package/dist/projections/registry.d.ts.map +1 -1
  450. package/dist/projections/revision.d.ts +2 -2
  451. package/dist/projections/revision.d.ts.map +1 -1
  452. package/dist/projections/run-dispatch.d.ts +37 -0
  453. package/dist/projections/run-dispatch.d.ts.map +1 -0
  454. package/dist/projections/run-id.d.ts +3 -0
  455. package/dist/projections/run-id.d.ts.map +1 -0
  456. package/dist/projections/timestamp.d.ts +3 -0
  457. package/dist/projections/timestamp.d.ts.map +1 -0
  458. package/dist/projections/types.d.ts +12 -0
  459. package/dist/projections/types.d.ts.map +1 -1
  460. package/dist/projections/validation.d.ts +2 -2
  461. package/dist/projections/validation.d.ts.map +1 -1
  462. package/dist/queues/in-memory.d.ts +11 -10
  463. package/dist/queues/in-memory.d.ts.map +1 -1
  464. package/dist/queues/index.d.ts +1 -1
  465. package/dist/queues/index.d.ts.map +1 -1
  466. package/dist/queues/index.js +1 -1
  467. package/dist/queues/types.d.ts +59 -42
  468. package/dist/queues/types.d.ts.map +1 -1
  469. package/dist/rules/execution.d.ts +14 -0
  470. package/dist/rules/execution.d.ts.map +1 -0
  471. package/dist/rules/index.d.ts +1 -1
  472. package/dist/rules/index.d.ts.map +1 -1
  473. package/dist/rules/validation.d.ts +1 -2
  474. package/dist/rules/validation.d.ts.map +1 -1
  475. package/dist/runtime/ai-cost.d.ts +8 -0
  476. package/dist/runtime/ai-cost.d.ts.map +1 -0
  477. package/dist/runtime/ai-usage.d.ts +8 -0
  478. package/dist/runtime/ai-usage.d.ts.map +1 -0
  479. package/dist/runtime/create.d.ts +7 -5
  480. package/dist/runtime/create.d.ts.map +1 -1
  481. package/dist/runtime/definitions.d.ts +35 -0
  482. package/dist/runtime/definitions.d.ts.map +1 -0
  483. package/dist/runtime/host.d.ts +123 -0
  484. package/dist/runtime/host.d.ts.map +1 -0
  485. package/dist/runtime/index.d.ts +6 -5
  486. package/dist/runtime/index.d.ts.map +1 -1
  487. package/dist/runtime/internal.d.ts +4 -0
  488. package/dist/runtime/internal.d.ts.map +1 -1
  489. package/dist/runtime/internal.js +6 -2
  490. package/dist/runtime/internal.js.map +1 -1
  491. package/dist/runtime/ontology-mutations.d.ts +4 -2
  492. package/dist/runtime/ontology-mutations.d.ts.map +1 -1
  493. package/dist/runtime/resolve-definitions.d.ts +42 -0
  494. package/dist/runtime/resolve-definitions.d.ts.map +1 -0
  495. package/dist/runtime/sixb.d.ts +43 -219
  496. package/dist/runtime/sixb.d.ts.map +1 -1
  497. package/dist/runtime/types.d.ts +16 -216
  498. package/dist/runtime/types.d.ts.map +1 -1
  499. package/dist/scheduler/index.d.ts +1 -1
  500. package/dist/scheduler/index.d.ts.map +1 -1
  501. package/dist/scheduler/index.js +3 -6
  502. package/dist/scheduler/index.js.map +1 -1
  503. package/dist/scheduler/runtime.d.ts +7 -2
  504. package/dist/scheduler/runtime.d.ts.map +1 -1
  505. package/dist/schedules/execution.d.ts +6 -0
  506. package/dist/schedules/execution.d.ts.map +1 -0
  507. package/dist/schedules/index.js +9 -7
  508. package/dist/schedules/index.js.map +1 -1
  509. package/dist/schedules/types.d.ts +1 -3
  510. package/dist/schedules/types.d.ts.map +1 -1
  511. package/dist/security/every.d.ts +4 -1
  512. package/dist/security/every.d.ts.map +1 -1
  513. package/dist/security/grants.d.ts +4 -1
  514. package/dist/security/grants.d.ts.map +1 -1
  515. package/dist/security/index.d.ts +3 -1
  516. package/dist/security/index.d.ts.map +1 -1
  517. package/dist/security/registry.d.ts +42 -0
  518. package/dist/security/registry.d.ts.map +1 -0
  519. package/dist/security/types.d.ts +7 -12
  520. package/dist/security/types.d.ts.map +1 -1
  521. package/dist/security/validation.d.ts +2 -0
  522. package/dist/security/validation.d.ts.map +1 -1
  523. package/dist/storage/action-runs/failure.d.ts +7 -0
  524. package/dist/storage/action-runs/failure.d.ts.map +1 -0
  525. package/dist/storage/action-runs/failure.js +14 -0
  526. package/dist/storage/action-runs/failure.js.map +9 -0
  527. package/dist/storage/action-runs/idempotency.d.ts.map +1 -1
  528. package/dist/storage/action-runs/in-memory.d.ts +3 -1
  529. package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
  530. package/dist/storage/action-runs/index.d.ts +2 -1
  531. package/dist/storage/action-runs/index.d.ts.map +1 -1
  532. package/dist/storage/action-runs/provider.d.ts +10 -0
  533. package/dist/storage/action-runs/provider.d.ts.map +1 -0
  534. package/dist/storage/action-runs/provider.js +13 -0
  535. package/dist/storage/action-runs/provider.js.map +9 -0
  536. package/dist/storage/action-runs/types.d.ts +37 -18
  537. package/dist/storage/action-runs/types.d.ts.map +1 -1
  538. package/dist/storage/agents/errors.d.ts +1 -1
  539. package/dist/storage/agents/errors.d.ts.map +1 -1
  540. package/dist/storage/agents/in-memory.d.ts +22 -5
  541. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  542. package/dist/storage/agents/index.d.ts +2 -2
  543. package/dist/storage/agents/index.d.ts.map +1 -1
  544. package/dist/storage/agents/provider.d.ts +41 -0
  545. package/dist/storage/agents/provider.d.ts.map +1 -0
  546. package/dist/storage/agents/provider.js +28 -0
  547. package/dist/storage/agents/provider.js.map +9 -0
  548. package/dist/storage/agents/types.d.ts +83 -26
  549. package/dist/storage/agents/types.d.ts.map +1 -1
  550. package/dist/storage/ai-cost/analytics.d.ts +61 -0
  551. package/dist/storage/ai-cost/analytics.d.ts.map +1 -0
  552. package/dist/storage/ai-cost/codec.d.ts +14 -0
  553. package/dist/storage/ai-cost/codec.d.ts.map +1 -0
  554. package/dist/storage/ai-cost/errors.d.ts +7 -0
  555. package/dist/storage/ai-cost/errors.d.ts.map +1 -0
  556. package/dist/storage/ai-cost/in-memory.d.ts +32 -0
  557. package/dist/storage/ai-cost/in-memory.d.ts.map +1 -0
  558. package/dist/storage/ai-cost/index.d.ts +6 -0
  559. package/dist/storage/ai-cost/index.d.ts.map +1 -0
  560. package/dist/storage/ai-cost/provider.d.ts +7 -0
  561. package/dist/storage/ai-cost/provider.d.ts.map +1 -0
  562. package/dist/storage/ai-cost/provider.js +132 -0
  563. package/dist/storage/ai-cost/provider.js.map +10 -0
  564. package/dist/storage/ai-cost/types.d.ts +154 -0
  565. package/dist/storage/ai-cost/types.d.ts.map +1 -0
  566. package/dist/storage/ai-cost/validation.d.ts +7 -0
  567. package/dist/storage/ai-cost/validation.d.ts.map +1 -0
  568. package/dist/storage/ai-usage/errors.d.ts +8 -0
  569. package/dist/storage/ai-usage/errors.d.ts.map +1 -0
  570. package/dist/storage/ai-usage/in-memory.d.ts +28 -0
  571. package/dist/storage/ai-usage/in-memory.d.ts.map +1 -0
  572. package/dist/storage/ai-usage/index.d.ts +8 -0
  573. package/dist/storage/ai-usage/index.d.ts.map +1 -0
  574. package/dist/storage/ai-usage/record.d.ts +6 -0
  575. package/dist/storage/ai-usage/record.d.ts.map +1 -0
  576. package/dist/storage/ai-usage/types.d.ts +89 -0
  577. package/dist/storage/ai-usage/types.d.ts.map +1 -0
  578. package/dist/storage/ai-usage/usage.d.ts +11 -0
  579. package/dist/storage/ai-usage/usage.d.ts.map +1 -0
  580. package/dist/storage/auth/types.d.ts +1 -0
  581. package/dist/storage/auth/types.d.ts.map +1 -1
  582. package/dist/storage/connector-connections/errors.d.ts +12 -0
  583. package/dist/storage/connector-connections/errors.d.ts.map +1 -0
  584. package/dist/storage/connector-connections/in-memory.d.ts +81 -0
  585. package/dist/storage/connector-connections/in-memory.d.ts.map +1 -0
  586. package/dist/storage/connector-connections/index.d.ts +7 -0
  587. package/dist/storage/connector-connections/index.d.ts.map +1 -0
  588. package/dist/storage/connector-connections/provider/authorizations.d.ts +20 -0
  589. package/dist/storage/connector-connections/provider/authorizations.d.ts.map +1 -0
  590. package/dist/storage/connector-connections/provider/connections.d.ts +17 -0
  591. package/dist/storage/connector-connections/provider/connections.d.ts.map +1 -0
  592. package/dist/storage/connector-connections/provider/runs.d.ts +14 -0
  593. package/dist/storage/connector-connections/provider/runs.d.ts.map +1 -0
  594. package/dist/storage/connector-connections/provider/shared.d.ts +74 -0
  595. package/dist/storage/connector-connections/provider/shared.d.ts.map +1 -0
  596. package/dist/storage/connector-connections/provider.d.ts +49 -0
  597. package/dist/storage/connector-connections/provider.d.ts.map +1 -0
  598. package/dist/storage/connector-connections/provider.js +1025 -0
  599. package/dist/storage/connector-connections/provider.js.map +14 -0
  600. package/dist/storage/connector-connections/types.d.ts +402 -0
  601. package/dist/storage/connector-connections/types.d.ts.map +1 -0
  602. package/dist/storage/executions/errors.d.ts +8 -0
  603. package/dist/storage/executions/errors.d.ts.map +1 -0
  604. package/dist/storage/executions/in-memory.d.ts +21 -0
  605. package/dist/storage/executions/in-memory.d.ts.map +1 -0
  606. package/dist/storage/executions/index.d.ts +5 -0
  607. package/dist/storage/executions/index.d.ts.map +1 -0
  608. package/dist/storage/executions/provider.d.ts +29 -0
  609. package/dist/storage/executions/provider.d.ts.map +1 -0
  610. package/dist/storage/executions/provider.js +208 -0
  611. package/dist/storage/executions/provider.js.map +10 -0
  612. package/dist/storage/executions/run-link.d.ts +24 -0
  613. package/dist/storage/executions/run-link.d.ts.map +1 -0
  614. package/dist/storage/executions/types.d.ts +62 -0
  615. package/dist/storage/executions/types.d.ts.map +1 -0
  616. package/dist/storage/executions/validation.d.ts +13 -0
  617. package/dist/storage/executions/validation.d.ts.map +1 -0
  618. package/dist/storage/in-memory/index.d.ts +25 -5
  619. package/dist/storage/in-memory/index.d.ts.map +1 -1
  620. package/dist/storage/index.d.ts +30 -17
  621. package/dist/storage/index.d.ts.map +1 -1
  622. package/dist/storage/index.js +99 -29
  623. package/dist/storage/index.js.map +1 -1
  624. package/dist/storage/ontology/commits.d.ts +1 -0
  625. package/dist/storage/ontology/commits.d.ts.map +1 -1
  626. package/dist/storage/ontology/in-memory/index.d.ts +1 -0
  627. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  628. package/dist/storage/ontology/in-memory/materializations-state.d.ts +3 -2
  629. package/dist/storage/ontology/in-memory/materializations-state.d.ts.map +1 -1
  630. package/dist/storage/ontology/in-memory/materializations-work.d.ts +2 -2
  631. package/dist/storage/ontology/in-memory/materializations-work.d.ts.map +1 -1
  632. package/dist/storage/ontology/in-memory/materializations.d.ts +3 -1
  633. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  634. package/dist/storage/ontology/in-memory/shared-state.d.ts +7 -2
  635. package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
  636. package/dist/storage/ontology/index.d.ts +3 -2
  637. package/dist/storage/ontology/index.d.ts.map +1 -1
  638. package/dist/storage/ontology/materializations.d.ts +53 -5
  639. package/dist/storage/ontology/materializations.d.ts.map +1 -1
  640. package/dist/storage/ontology/outbox.d.ts +8 -2
  641. package/dist/storage/ontology/outbox.d.ts.map +1 -1
  642. package/dist/storage/ontology/provider-work.d.ts.map +1 -1
  643. package/dist/storage/ontology/provider.d.ts +5 -22
  644. package/dist/storage/ontology/provider.d.ts.map +1 -1
  645. package/dist/storage/ontology/provider.js +6 -7
  646. package/dist/storage/ontology/provider.js.map +1 -1
  647. package/dist/storage/operation-scope.d.ts.map +1 -1
  648. package/dist/storage/operation-scope.js +1 -1
  649. package/dist/storage/pipeline-runs/idempotency.d.ts +3 -0
  650. package/dist/storage/pipeline-runs/idempotency.d.ts.map +1 -0
  651. package/dist/storage/pipeline-runs/in-memory.d.ts +5 -1
  652. package/dist/storage/pipeline-runs/in-memory.d.ts.map +1 -1
  653. package/dist/storage/pipeline-runs/index.d.ts +3 -1
  654. package/dist/storage/pipeline-runs/index.d.ts.map +1 -1
  655. package/dist/storage/pipeline-runs/provider.d.ts +10 -0
  656. package/dist/storage/pipeline-runs/provider.d.ts.map +1 -0
  657. package/dist/storage/pipeline-runs/provider.js +11 -0
  658. package/dist/storage/pipeline-runs/provider.js.map +9 -0
  659. package/dist/storage/pipeline-runs/types.d.ts +30 -14
  660. package/dist/storage/pipeline-runs/types.d.ts.map +1 -1
  661. package/dist/storage/projection-runs/in-memory.d.ts +8 -3
  662. package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
  663. package/dist/storage/projection-runs/index.d.ts +2 -2
  664. package/dist/storage/projection-runs/index.d.ts.map +1 -1
  665. package/dist/storage/projection-runs/lifecycle.d.ts +14 -8
  666. package/dist/storage/projection-runs/lifecycle.d.ts.map +1 -1
  667. package/dist/storage/projection-runs/provider.d.ts +13 -0
  668. package/dist/storage/projection-runs/provider.d.ts.map +1 -0
  669. package/dist/storage/projection-runs/{lifecycle.js → provider.js} +15 -4
  670. package/dist/storage/projection-runs/provider.js.map +9 -0
  671. package/dist/storage/projection-runs/types.d.ts +28 -11
  672. package/dist/storage/projection-runs/types.d.ts.map +1 -1
  673. package/dist/storage/run-listing.d.ts +8 -9
  674. package/dist/storage/run-listing.d.ts.map +1 -1
  675. package/dist/storage/sync-runs/idempotency.d.ts +3 -0
  676. package/dist/storage/sync-runs/idempotency.d.ts.map +1 -0
  677. package/dist/storage/sync-runs/in-memory.d.ts +5 -1
  678. package/dist/storage/sync-runs/in-memory.d.ts.map +1 -1
  679. package/dist/storage/sync-runs/index.d.ts +3 -1
  680. package/dist/storage/sync-runs/index.d.ts.map +1 -1
  681. package/dist/storage/sync-runs/provider.d.ts +10 -0
  682. package/dist/storage/sync-runs/provider.d.ts.map +1 -0
  683. package/dist/storage/sync-runs/provider.js +11 -0
  684. package/dist/storage/sync-runs/provider.js.map +9 -0
  685. package/dist/storage/sync-runs/types.d.ts +28 -11
  686. package/dist/storage/sync-runs/types.d.ts.map +1 -1
  687. package/dist/storage/types.d.ts +22 -15
  688. package/dist/storage/types.d.ts.map +1 -1
  689. package/dist/storage/webhook-runs/errors.d.ts +3 -0
  690. package/dist/storage/webhook-runs/errors.d.ts.map +1 -1
  691. package/dist/storage/webhook-runs/in-memory.d.ts +13 -1
  692. package/dist/storage/webhook-runs/in-memory.d.ts.map +1 -1
  693. package/dist/storage/webhook-runs/index.d.ts +3 -2
  694. package/dist/storage/webhook-runs/index.d.ts.map +1 -1
  695. package/dist/storage/webhook-runs/provider.d.ts +10 -0
  696. package/dist/storage/webhook-runs/provider.d.ts.map +1 -0
  697. package/dist/storage/webhook-runs/provider.js +11 -0
  698. package/dist/storage/webhook-runs/provider.js.map +9 -0
  699. package/dist/storage/webhook-runs/types.d.ts +37 -11
  700. package/dist/storage/webhook-runs/types.d.ts.map +1 -1
  701. package/dist/storage/workflow-runs/in-memory.d.ts +6 -2
  702. package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
  703. package/dist/storage/workflow-runs/index.d.ts +2 -1
  704. package/dist/storage/workflow-runs/index.d.ts.map +1 -1
  705. package/dist/storage/workflow-runs/provider.d.ts +19 -0
  706. package/dist/storage/workflow-runs/provider.d.ts.map +1 -0
  707. package/dist/storage/workflow-runs/provider.js +20 -0
  708. package/dist/storage/workflow-runs/provider.js.map +9 -0
  709. package/dist/storage/workflow-runs/types.d.ts +28 -30
  710. package/dist/storage/workflow-runs/types.d.ts.map +1 -1
  711. package/dist/syncs/execution.d.ts +18 -0
  712. package/dist/syncs/execution.d.ts.map +1 -0
  713. package/dist/syncs/index.d.ts +3 -1
  714. package/dist/syncs/index.d.ts.map +1 -1
  715. package/dist/syncs/index.js +67 -0
  716. package/dist/syncs/index.js.map +9 -0
  717. package/dist/syncs/request.d.ts +6 -16
  718. package/dist/syncs/request.d.ts.map +1 -1
  719. package/dist/syncs/run-dispatch.d.ts +47 -0
  720. package/dist/syncs/run-dispatch.d.ts.map +1 -0
  721. package/dist/syncs/sources.d.ts +8 -0
  722. package/dist/syncs/sources.d.ts.map +1 -0
  723. package/dist/syncs/types.d.ts +16 -9
  724. package/dist/syncs/types.d.ts.map +1 -1
  725. package/dist/testing/action-execution.d.ts +12 -0
  726. package/dist/testing/action-execution.d.ts.map +1 -0
  727. package/dist/testing/agent-execution.d.ts +14 -0
  728. package/dist/testing/agent-execution.d.ts.map +1 -0
  729. package/dist/testing/agent-storage-contract.d.ts +12 -4
  730. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  731. package/dist/testing/ai-cost-storage-contract.d.ts +12 -0
  732. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -0
  733. package/dist/testing/ai-usage-storage-contract.d.ts +13 -0
  734. package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -0
  735. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  736. package/dist/testing/broker-contract.d.ts.map +1 -1
  737. package/dist/testing/connector-connection-storage-contract.d.ts +16 -0
  738. package/dist/testing/connector-connection-storage-contract.d.ts.map +1 -0
  739. package/dist/testing/execution-storage-contract.d.ts +15 -0
  740. package/dist/testing/execution-storage-contract.d.ts.map +1 -0
  741. package/dist/testing/execution.d.ts +23 -0
  742. package/dist/testing/execution.d.ts.map +1 -0
  743. package/dist/testing/index.d.ts +13 -0
  744. package/dist/testing/index.d.ts.map +1 -1
  745. package/dist/testing/index.js +4754 -1592
  746. package/dist/testing/index.js.map +26 -13
  747. package/dist/testing/materializer-fixture.d.ts +2 -2
  748. package/dist/testing/materializer-fixture.d.ts.map +1 -1
  749. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  750. package/dist/testing/ontology-contract-fixture.d.ts +1 -0
  751. package/dist/testing/ontology-contract-fixture.d.ts.map +1 -1
  752. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  753. package/dist/testing/pipeline-execution.d.ts +16 -0
  754. package/dist/testing/pipeline-execution.d.ts.map +1 -0
  755. package/dist/testing/projection-execution.d.ts +20 -0
  756. package/dist/testing/projection-execution.d.ts.map +1 -0
  757. package/dist/testing/projection-run-storage-contract.d.ts +9 -4
  758. package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
  759. package/dist/testing/queues-contract.d.ts.map +1 -1
  760. package/dist/testing/sync-execution.d.ts +16 -0
  761. package/dist/testing/sync-execution.d.ts.map +1 -0
  762. package/dist/testing/webhook-execution.d.ts +12 -0
  763. package/dist/testing/webhook-execution.d.ts.map +1 -0
  764. package/dist/testing/webhook-run-storage-contract.d.ts +11 -0
  765. package/dist/testing/webhook-run-storage-contract.d.ts.map +1 -0
  766. package/dist/testing/workflow-execution.d.ts +23 -0
  767. package/dist/testing/workflow-execution.d.ts.map +1 -0
  768. package/dist/webhooks/index.d.ts +2 -1
  769. package/dist/webhooks/index.d.ts.map +1 -1
  770. package/dist/webhooks/internal.d.ts +2 -0
  771. package/dist/webhooks/internal.d.ts.map +1 -0
  772. package/dist/webhooks/internal.js +152 -0
  773. package/dist/webhooks/internal.js.map +10 -0
  774. package/dist/webhooks/registry.d.ts +18 -4
  775. package/dist/webhooks/registry.d.ts.map +1 -1
  776. package/dist/webhooks/run-admission.d.ts +25 -0
  777. package/dist/webhooks/run-admission.d.ts.map +1 -0
  778. package/dist/webhooks/types.d.ts +8 -5
  779. package/dist/webhooks/types.d.ts.map +1 -1
  780. package/dist/workers/index.js +29 -20
  781. package/dist/workers/index.js.map +4 -4
  782. package/dist/workers/queue-delivery.d.ts +7 -7
  783. package/dist/workers/queue-delivery.d.ts.map +1 -1
  784. package/dist/workers/queue-worker.d.ts +32 -11
  785. package/dist/workers/queue-worker.d.ts.map +1 -1
  786. package/dist/workflows/execution.d.ts +52 -0
  787. package/dist/workflows/execution.d.ts.map +1 -0
  788. package/dist/workflows/failure.d.ts +28 -0
  789. package/dist/workflows/failure.d.ts.map +1 -0
  790. package/dist/workflows/index.d.ts +4 -2
  791. package/dist/workflows/index.d.ts.map +1 -1
  792. package/dist/workflows/index.js +67 -36
  793. package/dist/workflows/index.js.map +1 -1
  794. package/dist/workflows/request.d.ts +2 -1
  795. package/dist/workflows/request.d.ts.map +1 -1
  796. package/dist/workflows/run-dispatch.d.ts +59 -0
  797. package/dist/workflows/run-dispatch.d.ts.map +1 -0
  798. package/dist/workflows/types.d.ts +38 -8
  799. package/dist/workflows/types.d.ts.map +1 -1
  800. package/package.json +113 -5
  801. package/src/actions/commit-edits.ts +0 -3
  802. package/src/actions/execution.ts +83 -0
  803. package/src/actions/index.ts +1 -1
  804. package/src/actions/registry.ts +22 -10
  805. package/src/actions/request.ts +55 -177
  806. package/src/actions/run-dispatch.ts +276 -0
  807. package/src/actions/types/context.ts +2 -4
  808. package/src/actions/validation.ts +2 -2
  809. package/src/agents/adapters.ts +71 -26
  810. package/src/agents/authority.ts +189 -0
  811. package/src/agents/dispatch.ts +1 -6
  812. package/src/agents/errors.ts +4 -2
  813. package/src/agents/execution.ts +266 -0
  814. package/src/agents/index.ts +33 -4
  815. package/src/agents/prompt.ts +47 -7
  816. package/src/agents/request.ts +158 -13
  817. package/src/agents/streams.ts +150 -3
  818. package/src/agents/thread-context-projection.ts +93 -0
  819. package/src/agents/tool-definition.ts +17 -2
  820. package/src/agents/tool-result.ts +61 -0
  821. package/src/agents/types.ts +49 -5
  822. package/src/agents/validation.ts +3 -3
  823. package/src/auth/attribution.ts +48 -0
  824. package/src/auth/index.ts +1 -0
  825. package/src/auth/runtime.ts +5 -5
  826. package/src/authorization/decision.ts +75 -14
  827. package/src/authorization/grant-kinds.ts +9 -0
  828. package/src/authorization/index.ts +2 -0
  829. package/src/blob-storage/execution.ts +78 -0
  830. package/src/bootstrap/discovery.ts +88 -268
  831. package/src/bootstrap/index.ts +2 -13
  832. package/src/broker/in-memory.ts +8 -1
  833. package/src/broker/types.ts +5 -0
  834. package/src/connectors/builders.ts +37 -2
  835. package/src/connectors/connections/authorizations.ts +646 -0
  836. package/src/connectors/connections/capability.ts +59 -0
  837. package/src/connectors/connections/command-context.ts +98 -0
  838. package/src/connectors/connections/contracts.ts +208 -0
  839. package/src/connectors/connections/credential-codec.ts +48 -0
  840. package/src/connectors/connections/credential-mutations.ts +574 -0
  841. package/src/connectors/connections/execution.ts +138 -0
  842. package/src/connectors/connections/internal.ts +17 -0
  843. package/src/connectors/connections/provider-operation.ts +41 -0
  844. package/src/connectors/connections/request.ts +447 -0
  845. package/src/connectors/connections/runs.ts +702 -0
  846. package/src/connectors/connections/service.ts +644 -0
  847. package/src/connectors/connections/storage-boundary.ts +13 -0
  848. package/src/connectors/connections/tokens.ts +292 -0
  849. package/src/connectors/connections/validation.ts +316 -0
  850. package/src/connectors/connections/views.ts +37 -0
  851. package/src/connectors/credentials.ts +149 -0
  852. package/src/connectors/errors.ts +111 -3
  853. package/src/connectors/execution.ts +157 -0
  854. package/src/connectors/index.ts +26 -2
  855. package/src/connectors/service.ts +142 -0
  856. package/src/connectors/types.ts +156 -7
  857. package/src/datasets/execution.ts +24 -0
  858. package/src/error-reporting/capability.ts +33 -106
  859. package/src/error-reporting/internal.ts +3 -1
  860. package/src/error-reporting/reporter.ts +19 -3
  861. package/src/error-reporting/reports.ts +172 -0
  862. package/src/error-reporting/types.ts +97 -43
  863. package/src/errors/catalog.ts +149 -0
  864. package/src/errors/internal.ts +322 -0
  865. package/src/errors/types.ts +21 -0
  866. package/src/events/definitions.ts +0 -4
  867. package/src/events/execution.ts +45 -0
  868. package/src/events/index.ts +15 -14
  869. package/src/events/outbox-dispatcher.ts +53 -18
  870. package/src/events/{runtime.ts → service.ts} +19 -23
  871. package/src/events/types/pipelines.ts +4 -1
  872. package/src/events/types/syncs.ts +3 -0
  873. package/src/events/types/workflows.ts +4 -2
  874. package/src/execution/agent.ts +130 -0
  875. package/src/execution/authorization.ts +409 -0
  876. package/src/execution/dispatch.ts +7 -0
  877. package/src/execution/durable.ts +193 -0
  878. package/src/execution/index.ts +12 -0
  879. package/src/execution/primitive.ts +50 -0
  880. package/src/execution/request.ts +109 -0
  881. package/src/execution/scopes.ts +198 -0
  882. package/src/execution/types.ts +113 -0
  883. package/src/http/api-routes.ts +3 -3
  884. package/src/index.ts +122 -9
  885. package/src/json.ts +0 -4
  886. package/src/logging/execution.ts +28 -0
  887. package/src/logging/index.ts +4 -4
  888. package/src/logging/{runtime.ts → service.ts} +7 -7
  889. package/src/materialization/events.ts +1 -0
  890. package/src/materialization/index.ts +2 -0
  891. package/src/materialization/model.ts +34 -18
  892. package/src/materializer/README.md +9 -13
  893. package/src/materializer/edits/apply.ts +55 -2
  894. package/src/materializer/edits/commit.ts +85 -28
  895. package/src/materializer/edits/load-state.ts +79 -16
  896. package/src/materializer/edits/operations.ts +80 -37
  897. package/src/materializer/edits/plan.ts +95 -22
  898. package/src/materializer/edits/working-state.ts +93 -55
  899. package/src/materializer/effective/build-events.ts +2 -0
  900. package/src/materializer/effective/diff.ts +22 -0
  901. package/src/materializer/effective/load-state.ts +0 -31
  902. package/src/materializer/effective/resolve.ts +140 -9
  903. package/src/materializer/execution/commit-lifecycle.ts +9 -1
  904. package/src/materializer/execution/plan-stream.ts +33 -9
  905. package/src/materializer/execution/scope.ts +95 -0
  906. package/src/materializer/execution/work-executor.ts +6 -2
  907. package/src/materializer/execution/work-records.ts +42 -7
  908. package/src/materializer/index.ts +9 -1
  909. package/src/materializer/materializer.ts +67 -5
  910. package/src/materializer/projections/entry-validator.ts +23 -1
  911. package/src/materializer/projections/finish-run.ts +29 -11
  912. package/src/materializer/projections/replace.ts +55 -22
  913. package/src/materializer/projections/replacement-plan.ts +39 -7
  914. package/src/materializer/shared/batching.ts +4 -1
  915. package/src/materializer/shared/normalize.ts +16 -19
  916. package/src/materializer/telemetry/append.ts +57 -26
  917. package/src/materializer/telemetry/plan.ts +15 -6
  918. package/src/objects/action/request.ts +5 -5
  919. package/src/objects/context/index.ts +1 -0
  920. package/src/objects/context/types.ts +6 -0
  921. package/src/objects/execution.ts +346 -0
  922. package/src/objects/materializer-adapter.ts +1 -23
  923. package/src/objects/query/executor.ts +15 -29
  924. package/src/objects/query/index.ts +1 -2
  925. package/src/objects/query/planner.ts +0 -6
  926. package/src/objects/sdk/object-handle.ts +2 -2
  927. package/src/objects/sdk/object-set.ts +17 -7
  928. package/src/objects/sdk/runtime-query-executor.ts +9 -2
  929. package/src/objects/sdk/telemetry-channel.ts +5 -1
  930. package/src/objects/service/action-service.ts +5 -2
  931. package/src/objects/service/list-service.ts +1 -1
  932. package/src/objects/telemetry/history.ts +8 -3
  933. package/src/objects/telemetry/write-batch.ts +0 -2
  934. package/src/ontology/index.ts +6 -1
  935. package/src/ontology/registry.ts +16 -2
  936. package/src/pipelines/execution.ts +105 -0
  937. package/src/pipelines/index.ts +7 -0
  938. package/src/pipelines/request.ts +32 -26
  939. package/src/pipelines/run-dispatch.ts +308 -0
  940. package/src/projections/builders.ts +100 -44
  941. package/src/projections/capability.ts +37 -0
  942. package/src/projections/execution.ts +85 -0
  943. package/src/projections/index.ts +8 -1
  944. package/src/projections/internal.ts +21 -61
  945. package/src/projections/ownership.ts +2 -2
  946. package/src/projections/registry.ts +33 -11
  947. package/src/projections/revision.ts +11 -5
  948. package/src/projections/run-dispatch.ts +497 -0
  949. package/src/projections/run-id.ts +20 -0
  950. package/src/projections/timestamp.ts +66 -0
  951. package/src/projections/types.ts +19 -0
  952. package/src/projections/validation.ts +27 -3
  953. package/src/queues/in-memory.ts +37 -11
  954. package/src/queues/index.ts +10 -2
  955. package/src/queues/types.ts +78 -45
  956. package/src/rules/execution.ts +49 -0
  957. package/src/rules/index.ts +0 -1
  958. package/src/rules/validation.ts +2 -6
  959. package/src/runtime/ai-cost.ts +15 -0
  960. package/src/runtime/ai-usage.ts +17 -0
  961. package/src/runtime/create.ts +28 -68
  962. package/src/runtime/definitions.ts +44 -0
  963. package/src/runtime/host.ts +377 -0
  964. package/src/runtime/index.ts +5 -13
  965. package/src/runtime/internal.ts +12 -0
  966. package/src/runtime/ontology-mutations.ts +5 -3
  967. package/src/runtime/resolve-definitions.ts +238 -0
  968. package/src/runtime/sixb.ts +95 -822
  969. package/src/runtime/types.ts +17 -290
  970. package/src/scheduler/index.ts +1 -1
  971. package/src/scheduler/runtime.ts +37 -6
  972. package/src/schedules/execution.ts +14 -0
  973. package/src/schedules/types.ts +0 -8
  974. package/src/security/every.ts +4 -0
  975. package/src/security/grants.ts +13 -1
  976. package/src/security/index.ts +3 -1
  977. package/src/security/registry.ts +107 -0
  978. package/src/security/types.ts +8 -12
  979. package/src/security/validation.ts +7 -0
  980. package/src/storage/action-runs/failure.ts +64 -0
  981. package/src/storage/action-runs/idempotency.ts +3 -1
  982. package/src/storage/action-runs/in-memory.ts +39 -9
  983. package/src/storage/action-runs/index.ts +3 -0
  984. package/src/storage/action-runs/provider.ts +25 -0
  985. package/src/storage/action-runs/types.ts +61 -27
  986. package/src/storage/agents/errors.ts +1 -0
  987. package/src/storage/agents/in-memory.ts +219 -14
  988. package/src/storage/agents/index.ts +7 -1
  989. package/src/storage/agents/provider.ts +252 -0
  990. package/src/storage/agents/types.ts +96 -22
  991. package/src/storage/ai-cost/analytics.ts +602 -0
  992. package/src/storage/ai-cost/codec.ts +136 -0
  993. package/src/storage/ai-cost/errors.ts +12 -0
  994. package/src/storage/ai-cost/in-memory.ts +164 -0
  995. package/src/storage/ai-cost/index.ts +35 -0
  996. package/src/storage/ai-cost/provider.ts +20 -0
  997. package/src/storage/ai-cost/types.ts +193 -0
  998. package/src/storage/ai-cost/validation.ts +337 -0
  999. package/src/storage/ai-usage/errors.ts +13 -0
  1000. package/src/storage/ai-usage/in-memory.ts +162 -0
  1001. package/src/storage/ai-usage/index.ts +21 -0
  1002. package/src/storage/ai-usage/record.ts +74 -0
  1003. package/src/storage/ai-usage/types.ts +102 -0
  1004. package/src/storage/ai-usage/usage.ts +104 -0
  1005. package/src/storage/auth/types.ts +1 -0
  1006. package/src/storage/connector-connections/errors.ts +24 -0
  1007. package/src/storage/connector-connections/in-memory.ts +1377 -0
  1008. package/src/storage/connector-connections/index.ts +66 -0
  1009. package/src/storage/connector-connections/provider/authorizations.ts +446 -0
  1010. package/src/storage/connector-connections/provider/connections.ts +291 -0
  1011. package/src/storage/connector-connections/provider/runs.ts +369 -0
  1012. package/src/storage/connector-connections/provider/shared.ts +342 -0
  1013. package/src/storage/connector-connections/provider.ts +219 -0
  1014. package/src/storage/connector-connections/types.ts +546 -0
  1015. package/src/storage/executions/errors.ts +21 -0
  1016. package/src/storage/executions/in-memory.ts +75 -0
  1017. package/src/storage/executions/index.ts +16 -0
  1018. package/src/storage/executions/provider.ts +292 -0
  1019. package/src/storage/executions/run-link.ts +70 -0
  1020. package/src/storage/executions/types.ts +49 -0
  1021. package/src/storage/executions/validation.ts +370 -0
  1022. package/src/storage/in-memory/index.ts +100 -16
  1023. package/src/storage/index.ts +191 -15
  1024. package/src/storage/ontology/commits.ts +1 -0
  1025. package/src/storage/ontology/in-memory/index.ts +2 -0
  1026. package/src/storage/ontology/in-memory/materializations-finalization.ts +2 -1
  1027. package/src/storage/ontology/in-memory/materializations-state.ts +10 -0
  1028. package/src/storage/ontology/in-memory/materializations-work.ts +2 -1
  1029. package/src/storage/ontology/in-memory/materializations.ts +132 -9
  1030. package/src/storage/ontology/in-memory/outbox.ts +1 -1
  1031. package/src/storage/ontology/in-memory/shared-state.ts +12 -1
  1032. package/src/storage/ontology/index.ts +6 -0
  1033. package/src/storage/ontology/materializations.ts +53 -4
  1034. package/src/storage/ontology/outbox.ts +13 -2
  1035. package/src/storage/ontology/provider-header-validation.ts +1 -0
  1036. package/src/storage/ontology/provider-work.ts +33 -14
  1037. package/src/storage/ontology/provider.ts +72 -52
  1038. package/src/storage/operation-scope.ts +2 -0
  1039. package/src/storage/pipeline-runs/idempotency.ts +14 -0
  1040. package/src/storage/pipeline-runs/in-memory.ts +88 -8
  1041. package/src/storage/pipeline-runs/index.ts +5 -1
  1042. package/src/storage/pipeline-runs/provider.ts +25 -0
  1043. package/src/storage/pipeline-runs/types.ts +37 -14
  1044. package/src/storage/projection-runs/in-memory.ts +93 -24
  1045. package/src/storage/projection-runs/index.ts +4 -0
  1046. package/src/storage/projection-runs/lifecycle.ts +165 -36
  1047. package/src/storage/projection-runs/provider.ts +34 -0
  1048. package/src/storage/projection-runs/types.ts +34 -11
  1049. package/src/storage/run-listing.ts +22 -13
  1050. package/src/storage/sync-runs/idempotency.ts +18 -0
  1051. package/src/storage/sync-runs/in-memory.ts +90 -7
  1052. package/src/storage/sync-runs/index.ts +4 -1
  1053. package/src/storage/sync-runs/provider.ts +25 -0
  1054. package/src/storage/sync-runs/types.ts +35 -11
  1055. package/src/storage/types.ts +46 -17
  1056. package/src/storage/webhook-runs/errors.ts +14 -0
  1057. package/src/storage/webhook-runs/in-memory.ts +84 -9
  1058. package/src/storage/webhook-runs/index.ts +5 -1
  1059. package/src/storage/webhook-runs/provider.ts +30 -0
  1060. package/src/storage/webhook-runs/types.ts +52 -11
  1061. package/src/storage/workflow-runs/in-memory.ts +89 -55
  1062. package/src/storage/workflow-runs/index.ts +2 -0
  1063. package/src/storage/workflow-runs/provider.ts +70 -0
  1064. package/src/storage/workflow-runs/types.ts +36 -25
  1065. package/src/syncs/builders.ts +2 -2
  1066. package/src/syncs/execution.ts +78 -0
  1067. package/src/syncs/index.ts +13 -0
  1068. package/src/syncs/request.ts +32 -43
  1069. package/src/syncs/run-dispatch.ts +312 -0
  1070. package/src/syncs/sources.ts +20 -0
  1071. package/src/syncs/types.ts +32 -8
  1072. package/src/testing/action-execution.ts +61 -0
  1073. package/src/testing/agent-execution.ts +81 -0
  1074. package/src/testing/agent-storage-contract.ts +498 -64
  1075. package/src/testing/ai-cost-storage-contract.ts +320 -0
  1076. package/src/testing/ai-usage-storage-contract.ts +528 -0
  1077. package/src/testing/auth-storage-contract.ts +17 -1
  1078. package/src/testing/broker-contract.ts +16 -1
  1079. package/src/testing/connector-connection-storage-contract.ts +1052 -0
  1080. package/src/testing/execution-storage-contract.ts +435 -0
  1081. package/src/testing/execution.ts +48 -0
  1082. package/src/testing/index.ts +57 -0
  1083. package/src/testing/materializer-fixture.ts +11 -3
  1084. package/src/testing/materializer-storage-contract.ts +333 -13
  1085. package/src/testing/ontology-contract-fixture.ts +35 -2
  1086. package/src/testing/ontology-storage-contract.ts +75 -14
  1087. package/src/testing/pipeline-execution.ts +64 -0
  1088. package/src/testing/projection-execution.ts +98 -0
  1089. package/src/testing/projection-run-storage-contract.ts +215 -29
  1090. package/src/testing/queues-contract.ts +40 -51
  1091. package/src/testing/sync-execution.ts +61 -0
  1092. package/src/testing/webhook-execution.ts +47 -0
  1093. package/src/testing/webhook-run-storage-contract.ts +240 -0
  1094. package/src/testing/workflow-execution.ts +77 -0
  1095. package/src/webhooks/index.ts +2 -1
  1096. package/src/webhooks/internal.ts +5 -0
  1097. package/src/webhooks/registry.ts +60 -36
  1098. package/src/webhooks/run-admission.ts +172 -0
  1099. package/src/webhooks/types.ts +8 -5
  1100. package/src/workers/queue-delivery.ts +25 -22
  1101. package/src/workers/queue-worker.ts +76 -33
  1102. package/src/workflows/execution.ts +313 -0
  1103. package/src/workflows/failure.ts +63 -0
  1104. package/src/workflows/index.ts +10 -1
  1105. package/src/workflows/request.ts +39 -118
  1106. package/src/workflows/run-dispatch.ts +359 -0
  1107. package/src/workflows/types.ts +39 -8
  1108. package/dist/actions/runtime.d.ts +0 -11
  1109. package/dist/actions/runtime.d.ts.map +0 -1
  1110. package/dist/agents/runtime.d.ts +0 -41
  1111. package/dist/agents/runtime.d.ts.map +0 -1
  1112. package/dist/chunk-4hwxq5e6.js +0 -49
  1113. package/dist/chunk-4hwxq5e6.js.map +0 -10
  1114. package/dist/chunk-4tvj3ate.js.map +0 -11
  1115. package/dist/chunk-50kv63vj.js.map +0 -12
  1116. package/dist/chunk-86459jn0.js +0 -1091
  1117. package/dist/chunk-86459jn0.js.map +0 -22
  1118. package/dist/chunk-867jxh7c.js.map +0 -19
  1119. package/dist/chunk-9k3hgv8h.js +0 -352
  1120. package/dist/chunk-9k3hgv8h.js.map +0 -13
  1121. package/dist/chunk-avppcgt6.js.map +0 -14
  1122. package/dist/chunk-b1bqvhpe.js.map +0 -13
  1123. package/dist/chunk-b5dp7gaf.js +0 -1092
  1124. package/dist/chunk-b5dp7gaf.js.map +0 -26
  1125. package/dist/chunk-bh8bwma3.js +0 -37
  1126. package/dist/chunk-bh8bwma3.js.map +0 -10
  1127. package/dist/chunk-btcsywk4.js +0 -985
  1128. package/dist/chunk-btcsywk4.js.map +0 -15
  1129. package/dist/chunk-exrfbt2d.js +0 -354
  1130. package/dist/chunk-exrfbt2d.js.map +0 -17
  1131. package/dist/chunk-hb9xcx9c.js.map +0 -14
  1132. package/dist/chunk-k25jm1x5.js +0 -102
  1133. package/dist/chunk-k25jm1x5.js.map +0 -10
  1134. package/dist/chunk-k6j72mtt.js +0 -9
  1135. package/dist/chunk-k6j72mtt.js.map +0 -10
  1136. package/dist/chunk-m9w0artv.js +0 -554
  1137. package/dist/chunk-m9w0artv.js.map +0 -13
  1138. package/dist/chunk-nbywkytr.js.map +0 -16
  1139. package/dist/chunk-p7vj8xgb.js.map +0 -34
  1140. package/dist/chunk-raq0x6bd.js.map +0 -48
  1141. package/dist/chunk-rgzed50y.js +0 -1445
  1142. package/dist/chunk-rgzed50y.js.map +0 -22
  1143. package/dist/chunk-rjqm6ksg.js.map +0 -44
  1144. package/dist/chunk-t72dvahb.js.map +0 -12
  1145. package/dist/chunk-v5c085yp.js.map +0 -10
  1146. package/dist/chunk-xt6qx9sh.js.map +0 -36
  1147. package/dist/chunk-xz5g49bp.js.map +0 -11
  1148. package/dist/chunk-ya6brh8a.js.map +0 -11
  1149. package/dist/chunk-yn947ck3.js.map +0 -14
  1150. package/dist/connectors/runtime.d.ts +0 -13
  1151. package/dist/connectors/runtime.d.ts.map +0 -1
  1152. package/dist/events/runtime.d.ts.map +0 -1
  1153. package/dist/objects/contexts.d.ts +0 -45
  1154. package/dist/objects/contexts.d.ts.map +0 -1
  1155. package/dist/objects/helpers.d.ts +0 -7
  1156. package/dist/objects/helpers.d.ts.map +0 -1
  1157. package/dist/runtime/scoped.d.ts +0 -158
  1158. package/dist/runtime/scoped.d.ts.map +0 -1
  1159. package/dist/security/runtime.d.ts +0 -16
  1160. package/dist/security/runtime.d.ts.map +0 -1
  1161. package/dist/storage/webhook-deliveries/in-memory.d.ts +0 -18
  1162. package/dist/storage/webhook-deliveries/in-memory.d.ts.map +0 -1
  1163. package/dist/storage/webhook-deliveries/index.d.ts +0 -3
  1164. package/dist/storage/webhook-deliveries/index.d.ts.map +0 -1
  1165. package/dist/storage/webhook-deliveries/types.d.ts +0 -43
  1166. package/dist/storage/webhook-deliveries/types.d.ts.map +0 -1
  1167. package/dist/workflows/runtime.d.ts +0 -33
  1168. package/dist/workflows/runtime.d.ts.map +0 -1
  1169. package/src/actions/runtime.ts +0 -31
  1170. package/src/agents/runtime.ts +0 -124
  1171. package/src/connectors/runtime.ts +0 -100
  1172. package/src/objects/contexts.ts +0 -64
  1173. package/src/objects/helpers.ts +0 -18
  1174. package/src/runtime/scoped.ts +0 -436
  1175. package/src/security/runtime.ts +0 -101
  1176. package/src/storage/webhook-deliveries/in-memory.ts +0 -108
  1177. package/src/storage/webhook-deliveries/index.ts +0 -9
  1178. package/src/storage/webhook-deliveries/types.ts +0 -41
  1179. package/src/workflows/runtime.ts +0 -68
  1180. /package/dist/{chunk-md9jbrm9.js.map → chunk-4gz41why.js.map} +0 -0
  1181. /package/dist/{chunk-6rzdtvn5.js.map → chunk-8b55ygje.js.map} +0 -0
  1182. /package/dist/{chunk-r82k4z7z.js.map → chunk-a31h57d5.js.map} +0 -0
  1183. /package/dist/{chunk-qzyemcj7.js.map → chunk-ckxfnx7f.js.map} +0 -0
  1184. /package/dist/{chunk-53s4asfm.js.map → chunk-rnshztfq.js.map} +0 -0
  1185. /package/dist/{chunk-8kv2sez0.js.map → chunk-vybf6pkp.js.map} +0 -0
  1186. /package/dist/{chunk-6zrpewy4.js.map → chunk-z3zp0bj1.js.map} +0 -0
  1187. /package/dist/{chunk-hz8m927w.js.map → chunk-zqysyfjt.js.map} +0 -0
@@ -1,4 +1,8 @@
1
1
  // @bun
2
+ import {
3
+ ScheduleValidationError,
4
+ createCronMatcher
5
+ } from "./chunk-979ww6b3.js";
2
6
  import {
3
7
  buildEventSelectorPredicate,
4
8
  eventSelectorSpec
@@ -270,139 +274,6 @@ function compareOrderedValues(left, right, matches) {
270
274
  }
271
275
  return false;
272
276
  }
273
- // src/schedules/errors.ts
274
- class ScheduleValidationError extends Error {
275
- name = "ScheduleValidationError";
276
- }
277
-
278
- class CronValidationError extends Error {
279
- name = "CronValidationError";
280
- }
281
-
282
- // src/schedules/cron.ts
283
- function parseInteger(input, fieldName) {
284
- if (!/^\d+$/.test(input)) {
285
- throw new CronValidationError(`Invalid ${fieldName}: '${input}'.`);
286
- }
287
- return Number.parseInt(input, 10);
288
- }
289
- function createCronFieldMatcher(params) {
290
- const { field, min, max, fieldName } = params;
291
- const normalize = params.normalize ?? ((value) => value);
292
- const input = field.trim();
293
- if (!input) {
294
- throw new CronValidationError(`Empty cron ${fieldName} field.`);
295
- }
296
- if (input === "*") {
297
- return {
298
- isAny: true,
299
- values: null,
300
- matches: () => true
301
- };
302
- }
303
- const allowed = new Set;
304
- const segments = input.split(",");
305
- for (const segment of segments) {
306
- if (!segment) {
307
- throw new CronValidationError(`Invalid cron ${fieldName} field: '${input}'.`);
308
- }
309
- const stepParts = segment.split("/");
310
- if (stepParts.length > 2) {
311
- throw new CronValidationError(`Invalid cron ${fieldName} segment: '${segment}'.`);
312
- }
313
- const base = stepParts[0];
314
- const step = stepParts[1] === undefined ? 1 : parseInteger(stepParts[1], `cron ${fieldName} step for '${segment}'`);
315
- if (step <= 0) {
316
- throw new CronValidationError(`Cron ${fieldName} step must be > 0 in segment '${segment}'.`);
317
- }
318
- let rangeStart;
319
- let rangeEnd;
320
- if (base === "*") {
321
- rangeStart = min;
322
- rangeEnd = max;
323
- } else if (base.includes("-")) {
324
- const [rawStart, rawEnd] = base.split("-");
325
- if (!rawStart || !rawEnd) {
326
- throw new CronValidationError(`Invalid cron ${fieldName} range: '${base}'.`);
327
- }
328
- rangeStart = parseInteger(rawStart, `cron ${fieldName} range start for '${base}'`);
329
- rangeEnd = parseInteger(rawEnd, `cron ${fieldName} range end for '${base}'`);
330
- } else {
331
- const value = parseInteger(base, `cron ${fieldName} value '${base}'`);
332
- rangeStart = value;
333
- rangeEnd = value;
334
- }
335
- if (rangeStart > rangeEnd) {
336
- throw new CronValidationError(`Cron ${fieldName} range start must be <= end in segment '${segment}'.`);
337
- }
338
- for (let value = rangeStart;value <= rangeEnd; value += step) {
339
- const normalized = normalize(value);
340
- if (normalized < min || normalized > max) {
341
- throw new CronValidationError(`Cron ${fieldName} value ${value} is outside range ${min}-${max}.`);
342
- }
343
- allowed.add(normalized);
344
- }
345
- }
346
- return {
347
- isAny: false,
348
- values: allowed,
349
- matches(value) {
350
- const normalized = normalize(value);
351
- return allowed.has(normalized);
352
- }
353
- };
354
- }
355
- function createCronMatcher(expression) {
356
- const parts = expression.trim().split(/\s+/);
357
- if (parts.length !== 5) {
358
- throw new CronValidationError(`Invalid cron expression '${expression}'. Expected 5 fields (minute hour day month weekday).`);
359
- }
360
- const [minuteField, hourField, dayOfMonthField, monthField, dayOfWeekField] = parts;
361
- const minute = createCronFieldMatcher({
362
- field: minuteField,
363
- min: 0,
364
- max: 59,
365
- fieldName: "minute"
366
- });
367
- const hour = createCronFieldMatcher({
368
- field: hourField,
369
- min: 0,
370
- max: 23,
371
- fieldName: "hour"
372
- });
373
- const dayOfMonth = createCronFieldMatcher({
374
- field: dayOfMonthField,
375
- min: 1,
376
- max: 31,
377
- fieldName: "day-of-month"
378
- });
379
- const month = createCronFieldMatcher({
380
- field: monthField,
381
- min: 1,
382
- max: 12,
383
- fieldName: "month"
384
- });
385
- const dayOfWeek = createCronFieldMatcher({
386
- field: dayOfWeekField,
387
- min: 0,
388
- max: 6,
389
- fieldName: "day-of-week",
390
- normalize: (value) => value === 7 ? 0 : value
391
- });
392
- return (now) => {
393
- if (!minute.matches(now.getMinutes()))
394
- return false;
395
- if (!hour.matches(now.getHours()))
396
- return false;
397
- if (!month.matches(now.getMonth() + 1))
398
- return false;
399
- const dayOfMonthMatches = dayOfMonth.matches(now.getDate());
400
- const dayOfWeekMatches = dayOfWeek.matches(now.getDay());
401
- const dayMatches = dayOfMonth.isAny || dayOfWeek.isAny ? dayOfMonthMatches && dayOfWeekMatches : dayOfMonthMatches || dayOfWeekMatches;
402
- return dayMatches;
403
- };
404
- }
405
-
406
277
  // src/schedules/builders.ts
407
278
  function assertNonEmpty(value, field) {
408
279
  if (!value.trim()) {
@@ -569,166 +440,6 @@ function defineSchedule(id) {
569
440
  }
570
441
  };
571
442
  }
572
- // src/schedules/next-occurrence.ts
573
- var MAX_SEARCH_MS = 4 * 365.25 * 24 * 60 * 60 * 1000;
574
- var timezoneFormatterCache = new Map;
575
- function getTimezoneFormatter(timezone) {
576
- let formatter = timezoneFormatterCache.get(timezone);
577
- if (!formatter) {
578
- formatter = new Intl.DateTimeFormat("en-US", {
579
- timeZone: timezone,
580
- year: "numeric",
581
- month: "numeric",
582
- day: "numeric",
583
- hour: "numeric",
584
- minute: "numeric",
585
- weekday: "short",
586
- hour12: false
587
- });
588
- timezoneFormatterCache.set(timezone, formatter);
589
- }
590
- return formatter;
591
- }
592
- function getLocalComponents(date, timezone) {
593
- if (timezone === undefined) {
594
- return {
595
- minute: date.getUTCMinutes(),
596
- hour: date.getUTCHours(),
597
- dayOfMonth: date.getUTCDate(),
598
- month: date.getUTCMonth() + 1,
599
- dayOfWeek: date.getUTCDay()
600
- };
601
- }
602
- const formatter = getTimezoneFormatter(timezone);
603
- const parts = formatter.formatToParts(date);
604
- const get = (type) => {
605
- const part = parts.find((p) => p.type === type);
606
- if (!part)
607
- throw new CronValidationError(`Failed to extract ${type} for timezone ${timezone}.`);
608
- return part.value;
609
- };
610
- const weekdayStr = get("weekday");
611
- const weekdayMap = {
612
- Sun: 0,
613
- Mon: 1,
614
- Tue: 2,
615
- Wed: 3,
616
- Thu: 4,
617
- Fri: 5,
618
- Sat: 6
619
- };
620
- return {
621
- minute: Number.parseInt(get("minute"), 10),
622
- hour: Number.parseInt(get("hour"), 10) % 24,
623
- dayOfMonth: Number.parseInt(get("day"), 10),
624
- month: Number.parseInt(get("month"), 10),
625
- dayOfWeek: weekdayMap[weekdayStr] ?? 0
626
- };
627
- }
628
- function matchesDay(dayOfMonth, dayOfWeek, comp) {
629
- const domMatches = dayOfMonth.matches(comp.dayOfMonth);
630
- const dowMatches = dayOfWeek.matches(comp.dayOfWeek);
631
- if (dayOfMonth.isAny || dayOfWeek.isAny) {
632
- return domMatches && dowMatches;
633
- }
634
- return domMatches || dowMatches;
635
- }
636
- function nextCronOccurrence(expression, after, timezone) {
637
- const parts = expression.trim().split(/\s+/);
638
- if (parts.length !== 5) {
639
- throw new CronValidationError(`Invalid cron expression '${expression}'. Expected 5 fields (minute hour day month weekday).`);
640
- }
641
- const [minuteField, hourField, dayOfMonthField, monthField, dayOfWeekField] = parts;
642
- const minuteMatcher = createCronFieldMatcher({
643
- field: minuteField,
644
- min: 0,
645
- max: 59,
646
- fieldName: "minute"
647
- });
648
- const hourMatcher = createCronFieldMatcher({
649
- field: hourField,
650
- min: 0,
651
- max: 23,
652
- fieldName: "hour"
653
- });
654
- const dayOfMonthMatcher = createCronFieldMatcher({
655
- field: dayOfMonthField,
656
- min: 1,
657
- max: 31,
658
- fieldName: "day-of-month"
659
- });
660
- const monthMatcher = createCronFieldMatcher({
661
- field: monthField,
662
- min: 1,
663
- max: 12,
664
- fieldName: "month"
665
- });
666
- const dayOfWeekMatcher = createCronFieldMatcher({
667
- field: dayOfWeekField,
668
- min: 0,
669
- max: 6,
670
- fieldName: "day-of-week",
671
- normalize: (value) => value === 7 ? 0 : value
672
- });
673
- const startMs = after.getTime();
674
- let candidateMs = Math.ceil(startMs / 60000) * 60000;
675
- if (candidateMs <= startMs)
676
- candidateMs += 60000;
677
- const limitMs = startMs + MAX_SEARCH_MS;
678
- while (candidateMs <= limitMs) {
679
- const candidate = new Date(candidateMs);
680
- const comp = getLocalComponents(candidate, timezone);
681
- if (!monthMatcher.matches(comp.month)) {
682
- if (timezone === undefined) {
683
- const next = findNextMatchingMonth(candidate, monthMatcher);
684
- candidateMs = next.getTime();
685
- } else {
686
- candidateMs += ((24 - comp.hour) * 60 - comp.minute) * 60000;
687
- }
688
- continue;
689
- }
690
- if (!matchesDay(dayOfMonthMatcher, dayOfWeekMatcher, comp)) {
691
- if (timezone === undefined) {
692
- const next = new Date(candidateMs);
693
- next.setUTCDate(next.getUTCDate() + 1);
694
- next.setUTCHours(0, 0, 0, 0);
695
- candidateMs = next.getTime();
696
- } else {
697
- candidateMs += ((24 - comp.hour) * 60 - comp.minute) * 60000;
698
- }
699
- continue;
700
- }
701
- if (!hourMatcher.matches(comp.hour)) {
702
- if (timezone === undefined) {
703
- const next = new Date(candidateMs);
704
- next.setUTCHours(next.getUTCHours() + 1, 0, 0, 0);
705
- candidateMs = next.getTime();
706
- } else {
707
- candidateMs += (60 - comp.minute) * 60000;
708
- }
709
- continue;
710
- }
711
- if (!minuteMatcher.matches(comp.minute)) {
712
- candidateMs += 60000;
713
- continue;
714
- }
715
- return candidate;
716
- }
717
- throw new CronValidationError(`No matching occurrence found for '${expression}' within 4 years.`);
718
- }
719
- function findNextMatchingMonth(current, monthMatcher) {
720
- const d = new Date(current);
721
- d.setUTCDate(1);
722
- d.setUTCHours(0, 0, 0, 0);
723
- d.setUTCMonth(d.getUTCMonth() + 1);
724
- for (let i = 0;i < 48; i++) {
725
- if (monthMatcher.matches(d.getUTCMonth() + 1)) {
726
- return d;
727
- }
728
- d.setUTCMonth(d.getUTCMonth() + 1);
729
- }
730
- return d;
731
- }
732
443
  // src/schedules/runtime.ts
733
444
  function eventScheduleSubscribedEventTypes(schedule) {
734
445
  return schedule.trigger.source.types ?? [];
@@ -1151,6 +862,6 @@ function validateConditionPredicate(schedule, propertyIds, predicate, link) {
1151
862
  throw new ScheduleValidationError(`Schedule "${schedule.id}": unknown property "${predicate.propertyId}" on ${subject}.`);
1152
863
  }
1153
864
  }
1154
- export { assertPredicateShape, createPropertyPredicateBuilder, createLinkPredicateBuilder, allPredicates, anyPredicates, notPredicate, ScheduleValidationError, CronValidationError, createCronFieldMatcher, createCronMatcher, defineSchedule, nextCronOccurrence, eventScheduleSubscribedEventTypes, evaluateEventSchedule, buildEventScheduleContext, isScheduleReference, assertScheduleDefinition, isScheduleDefinition, validateSchedulesAtStartup };
865
+ export { assertPredicateShape, createPropertyPredicateBuilder, createLinkPredicateBuilder, allPredicates, anyPredicates, notPredicate, defineSchedule, eventScheduleSubscribedEventTypes, evaluateEventSchedule, buildEventScheduleContext, isScheduleReference, assertScheduleDefinition, isScheduleDefinition, validateSchedulesAtStartup };
1155
866
 
1156
- //# debugId=3E911BDE3A5674D064756E2164756E21
867
+ //# debugId=14067F7BB3ED997964756E2164756E21
@@ -0,0 +1,16 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/predicates/validation.ts", "../src/predicates/builders.ts", "../src/predicates/evaluate.ts", "../src/schedules/builders.ts", "../src/schedules/runtime.ts", "../src/schedules/types.ts", "../src/schedules/validation.ts"],
4
+ "sourcesContent": [
5
+ "import type {\n LinkPredicateOperator,\n Predicate,\n PredicateValue,\n PropertyPredicateOperator,\n} from \"./types\"\n\nconst propertyOperators = new Set<PropertyPredicateOperator>([\n \"eq\",\n \"notEq\",\n \"gt\",\n \"gte\",\n \"lt\",\n \"lte\",\n \"isPresent\",\n \"isMissing\",\n])\n\nconst propertyValueOperators = new Set<PropertyPredicateOperator>([\n \"eq\",\n \"notEq\",\n \"gt\",\n \"gte\",\n \"lt\",\n \"lte\",\n])\n\nconst linkOperators = new Set<LinkPredicateOperator>([\"exists\", \"isMissing\"])\n\ntype AssertPredicateShapeOptions = {\n readonly subject?: string\n readonly createError?: (message: string) => Error\n}\n\nfunction defaultError(message: string): Error {\n return new Error(message)\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction assertNonEmptyString(\n value: unknown,\n field: string,\n createError: (message: string) => Error\n): asserts value is string {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw createError(`${field} must not be empty.`)\n }\n}\n\nexport function isPredicateValue(value: unknown): value is PredicateValue {\n if (value === null) {\n return true\n }\n\n if (typeof value === \"number\") {\n return Number.isFinite(value)\n }\n\n return typeof value === \"string\" || typeof value === \"boolean\"\n}\n\n/**\n * Validate the portable predicate AST shape.\n *\n * Primitive-specific validators can wrap this with their own `subject` so\n * errors read as \"Rule ...\" or \"Trigger ...\" while sharing the same checks.\n */\nexport function assertPredicateShape(\n value: unknown,\n options: AssertPredicateShapeOptions = {}\n): asserts value is Predicate {\n const subject = options.subject ?? \"Predicate\"\n const createError = options.createError ?? defaultError\n\n if (!isRecord(value)) {\n throw createError(`${subject} predicate must be an object.`)\n }\n\n if (value.kind === \"all\" || value.kind === \"any\") {\n if (!Array.isArray(value.predicates)) {\n throw createError(`${subject} ${value.kind} predicate must declare predicates.`)\n }\n\n for (const predicate of value.predicates) {\n assertPredicateShape(predicate, options)\n }\n return\n }\n\n if (value.kind === \"not\") {\n assertPredicateShape(value.predicate, options)\n return\n }\n\n if (value.kind === \"property\") {\n assertNonEmptyString(value.propertyId, `${subject} property predicate propertyId`, createError)\n\n if (!propertyOperators.has(value.op as PropertyPredicateOperator)) {\n throw createError(\n `${subject} property predicate '${value.propertyId}' has invalid operator '${String(\n value.op\n )}'.`\n )\n }\n\n const op = value.op as PropertyPredicateOperator\n const hasValue = Object.hasOwn(value, \"value\")\n if (propertyValueOperators.has(op)) {\n if (!hasValue || !isPredicateValue(value.value)) {\n throw createError(\n `${subject} property predicate '${value.propertyId}' must declare a value.`\n )\n }\n return\n }\n\n if (hasValue) {\n throw createError(\n `${subject} property predicate '${value.propertyId}' must not declare a value.`\n )\n }\n return\n }\n\n if (value.kind === \"field\") {\n assertNonEmptyString(value.field, `${subject} field predicate field`, createError)\n if (value.op !== \"eq\") {\n throw createError(\n `${subject} field predicate '${value.field}' has invalid operator '${String(value.op)}'.`\n )\n }\n if (!isPredicateValue(value.value)) {\n throw createError(`${subject} field predicate '${value.field}' must declare a value.`)\n }\n return\n }\n\n if (value.kind === \"link\") {\n assertNonEmptyString(value.linkId, `${subject} link predicate linkId`, createError)\n if (!linkOperators.has(value.op as LinkPredicateOperator)) {\n throw createError(\n `${subject} link predicate '${value.linkId}' has invalid operator '${String(value.op)}'.`\n )\n }\n return\n }\n\n throw createError(`Unknown ${subject.toLowerCase()} predicate kind '${String(value.kind)}'.`)\n}\n",
6
+ "import type {\n FieldPredicate,\n LinkPredicate,\n LinkPredicateBuilder,\n Predicate,\n PredicateValue,\n PropertyPredicate,\n PropertyPredicateOperator,\n} from \"./types\"\nimport { isPredicateValue } from \"./validation\"\n\nexport type RuntimePropertyPredicateBuilder<TResult = PropertyPredicate> = {\n eq(value: PredicateValue): TResult\n notEq(value: PredicateValue): TResult\n gt(value: PredicateValue): TResult\n gte(value: PredicateValue): TResult\n lt(value: PredicateValue): TResult\n lte(value: PredicateValue): TResult\n isPresent(): TResult\n isMissing(): TResult\n}\n\nexport function createFieldPredicate(\n field: string,\n value: PredicateValue,\n options: Pick<PropertyPredicateBuilderOptions<unknown>, \"subject\" | \"createError\"> = {}\n): FieldPredicate {\n const subject = options.subject ?? \"Predicate\"\n const createError = options.createError ?? defaultError\n if (!field.trim()) {\n throw createError(`${subject} predicate field must not be empty.`)\n }\n assertSerializablePredicateValue(value, subject, createError)\n\n return { kind: \"field\", field, op: \"eq\", value }\n}\n\nexport type PropertyPredicateBuilderOptions<TResult> = {\n readonly subject?: string\n readonly createError?: (message: string) => Error\n readonly wrap?: (predicate: PropertyPredicate) => TResult\n}\n\nfunction defaultError(message: string): Error {\n return new Error(message)\n}\n\nfunction assertSerializablePredicateValue(\n value: PredicateValue,\n subject: string,\n createError: (message: string) => Error\n): void {\n if (!isPredicateValue(value)) {\n throw createError(`${subject} predicate values must be serializable scalar values.`)\n }\n}\n\nexport function createPropertyPredicate(\n propertyId: string,\n op: PropertyPredicateOperator,\n value?: PredicateValue,\n options: Pick<PropertyPredicateBuilderOptions<unknown>, \"subject\" | \"createError\"> = {}\n): PropertyPredicate {\n const subject = options.subject ?? \"Predicate\"\n const createError = options.createError ?? defaultError\n if (value !== undefined) {\n assertSerializablePredicateValue(value, subject, createError)\n }\n\n return {\n kind: \"property\",\n propertyId,\n op,\n ...(value !== undefined ? { value } : {}),\n }\n}\n\nexport function createPropertyPredicateBuilder<TResult = PropertyPredicate>(\n propertyId: string,\n options: PropertyPredicateBuilderOptions<TResult> = {}\n): RuntimePropertyPredicateBuilder<TResult> {\n const wrap = options.wrap ?? ((predicate: PropertyPredicate) => predicate as TResult)\n const createPredicate = (op: PropertyPredicateOperator, value?: PredicateValue) =>\n wrap(createPropertyPredicate(propertyId, op, value, options))\n\n return {\n eq(value) {\n return createPredicate(\"eq\", value)\n },\n notEq(value) {\n return createPredicate(\"notEq\", value)\n },\n gt(value) {\n return createPredicate(\"gt\", value)\n },\n gte(value) {\n return createPredicate(\"gte\", value)\n },\n lt(value) {\n return createPredicate(\"lt\", value)\n },\n lte(value) {\n return createPredicate(\"lte\", value)\n },\n isPresent() {\n return createPredicate(\"isPresent\")\n },\n isMissing() {\n return createPredicate(\"isMissing\")\n },\n }\n}\n\nexport function createLinkPredicateBuilder(linkId: string): LinkPredicateBuilder {\n return {\n exists(): LinkPredicate {\n return {\n kind: \"link\",\n linkId,\n op: \"exists\",\n }\n },\n isMissing(): LinkPredicate {\n return {\n kind: \"link\",\n linkId,\n op: \"isMissing\",\n }\n },\n }\n}\n\nexport function allPredicates(predicates: readonly Predicate[]): Predicate {\n return {\n kind: \"all\",\n predicates: [...predicates],\n }\n}\n\nexport function anyPredicates(predicates: readonly Predicate[]): Predicate {\n return {\n kind: \"any\",\n predicates: [...predicates],\n }\n}\n\nexport function notPredicate(predicate: Predicate): Predicate {\n return {\n kind: \"not\",\n predicate,\n }\n}\n",
7
+ "import { compareDecimalValues, isDecimalValue } from \"../ontology/decimal\"\nimport type {\n FieldPredicate,\n LinkPredicate,\n Predicate,\n PredicateValue,\n PropertyPredicate,\n} from \"./types\"\n\nexport interface PredicateEvaluationSubject {\n readonly properties?: Readonly<Record<string, unknown>>\n readonly fields?: Readonly<Record<string, unknown>>\n readonly links?: Readonly<Record<string, boolean>>\n}\n\nexport function evaluatePredicate(\n predicate: Predicate,\n subject: PredicateEvaluationSubject\n): boolean {\n switch (predicate.kind) {\n case \"all\":\n return predicate.predicates.every((child) => evaluatePredicate(child, subject))\n case \"any\":\n return predicate.predicates.some((child) => evaluatePredicate(child, subject))\n case \"not\":\n return !evaluatePredicate(predicate.predicate, subject)\n case \"property\":\n return evaluatePropertyPredicate(predicate, subject.properties ?? {})\n case \"field\":\n return evaluateFieldPredicate(predicate, subject.fields ?? {})\n case \"link\":\n return evaluateLinkPredicate(predicate, subject.links ?? {})\n }\n}\n\nfunction evaluateFieldPredicate(\n predicate: FieldPredicate,\n fields: Readonly<Record<string, unknown>>\n): boolean {\n return predicateValueEquals(fields[predicate.field], predicate.value)\n}\n\nfunction evaluatePropertyPredicate(\n predicate: PropertyPredicate,\n properties: Readonly<Record<string, unknown>>\n): boolean {\n const value = properties[predicate.propertyId]\n const isPresent = value !== undefined && value !== null\n\n switch (predicate.op) {\n case \"eq\":\n return isPresent && predicateValueEquals(value, predicate.value)\n case \"notEq\":\n return !isPresent || !predicateValueEquals(value, predicate.value)\n case \"gt\":\n return compareOrderedValues(value, predicate.value, (comparison) => comparison > 0)\n case \"gte\":\n return compareOrderedValues(value, predicate.value, (comparison) => comparison >= 0)\n case \"lt\":\n return compareOrderedValues(value, predicate.value, (comparison) => comparison < 0)\n case \"lte\":\n return compareOrderedValues(value, predicate.value, (comparison) => comparison <= 0)\n case \"isPresent\":\n return isPresent\n case \"isMissing\":\n return !isPresent\n }\n}\n\nfunction evaluateLinkPredicate(\n predicate: LinkPredicate,\n links: Readonly<Record<string, boolean>>\n): boolean {\n const exists = links[predicate.linkId] === true\n switch (predicate.op) {\n case \"exists\":\n return exists\n case \"isMissing\":\n return !exists\n }\n}\n\nfunction predicateValueEquals(left: unknown, right: PredicateValue | undefined): boolean {\n return isPredicateComparableValue(left) && right !== undefined && Object.is(left, right)\n}\n\nfunction isPredicateComparableValue(value: unknown): value is PredicateValue {\n return (\n value === null || typeof value === \"string\" || typeof value === \"boolean\" || isNumber(value)\n )\n}\n\nfunction isNumber(value: unknown): value is number {\n return typeof value === \"number\" && Number.isFinite(value)\n}\n\nfunction compareOrderedValues(\n left: unknown,\n right: unknown,\n matches: (comparison: number) => boolean\n): boolean {\n if (isNumber(left) && isNumber(right)) return matches(left - right)\n if (isDecimalValue(left) && isDecimalValue(right)) {\n return matches(compareDecimalValues(left, right))\n }\n return false\n}\n",
8
+ "import type { EventSelectorSpec } from \"../events/selectors\"\nimport { eventSelectorSpec } from \"../events/selectors\"\nimport {\n allPredicates,\n anyPredicates,\n assertPredicateShape,\n createFieldPredicate,\n createPropertyPredicateBuilder,\n notPredicate,\n type Predicate,\n type RuntimePropertyPredicateBuilder,\n} from \"../predicates\"\nimport { createCronMatcher } from \"./cron\"\nimport { ScheduleValidationError } from \"./errors\"\nimport type {\n CronScheduleDefinition,\n EventScheduleCondition,\n EventScheduleConditionScope,\n EventScheduleDefinition,\n EventScheduleScopedPredicate,\n ScheduleBuilder,\n} from \"./types\"\n\ntype RuntimeEventSchedulePropertyPredicateBuilder =\n RuntimePropertyPredicateBuilder<EventScheduleScopedPredicate>\n\ntype RuntimeEventSchedulePredicateSubject = {\n p: Record<string, RuntimeEventSchedulePropertyPredicateBuilder>\n all(...predicates: EventScheduleCondition[]): EventScheduleCondition\n any(...predicates: EventScheduleCondition[]): EventScheduleCondition\n not(predicate: EventScheduleCondition): EventScheduleCondition\n}\n\ntype RuntimeEventSchedulePredicateContext = {\n object?: RuntimeEventSchedulePredicateSubject\n link?: RuntimeEventSchedulePredicateSubject\n target?: RuntimeEventScheduleTargetPredicateSubject\n}\n\ntype RuntimeEventScheduleTargetPredicateSubject = {\n is(objectType: { readonly id: string }): EventScheduleCondition\n id: { eq(value: string): EventScheduleCondition }\n}\n\nfunction assertNonEmpty(value: string, field: string): void {\n if (!value.trim()) {\n throw new ScheduleValidationError(`Schedule ${field} must not be empty.`)\n }\n}\n\nfunction validateTimezone(timezone: string): void {\n try {\n Intl.DateTimeFormat(undefined, { timeZone: timezone })\n } catch {\n throw new ScheduleValidationError(`Invalid timezone '${timezone}'.`)\n }\n}\n\nfunction createCondition(\n scope: EventScheduleConditionScope,\n predicate: Predicate\n): EventScheduleCondition {\n return {\n kind: \"becomesTrue\",\n scope,\n predicate,\n }\n}\n\nfunction createEventSchedulePropertyPredicateBuilder(\n scope: EventScheduleConditionScope,\n propertyId: string\n): RuntimeEventSchedulePropertyPredicateBuilder {\n return createPropertyPredicateBuilder(propertyId, {\n subject: \"Schedule\",\n createError: (message) => new ScheduleValidationError(message),\n wrap: (predicate) => createCondition(scope, predicate),\n })\n}\n\nfunction createPredicateSubject(\n scope: EventScheduleConditionScope\n): RuntimeEventSchedulePredicateSubject {\n const properties = new Proxy<Record<string, RuntimeEventSchedulePropertyPredicateBuilder>>(\n {},\n {\n get(target, property) {\n if (typeof property !== \"string\") return undefined\n target[property] ??= createEventSchedulePropertyPredicateBuilder(scope, property)\n return target[property]\n },\n }\n )\n\n return {\n p: properties,\n all(...conditions) {\n return createCondition(\n scope,\n allPredicates(conditions.map((condition) => condition.predicate))\n )\n },\n any(...conditions) {\n return createCondition(\n scope,\n anyPredicates(conditions.map((condition) => condition.predicate))\n )\n },\n not(condition) {\n return createCondition(scope, notPredicate(condition.predicate))\n },\n }\n}\n\nfunction createTargetPredicateSubject(): RuntimeEventScheduleTargetPredicateSubject {\n const condition = (field: string, value: string) =>\n createCondition(\n \"event.link\",\n createFieldPredicate(field, value, {\n subject: \"Schedule\",\n createError: (message) => new ScheduleValidationError(message),\n })\n )\n\n return {\n is(objectType) {\n assertNonEmpty(objectType.id, \"target object type id\")\n return condition(\"target.objectTypeId\", objectType.id)\n },\n id: {\n eq(value) {\n assertNonEmpty(value, \"target object id\")\n return condition(\"target.primaryId\", value)\n },\n },\n }\n}\n\nfunction createPredicateContext(selector: EventSelectorSpec): RuntimeEventSchedulePredicateContext {\n if (selector.topic === \"objects\") {\n return { object: createPredicateSubject(\"event.object\") }\n }\n\n if (selector.topic === \"links\") {\n return {\n link: createPredicateSubject(\"event.link\"),\n target: createTargetPredicateSubject(),\n }\n }\n\n return {}\n}\n\nfunction assertEventSource(source: EventSelectorSpec): void {\n if (!source.types || source.types.length === 0) {\n throw new ScheduleValidationError(\n \"Schedule event source must select an event operation, e.g. .created(), .updated(), or .succeeded().\"\n )\n }\n\n switch (source.topic) {\n case \"objects\":\n assertNonEmpty(source.objectTypeId ?? \"\", \"event source objectTypeId\")\n return\n case \"links\":\n assertNonEmpty(source.objectTypeId ?? \"\", \"event source objectTypeId\")\n assertNonEmpty(source.linkId ?? \"\", \"event source linkId\")\n return\n case \"rules\":\n assertNonEmpty(source.ruleId ?? \"\", \"event source ruleId\")\n return\n case \"actions\":\n assertNonEmpty(source.actionId ?? \"\", \"event source actionId\")\n return\n case \"datasets\":\n assertNonEmpty(source.datasetId ?? \"\", \"event source datasetId\")\n return\n case \"syncs\":\n assertNonEmpty(source.syncId ?? \"\", \"event source syncId\")\n return\n case \"pipelines\":\n assertNonEmpty(source.pipelineId ?? \"\", \"event source pipelineId\")\n return\n default:\n throw new ScheduleValidationError(\n \"Schedule event source must select object, link, rule, action, dataset, sync, or pipeline events.\"\n )\n }\n}\n\n/** Define an inert, reusable policy describing when work should run. */\nexport function defineSchedule<const TId extends string>(id: TId): ScheduleBuilder<TId>\nexport function defineSchedule(id: string): ScheduleBuilder<string> {\n assertNonEmpty(id, \"id\")\n\n return {\n cron(expression, options): CronScheduleDefinition {\n assertNonEmpty(expression, \"cron expression\")\n createCronMatcher(expression)\n\n if (options?.timezone !== undefined) validateTimezone(options.timezone)\n\n return {\n kind: \"schedule\",\n id,\n trigger: {\n type: \"cron\",\n expression,\n ...(options?.timezone !== undefined ? { timezone: options.timezone } : {}),\n },\n }\n },\n on(selector: EventSelectorSpec): unknown {\n const source = eventSelectorSpec(selector)\n assertEventSource(source)\n\n const base = {\n kind: \"schedule\" as const,\n id,\n trigger: {\n type: \"event\" as const,\n source,\n },\n }\n\n if (source.topic !== \"objects\" && source.topic !== \"links\") {\n return base satisfies EventScheduleDefinition\n }\n\n Object.defineProperty(base, \"where\", {\n enumerable: false,\n value(callback: (event: RuntimeEventSchedulePredicateContext) => EventScheduleCondition) {\n const condition = callback(createPredicateContext(source))\n if (!condition || condition.kind !== \"becomesTrue\") {\n throw new ScheduleValidationError(\n \"Schedule condition must be built from the event DSL.\"\n )\n }\n assertPredicateShape(condition.predicate, {\n subject: \"Schedule\",\n createError: (message) => new ScheduleValidationError(message),\n })\n\n return {\n ...base,\n trigger: {\n ...base.trigger,\n condition,\n },\n } satisfies EventScheduleDefinition\n },\n })\n\n return base\n },\n } as ScheduleBuilder<string>\n}\n",
9
+ "import { buildEventSelectorPredicate, type EventSelectorSpec } from \"../events/selectors\"\nimport type { DomainEvent, PropertyChange, PropertyChangeMap } from \"../events/types\"\nimport { evaluatePredicate } from \"../predicates\"\nimport type { EventScheduleConditionScope, EventScheduleTriggerDefinition } from \"./types\"\n\nexport type RuntimeEventScheduleContext = Readonly<Record<string, unknown>>\n\nexport interface RuntimeEventScheduleDefinition {\n readonly kind: \"schedule\"\n readonly id: string\n readonly trigger: EventScheduleTriggerDefinition<EventSelectorSpec<unknown>>\n}\n\nexport interface EventScheduleEvaluationResult<TEvent = unknown> {\n readonly schedule: RuntimeEventScheduleDefinition\n readonly event: TEvent\n}\n\nexport function eventScheduleSubscribedEventTypes(\n schedule: RuntimeEventScheduleDefinition\n): readonly DomainEvent[\"type\"][] {\n return schedule.trigger.source.types ?? []\n}\n\nexport function evaluateEventSchedule(\n schedule: RuntimeEventScheduleDefinition,\n event: DomainEvent\n): EventScheduleEvaluationResult | null {\n if (!buildEventSelectorPredicate(schedule.trigger.source)(event)) {\n return null\n }\n\n const eventContext = buildEventScheduleContext(event)\n if (!eventContext) {\n return null\n }\n\n const condition = schedule.trigger.condition\n if (!condition) {\n return {\n schedule,\n event: eventContext,\n }\n }\n\n const afterProperties = propertiesForScope(event, condition.scope)\n const fields = fieldsForEvent(event)\n if (!evaluatePredicate(condition.predicate, { properties: afterProperties, fields })) {\n return null\n }\n\n if (isUpdateEvent(event)) {\n const beforeProperties = previousProperties(afterProperties, event.payload.propertyChanges)\n if (evaluatePredicate(condition.predicate, { properties: beforeProperties, fields })) {\n return null\n }\n }\n\n return {\n schedule,\n event: eventContext,\n }\n}\n\nexport function buildEventScheduleContext(event: DomainEvent): RuntimeEventScheduleContext | null {\n switch (event.type) {\n case \"object.created\":\n case \"object.updated\":\n case \"object.deleted\":\n return {\n object: {\n objectTypeId: event.payload.objectTypeId,\n primaryId: event.payload.primaryId,\n p: currentProperties(event),\n },\n }\n case \"link.created\":\n case \"link.updated\":\n case \"link.deleted\":\n return {\n source: {\n objectTypeId: event.payload.sourceTypeId,\n primaryId: event.payload.sourceId,\n },\n target: {\n objectTypeId: event.payload.targetTypeId,\n primaryId: event.payload.targetId,\n },\n link: {\n id: event.payload.linkId,\n p: currentProperties(event),\n },\n }\n case \"rule.triggered\":\n case \"rule.resolved\":\n return {\n ruleId: event.payload.ruleId,\n subject: {\n objectTypeId: event.payload.subject.objectTypeId,\n primaryId: event.payload.subject.primaryId,\n },\n }\n case \"action.requested\":\n return {\n actionId: event.payload.actionId,\n runId: event.payload.runId,\n ...actionSubjectContext(event.payload.subject),\n params: { ...event.payload.params },\n }\n case \"action.completed\":\n return {\n actionId: event.payload.actionId,\n runId: event.payload.runId,\n ...actionSubjectContext(event.payload.subject),\n }\n case \"action.failed\":\n return {\n actionId: event.payload.actionId,\n runId: event.payload.runId,\n ...actionSubjectContext(event.payload.subject),\n error: event.payload.error,\n }\n case \"dataset.version.committed\":\n return { ...event.payload }\n case \"sync.run.finished\":\n return { ...event.payload }\n case \"pipeline.run.finished\":\n return { ...event.payload }\n default:\n return null\n }\n}\n\nfunction actionSubjectContext(subject: {\n readonly kind: \"none\" | \"object\"\n readonly objectTypeId?: string\n readonly primaryId?: string\n}): { readonly subject?: { readonly objectTypeId: string; readonly primaryId: string } } {\n if (\n subject.kind !== \"object\" ||\n subject.objectTypeId === undefined ||\n subject.primaryId === undefined\n ) {\n return {}\n }\n\n return {\n subject: {\n objectTypeId: subject.objectTypeId,\n primaryId: subject.primaryId,\n },\n }\n}\n\nfunction fieldsForEvent(event: DomainEvent): Readonly<Record<string, unknown>> {\n if (event.topic !== \"links\") {\n return {}\n }\n\n return {\n \"target.objectTypeId\": event.payload.targetTypeId,\n \"target.primaryId\": event.payload.targetId,\n }\n}\n\nfunction propertiesForScope(\n event: DomainEvent,\n scope: EventScheduleConditionScope\n): Readonly<Record<string, unknown>> {\n if (scope === \"event.object\" && event.topic !== \"objects\") {\n return {}\n }\n\n if (scope === \"event.link\" && event.topic !== \"links\") {\n return {}\n }\n\n return currentProperties(event)\n}\n\nfunction currentProperties(event: DomainEvent): Readonly<Record<string, unknown>> {\n const payload = event.payload\n if (payload && typeof payload === \"object\" && \"properties\" in payload) {\n return { ...((payload as { properties?: Record<string, unknown> }).properties ?? {}) }\n }\n\n if (payload && typeof payload === \"object\" && \"propertyChanges\" in payload) {\n return propertiesFromChanges(\n (payload as { propertyChanges: PropertyChangeMap }).propertyChanges,\n \"after\"\n )\n }\n\n return {}\n}\n\nfunction previousProperties(\n afterProperties: Readonly<Record<string, unknown>>,\n changes: PropertyChangeMap\n): Readonly<Record<string, unknown>> {\n const before: Record<string, unknown> = { ...afterProperties }\n\n for (const [propertyId, change] of Object.entries(changes)) {\n if (change.operation === \"created\") {\n delete before[propertyId]\n continue\n }\n before[propertyId] = change.before\n }\n\n return before\n}\n\nfunction propertiesFromChanges(\n changes: PropertyChangeMap,\n side: \"before\" | \"after\"\n): Readonly<Record<string, unknown>> {\n const properties: Record<string, unknown> = {}\n\n for (const [propertyId, change] of Object.entries(changes)) {\n const value = propertyChangeValue(change, side)\n if (value !== undefined) {\n properties[propertyId] = value\n }\n }\n\n return properties\n}\n\nfunction propertyChangeValue(change: PropertyChange, side: \"before\" | \"after\"): unknown {\n if (side === \"before\") {\n return change.operation === \"created\" ? undefined : change.before\n }\n return change.after\n}\n\nfunction isUpdateEvent(\n event: DomainEvent\n): event is Extract<DomainEvent, { type: \"object.updated\" | \"link.updated\" }> {\n return event.type === \"object.updated\" || event.type === \"link.updated\"\n}\n",
10
+ "import type {\n EventSelectorSpec,\n InferEventSelectorContext,\n InferEventSelectorEvent,\n LinkEventSelectorContext,\n ObjectEventSelectorContext,\n} from \"../events/selectors\"\nimport type { LinkToken, ObjectTypeWithTokens, Property, PropertyToken } from \"../ontology\"\nimport type {\n FieldPredicate,\n Predicate,\n PropertyPredicate,\n PropertyPredicateBuilder,\n} from \"../predicates\"\n\ndeclare const scheduleEventType: unique symbol\n\nexport interface CronScheduleTriggerDefinition {\n readonly type: \"cron\"\n readonly expression: string\n readonly timezone?: string\n}\n\nexport interface EventScheduleTriggerDefinition<\n TSelector extends EventSelectorSpec<unknown> = EventSelectorSpec,\n> {\n readonly type: \"event\"\n readonly source: TSelector\n readonly condition?: EventScheduleCondition\n}\n\nexport type ScheduleTriggerDefinition =\n | CronScheduleTriggerDefinition\n | EventScheduleTriggerDefinition\n\n/** Internal reference stored by definitions that run from a named schedule. */\nexport interface ScheduleReference {\n readonly type: \"schedule\"\n readonly scheduleId: string\n}\n\nexport function isScheduleReference(value: unknown): value is ScheduleReference {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"type\" in value &&\n value.type === \"schedule\" &&\n \"scheduleId\" in value &&\n typeof value.scheduleId === \"string\" &&\n value.scheduleId.trim().length > 0\n )\n}\n\n/** Inert, reusable definition of when work should run. */\nexport interface ScheduleDefinition<TId extends string = string, TEvent = unknown> {\n readonly [scheduleEventType]?: TEvent\n readonly kind: \"schedule\"\n readonly id: TId\n readonly trigger: ScheduleTriggerDefinition\n}\n\nexport type CronScheduleDefinition<TId extends string = string> = ScheduleDefinition<TId, never> & {\n readonly trigger: CronScheduleTriggerDefinition\n}\n\nexport type EventScheduleDefinition<\n TId extends string = string,\n TSelector extends EventSelectorSpec<unknown> = EventSelectorSpec,\n> = ScheduleDefinition<TId, InferEventSelectorEvent<TSelector>> & {\n readonly trigger: EventScheduleTriggerDefinition<TSelector>\n}\n\nexport type ScheduleDefinitionForEvent<TEvent = unknown> = ScheduleDefinition<string, TEvent> & {\n readonly trigger: EventScheduleTriggerDefinition\n}\n\nexport type InferScheduleEvent<TSchedule> = TSchedule extends {\n readonly [scheduleEventType]?: infer TEvent\n}\n ? NonNullable<TEvent>\n : never\n\nexport interface CronScheduleBuilder<TId extends string = string> {\n cron(expression: string, options?: { timezone?: string }): CronScheduleDefinition<TId>\n}\n\nexport interface EventScheduleBuilder<TId extends string = string> {\n on<const TSelector extends EventSelectorSpec<unknown>>(\n selector: TSelector\n ): EventScheduleSourceBuilder<TId, TSelector>\n}\n\nexport interface ScheduleBuilder<TId extends string = string>\n extends CronScheduleBuilder<TId>,\n EventScheduleBuilder<TId> {}\n\nexport type EventScheduleSourceBuilder<\n TId extends string,\n TSelector extends EventSelectorSpec<unknown>,\n> =\n InferEventSelectorContext<TSelector> extends ObjectEventSelectorContext | LinkEventSelectorContext\n ? EventScheduleWhereBuilder<TId, TSelector>\n : EventScheduleDefinition<TId, TSelector>\n\nexport type EventScheduleWhereBuilder<\n TId extends string,\n TSelector extends EventSelectorSpec<unknown>,\n> = EventScheduleDefinition<TId, TSelector> & {\n where(\n predicate: (\n event: EventSchedulePredicateContext<InferEventSelectorContext<TSelector>>\n ) => EventScheduleCondition\n ): EventScheduleDefinition<TId, TSelector>\n}\n\nexport type EventScheduleConditionScope = \"event.object\" | \"event.link\"\n\nexport interface EventScheduleCondition {\n readonly kind: \"becomesTrue\"\n readonly scope: EventScheduleConditionScope\n readonly predicate: Predicate\n}\n\nexport type EventScheduleScopedPredicate = EventScheduleCondition\n\nexport type EventSchedulePredicateContext<TContext> =\n TContext extends ObjectEventSelectorContext<infer TObjectType>\n ? { readonly object: EventScheduleObjectPredicateSubject<TObjectType> }\n : TContext extends LinkEventSelectorContext<infer TObjectType, infer TLink>\n ? {\n readonly link: EventScheduleLinkPredicateSubject<TObjectType, TLink>\n readonly target: EventScheduleTargetPredicateSubject<TLink>\n }\n : never\n\nexport type EventScheduleObjectPredicateSubject<TObjectType extends ObjectTypeWithTokens> =\n EventSchedulePredicateSubject<\"event.object\", TObjectType[\"p\"]>\n\nexport type EventScheduleLinkPredicateSubject<\n _TObjectType extends ObjectTypeWithTokens,\n TLink extends LinkToken,\n> = EventSchedulePredicateSubject<\"event.link\", LinkPropertyTokens<TLink>>\n\nexport type EventScheduleTargetPredicateSubject<TLink extends LinkToken> = {\n is(\n objectType: ObjectTypeWithTokens & { readonly id: AllowedTargetTypeId<TLink> }\n ): EventScheduleConditionFor<\"event.link\", FieldPredicate>\n readonly id: {\n eq(value: string): EventScheduleConditionFor<\"event.link\", FieldPredicate>\n }\n}\n\nexport type EventSchedulePredicateSubject<\n TScope extends EventScheduleConditionScope,\n TTokens extends Record<string, PropertyToken>,\n> = {\n readonly p: {\n readonly [TPropertyId in keyof TTokens]: TTokens[TPropertyId] extends PropertyToken<\n string,\n string,\n infer TProperty\n >\n ? EventSchedulePropertyPredicateBuilder<TScope, TProperty>\n : never\n }\n all(...predicates: EventScheduleCondition[]): EventScheduleCondition\n any(...predicates: EventScheduleCondition[]): EventScheduleCondition\n not(predicate: EventScheduleCondition): EventScheduleCondition\n}\n\nexport type EventSchedulePropertyPredicateBuilder<\n TScope extends EventScheduleConditionScope = EventScheduleConditionScope,\n TProperty extends Property = Property,\n> = PropertyPredicateBuilder<TProperty, EventScheduleConditionFor<TScope>>\n\nexport type EventScheduleConditionFor<\n TScope extends EventScheduleConditionScope,\n TPredicate extends Predicate = PropertyPredicate,\n> = EventScheduleCondition & {\n readonly scope: TScope\n readonly predicate: TPredicate\n}\n\ntype LinkPropertyTokens<TLink extends LinkToken> =\n NonNullable<TLink[\"link\"][\"properties\"]> extends readonly Property[]\n ? {\n readonly [P in NonNullable<TLink[\"link\"][\"properties\"]>[number] as P[\"id\"]]: PropertyToken<\n TLink[\"objectTypeId\"],\n P[\"id\"],\n P\n >\n }\n : Record<never, never>\n\ntype ResolveTargetTypeId<TTarget> = TTarget extends readonly string[]\n ? TTarget[number]\n : TTarget extends string\n ? TTarget\n : string\n\ntype AllowedTargetTypeId<TLink extends LinkToken> =\n \"*\" extends ResolveTargetTypeId<TLink[\"targetObjectTypeId\"]>\n ? string\n : ResolveTargetTypeId<TLink[\"targetObjectTypeId\"]>\n",
11
+ "import type { EventSelectorSpec } from \"../events/selectors\"\nimport type { ObjectLink, ObjectType, OntologyRegistry } from \"../ontology\"\nimport { assertPredicateShape, type Predicate } from \"../predicates\"\nimport { createCronMatcher } from \"./cron\"\nimport { ScheduleValidationError } from \"./errors\"\nimport type { EventScheduleCondition, EventScheduleDefinition, ScheduleDefinition } from \"./types\"\n\nconst objectEventTypes = new Set([\"object.created\", \"object.updated\", \"object.deleted\"])\nconst linkEventTypes = new Set([\"link.created\", \"link.updated\", \"link.deleted\"])\nconst ruleEventTypes = new Set([\"rule.triggered\", \"rule.resolved\"])\nconst actionEventTypes = new Set([\"action.requested\", \"action.completed\", \"action.failed\"])\nconst datasetEventTypes = new Set([\"dataset.version.committed\"])\nconst syncEventTypes = new Set([\"sync.run.finished\"])\nconst pipelineEventTypes = new Set([\"pipeline.run.finished\"])\nconst runStatuses = new Set([\"succeeded\", \"failed\", \"cancelled\"])\nconst linkIdentityFields = new Set([\"target.objectTypeId\", \"target.primaryId\"])\n\nexport interface ValidateSchedulesAtStartupOptions {\n readonly registeredRuleIds?: ReadonlySet<string>\n readonly registeredActionIds?: ReadonlySet<string>\n readonly registeredDatasetIds?: ReadonlySet<string>\n readonly registeredSyncIds?: ReadonlySet<string>\n readonly registeredPipelineIds?: ReadonlySet<string>\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction assertNonEmptyString(\n value: unknown,\n field: string,\n createError: (message: string) => Error\n): asserts value is string {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw createError(`${field} must not be empty.`)\n }\n}\n\nexport function assertScheduleDefinition(\n value: unknown,\n createError: (message: string) => Error = (message) => new ScheduleValidationError(message)\n): asserts value is ScheduleDefinition {\n if (!isRecord(value)) throw createError(\"Schedule definition must be an object.\")\n if (value.kind !== \"schedule\") {\n throw createError(\"Schedule definition kind must be 'schedule'.\")\n }\n\n assertNonEmptyString(value.id, \"Schedule id\", createError)\n if (!isRecord(value.trigger))\n throw createError(`Schedule \"${value.id}\" trigger must be an object.`)\n\n if (value.trigger.type === \"cron\") {\n assertNonEmptyString(\n value.trigger.expression,\n `Schedule \"${value.id}\" cron expression`,\n createError\n )\n if (value.trigger.timezone !== undefined && typeof value.trigger.timezone !== \"string\") {\n throw createError(`Schedule \"${value.id}\" timezone must be a string.`)\n }\n return\n }\n\n if (value.trigger.type !== \"event\") {\n throw createError(`Schedule \"${value.id}\" trigger type is unsupported.`)\n }\n\n assertEventSourceShape(value.trigger.source, `Schedule \"${value.id}\" event source`, createError)\n if (value.trigger.condition !== undefined) {\n assertEventConditionShape(\n value.trigger.condition,\n `Schedule \"${value.id}\" condition`,\n createError\n )\n }\n}\n\nexport function isScheduleDefinition(value: unknown): value is ScheduleDefinition {\n try {\n assertScheduleDefinition(value, (message) => new Error(message))\n return true\n } catch {\n return false\n }\n}\n\nexport function validateSchedulesAtStartup(\n schedules: readonly ScheduleDefinition[],\n ontology: OntologyRegistry,\n options: ValidateSchedulesAtStartupOptions = {}\n): void {\n const seenIds = new Set<string>()\n\n for (const schedule of schedules) {\n assertScheduleDefinition(schedule)\n if (seenIds.has(schedule.id)) {\n throw new ScheduleValidationError(`Duplicate schedule id: ${schedule.id}`)\n }\n seenIds.add(schedule.id)\n\n if (schedule.trigger.type === \"cron\") {\n createCronMatcher(schedule.trigger.expression)\n if (schedule.trigger.timezone !== undefined) validateTimezone(schedule.trigger.timezone)\n continue\n }\n\n validateEventSchedule(schedule as EventScheduleDefinition, ontology, options)\n }\n}\n\nfunction validateTimezone(timezone: string): void {\n try {\n Intl.DateTimeFormat(undefined, { timeZone: timezone })\n } catch {\n throw new ScheduleValidationError(`Invalid timezone '${timezone}'.`)\n }\n}\n\nfunction assertEventSourceShape(\n value: unknown,\n path: string,\n createError: (message: string) => Error\n): asserts value is EventSelectorSpec {\n if (!isRecord(value)) throw createError(`${path} must be an event selector.`)\n if (!Array.isArray(value.types) || value.types.length === 0) {\n throw createError(`${path} must select at least one event type.`)\n }\n\n switch (value.topic) {\n case \"objects\":\n assertNonEmptyString(value.objectTypeId, `${path} objectTypeId`, createError)\n return\n case \"links\":\n assertNonEmptyString(value.objectTypeId, `${path} objectTypeId`, createError)\n assertNonEmptyString(value.linkId, `${path} linkId`, createError)\n return\n case \"rules\":\n assertNonEmptyString(value.ruleId, `${path} ruleId`, createError)\n return\n case \"actions\":\n assertNonEmptyString(value.actionId, `${path} actionId`, createError)\n return\n case \"datasets\":\n assertNonEmptyString(value.datasetId, `${path} datasetId`, createError)\n return\n case \"syncs\":\n assertNonEmptyString(value.syncId, `${path} syncId`, createError)\n assertRunStatus(value.runStatus, path, createError)\n return\n case \"pipelines\":\n assertNonEmptyString(value.pipelineId, `${path} pipelineId`, createError)\n assertRunStatus(value.runStatus, path, createError)\n return\n default:\n throw createError(\n `${path} must select object, link, rule, action, dataset, sync, or pipeline events.`\n )\n }\n}\n\nfunction assertRunStatus(\n value: unknown,\n path: string,\n createError: (message: string) => Error\n): void {\n if (typeof value !== \"string\" || !runStatuses.has(value)) {\n throw createError(`${path} must select succeeded, failed, or cancelled runs.`)\n }\n}\n\nfunction assertEventConditionShape(\n value: unknown,\n path: string,\n createError: (message: string) => Error\n): asserts value is EventScheduleCondition {\n if (!isRecord(value)) throw createError(`${path} must be an object.`)\n if (value.kind !== \"becomesTrue\") throw createError(`${path} kind must be 'becomesTrue'.`)\n if (value.scope !== \"event.object\" && value.scope !== \"event.link\") {\n throw createError(`${path} scope must be 'event.object' or 'event.link'.`)\n }\n assertPredicateShape(value.predicate, { subject: \"Schedule\", createError })\n}\n\nfunction validateEventSchedule(\n schedule: EventScheduleDefinition,\n ontology: OntologyRegistry,\n options: ValidateSchedulesAtStartupOptions\n): void {\n const { source } = schedule.trigger\n\n switch (source.topic) {\n case \"objects\":\n case \"links\": {\n const objectTypeId = source.objectTypeId\n const objectType = objectTypeId ? ontology.getObjectTypeById(objectTypeId) : undefined\n if (!objectType) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown object type \"${objectTypeId}\".`\n )\n }\n if (source.topic === \"objects\") validateObjectSource(schedule, objectType)\n else validateLinkSource(schedule, objectType)\n return\n }\n case \"rules\":\n validateRegisteredSource(\n schedule,\n source.ruleId,\n options.registeredRuleIds,\n ruleEventTypes,\n \"rule\"\n )\n return\n case \"actions\":\n validateRegisteredSource(\n schedule,\n source.actionId,\n options.registeredActionIds,\n actionEventTypes,\n \"action\"\n )\n return\n case \"datasets\":\n validateRegisteredSource(\n schedule,\n source.datasetId,\n options.registeredDatasetIds,\n datasetEventTypes,\n \"dataset\"\n )\n return\n case \"syncs\":\n validateRegisteredSource(\n schedule,\n source.syncId,\n options.registeredSyncIds,\n syncEventTypes,\n \"sync\"\n )\n return\n case \"pipelines\":\n validateRegisteredSource(\n schedule,\n source.pipelineId,\n options.registeredPipelineIds,\n pipelineEventTypes,\n \"pipeline\"\n )\n return\n }\n}\n\nfunction validateObjectSource(schedule: EventScheduleDefinition, objectType: ObjectType): void {\n validateEventTypes(schedule, objectEventTypes, \"object\")\n const propertyIds = new Set(objectType.properties.map((property) => property.id))\n validateSelectorProperty(schedule, propertyIds)\n\n const condition = schedule.trigger.condition\n if (!condition) return\n if (condition.scope !== \"event.object\") {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": object event sources can only use event.object conditions.`\n )\n }\n validateConditionPredicate(schedule, propertyIds, condition.predicate)\n}\n\nfunction validateLinkSource(schedule: EventScheduleDefinition, objectType: ObjectType): void {\n validateEventTypes(schedule, linkEventTypes, \"link\")\n const source = schedule.trigger.source\n const link = objectType.links.find((candidate) => candidate.id === source.linkId)\n if (!link) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown link \"${source.linkId}\" on object type \"${objectType.id}\".`\n )\n }\n\n const propertyIds = new Set((link.properties ?? []).map((property) => property.id))\n validateSelectorProperty(schedule, propertyIds)\n\n const condition = schedule.trigger.condition\n if (!condition) return\n if (condition.scope !== \"event.link\") {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": link event sources can only use event.link conditions.`\n )\n }\n validateConditionPredicate(schedule, propertyIds, condition.predicate, link)\n}\n\nfunction validateRegisteredSource(\n schedule: EventScheduleDefinition,\n sourceId: string | undefined,\n registeredIds: ReadonlySet<string> | undefined,\n supportedTypes: ReadonlySet<string>,\n sourceKind: \"rule\" | \"action\" | \"dataset\" | \"sync\" | \"pipeline\"\n): void {\n validateEventTypes(schedule, supportedTypes, sourceKind)\n if (!registeredIds?.has(sourceId ?? \"\")) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown ${sourceKind} \"${sourceId}\".`\n )\n }\n if (schedule.trigger.condition) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": ${sourceKind} event sources do not support .where() conditions.`\n )\n }\n}\n\nfunction validateEventTypes(\n schedule: EventScheduleDefinition,\n supportedTypes: ReadonlySet<string>,\n sourceKind: string\n): void {\n for (const type of schedule.trigger.source.types ?? []) {\n if (!supportedTypes.has(type)) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unsupported ${sourceKind} event type \"${type}\".`\n )\n }\n }\n}\n\nfunction validateSelectorProperty(\n schedule: EventScheduleDefinition,\n propertyIds: ReadonlySet<string>\n): void {\n const propertyId = schedule.trigger.source.propertyId\n if (propertyId !== undefined && !propertyIds.has(propertyId)) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown selector property \"${propertyId}\".`\n )\n }\n}\n\nfunction validateConditionPredicate(\n schedule: EventScheduleDefinition,\n propertyIds: ReadonlySet<string>,\n predicate: Predicate,\n link?: ObjectLink\n): void {\n if (predicate.kind === \"all\" || predicate.kind === \"any\") {\n if (predicate.predicates.length === 0) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": ${predicate.kind} predicate must contain at least one predicate.`\n )\n }\n for (const child of predicate.predicates) {\n validateConditionPredicate(schedule, propertyIds, child, link)\n }\n return\n }\n\n if (predicate.kind === \"not\") {\n validateConditionPredicate(schedule, propertyIds, predicate.predicate, link)\n return\n }\n\n if (predicate.kind === \"link\") {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": link predicates are not supported in event conditions.`\n )\n }\n\n if (predicate.kind === \"field\") {\n if (!link || !linkIdentityFields.has(predicate.field)) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unsupported event field predicate \"${predicate.field}\".`\n )\n }\n if (typeof predicate.value !== \"string\" || !predicate.value.trim()) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": event field \"${predicate.field}\" must compare against a non-empty string.`\n )\n }\n if (predicate.field === \"target.objectTypeId\") {\n const targetIds = Array.isArray(link.targetObjectTypeId)\n ? link.targetObjectTypeId\n : [link.targetObjectTypeId]\n if (!targetIds.includes(\"*\") && !targetIds.includes(predicate.value)) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": object type \"${predicate.value}\" is not a target of link \"${link.id}\".`\n )\n }\n }\n return\n }\n\n if (!propertyIds.has(predicate.propertyId)) {\n const source = schedule.trigger.source\n const subject = link ? `link \"${link.id}\"` : `object type \"${source.objectTypeId}\"`\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown property \"${predicate.propertyId}\" on ${subject}.`\n )\n }\n}\n"
12
+ ],
13
+ "mappings": "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",
14
+ "debugId": "14067F7BB3ED997964756E2164756E21",
15
+ "names": []
16
+ }
@@ -0,0 +1,27 @@
1
+ // @bun
2
+ import {
3
+ findPrimitiveRunExecution
4
+ } from "./chunk-t9xghkva.js";
5
+
6
+ // src/storage/sync-runs/errors.ts
7
+ class SyncRunError extends Error {
8
+ name = "SyncRunError";
9
+ }
10
+
11
+ // src/storage/sync-runs/provider.ts
12
+ async function assertSyncRunExecution(input) {
13
+ const execution = await findPrimitiveRunExecution({
14
+ executions: input.executions,
15
+ projectId: input.projectId,
16
+ executionId: input.executionId,
17
+ primitive: { kind: "sync", id: input.syncId, runId: input.runId },
18
+ sourceTypes: ["execution", "schedule", "event"]
19
+ });
20
+ if (!execution) {
21
+ throw new SyncRunError(`[Sixb] Execution '${input.executionId}' does not authorize Sync run '${input.runId}'.`);
22
+ }
23
+ }
24
+
25
+ export { SyncRunError, assertSyncRunExecution };
26
+
27
+ //# debugId=DEBD44568EBB23D064756E2164756E21
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/storage/sync-runs/errors.ts", "../src/storage/sync-runs/provider.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Base error for sync-run storage operations. Callers can use this to catch\n * domain-specific failures without relying on message text.\n */\nexport class SyncRunError extends Error {\n readonly name = \"SyncRunError\"\n}\n",
6
+ "import type { ExecutionStorage } from \"../executions\"\nimport { findPrimitiveRunExecution } from \"../executions/run-link\"\nimport { SyncRunError } from \"./errors\"\n\n/** Validate the semantic link between a durable Sync run and its immutable execution. */\nexport async function assertSyncRunExecution(input: {\n readonly executions: ExecutionStorage\n readonly projectId: string\n readonly executionId: string\n readonly runId: string\n readonly syncId: string\n}): Promise<void> {\n const execution = await findPrimitiveRunExecution({\n executions: input.executions,\n projectId: input.projectId,\n executionId: input.executionId,\n primitive: { kind: \"sync\", id: input.syncId, runId: input.runId },\n sourceTypes: [\"execution\", \"schedule\", \"event\"],\n })\n if (!execution) {\n throw new SyncRunError(\n `[Sixb] Execution '${input.executionId}' does not authorize Sync run '${input.runId}'.`\n )\n }\n}\n"
7
+ ],
8
+ "mappings": ";;;;;;AAIO,MAAM,qBAAqB,MAAM;AAAA,EAC7B,OAAO;AAClB;;;ACDA,eAAsB,sBAAsB,CAAC,OAM3B;AAAA,EAChB,MAAM,YAAY,MAAM,0BAA0B;AAAA,IAChD,YAAY,MAAM;AAAA,IAClB,WAAW,MAAM;AAAA,IACjB,aAAa,MAAM;AAAA,IACnB,WAAW,EAAE,MAAM,QAAQ,IAAI,MAAM,QAAQ,OAAO,MAAM,MAAM;AAAA,IAChE,aAAa,CAAC,aAAa,YAAY,OAAO;AAAA,EAChD,CAAC;AAAA,EACD,IAAI,CAAC,WAAW;AAAA,IACd,MAAM,IAAI,aACR,qBAAqB,MAAM,6CAA6C,MAAM,SAChF;AAAA,EACF;AAAA;",
9
+ "debugId": "DEBD44568EBB23D064756E2164756E21",
10
+ "names": []
11
+ }
@@ -2,7 +2,7 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/http/api-routes.ts", "../src/http/route-pattern.ts"],
4
4
  "sourcesContent": [
5
- "/**\n * The single source of truth for the Sixb HTTP API surface and its auth capabilities.\n *\n * Two views are derived from this one table:\n * - `AGENT_API_ROUTES` (@sixb/core agent gateway) = the `agentApi` rows, projected to {method, path}.\n * - `ACCESS_TOKEN_ROUTES` (@sixb/server bearer boundary) = the `accessToken` rows, with operationId.\n *\n * Because both views are projections of this table, the agent gateway allow-list is structurally a\n * subset of the bearer boundary — the invariant below enforces `agentApi ⇒ accessToken` at load\n * time. This table lives in @sixb/core (never @sixb/server) because @sixb/server depends on core,\n * not the reverse; the operationId strings are opaque here.\n */\nexport interface SixbApiRoute {\n /** OpenAPI operationId — the server keys its bearer security requirement off this. */\n readonly operationId: string\n readonly method: string\n readonly path: string\n /** The route accepts a bearer access token (enforced by the server access-token boundary). */\n readonly accessToken: boolean\n /** The route is proxied by the agent API gateway (a strict subset of the accessToken routes). */\n readonly agentApi: boolean\n}\n\nexport const SIXB_API_ROUTES: readonly SixbApiRoute[] = [\n {\n operationId: \"getProjectInfo\",\n method: \"GET\",\n path: \"/api/project\",\n accessToken: true,\n agentApi: true,\n },\n // Token and service-account management is bearer-capable so the CLI can authenticate with a\n // personal access token. It is NOT exposed to agents. The runtime still confines every operation\n // to the caller's own groups, and service-account tokens are rejected (only user principals may\n // manage credentials).\n {\n operationId: \"getAuthAccessManagementOptions\",\n method: \"GET\",\n path: \"/api/auth/access-management-options\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"listAuthAccessTokens\",\n method: \"GET\",\n path: \"/api/auth/access-tokens\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"createAuthPersonalAccessToken\",\n method: \"POST\",\n path: \"/api/auth/access-tokens\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"revokeAuthAccessToken\",\n method: \"POST\",\n path: \"/api/auth/access-tokens/:tokenId/revoke\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"listAuthServiceAccounts\",\n method: \"GET\",\n path: \"/api/auth/service-accounts\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"createAuthServiceAccount\",\n method: \"POST\",\n path: \"/api/auth/service-accounts\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"disableAuthServiceAccount\",\n method: \"POST\",\n path: \"/api/auth/service-accounts/:serviceAccountId/disable\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"listAuthServiceAccountAccessTokens\",\n method: \"GET\",\n path: \"/api/auth/service-accounts/:serviceAccountId/access-tokens\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"createAuthServiceAccountAccessToken\",\n method: \"POST\",\n path: \"/api/auth/service-accounts/:serviceAccountId/access-tokens\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"revokeAuthServiceAccountAccessToken\",\n method: \"POST\",\n path: \"/api/auth/service-accounts/:serviceAccountId/access-tokens/:tokenId/revoke\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"listObjectTypes\",\n method: \"GET\",\n path: \"/api/object-types\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getObjectType\",\n method: \"GET\",\n path: \"/api/object-types/:objectTypeId\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"listObjects\",\n method: \"GET\",\n path: \"/api/objects\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"queryObjects\",\n method: \"POST\",\n path: \"/api/objects/query\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"countObjects\",\n method: \"POST\",\n path: \"/api/objects/query/count\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"existsObjects\",\n method: \"POST\",\n path: \"/api/objects/query/exists\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"facetObjects\",\n method: \"POST\",\n path: \"/api/objects/query/facets\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getObject\",\n method: \"GET\",\n path: \"/api/objects/:objectTypeId/:objectId\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"listObjectLinks\",\n method: \"GET\",\n path: \"/api/objects/:objectTypeId/:objectId/links\",\n accessToken: true,\n agentApi: true,\n },\n // The four write routes. Bearer-capable because they now enforce scoped authorization\n // (`edit:object` / `append:telemetry`), which is exactly the precondition this table's rule states.\n // NOT agent-proxied: letting an agent turn write objects on its own is a separate decision, and\n // the gateway already hands routes a scoped runtime, so flipping `agentApi` later needs no\n // authorization work — only that decision.\n {\n operationId: \"upsertObject\",\n method: \"PUT\",\n path: \"/api/objects/:objectTypeId/:objectId\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"upsertObjectLink\",\n method: \"PUT\",\n path: \"/api/objects/:objectTypeId/:objectId/links/:linkId\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"removeObjectLink\",\n method: \"DELETE\",\n path: \"/api/objects/:objectTypeId/:objectId/links/:linkId\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"appendTelemetry\",\n method: \"POST\",\n path: \"/api/objects/:objectTypeId/:objectId/telemetry/:propertyId\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"getBulkTelemetryHistory\",\n method: \"POST\",\n path: \"/api/telemetry/history\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getTelemetryHistory\",\n method: \"GET\",\n path: \"/api/objects/:objectTypeId/:objectId/telemetry/:propertyId/history\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getLatestTelemetry\",\n method: \"GET\",\n path: \"/api/objects/:objectTypeId/:objectId/telemetry/:propertyId/latest\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getObjectFileContent\",\n method: \"GET\",\n path: \"/api/objects/:objectTypeId/:objectId/files/content\",\n accessToken: true,\n agentApi: true,\n },\n {\n // Bearer-capable (CLI/programmatic existence + range probes) but NOT agent-proxied: the agent\n // API gateway only forwards GET/POST, and an agent gains nothing from HEAD over GET (a file's\n // size already travels in its FileRef). Keeping this agentApi:true would throw at gateway\n // registration (\"Unsupported agent API gateway method 'HEAD'\") and stop the server booting.\n operationId: \"headObjectFileContent\",\n method: \"HEAD\",\n path: \"/api/objects/:objectTypeId/:objectId/files/content\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"listActions\",\n method: \"GET\",\n path: \"/api/actions\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getAction\",\n method: \"GET\",\n path: \"/api/actions/:actionId\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"requestAction\",\n method: \"POST\",\n path: \"/api/actions/:actionId\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"uploadFileRaw\",\n method: \"POST\",\n path: \"/api/files\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"listActionRuns\",\n method: \"GET\",\n path: \"/api/action-runs\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getActionRun\",\n method: \"GET\",\n path: \"/api/action-runs/:runId\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getActionRunFileContent\",\n method: \"GET\",\n path: \"/api/action-runs/:runId/files/content\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"headActionRunFileContent\",\n method: \"HEAD\",\n path: \"/api/action-runs/:runId/files/content\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"listWorkflows\",\n method: \"GET\",\n path: \"/api/workflows\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getWorkflow\",\n method: \"GET\",\n path: \"/api/workflows/:workflowId\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"requestWorkflowRun\",\n method: \"POST\",\n path: \"/api/workflows/:workflowId/runs\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"listWorkflowRuns\",\n method: \"GET\",\n path: \"/api/workflow-runs\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getWorkflowRun\",\n method: \"GET\",\n path: \"/api/workflow-runs/:runId\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"cancelWorkflowRun\",\n method: \"POST\",\n path: \"/api/workflow-runs/:runId/cancel\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"getWorkflowAgentNodeExecution\",\n method: \"GET\",\n path: \"/api/workflow-runs/:runId/nodes/:nodeKey/agent-execution\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"getWorkflowRunFileContent\",\n method: \"GET\",\n path: \"/api/workflow-runs/:runId/files/content\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"headWorkflowRunFileContent\",\n method: \"HEAD\",\n path: \"/api/workflow-runs/:runId/files/content\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"getWorkflowNodeRunFileContent\",\n method: \"GET\",\n path: \"/api/workflow-runs/:runId/nodes/:nodeKey/files/content\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"headWorkflowNodeRunFileContent\",\n method: \"HEAD\",\n path: \"/api/workflow-runs/:runId/nodes/:nodeKey/files/content\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"getAgentMessageFileContent\",\n method: \"GET\",\n path: \"/api/agent-threads/:threadId/messages/:messageId/files/content\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"headAgentMessageFileContent\",\n method: \"HEAD\",\n path: \"/api/agent-threads/:threadId/messages/:messageId/files/content\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"searchObjects\",\n method: \"GET\",\n path: \"/api/objects/search\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"listEvents\",\n method: \"GET\",\n path: \"/api/events\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"listLogs\",\n method: \"GET\",\n path: \"/api/logs\",\n accessToken: true,\n agentApi: false,\n },\n]\n\n// Enforce the subset invariant at module load: a gateway-proxied route must also be a bearer route,\n// or the gateway would expose a surface the access-token boundary does not recognize.\nfor (const route of SIXB_API_ROUTES) {\n if (route.agentApi && !route.accessToken) {\n throw new Error(\n `[Sixb] agent API route '${route.method} ${route.path}' must also be an access-token route.`\n )\n }\n}\n",
5
+ "/**\n * The single source of truth for the Sixb HTTP API surface and its auth capabilities.\n *\n * Two views are derived from this one table:\n * - `AGENT_API_ROUTES` (@sixb/core agent gateway) = the `agentApi` rows, projected to {method, path}.\n * - `ACCESS_TOKEN_ROUTES` (@sixb/server bearer boundary) = the `accessToken` rows, with operationId.\n *\n * Because both views are projections of this table, the agent gateway allow-list is structurally a\n * subset of the bearer boundary — the invariant below enforces `agentApi ⇒ accessToken` at load\n * time. This table lives in @sixb/core (never @sixb/server) because @sixb/server depends on core,\n * not the reverse; the operationId strings are opaque here.\n */\nexport interface SixbApiRoute {\n /** OpenAPI operationId — the server keys its bearer security requirement off this. */\n readonly operationId: string\n readonly method: string\n readonly path: string\n /** The route accepts a bearer access token (enforced by the server access-token boundary). */\n readonly accessToken: boolean\n /** The route is proxied by the agent API gateway (a strict subset of the accessToken routes). */\n readonly agentApi: boolean\n}\n\nexport const SIXB_API_ROUTES: readonly SixbApiRoute[] = [\n {\n operationId: \"getProjectInfo\",\n method: \"GET\",\n path: \"/api/project\",\n accessToken: true,\n agentApi: true,\n },\n // Token and service-account management is bearer-capable so the CLI can authenticate with a\n // personal access token. It is NOT exposed to agents. The runtime still confines every operation\n // to the caller's own groups, and service-account tokens are rejected (only user principals may\n // manage credentials).\n {\n operationId: \"getAuthAccessManagementOptions\",\n method: \"GET\",\n path: \"/api/auth/access-management-options\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"listAuthAccessTokens\",\n method: \"GET\",\n path: \"/api/auth/access-tokens\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"createAuthPersonalAccessToken\",\n method: \"POST\",\n path: \"/api/auth/access-tokens\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"revokeAuthAccessToken\",\n method: \"POST\",\n path: \"/api/auth/access-tokens/:tokenId/revoke\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"listAuthServiceAccounts\",\n method: \"GET\",\n path: \"/api/auth/service-accounts\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"createAuthServiceAccount\",\n method: \"POST\",\n path: \"/api/auth/service-accounts\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"disableAuthServiceAccount\",\n method: \"POST\",\n path: \"/api/auth/service-accounts/:serviceAccountId/disable\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"listAuthServiceAccountAccessTokens\",\n method: \"GET\",\n path: \"/api/auth/service-accounts/:serviceAccountId/access-tokens\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"createAuthServiceAccountAccessToken\",\n method: \"POST\",\n path: \"/api/auth/service-accounts/:serviceAccountId/access-tokens\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"revokeAuthServiceAccountAccessToken\",\n method: \"POST\",\n path: \"/api/auth/service-accounts/:serviceAccountId/access-tokens/:tokenId/revoke\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"listObjectTypes\",\n method: \"GET\",\n path: \"/api/object-types\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getObjectType\",\n method: \"GET\",\n path: \"/api/object-types/:objectTypeId\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"listObjects\",\n method: \"GET\",\n path: \"/api/objects\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"queryObjects\",\n method: \"POST\",\n path: \"/api/objects/query\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"countObjects\",\n method: \"POST\",\n path: \"/api/objects/query/count\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"existsObjects\",\n method: \"POST\",\n path: \"/api/objects/query/exists\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"facetObjects\",\n method: \"POST\",\n path: \"/api/objects/query/facets\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getObject\",\n method: \"GET\",\n path: \"/api/objects/:objectTypeId/:objectId\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"listObjectLinks\",\n method: \"GET\",\n path: \"/api/objects/:objectTypeId/:objectId/links\",\n accessToken: true,\n agentApi: true,\n },\n // The four write routes. Bearer-capable because their execution facade enforces authorization\n // (`edit:object` / `append:telemetry`), which is exactly the precondition this table requires.\n // NOT agent-proxied: letting an agent turn write objects on its own is a separate decision, and\n // the gateway already hands routes an execution SDK, so flipping `agentApi` later needs no\n // authorization work — only that decision.\n {\n operationId: \"upsertObject\",\n method: \"PUT\",\n path: \"/api/objects/:objectTypeId/:objectId\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"upsertObjectLink\",\n method: \"PUT\",\n path: \"/api/objects/:objectTypeId/:objectId/links/:linkId\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"removeObjectLink\",\n method: \"DELETE\",\n path: \"/api/objects/:objectTypeId/:objectId/links/:linkId\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"appendTelemetry\",\n method: \"POST\",\n path: \"/api/objects/:objectTypeId/:objectId/telemetry/:propertyId\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"getBulkTelemetryHistory\",\n method: \"POST\",\n path: \"/api/telemetry/history\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getTelemetryHistory\",\n method: \"GET\",\n path: \"/api/objects/:objectTypeId/:objectId/telemetry/:propertyId/history\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getLatestTelemetry\",\n method: \"GET\",\n path: \"/api/objects/:objectTypeId/:objectId/telemetry/:propertyId/latest\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getObjectFileContent\",\n method: \"GET\",\n path: \"/api/objects/:objectTypeId/:objectId/files/content\",\n accessToken: true,\n agentApi: true,\n },\n {\n // Bearer-capable (CLI/programmatic existence + range probes) but NOT agent-proxied: the agent\n // API gateway only forwards GET/POST, and an agent gains nothing from HEAD over GET (a file's\n // size already travels in its FileRef). Keeping this agentApi:true would throw at gateway\n // registration (\"Unsupported agent API gateway method 'HEAD'\") and stop the server booting.\n operationId: \"headObjectFileContent\",\n method: \"HEAD\",\n path: \"/api/objects/:objectTypeId/:objectId/files/content\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"listActions\",\n method: \"GET\",\n path: \"/api/actions\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getAction\",\n method: \"GET\",\n path: \"/api/actions/:actionId\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"requestAction\",\n method: \"POST\",\n path: \"/api/actions/:actionId\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"uploadFileRaw\",\n method: \"POST\",\n path: \"/api/files\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"listActionRuns\",\n method: \"GET\",\n path: \"/api/action-runs\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getActionRun\",\n method: \"GET\",\n path: \"/api/action-runs/:runId\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getActionRunFileContent\",\n method: \"GET\",\n path: \"/api/action-runs/:runId/files/content\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"headActionRunFileContent\",\n method: \"HEAD\",\n path: \"/api/action-runs/:runId/files/content\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"listWorkflows\",\n method: \"GET\",\n path: \"/api/workflows\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getWorkflow\",\n method: \"GET\",\n path: \"/api/workflows/:workflowId\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"requestWorkflowRun\",\n method: \"POST\",\n path: \"/api/workflows/:workflowId/runs\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"listWorkflowRuns\",\n method: \"GET\",\n path: \"/api/workflow-runs\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"getWorkflowRun\",\n method: \"GET\",\n path: \"/api/workflow-runs/:runId\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"cancelWorkflowRun\",\n method: \"POST\",\n path: \"/api/workflow-runs/:runId/cancel\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"getWorkflowAgentNodeExecution\",\n method: \"GET\",\n path: \"/api/workflow-runs/:runId/nodes/:nodeKey/agent-execution\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"getWorkflowRunFileContent\",\n method: \"GET\",\n path: \"/api/workflow-runs/:runId/files/content\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"headWorkflowRunFileContent\",\n method: \"HEAD\",\n path: \"/api/workflow-runs/:runId/files/content\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"getWorkflowNodeRunFileContent\",\n method: \"GET\",\n path: \"/api/workflow-runs/:runId/nodes/:nodeKey/files/content\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"headWorkflowNodeRunFileContent\",\n method: \"HEAD\",\n path: \"/api/workflow-runs/:runId/nodes/:nodeKey/files/content\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"getAgentMessageFileContent\",\n method: \"GET\",\n path: \"/api/agent-threads/:threadId/messages/:messageId/files/content\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"headAgentMessageFileContent\",\n method: \"HEAD\",\n path: \"/api/agent-threads/:threadId/messages/:messageId/files/content\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"searchObjects\",\n method: \"GET\",\n path: \"/api/objects/search\",\n accessToken: true,\n agentApi: true,\n },\n {\n operationId: \"listEvents\",\n method: \"GET\",\n path: \"/api/events\",\n accessToken: true,\n agentApi: false,\n },\n {\n operationId: \"listLogs\",\n method: \"GET\",\n path: \"/api/logs\",\n accessToken: true,\n agentApi: false,\n },\n]\n\n// Enforce the subset invariant at module load: a gateway-proxied route must also be a bearer route,\n// or the gateway would expose a surface the access-token boundary does not recognize.\nfor (const route of SIXB_API_ROUTES) {\n if (route.agentApi && !route.accessToken) {\n throw new Error(\n `[Sixb] agent API route '${route.method} ${route.path}' must also be an access-token route.`\n )\n }\n}\n",
6
6
  "/**\n * Shared HTTP route-pattern matching. Used by both the agent API gateway allow-list (@sixb/core)\n * and the server's access-token boundary (@sixb/server) so the two never drift.\n */\n\n/** Split a path into its non-empty segments (drops leading/trailing/empty parts). */\nexport function pathSegmentsFor(pathname: string): string[] {\n return pathname.split(\"/\").filter(Boolean)\n}\n\n/**\n * Match a concrete pathname against a route pattern. A `:param` pattern segment matches any single\n * non-empty segment; every other segment must match exactly. Segment counts must be equal.\n */\nexport function matchesPathPattern(pathname: string, pattern: string): boolean {\n const pathSegments = pathSegmentsFor(pathname)\n const patternSegments = pathSegmentsFor(pattern)\n\n if (pathSegments.length !== patternSegments.length) {\n return false\n }\n\n return patternSegments.every((patternSegment, index) => {\n if (patternSegment.startsWith(\":\")) {\n return pathSegments[index] !== \"\"\n }\n return patternSegment === pathSegments[index]\n })\n}\n\n/** Strip a single trailing slash so `/api/foo` and `/api/foo/` compare equal (leaves \"/\" alone). */\nexport function normalizeRoutePath(pathname: string): string {\n if (pathname.length > 1 && pathname.endsWith(\"/\")) {\n return pathname.slice(0, -1)\n }\n return pathname\n}\n"
7
7
  ],
8
8
  "mappings": "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",