@sixb/core 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1196) hide show
  1. package/README.md +54 -23
  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 +34 -23
  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 +4 -4
  21. package/dist/actions/worker.js.map +1 -1
  22. package/dist/agents/adapters.d.ts +10 -0
  23. package/dist/agents/adapters.d.ts.map +1 -1
  24. package/dist/agents/authority.d.ts +31 -0
  25. package/dist/agents/authority.d.ts.map +1 -0
  26. package/dist/agents/builders.d.ts +8 -1
  27. package/dist/agents/builders.d.ts.map +1 -1
  28. package/dist/agents/context.js +2 -2
  29. package/dist/agents/dispatch.d.ts.map +1 -1
  30. package/dist/agents/errors.d.ts +16 -1
  31. package/dist/agents/errors.d.ts.map +1 -1
  32. package/dist/agents/execution.d.ts +45 -0
  33. package/dist/agents/execution.d.ts.map +1 -0
  34. package/dist/agents/index.d.ts +10 -10
  35. package/dist/agents/index.d.ts.map +1 -1
  36. package/dist/agents/index.js +81 -14
  37. package/dist/agents/index.js.map +1 -1
  38. package/dist/agents/prompt.d.ts.map +1 -1
  39. package/dist/agents/request.d.ts +6 -2
  40. package/dist/agents/request.d.ts.map +1 -1
  41. package/dist/agents/streams.d.ts +29 -3
  42. package/dist/agents/streams.d.ts.map +1 -1
  43. package/dist/agents/streams.js +22 -3
  44. package/dist/agents/streams.js.map +1 -1
  45. package/dist/agents/tool-definition.d.ts +9 -0
  46. package/dist/agents/tool-definition.d.ts.map +1 -0
  47. package/dist/agents/types.d.ts +64 -0
  48. package/dist/agents/types.d.ts.map +1 -1
  49. package/dist/agents/validation.d.ts +16 -3
  50. package/dist/agents/validation.d.ts.map +1 -1
  51. package/dist/auth/attribution.d.ts +17 -0
  52. package/dist/auth/attribution.d.ts.map +1 -0
  53. package/dist/auth/index.d.ts +1 -0
  54. package/dist/auth/index.d.ts.map +1 -1
  55. package/dist/auth/index.js +9 -5
  56. package/dist/auth/index.js.map +1 -1
  57. package/dist/auth/runtime.d.ts +4 -4
  58. package/dist/auth/runtime.d.ts.map +1 -1
  59. package/dist/authorization/decision.d.ts +24 -11
  60. package/dist/authorization/decision.d.ts.map +1 -1
  61. package/dist/authorization/grant-kinds.d.ts +2 -1
  62. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  63. package/dist/authorization/index.d.ts +1 -1
  64. package/dist/authorization/index.d.ts.map +1 -1
  65. package/dist/authorization/index.js +8 -4
  66. package/dist/authorization/index.js.map +1 -1
  67. package/dist/blob-storage/browser.js +3 -2
  68. package/dist/blob-storage/browser.js.map +1 -1
  69. package/dist/blob-storage/execution.d.ts +16 -0
  70. package/dist/blob-storage/execution.d.ts.map +1 -0
  71. package/dist/blob-storage/index.js +4 -3
  72. package/dist/blob-storage/index.js.map +1 -1
  73. package/dist/blob-storage/validation.d.ts.map +1 -1
  74. package/dist/bootstrap/discovery.d.ts +90 -24
  75. package/dist/bootstrap/discovery.d.ts.map +1 -1
  76. package/dist/bootstrap/index.d.ts +2 -1
  77. package/dist/bootstrap/index.d.ts.map +1 -1
  78. package/dist/bootstrap/index.js +59 -59
  79. package/dist/bootstrap/index.js.map +1 -1
  80. package/dist/broker/in-memory.d.ts.map +1 -1
  81. package/dist/broker/index.js +2 -2
  82. package/dist/broker/types.d.ts +5 -0
  83. package/dist/broker/types.d.ts.map +1 -1
  84. package/dist/chunk-0172wgm9.js +333 -0
  85. package/dist/chunk-0172wgm9.js.map +11 -0
  86. package/dist/chunk-0k4avqr2.js +317 -0
  87. package/dist/chunk-0k4avqr2.js.map +11 -0
  88. package/dist/chunk-0mbx247x.js +2922 -0
  89. package/dist/chunk-0mbx247x.js.map +43 -0
  90. package/dist/chunk-34bqh420.js +1168 -0
  91. package/dist/chunk-34bqh420.js.map +23 -0
  92. package/dist/{chunk-mx84y05q.js → chunk-3j7573mj.js} +2 -2
  93. package/dist/{chunk-mx84y05q.js.map → chunk-3j7573mj.js.map} +2 -2
  94. package/dist/{chunk-45tw90k7.js → chunk-4gz41why.js} +1 -1
  95. package/dist/chunk-4x43bkbp.js +55 -0
  96. package/dist/chunk-4x43bkbp.js.map +11 -0
  97. package/dist/{chunk-xqbtf4wn.js → chunk-57r1cpxx.js} +3 -2
  98. package/dist/{chunk-xqbtf4wn.js.map → chunk-57r1cpxx.js.map} +3 -3
  99. package/dist/chunk-57zpb99z.js +194 -0
  100. package/dist/chunk-57zpb99z.js.map +10 -0
  101. package/dist/{chunk-dhmj53mx.js → chunk-5egfka8j.js} +13 -33
  102. package/dist/chunk-5egfka8j.js.map +15 -0
  103. package/dist/chunk-5gd7tpv6.js +28 -0
  104. package/dist/chunk-5gd7tpv6.js.map +11 -0
  105. package/dist/{chunk-867jxh7c.js → chunk-5sz8ta9r.js} +6 -295
  106. package/dist/chunk-5sz8ta9r.js.map +16 -0
  107. package/dist/chunk-62c7t4jc.js +27 -0
  108. package/dist/chunk-62c7t4jc.js.map +11 -0
  109. package/dist/{chunk-8r8cw2xw.js → chunk-63te770v.js} +40 -5
  110. package/dist/{chunk-8r8cw2xw.js.map → chunk-63te770v.js.map} +3 -3
  111. package/dist/chunk-663csy96.js +34 -0
  112. package/dist/chunk-663csy96.js.map +10 -0
  113. package/dist/{chunk-xz5g49bp.js → chunk-6gjqgd3d.js} +3 -1
  114. package/dist/chunk-6gjqgd3d.js.map +11 -0
  115. package/dist/chunk-7pc8b818.js +128 -0
  116. package/dist/chunk-7pc8b818.js.map +13 -0
  117. package/dist/{chunk-f2b5e2gf.js → chunk-85j5ybfj.js} +18 -3
  118. package/dist/{chunk-f2b5e2gf.js.map → chunk-85j5ybfj.js.map} +3 -3
  119. package/dist/{chunk-vj723r3p.js → chunk-8b55ygje.js} +1 -1
  120. package/dist/chunk-8m5ejdpn.js +33 -0
  121. package/dist/chunk-8m5ejdpn.js.map +10 -0
  122. package/dist/chunk-8ryen3p3.js +118 -0
  123. package/dist/chunk-8ryen3p3.js.map +10 -0
  124. package/dist/chunk-979ww6b3.js +298 -0
  125. package/dist/chunk-979ww6b3.js.map +12 -0
  126. package/dist/{chunk-ya6brh8a.js → chunk-9t8f5xfx.js} +10 -5
  127. package/dist/chunk-9t8f5xfx.js.map +11 -0
  128. package/dist/{chunk-r65yscvk.js → chunk-a31h57d5.js} +131 -13
  129. package/dist/chunk-a31h57d5.js.map +13 -0
  130. package/dist/chunk-bct7hmfc.js +402 -0
  131. package/dist/chunk-bct7hmfc.js.map +14 -0
  132. package/dist/chunk-bh6k3nc6.js +164 -0
  133. package/dist/chunk-bh6k3nc6.js.map +12 -0
  134. package/dist/{chunk-t72dvahb.js → chunk-bhxaq2nn.js} +61 -44
  135. package/dist/chunk-bhxaq2nn.js.map +12 -0
  136. package/dist/{chunk-jdwx7vzs.js → chunk-c6qd89g5.js} +240 -143
  137. package/dist/chunk-c6qd89g5.js.map +15 -0
  138. package/dist/{chunk-2s6sydsh.js → chunk-ckxfnx7f.js} +294 -4
  139. package/dist/chunk-ckxfnx7f.js.map +13 -0
  140. package/dist/chunk-cy0n5dms.js +27 -0
  141. package/dist/chunk-cy0n5dms.js.map +11 -0
  142. package/dist/chunk-dsrkgtnh.js +50 -0
  143. package/dist/chunk-dsrkgtnh.js.map +10 -0
  144. package/dist/{chunk-50kv63vj.js → chunk-dysw7nsm.js} +118 -26
  145. package/dist/chunk-dysw7nsm.js.map +14 -0
  146. package/dist/chunk-ezake7g1.js +32 -0
  147. package/dist/chunk-ezake7g1.js.map +11 -0
  148. package/dist/{chunk-yxss87qa.js → chunk-f2rt4vkh.js} +48 -29
  149. package/dist/chunk-f2rt4vkh.js.map +14 -0
  150. package/dist/{chunk-q4qzq0ea.js → chunk-fmx1sz2h.js} +117 -56
  151. package/dist/chunk-fmx1sz2h.js.map +15 -0
  152. package/dist/chunk-g9t3kdtx.js +90 -0
  153. package/dist/chunk-g9t3kdtx.js.map +10 -0
  154. package/dist/{chunk-c3zd880g.js → chunk-ghteq96b.js} +8 -8
  155. package/dist/{chunk-c3zd880g.js.map → chunk-ghteq96b.js.map} +4 -4
  156. package/dist/chunk-h9kxd41f.js +271 -0
  157. package/dist/chunk-h9kxd41f.js.map +11 -0
  158. package/dist/chunk-htq0qh7z.js +59 -0
  159. package/dist/chunk-htq0qh7z.js.map +11 -0
  160. package/dist/{chunk-dcgrzj1t.js → chunk-jaj13078.js} +121 -9
  161. package/dist/chunk-jaj13078.js.map +38 -0
  162. package/dist/{chunk-t358gywy.js → chunk-k9pts48t.js} +81 -58
  163. package/dist/chunk-k9pts48t.js.map +35 -0
  164. package/dist/chunk-n8herkry.js +3294 -0
  165. package/dist/chunk-n8herkry.js.map +35 -0
  166. package/dist/chunk-nf4r78r4.js +44 -0
  167. package/dist/chunk-nf4r78r4.js.map +10 -0
  168. package/dist/{chunk-2gpr6jsz.js → chunk-nnyp53zt.js} +14 -34
  169. package/dist/chunk-nnyp53zt.js.map +13 -0
  170. package/dist/chunk-nten49ta.js +404 -0
  171. package/dist/chunk-nten49ta.js.map +12 -0
  172. package/dist/chunk-qvybnnpe.js +137 -0
  173. package/dist/chunk-qvybnnpe.js.map +10 -0
  174. package/dist/{chunk-tsk2bxs3.js → chunk-rnshztfq.js} +13 -13
  175. package/dist/{chunk-tsk2bxs3.js.map → chunk-rnshztfq.js.map} +3 -3
  176. package/dist/chunk-sa4340y1.js +607 -0
  177. package/dist/chunk-sa4340y1.js.map +14 -0
  178. package/dist/{chunk-yvef9xwc.js → chunk-st4xgxey.js} +583 -251
  179. package/dist/chunk-st4xgxey.js.map +45 -0
  180. package/dist/{chunk-1vffvydj.js → chunk-t8t39h7v.js} +6 -6
  181. package/dist/chunk-t8t39h7v.js.map +10 -0
  182. package/dist/chunk-t9xghkva.js +28 -0
  183. package/dist/chunk-t9xghkva.js.map +10 -0
  184. package/dist/chunk-vp1vc6ee.js +35 -0
  185. package/dist/chunk-vp1vc6ee.js.map +11 -0
  186. package/dist/{chunk-p6r5g77m.js → chunk-vybf6pkp.js} +1 -1
  187. package/dist/{chunk-wj01s5hr.js → chunk-wtmzkcht.js} +4 -3
  188. package/dist/chunk-wtmzkcht.js.map +11 -0
  189. package/dist/{chunk-v5c085yp.js → chunk-xhy826cz.js} +3 -2
  190. package/dist/chunk-xhy826cz.js.map +10 -0
  191. package/dist/chunk-xkthy56g.js +33 -0
  192. package/dist/chunk-xkthy56g.js.map +11 -0
  193. package/dist/{chunk-aebzcsxr.js → chunk-ys1nse2v.js} +2178 -382
  194. package/dist/chunk-ys1nse2v.js.map +56 -0
  195. package/dist/{chunk-5yny9z0e.js → chunk-z3zp0bj1.js} +1 -1
  196. package/dist/chunk-zcnhxkvd.js +7 -0
  197. package/dist/chunk-zcnhxkvd.js.map +10 -0
  198. package/dist/chunk-zg9yryhz.js +252 -0
  199. package/dist/chunk-zg9yryhz.js.map +12 -0
  200. package/dist/chunk-zqqz8052.js +3 -0
  201. package/dist/{storage/projection-runs/lifecycle.js.map → chunk-zqqz8052.js.map} +1 -1
  202. package/dist/{chunk-4pycxcj3.js → chunk-zqysyfjt.js} +6 -9
  203. package/dist/{chunk-4pycxcj3.js.map → chunk-zqysyfjt.js.map} +3 -3
  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/builders.d.ts +18 -5
  253. package/dist/datasets/builders.d.ts.map +1 -1
  254. package/dist/datasets/changes.d.ts +18 -0
  255. package/dist/datasets/changes.d.ts.map +1 -0
  256. package/dist/datasets/execution.d.ts +8 -0
  257. package/dist/datasets/execution.d.ts.map +1 -0
  258. package/dist/datasets/index.d.ts +3 -1
  259. package/dist/datasets/index.d.ts.map +1 -1
  260. package/dist/datasets/types.d.ts +2 -0
  261. package/dist/datasets/types.d.ts.map +1 -1
  262. package/dist/datasets/validation.d.ts.map +1 -1
  263. package/dist/error-reporting/capability.d.ts +4 -49
  264. package/dist/error-reporting/capability.d.ts.map +1 -1
  265. package/dist/error-reporting/internal.d.ts +2 -2
  266. package/dist/error-reporting/internal.d.ts.map +1 -1
  267. package/dist/error-reporting/internal.js +10 -4
  268. package/dist/error-reporting/internal.js.map +1 -1
  269. package/dist/error-reporting/reporter.d.ts +4 -1
  270. package/dist/error-reporting/reporter.d.ts.map +1 -1
  271. package/dist/error-reporting/reports.d.ts +64 -0
  272. package/dist/error-reporting/reports.d.ts.map +1 -0
  273. package/dist/error-reporting/types.d.ts +88 -34
  274. package/dist/error-reporting/types.d.ts.map +1 -1
  275. package/dist/errors/catalog.d.ts +141 -0
  276. package/dist/errors/catalog.d.ts.map +1 -0
  277. package/dist/errors/internal.d.ts +68 -0
  278. package/dist/errors/internal.d.ts.map +1 -0
  279. package/dist/errors/internal.js +29 -0
  280. package/dist/errors/internal.js.map +9 -0
  281. package/dist/errors/types.d.ts +20 -0
  282. package/dist/errors/types.d.ts.map +1 -0
  283. package/dist/events/definitions.d.ts +0 -1
  284. package/dist/events/definitions.d.ts.map +1 -1
  285. package/dist/events/execution.d.ts +13 -0
  286. package/dist/events/execution.d.ts.map +1 -0
  287. package/dist/events/index.d.ts +3 -2
  288. package/dist/events/index.d.ts.map +1 -1
  289. package/dist/events/index.js +10 -8
  290. package/dist/events/index.js.map +1 -1
  291. package/dist/events/outbox-dispatcher.d.ts +4 -2
  292. package/dist/events/outbox-dispatcher.d.ts.map +1 -1
  293. package/dist/events/{runtime.d.ts → service.d.ts} +13 -14
  294. package/dist/events/service.d.ts.map +1 -0
  295. package/dist/events/types/pipelines.d.ts +4 -1
  296. package/dist/events/types/pipelines.d.ts.map +1 -1
  297. package/dist/events/types/syncs.d.ts +3 -0
  298. package/dist/events/types/syncs.d.ts.map +1 -1
  299. package/dist/events/types/workflows.d.ts +4 -2
  300. package/dist/events/types/workflows.d.ts.map +1 -1
  301. package/dist/execution/agent.d.ts +42 -0
  302. package/dist/execution/agent.d.ts.map +1 -0
  303. package/dist/execution/agent.js +70 -0
  304. package/dist/execution/agent.js.map +9 -0
  305. package/dist/execution/authorization.d.ts +60 -0
  306. package/dist/execution/authorization.d.ts.map +1 -0
  307. package/dist/execution/dispatch.d.ts +8 -0
  308. package/dist/execution/dispatch.d.ts.map +1 -0
  309. package/dist/execution/durable.d.ts +37 -0
  310. package/dist/execution/durable.d.ts.map +1 -0
  311. package/dist/execution/index.d.ts +2 -0
  312. package/dist/execution/index.d.ts.map +1 -0
  313. package/dist/execution/primitive.d.ts +21 -0
  314. package/dist/execution/primitive.d.ts.map +1 -0
  315. package/dist/execution/primitive.js +88 -0
  316. package/dist/execution/primitive.js.map +10 -0
  317. package/dist/execution/request.d.ts +38 -0
  318. package/dist/execution/request.d.ts.map +1 -0
  319. package/dist/execution/request.js +97 -0
  320. package/dist/execution/request.js.map +10 -0
  321. package/dist/execution/scopes.d.ts +30 -0
  322. package/dist/execution/scopes.d.ts.map +1 -0
  323. package/dist/execution/types.d.ts +111 -0
  324. package/dist/execution/types.d.ts.map +1 -0
  325. package/dist/http/api-routes.d.ts.map +1 -1
  326. package/dist/http/index.js +1 -1
  327. package/dist/index.d.ts +35 -18
  328. package/dist/index.d.ts.map +1 -1
  329. package/dist/index.js +142 -111
  330. package/dist/index.js.map +1 -1
  331. package/dist/json.d.ts +8 -2
  332. package/dist/json.d.ts.map +1 -1
  333. package/dist/lake-storage/definition-updates.d.ts.map +1 -1
  334. package/dist/lake-storage/in-memory.d.ts +15 -1
  335. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  336. package/dist/lake-storage/index.d.ts +3 -1
  337. package/dist/lake-storage/index.d.ts.map +1 -1
  338. package/dist/lake-storage/index.js +15 -7
  339. package/dist/lake-storage/index.js.map +1 -1
  340. package/dist/lake-storage/merge-validation.d.ts +10 -0
  341. package/dist/lake-storage/merge-validation.d.ts.map +1 -0
  342. package/dist/lake-storage/merge.d.ts +32 -0
  343. package/dist/lake-storage/merge.d.ts.map +1 -0
  344. package/dist/lake-storage/types.d.ts +3 -1
  345. package/dist/lake-storage/types.d.ts.map +1 -1
  346. package/dist/logging/execution.d.ts +9 -0
  347. package/dist/logging/execution.d.ts.map +1 -0
  348. package/dist/logging/index.d.ts +1 -1
  349. package/dist/logging/index.d.ts.map +1 -1
  350. package/dist/logging/index.js +8 -8
  351. package/dist/logging/index.js.map +1 -1
  352. package/dist/logging/{runtime.d.ts → service.d.ts} +7 -7
  353. package/dist/logging/{runtime.d.ts.map → service.d.ts.map} +1 -1
  354. package/dist/logging/types.js +2 -2
  355. package/dist/materialization/events.d.ts +1 -0
  356. package/dist/materialization/events.d.ts.map +1 -1
  357. package/dist/materialization/index.d.ts +1 -1
  358. package/dist/materialization/index.d.ts.map +1 -1
  359. package/dist/materialization/index.js +2 -2
  360. package/dist/materialization/model.d.ts +26 -17
  361. package/dist/materialization/model.d.ts.map +1 -1
  362. package/dist/materializer/edits/commit.d.ts +2 -1
  363. package/dist/materializer/edits/commit.d.ts.map +1 -1
  364. package/dist/materializer/edits/load-state.d.ts +1 -1
  365. package/dist/materializer/edits/load-state.d.ts.map +1 -1
  366. package/dist/materializer/edits/operations.d.ts +1 -13
  367. package/dist/materializer/edits/operations.d.ts.map +1 -1
  368. package/dist/materializer/edits/plan.d.ts +2 -1
  369. package/dist/materializer/edits/plan.d.ts.map +1 -1
  370. package/dist/materializer/edits/working-state.d.ts +36 -8
  371. package/dist/materializer/edits/working-state.d.ts.map +1 -1
  372. package/dist/materializer/effective/build-events.d.ts +1 -0
  373. package/dist/materializer/effective/build-events.d.ts.map +1 -1
  374. package/dist/materializer/effective/diff.d.ts +7 -0
  375. package/dist/materializer/effective/diff.d.ts.map +1 -1
  376. package/dist/materializer/effective/load-state.d.ts +0 -2
  377. package/dist/materializer/effective/load-state.d.ts.map +1 -1
  378. package/dist/materializer/effective/resolve.d.ts +17 -2
  379. package/dist/materializer/effective/resolve.d.ts.map +1 -1
  380. package/dist/materializer/execution/commit-lifecycle.d.ts +2 -2
  381. package/dist/materializer/execution/commit-lifecycle.d.ts.map +1 -1
  382. package/dist/materializer/execution/plan-stream.d.ts.map +1 -1
  383. package/dist/materializer/execution/scope.d.ts +26 -0
  384. package/dist/materializer/execution/scope.d.ts.map +1 -0
  385. package/dist/materializer/execution/work-executor.d.ts.map +1 -1
  386. package/dist/materializer/execution/work-records.d.ts +6 -5
  387. package/dist/materializer/execution/work-records.d.ts.map +1 -1
  388. package/dist/materializer/index.d.ts +2 -2
  389. package/dist/materializer/index.d.ts.map +1 -1
  390. package/dist/materializer/index.js +30 -18
  391. package/dist/materializer/index.js.map +1 -1
  392. package/dist/materializer/materializer.d.ts +37 -5
  393. package/dist/materializer/materializer.d.ts.map +1 -1
  394. package/dist/materializer/projections/finish-run.d.ts +2 -1
  395. package/dist/materializer/projections/finish-run.d.ts.map +1 -1
  396. package/dist/materializer/projections/replace.d.ts +2 -1
  397. package/dist/materializer/projections/replace.d.ts.map +1 -1
  398. package/dist/materializer/projections/replacement-plan.d.ts +1 -0
  399. package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
  400. package/dist/materializer/shared/batching.d.ts.map +1 -1
  401. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  402. package/dist/materializer/telemetry/append.d.ts +2 -1
  403. package/dist/materializer/telemetry/append.d.ts.map +1 -1
  404. package/dist/materializer/telemetry/plan.d.ts +7 -1
  405. package/dist/materializer/telemetry/plan.d.ts.map +1 -1
  406. package/dist/objects/action/request.d.ts +3 -3
  407. package/dist/objects/action/request.d.ts.map +1 -1
  408. package/dist/objects/context/index.d.ts +1 -1
  409. package/dist/objects/context/index.d.ts.map +1 -1
  410. package/dist/objects/context/types.d.ts +5 -0
  411. package/dist/objects/context/types.d.ts.map +1 -1
  412. package/dist/objects/execution.d.ts +100 -0
  413. package/dist/objects/execution.d.ts.map +1 -0
  414. package/dist/objects/index.js +37 -24
  415. package/dist/objects/index.js.map +1 -1
  416. package/dist/objects/materializer-adapter.d.ts +1 -1
  417. package/dist/objects/materializer-adapter.d.ts.map +1 -1
  418. package/dist/objects/query/executor.d.ts +3 -8
  419. package/dist/objects/query/executor.d.ts.map +1 -1
  420. package/dist/objects/query/index.d.ts +2 -2
  421. package/dist/objects/query/index.d.ts.map +1 -1
  422. package/dist/objects/query/index.js +9 -13
  423. package/dist/objects/query/index.js.map +1 -1
  424. package/dist/objects/query/planner.d.ts +0 -3
  425. package/dist/objects/query/planner.d.ts.map +1 -1
  426. package/dist/objects/sdk/object-handle.d.ts +2 -2
  427. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  428. package/dist/objects/sdk/object-set.d.ts +2 -0
  429. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  430. package/dist/objects/sdk/runtime-query-executor.d.ts +2 -0
  431. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  432. package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
  433. package/dist/objects/service/action-service.d.ts +3 -2
  434. package/dist/objects/service/action-service.d.ts.map +1 -1
  435. package/dist/objects/service/list-service.d.ts +1 -1
  436. package/dist/objects/telemetry/history.d.ts +2 -0
  437. package/dist/objects/telemetry/history.d.ts.map +1 -1
  438. package/dist/objects/telemetry/write-batch.d.ts.map +1 -1
  439. package/dist/ontology/index.d.ts +1 -1
  440. package/dist/ontology/index.d.ts.map +1 -1
  441. package/dist/ontology/index.js +5 -5
  442. package/dist/ontology/internal.js +7 -6
  443. package/dist/ontology/internal.js.map +3 -3
  444. package/dist/ontology/registry.d.ts +15 -2
  445. package/dist/ontology/registry.d.ts.map +1 -1
  446. package/dist/ontology/validation/normalize.d.ts.map +1 -1
  447. package/dist/pipelines/execution.d.ts +19 -0
  448. package/dist/pipelines/execution.d.ts.map +1 -0
  449. package/dist/pipelines/index.d.ts +1 -0
  450. package/dist/pipelines/index.d.ts.map +1 -1
  451. package/dist/pipelines/index.js +66 -0
  452. package/dist/pipelines/index.js.map +9 -0
  453. package/dist/pipelines/request.d.ts +6 -9
  454. package/dist/pipelines/request.d.ts.map +1 -1
  455. package/dist/pipelines/run-dispatch.d.ts +47 -0
  456. package/dist/pipelines/run-dispatch.d.ts.map +1 -0
  457. package/dist/projections/builders.d.ts +0 -2
  458. package/dist/projections/builders.d.ts.map +1 -1
  459. package/dist/projections/capability.d.ts +7 -0
  460. package/dist/projections/capability.d.ts.map +1 -0
  461. package/dist/projections/execution.d.ts +19 -0
  462. package/dist/projections/execution.d.ts.map +1 -0
  463. package/dist/projections/index.d.ts +3 -1
  464. package/dist/projections/index.d.ts.map +1 -1
  465. package/dist/projections/internal.d.ts +4 -10
  466. package/dist/projections/internal.d.ts.map +1 -1
  467. package/dist/projections/internal.js +42 -6
  468. package/dist/projections/internal.js.map +1 -1
  469. package/dist/projections/ownership.d.ts +2 -2
  470. package/dist/projections/ownership.d.ts.map +1 -1
  471. package/dist/projections/registry.d.ts +21 -11
  472. package/dist/projections/registry.d.ts.map +1 -1
  473. package/dist/projections/revision.d.ts +2 -2
  474. package/dist/projections/revision.d.ts.map +1 -1
  475. package/dist/projections/run-dispatch.d.ts +37 -0
  476. package/dist/projections/run-dispatch.d.ts.map +1 -0
  477. package/dist/projections/run-id.d.ts +3 -0
  478. package/dist/projections/run-id.d.ts.map +1 -0
  479. package/dist/projections/types.d.ts +3 -0
  480. package/dist/projections/types.d.ts.map +1 -1
  481. package/dist/projections/validation.d.ts +2 -2
  482. package/dist/projections/validation.d.ts.map +1 -1
  483. package/dist/queues/in-memory.d.ts +11 -10
  484. package/dist/queues/in-memory.d.ts.map +1 -1
  485. package/dist/queues/index.d.ts +1 -1
  486. package/dist/queues/index.d.ts.map +1 -1
  487. package/dist/queues/index.js +1 -1
  488. package/dist/queues/types.d.ts +52 -42
  489. package/dist/queues/types.d.ts.map +1 -1
  490. package/dist/rules/execution.d.ts +14 -0
  491. package/dist/rules/execution.d.ts.map +1 -0
  492. package/dist/rules/index.d.ts +1 -1
  493. package/dist/rules/index.d.ts.map +1 -1
  494. package/dist/rules/validation.d.ts +1 -2
  495. package/dist/rules/validation.d.ts.map +1 -1
  496. package/dist/runtime/ai-usage.d.ts +8 -0
  497. package/dist/runtime/ai-usage.d.ts.map +1 -0
  498. package/dist/runtime/create.d.ts +7 -5
  499. package/dist/runtime/create.d.ts.map +1 -1
  500. package/dist/runtime/definitions.d.ts +35 -0
  501. package/dist/runtime/definitions.d.ts.map +1 -0
  502. package/dist/runtime/host.d.ts +123 -0
  503. package/dist/runtime/host.d.ts.map +1 -0
  504. package/dist/runtime/index.d.ts +6 -5
  505. package/dist/runtime/index.d.ts.map +1 -1
  506. package/dist/runtime/internal.d.ts +4 -0
  507. package/dist/runtime/internal.d.ts.map +1 -1
  508. package/dist/runtime/internal.js +6 -2
  509. package/dist/runtime/internal.js.map +1 -1
  510. package/dist/runtime/ontology-mutations.d.ts +4 -2
  511. package/dist/runtime/ontology-mutations.d.ts.map +1 -1
  512. package/dist/runtime/resolve-definitions.d.ts +42 -0
  513. package/dist/runtime/resolve-definitions.d.ts.map +1 -0
  514. package/dist/runtime/sixb.d.ts +43 -219
  515. package/dist/runtime/sixb.d.ts.map +1 -1
  516. package/dist/runtime/types.d.ts +16 -216
  517. package/dist/runtime/types.d.ts.map +1 -1
  518. package/dist/scheduler/index.d.ts +1 -1
  519. package/dist/scheduler/index.d.ts.map +1 -1
  520. package/dist/scheduler/index.js +3 -6
  521. package/dist/scheduler/index.js.map +1 -1
  522. package/dist/scheduler/runtime.d.ts +7 -2
  523. package/dist/scheduler/runtime.d.ts.map +1 -1
  524. package/dist/schedules/execution.d.ts +6 -0
  525. package/dist/schedules/execution.d.ts.map +1 -0
  526. package/dist/schedules/index.js +9 -7
  527. package/dist/schedules/index.js.map +1 -1
  528. package/dist/schedules/types.d.ts +1 -3
  529. package/dist/schedules/types.d.ts.map +1 -1
  530. package/dist/security/every.d.ts +4 -1
  531. package/dist/security/every.d.ts.map +1 -1
  532. package/dist/security/grants.d.ts +4 -1
  533. package/dist/security/grants.d.ts.map +1 -1
  534. package/dist/security/index.d.ts +3 -1
  535. package/dist/security/index.d.ts.map +1 -1
  536. package/dist/security/registry.d.ts +42 -0
  537. package/dist/security/registry.d.ts.map +1 -0
  538. package/dist/security/types.d.ts +7 -12
  539. package/dist/security/types.d.ts.map +1 -1
  540. package/dist/security/validation.d.ts +2 -0
  541. package/dist/security/validation.d.ts.map +1 -1
  542. package/dist/storage/action-runs/failure.d.ts +7 -0
  543. package/dist/storage/action-runs/failure.d.ts.map +1 -0
  544. package/dist/storage/action-runs/failure.js +14 -0
  545. package/dist/storage/action-runs/failure.js.map +9 -0
  546. package/dist/storage/action-runs/idempotency.d.ts.map +1 -1
  547. package/dist/storage/action-runs/in-memory.d.ts +3 -1
  548. package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
  549. package/dist/storage/action-runs/index.d.ts +2 -1
  550. package/dist/storage/action-runs/index.d.ts.map +1 -1
  551. package/dist/storage/action-runs/provider.d.ts +10 -0
  552. package/dist/storage/action-runs/provider.d.ts.map +1 -0
  553. package/dist/storage/action-runs/provider.js +13 -0
  554. package/dist/storage/action-runs/provider.js.map +9 -0
  555. package/dist/storage/action-runs/types.d.ts +37 -18
  556. package/dist/storage/action-runs/types.d.ts.map +1 -1
  557. package/dist/storage/agents/errors.d.ts +1 -1
  558. package/dist/storage/agents/errors.d.ts.map +1 -1
  559. package/dist/storage/agents/in-memory.d.ts +4 -1
  560. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  561. package/dist/storage/agents/index.d.ts +2 -2
  562. package/dist/storage/agents/index.d.ts.map +1 -1
  563. package/dist/storage/agents/provider.d.ts +10 -0
  564. package/dist/storage/agents/provider.d.ts.map +1 -0
  565. package/dist/storage/agents/provider.js +17 -0
  566. package/dist/storage/agents/provider.js.map +9 -0
  567. package/dist/storage/agents/types.d.ts +13 -22
  568. package/dist/storage/agents/types.d.ts.map +1 -1
  569. package/dist/storage/ai-usage/errors.d.ts +8 -0
  570. package/dist/storage/ai-usage/errors.d.ts.map +1 -0
  571. package/dist/storage/ai-usage/in-memory.d.ts +28 -0
  572. package/dist/storage/ai-usage/in-memory.d.ts.map +1 -0
  573. package/dist/storage/ai-usage/index.d.ts +8 -0
  574. package/dist/storage/ai-usage/index.d.ts.map +1 -0
  575. package/dist/storage/ai-usage/record.d.ts +6 -0
  576. package/dist/storage/ai-usage/record.d.ts.map +1 -0
  577. package/dist/storage/ai-usage/types.d.ts +89 -0
  578. package/dist/storage/ai-usage/types.d.ts.map +1 -0
  579. package/dist/storage/ai-usage/usage.d.ts +11 -0
  580. package/dist/storage/ai-usage/usage.d.ts.map +1 -0
  581. package/dist/storage/auth/types.d.ts +1 -0
  582. package/dist/storage/auth/types.d.ts.map +1 -1
  583. package/dist/storage/connector-connections/errors.d.ts +12 -0
  584. package/dist/storage/connector-connections/errors.d.ts.map +1 -0
  585. package/dist/storage/connector-connections/in-memory.d.ts +81 -0
  586. package/dist/storage/connector-connections/in-memory.d.ts.map +1 -0
  587. package/dist/storage/connector-connections/index.d.ts +7 -0
  588. package/dist/storage/connector-connections/index.d.ts.map +1 -0
  589. package/dist/storage/connector-connections/provider/authorizations.d.ts +20 -0
  590. package/dist/storage/connector-connections/provider/authorizations.d.ts.map +1 -0
  591. package/dist/storage/connector-connections/provider/connections.d.ts +17 -0
  592. package/dist/storage/connector-connections/provider/connections.d.ts.map +1 -0
  593. package/dist/storage/connector-connections/provider/runs.d.ts +14 -0
  594. package/dist/storage/connector-connections/provider/runs.d.ts.map +1 -0
  595. package/dist/storage/connector-connections/provider/shared.d.ts +74 -0
  596. package/dist/storage/connector-connections/provider/shared.d.ts.map +1 -0
  597. package/dist/storage/connector-connections/provider.d.ts +49 -0
  598. package/dist/storage/connector-connections/provider.d.ts.map +1 -0
  599. package/dist/storage/connector-connections/provider.js +1025 -0
  600. package/dist/storage/connector-connections/provider.js.map +14 -0
  601. package/dist/storage/connector-connections/types.d.ts +402 -0
  602. package/dist/storage/connector-connections/types.d.ts.map +1 -0
  603. package/dist/storage/executions/errors.d.ts +8 -0
  604. package/dist/storage/executions/errors.d.ts.map +1 -0
  605. package/dist/storage/executions/in-memory.d.ts +21 -0
  606. package/dist/storage/executions/in-memory.d.ts.map +1 -0
  607. package/dist/storage/executions/index.d.ts +5 -0
  608. package/dist/storage/executions/index.d.ts.map +1 -0
  609. package/dist/storage/executions/provider.d.ts +29 -0
  610. package/dist/storage/executions/provider.d.ts.map +1 -0
  611. package/dist/storage/executions/provider.js +208 -0
  612. package/dist/storage/executions/provider.js.map +10 -0
  613. package/dist/storage/executions/run-link.d.ts +24 -0
  614. package/dist/storage/executions/run-link.d.ts.map +1 -0
  615. package/dist/storage/executions/types.d.ts +62 -0
  616. package/dist/storage/executions/types.d.ts.map +1 -0
  617. package/dist/storage/executions/validation.d.ts +13 -0
  618. package/dist/storage/executions/validation.d.ts.map +1 -0
  619. package/dist/storage/in-memory/index.d.ts +20 -5
  620. package/dist/storage/in-memory/index.d.ts.map +1 -1
  621. package/dist/storage/index.d.ts +28 -17
  622. package/dist/storage/index.d.ts.map +1 -1
  623. package/dist/storage/index.js +90 -27
  624. package/dist/storage/index.js.map +1 -1
  625. package/dist/storage/ontology/commits.d.ts +1 -0
  626. package/dist/storage/ontology/commits.d.ts.map +1 -1
  627. package/dist/storage/ontology/in-memory/index.d.ts +1 -0
  628. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  629. package/dist/storage/ontology/in-memory/materializations-state.d.ts +3 -2
  630. package/dist/storage/ontology/in-memory/materializations-state.d.ts.map +1 -1
  631. package/dist/storage/ontology/in-memory/materializations-work.d.ts +2 -2
  632. package/dist/storage/ontology/in-memory/materializations-work.d.ts.map +1 -1
  633. package/dist/storage/ontology/in-memory/materializations.d.ts +3 -1
  634. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  635. package/dist/storage/ontology/in-memory/shared-state.d.ts +7 -2
  636. package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
  637. package/dist/storage/ontology/index.d.ts +3 -2
  638. package/dist/storage/ontology/index.d.ts.map +1 -1
  639. package/dist/storage/ontology/materializations.d.ts +50 -5
  640. package/dist/storage/ontology/materializations.d.ts.map +1 -1
  641. package/dist/storage/ontology/outbox.d.ts +8 -2
  642. package/dist/storage/ontology/outbox.d.ts.map +1 -1
  643. package/dist/storage/ontology/provider-work.d.ts.map +1 -1
  644. package/dist/storage/ontology/provider.d.ts +5 -22
  645. package/dist/storage/ontology/provider.d.ts.map +1 -1
  646. package/dist/storage/ontology/provider.js +6 -7
  647. package/dist/storage/ontology/provider.js.map +1 -1
  648. package/dist/storage/operation-scope.d.ts.map +1 -1
  649. package/dist/storage/operation-scope.js +1 -1
  650. package/dist/storage/pipeline-runs/idempotency.d.ts +3 -0
  651. package/dist/storage/pipeline-runs/idempotency.d.ts.map +1 -0
  652. package/dist/storage/pipeline-runs/in-memory.d.ts +5 -1
  653. package/dist/storage/pipeline-runs/in-memory.d.ts.map +1 -1
  654. package/dist/storage/pipeline-runs/index.d.ts +3 -1
  655. package/dist/storage/pipeline-runs/index.d.ts.map +1 -1
  656. package/dist/storage/pipeline-runs/provider.d.ts +10 -0
  657. package/dist/storage/pipeline-runs/provider.d.ts.map +1 -0
  658. package/dist/storage/pipeline-runs/provider.js +11 -0
  659. package/dist/storage/pipeline-runs/provider.js.map +9 -0
  660. package/dist/storage/pipeline-runs/types.d.ts +30 -14
  661. package/dist/storage/pipeline-runs/types.d.ts.map +1 -1
  662. package/dist/storage/projection-runs/in-memory.d.ts +8 -3
  663. package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
  664. package/dist/storage/projection-runs/index.d.ts +2 -2
  665. package/dist/storage/projection-runs/index.d.ts.map +1 -1
  666. package/dist/storage/projection-runs/lifecycle.d.ts +14 -8
  667. package/dist/storage/projection-runs/lifecycle.d.ts.map +1 -1
  668. package/dist/storage/projection-runs/provider.d.ts +13 -0
  669. package/dist/storage/projection-runs/provider.d.ts.map +1 -0
  670. package/dist/storage/projection-runs/{lifecycle.js → provider.js} +15 -4
  671. package/dist/storage/projection-runs/provider.js.map +9 -0
  672. package/dist/storage/projection-runs/types.d.ts +28 -11
  673. package/dist/storage/projection-runs/types.d.ts.map +1 -1
  674. package/dist/storage/run-listing.d.ts +8 -9
  675. package/dist/storage/run-listing.d.ts.map +1 -1
  676. package/dist/storage/sync-runs/idempotency.d.ts +3 -0
  677. package/dist/storage/sync-runs/idempotency.d.ts.map +1 -0
  678. package/dist/storage/sync-runs/in-memory.d.ts +5 -1
  679. package/dist/storage/sync-runs/in-memory.d.ts.map +1 -1
  680. package/dist/storage/sync-runs/index.d.ts +3 -1
  681. package/dist/storage/sync-runs/index.d.ts.map +1 -1
  682. package/dist/storage/sync-runs/provider.d.ts +10 -0
  683. package/dist/storage/sync-runs/provider.d.ts.map +1 -0
  684. package/dist/storage/sync-runs/provider.js +11 -0
  685. package/dist/storage/sync-runs/provider.js.map +9 -0
  686. package/dist/storage/sync-runs/types.d.ts +35 -14
  687. package/dist/storage/sync-runs/types.d.ts.map +1 -1
  688. package/dist/storage/types.d.ts +20 -15
  689. package/dist/storage/types.d.ts.map +1 -1
  690. package/dist/storage/webhook-runs/errors.d.ts +3 -0
  691. package/dist/storage/webhook-runs/errors.d.ts.map +1 -1
  692. package/dist/storage/webhook-runs/in-memory.d.ts +13 -1
  693. package/dist/storage/webhook-runs/in-memory.d.ts.map +1 -1
  694. package/dist/storage/webhook-runs/index.d.ts +3 -2
  695. package/dist/storage/webhook-runs/index.d.ts.map +1 -1
  696. package/dist/storage/webhook-runs/provider.d.ts +10 -0
  697. package/dist/storage/webhook-runs/provider.d.ts.map +1 -0
  698. package/dist/storage/webhook-runs/provider.js +11 -0
  699. package/dist/storage/webhook-runs/provider.js.map +9 -0
  700. package/dist/storage/webhook-runs/types.d.ts +37 -11
  701. package/dist/storage/webhook-runs/types.d.ts.map +1 -1
  702. package/dist/storage/workflow-runs/in-memory.d.ts +6 -2
  703. package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
  704. package/dist/storage/workflow-runs/index.d.ts +2 -1
  705. package/dist/storage/workflow-runs/index.d.ts.map +1 -1
  706. package/dist/storage/workflow-runs/provider.d.ts +19 -0
  707. package/dist/storage/workflow-runs/provider.d.ts.map +1 -0
  708. package/dist/storage/workflow-runs/provider.js +19 -0
  709. package/dist/storage/workflow-runs/provider.js.map +9 -0
  710. package/dist/storage/workflow-runs/types.d.ts +30 -30
  711. package/dist/storage/workflow-runs/types.d.ts.map +1 -1
  712. package/dist/syncs/builders.d.ts +11 -3
  713. package/dist/syncs/builders.d.ts.map +1 -1
  714. package/dist/syncs/execution.d.ts +18 -0
  715. package/dist/syncs/execution.d.ts.map +1 -0
  716. package/dist/syncs/index.d.ts +3 -1
  717. package/dist/syncs/index.d.ts.map +1 -1
  718. package/dist/syncs/index.js +65 -0
  719. package/dist/syncs/index.js.map +9 -0
  720. package/dist/syncs/request.d.ts +6 -16
  721. package/dist/syncs/request.d.ts.map +1 -1
  722. package/dist/syncs/run-dispatch.d.ts +47 -0
  723. package/dist/syncs/run-dispatch.d.ts.map +1 -0
  724. package/dist/syncs/sources.d.ts +8 -0
  725. package/dist/syncs/sources.d.ts.map +1 -0
  726. package/dist/syncs/types.d.ts +34 -22
  727. package/dist/syncs/types.d.ts.map +1 -1
  728. package/dist/syncs/validation.d.ts +14 -0
  729. package/dist/syncs/validation.d.ts.map +1 -0
  730. package/dist/testing/action-execution.d.ts +12 -0
  731. package/dist/testing/action-execution.d.ts.map +1 -0
  732. package/dist/testing/agent-execution.d.ts +14 -0
  733. package/dist/testing/agent-execution.d.ts.map +1 -0
  734. package/dist/testing/agent-storage-contract.d.ts +10 -3
  735. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  736. package/dist/testing/ai-usage-storage-contract.d.ts +13 -0
  737. package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -0
  738. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  739. package/dist/testing/broker-contract.d.ts.map +1 -1
  740. package/dist/testing/connector-connection-storage-contract.d.ts +16 -0
  741. package/dist/testing/connector-connection-storage-contract.d.ts.map +1 -0
  742. package/dist/testing/execution-storage-contract.d.ts +15 -0
  743. package/dist/testing/execution-storage-contract.d.ts.map +1 -0
  744. package/dist/testing/execution.d.ts +23 -0
  745. package/dist/testing/execution.d.ts.map +1 -0
  746. package/dist/testing/index.d.ts +13 -0
  747. package/dist/testing/index.d.ts.map +1 -1
  748. package/dist/testing/index.js +4270 -1484
  749. package/dist/testing/index.js.map +27 -14
  750. package/dist/testing/lake-merge-storage-contract.d.ts +7 -0
  751. package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -0
  752. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  753. package/dist/testing/materializer-fixture.d.ts +2 -2
  754. package/dist/testing/materializer-fixture.d.ts.map +1 -1
  755. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  756. package/dist/testing/ontology-contract-fixture.d.ts +1 -0
  757. package/dist/testing/ontology-contract-fixture.d.ts.map +1 -1
  758. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  759. package/dist/testing/pipeline-execution.d.ts +16 -0
  760. package/dist/testing/pipeline-execution.d.ts.map +1 -0
  761. package/dist/testing/projection-execution.d.ts +20 -0
  762. package/dist/testing/projection-execution.d.ts.map +1 -0
  763. package/dist/testing/projection-run-storage-contract.d.ts +9 -4
  764. package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
  765. package/dist/testing/queues-contract.d.ts.map +1 -1
  766. package/dist/testing/sync-execution.d.ts +16 -0
  767. package/dist/testing/sync-execution.d.ts.map +1 -0
  768. package/dist/testing/webhook-execution.d.ts +12 -0
  769. package/dist/testing/webhook-execution.d.ts.map +1 -0
  770. package/dist/testing/webhook-run-storage-contract.d.ts +11 -0
  771. package/dist/testing/webhook-run-storage-contract.d.ts.map +1 -0
  772. package/dist/testing/workflow-execution.d.ts +23 -0
  773. package/dist/testing/workflow-execution.d.ts.map +1 -0
  774. package/dist/webhooks/index.d.ts +2 -1
  775. package/dist/webhooks/index.d.ts.map +1 -1
  776. package/dist/webhooks/internal.d.ts +2 -0
  777. package/dist/webhooks/internal.d.ts.map +1 -0
  778. package/dist/webhooks/internal.js +150 -0
  779. package/dist/webhooks/internal.js.map +10 -0
  780. package/dist/webhooks/registry.d.ts +18 -4
  781. package/dist/webhooks/registry.d.ts.map +1 -1
  782. package/dist/webhooks/run-admission.d.ts +25 -0
  783. package/dist/webhooks/run-admission.d.ts.map +1 -0
  784. package/dist/webhooks/types.d.ts +8 -5
  785. package/dist/webhooks/types.d.ts.map +1 -1
  786. package/dist/workers/index.js +18 -19
  787. package/dist/workers/index.js.map +4 -4
  788. package/dist/workers/queue-delivery.d.ts +7 -7
  789. package/dist/workers/queue-delivery.d.ts.map +1 -1
  790. package/dist/workers/queue-worker.d.ts +30 -11
  791. package/dist/workers/queue-worker.d.ts.map +1 -1
  792. package/dist/workflows/execution.d.ts +49 -0
  793. package/dist/workflows/execution.d.ts.map +1 -0
  794. package/dist/workflows/failure.d.ts +28 -0
  795. package/dist/workflows/failure.d.ts.map +1 -0
  796. package/dist/workflows/index.d.ts +4 -2
  797. package/dist/workflows/index.d.ts.map +1 -1
  798. package/dist/workflows/index.js +63 -35
  799. package/dist/workflows/index.js.map +1 -1
  800. package/dist/workflows/request.d.ts +2 -1
  801. package/dist/workflows/request.d.ts.map +1 -1
  802. package/dist/workflows/run-dispatch.d.ts +59 -0
  803. package/dist/workflows/run-dispatch.d.ts.map +1 -0
  804. package/dist/workflows/types.d.ts +38 -8
  805. package/dist/workflows/types.d.ts.map +1 -1
  806. package/package.json +107 -5
  807. package/src/actions/commit-edits.ts +0 -3
  808. package/src/actions/execution.ts +83 -0
  809. package/src/actions/index.ts +1 -1
  810. package/src/actions/registry.ts +22 -10
  811. package/src/actions/request.ts +55 -177
  812. package/src/actions/run-dispatch.ts +276 -0
  813. package/src/actions/types/context.ts +2 -4
  814. package/src/actions/validation.ts +2 -2
  815. package/src/agents/adapters.ts +8 -12
  816. package/src/agents/authority.ts +189 -0
  817. package/src/agents/builders.ts +53 -3
  818. package/src/agents/dispatch.ts +1 -6
  819. package/src/agents/errors.ts +24 -0
  820. package/src/agents/execution.ts +254 -0
  821. package/src/agents/index.ts +37 -5
  822. package/src/agents/prompt.ts +17 -5
  823. package/src/agents/request.ts +153 -13
  824. package/src/agents/streams.ts +150 -3
  825. package/src/agents/tool-definition.ts +93 -0
  826. package/src/agents/types.ts +99 -0
  827. package/src/agents/validation.ts +289 -5
  828. package/src/auth/attribution.ts +48 -0
  829. package/src/auth/index.ts +1 -0
  830. package/src/auth/runtime.ts +5 -5
  831. package/src/authorization/decision.ts +75 -14
  832. package/src/authorization/grant-kinds.ts +9 -0
  833. package/src/authorization/index.ts +2 -0
  834. package/src/blob-storage/execution.ts +78 -0
  835. package/src/blob-storage/validation.ts +2 -10
  836. package/src/bootstrap/discovery.ts +88 -268
  837. package/src/bootstrap/index.ts +2 -13
  838. package/src/broker/in-memory.ts +8 -1
  839. package/src/broker/types.ts +5 -0
  840. package/src/connectors/builders.ts +37 -2
  841. package/src/connectors/connections/authorizations.ts +646 -0
  842. package/src/connectors/connections/capability.ts +59 -0
  843. package/src/connectors/connections/command-context.ts +98 -0
  844. package/src/connectors/connections/contracts.ts +208 -0
  845. package/src/connectors/connections/credential-codec.ts +48 -0
  846. package/src/connectors/connections/credential-mutations.ts +574 -0
  847. package/src/connectors/connections/execution.ts +138 -0
  848. package/src/connectors/connections/internal.ts +17 -0
  849. package/src/connectors/connections/provider-operation.ts +41 -0
  850. package/src/connectors/connections/request.ts +447 -0
  851. package/src/connectors/connections/runs.ts +702 -0
  852. package/src/connectors/connections/service.ts +644 -0
  853. package/src/connectors/connections/storage-boundary.ts +13 -0
  854. package/src/connectors/connections/tokens.ts +292 -0
  855. package/src/connectors/connections/validation.ts +316 -0
  856. package/src/connectors/connections/views.ts +37 -0
  857. package/src/connectors/credentials.ts +149 -0
  858. package/src/connectors/errors.ts +111 -3
  859. package/src/connectors/execution.ts +157 -0
  860. package/src/connectors/index.ts +26 -2
  861. package/src/connectors/service.ts +142 -0
  862. package/src/connectors/types.ts +156 -7
  863. package/src/datasets/builders.ts +49 -5
  864. package/src/datasets/changes.ts +13 -0
  865. package/src/datasets/execution.ts +24 -0
  866. package/src/datasets/index.ts +3 -0
  867. package/src/datasets/types.ts +5 -0
  868. package/src/datasets/validation.ts +53 -11
  869. package/src/error-reporting/capability.ts +33 -106
  870. package/src/error-reporting/internal.ts +3 -1
  871. package/src/error-reporting/reporter.ts +19 -3
  872. package/src/error-reporting/reports.ts +172 -0
  873. package/src/error-reporting/types.ts +97 -43
  874. package/src/errors/catalog.ts +149 -0
  875. package/src/errors/internal.ts +322 -0
  876. package/src/errors/types.ts +21 -0
  877. package/src/events/definitions.ts +0 -4
  878. package/src/events/execution.ts +45 -0
  879. package/src/events/index.ts +15 -14
  880. package/src/events/outbox-dispatcher.ts +53 -18
  881. package/src/events/{runtime.ts → service.ts} +19 -23
  882. package/src/events/types/pipelines.ts +4 -1
  883. package/src/events/types/syncs.ts +3 -0
  884. package/src/events/types/workflows.ts +4 -2
  885. package/src/execution/agent.ts +130 -0
  886. package/src/execution/authorization.ts +409 -0
  887. package/src/execution/dispatch.ts +7 -0
  888. package/src/execution/durable.ts +193 -0
  889. package/src/execution/index.ts +12 -0
  890. package/src/execution/primitive.ts +50 -0
  891. package/src/execution/request.ts +109 -0
  892. package/src/execution/scopes.ts +198 -0
  893. package/src/execution/types.ts +113 -0
  894. package/src/http/api-routes.ts +42 -7
  895. package/src/index.ts +127 -10
  896. package/src/json.ts +11 -8
  897. package/src/lake-storage/definition-updates.ts +21 -0
  898. package/src/lake-storage/in-memory.ts +284 -2
  899. package/src/lake-storage/index.ts +14 -0
  900. package/src/lake-storage/merge-validation.ts +117 -0
  901. package/src/lake-storage/merge.ts +35 -0
  902. package/src/lake-storage/types.ts +3 -1
  903. package/src/logging/execution.ts +28 -0
  904. package/src/logging/index.ts +4 -4
  905. package/src/logging/{runtime.ts → service.ts} +7 -7
  906. package/src/materialization/events.ts +1 -0
  907. package/src/materialization/index.ts +2 -0
  908. package/src/materialization/model.ts +30 -18
  909. package/src/materializer/README.md +9 -13
  910. package/src/materializer/edits/commit.ts +85 -28
  911. package/src/materializer/edits/load-state.ts +79 -16
  912. package/src/materializer/edits/operations.ts +72 -36
  913. package/src/materializer/edits/plan.ts +95 -22
  914. package/src/materializer/edits/working-state.ts +86 -55
  915. package/src/materializer/effective/build-events.ts +2 -0
  916. package/src/materializer/effective/diff.ts +22 -0
  917. package/src/materializer/effective/load-state.ts +0 -31
  918. package/src/materializer/effective/resolve.ts +62 -0
  919. package/src/materializer/execution/commit-lifecycle.ts +9 -1
  920. package/src/materializer/execution/plan-stream.ts +33 -9
  921. package/src/materializer/execution/scope.ts +95 -0
  922. package/src/materializer/execution/work-executor.ts +6 -2
  923. package/src/materializer/execution/work-records.ts +39 -6
  924. package/src/materializer/index.ts +9 -1
  925. package/src/materializer/materializer.ts +67 -5
  926. package/src/materializer/projections/finish-run.ts +29 -11
  927. package/src/materializer/projections/replace.ts +55 -22
  928. package/src/materializer/projections/replacement-plan.ts +37 -7
  929. package/src/materializer/shared/batching.ts +4 -1
  930. package/src/materializer/shared/normalize.ts +0 -19
  931. package/src/materializer/telemetry/append.ts +57 -26
  932. package/src/materializer/telemetry/plan.ts +15 -6
  933. package/src/objects/action/request.ts +5 -5
  934. package/src/objects/context/index.ts +1 -0
  935. package/src/objects/context/types.ts +6 -0
  936. package/src/objects/execution.ts +346 -0
  937. package/src/objects/materializer-adapter.ts +1 -23
  938. package/src/objects/query/executor.ts +15 -29
  939. package/src/objects/query/index.ts +1 -2
  940. package/src/objects/query/planner.ts +0 -6
  941. package/src/objects/sdk/object-handle.ts +2 -2
  942. package/src/objects/sdk/object-set.ts +17 -7
  943. package/src/objects/sdk/runtime-query-executor.ts +9 -2
  944. package/src/objects/sdk/telemetry-channel.ts +5 -1
  945. package/src/objects/service/action-service.ts +5 -2
  946. package/src/objects/service/list-service.ts +1 -1
  947. package/src/objects/telemetry/history.ts +8 -3
  948. package/src/objects/telemetry/write-batch.ts +0 -2
  949. package/src/ontology/index.ts +6 -1
  950. package/src/ontology/json-schema.ts +2 -1
  951. package/src/ontology/registry.ts +16 -2
  952. package/src/ontology/validation/normalize.ts +9 -15
  953. package/src/pipelines/execution.ts +105 -0
  954. package/src/pipelines/index.ts +7 -0
  955. package/src/pipelines/request.ts +32 -26
  956. package/src/pipelines/run-dispatch.ts +308 -0
  957. package/src/projections/builders.ts +0 -9
  958. package/src/projections/capability.ts +37 -0
  959. package/src/projections/execution.ts +85 -0
  960. package/src/projections/index.ts +2 -1
  961. package/src/projections/internal.ts +17 -60
  962. package/src/projections/ownership.ts +2 -2
  963. package/src/projections/registry.ts +26 -11
  964. package/src/projections/revision.ts +7 -5
  965. package/src/projections/run-dispatch.ts +497 -0
  966. package/src/projections/run-id.ts +20 -0
  967. package/src/projections/types.ts +12 -0
  968. package/src/projections/validation.ts +3 -3
  969. package/src/queues/in-memory.ts +37 -11
  970. package/src/queues/index.ts +9 -2
  971. package/src/queues/types.ts +70 -45
  972. package/src/rules/execution.ts +49 -0
  973. package/src/rules/index.ts +0 -1
  974. package/src/rules/validation.ts +2 -6
  975. package/src/runtime/ai-usage.ts +17 -0
  976. package/src/runtime/create.ts +28 -68
  977. package/src/runtime/definitions.ts +44 -0
  978. package/src/runtime/host.ts +377 -0
  979. package/src/runtime/index.ts +5 -13
  980. package/src/runtime/internal.ts +12 -0
  981. package/src/runtime/ontology-mutations.ts +5 -3
  982. package/src/runtime/resolve-definitions.ts +238 -0
  983. package/src/runtime/sixb.ts +95 -807
  984. package/src/runtime/types.ts +17 -290
  985. package/src/scheduler/index.ts +1 -1
  986. package/src/scheduler/runtime.ts +37 -6
  987. package/src/schedules/execution.ts +14 -0
  988. package/src/schedules/types.ts +0 -8
  989. package/src/security/every.ts +4 -0
  990. package/src/security/grants.ts +13 -1
  991. package/src/security/index.ts +3 -1
  992. package/src/security/registry.ts +107 -0
  993. package/src/security/types.ts +8 -12
  994. package/src/security/validation.ts +7 -0
  995. package/src/storage/action-runs/failure.ts +64 -0
  996. package/src/storage/action-runs/idempotency.ts +3 -1
  997. package/src/storage/action-runs/in-memory.ts +39 -9
  998. package/src/storage/action-runs/index.ts +3 -0
  999. package/src/storage/action-runs/provider.ts +25 -0
  1000. package/src/storage/action-runs/types.ts +61 -27
  1001. package/src/storage/agents/errors.ts +1 -0
  1002. package/src/storage/agents/in-memory.ts +49 -11
  1003. package/src/storage/agents/index.ts +2 -1
  1004. package/src/storage/agents/provider.ts +27 -0
  1005. package/src/storage/agents/types.ts +19 -19
  1006. package/src/storage/ai-usage/errors.ts +13 -0
  1007. package/src/storage/ai-usage/in-memory.ts +162 -0
  1008. package/src/storage/ai-usage/index.ts +21 -0
  1009. package/src/storage/ai-usage/record.ts +74 -0
  1010. package/src/storage/ai-usage/types.ts +102 -0
  1011. package/src/storage/ai-usage/usage.ts +104 -0
  1012. package/src/storage/auth/types.ts +1 -0
  1013. package/src/storage/connector-connections/errors.ts +24 -0
  1014. package/src/storage/connector-connections/in-memory.ts +1377 -0
  1015. package/src/storage/connector-connections/index.ts +66 -0
  1016. package/src/storage/connector-connections/provider/authorizations.ts +446 -0
  1017. package/src/storage/connector-connections/provider/connections.ts +291 -0
  1018. package/src/storage/connector-connections/provider/runs.ts +369 -0
  1019. package/src/storage/connector-connections/provider/shared.ts +342 -0
  1020. package/src/storage/connector-connections/provider.ts +219 -0
  1021. package/src/storage/connector-connections/types.ts +546 -0
  1022. package/src/storage/executions/errors.ts +21 -0
  1023. package/src/storage/executions/in-memory.ts +75 -0
  1024. package/src/storage/executions/index.ts +16 -0
  1025. package/src/storage/executions/provider.ts +292 -0
  1026. package/src/storage/executions/run-link.ts +70 -0
  1027. package/src/storage/executions/types.ts +49 -0
  1028. package/src/storage/executions/validation.ts +370 -0
  1029. package/src/storage/in-memory/index.ts +50 -16
  1030. package/src/storage/index.ts +155 -15
  1031. package/src/storage/ontology/commits.ts +1 -0
  1032. package/src/storage/ontology/in-memory/index.ts +2 -0
  1033. package/src/storage/ontology/in-memory/materializations-finalization.ts +2 -1
  1034. package/src/storage/ontology/in-memory/materializations-state.ts +10 -0
  1035. package/src/storage/ontology/in-memory/materializations-work.ts +2 -1
  1036. package/src/storage/ontology/in-memory/materializations.ts +131 -9
  1037. package/src/storage/ontology/in-memory/outbox.ts +1 -1
  1038. package/src/storage/ontology/in-memory/shared-state.ts +12 -1
  1039. package/src/storage/ontology/index.ts +6 -0
  1040. package/src/storage/ontology/materializations.ts +50 -4
  1041. package/src/storage/ontology/outbox.ts +13 -2
  1042. package/src/storage/ontology/provider-header-validation.ts +1 -0
  1043. package/src/storage/ontology/provider-work.ts +33 -14
  1044. package/src/storage/ontology/provider.ts +72 -52
  1045. package/src/storage/operation-scope.ts +1 -0
  1046. package/src/storage/pipeline-runs/idempotency.ts +14 -0
  1047. package/src/storage/pipeline-runs/in-memory.ts +88 -8
  1048. package/src/storage/pipeline-runs/index.ts +5 -1
  1049. package/src/storage/pipeline-runs/provider.ts +25 -0
  1050. package/src/storage/pipeline-runs/types.ts +37 -14
  1051. package/src/storage/projection-runs/in-memory.ts +93 -24
  1052. package/src/storage/projection-runs/index.ts +4 -0
  1053. package/src/storage/projection-runs/lifecycle.ts +165 -36
  1054. package/src/storage/projection-runs/provider.ts +34 -0
  1055. package/src/storage/projection-runs/types.ts +34 -11
  1056. package/src/storage/run-listing.ts +22 -13
  1057. package/src/storage/sync-runs/idempotency.ts +18 -0
  1058. package/src/storage/sync-runs/in-memory.ts +92 -9
  1059. package/src/storage/sync-runs/index.ts +5 -1
  1060. package/src/storage/sync-runs/provider.ts +25 -0
  1061. package/src/storage/sync-runs/types.ts +44 -15
  1062. package/src/storage/types.ts +45 -17
  1063. package/src/storage/webhook-runs/errors.ts +14 -0
  1064. package/src/storage/webhook-runs/in-memory.ts +84 -9
  1065. package/src/storage/webhook-runs/index.ts +5 -1
  1066. package/src/storage/webhook-runs/provider.ts +30 -0
  1067. package/src/storage/webhook-runs/types.ts +52 -11
  1068. package/src/storage/workflow-runs/in-memory.ts +91 -55
  1069. package/src/storage/workflow-runs/index.ts +2 -0
  1070. package/src/storage/workflow-runs/provider.ts +70 -0
  1071. package/src/storage/workflow-runs/types.ts +38 -25
  1072. package/src/syncs/builders.ts +33 -15
  1073. package/src/syncs/execution.ts +78 -0
  1074. package/src/syncs/index.ts +14 -0
  1075. package/src/syncs/request.ts +32 -43
  1076. package/src/syncs/run-dispatch.ts +312 -0
  1077. package/src/syncs/sources.ts +20 -0
  1078. package/src/syncs/types.ts +75 -25
  1079. package/src/syncs/validation.ts +77 -0
  1080. package/src/testing/action-execution.ts +61 -0
  1081. package/src/testing/agent-execution.ts +81 -0
  1082. package/src/testing/agent-storage-contract.ts +158 -63
  1083. package/src/testing/ai-usage-storage-contract.ts +528 -0
  1084. package/src/testing/auth-storage-contract.ts +17 -1
  1085. package/src/testing/broker-contract.ts +16 -1
  1086. package/src/testing/connector-connection-storage-contract.ts +1052 -0
  1087. package/src/testing/execution-storage-contract.ts +435 -0
  1088. package/src/testing/execution.ts +48 -0
  1089. package/src/testing/index.ts +56 -0
  1090. package/src/testing/lake-merge-storage-contract.ts +302 -0
  1091. package/src/testing/lake-storage-contract.ts +23 -0
  1092. package/src/testing/materializer-fixture.ts +11 -3
  1093. package/src/testing/materializer-storage-contract.ts +213 -11
  1094. package/src/testing/ontology-contract-fixture.ts +35 -2
  1095. package/src/testing/ontology-storage-contract.ts +75 -14
  1096. package/src/testing/pipeline-execution.ts +64 -0
  1097. package/src/testing/projection-execution.ts +98 -0
  1098. package/src/testing/projection-run-storage-contract.ts +215 -29
  1099. package/src/testing/queues-contract.ts +40 -51
  1100. package/src/testing/sync-execution.ts +61 -0
  1101. package/src/testing/webhook-execution.ts +47 -0
  1102. package/src/testing/webhook-run-storage-contract.ts +240 -0
  1103. package/src/testing/workflow-execution.ts +77 -0
  1104. package/src/webhooks/index.ts +2 -1
  1105. package/src/webhooks/internal.ts +5 -0
  1106. package/src/webhooks/registry.ts +60 -36
  1107. package/src/webhooks/run-admission.ts +172 -0
  1108. package/src/webhooks/types.ts +8 -5
  1109. package/src/workers/queue-delivery.ts +25 -22
  1110. package/src/workers/queue-worker.ts +62 -32
  1111. package/src/workflows/execution.ts +292 -0
  1112. package/src/workflows/failure.ts +63 -0
  1113. package/src/workflows/index.ts +10 -1
  1114. package/src/workflows/request.ts +39 -118
  1115. package/src/workflows/run-dispatch.ts +359 -0
  1116. package/src/workflows/snapshot.ts +1 -10
  1117. package/src/workflows/types.ts +39 -8
  1118. package/dist/actions/runtime.d.ts +0 -11
  1119. package/dist/actions/runtime.d.ts.map +0 -1
  1120. package/dist/agents/runtime.d.ts +0 -41
  1121. package/dist/agents/runtime.d.ts.map +0 -1
  1122. package/dist/chunk-0fygrz37.js +0 -354
  1123. package/dist/chunk-0fygrz37.js.map +0 -17
  1124. package/dist/chunk-0psb6kdw.js +0 -989
  1125. package/dist/chunk-0psb6kdw.js.map +0 -15
  1126. package/dist/chunk-1vffvydj.js.map +0 -10
  1127. package/dist/chunk-2gpr6jsz.js.map +0 -13
  1128. package/dist/chunk-2s6sydsh.js.map +0 -12
  1129. package/dist/chunk-50kv63vj.js.map +0 -12
  1130. package/dist/chunk-590dejbp.js +0 -49
  1131. package/dist/chunk-590dejbp.js.map +0 -10
  1132. package/dist/chunk-867jxh7c.js.map +0 -19
  1133. package/dist/chunk-aebzcsxr.js.map +0 -48
  1134. package/dist/chunk-btpe64e4.js +0 -554
  1135. package/dist/chunk-btpe64e4.js.map +0 -13
  1136. package/dist/chunk-dcgrzj1t.js.map +0 -36
  1137. package/dist/chunk-dhmj53mx.js.map +0 -16
  1138. package/dist/chunk-hsv43v58.js +0 -1390
  1139. package/dist/chunk-hsv43v58.js.map +0 -21
  1140. package/dist/chunk-jdwx7vzs.js.map +0 -14
  1141. package/dist/chunk-k25jm1x5.js +0 -102
  1142. package/dist/chunk-k25jm1x5.js.map +0 -10
  1143. package/dist/chunk-k41ajtz7.js +0 -352
  1144. package/dist/chunk-k41ajtz7.js.map +0 -13
  1145. package/dist/chunk-k6j72mtt.js +0 -9
  1146. package/dist/chunk-k6j72mtt.js.map +0 -10
  1147. package/dist/chunk-nvamz5dv.js +0 -819
  1148. package/dist/chunk-nvamz5dv.js.map +0 -21
  1149. package/dist/chunk-pv1yad91.js +0 -1165
  1150. package/dist/chunk-pv1yad91.js.map +0 -27
  1151. package/dist/chunk-q4qzq0ea.js.map +0 -14
  1152. package/dist/chunk-r65yscvk.js.map +0 -11
  1153. package/dist/chunk-t358gywy.js.map +0 -34
  1154. package/dist/chunk-t72dvahb.js.map +0 -12
  1155. package/dist/chunk-v5c085yp.js.map +0 -10
  1156. package/dist/chunk-wj01s5hr.js.map +0 -11
  1157. package/dist/chunk-wxhdnwh4.js +0 -37
  1158. package/dist/chunk-wxhdnwh4.js.map +0 -10
  1159. package/dist/chunk-xz5g49bp.js.map +0 -11
  1160. package/dist/chunk-ya6brh8a.js.map +0 -11
  1161. package/dist/chunk-yvef9xwc.js.map +0 -44
  1162. package/dist/chunk-yxss87qa.js.map +0 -14
  1163. package/dist/connectors/runtime.d.ts +0 -13
  1164. package/dist/connectors/runtime.d.ts.map +0 -1
  1165. package/dist/events/runtime.d.ts.map +0 -1
  1166. package/dist/objects/contexts.d.ts +0 -45
  1167. package/dist/objects/contexts.d.ts.map +0 -1
  1168. package/dist/objects/helpers.d.ts +0 -7
  1169. package/dist/objects/helpers.d.ts.map +0 -1
  1170. package/dist/runtime/scoped.d.ts +0 -158
  1171. package/dist/runtime/scoped.d.ts.map +0 -1
  1172. package/dist/security/runtime.d.ts +0 -16
  1173. package/dist/security/runtime.d.ts.map +0 -1
  1174. package/dist/storage/webhook-deliveries/in-memory.d.ts +0 -18
  1175. package/dist/storage/webhook-deliveries/in-memory.d.ts.map +0 -1
  1176. package/dist/storage/webhook-deliveries/index.d.ts +0 -3
  1177. package/dist/storage/webhook-deliveries/index.d.ts.map +0 -1
  1178. package/dist/storage/webhook-deliveries/types.d.ts +0 -43
  1179. package/dist/storage/webhook-deliveries/types.d.ts.map +0 -1
  1180. package/dist/workflows/runtime.d.ts +0 -33
  1181. package/dist/workflows/runtime.d.ts.map +0 -1
  1182. package/src/actions/runtime.ts +0 -31
  1183. package/src/agents/runtime.ts +0 -124
  1184. package/src/connectors/runtime.ts +0 -100
  1185. package/src/objects/contexts.ts +0 -64
  1186. package/src/objects/helpers.ts +0 -18
  1187. package/src/runtime/scoped.ts +0 -436
  1188. package/src/security/runtime.ts +0 -101
  1189. package/src/storage/webhook-deliveries/in-memory.ts +0 -108
  1190. package/src/storage/webhook-deliveries/index.ts +0 -9
  1191. package/src/storage/webhook-deliveries/types.ts +0 -41
  1192. package/src/workflows/runtime.ts +0 -68
  1193. /package/dist/{chunk-45tw90k7.js.map → chunk-4gz41why.js.map} +0 -0
  1194. /package/dist/{chunk-vj723r3p.js.map → chunk-8b55ygje.js.map} +0 -0
  1195. /package/dist/{chunk-p6r5g77m.js.map → chunk-vybf6pkp.js.map} +0 -0
  1196. /package/dist/{chunk-5yny9z0e.js.map → chunk-z3zp0bj1.js.map} +0 -0
@@ -1,34 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/objects/action/request.ts", "../src/objects/context/resolve.ts", "../src/objects/errors.ts", "../src/objects/materializer-adapter.ts", "../src/objects/link/authorization.ts", "../src/objects/link/remove.ts", "../src/objects/link/endpoints.ts", "../src/objects/link/upsert.ts", "../src/objects/runtime-batch.ts", "../src/objects/link/upsert-batch.ts", "../src/objects/object/delete.ts", "../src/objects/object/upsert.ts", "../src/objects/object/upsert-batch.ts", "../src/objects/telemetry/write-batch.ts", "../src/objects/telemetry/append-batch.ts", "../src/objects/telemetry/history.ts", "../src/objects/sdk/telemetry-channel.ts", "../src/objects/sdk/object-handle.ts", "../src/objects/sdk/runtime-query-executor.ts", "../src/objects/sdk/object-set.ts", "../src/objects/service/action-service.ts", "../src/objects/service/link-service.ts", "../src/objects/service/list-service.ts", "../src/objects/service/object-service.ts", "../src/objects/service/telemetry-service.ts"],
4
- "sourcesContent": [
5
- "/**\n * Compatibility leaf operation: request an action on an object.\n *\n * The canonical action request path lives in `actions/request.ts`; object-bound\n * helpers delegate here by supplying an object subject.\n */\nimport {\n type RequestActionAndWaitOptions,\n type RequestActionOptions,\n type RequestActionResult,\n requestAction as requestRuntimeAction,\n requestActionAndWait as requestRuntimeActionAndWait,\n} from \"../../actions/request\"\nimport type { ActionRunRecord } from \"../../storage\"\nimport type { ResolvedObjectContext } from \"../context\"\n\nexport type { RequestActionAndWaitOptions, RequestActionOptions }\n\nexport async function requestAction(\n ctx: ResolvedObjectContext,\n params: {\n primaryId: string\n actionId: string\n params?: Record<string, unknown>\n options?: RequestActionOptions\n }\n): Promise<RequestActionResult> {\n return requestRuntimeAction(ctx, {\n actionId: params.actionId,\n subject: {\n kind: \"object\",\n objectTypeId: ctx.objectType.id,\n primaryId: params.primaryId,\n },\n params: params.params,\n runId: params.options?.runId,\n signal: params.options?.signal,\n })\n}\n\nexport async function requestActionAndWait(\n ctx: ResolvedObjectContext,\n params: {\n primaryId: string\n actionId: string\n params?: Record<string, unknown>\n options?: RequestActionAndWaitOptions\n }\n): Promise<ActionRunRecord> {\n return requestRuntimeActionAndWait(ctx, {\n actionId: params.actionId,\n subject: {\n kind: \"object\",\n objectTypeId: ctx.objectType.id,\n primaryId: params.primaryId,\n },\n params: params.params,\n runId: params.options?.runId,\n timeoutMs: params.options?.timeoutMs,\n signal: params.options?.signal,\n onRequested: params.options?.onRequested,\n })\n}\n",
6
- "/**\n * Context resolution factories.\n *\n * Resolve ontology identifiers into concrete type data so leaf functions\n * receive all structural information pre-resolved.\n */\n\nimport type { ObjectLink } from \"../../ontology\"\nimport { OntologyNotFoundError } from \"../../ontology/errors\"\nimport type { ObjectTypeWithPropertyTokens } from \"../../ontology/tokens\"\nimport type { SixbRuntimeContext } from \"../../runtime/types\"\nimport type { ResolvedLinkContext, ResolvedObjectContext } from \"./types\"\n\n/** Look up a link definition on an object type, throwing if not found. */\nexport function requireLinkDefinition(\n objectType: ObjectTypeWithPropertyTokens,\n linkId: string\n): ObjectLink {\n const def = objectType.links.find((l) => l.id === linkId)\n if (!def) throw new OntologyNotFoundError(`Unknown link '${objectType.id}.${linkId}'`)\n return def\n}\n\n/**\n * Resolve an object type id to a full ResolvedObjectContext.\n *\n * Uses ontology.resolveObjectType() and getPrimaryPropertyId() — these\n * are structural resolution calls that belong in factories, not leaf functions.\n */\nexport function resolveObjectContext(\n runtime: SixbRuntimeContext,\n objectTypeId: string\n): ResolvedObjectContext {\n const objectType = runtime.ontology.resolveObjectType(objectTypeId)\n const primaryPropertyId = runtime.ontology.getPrimaryPropertyId(objectTypeId)\n return { ...runtime, objectType, primaryPropertyId }\n}\n\n/**\n * Resolve a link id to a full ResolvedLinkContext.\n *\n * Uses requireLinkDefinition to look up the link definition on the\n * already-resolved object type.\n */\nexport function resolveLinkContext(\n objCtx: ResolvedObjectContext,\n linkId: string\n): ResolvedLinkContext {\n const linkDefinition = requireLinkDefinition(objCtx.objectType, linkId)\n return { ...objCtx, linkDefinition }\n}\n",
7
- "/**\n * Error for runtime invariants and failures specific to the objects module\n * (e.g., unexpected event results after appending an object/link event).\n */\nexport class ObjectError extends Error {\n readonly name = \"ObjectError\"\n}\n",
8
- "/**\n * Runtime translation onto the ontology Materializer.\n *\n * Every typed and dynamic object/link mutation lowers to canonical Materializer operations here and\n * every Materializer result is mapped back to the public runtime shapes. The adapter owns no\n * ontology semantics: authority classification, effective resolution, validation, and event\n * construction all happen inside the Materializer's single commit.\n */\n\nimport { randomUUID } from \"node:crypto\"\nimport type { EventActor } from \"../events/envelope\"\nimport type { JsonValue } from \"../json\"\nimport type {\n EditCommitResult,\n EffectiveObjectSnapshot,\n MaterializationItemError,\n OntologyEditOperation,\n OntologyLinkRef,\n OntologyObjectRef,\n OntologyOperationOutcome,\n} from \"../materialization/model\"\nimport { normalizeJsonProperties } from \"../materializer\"\nimport type { ObjectLink, ValueType } from \"../ontology\"\nimport { OntologyValidationError } from \"../ontology/errors\"\nimport type { ObjectTypeWithPropertyTokens } from \"../ontology/tokens\"\nimport {\n assertKnownProperties,\n assertLinkTargetType,\n normalizeLinkProperties,\n normalizeObjectProperties,\n validateLinkProperties,\n validateObjectProperties,\n} from \"../ontology/validation\"\nimport { getOntologyMutationRuntime } from \"../runtime/ontology-mutations\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport type { ObjectRow } from \"../storage\"\nimport { ObjectError } from \"./errors\"\n\n/** The runtime pieces one commit needs. */\n// `authorization` is here only so a commit can name its actor; it stays optional, so every existing\n// privileged caller still satisfies the type.\nexport type RuntimeMaterializerContext = Pick<\n SixbRuntimeContext,\n \"projectId\" | \"storage\" | \"authorization\"\n>\n\n/** One caller-supplied batch item, lowered to the operations it contributes. */\nexport interface RuntimeBatchGroup {\n /** Position in the caller's input array; item errors are reported against it. */\n readonly index: number\n readonly operations: readonly OntologyEditOperation[]\n}\n\nexport interface RuntimeBatchCommit {\n readonly commit: EditCommitResult | null\n /** Outcomes per input position, in the order the item's operations were submitted. */\n readonly outcomes: ReadonlyMap<number, readonly OntologyOperationOutcome[]>\n}\n\n/**\n * The principal behind a runtime write, when there is one.\n *\n * `origin: { kind: \"runtime\" }` already says a write bypassed an Action; this says who made it.\n * Absent on a privileged caller (workers, syncs, tests), which is what makes the field's absence\n * meaningful rather than merely unset: an event with no actor was written by the system itself.\n *\n * A `Principal` is an `EventActor` — same literals, no translation.\n */\nfunction runtimeActor(ctx: RuntimeMaterializerContext): { readonly actor?: EventActor } {\n const principal = ctx.authorization?.principal\n return principal === undefined ? {} : { actor: principal }\n}\n\n/**\n * Commits ordered operations as one atomic runtime commit.\n *\n * A fresh request id per call keeps each runtime mutation its own commit; the Materializer's\n * idempotency replay then only collapses a retry of the very same request.\n */\nexport async function commitRuntimeOperations(\n ctx: RuntimeMaterializerContext,\n operations: readonly OntologyEditOperation[]\n): Promise<EditCommitResult> {\n const mutations = getOntologyMutationRuntime(ctx)\n const commit = await mutations.commitEdits({\n mode: \"atomic\",\n source: { kind: \"runtime\", requestId: randomUUID() },\n ...runtimeActor(ctx),\n operations,\n expectedObjects: [],\n expectedLinks: [],\n expectedLinkScopes: [],\n })\n return commit\n}\n\n/**\n * Commits grouped batch operations as one ordered continue-mode transaction.\n *\n * Successful items apply against one evolving authority state while semantic failures are recorded\n * per item. Provider, serialization, and CAS failures still roll the whole transaction back.\n *\n * An item that lowers to several operations is declared as one operation group so the Materializer\n * rolls the whole item back rather than committing the operations that ran before the failure.\n */\nexport async function commitRuntimeBatch(\n ctx: RuntimeMaterializerContext,\n groups: readonly RuntimeBatchGroup[]\n): Promise<RuntimeBatchCommit> {\n const operations = groups.flatMap((group) => group.operations)\n if (operations.length === 0) {\n return { commit: null, outcomes: new Map() }\n }\n\n const operationGroups = groups\n .filter((group) => group.operations.length > 1)\n .map((group) => group.operations.map((operation) => operation.id))\n\n const mutations = getOntologyMutationRuntime(ctx)\n const commit = await mutations.commitEdits({\n mode: \"continue\",\n source: { kind: \"runtime\", requestId: randomUUID() },\n ...runtimeActor(ctx),\n operations,\n ...(operationGroups.length > 0 ? { operationGroups } : {}),\n })\n\n const byId = new Map(commit.outcomes.map((outcome) => [outcome.id, outcome]))\n const outcomes = new Map<number, readonly OntologyOperationOutcome[]>()\n for (const group of groups) {\n outcomes.set(\n group.index,\n group.operations.map((operation) => requireOutcome(byId, operation.id))\n )\n }\n return { commit, outcomes }\n}\n\n/**\n * Assigns the canonical operation id for one batch item.\n *\n * Ids derive from the caller's original ordinal so outcomes map back to input positions even when\n * earlier items failed local validation and never reached the Materializer.\n */\nexport function runtimeOperationId(index: number, subOrdinal = 0): string {\n return subOrdinal === 0 ? `op:${index}` : `op:${index}.${subOrdinal}`\n}\n\nexport interface NormalizedRuntimeObject {\n readonly primaryId: string\n /** Managed authority values; identity lives in the object ref, never in the properties. */\n readonly properties: Readonly<Record<string, JsonValue>>\n}\n\n/**\n * Validates and normalizes one runtime object input at the SDK/service boundary.\n *\n * Shape and value-type errors surface here so a batch can report them against the caller's original\n * position. Authority classification, required-property enforcement, and cardinality stay in the\n * Materializer, which validates the resolved effective object instead of the request.\n */\nexport function normalizeRuntimeObject(input: {\n readonly objectType: ObjectTypeWithPropertyTokens\n readonly primaryPropertyId: string\n readonly properties: Record<string, unknown>\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): NormalizedRuntimeObject {\n const { objectType, primaryPropertyId, properties, valueTypesById } = input\n assertKnownProperties(objectType, properties)\n validateObjectProperties(objectType, properties, valueTypesById)\n\n const primaryValue = properties[primaryPropertyId]\n if (primaryValue === undefined || primaryValue === null) {\n throw new OntologyValidationError(\n `[Sixb] Missing primary property '${primaryPropertyId}' in upsert for '${objectType.id}'`\n )\n }\n\n const normalized = normalizeObjectProperties(\n objectType.properties,\n properties,\n valueTypesById,\n objectType.id\n )\n const { [primaryPropertyId]: _identity, ...managed } = normalized\n return {\n primaryId: String(primaryValue),\n properties: normalizeJsonProperties(managed, `${objectType.id} properties`),\n }\n}\n\n/**\n * Validates and normalizes one runtime link input.\n *\n * Managed link authority carries the complete property set, so required link properties must be\n * present in the request rather than inherited from the stored edge.\n */\nexport function normalizeRuntimeLink(input: {\n readonly objectType: ObjectTypeWithPropertyTokens\n readonly linkDefinition: ObjectLink\n readonly linkId: string\n readonly targetTypeId: string\n readonly properties?: Record<string, unknown>\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n readonly isValidLinkTarget: (expected: string | string[], actual: string) => boolean\n}): Readonly<Record<string, JsonValue>> | undefined {\n const { objectType, linkDefinition, linkId, targetTypeId, properties, valueTypesById } = input\n assertLinkTargetType(objectType.id, linkId, linkDefinition, targetTypeId, input.isValidLinkTarget)\n validateLinkProperties(objectType, linkDefinition, properties, undefined, valueTypesById)\n const normalized = normalizeLinkProperties(objectType, linkDefinition, properties, valueTypesById)\n if (normalized === undefined) return undefined\n return normalizeJsonProperties(normalized, `${objectType.id}.${linkId} properties`)\n}\n\nexport function objectUpsertOperation(input: {\n readonly id: string\n readonly ref: OntologyObjectRef\n readonly properties: Readonly<Record<string, JsonValue>>\n}): OntologyEditOperation {\n return { id: input.id, kind: \"object.upsert\", ref: input.ref, properties: input.properties }\n}\n\nexport function objectDeleteOperation(input: {\n readonly id: string\n readonly ref: OntologyObjectRef\n}): OntologyEditOperation {\n return { id: input.id, kind: \"object.delete\", ref: input.ref }\n}\n\nexport function objectRestoreOperation(input: {\n readonly id: string\n readonly ref: OntologyObjectRef\n}): OntologyEditOperation {\n return { id: input.id, kind: \"object.restore\", ref: input.ref }\n}\n\nexport function linkUpsertOperation(input: {\n readonly id: string\n readonly ref: OntologyLinkRef\n readonly properties?: Readonly<Record<string, JsonValue>>\n}): OntologyEditOperation {\n return {\n id: input.id,\n kind: \"link.upsert\",\n ref: input.ref,\n ...(input.properties !== undefined ? { properties: input.properties } : {}),\n }\n}\n\nexport function linkDeleteOperation(input: {\n readonly id: string\n readonly ref: OntologyLinkRef\n}): OntologyEditOperation {\n return { id: input.id, kind: \"link.delete\", ref: input.ref }\n}\n\n/** Reads the outcomes one batch item produced; the commit returns one per submitted operation. */\nexport function requireItemOutcomes(\n commit: RuntimeBatchCommit,\n index: number\n): readonly OntologyOperationOutcome[] {\n const outcomes = commit.outcomes.get(index)\n if (!outcomes || outcomes.length === 0) {\n throw new ObjectError(`[Sixb] Materializer returned no outcome for batch item ${index}.`)\n }\n return outcomes\n}\n\n/** Reads the effective object an ok outcome produced; runtime object writes always resolve one. */\nexport function requireEffectiveObject(outcome: OntologyOperationOutcome): EffectiveObjectSnapshot {\n if (!outcome.ok || !outcome.object) {\n throw new ObjectError(`[Sixb] Materializer returned no effective object for '${outcome.id}'.`)\n }\n return outcome.object\n}\n\nexport function toObjectRow(projectId: string, snapshot: EffectiveObjectSnapshot): ObjectRow {\n return {\n projectId,\n objectTypeId: snapshot.ref.objectTypeId,\n primaryId: snapshot.ref.primaryId,\n properties: structuredClone(snapshot.properties) as Record<string, unknown>,\n createdAt: new Date(snapshot.createdAt),\n updatedAt: new Date(snapshot.updatedAt),\n version: snapshot.version,\n lastCommitId: snapshot.lastCommitId,\n }\n}\n\n/** Rehydrates a persisted item error into the public runtime error type. */\nexport function toItemError(error: MaterializationItemError): Error {\n switch (error.code) {\n case \"validation\":\n return new OntologyValidationError(error.message)\n }\n}\n\nfunction requireOutcome(\n outcomes: ReadonlyMap<string, OntologyOperationOutcome>,\n id: string\n): OntologyOperationOutcome {\n const outcome = outcomes.get(id)\n if (!outcome) {\n throw new ObjectError(`[Sixb] Materializer returned no outcome for '${id}'.`)\n }\n return outcome\n}\n",
9
- "/**\n * The authorization rule for writing a link, in one place because all three link leaves need it.\n */\nimport { type AuthorizationContext, assertAuthorized, assertCanEdit } from \"../../authorization\"\n\n/**\n * Assert a principal may create or remove a link.\n *\n * `edit` on the **source** type, `view` on the **target**: a link is declared on the source type\n * (`objectType.links`), and writing one changes the source's edges, not the target's properties.\n * Requiring `edit` on the target too would mean a clerk needs write access to every customer before\n * attaching an invoice to one.\n *\n * `view` on the target is still required, and for two reasons: it matches how links are *read* —\n * `canViewLink` already demands `view` on both endpoints — and without it the endpoint-existence\n * check that follows would answer whether a target the principal cannot see exists.\n *\n * Call this *before* any endpoint lookup, for that second reason.\n */\nexport function assertCanWriteLink(\n ctx: { readonly authorization?: AuthorizationContext },\n endpoints: { readonly sourceTypeId: string; readonly targetTypeId: string }\n): void {\n assertCanEdit(ctx, endpoints.sourceTypeId)\n assertAuthorized(ctx, { kind: \"object.view\", objectTypeId: endpoints.targetTypeId })\n}\n",
10
- "/**\n * Leaf operation: remove a single link through the ontology Materializer.\n */\nimport { assertLinkTargetType } from \"../../ontology/validation\"\nimport type { ResolvedLinkContext } from \"../context\"\nimport {\n commitRuntimeOperations,\n linkDeleteOperation,\n runtimeOperationId,\n} from \"../materializer-adapter\"\nimport { assertCanWriteLink } from \"./authorization\"\n\nexport async function removeLink(\n ctx: ResolvedLinkContext,\n params: {\n sourceId: string\n linkId: string\n targetTypeId: string\n targetId: string\n }\n): Promise<void> {\n const { objectType, linkDefinition, ontology } = ctx\n const { sourceId, linkId, targetTypeId, targetId } = params\n assertCanWriteLink(ctx, { sourceTypeId: objectType.id, targetTypeId })\n\n assertLinkTargetType(objectType.id, linkId, linkDefinition, targetTypeId, (expected, actual) =>\n ontology.isValidLinkTarget(expected, actual)\n )\n\n // A missing link is a no-op: the delete records managed authority only when an effective edge\n // exists, so the commit reports `unchanged` instead of failing.\n await commitRuntimeOperations(ctx, [\n linkDeleteOperation({\n id: runtimeOperationId(0),\n ref: {\n source: { objectTypeId: objectType.id, primaryId: sourceId },\n linkId,\n target: { objectTypeId: targetTypeId, primaryId: targetId },\n },\n }),\n ])\n}\n",
11
- "/**\n * Shared endpoint existence reads for runtime link batches.\n *\n * The Materializer independently refuses a link whose endpoints are not effective. These reads exist\n * only so batch callers keep receiving the public {@link ObjectNotFoundError} for a missing endpoint\n * instead of a generic per-item validation error.\n */\n\nimport type { SixbRuntimeContext } from \"../../runtime/types\"\nimport { ObjectNotFoundError } from \"../../storage/errors\"\n\nexport interface LinkEndpointItem {\n readonly objectType: { readonly id: string }\n readonly sourceId: string\n readonly targetTypeId: string\n readonly targetId: string\n}\n\nexport type EndpointExistence = ReadonlySet<string>\n\nexport function collectEndpointLookups(\n items: readonly LinkEndpointItem[]\n): { objectTypeId: string; primaryId: string }[] {\n const lookups: { objectTypeId: string; primaryId: string }[] = []\n const seen = new Set<string>()\n\n for (const item of items) {\n for (const endpoint of [\n { objectTypeId: item.objectType.id, primaryId: item.sourceId },\n { objectTypeId: item.targetTypeId, primaryId: item.targetId },\n ]) {\n const key = endpointKey(endpoint.objectTypeId, endpoint.primaryId)\n if (seen.has(key)) continue\n seen.add(key)\n lookups.push(endpoint)\n }\n }\n\n return lookups\n}\n\nexport async function loadEndpointExistence(\n ctx: Pick<SixbRuntimeContext, \"projectId\" | \"storage\">,\n lookups: readonly { objectTypeId: string; primaryId: string }[]\n): Promise<EndpointExistence> {\n if (lookups.length === 0) return new Set()\n const rows = await ctx.storage.objects.getByPrimaryIdBatch({\n projectId: ctx.projectId,\n items: lookups,\n })\n return new Set(rows.keys())\n}\n\n/** Throws {@link ObjectNotFoundError} for the first endpoint the read did not find. */\nexport function requireEndpoints(item: LinkEndpointItem, existing: EndpointExistence): void {\n if (!existing.has(endpointKey(item.objectType.id, item.sourceId))) {\n throw new ObjectNotFoundError(item.objectType.id, item.sourceId, \"Source object not found\")\n }\n if (!existing.has(endpointKey(item.targetTypeId, item.targetId))) {\n throw new ObjectNotFoundError(item.targetTypeId, item.targetId, \"Target object not found\")\n }\n}\n\nfunction endpointKey(objectTypeId: string, primaryId: string): string {\n return `${objectTypeId}:${primaryId}`\n}\n",
12
- "/**\n * Leaf operation: upsert a single link through the ontology Materializer.\n */\nimport type { ResolvedLinkContext } from \"../context\"\nimport {\n commitRuntimeOperations,\n linkUpsertOperation,\n normalizeRuntimeLink,\n runtimeOperationId,\n} from \"../materializer-adapter\"\nimport { assertCanWriteLink } from \"./authorization\"\nimport { collectEndpointLookups, loadEndpointExistence, requireEndpoints } from \"./endpoints\"\n\nexport async function upsertLink(\n ctx: ResolvedLinkContext,\n params: {\n sourceId: string\n linkId: string\n targetTypeId: string\n targetId: string\n properties?: Record<string, unknown>\n }\n): Promise<void> {\n const { objectType, linkDefinition, ontology } = ctx\n const { sourceId, linkId, targetTypeId, targetId, properties } = params\n assertCanWriteLink(ctx, { sourceTypeId: objectType.id, targetTypeId })\n const endpoints = { objectType, sourceId, targetTypeId, targetId }\n\n // Endpoint reads keep the public `ObjectNotFoundError` contract; the Materializer independently\n // refuses a link whose endpoints are not effective when it commits. This runs before property\n // normalization so the same input reports the same error class here and through the batch APIs,\n // which check endpoints first inside `plan`.\n requireEndpoints(endpoints, await loadEndpointExistence(ctx, collectEndpointLookups([endpoints])))\n\n const normalizedProperties = normalizeRuntimeLink({\n objectType,\n linkDefinition,\n linkId,\n targetTypeId,\n properties,\n valueTypesById: ontology.getValueTypesById(),\n isValidLinkTarget: (expected, actual) => ontology.isValidLinkTarget(expected, actual),\n })\n\n await commitRuntimeOperations(ctx, [\n linkUpsertOperation({\n id: runtimeOperationId(0),\n ref: {\n source: { objectTypeId: objectType.id, primaryId: sourceId },\n linkId,\n target: { objectTypeId: targetTypeId, primaryId: targetId },\n },\n ...(normalizedProperties !== undefined ? { properties: normalizedProperties } : {}),\n }),\n ])\n}\n",
13
- "/**\n * Per-item mechanics shared by every runtime batch.\n *\n * One place owns the rules the public batch APIs promise: a local failure stays at its own input\n * position, an identical repeat collapses onto the first item and shares its result, a conflicting\n * repeat is rejected, and each item's Materializer outcomes map back to the position they came from.\n */\n\nimport type { OntologyEditOperation, OntologyOperationOutcome } from \"../materialization/model\"\nimport { OntologyValidationError } from \"../ontology/errors\"\nimport type { BatchItemResult } from \"../runtime/types\"\nimport {\n commitRuntimeBatch,\n type RuntimeMaterializerContext,\n requireItemOutcomes,\n toItemError,\n} from \"./materializer-adapter\"\n\nexport interface RuntimeBatchItemPlan {\n /** Identity this item claims. A later item claiming it must be identical. */\n readonly key: string\n /** How that identity reads in an error message, e.g. `object 'room:r1'`. */\n readonly label: string\n /** Canonical content, so an identical repeat is recognized as one. */\n readonly fingerprint: string\n readonly operations: readonly OntologyEditOperation[]\n}\n\nexport interface RuntimeItemBatch<TItem, TValue> {\n readonly ctx: RuntimeMaterializerContext\n readonly items: readonly TItem[]\n /** Lowers one item, throwing to record a local failure at that item's position. */\n plan(item: TItem, index: number): RuntimeBatchItemPlan\n /** Maps the outcomes of a fully successful item to its public value. */\n value(outcomes: readonly OntologyOperationOutcome[]): TValue\n}\n\ninterface PlannedItem {\n readonly index: number\n readonly operations: readonly OntologyEditOperation[]\n}\n\ninterface ClaimedIdentity {\n readonly index: number\n readonly fingerprint: string\n}\n\nexport async function runRuntimeItemBatch<TItem, TValue>(\n batch: RuntimeItemBatch<TItem, TValue>\n): Promise<readonly BatchItemResult<TValue>[]> {\n const { items } = batch\n if (items.length === 0) return []\n\n const results: BatchItemResult<TValue>[] = new Array(items.length)\n const planned: PlannedItem[] = []\n const claims = new Map<string, ClaimedIdentity>()\n /** Positions that repeat an earlier identical item and share its result. */\n const aliases = new Map<number, number>()\n\n for (const [index, item] of items.entries()) {\n let plan: RuntimeBatchItemPlan\n try {\n plan = batch.plan(item, index)\n } catch (error) {\n results[index] = {\n ok: false,\n error: error instanceof Error ? error : new Error(String(error)),\n }\n continue\n }\n\n const claimed = claims.get(plan.key)\n if (claimed) {\n if (claimed.fingerprint !== plan.fingerprint) {\n results[index] = {\n ok: false,\n error: new OntologyValidationError(\n `[Sixb] Conflicting duplicate ${plan.label} at batch positions ${claimed.index} and ${index}`\n ),\n }\n continue\n }\n aliases.set(index, claimed.index)\n continue\n }\n\n claims.set(plan.key, { index, fingerprint: plan.fingerprint })\n planned.push({ index, operations: plan.operations })\n }\n\n const commit = await commitRuntimeBatch(batch.ctx, planned)\n\n for (const { index } of planned) {\n const outcomes = requireItemOutcomes(commit, index)\n const failed = outcomes.find((outcome) => !outcome.ok)\n results[index] =\n failed?.ok === false\n ? { ok: false, error: toItemError(failed.error) }\n : { ok: true, value: batch.value(outcomes) }\n }\n for (const [index, source] of aliases) {\n results[index] = results[source]\n }\n return results\n}\n",
14
- "/**\n * Leaf operation: batch upsert links through the ontology Materializer.\n *\n * Takes SixbRuntimeContext (shared infra) + per-item pre-resolved data, because each item can target\n * a different objectType + linkDefinition. Everything valid is submitted as one ordered\n * continue-mode commit.\n */\n\nimport { stableJsonStringify } from \"../../json\"\nimport { linkRefKey } from \"../../materialization/refs\"\nimport type { BatchItemResult, SixbRuntimeContext } from \"../../runtime/types\"\nimport type { ResolvedLinkBatchItem } from \"../context\"\nimport {\n linkUpsertOperation,\n normalizeRuntimeLink,\n runtimeOperationId,\n} from \"../materializer-adapter\"\nimport { runRuntimeItemBatch } from \"../runtime-batch\"\nimport { assertCanWriteLink } from \"./authorization\"\nimport { collectEndpointLookups, loadEndpointExistence, requireEndpoints } from \"./endpoints\"\n\nexport async function upsertLinkBatch(\n ctx: SixbRuntimeContext,\n items: readonly ResolvedLinkBatchItem[]\n): Promise<readonly BatchItemResult<void>[]> {\n const { ontology } = ctx\n if (items.length === 0) return []\n\n // Every item, up front, and before the endpoint lookup below. Authorization is a precondition, not\n // a per-item validation: a refused item must not become one failed `BatchItemResult` while the\n // rest of the batch commits. Asserting inside `plan` would do exactly that, and would also let the\n // existence lookup answer for targets the principal cannot see.\n for (const item of items) {\n assertCanWriteLink(ctx, {\n sourceTypeId: item.objectType.id,\n targetTypeId: item.targetTypeId,\n })\n }\n\n const existing = await loadEndpointExistence(ctx, collectEndpointLookups(items))\n const valueTypesById = ontology.getValueTypesById()\n\n return runRuntimeItemBatch({\n ctx,\n items,\n plan(item, index) {\n requireEndpoints(item, existing)\n const properties = normalizeRuntimeLink({\n objectType: item.objectType,\n linkDefinition: item.linkDefinition,\n linkId: item.linkId,\n targetTypeId: item.targetTypeId,\n properties: item.properties,\n valueTypesById,\n isValidLinkTarget: (expected, actual) => ontology.isValidLinkTarget(expected, actual),\n })\n const ref = {\n source: { objectTypeId: item.objectType.id, primaryId: item.sourceId },\n linkId: item.linkId,\n target: { objectTypeId: item.targetTypeId, primaryId: item.targetId },\n }\n const edge = linkRefKey(ref)\n return {\n key: edge,\n // The key is a JSON array, which is unreadable in the error an operator sees on a failed\n // link projection. Name the edge the way the object path names an object.\n label: `link '${item.objectType.id}:${item.sourceId}.${item.linkId} -> ${item.targetTypeId}:${item.targetId}'`,\n fingerprint: stableJsonStringify(properties ?? null),\n operations: [\n linkUpsertOperation({\n id: runtimeOperationId(index),\n ref,\n ...(properties !== undefined ? { properties } : {}),\n }),\n ],\n }\n },\n value: () => undefined,\n })\n}\n",
15
- "/**\n * Leaf operations: delete and restore a single object through the ontology Materializer.\n *\n * Both are thin wrappers over one materializer operation, exactly like `removeLink` — the cascade\n * over links and the effective-state bookkeeping happen inside the commit.\n */\nimport { assertCanEdit } from \"../../authorization\"\nimport type { ResolvedObjectContext } from \"../context\"\nimport {\n commitRuntimeOperations,\n objectDeleteOperation,\n objectRestoreOperation,\n runtimeOperationId,\n} from \"../materializer-adapter\"\n\n/**\n * Delete the object with this primary id.\n *\n * A missing object is a no-op: the delete records managed authority only where effective state\n * exists, so the commit reports `unchanged` rather than failing. An object a projection also writes\n * stays hidden even while the projection keeps asserting it — `restore()` is what reveals it again.\n */\nexport async function deleteObject(ctx: ResolvedObjectContext, primaryId: string): Promise<void> {\n assertCanEdit(ctx, ctx.objectType.id)\n await commitRuntimeOperations(ctx, [\n objectDeleteOperation({\n id: runtimeOperationId(0),\n ref: { objectTypeId: ctx.objectType.id, primaryId },\n }),\n ])\n}\n\n/**\n * Withdraw a previous delete.\n *\n * For an object written only from code this is a no-op — there is nothing left to reveal, so write it\n * again instead. For an object a projection also writes, it makes the projected state visible again.\n */\nexport async function restoreObject(ctx: ResolvedObjectContext, primaryId: string): Promise<void> {\n assertCanEdit(ctx, ctx.objectType.id)\n await commitRuntimeOperations(ctx, [\n objectRestoreOperation({\n id: runtimeOperationId(0),\n ref: { objectTypeId: ctx.objectType.id, primaryId },\n }),\n ])\n}\n",
16
- "/**\n * Leaf operation: upsert a single object through the ontology Materializer.\n */\n\nimport { assertCanEdit } from \"../../authorization\"\nimport type { ObjectRow } from \"../../storage\"\nimport type { ResolvedObjectContext } from \"../context\"\nimport {\n commitRuntimeOperations,\n normalizeRuntimeObject,\n objectUpsertOperation,\n requireEffectiveObject,\n runtimeOperationId,\n toObjectRow,\n} from \"../materializer-adapter\"\n\nexport async function upsertObject(\n ctx: ResolvedObjectContext,\n properties: Record<string, unknown>\n): Promise<ObjectRow> {\n assertCanEdit(ctx, ctx.objectType.id)\n const { objectType, primaryPropertyId, ontology } = ctx\n\n const normalized = normalizeRuntimeObject({\n objectType,\n primaryPropertyId,\n properties,\n valueTypesById: ontology.getValueTypesById(),\n })\n const ref = { objectTypeId: objectType.id, primaryId: normalized.primaryId }\n\n // The Materializer classifies this as an independent create, a patch over source authority, or a\n // restore plus patch inside its own transaction.\n const commit = await commitRuntimeOperations(ctx, [\n objectUpsertOperation({ id: runtimeOperationId(0), ref, properties: normalized.properties }),\n ])\n return toObjectRow(ctx.projectId, requireEffectiveObject(commit.outcomes[0]))\n}\n",
17
- "/**\n * Leaf operation: batch upsert objects of a single type through the ontology Materializer.\n *\n * Everything that survives local normalization is submitted as one ordered continue-mode commit, so\n * later items observe earlier ones and a provider failure rolls the whole batch back.\n */\nimport { assertCanEdit } from \"../../authorization\"\nimport { stableJsonStringify } from \"../../json\"\nimport type { BatchItemResult } from \"../../runtime/types\"\nimport type { ObjectRow } from \"../../storage\"\nimport type { ResolvedObjectContext } from \"../context\"\nimport {\n normalizeRuntimeObject,\n objectUpsertOperation,\n requireEffectiveObject,\n runtimeOperationId,\n toObjectRow,\n} from \"../materializer-adapter\"\nimport { runRuntimeItemBatch } from \"../runtime-batch\"\n\nexport async function upsertObjectBatch(\n ctx: ResolvedObjectContext,\n items: readonly { properties: Record<string, unknown> }[]\n): Promise<readonly BatchItemResult<ObjectRow>[]> {\n assertCanEdit(ctx, ctx.objectType.id)\n const { objectType, primaryPropertyId, ontology } = ctx\n const valueTypesById = ontology.getValueTypesById()\n\n return runRuntimeItemBatch({\n ctx,\n items,\n plan(item, index) {\n const normalized = normalizeRuntimeObject({\n objectType,\n primaryPropertyId,\n properties: item.properties,\n valueTypesById,\n })\n const ref = { objectTypeId: objectType.id, primaryId: normalized.primaryId }\n return {\n // One commit resolves one authority state per object, so two items for the same identity are\n // unambiguous only when they ask for the same thing.\n key: `${ref.objectTypeId}:${ref.primaryId}`,\n label: `object '${ref.objectTypeId}:${ref.primaryId}'`,\n fingerprint: stableJsonStringify(normalized.properties),\n operations: [\n objectUpsertOperation({\n id: runtimeOperationId(index),\n ref,\n properties: normalized.properties,\n }),\n ],\n }\n },\n value: ([outcome]) => toObjectRow(ctx.projectId, requireEffectiveObject(outcome)),\n })\n}\n",
18
- "/**\n * Low-level write: append normalized telemetry points through the ontology Materializer.\n *\n * Shared by the batch operation and the per-property appenders in ObjectByIdHandle. The Materializer\n * persists immutable point history, derives latest telemetry state, and writes the commit's outbox\n * facts in one transaction, so this leaf never appends events or writes providers itself.\n */\nimport { randomUUID } from \"node:crypto\"\nimport type { AuthorizationContext } from \"../../authorization\"\nimport { assertCanAppendTelemetry } from \"../../authorization\"\nimport { MaterializationObjectNotFoundError } from \"../../materialization/errors\"\nimport type { TelemetryCommitResult, TelemetryPointWrite } from \"../../materialization/model\"\nimport { getOntologyMutationRuntime } from \"../../runtime/ontology-mutations\"\nimport { ObjectNotFoundError } from \"../../storage/errors\"\nimport type { RuntimeMaterializerContext } from \"../materializer-adapter\"\n\nexport type TelemetryWriteContext = RuntimeMaterializerContext & {\n readonly authorization?: AuthorizationContext\n}\n\nexport async function writeTelemetryBatch(\n ctx: TelemetryWriteContext,\n points: readonly TelemetryPointWrite[]\n): Promise<TelemetryCommitResult | null> {\n // Asserted from the points rather than a resolved context: this leaf is the low-level choke point\n // for both `appendTelemetryBatch` and the per-property `TelemetryChannel`, and only the points know\n // which object types the call actually touches.\n for (const objectTypeId of new Set(points.map((point) => point.series.object.objectTypeId))) {\n assertCanAppendTelemetry(ctx, objectTypeId)\n }\n if (points.length === 0) return null\n\n let commit: TelemetryCommitResult\n try {\n commit = await getOntologyMutationRuntime(ctx).appendTelemetry({\n source: { kind: \"runtime\", requestId: randomUUID() },\n // A `Principal` is an `EventActor` — same literals, no translation.\n ...(ctx.authorization === undefined ? {} : { actor: ctx.authorization.principal }),\n points,\n })\n } catch (error) {\n if (error instanceof MaterializationObjectNotFoundError) {\n throw new ObjectNotFoundError(\n error.objectTypeId,\n error.primaryId,\n \"Object not found for telemetry append\"\n )\n }\n throw error\n }\n return commit\n}\n",
19
- "/**\n * Leaf operation: batch telemetry append for multiple objects of a single type.\n */\nimport { assertCanAppendTelemetry } from \"../../authorization\"\nimport type { TelemetryPointWrite } from \"../../materialization/model\"\nimport { telemetryPointKey } from \"../../materialization/refs\"\nimport { OntologyValidationError } from \"../../ontology/errors\"\nimport { assertTelemetryProperty } from \"../../ontology/validation\"\nimport type { ResolvedObjectContext } from \"../context\"\nimport { writeTelemetryBatch } from \"./write-batch\"\n\n/**\n * Type guard for telemetry values that carry an explicit unit.\n *\n * Matches only the exact `{ value, unit }` wrapper (a string `unit` and no other\n * keys) so a legitimate JSON/object telemetry value is not silently\n * reinterpreted as value+unit. A fully explicit batch contract (passing units\n * out-of-band like the single-property appender) is tracked as a follow-up;\n * this narrows the heuristic without changing the public batch API.\n */\nfunction isUnitBearingValue(raw: unknown): raw is { value: unknown; unit: string } {\n if (raw === null || typeof raw !== \"object\") {\n return false\n }\n const record = raw as Record<string, unknown>\n return \"value\" in record && typeof record.unit === \"string\" && Object.keys(record).length === 2\n}\n\nexport async function appendTelemetryBatch(\n ctx: ResolvedObjectContext,\n items: readonly {\n id: string\n properties: Record<string, unknown | { value: unknown; unit: string }>\n at?: Date\n }[]\n): Promise<void> {\n // `writeTelemetryBatch` asserts again from the points it receives. Asserting here as well is not\n // redundant: it reports the type by name before any property is resolved, and it still refuses an\n // empty batch, which produces no points to assert over.\n assertCanAppendTelemetry(ctx, ctx.objectType.id)\n const { objectType } = ctx\n // Telemetry identity is `(series, at)`, so a repeated instant inside one call is an upsert: the\n // last value wins rather than failing the whole batch.\n const points = new Map<string, TelemetryPointWrite>()\n\n for (const item of items) {\n const at = (item.at ?? new Date()).toISOString()\n\n for (const [propertyId, rawValue] of Object.entries(item.properties)) {\n const propertyToken = objectType.p[propertyId]\n if (!propertyToken) {\n throw new OntologyValidationError(`Unknown property '${objectType.id}.${propertyId}'`)\n }\n\n assertTelemetryProperty(propertyToken.property)\n\n // Value and unit validation, plus schema normalization, happen inside the Materializer.\n const series = {\n object: { objectTypeId: objectType.id, primaryId: item.id },\n propertyId: propertyToken.id,\n }\n points.set(telemetryPointKey(series, at), {\n series,\n value: isUnitBearingValue(rawValue)\n ? (rawValue.value as TelemetryPointWrite[\"value\"])\n : (rawValue as TelemetryPointWrite[\"value\"]),\n ...(isUnitBearingValue(rawValue) ? { unit: rawValue.unit } : {}),\n at,\n })\n }\n }\n\n await writeTelemetryBatch(ctx, [...points.values()])\n}\n",
20
- "import { type AuthorizationContext, assertAuthorized } from \"../../authorization\"\nimport type {\n TimeseriesHistoryBatchInput,\n TimeseriesHistoryBatchResult,\n TimeseriesHistorySeriesInput,\n TimeseriesStorage,\n} from \"../../storage\"\n\nexport interface TelemetryHistoryOptions {\n readonly storage: TimeseriesStorage\n readonly authorization?: AuthorizationContext | null\n}\n\nexport async function getTelemetryHistoryBatch(\n input: TimeseriesHistoryBatchInput,\n options: TelemetryHistoryOptions\n): Promise<readonly TimeseriesHistoryBatchResult[]> {\n assertTelemetrySeriesViewable(input.series, options.authorization)\n return options.storage.getHistoryBatch(input)\n}\n\nfunction assertTelemetrySeriesViewable(\n series: readonly TimeseriesHistorySeriesInput[],\n authorization: AuthorizationContext | null | undefined\n): void {\n for (const objectTypeId of new Set(series.map((entry) => entry.objectTypeId))) {\n assertAuthorized(\n { authorization: authorization ?? undefined },\n { kind: \"object.view\", objectTypeId }\n )\n }\n}\n",
21
- "/**\n * Telemetry channel factory for ObjectByIdHandle.\n *\n * Creates a per-property channel that writes through the low-level `writeTelemetryBatch` leaf and\n * reads the same series back through `getTelemetryHistoryBatch`, both keyed by the property token.\n */\nimport type { TelemetryPointWrite } from \"../../materialization/model\"\nimport type { ValueType } from \"../../ontology\"\nimport type { ObjectTypeWithPropertyTokens } from \"../../ontology/tokens\"\nimport {\n assertPropertyTokenBelongsToObjectType,\n assertTelemetryProperty,\n} from \"../../ontology/validation\"\nimport { RuntimeError } from \"../../runtime/errors\"\nimport type {\n TelemetryChannel,\n TelemetryHistoryInput,\n TelemetryPropertyToken,\n} from \"../../runtime/types\"\nimport type { ResolvedObjectContext } from \"../context\"\nimport { getTelemetryHistoryBatch, writeTelemetryBatch } from \"../telemetry\"\n\nexport function createTelemetryChannel<\n TObjectType extends ObjectTypeWithPropertyTokens,\n TValueTypes extends readonly ValueType[],\n>(ctx: ResolvedObjectContext, primaryId: string) {\n return <TToken extends TelemetryPropertyToken<TObjectType>>(\n property: TToken\n ): TelemetryChannel<TToken, TValueTypes> => {\n const { objectType } = ctx\n assertPropertyTokenBelongsToObjectType(objectType, property)\n assertTelemetryProperty(property.property)\n\n const series = { objectTypeId: objectType.id, objectId: primaryId, propertyId: property.id }\n\n const channel = {\n append: async (input: { value: unknown; unit?: string; at: Date }) => {\n // Value and unit validation, plus schema normalization, happen inside the Materializer.\n await writeTelemetryBatch(ctx, [\n {\n series: {\n object: { objectTypeId: objectType.id, primaryId },\n propertyId: property.id,\n },\n value: input.value as TelemetryPointWrite[\"value\"],\n ...(input.unit !== undefined ? { unit: input.unit } : {}),\n at: input.at.toISOString(),\n },\n ])\n },\n\n history: async (input: TelemetryHistoryInput = {}) => {\n const timeseries = ctx.storage.timeseries\n if (!timeseries) {\n throw new RuntimeError(\"[Sixb] Reading telemetry requires storage.timeseries support.\")\n }\n\n const [result] = await getTelemetryHistoryBatch(\n {\n projectId: ctx.projectId,\n series: [series],\n ...(input.from !== undefined ? { from: input.from } : {}),\n ...(input.to !== undefined ? { to: input.to } : {}),\n ...(input.limit !== undefined ? { limitPerSeries: input.limit } : {}),\n ...(input.order !== undefined ? { order: input.order } : {}),\n },\n { storage: timeseries, authorization: ctx.authorization }\n )\n\n return (result?.points ?? []).map((point) => ({\n value: point.value,\n at: point.at,\n ...(point.unit !== undefined ? { unit: point.unit } : {}),\n }))\n },\n }\n\n // Cast needed: generic token inference boundary — TToken is narrower than what `channel` sees\n return channel as unknown as TelemetryChannel<TToken, TValueTypes>\n }\n}\n",
22
- "/**\n * ObjectByIdHandle binds operations to a specific object id within an ObjectSet.\n * Created via `sixb.objects(MyType).byId(\"id-1\")`, it provides link/unlink and\n * per-property telemetry appenders with compile-time unit and value type safety.\n */\nimport type { ActionDefinition } from \"../../actions\"\nimport { assertAuthorized, assertPrivileged } from \"../../authorization\"\nimport type { ObjectLink, ObjectRef, ValueType } from \"../../ontology\"\nimport { OntologyValidationError } from \"../../ontology/errors\"\nimport type { LinkToken, ObjectTypeWithPropertyTokens } from \"../../ontology/tokens\"\nimport { assertLinkTokenBelongsToObjectType } from \"../../ontology/validation\"\nimport type { ObjectByIdHandle, TwinObject } from \"../../runtime/types\"\nimport {\n requestActionAndWait as requestActionAndWaitLeaf,\n requestAction as requestActionLeaf,\n} from \"../action\"\nimport type { ResolvedLinkContext, ResolvedObjectContext } from \"../context\"\nimport { removeLink as removeLinkLeaf, upsertLink as upsertLinkLeaf } from \"../link\"\nimport { deleteObject, restoreObject } from \"../object\"\nimport { createTelemetryChannel } from \"./telemetry-channel\"\n\ntype ObjectRefInput = ObjectRef\ntype AnyLinkToken = LinkToken<string, string, string | readonly string[], ObjectLink>\n\nexport function createObjectByIdHandle<\n TObjectType extends ObjectTypeWithPropertyTokens,\n TValueTypes extends readonly ValueType[],\n>(ctx: ResolvedObjectContext, primaryId: string): ObjectByIdHandle<TObjectType, TValueTypes> {\n const objectHandle = {\n get: async () => {\n assertAuthorized(ctx, { kind: \"object.view\", objectTypeId: ctx.objectType.id })\n const row = await ctx.storage.objects.getByPrimaryId({\n projectId: ctx.projectId,\n objectTypeId: ctx.objectType.id,\n primaryId,\n })\n return row ? (row as unknown as TwinObject<TObjectType, TValueTypes>) : null\n },\n\n listLinks: async (linkToken?: AnyLinkToken) => {\n // Link rows reveal target types; no link grant semantics exist yet.\n assertPrivileged(ctx, \"listLinks\")\n if (linkToken) {\n assertLinkTokenBelongsToObjectType(ctx.objectType, linkToken)\n }\n return ctx.storage.objects.listLinks({\n projectId: ctx.projectId,\n objectTypeId: ctx.objectType.id,\n objectId: primaryId,\n linkId: linkToken?.id,\n })\n },\n\n link: async (\n linkToken: AnyLinkToken,\n target: ObjectRefInput,\n options?: { properties?: Record<string, unknown> }\n ) => {\n assertLinkTokenBelongsToObjectType(ctx.objectType, linkToken)\n\n const linkCtx: ResolvedLinkContext = { ...ctx, linkDefinition: linkToken.link }\n await upsertLinkLeaf(linkCtx, {\n sourceId: primaryId,\n linkId: linkToken.id,\n targetTypeId: target.objectTypeId,\n targetId: target.primaryId,\n properties: options?.properties,\n })\n },\n\n unlink: async (linkToken: AnyLinkToken, target: ObjectRefInput) => {\n assertLinkTokenBelongsToObjectType(ctx.objectType, linkToken)\n\n const linkCtx: ResolvedLinkContext = { ...ctx, linkDefinition: linkToken.link }\n await removeLinkLeaf(linkCtx, {\n sourceId: primaryId,\n linkId: linkToken.id,\n targetTypeId: target.objectTypeId,\n targetId: target.primaryId,\n })\n },\n\n delete: async () => {\n await deleteObject(ctx, primaryId)\n },\n\n restore: async () => {\n await restoreObject(ctx, primaryId)\n },\n\n requestAction: async (input: {\n action?: ActionDefinition\n actionId?: string\n params?: Record<string, unknown>\n runId?: string\n }) => {\n const actionId = input.action?.id ?? input.actionId\n if (!actionId) {\n throw new OntologyValidationError(\n \"[Sixb] requestAction requires either 'action' or 'actionId'\"\n )\n }\n return requestActionLeaf(ctx, {\n primaryId,\n actionId,\n params: input.params,\n options: { runId: input.runId },\n })\n },\n\n requestActionAndWait: async (input: {\n action?: ActionDefinition\n actionId?: string\n params?: Record<string, unknown>\n timeoutMs?: number\n signal?: AbortSignal\n }) => {\n const actionId = input.action?.id ?? input.actionId\n if (!actionId) {\n throw new OntologyValidationError(\n \"[Sixb] requestActionAndWait requires either 'action' or 'actionId'\"\n )\n }\n return requestActionAndWaitLeaf(ctx, {\n primaryId,\n actionId,\n params: input.params,\n options: {\n timeoutMs: input.timeoutMs,\n signal: input.signal,\n },\n })\n },\n\n telemetry: createTelemetryChannel<TObjectType, TValueTypes>(ctx, primaryId),\n }\n\n return objectHandle as unknown as ObjectByIdHandle<TObjectType, TValueTypes>\n}\n",
23
- "/**\n * Server-side ObjectQueryExecutor backed by the shared query executor and storage.\n * Validation, planning, fallback, and execution all run in-process here; the\n * HTTP executor in `@sixb/client` is the remote counterpart.\n */\n\nimport type { AuthorizationContext } from \"../../authorization\"\nimport type { OntologyRegistry } from \"../../ontology\"\nimport type { Storage } from \"../../storage\"\nimport {\n countObjects,\n executeObjectQuery,\n existsObjects,\n facetObjects,\n ObjectQueryPlanningError,\n} from \"../query\"\nimport { explainObjectQuery } from \"../query/explain\"\nimport type { ObjectQuery } from \"../query/ir\"\nimport { validateObjectQuery } from \"../query/validate\"\nimport type { ObjectQueryExecutor, ObjectQueryExecutorFacetRequest } from \"./query-executor\"\n\nexport function createRuntimeQueryExecutor(params: {\n projectId: string\n ontology: OntologyRegistry\n storage: Storage\n authorization?: AuthorizationContext\n}): ObjectQueryExecutor {\n const { projectId, ontology, storage, authorization } = params\n const executorOptions = { ontology, storage: storage.objects, authorization }\n\n return {\n async list(query: ObjectQuery, options?: { includeTotal?: boolean }) {\n try {\n return await executeObjectQuery(\n { projectId, query, includeTotal: options?.includeTotal },\n executorOptions\n )\n } catch (error) {\n if (error instanceof ObjectQueryPlanningError) {\n throw addSdkPlanningHints(error)\n }\n throw error\n }\n },\n\n async count(query: ObjectQuery) {\n const result = await countObjects({ projectId, query }, executorOptions)\n return result.count\n },\n\n async exists(query: ObjectQuery) {\n const result = await existsObjects({ projectId, query }, executorOptions)\n return result.exists\n },\n\n async facets(query: ObjectQuery, facets: readonly ObjectQueryExecutorFacetRequest[]) {\n const result = await facetObjects({ projectId, query, facets }, executorOptions)\n return result.facets.map((facet) => ({\n propertyId: facet.propertyId,\n buckets: [...facet.buckets],\n }))\n },\n\n validate(query: ObjectQuery) {\n return validateObjectQuery(query, { ontology, normalize: false })\n },\n\n explain(query: ObjectQuery) {\n return explainObjectQuery(query, { ontology, normalize: false })\n },\n }\n}\n\nfunction addSdkPlanningHints(error: ObjectQueryPlanningError): ObjectQueryPlanningError {\n if (!error.issues.some((issue) => issue.code === \"fallback_requires_bound\")) return error\n\n return new ObjectQueryPlanningError(\n error.issues.map((issue) =>\n issue.code === \"fallback_requires_bound\"\n ? {\n ...issue,\n message:\n \"Object query fallback requires an explicit result bound. Add .limit(n) or .page({ pageSize: n }) before .list().\",\n }\n : issue\n )\n )\n}\n",
24
- "/**\n * ObjectSet provides a type-safe collection API for objects of a given type.\n * Created via `sixb.objects(MyType)`, it exposes upsert, query, and telemetry batch operations\n * while preserving compile-time property types inferred from the ontology definition.\n */\n\nimport type { ActionDefinition } from \"../../actions\"\nimport type { AuthorizationContext } from \"../../authorization\"\nimport { assertAuthorized } from \"../../authorization\"\nimport { shareSixbErrorReporter } from \"../../error-reporting/capability\"\nimport type { ValueType } from \"../../ontology\"\nimport { OntologyValidationError } from \"../../ontology/errors\"\nimport type { ObjectTypeWithPropertyTokens } from \"../../ontology/tokens\"\nimport { shareOntologyMutationRuntime } from \"../../runtime/ontology-mutations\"\nimport type {\n ObjectSet,\n ObjectSetListInput,\n SixbRuntimeContext,\n TwinObject,\n} from \"../../runtime/types\"\nimport {\n requestActionAndWait as requestActionAndWaitLeaf,\n requestAction as requestActionLeaf,\n} from \"../action\"\nimport type { ResolvedLinkContext, ResolvedObjectContext } from \"../context\"\nimport { requireLinkDefinition } from \"../context\"\nimport { removeLink as removeLinkLeaf, upsertLink as upsertLinkLeaf } from \"../link\"\nimport { upsertObject as upsertObjectLeaf } from \"../object\"\nimport { appendTelemetryBatch as appendTelemetryBatchLeaf } from \"../telemetry\"\nimport { createObjectByIdHandle } from \"./object-handle\"\nimport { createObjectQueryBuilder } from \"./query-builder\"\nimport { createRuntimeQueryExecutor } from \"./runtime-query-executor\"\n\nexport function createObjectSet<\n TObjectType extends ObjectTypeWithPropertyTokens,\n TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,\n TValueTypes extends readonly ValueType[],\n>(\n params: SixbRuntimeContext & {\n readonly objectType: TObjectType\n readonly authorization?: AuthorizationContext\n }\n): ObjectSet<TObjectType, TValueTypes, TRegisteredObjectTypes> {\n const { objectType } = params\n const primaryProp = objectType.properties.find((p) => p.primary)\n if (!primaryProp) {\n throw new OntologyValidationError(`Object type '${objectType.id}' has no primary property`)\n }\n const primaryPropertyId = primaryProp.id\n\n const {\n projectId,\n ontology,\n actionRegistry,\n events,\n lakeStorage,\n blobStorage,\n storage,\n queues,\n authorization,\n } = params\n const queryExecutor = createRuntimeQueryExecutor({ projectId, ontology, storage, authorization })\n\n const resolvedCtx: ResolvedObjectContext = {\n projectId,\n ontology,\n actionRegistry,\n events,\n lakeStorage,\n blobStorage,\n storage,\n queues,\n authorization,\n objectType,\n primaryPropertyId,\n }\n shareOntologyMutationRuntime(params, resolvedCtx)\n shareSixbErrorReporter(params, resolvedCtx)\n\n const objectSet = {\n get: async (id: string) => {\n assertAuthorized(resolvedCtx, { kind: \"object.view\", objectTypeId: objectType.id })\n const row = await storage.objects.getByPrimaryId({\n projectId,\n objectTypeId: objectType.id,\n primaryId: id,\n })\n return row ? (row as unknown as TwinObject<TObjectType, TValueTypes>) : null\n },\n\n upsert: async (input: { properties: Record<string, unknown> }) => {\n const row = await upsertObjectLeaf(resolvedCtx, input.properties)\n return row as unknown as TwinObject<TObjectType, TValueTypes>\n },\n\n query: () =>\n createObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes>({\n query: { kind: \"start\", objectTypeId: objectType.id },\n executor: queryExecutor,\n }),\n\n byId: (id: string) => createObjectByIdHandle<TObjectType, TValueTypes>(resolvedCtx, id),\n\n list: async (input?: ObjectSetListInput) => {\n assertAuthorized(resolvedCtx, { kind: \"object.view\", objectTypeId: objectType.id })\n const result = await storage.objects.list({\n projectId,\n objectTypeId: objectType.id,\n primaryIdPrefix: input?.idPrefix,\n primaryIdSuffix: input?.idSuffix,\n updatedAfter: input?.updatedAfter,\n updatedBefore: input?.updatedBefore,\n createdAfter: input?.createdAfter,\n createdBefore: input?.createdBefore,\n limit: input?.limit,\n offset: input?.offset,\n orderBy: input?.orderBy,\n order: input?.order,\n })\n\n return {\n objects: result.objects.map(\n (row) => row as unknown as TwinObject<TObjectType, TValueTypes>\n ),\n hasMore: result.hasMore,\n total: result.total ?? result.objects.length,\n }\n },\n\n appendTelemetryBatch: async (\n items: readonly {\n id: string\n properties: Record<string, unknown | { value: unknown; unit: string }>\n at?: Date\n }[]\n ) => {\n await appendTelemetryBatchLeaf(resolvedCtx, items)\n },\n\n requestAction: async (input: {\n id: string\n action?: ActionDefinition\n actionId?: string\n params?: Record<string, unknown>\n runId?: string\n }) => {\n const actionId = input.action?.id ?? input.actionId\n if (!actionId) {\n throw new OntologyValidationError(\n \"[Sixb] requestAction requires either 'action' or 'actionId'\"\n )\n }\n return requestActionLeaf(resolvedCtx, {\n primaryId: input.id,\n actionId,\n params: input.params,\n options: { runId: input.runId },\n })\n },\n\n requestActionAndWait: async (input: {\n id: string\n action?: ActionDefinition\n actionId?: string\n params?: Record<string, unknown>\n timeoutMs?: number\n signal?: AbortSignal\n }) => {\n const actionId = input.action?.id ?? input.actionId\n if (!actionId) {\n throw new OntologyValidationError(\n \"[Sixb] requestActionAndWait requires either 'action' or 'actionId'\"\n )\n }\n return requestActionAndWaitLeaf(resolvedCtx, {\n primaryId: input.id,\n actionId,\n params: input.params,\n options: {\n timeoutMs: input.timeoutMs,\n signal: input.signal,\n },\n })\n },\n\n upsertLink: async (input: {\n sourceId: string\n linkId: string\n targetTypeId: string\n targetId: string\n properties?: Record<string, unknown>\n }) => {\n const linkDefinition = requireLinkDefinition(objectType, input.linkId)\n const linkCtx: ResolvedLinkContext = { ...resolvedCtx, linkDefinition }\n\n await upsertLinkLeaf(linkCtx, {\n sourceId: input.sourceId,\n linkId: input.linkId,\n targetTypeId: input.targetTypeId,\n targetId: input.targetId,\n properties: input.properties,\n })\n },\n\n removeLink: async (input: {\n sourceId: string\n linkId: string\n targetTypeId: string\n targetId: string\n }) => {\n const linkDefinition = requireLinkDefinition(objectType, input.linkId)\n const linkCtx: ResolvedLinkContext = { ...resolvedCtx, linkDefinition }\n\n await removeLinkLeaf(linkCtx, {\n sourceId: input.sourceId,\n linkId: input.linkId,\n targetTypeId: input.targetTypeId,\n targetId: input.targetId,\n })\n },\n }\n\n return objectSet as unknown as ObjectSet<TObjectType, TValueTypes, TRegisteredObjectTypes>\n}\n",
25
- "/**\n * Service layer for action operations.\n *\n * Resolves objectTypeId to a typed context and delegates to the leaf function.\n */\n\nimport type { RequestActionResult } from \"../../actions/request\"\nimport type { SixbRuntimeContext } from \"../../runtime/types\"\nimport type { ActionRunRecord } from \"../../storage\"\nimport {\n type RequestActionAndWaitOptions,\n type RequestActionOptions,\n requestActionAndWait as requestActionAndWaitLeaf,\n requestAction as requestActionLeaf,\n} from \"../action\"\nimport { resolveObjectContext } from \"../context\"\n\nexport async function requestAction(\n runtime: SixbRuntimeContext,\n objectTypeId: string,\n primaryId: string,\n actionId: string,\n params?: Record<string, unknown>,\n options?: RequestActionOptions\n): Promise<RequestActionResult> {\n const ctx = resolveObjectContext(runtime, objectTypeId)\n return requestActionLeaf(ctx, { primaryId, actionId, params, options })\n}\n\nexport async function requestActionAndWait(\n runtime: SixbRuntimeContext,\n objectTypeId: string,\n primaryId: string,\n actionId: string,\n params?: Record<string, unknown>,\n options?: RequestActionAndWaitOptions\n): Promise<ActionRunRecord> {\n const ctx = resolveObjectContext(runtime, objectTypeId)\n return requestActionAndWaitLeaf(ctx, { primaryId, actionId, params, options })\n}\n",
26
- "/**\n * Service layer for link operations.\n *\n * Resolves objectTypeId to a typed context and delegates to leaf functions.\n */\nimport type { BatchItemResult, SixbRuntimeContext } from \"../../runtime/types\"\nimport type { ResolvedLinkBatchItem } from \"../context\"\nimport { requireLinkDefinition, resolveLinkContext, resolveObjectContext } from \"../context\"\nimport {\n removeLink as removeLinkLeaf,\n upsertLinkBatch as upsertLinkBatchLeaf,\n upsertLink as upsertLinkLeaf,\n} from \"../link\"\n\nexport async function upsertLink(\n runtime: SixbRuntimeContext,\n objectTypeId: string,\n sourceId: string,\n linkId: string,\n target: { targetTypeId: string; targetId: string; properties?: Record<string, unknown> }\n): Promise<void> {\n const ctx = resolveObjectContext(runtime, objectTypeId)\n const linkCtx = resolveLinkContext(ctx, linkId)\n await upsertLinkLeaf(linkCtx, {\n sourceId,\n linkId,\n targetTypeId: target.targetTypeId,\n targetId: target.targetId,\n properties: target.properties,\n })\n}\n\nexport async function upsertLinkBatch(\n runtime: SixbRuntimeContext,\n items: readonly {\n objectTypeId: string\n sourceId: string\n linkId: string\n target: { targetTypeId: string; targetId: string; properties?: Record<string, unknown> }\n }[]\n): Promise<readonly BatchItemResult<void>[]> {\n const resolvedItems: ResolvedLinkBatchItem[] = items.map((item) => {\n const objectType = runtime.ontology.resolveObjectType(item.objectTypeId)\n const linkDefinition = requireLinkDefinition(objectType, item.linkId)\n return {\n objectType,\n linkDefinition,\n sourceId: item.sourceId,\n linkId: item.linkId,\n targetTypeId: item.target.targetTypeId,\n targetId: item.target.targetId,\n properties: item.target.properties,\n }\n })\n\n return upsertLinkBatchLeaf(runtime, resolvedItems)\n}\n\nexport async function removeLink(\n runtime: SixbRuntimeContext,\n objectTypeId: string,\n sourceId: string,\n linkId: string,\n target: { targetTypeId: string; targetId: string }\n): Promise<void> {\n const ctx = resolveObjectContext(runtime, objectTypeId)\n const linkCtx = resolveLinkContext(ctx, linkId)\n await removeLinkLeaf(linkCtx, {\n sourceId,\n linkId,\n targetTypeId: target.targetTypeId,\n targetId: target.targetId,\n })\n}\n",
27
- "/**\n * Cross-type object listing for dashboards and search.\n *\n * On scoped runtimes the type filter is authorized before the storage call:\n * explicitly requested types must all be viewable, and unfiltered listings\n * narrow to the principal's viewable types instead of post-filtering rows.\n */\n\nimport { assertAuthorized } from \"../../authorization\"\nimport type { ListResult, SixbRuntimeContext } from \"../../runtime/types\"\nimport type { ObjectRow } from \"../../storage\"\n\nexport interface ListObjectsParams {\n objectTypeIds?: readonly string[]\n idPrefix?: string\n idSuffix?: string\n updatedAfter?: Date\n updatedBefore?: Date\n createdAfter?: Date\n createdBefore?: Date\n limit?: number\n offset?: number\n orderBy?: \"createdAt\" | \"updatedAt\" | \"primaryId\"\n order?: \"asc\" | \"desc\"\n}\n\nexport async function listObjects(\n runtime: SixbRuntimeContext,\n params: ListObjectsParams\n): Promise<ListResult<ObjectRow>> {\n const objectTypeIds = resolveAuthorizedTypeFilter(runtime, params.objectTypeIds)\n\n if (runtime.authorization && objectTypeIds !== undefined && objectTypeIds.length === 0) {\n return { objects: [], hasMore: false, total: 0 }\n }\n\n const result = await runtime.storage.objects.list({\n projectId: runtime.projectId,\n objectTypeId: objectTypeIds?.length === 1 ? objectTypeIds[0] : objectTypeIds,\n primaryIdPrefix: params.idPrefix,\n primaryIdSuffix: params.idSuffix,\n updatedAfter: params.updatedAfter,\n updatedBefore: params.updatedBefore,\n createdAfter: params.createdAfter,\n createdBefore: params.createdBefore,\n limit: params.limit,\n offset: params.offset,\n orderBy: params.orderBy,\n order: params.order,\n })\n\n return {\n objects: [...result.objects],\n hasMore: result.hasMore,\n total: result.total,\n }\n}\n\nfunction resolveAuthorizedTypeFilter(\n runtime: SixbRuntimeContext,\n requested: readonly string[] | undefined\n): readonly string[] | undefined {\n if (requested) {\n for (const objectTypeId of requested) {\n runtime.ontology.resolveObjectType(objectTypeId)\n }\n }\n\n const expanded = requested\n ? [...new Set(requested.flatMap((id) => [id, ...runtime.ontology.listSubTypes(id)]))]\n : undefined\n\n if (!runtime.authorization) {\n return expanded\n }\n\n if (!expanded) {\n // Broad listings narrow to the visible universe rather than failing. The\n // set already contains every registered type when \"all\" was granted.\n return [...runtime.authorization.grants[\"view:object\"]]\n }\n\n // Explicitly requested types must all be viewable.\n for (const objectTypeId of expanded) {\n assertAuthorized(runtime, { kind: \"object.view\", objectTypeId })\n }\n\n return expanded\n}\n",
28
- "/**\n * Service layer for object upsert operations.\n *\n * Resolves objectTypeId to a typed context and delegates to leaf functions.\n */\nimport type { BatchItemResult, SixbRuntimeContext } from \"../../runtime/types\"\nimport type { ObjectRow } from \"../../storage\"\nimport { resolveObjectContext } from \"../context\"\nimport {\n upsertObjectBatch as upsertObjectBatchLeaf,\n upsertObject as upsertObjectLeaf,\n} from \"../object\"\n\nexport async function upsertObject(\n runtime: SixbRuntimeContext,\n objectTypeId: string,\n properties: Record<string, unknown>\n): Promise<ObjectRow> {\n return upsertObjectLeaf(resolveObjectContext(runtime, objectTypeId), properties)\n}\n\nexport async function upsertObjectBatch(\n runtime: SixbRuntimeContext,\n objectTypeId: string,\n items: readonly { properties: Record<string, unknown> }[]\n): Promise<readonly BatchItemResult<ObjectRow>[]> {\n return upsertObjectBatchLeaf(resolveObjectContext(runtime, objectTypeId), items)\n}\n",
29
- "/**\n * Service layer for telemetry operations.\n *\n * Resolves objectTypeId to a typed context and delegates to the leaf function.\n */\nimport type { SixbRuntimeContext } from \"../../runtime/types\"\nimport { resolveObjectContext } from \"../context\"\nimport { appendTelemetryBatch as appendTelemetryBatchLeaf } from \"../telemetry\"\n\nexport async function appendTelemetry(\n runtime: SixbRuntimeContext,\n objectTypeId: string,\n items: readonly { id: string; properties: Record<string, unknown>; at?: Date }[]\n): Promise<void> {\n const ctx = resolveObjectContext(runtime, objectTypeId)\n await appendTelemetryBatchLeaf(ctx, items)\n}\n"
30
- ],
31
- "mappings": "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",
32
- "debugId": "95B324667271C7FB64756E2164756E21",
33
- "names": []
34
- }
@@ -1,12 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/error-reporting/normalize.ts", "../src/error-reporting/reporter.ts", "../src/error-reporting/capability.ts"],
4
- "sourcesContent": [
5
- "function safeString(value: unknown): string {\n try {\n return String(value)\n } catch {\n return \"Unknown thrown value\"\n }\n}\n\n/** Preserve native errors and safely wrap arbitrary thrown values. */\nexport function normalizeReportedError(value: unknown): Error {\n if (value instanceof Error) {\n return value\n }\n\n if (typeof value === \"object\" && value !== null) {\n let message: unknown\n let name: unknown\n try {\n message = Reflect.get(value, \"message\")\n name = Reflect.get(value, \"name\")\n } catch {\n return new Error(\"Unknown thrown value\")\n }\n\n if (typeof message === \"string\") {\n const error = new Error(message)\n if (typeof name === \"string\" && name.trim()) {\n error.name = name\n }\n return error\n }\n }\n\n return new Error(safeString(value))\n}\n",
6
- "import { normalizeReportedError } from \"./normalize\"\nimport type { SixbErrorContext, SixbErrorHandler } from \"./types\"\n\nconst DEFAULT_FLUSH_TIMEOUT_MS = 5_000\n\n/** Failure-isolated, non-blocking adapter around the configured callback. */\nexport class SixbErrorReporter {\n private readonly pending = new Set<Promise<void>>()\n\n constructor(private readonly handler?: SixbErrorHandler) {}\n\n report(error: unknown, context: SixbErrorContext): void {\n if (!this.handler) return\n\n const invocation = Promise.resolve()\n .then(() => this.handler?.(normalizeReportedError(error), context))\n .then(() => undefined)\n .catch((handlerError) => {\n try {\n console.error(\"[Sixb] onError handler failed:\", handlerError)\n } catch {\n // Error reporting must never escape back into framework execution.\n }\n })\n\n const tracked = invocation.finally(() => {\n this.pending.delete(tracked)\n })\n this.pending.add(tracked)\n }\n\n async flush(timeoutMs = DEFAULT_FLUSH_TIMEOUT_MS): Promise<void> {\n const deadline = Date.now() + Math.max(0, timeoutMs)\n while (this.pending.size > 0) {\n const remainingMs = deadline - Date.now()\n if (remainingMs <= 0 || !(await settleWithin([...this.pending], remainingMs))) {\n try {\n console.error(\n `[Sixb] Timed out after ${timeoutMs}ms waiting for ${this.pending.size} onError handler(s).`\n )\n } catch {\n // Error reporting must never escape back into framework shutdown.\n }\n return\n }\n }\n }\n}\n\nasync function settleWithin(\n promises: readonly Promise<void>[],\n timeoutMs: number\n): Promise<boolean> {\n let timeout: ReturnType<typeof setTimeout> | undefined\n try {\n return await Promise.race([\n Promise.allSettled(promises).then(() => true),\n new Promise<false>((resolve) => {\n timeout = setTimeout(() => resolve(false), timeoutMs)\n }),\n ])\n } finally {\n if (timeout) clearTimeout(timeout)\n }\n}\n",
7
- "import { randomUUID } from \"node:crypto\"\nimport { SixbErrorReporter } from \"./reporter\"\nimport type { SixbErrorHandler, SixbFailedRun } from \"./types\"\n\nfunction resolveOccurredAt(occurredAt?: Date | string): string {\n if (occurredAt instanceof Date) return occurredAt.toISOString()\n return occurredAt ?? new Date().toISOString()\n}\n\nconst ERROR_REPORTER = Symbol(\"sixb.error-reporter\")\n\ntype ErrorReporterHost = {\n [ERROR_REPORTER]?: SixbErrorReporter\n}\n\nfunction asHost(value: unknown): ErrorReporterHost | null {\n if ((typeof value !== \"object\" && typeof value !== \"function\") || value === null) {\n return null\n }\n return value as ErrorReporterHost\n}\n\nexport function attachSixbErrorReporter(\n host: object,\n handler?: SixbErrorHandler\n): SixbErrorReporter {\n const reporter = new SixbErrorReporter(handler)\n ;(host as ErrorReporterHost)[ERROR_REPORTER] = reporter\n return reporter\n}\n\nexport function shareSixbErrorReporter(source: object, target: object): void {\n const reporter = (source as ErrorReporterHost)[ERROR_REPORTER]\n if (reporter) (target as ErrorReporterHost)[ERROR_REPORTER] = reporter\n}\n\nexport interface ReportRunFailureInput {\n readonly projectId: string\n readonly run: SixbFailedRun\n readonly occurredAt?: Date | string\n readonly attempt?: number\n}\n\nexport function reportRunFailure(\n host: unknown,\n error: unknown,\n input: ReportRunFailureInput\n): void {\n const reporter = asHost(host)?.[ERROR_REPORTER]\n if (!reporter) return\n\n const occurredAt = resolveOccurredAt(input.occurredAt)\n reporter.report(error, {\n type: \"run.failed\",\n notificationId: `project:${input.projectId}:run:${input.run.kind}:${input.run.runId}:failed:${occurredAt}`,\n projectId: input.projectId,\n occurredAt,\n ...(input.attempt === undefined ? {} : { attempt: input.attempt }),\n run: input.run,\n })\n}\n\nexport interface ReportEventDeliveryFailureInput {\n readonly projectId: string\n /** Event types that never reached subscribers. Payloads must not be passed in. */\n readonly eventTypes: readonly string[]\n readonly occurredAt?: Date | string\n /** Delivery attempts so far. Defaults to 1, which is right for a rejected emit. */\n readonly attempts?: number\n /** Envelope ids, when the events were persisted before delivery failed. */\n readonly eventIds?: readonly string[]\n /**\n * Identity of this loss, used only when nothing was persisted. Defaults to a fresh id; pass one to\n * make a report reproducible in a test.\n */\n readonly occurrenceId?: string\n}\n\n/**\n * Report that domain events were lost.\n *\n * Both delivery paths land here: the outbox dispatcher, which has persisted envelope ids and retries,\n * and a rejected `events.emit()`, which has only the types. Reporting must work for both — an earlier\n * version returned early on an empty `eventIds`, which silently dropped exactly the case this exists\n * to surface.\n *\n * Each path keys on the strongest identity it has. The outbox persisted its envelopes, so the ids plus\n * the attempt number name the loss exactly and stay stable if one report is delivered twice. A rejected\n * emit persisted nothing and is always terminal at attempt 1, so the type list alone was its whole\n * correlation — and two schedules losing `schedule.triggered` in the same broker outage are dispatched\n * concurrently, land in the same millisecond, and were therefore one notification. A timestamp does not\n * fix that; an identity does.\n */\nexport function reportEventDeliveryFailure(\n host: unknown,\n error: unknown,\n input: ReportEventDeliveryFailureInput\n): void {\n const reporter = asHost(host)?.[ERROR_REPORTER]\n if (!reporter) return\n\n const occurredAt = resolveOccurredAt(input.occurredAt)\n const attempts = input.attempts ?? 1\n const eventIds = input.eventIds === undefined ? undefined : [...input.eventIds].sort()\n const firstEventId = eventIds?.[0]\n const occurrence = firstEventId\n ? `events:${firstEventId}:attempt:${attempts}`\n : `emit:${input.occurrenceId ?? randomUUID()}`\n reporter.report(error, {\n type: \"event.delivery.failed\",\n notificationId: `project:${input.projectId}:event-delivery:${occurrence}`,\n projectId: input.projectId,\n occurredAt,\n attempts,\n eventTypes: input.eventTypes,\n ...(eventIds === undefined ? {} : { eventIds }),\n })\n}\n\nexport interface ReportRuleEvaluationFailureInput {\n readonly projectId: string\n readonly source: \"live\" | \"reconciliation\"\n readonly eventIds?: readonly string[]\n readonly occurredAt?: Date | string\n /** Set when the failure could be attributed to one rule/subject candidate. */\n readonly ruleId?: string\n readonly subject?: { readonly objectTypeId: string; readonly primaryId: string }\n}\n\nexport function reportRuleEvaluationFailure(\n host: unknown,\n error: unknown,\n input: ReportRuleEvaluationFailureInput\n): void {\n const reporter = asHost(host)?.[ERROR_REPORTER]\n if (!reporter) return\n\n const occurredAt = resolveOccurredAt(input.occurredAt)\n const eventIds = [...(input.eventIds ?? [])].sort()\n // A candidate-level failure keys on the candidate, so two rules failing over the same batch stay\n // two notifications rather than collapsing into one.\n const occurrence =\n input.ruleId && input.subject\n ? `${input.ruleId}:${input.subject.objectTypeId}:${input.subject.primaryId}`\n : (eventIds[0] ?? \"current-state\")\n reporter.report(error, {\n type: \"rule.evaluation.failed\",\n notificationId: `project:${input.projectId}:rule-evaluation:${input.source}:${occurrence}:failed:${occurredAt}`,\n projectId: input.projectId,\n occurredAt,\n source: input.source,\n eventIds,\n ...(input.ruleId === undefined ? {} : { ruleId: input.ruleId }),\n ...(input.subject === undefined ? {} : { subject: input.subject }),\n })\n}\n\nexport async function flushSixbErrors(host: unknown, timeoutMs?: number): Promise<void> {\n await asHost(host)?.[ERROR_REPORTER]?.flush(timeoutMs)\n}\n"
8
- ],
9
- "mappings": ";;AAAA,SAAS,UAAU,CAAC,OAAwB;AAAA,EAC1C,IAAI;AAAA,IACF,OAAO,OAAO,KAAK;AAAA,IACnB,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAKJ,SAAS,sBAAsB,CAAC,OAAuB;AAAA,EAC5D,IAAI,iBAAiB,OAAO;AAAA,IAC1B,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAAA,IAC/C,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,MACF,UAAU,QAAQ,IAAI,OAAO,SAAS;AAAA,MACtC,OAAO,QAAQ,IAAI,OAAO,MAAM;AAAA,MAChC,MAAM;AAAA,MACN,OAAO,IAAI,MAAM,sBAAsB;AAAA;AAAA,IAGzC,IAAI,OAAO,YAAY,UAAU;AAAA,MAC/B,MAAM,QAAQ,IAAI,MAAM,OAAO;AAAA,MAC/B,IAAI,OAAO,SAAS,YAAY,KAAK,KAAK,GAAG;AAAA,QAC3C,MAAM,OAAO;AAAA,MACf;AAAA,MACA,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,OAAO,IAAI,MAAM,WAAW,KAAK,CAAC;AAAA;;;AC9BpC,IAAM,2BAA2B;AAAA;AAG1B,MAAM,kBAAkB;AAAA,EAGA;AAAA,EAFZ,UAAU,IAAI;AAAA,EAE/B,WAAW,CAAkB,SAA4B;AAAA,IAA5B;AAAA;AAAA,EAE7B,MAAM,CAAC,OAAgB,SAAiC;AAAA,IACtD,IAAI,CAAC,KAAK;AAAA,MAAS;AAAA,IAEnB,MAAM,aAAa,QAAQ,QAAQ,EAChC,KAAK,MAAM,KAAK,UAAU,uBAAuB,KAAK,GAAG,OAAO,CAAC,EACjE,KAAK,MAAG;AAAA,MAAG;AAAA,KAAS,EACpB,MAAM,CAAC,iBAAiB;AAAA,MACvB,IAAI;AAAA,QACF,QAAQ,MAAM,kCAAkC,YAAY;AAAA,QAC5D,MAAM;AAAA,KAGT;AAAA,IAEH,MAAM,UAAU,WAAW,QAAQ,MAAM;AAAA,MACvC,KAAK,QAAQ,OAAO,OAAO;AAAA,KAC5B;AAAA,IACD,KAAK,QAAQ,IAAI,OAAO;AAAA;AAAA,OAGpB,MAAK,CAAC,YAAY,0BAAyC;AAAA,IAC/D,MAAM,WAAW,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,SAAS;AAAA,IACnD,OAAO,KAAK,QAAQ,OAAO,GAAG;AAAA,MAC5B,MAAM,cAAc,WAAW,KAAK,IAAI;AAAA,MACxC,IAAI,eAAe,KAAK,CAAE,MAAM,aAAa,CAAC,GAAG,KAAK,OAAO,GAAG,WAAW,GAAI;AAAA,QAC7E,IAAI;AAAA,UACF,QAAQ,MACN,0BAA0B,2BAA2B,KAAK,QAAQ,0BACpE;AAAA,UACA,MAAM;AAAA,QAGR;AAAA,MACF;AAAA,IACF;AAAA;AAEJ;AAEA,eAAe,YAAY,CACzB,UACA,WACkB;AAAA,EAClB,IAAI;AAAA,EACJ,IAAI;AAAA,IACF,OAAO,MAAM,QAAQ,KAAK;AAAA,MACxB,QAAQ,WAAW,QAAQ,EAAE,KAAK,MAAM,IAAI;AAAA,MAC5C,IAAI,QAAe,CAAC,YAAY;AAAA,QAC9B,UAAU,WAAW,MAAM,QAAQ,KAAK,GAAG,SAAS;AAAA,OACrD;AAAA,IACH,CAAC;AAAA,YACD;AAAA,IACA,IAAI;AAAA,MAAS,aAAa,OAAO;AAAA;AAAA;;;AC9DrC;AAIA,SAAS,iBAAiB,CAAC,YAAoC;AAAA,EAC7D,IAAI,sBAAsB;AAAA,IAAM,OAAO,WAAW,YAAY;AAAA,EAC9D,OAAO,cAAc,IAAI,KAAK,EAAE,YAAY;AAAA;AAG9C,IAAM,iBAAiB,OAAO,qBAAqB;AAMnD,SAAS,MAAM,CAAC,OAA0C;AAAA,EACxD,IAAK,OAAO,UAAU,YAAY,OAAO,UAAU,cAAe,UAAU,MAAM;AAAA,IAChF,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA;AAGF,SAAS,uBAAuB,CACrC,MACA,SACmB;AAAA,EACnB,MAAM,WAAW,IAAI,kBAAkB,OAAO;AAAA,EAC5C,KAA2B,kBAAkB;AAAA,EAC/C,OAAO;AAAA;AAGF,SAAS,sBAAsB,CAAC,QAAgB,QAAsB;AAAA,EAC3E,MAAM,WAAY,OAA6B;AAAA,EAC/C,IAAI;AAAA,IAAW,OAA6B,kBAAkB;AAAA;AAUzD,SAAS,gBAAgB,CAC9B,MACA,OACA,OACM;AAAA,EACN,MAAM,WAAW,OAAO,IAAI,IAAI;AAAA,EAChC,IAAI,CAAC;AAAA,IAAU;AAAA,EAEf,MAAM,aAAa,kBAAkB,MAAM,UAAU;AAAA,EACrD,SAAS,OAAO,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,gBAAgB,WAAW,MAAM,iBAAiB,MAAM,IAAI,QAAQ,MAAM,IAAI,gBAAgB;AAAA,IAC9F,WAAW,MAAM;AAAA,IACjB;AAAA,OACI,MAAM,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,QAAQ;AAAA,IAChE,KAAK,MAAM;AAAA,EACb,CAAC;AAAA;AAkCI,SAAS,0BAA0B,CACxC,MACA,OACA,OACM;AAAA,EACN,MAAM,WAAW,OAAO,IAAI,IAAI;AAAA,EAChC,IAAI,CAAC;AAAA,IAAU;AAAA,EAEf,MAAM,aAAa,kBAAkB,MAAM,UAAU;AAAA,EACrD,MAAM,WAAW,MAAM,YAAY;AAAA,EACnC,MAAM,WAAW,MAAM,aAAa,YAAY,YAAY,CAAC,GAAG,MAAM,QAAQ,EAAE,KAAK;AAAA,EACrF,MAAM,eAAe,WAAW;AAAA,EAChC,MAAM,aAAa,eACf,UAAU,wBAAwB,aAClC,QAAQ,MAAM,gBAAgB,WAAW;AAAA,EAC7C,SAAS,OAAO,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,gBAAgB,WAAW,MAAM,4BAA4B;AAAA,IAC7D,WAAW,MAAM;AAAA,IACjB;AAAA,IACA;AAAA,IACA,YAAY,MAAM;AAAA,OACd,aAAa,YAAY,CAAC,IAAI,EAAE,SAAS;AAAA,EAC/C,CAAC;AAAA;AAaI,SAAS,2BAA2B,CACzC,MACA,OACA,OACM;AAAA,EACN,MAAM,WAAW,OAAO,IAAI,IAAI;AAAA,EAChC,IAAI,CAAC;AAAA,IAAU;AAAA,EAEf,MAAM,aAAa,kBAAkB,MAAM,UAAU;AAAA,EACrD,MAAM,WAAW,CAAC,GAAI,MAAM,YAAY,CAAC,CAAE,EAAE,KAAK;AAAA,EAGlD,MAAM,aACJ,MAAM,UAAU,MAAM,UAClB,GAAG,MAAM,UAAU,MAAM,QAAQ,gBAAgB,MAAM,QAAQ,cAC9D,SAAS,MAAM;AAAA,EACtB,SAAS,OAAO,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,gBAAgB,WAAW,MAAM,6BAA6B,MAAM,UAAU,qBAAqB;AAAA,IACnG,WAAW,MAAM;AAAA,IACjB;AAAA,IACA,QAAQ,MAAM;AAAA,IACd;AAAA,OACI,MAAM,WAAW,YAAY,CAAC,IAAI,EAAE,QAAQ,MAAM,OAAO;AAAA,OACzD,MAAM,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,QAAQ;AAAA,EAClE,CAAC;AAAA;AAGH,eAAsB,eAAe,CAAC,MAAe,WAAmC;AAAA,EACtF,MAAM,OAAO,IAAI,IAAI,iBAAiB,MAAM,SAAS;AAAA;",
10
- "debugId": "62C3DE138354F19B64756E2164756E21",
11
- "names": []
12
- }
@@ -1,10 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/runtime/ontology-mutations.ts"],
4
- "sourcesContent": [
5
- "import type {\n EditCommitResult,\n OntologyEditCommit,\n OntologyMaterializer,\n ProjectionCommitResult,\n ProjectionRunFinishInput,\n ProjectionSourceReplacement,\n TelemetryAppend,\n TelemetryCommitResult,\n} from \"../materialization/model\"\n\nexport interface OntologyMutationRuntime {\n commitEdits(input: OntologyEditCommit): Promise<EditCommitResult>\n replaceProjection(input: ProjectionSourceReplacement): Promise<ProjectionCommitResult>\n finishProjection(input: ProjectionRunFinishInput): Promise<void>\n appendTelemetry(input: TelemetryAppend): Promise<TelemetryCommitResult>\n}\n\nconst ontologyMutationRuntimeKey: unique symbol = Symbol(\"sixb.ontologyMutationRuntime\")\n\ninterface OntologyMutationRuntimeOwner {\n readonly [ontologyMutationRuntimeKey]?: OntologyMutationRuntime\n}\n\nexport function registerOntologyMutationRuntime(\n owner: object,\n runtime: OntologyMutationRuntime\n): void {\n const registered = (owner as OntologyMutationRuntimeOwner)[ontologyMutationRuntimeKey]\n if (registered && registered !== runtime) {\n throw new Error(\"[Sixb] Ontology mutation runtime is already registered for this owner.\")\n }\n Object.defineProperty(owner, ontologyMutationRuntimeKey, {\n configurable: false,\n enumerable: true,\n value: runtime,\n writable: false,\n })\n}\n\nexport function getOntologyMutationRuntime(owner: object): OntologyMutationRuntime {\n const runtime = (owner as OntologyMutationRuntimeOwner)[ontologyMutationRuntimeKey]\n if (runtime) return runtime\n throw new Error(\"[Sixb] Ontology mutation runtime is not registered for this runtime context.\")\n}\n\n/** Copies the opaque capability when an internal runtime context is reconstructed. */\nexport function shareOntologyMutationRuntime(source: object, target: object): void {\n registerOntologyMutationRuntime(target, getOntologyMutationRuntime(source))\n}\n\nexport function createOntologyMutationRuntime(input: {\n readonly materializer: OntologyMaterializer\n readonly notifyCommittedFacts: () => void\n}): OntologyMutationRuntime {\n return {\n commitEdits: (command) =>\n commitAndNotify(() => input.materializer.edits.commit(command), input.notifyCommittedFacts),\n replaceProjection: (command) =>\n commitAndNotify(\n () => input.materializer.projections.replace(command),\n input.notifyCommittedFacts\n ),\n finishProjection: (command) => input.materializer.projections.finishRun(command),\n appendTelemetry: (command) =>\n commitAndNotify(\n () => input.materializer.telemetry.append(command),\n input.notifyCommittedFacts\n ),\n }\n}\n\nasync function commitAndNotify<TResult extends { readonly eventCount: number }>(\n commit: () => Promise<TResult>,\n notify: () => void\n): Promise<TResult> {\n const result = await commit()\n if (result.eventCount > 0) notifyWithoutAffectingCommit(notify)\n return result\n}\n\nfunction notifyWithoutAffectingCommit(notify: () => void): void {\n try {\n notify()\n } catch (error) {\n // The ontology commit is already durable. A wake-up failure must never turn it into an apparent\n // mutation failure; API-hosted ontology maintenance remains the correctness fallback.\n console.error(\"[Sixb] Failed to wake the ontology outbox dispatcher:\", error)\n }\n}\n"
6
- ],
7
- "mappings": ";;AAkBA,IAAM,6BAA4C,OAAO,8BAA8B;AAMhF,SAAS,+BAA+B,CAC7C,OACA,SACM;AAAA,EACN,MAAM,aAAc,MAAuC;AAAA,EAC3D,IAAI,cAAc,eAAe,SAAS;AAAA,IACxC,MAAM,IAAI,MAAM,wEAAwE;AAAA,EAC1F;AAAA,EACA,OAAO,eAAe,OAAO,4BAA4B;AAAA,IACvD,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,EACZ,CAAC;AAAA;AAGI,SAAS,0BAA0B,CAAC,OAAwC;AAAA,EACjF,MAAM,UAAW,MAAuC;AAAA,EACxD,IAAI;AAAA,IAAS,OAAO;AAAA,EACpB,MAAM,IAAI,MAAM,8EAA8E;AAAA;AAIzF,SAAS,4BAA4B,CAAC,QAAgB,QAAsB;AAAA,EACjF,gCAAgC,QAAQ,2BAA2B,MAAM,CAAC;AAAA;AAGrE,SAAS,6BAA6B,CAAC,OAGlB;AAAA,EAC1B,OAAO;AAAA,IACL,aAAa,CAAC,YACZ,gBAAgB,MAAM,MAAM,aAAa,MAAM,OAAO,OAAO,GAAG,MAAM,oBAAoB;AAAA,IAC5F,mBAAmB,CAAC,YAClB,gBACE,MAAM,MAAM,aAAa,YAAY,QAAQ,OAAO,GACpD,MAAM,oBACR;AAAA,IACF,kBAAkB,CAAC,YAAY,MAAM,aAAa,YAAY,UAAU,OAAO;AAAA,IAC/E,iBAAiB,CAAC,YAChB,gBACE,MAAM,MAAM,aAAa,UAAU,OAAO,OAAO,GACjD,MAAM,oBACR;AAAA,EACJ;AAAA;AAGF,eAAe,eAAgE,CAC7E,QACA,QACkB;AAAA,EAClB,MAAM,SAAS,MAAM,OAAO;AAAA,EAC5B,IAAI,OAAO,aAAa;AAAA,IAAG,6BAA6B,MAAM;AAAA,EAC9D,OAAO;AAAA;AAGT,SAAS,4BAA4B,CAAC,QAA0B;AAAA,EAC9D,IAAI;AAAA,IACF,OAAO;AAAA,IACP,OAAO,OAAO;AAAA,IAGd,QAAQ,MAAM,yDAAyD,KAAK;AAAA;AAAA;",
8
- "debugId": "858B100035715B9264756E2164756E21",
9
- "names": []
10
- }
@@ -1,11 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/broker/errors.ts", "../src/broker/in-memory.ts"],
4
- "sourcesContent": [
5
- "export class BrokerError extends Error {\n readonly name: string = \"BrokerError\"\n\n constructor(message: string, options?: ErrorOptions) {\n super(`[Broker] ${message}`, options)\n }\n}\n\n/**\n * Raised when retention has removed the cursor a consumer wants to resume\n * from. Transports use this provider-independent type to request a reset.\n */\nexport class BrokerCursorExpiredError extends BrokerError {\n override readonly name = \"BrokerCursorExpiredError\"\n}\n",
6
- "import { getInvalidJsonValueReason, type JsonValue } from \"../json\"\nimport { BrokerCursorExpiredError, BrokerError } from \"./errors\"\nimport type {\n Broker,\n BrokerPage,\n BrokerRecord,\n BrokerRecordInput,\n BrokerStreamDefinition,\n} from \"./types\"\n\n// Payloads are validated by assertBrokerPayload above the call site, so we can\n// skip the redundant validity walk that cloneJsonValue performs.\nfunction cloneValidatedPayload(value: JsonValue): JsonValue {\n return JSON.parse(JSON.stringify(value)) as JsonValue\n}\n\n// Records stored internally carry a numeric publishedAtMs alongside the public\n// ISO publishedAt string so retention sweeps can avoid Date.parse on every\n// record on every append/read.\ninterface StoredRecord extends BrokerRecord {\n readonly publishedAtMs: number\n readonly byteSize: number\n}\n\ninterface StoredStream {\n definition: BrokerStreamDefinition\n nextSequence: bigint\n records: StoredRecord[]\n retainedBytes: number\n}\n\ninterface Subscription {\n readonly projectId: string\n readonly streamId: string\n readonly names?: readonly string[]\n readonly keys?: readonly string[]\n readonly handler: (records: readonly BrokerRecord[]) => void\n}\n\nexport class InMemoryBroker implements Broker {\n readonly scope = \"process\" as const\n private readonly streams = new Map<string, StoredStream>()\n private readonly subscriptions = new Set<Subscription>()\n\n async ensureStream(params: { projectId: string; stream: BrokerStreamDefinition }): Promise<void> {\n assertProjectId(params.projectId)\n assertStream(params.stream)\n this.getOrCreateStream(params.projectId, params.stream)\n }\n\n async append(params: {\n projectId: string\n streamId: string\n records: readonly BrokerRecordInput[]\n }): Promise<readonly BrokerRecord[]> {\n assertProjectId(params.projectId)\n assertStreamId(params.streamId)\n\n if (params.records.length === 0) {\n return []\n }\n\n for (const record of params.records) {\n assertBrokerPayload(record.payload)\n }\n\n const storedStream = this.getEnsuredStream(params.projectId, params.streamId)\n const stored: StoredRecord[] = []\n\n for (const record of params.records) {\n const cursor = storedStream.nextSequence.toString()\n storedStream.nextSequence += 1n\n const publishedAtMs = Date.now()\n const storedRecord = {\n streamId: params.streamId,\n cursor,\n name: record.name,\n key: record.key,\n payload: cloneValidatedPayload(record.payload as JsonValue),\n publishedAt: new Date(publishedAtMs).toISOString(),\n publishedAtMs,\n }\n stored.push({\n ...storedRecord,\n byteSize: utf8Bytes(JSON.stringify(storedRecord)),\n })\n }\n\n storedStream.records.push(...stored)\n storedStream.retainedBytes += stored.reduce((total, record) => total + record.byteSize, 0)\n this.applyRetention(storedStream)\n const records = stored.map(toBrokerRecord)\n this.notify(params.projectId, params.streamId, stored)\n return records\n }\n\n async read(params: {\n projectId: string\n streamId: string\n afterCursor?: string\n limit?: number\n names?: readonly string[]\n keys?: readonly string[]\n }): Promise<BrokerPage> {\n assertProjectId(params.projectId)\n assertStreamId(params.streamId)\n assertCursor(params.afterCursor)\n\n if (params.limit !== undefined && params.limit <= 0) {\n return { records: [], cursor: params.afterCursor, hasMore: false }\n }\n\n const storedStream = this.streams.get(streamKey(params.projectId, params.streamId))\n if (!storedStream) {\n return { records: [], cursor: params.afterCursor, hasMore: false }\n }\n\n this.applyRetention(storedStream)\n this.assertCursorInRetainedRange(storedStream, params.afterCursor)\n return this.readForward(storedStream.records, {\n afterCursor: params.afterCursor,\n limit: params.limit,\n names: params.names,\n keys: params.keys,\n })\n }\n\n async tail(params: {\n projectId: string\n streamId: string\n beforeCursor?: string\n limit?: number\n names?: readonly string[]\n keys?: readonly string[]\n }): Promise<BrokerPage> {\n assertProjectId(params.projectId)\n assertStreamId(params.streamId)\n assertCursor(params.beforeCursor)\n\n if (params.limit !== undefined && params.limit <= 0) {\n return { records: [], cursor: params.beforeCursor, hasMore: false }\n }\n\n const storedStream = this.streams.get(streamKey(params.projectId, params.streamId))\n if (!storedStream) {\n return { records: [], cursor: params.beforeCursor, hasMore: false }\n }\n\n this.applyRetention(storedStream)\n this.assertTailCursorInRetainedRange(storedStream, params.beforeCursor)\n return this.readBackward(storedStream.records, params)\n }\n\n async latestCursor(params: { projectId: string; streamId: string }): Promise<string | undefined> {\n assertProjectId(params.projectId)\n assertStreamId(params.streamId)\n\n const storedStream = this.streams.get(streamKey(params.projectId, params.streamId))\n if (!storedStream) {\n return undefined\n }\n\n this.applyRetention(storedStream)\n return storedStream.records.at(-1)?.cursor\n }\n\n async subscribe(\n params: {\n projectId: string\n streamId: string\n from?: \"latest\" | \"earliest\"\n afterCursor?: string\n names?: readonly string[]\n keys?: readonly string[]\n },\n handler: (records: readonly BrokerRecord[]) => void\n ): Promise<() => void> {\n assertProjectId(params.projectId)\n assertStreamId(params.streamId)\n assertCursor(params.afterCursor)\n const storedStream = this.getEnsuredStream(params.projectId, params.streamId)\n\n const subscription: Subscription = {\n projectId: params.projectId,\n streamId: params.streamId,\n names: params.names,\n keys: params.keys,\n handler,\n }\n this.subscriptions.add(subscription)\n\n const startMode = params.afterCursor !== undefined ? undefined : (params.from ?? \"latest\")\n if (params.afterCursor !== undefined || startMode === \"earliest\") {\n this.applyRetention(storedStream)\n const initial = this.readForward(storedStream.records, {\n afterCursor: params.afterCursor,\n names: params.names,\n keys: params.keys,\n }).records\n this.deliver(subscription, initial)\n }\n\n return () => {\n this.subscriptions.delete(subscription)\n }\n }\n\n private getOrCreateStream(projectId: string, stream: BrokerStreamDefinition): StoredStream {\n const key = streamKey(projectId, stream.id)\n let storedStream = this.streams.get(key)\n if (!storedStream) {\n storedStream = {\n definition: stream,\n nextSequence: 1n,\n records: [],\n retainedBytes: 0,\n }\n this.streams.set(key, storedStream)\n }\n this.applyRetention(storedStream)\n return storedStream\n }\n\n private getEnsuredStream(projectId: string, streamId: string): StoredStream {\n const storedStream = this.streams.get(streamKey(projectId, streamId))\n if (!storedStream) {\n throw new BrokerError(\n `stream '${streamId}' has not been ensured for project '${projectId}'. Call ensureStream() before append or subscribe.`\n )\n }\n return storedStream\n }\n\n private applyRetention(storedStream: StoredStream): void {\n const { retention } = storedStream.definition\n if (!retention) {\n return\n }\n\n let removeCount = 0\n const records = storedStream.records\n\n if (retention.maxAgeMs !== undefined) {\n if (retention.maxAgeMs <= 0) {\n removeCount = records.length\n } else {\n const oldestAllowed = Date.now() - retention.maxAgeMs\n // Records are appended in chronological order, so we only need to find\n // the first record that is still in range and slice off the prefix —\n // avoids walking the entire retained set on every sweep.\n let firstInRange = 0\n while (\n firstInRange < records.length &&\n records[firstInRange].publishedAtMs < oldestAllowed\n ) {\n firstInRange += 1\n }\n removeCount = Math.max(removeCount, firstInRange)\n }\n }\n\n if (retention.maxRecords !== undefined) {\n if (retention.maxRecords <= 0) {\n removeCount = records.length\n } else if (records.length - removeCount > retention.maxRecords) {\n removeCount = records.length - retention.maxRecords\n }\n }\n\n if (retention.maxBytes !== undefined) {\n if (retention.maxBytes <= 0) {\n removeCount = records.length\n } else {\n let bytes = storedStream.retainedBytes\n for (let index = 0; index < removeCount; index += 1) {\n bytes -= records[index]!.byteSize\n }\n while (removeCount < records.length && bytes > retention.maxBytes) {\n bytes -= records[removeCount]!.byteSize\n removeCount += 1\n }\n }\n }\n\n if (removeCount > 0) {\n for (let index = 0; index < removeCount; index += 1) {\n storedStream.retainedBytes -= records[index]!.byteSize\n }\n storedStream.records = records.slice(removeCount)\n }\n }\n\n private assertCursorInRetainedRange(\n storedStream: StoredStream,\n afterCursor: string | undefined\n ): void {\n if (afterCursor === undefined) {\n return\n }\n\n const requestedNextSequence = BigInt(afterCursor) + 1n\n const firstRecord = storedStream.records[0]\n const firstAvailableSequence =\n firstRecord === undefined ? storedStream.nextSequence : BigInt(firstRecord.cursor)\n\n if (requestedNextSequence < firstAvailableSequence) {\n throw new BrokerCursorExpiredError(\n `afterCursor '${afterCursor}' is outside the retained range for stream '${storedStream.definition.id}'. ` +\n `The next requested cursor sequence is '${requestedNextSequence}', but the earliest ` +\n `available cursor sequence is '${firstAvailableSequence}'.`\n )\n }\n }\n\n private assertTailCursorInRetainedRange(\n storedStream: StoredStream,\n beforeCursor: string | undefined\n ): void {\n if (beforeCursor === undefined || storedStream.records.length === 0) {\n return\n }\n const firstAvailableSequence = BigInt(storedStream.records[0]!.cursor)\n if (BigInt(beforeCursor) < firstAvailableSequence) {\n throw new BrokerCursorExpiredError(\n `beforeCursor '${beforeCursor}' is outside the retained range for stream '${storedStream.definition.id}'. ` +\n `The earliest available cursor sequence is '${firstAvailableSequence}'.`\n )\n }\n }\n\n private notify(projectId: string, streamId: string, records: readonly StoredRecord[]): void {\n for (const subscription of this.subscriptions) {\n if (subscription.projectId !== projectId || subscription.streamId !== streamId) {\n continue\n }\n this.deliver(\n subscription,\n this.readForward(records, {\n names: subscription.names,\n keys: subscription.keys,\n }).records\n )\n }\n }\n\n private deliver(subscription: Subscription, records: readonly BrokerRecord[]): void {\n if (records.length === 0) {\n return\n }\n\n try {\n subscription.handler(records)\n } catch {\n // Broker subscriptions are live fan-out; handler failures should not break publishers.\n }\n }\n\n private readForward(\n records: readonly StoredRecord[],\n filters: {\n afterCursor?: string\n limit?: number\n names?: readonly string[]\n keys?: readonly string[]\n }\n ): BrokerPage {\n const names = filters.names && filters.names.length > 0 ? new Set(filters.names) : undefined\n const keys = filters.keys && filters.keys.length > 0 ? new Set(filters.keys) : undefined\n const afterCursor = filters.afterCursor ? BigInt(filters.afterCursor) : undefined\n const result: BrokerRecord[] = []\n let cursor = filters.afterCursor\n let stoppedAt = records.length\n\n for (let index = 0; index < records.length; index += 1) {\n const record = records[index]!\n if (afterCursor !== undefined && BigInt(record.cursor) <= afterCursor) {\n continue\n }\n cursor = record.cursor\n if (!matchesFilters(record, names, keys)) {\n continue\n }\n result.push(toBrokerRecord(record))\n if (filters.limit !== undefined && result.length >= filters.limit) {\n stoppedAt = index + 1\n break\n }\n }\n\n return {\n records: result,\n cursor,\n hasMore: records.slice(stoppedAt).some((record) => matchesFilters(record, names, keys)),\n }\n }\n\n private readBackward(\n records: readonly StoredRecord[],\n filters: {\n beforeCursor?: string\n limit?: number\n names?: readonly string[]\n keys?: readonly string[]\n }\n ): BrokerPage {\n const names = filters.names && filters.names.length > 0 ? new Set(filters.names) : undefined\n const keys = filters.keys && filters.keys.length > 0 ? new Set(filters.keys) : undefined\n const beforeCursor = filters.beforeCursor ? BigInt(filters.beforeCursor) : undefined\n const reversed: BrokerRecord[] = []\n let cursor = filters.beforeCursor\n let stoppedAt = -1\n\n for (let index = records.length - 1; index >= 0; index -= 1) {\n const record = records[index]!\n if (beforeCursor !== undefined && BigInt(record.cursor) >= beforeCursor) {\n continue\n }\n cursor = record.cursor\n if (!matchesFilters(record, names, keys)) {\n continue\n }\n reversed.push(toBrokerRecord(record))\n if (filters.limit !== undefined && reversed.length >= filters.limit) {\n stoppedAt = index - 1\n break\n }\n }\n\n return {\n records: reversed.reverse(),\n cursor,\n hasMore:\n stoppedAt >= 0 &&\n records.slice(0, stoppedAt + 1).some((record) => matchesFilters(record, names, keys)),\n }\n }\n}\n\nfunction matchesFilters(\n record: BrokerRecord,\n names: ReadonlySet<string> | undefined,\n keys: ReadonlySet<string> | undefined\n): boolean {\n return (\n (!names || (!!record.name && names.has(record.name))) &&\n (!keys || (!!record.key && keys.has(record.key)))\n )\n}\n\nfunction streamKey(projectId: string, streamId: string): string {\n return `${projectId}\\0${streamId}`\n}\n\nfunction toBrokerRecord(record: StoredRecord): BrokerRecord {\n return {\n streamId: record.streamId,\n cursor: record.cursor,\n name: record.name,\n key: record.key,\n payload: record.payload,\n publishedAt: record.publishedAt,\n }\n}\n\nfunction utf8Bytes(value: string): number {\n return new TextEncoder().encode(value).byteLength\n}\n\nfunction assertProjectId(projectId: string): void {\n if (projectId.trim().length === 0) {\n throw new BrokerError(\"projectId must be a non-empty string\")\n }\n}\n\nfunction assertStream(stream: BrokerStreamDefinition): void {\n if (stream.id.trim().length === 0) {\n throw new BrokerError(\"stream.id must be a non-empty string\")\n }\n}\n\nfunction assertStreamId(streamId: string): void {\n if (streamId.trim().length === 0) {\n throw new BrokerError(\"streamId must be a non-empty string\")\n }\n}\n\nfunction assertBrokerPayload(payload: unknown): void {\n const reason = getInvalidJsonValueReason(payload, \"record.payload\")\n if (reason) {\n throw new BrokerError(`record.payload must be a JSON value; ${reason}`)\n }\n}\n\nfunction assertCursor(cursor: string | undefined): void {\n if (cursor === undefined) {\n return\n }\n\n try {\n if (BigInt(cursor) < 0n) {\n throw new BrokerError(\"cursor must be non-negative\")\n }\n } catch (error) {\n if (error instanceof BrokerError) {\n throw error\n }\n throw new BrokerError(\"cursor must be a numeric in-memory broker cursor\", {\n cause: error,\n })\n }\n}\n"
7
- ],
8
- "mappings": "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",
9
- "debugId": "022D9D374838A92664756E2164756E21",
10
- "names": []
11
- }
@@ -1,37 +0,0 @@
1
- // @bun
2
- import {
3
- assertJsonValue,
4
- stableJsonStringify
5
- } from "./chunk-1vffvydj.js";
6
-
7
- // src/materialization/identity.ts
8
- import { createHash } from "crypto";
9
- var ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER = Object.freeze([
10
- "object.created",
11
- "object.updated",
12
- "object.deleted",
13
- "link.created",
14
- "link.updated",
15
- "link.deleted",
16
- "telemetry.appended"
17
- ]);
18
- function materializationEventKindOrdinal(kind) {
19
- return ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER.indexOf(kind);
20
- }
21
- function sha256Canonical(value) {
22
- assertJsonValue(value, "Canonical hash input");
23
- return createHash("sha256").update(stableJsonStringify(value)).digest("hex");
24
- }
25
- function createRequestHash(normalizedCallerIntent) {
26
- return sha256Canonical(normalizedCallerIntent);
27
- }
28
- function createCommitId(projectId, idempotencyKey) {
29
- return sha256Canonical([projectId, idempotencyKey]);
30
- }
31
- function createEventId(projectId, commitId, ordinal) {
32
- return sha256Canonical([projectId, commitId, ordinal]);
33
- }
34
-
35
- export { ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER, materializationEventKindOrdinal, sha256Canonical, createRequestHash, createCommitId, createEventId };
36
-
37
- //# debugId=C26E47226F21CC0E64756E2164756E21
@@ -1,10 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/materialization/identity.ts"],
4
- "sourcesContent": [
5
- "import { createHash } from \"node:crypto\"\nimport { assertJsonValue, stableJsonStringify } from \"../json\"\n\nexport const ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER = Object.freeze([\n \"object.created\",\n \"object.updated\",\n \"object.deleted\",\n \"link.created\",\n \"link.updated\",\n \"link.deleted\",\n \"telemetry.appended\",\n] as const)\n\nexport type OntologyMaterializationEventKind =\n (typeof ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER)[number]\n\nexport function materializationEventKindOrdinal(kind: OntologyMaterializationEventKind): number {\n return ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER.indexOf(kind)\n}\n\nexport function sha256Canonical(value: unknown): string {\n assertJsonValue(value, \"Canonical hash input\")\n return createHash(\"sha256\").update(stableJsonStringify(value)).digest(\"hex\")\n}\n\nexport function createRequestHash(normalizedCallerIntent: unknown): string {\n return sha256Canonical(normalizedCallerIntent)\n}\n\nexport function createCommitId(projectId: string, idempotencyKey: string): string {\n return sha256Canonical([projectId, idempotencyKey])\n}\n\nexport function createEventId(projectId: string, commitId: string, ordinal: number): string {\n return sha256Canonical([projectId, commitId, ordinal])\n}\n"
6
- ],
7
- "mappings": ";;;;;;;AAAA;AAGO,IAAM,4CAA4C,OAAO,OAAO;AAAA,EACrE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAU;AAKH,SAAS,+BAA+B,CAAC,MAAgD;AAAA,EAC9F,OAAO,0CAA0C,QAAQ,IAAI;AAAA;AAGxD,SAAS,eAAe,CAAC,OAAwB;AAAA,EACtD,gBAAgB,OAAO,sBAAsB;AAAA,EAC7C,OAAO,WAAW,QAAQ,EAAE,OAAO,oBAAoB,KAAK,CAAC,EAAE,OAAO,KAAK;AAAA;AAGtE,SAAS,iBAAiB,CAAC,wBAAyC;AAAA,EACzE,OAAO,gBAAgB,sBAAsB;AAAA;AAGxC,SAAS,cAAc,CAAC,WAAmB,gBAAgC;AAAA,EAChF,OAAO,gBAAgB,CAAC,WAAW,cAAc,CAAC;AAAA;AAG7C,SAAS,aAAa,CAAC,WAAmB,UAAkB,SAAyB;AAAA,EAC1F,OAAO,gBAAgB,CAAC,WAAW,UAAU,OAAO,CAAC;AAAA;",
8
- "debugId": "C26E47226F21CC0E64756E2164756E21",
9
- "names": []
10
- }
@@ -1,11 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/queues/errors.ts", "../src/queues/in-memory.ts"],
4
- "sourcesContent": [
5
- "/**\n * Error for queue invariants and invalid queue operations.\n */\nexport class QueueError extends Error {\n readonly name = \"QueueError\"\n}\n",
6
- "import { randomUUID } from \"node:crypto\"\nimport { QueueError } from \"./errors\"\nimport type {\n ActionRunRequestedQueueJob,\n AgentQueueJob,\n ClaimedQueueJob,\n NewQueueJob,\n PipelineRunRequestedQueueJob,\n ProjectionRunRequestedQueueJob,\n Queue,\n QueueJob,\n QueueJobError,\n Queues,\n SyncRunRequestedQueueJob,\n WorkflowQueueJob,\n} from \"./types\"\n\ntype QueueRecordState = \"queued\" | \"completed\" | \"failed\"\n\ninterface QueueRecord<TQueueJob extends QueueJob = QueueJob> {\n readonly sequence: number\n readonly queueId: string\n job: TQueueJob\n // A leased job stays \"queued\" until a worker completes or fails it.\n state: QueueRecordState\n leaseId: string | null\n claimedAt: string | null\n leaseExpiresAt: string | null\n}\n\nfunction assertNonEmpty(value: string, fieldName: string): void {\n if (value.trim().length === 0) {\n throw new QueueError(`[Sixb] Queue ${fieldName} must not be empty`)\n }\n}\n\nfunction parseTimestamp(value: string, fieldName: string): number {\n const timestamp = Date.parse(value)\n\n if (Number.isNaN(timestamp)) {\n throw new QueueError(`[Sixb] Queue ${fieldName} must be a valid timestamp`)\n }\n\n return timestamp\n}\n\nfunction assertPositiveNumber(value: number, fieldName: string): void {\n if (!Number.isFinite(value) || value <= 0) {\n throw new QueueError(`[Sixb] Queue ${fieldName} must be greater than 0`)\n }\n}\n\nfunction clearLease(record: QueueRecord): void {\n record.leaseId = null\n record.claimedAt = null\n record.leaseExpiresAt = null\n}\n\n// Best-effort ordering is part of the contract; this keeps the in-memory provider deterministic.\nfunction compareQueueRecords(left: QueueRecord, right: QueueRecord): number {\n const availableDifference =\n parseTimestamp(left.job.availableAt, \"job.availableAt\") -\n parseTimestamp(right.job.availableAt, \"job.availableAt\")\n\n if (availableDifference !== 0) {\n return availableDifference\n }\n\n const createdDifference =\n parseTimestamp(left.job.createdAt, \"job.createdAt\") -\n parseTimestamp(right.job.createdAt, \"job.createdAt\")\n\n if (createdDifference !== 0) {\n return createdDifference\n }\n\n return left.sequence - right.sequence\n}\n\nfunction createQueueJob<TQueueJob extends QueueJob>(\n projectId: string,\n newJob: NewQueueJob<TQueueJob>\n): TQueueJob {\n const createdAt = new Date().toISOString()\n const availableAt = newJob.availableAt ?? createdAt\n parseTimestamp(availableAt, \"availableAt\")\n\n return {\n id: newJob.id ?? randomUUID(),\n projectId,\n createdAt,\n availableAt,\n attempt: 0,\n metadata: newJob.metadata ? structuredClone(newJob.metadata) : undefined,\n type: newJob.type,\n payload: structuredClone(newJob.payload),\n } as TQueueJob\n}\n\nfunction leaseExpiresAtMs(record: QueueRecord): number | null {\n if (!record.leaseId || !record.leaseExpiresAt) {\n return null\n }\n\n return parseTimestamp(record.leaseExpiresAt, \"leaseExpiresAt\")\n}\n\nfunction toClaimedQueueJob<TQueueJob extends QueueJob>(\n record: QueueRecord<TQueueJob>\n): ClaimedQueueJob<TQueueJob> {\n if (!record.leaseId || !record.claimedAt || !record.leaseExpiresAt) {\n throw new QueueError(`[Sixb] Queue job '${record.job.id}' is not currently leased`)\n }\n\n return {\n leaseId: record.leaseId,\n claimedAt: record.claimedAt,\n leaseExpiresAt: record.leaseExpiresAt,\n job: structuredClone(record.job),\n }\n}\n\nclass InMemoryQueueStore {\n private readonly recordsByProject = new Map<string, QueueRecord[]>()\n private nextSequence = 1\n\n add<TQueueJob extends QueueJob>(projectId: string, queueId: string, job: TQueueJob): void {\n const records = this.getOrCreateRecords(projectId)\n records.push({\n sequence: this.nextSequence,\n queueId,\n job,\n state: \"queued\",\n leaseId: null,\n claimedAt: null,\n leaseExpiresAt: null,\n })\n this.nextSequence += 1\n }\n\n list<TQueueJob extends QueueJob>(projectId: string, queueId: string): QueueRecord<TQueueJob>[] {\n const records = this.recordsByProject.get(projectId) ?? []\n return records.filter((record) => record.queueId === queueId) as QueueRecord<TQueueJob>[]\n }\n\n find<TQueueJob extends QueueJob>(\n projectId: string,\n queueId: string,\n jobId: string\n ): QueueRecord<TQueueJob> | null {\n return (\n this.list<TQueueJob>(projectId, queueId).find((record) => record.job.id === jobId) ?? null\n )\n }\n\n private getOrCreateRecords(projectId: string): QueueRecord[] {\n const existing = this.recordsByProject.get(projectId)\n if (existing) {\n return existing\n }\n\n const records: QueueRecord[] = []\n this.recordsByProject.set(projectId, records)\n return records\n }\n}\n\nclass InMemoryQueue<TQueueJob extends QueueJob> implements Queue<TQueueJob> {\n constructor(\n private readonly store: InMemoryQueueStore,\n private readonly queueId: string\n ) {\n assertNonEmpty(queueId, \"queueId\")\n }\n\n async enqueue(params: {\n projectId: string\n jobs: readonly NewQueueJob<TQueueJob>[]\n }): Promise<readonly TQueueJob[]> {\n assertNonEmpty(params.projectId, \"projectId\")\n\n if (params.jobs.length === 0) {\n return []\n }\n\n const createdJobs = params.jobs.map((job) => {\n if (job.id !== undefined) assertNonEmpty(job.id, \"job.id\")\n const existing = job.id\n ? this.store.find<TQueueJob>(params.projectId, this.queueId, job.id)\n : null\n if (existing) return existing.job\n\n const created = createQueueJob(params.projectId, job)\n this.store.add(params.projectId, this.queueId, created)\n return created\n })\n\n return createdJobs.map((job) => structuredClone(job))\n }\n\n async claim(params: {\n projectId: string\n workerId: string\n limit?: number\n leaseMs?: number\n }): Promise<readonly ClaimedQueueJob<TQueueJob>[]> {\n assertNonEmpty(params.projectId, \"projectId\")\n assertNonEmpty(params.workerId, \"workerId\")\n\n const limit = params.limit ?? 1\n if (limit <= 0) {\n return []\n }\n\n const leaseMs = params.leaseMs ?? 30_000\n assertPositiveNumber(leaseMs, \"leaseMs\")\n\n const now = Date.now()\n const claimable = this.store\n .list<TQueueJob>(params.projectId, this.queueId)\n .filter((record) => {\n if (record.state !== \"queued\") {\n return false\n }\n\n if (parseTimestamp(record.job.availableAt, \"job.availableAt\") > now) {\n return false\n }\n\n const expiresAt = leaseExpiresAtMs(record)\n return expiresAt === null || expiresAt <= now\n })\n .sort(compareQueueRecords)\n .slice(0, limit)\n\n const claimedAt = new Date(now).toISOString()\n\n return claimable.map((record) => {\n // Attempts count claims so redelivery after lease expiry or retry is visible to workers.\n record.job = {\n ...record.job,\n attempt: record.job.attempt + 1,\n }\n record.leaseId = randomUUID()\n record.claimedAt = claimedAt\n record.leaseExpiresAt = new Date(now + leaseMs).toISOString()\n\n return toClaimedQueueJob(record)\n })\n }\n\n async complete(params: { projectId: string; jobId: string; leaseId: string }): Promise<void> {\n const record = this.requireActiveLease(params)\n record.state = \"completed\"\n clearLease(record)\n }\n\n async retry(params: {\n projectId: string\n jobId: string\n leaseId: string\n availableAt?: string\n error?: QueueJobError\n }): Promise<void> {\n const record = this.requireActiveLease(params)\n const availableAt = params.availableAt ?? new Date().toISOString()\n parseTimestamp(availableAt, \"availableAt\")\n\n record.job = {\n ...record.job,\n availableAt,\n }\n clearLease(record)\n }\n\n async fail(params: {\n projectId: string\n jobId: string\n leaseId: string\n error: QueueJobError\n }): Promise<void> {\n const record = this.requireActiveLease(params)\n record.state = \"failed\"\n clearLease(record)\n }\n\n async renewLease(params: {\n projectId: string\n jobId: string\n leaseId: string\n leaseMs: number\n }): Promise<ClaimedQueueJob<TQueueJob> | null> {\n assertPositiveNumber(params.leaseMs, \"leaseMs\")\n\n const record = this.store.find<TQueueJob>(params.projectId, this.queueId, params.jobId)\n if (!record || record.state !== \"queued\") {\n return null\n }\n\n const now = Date.now()\n const expiresAt = leaseExpiresAtMs(record)\n if (record.leaseId !== params.leaseId || expiresAt === null) {\n return null\n }\n\n if (expiresAt <= now) {\n return null\n }\n\n record.leaseExpiresAt = new Date(now + params.leaseMs).toISOString()\n return toClaimedQueueJob(record)\n }\n\n private requireActiveLease(params: {\n projectId: string\n jobId: string\n leaseId: string\n }): QueueRecord<TQueueJob> {\n assertNonEmpty(params.projectId, \"projectId\")\n assertNonEmpty(params.jobId, \"jobId\")\n assertNonEmpty(params.leaseId, \"leaseId\")\n\n const record = this.store.find<TQueueJob>(params.projectId, this.queueId, params.jobId)\n\n if (!record) {\n throw new QueueError(`[Sixb] Unknown queue job '${params.jobId}'`)\n }\n\n if (record.state !== \"queued\") {\n throw new QueueError(`[Sixb] Queue job '${params.jobId}' is no longer active`)\n }\n\n if (record.leaseId !== params.leaseId || !record.leaseExpiresAt) {\n throw new QueueError(`[Sixb] Lease mismatch for queue job '${params.jobId}'`)\n }\n\n const expiresAt = leaseExpiresAtMs(record)\n if (expiresAt === null || expiresAt <= Date.now()) {\n throw new QueueError(`[Sixb] Lease for queue job '${params.jobId}' has expired`)\n }\n\n return record\n }\n}\n\nexport class InMemoryQueues implements Queues {\n readonly scope = \"process\" as const\n private readonly store = new InMemoryQueueStore()\n\n readonly syncRuns = new InMemoryQueue<SyncRunRequestedQueueJob>(this.store, \"sync.runs\")\n readonly pipelines = new InMemoryQueue<PipelineRunRequestedQueueJob>(this.store, \"pipeline.runs\")\n readonly projections = new InMemoryQueue<ProjectionRunRequestedQueueJob>(\n this.store,\n \"projection.runs\"\n )\n readonly workflows = new InMemoryQueue<WorkflowQueueJob>(this.store, \"workflow.runs\")\n readonly actions = new InMemoryQueue<ActionRunRequestedQueueJob>(this.store, \"action.runs\")\n readonly agents = new InMemoryQueue<AgentQueueJob>(this.store, \"agent.runs\")\n\n /** Nothing to reach: the store is a field of this object. */\n health(): Promise<void> {\n return Promise.resolve()\n }\n}\n"
7
- ],
8
- "mappings": "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",
9
- "debugId": "A071F89DCFCEC97464756E2164756E21",
10
- "names": []
11
- }
@@ -1,11 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/scheduler/errors.ts", "../src/scheduler/runtime.ts"],
4
- "sourcesContent": [
5
- "export class SchedulerError extends Error {\n readonly name = \"SchedulerError\"\n}\n\nexport class SchedulerValidationError extends Error {\n readonly name = \"SchedulerValidationError\"\n}\n",
6
- "import type { DomainEventLog } from \"../events\"\nimport type { CronScheduleDefinition, ScheduleDefinition } from \"../schedules\"\nimport { nextCronOccurrence } from \"../schedules\"\nimport { SchedulerValidationError } from \"./errors\"\n\n/** Matches the `onError` flush budget: long enough for a healthy broker, short enough to shut down. */\nconst DEFAULT_EMIT_DRAIN_TIMEOUT_MS = 5_000\n\nexport interface SchedulerRuntimeOptions {\n schedules: readonly ScheduleDefinition[]\n events: DomainEventLog\n now?: () => Date\n}\n\nexport class SchedulerRuntime {\n private readonly schedules: readonly CronScheduleDefinition[]\n private readonly events: DomainEventLog\n private readonly now: () => Date\n private started = false\n private timer: ReturnType<typeof setTimeout> | null = null\n private readonly nextOccurrences = new Map<string, Date>()\n private readonly pendingEmits = new Set<Promise<void>>()\n\n constructor(options: SchedulerRuntimeOptions) {\n this.schedules = options.schedules.filter(isCronSchedule)\n this.events = options.events\n this.now = options.now ?? (() => new Date())\n }\n\n async start(): Promise<void> {\n if (this.started) return\n\n const seenIds = new Set<string>()\n for (const schedule of this.schedules) {\n if (seenIds.has(schedule.id)) {\n throw new SchedulerValidationError(`Duplicate schedule id '${schedule.id}'.`)\n }\n seenIds.add(schedule.id)\n }\n\n const now = this.now()\n for (const schedule of this.schedules) {\n const next = nextCronOccurrence(schedule.trigger.expression, now, schedule.trigger.timezone)\n this.nextOccurrences.set(schedule.id, next)\n }\n\n this.armTimer()\n this.started = true\n }\n\n async stop(): Promise<void> {\n if (this.timer !== null) {\n clearTimeout(this.timer)\n this.timer = null\n }\n this.nextOccurrences.clear()\n this.started = false\n await this.drainEmits()\n }\n\n /**\n * Wait for in-flight `schedule.triggered` emits so shutdown does not return mid-delivery.\n *\n * Bounded on purpose. `emit` never rejects, so an emit that never *settles* — a broker that accepts\n * the call and then hangs — would make `stop()` wait forever, turning a provider stall into a\n * process that cannot shut down. Losing the wait is recoverable; losing shutdown is not.\n */\n private async drainEmits(timeoutMs = DEFAULT_EMIT_DRAIN_TIMEOUT_MS): Promise<void> {\n if (this.pendingEmits.size === 0) return\n\n let timer: ReturnType<typeof setTimeout> | undefined\n try {\n const drained = await Promise.race([\n Promise.all([...this.pendingEmits]).then(() => true),\n new Promise<false>((resolve) => {\n timer = setTimeout(() => resolve(false), timeoutMs)\n }),\n ])\n if (!drained) {\n console.error(\n `[Sixb] Timed out after ${timeoutMs}ms waiting for ${this.pendingEmits.size} schedule emit(s) to settle.`\n )\n }\n } finally {\n if (timer) clearTimeout(timer)\n }\n }\n\n private armTimer(): void {\n if (this.timer !== null) {\n clearTimeout(this.timer)\n this.timer = null\n }\n\n let earliest: Date | null = null\n for (const date of this.nextOccurrences.values()) {\n if (earliest === null || date.getTime() < earliest.getTime()) {\n earliest = date\n }\n }\n\n if (earliest === null) return\n\n const delayMs = Math.max(0, earliest.getTime() - this.now().getTime())\n this.timer = setTimeout(() => this.tick(), delayMs)\n }\n\n private tick(): void {\n const now = this.now()\n\n // Collect all due schedules\n const dueSchedules: Array<{ schedule: CronScheduleDefinition; occurrenceAt: Date }> = []\n for (const schedule of this.schedules) {\n const occurrence = this.nextOccurrences.get(schedule.id)\n if (occurrence && occurrence.getTime() <= now.getTime()) {\n dueSchedules.push({ schedule, occurrenceAt: occurrence })\n }\n }\n\n // Emit events and recalculate next occurrences\n for (const { schedule, occurrenceAt } of dueSchedules) {\n const occurrenceAtIso = occurrenceAt.toISOString()\n // `emit` reports instead of rejecting, so nothing is swallowed here. The previous\n // `void this.events.append(...)` inside a `try` could not observe a rejection at all: a broker\n // outage meant the schedule silently never fired.\n this.track(\n this.events.emit(\n {\n events: [\n {\n type: \"schedule.triggered\",\n payload: {\n scheduleId: schedule.id,\n occurrenceAt: occurrenceAtIso,\n triggeredAt: now.toISOString(),\n occurrenceKey: `${schedule.id}:${occurrenceAtIso}`,\n },\n },\n ],\n },\n { source: \"Sixb\" }\n )\n )\n\n // Calculate next from the logical occurrence time (not now) to avoid drift\n try {\n const next = nextCronOccurrence(\n schedule.trigger.expression,\n occurrenceAt,\n schedule.trigger.timezone\n )\n this.nextOccurrences.set(schedule.id, next)\n } catch (error) {\n console.error(\n `[Sixb] Scheduler failed to compute next occurrence for '${schedule.id}':`,\n error\n )\n this.nextOccurrences.delete(schedule.id)\n }\n }\n\n this.armTimer()\n }\n\n /** Keep in-flight emits awaitable so `stop()` does not return mid-delivery. */\n private track(emit: Promise<void>): void {\n const tracked = emit.finally(() => this.pendingEmits.delete(tracked))\n this.pendingEmits.add(tracked)\n }\n}\n\nfunction isCronSchedule(schedule: ScheduleDefinition): schedule is CronScheduleDefinition {\n return schedule.trigger.type === \"cron\"\n}\n"
7
- ],
8
- "mappings": "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",
9
- "debugId": "CB8608D03B77E65764756E2164756E21",
10
- "names": []
11
- }