@sixb/core 0.1.20 → 0.1.22

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 (1519) hide show
  1. package/dist/actions/commit-edits.d.ts +3 -1
  2. package/dist/actions/commit-edits.d.ts.map +1 -1
  3. package/dist/actions/execution.d.ts.map +1 -1
  4. package/dist/actions/index.js +71 -60
  5. package/dist/actions/index.js.map +1 -1
  6. package/dist/actions/read-facade.d.ts +9 -1
  7. package/dist/actions/read-facade.d.ts.map +1 -1
  8. package/dist/actions/request.d.ts +15 -1
  9. package/dist/actions/request.d.ts.map +1 -1
  10. package/dist/actions/run/context.d.ts +1 -0
  11. package/dist/actions/run/context.d.ts.map +1 -1
  12. package/dist/actions/run/execute.d.ts +2 -3
  13. package/dist/actions/run/execute.d.ts.map +1 -1
  14. package/dist/actions/run/executor.d.ts +3 -0
  15. package/dist/actions/run/executor.d.ts.map +1 -1
  16. package/dist/actions/run/normalize.d.ts +2 -1
  17. package/dist/actions/run/normalize.d.ts.map +1 -1
  18. package/dist/actions/run/signals.d.ts +1 -3
  19. package/dist/actions/run/signals.d.ts.map +1 -1
  20. package/dist/actions/run/types.d.ts +16 -1
  21. package/dist/actions/run/types.d.ts.map +1 -1
  22. package/dist/actions/run-authorization.d.ts +23 -0
  23. package/dist/actions/run-authorization.d.ts.map +1 -1
  24. package/dist/actions/types/context.d.ts +17 -1
  25. package/dist/actions/types/context.d.ts.map +1 -1
  26. package/dist/actions/validators.d.ts.map +1 -1
  27. package/dist/activity/connection.d.ts +62 -0
  28. package/dist/activity/connection.d.ts.map +1 -0
  29. package/dist/activity/device.d.ts +8 -0
  30. package/dist/activity/device.d.ts.map +1 -0
  31. package/dist/activity/execution.d.ts +48 -0
  32. package/dist/activity/execution.d.ts.map +1 -0
  33. package/dist/activity/service.d.ts +79 -0
  34. package/dist/activity/service.d.ts.map +1 -0
  35. package/dist/activity/shares.d.ts +24 -0
  36. package/dist/activity/shares.d.ts.map +1 -0
  37. package/dist/activity/timeline.d.ts +103 -0
  38. package/dist/activity/timeline.d.ts.map +1 -0
  39. package/dist/agents/accounting.d.ts +15 -0
  40. package/dist/agents/accounting.d.ts.map +1 -0
  41. package/dist/agents/adapters.d.ts.map +1 -1
  42. package/dist/agents/agent-mail.d.ts +9 -0
  43. package/dist/agents/agent-mail.d.ts.map +1 -0
  44. package/dist/agents/api-gateway.d.ts +5 -0
  45. package/dist/agents/api-gateway.d.ts.map +1 -1
  46. package/dist/agents/approval-continuation.d.ts +23 -0
  47. package/dist/agents/approval-continuation.d.ts.map +1 -0
  48. package/dist/agents/approval-executor.d.ts +56 -0
  49. package/dist/agents/approval-executor.d.ts.map +1 -0
  50. package/dist/agents/approval-outcome.d.ts +8 -0
  51. package/dist/agents/approval-outcome.d.ts.map +1 -0
  52. package/dist/agents/approvals.d.ts +210 -0
  53. package/dist/agents/approvals.d.ts.map +1 -0
  54. package/dist/agents/authority.d.ts +10 -0
  55. package/dist/agents/authority.d.ts.map +1 -1
  56. package/dist/agents/builders.d.ts.map +1 -1
  57. package/dist/agents/cancel.d.ts +23 -0
  58. package/dist/agents/cancel.d.ts.map +1 -0
  59. package/dist/agents/child-question.d.ts +18 -0
  60. package/dist/agents/child-question.d.ts.map +1 -0
  61. package/dist/agents/children.d.ts +99 -0
  62. package/dist/agents/children.d.ts.map +1 -0
  63. package/dist/agents/context/index.js +1 -1
  64. package/dist/agents/context-compaction.d.ts.map +1 -1
  65. package/dist/agents/errors.d.ts +13 -1
  66. package/dist/agents/errors.d.ts.map +1 -1
  67. package/dist/agents/execution.d.ts +180 -14
  68. package/dist/agents/execution.d.ts.map +1 -1
  69. package/dist/agents/fork.d.ts +16 -0
  70. package/dist/agents/fork.d.ts.map +1 -0
  71. package/dist/agents/ids.d.ts +7 -0
  72. package/dist/agents/ids.d.ts.map +1 -1
  73. package/dist/agents/index.d.ts +20 -8
  74. package/dist/agents/index.d.ts.map +1 -1
  75. package/dist/agents/index.js +170 -84
  76. package/dist/agents/index.js.map +1 -1
  77. package/dist/agents/memory-execution.d.ts +57 -0
  78. package/dist/agents/memory-execution.d.ts.map +1 -0
  79. package/dist/agents/memory.d.ts +49 -0
  80. package/dist/agents/memory.d.ts.map +1 -0
  81. package/dist/agents/message.d.ts +50 -1
  82. package/dist/agents/message.d.ts.map +1 -1
  83. package/dist/agents/model-loop.d.ts +19 -0
  84. package/dist/agents/model-loop.d.ts.map +1 -1
  85. package/dist/agents/model-routing.d.ts +19 -0
  86. package/dist/agents/model-routing.d.ts.map +1 -0
  87. package/dist/agents/participants.d.ts +18 -0
  88. package/dist/agents/participants.d.ts.map +1 -0
  89. package/dist/agents/reference.d.ts.map +1 -1
  90. package/dist/agents/request.d.ts +36 -2
  91. package/dist/agents/request.d.ts.map +1 -1
  92. package/dist/agents/run-scope.d.ts +51 -0
  93. package/dist/agents/run-scope.d.ts.map +1 -0
  94. package/dist/agents/skills.d.ts.map +1 -1
  95. package/dist/agents/streams/index.d.ts +3 -2
  96. package/dist/agents/streams/index.d.ts.map +1 -1
  97. package/dist/agents/streams/index.js +8 -4
  98. package/dist/agents/streams/index.js.map +1 -1
  99. package/dist/agents/streams/internal.d.ts +1 -1
  100. package/dist/agents/streams/internal.d.ts.map +1 -1
  101. package/dist/agents/streams/internal.js +6 -4
  102. package/dist/agents/streams/internal.js.map +1 -1
  103. package/dist/agents/streams/protocol.d.ts +122 -3
  104. package/dist/agents/streams/protocol.d.ts.map +1 -1
  105. package/dist/agents/subagent-runs.d.ts +12 -0
  106. package/dist/agents/subagent-runs.d.ts.map +1 -0
  107. package/dist/agents/thread-access.d.ts +53 -0
  108. package/dist/agents/thread-access.d.ts.map +1 -0
  109. package/dist/agents/tool-definition.d.ts +5 -4
  110. package/dist/agents/tool-definition.d.ts.map +1 -1
  111. package/dist/agents/types.d.ts +31 -12
  112. package/dist/agents/types.d.ts.map +1 -1
  113. package/dist/agents/validation.d.ts +1 -1
  114. package/dist/agents/validation.d.ts.map +1 -1
  115. package/dist/artifacts/access.d.ts +52 -0
  116. package/dist/artifacts/access.d.ts.map +1 -0
  117. package/dist/artifacts/address.d.ts +48 -0
  118. package/dist/artifacts/address.d.ts.map +1 -0
  119. package/dist/artifacts/canvas.d.ts +92 -0
  120. package/dist/artifacts/canvas.d.ts.map +1 -0
  121. package/dist/artifacts/csv.d.ts +27 -0
  122. package/dist/artifacts/csv.d.ts.map +1 -0
  123. package/dist/artifacts/errors.d.ts +16 -0
  124. package/dist/artifacts/errors.d.ts.map +1 -0
  125. package/dist/artifacts/execution.d.ts +138 -0
  126. package/dist/artifacts/execution.d.ts.map +1 -0
  127. package/dist/artifacts/formula/check.d.ts +24 -0
  128. package/dist/artifacts/formula/check.d.ts.map +1 -0
  129. package/dist/artifacts/formula/evaluate.d.ts +32 -0
  130. package/dist/artifacts/formula/evaluate.d.ts.map +1 -0
  131. package/dist/artifacts/formula/index.d.ts +38 -0
  132. package/dist/artifacts/formula/index.d.ts.map +1 -0
  133. package/dist/artifacts/formula/parser.d.ts +67 -0
  134. package/dist/artifacts/formula/parser.d.ts.map +1 -0
  135. package/dist/artifacts/frames/assets.d.ts +30 -0
  136. package/dist/artifacts/frames/assets.d.ts.map +1 -0
  137. package/dist/artifacts/frames/entries.d.ts +19 -0
  138. package/dist/artifacts/frames/entries.d.ts.map +1 -0
  139. package/dist/artifacts/frames/grants.d.ts +37 -0
  140. package/dist/artifacts/frames/grants.d.ts.map +1 -0
  141. package/dist/artifacts/frames/index.d.ts +12 -0
  142. package/dist/artifacts/frames/index.d.ts.map +1 -0
  143. package/dist/artifacts/frames/index.js +1285 -0
  144. package/dist/artifacts/frames/index.js.map +16 -0
  145. package/dist/artifacts/frames/kit.d.ts +71 -0
  146. package/dist/artifacts/frames/kit.d.ts.map +1 -0
  147. package/dist/artifacts/frames/probe.d.ts +45 -0
  148. package/dist/artifacts/frames/probe.d.ts.map +1 -0
  149. package/dist/artifacts/frames/protocol.d.ts +167 -0
  150. package/dist/artifacts/frames/protocol.d.ts.map +1 -0
  151. package/dist/artifacts/frames/runtime.d.ts +31 -0
  152. package/dist/artifacts/frames/runtime.d.ts.map +1 -0
  153. package/dist/artifacts/html.d.ts +6 -0
  154. package/dist/artifacts/html.d.ts.map +1 -0
  155. package/dist/artifacts/ids.d.ts +5 -0
  156. package/dist/artifacts/ids.d.ts.map +1 -0
  157. package/dist/artifacts/index.d.ts +22 -0
  158. package/dist/artifacts/index.d.ts.map +1 -0
  159. package/dist/artifacts/index.js +247 -0
  160. package/dist/artifacts/index.js.map +10 -0
  161. package/dist/artifacts/kinds.d.ts +5 -0
  162. package/dist/artifacts/kinds.d.ts.map +1 -0
  163. package/dist/artifacts/limits.d.ts +58 -0
  164. package/dist/artifacts/limits.d.ts.map +1 -0
  165. package/dist/artifacts/live-sheet.d.ts +65 -0
  166. package/dist/artifacts/live-sheet.d.ts.map +1 -0
  167. package/dist/artifacts/outline.d.ts +70 -0
  168. package/dist/artifacts/outline.d.ts.map +1 -0
  169. package/dist/artifacts/publish/files.d.ts +15 -0
  170. package/dist/artifacts/publish/files.d.ts.map +1 -0
  171. package/dist/artifacts/publish/index.d.ts +7 -0
  172. package/dist/artifacts/publish/index.d.ts.map +1 -0
  173. package/dist/artifacts/publish/index.js +76 -0
  174. package/dist/{chunk-7n30ybym.js.map → artifacts/publish/index.js.map} +1 -1
  175. package/dist/artifacts/publish/publish.d.ts +84 -0
  176. package/dist/artifacts/publish/publish.d.ts.map +1 -0
  177. package/dist/artifacts/publish/queries.d.ts +33 -0
  178. package/dist/artifacts/publish/queries.d.ts.map +1 -0
  179. package/dist/artifacts/publish/references.d.ts +30 -0
  180. package/dist/artifacts/publish/references.d.ts.map +1 -0
  181. package/dist/artifacts/publish/validate/canvas.d.ts +18 -0
  182. package/dist/artifacts/publish/validate/canvas.d.ts.map +1 -0
  183. package/dist/artifacts/publish/validate/document.d.ts +17 -0
  184. package/dist/artifacts/publish/validate/document.d.ts.map +1 -0
  185. package/dist/artifacts/publish/validate/file.d.ts +8 -0
  186. package/dist/artifacts/publish/validate/file.d.ts.map +1 -0
  187. package/dist/artifacts/publish/validate/html.d.ts +20 -0
  188. package/dist/artifacts/publish/validate/html.d.ts.map +1 -0
  189. package/dist/artifacts/publish/validate/page.d.ts +15 -0
  190. package/dist/artifacts/publish/validate/page.d.ts.map +1 -0
  191. package/dist/artifacts/publish/validate/sheet.d.ts +23 -0
  192. package/dist/artifacts/publish/validate/sheet.d.ts.map +1 -0
  193. package/dist/artifacts/publish/validate/slides.d.ts +15 -0
  194. package/dist/artifacts/publish/validate/slides.d.ts.map +1 -0
  195. package/dist/artifacts/queries.d.ts +95 -0
  196. package/dist/artifacts/queries.d.ts.map +1 -0
  197. package/dist/artifacts/references.d.ts +12 -0
  198. package/dist/artifacts/references.d.ts.map +1 -0
  199. package/dist/artifacts/resolve.d.ts +47 -0
  200. package/dist/artifacts/resolve.d.ts.map +1 -0
  201. package/dist/artifacts/run-query.d.ts +26 -0
  202. package/dist/artifacts/run-query.d.ts.map +1 -0
  203. package/dist/artifacts/serialize-query.d.ts +12 -0
  204. package/dist/artifacts/serialize-query.d.ts.map +1 -0
  205. package/dist/artifacts/sheet-rules.d.ts +26 -0
  206. package/dist/artifacts/sheet-rules.d.ts.map +1 -0
  207. package/dist/artifacts/theme.d.ts +19 -0
  208. package/dist/artifacts/theme.d.ts.map +1 -0
  209. package/dist/artifacts/tones.d.ts +8 -0
  210. package/dist/artifacts/tones.d.ts.map +1 -0
  211. package/dist/artifacts/warnings.d.ts +11 -0
  212. package/dist/artifacts/warnings.d.ts.map +1 -0
  213. package/dist/artifacts/workbook.d.ts +135 -0
  214. package/dist/artifacts/workbook.d.ts.map +1 -0
  215. package/dist/auth/index.d.ts +1 -1
  216. package/dist/auth/index.d.ts.map +1 -1
  217. package/dist/auth/index.js +16 -13
  218. package/dist/auth/index.js.map +1 -1
  219. package/dist/auth/member-events.d.ts +13 -0
  220. package/dist/auth/member-events.d.ts.map +1 -0
  221. package/dist/auth/profile.d.ts +11 -0
  222. package/dist/auth/profile.d.ts.map +1 -0
  223. package/dist/auth/runtime.d.ts +31 -3
  224. package/dist/auth/runtime.d.ts.map +1 -1
  225. package/dist/auth/strategy.d.ts +3 -1
  226. package/dist/auth/strategy.d.ts.map +1 -1
  227. package/dist/auth/strategy.js +7 -3
  228. package/dist/auth/strategy.js.map +1 -1
  229. package/dist/auth/types.d.ts +30 -1
  230. package/dist/auth/types.d.ts.map +1 -1
  231. package/dist/authorization/decision.d.ts +17 -0
  232. package/dist/authorization/decision.d.ts.map +1 -1
  233. package/dist/authorization/event-visibility.d.ts +5 -1
  234. package/dist/authorization/event-visibility.d.ts.map +1 -1
  235. package/dist/authorization/grant-kinds.d.ts +2 -2
  236. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  237. package/dist/authorization/index.d.ts +2 -2
  238. package/dist/authorization/index.d.ts.map +1 -1
  239. package/dist/authorization/index.js +14 -9
  240. package/dist/authorization/index.js.map +1 -1
  241. package/dist/authorization/resolve.d.ts +19 -1
  242. package/dist/authorization/resolve.d.ts.map +1 -1
  243. package/dist/authorization/run-visibility.d.ts +8 -1
  244. package/dist/authorization/run-visibility.d.ts.map +1 -1
  245. package/dist/authorization/types.d.ts +14 -0
  246. package/dist/authorization/types.d.ts.map +1 -1
  247. package/dist/blob-storage/browser.js +1 -1
  248. package/dist/blob-storage/index.js +2 -2
  249. package/dist/blob-storage/internal.d.ts +1 -1
  250. package/dist/blob-storage/internal.d.ts.map +1 -1
  251. package/dist/blob-storage/internal.js +11 -5
  252. package/dist/blob-storage/internal.js.map +1 -1
  253. package/dist/blob-storage/media-type.d.ts +12 -0
  254. package/dist/blob-storage/media-type.d.ts.map +1 -1
  255. package/dist/bootstrap/index.js +76 -66
  256. package/dist/bootstrap/index.js.map +2 -2
  257. package/dist/{chunk-tg2cw67r.js → chunk-02bzjgnt.js} +6 -6
  258. package/dist/{chunk-tg2cw67r.js.map → chunk-02bzjgnt.js.map} +1 -1
  259. package/dist/{chunk-mfs23znk.js → chunk-07kkp2e1.js} +1 -1
  260. package/dist/{chunk-6p49a5cq.js → chunk-098anw4f.js} +21 -19
  261. package/dist/chunk-098anw4f.js.map +12 -0
  262. package/dist/{chunk-fkgc1wt8.js → chunk-0phpbbvm.js} +3 -3
  263. package/dist/{chunk-ere85b8y.js → chunk-0xmt5p5y.js} +116 -27
  264. package/dist/chunk-0xmt5p5y.js.map +14 -0
  265. package/dist/{chunk-t6f3tdnr.js → chunk-16a9dmfy.js} +33 -2
  266. package/dist/{chunk-t6f3tdnr.js.map → chunk-16a9dmfy.js.map} +5 -4
  267. package/dist/{chunk-hkc3jct7.js → chunk-18sk89cg.js} +18 -10
  268. package/dist/chunk-18sk89cg.js.map +10 -0
  269. package/dist/{chunk-way52z4h.js → chunk-1t6k1avb.js} +6 -12
  270. package/dist/{chunk-way52z4h.js.map → chunk-1t6k1avb.js.map} +3 -4
  271. package/dist/chunk-2626mh4m.js +693 -0
  272. package/dist/chunk-2626mh4m.js.map +19 -0
  273. package/dist/{chunk-qczk96d9.js → chunk-2adz0h75.js} +13 -4
  274. package/dist/chunk-2adz0h75.js.map +11 -0
  275. package/dist/{chunk-3t2hgbgd.js → chunk-2fn60nvs.js} +40 -8
  276. package/dist/chunk-2fn60nvs.js.map +15 -0
  277. package/dist/{chunk-99nd4rc1.js → chunk-2gjj5dx3.js} +5 -4
  278. package/dist/{chunk-99nd4rc1.js.map → chunk-2gjj5dx3.js.map} +3 -3
  279. package/dist/chunk-3fqxbn31.js +107 -0
  280. package/dist/chunk-3fqxbn31.js.map +11 -0
  281. package/dist/{chunk-y0c4e6ex.js → chunk-3gbefjg5.js} +1 -1
  282. package/dist/{chunk-yzwja0mj.js → chunk-45ngkxkp.js} +52 -31
  283. package/dist/chunk-45ngkxkp.js.map +13 -0
  284. package/dist/{chunk-fa02jy15.js → chunk-48jezz3j.js} +1 -1
  285. package/dist/{chunk-ren4kg2j.js → chunk-4b26qwbg.js} +13 -13
  286. package/dist/{chunk-ren4kg2j.js.map → chunk-4b26qwbg.js.map} +1 -1
  287. package/dist/{chunk-9k93ah50.js → chunk-4f3ydv7t.js} +33 -69
  288. package/dist/chunk-4f3ydv7t.js.map +10 -0
  289. package/dist/chunk-4y26vs3v.js +97 -0
  290. package/dist/chunk-4y26vs3v.js.map +10 -0
  291. package/dist/{chunk-4as3wt1c.js → chunk-4ymrcdbm.js} +7 -3
  292. package/dist/chunk-4ymrcdbm.js.map +12 -0
  293. package/dist/{chunk-hcbyfxbe.js → chunk-5grk14e5.js} +76 -2
  294. package/dist/{chunk-hcbyfxbe.js.map → chunk-5grk14e5.js.map} +4 -3
  295. package/dist/chunk-5tfev0fv.js +676 -0
  296. package/dist/chunk-5tfev0fv.js.map +15 -0
  297. package/dist/chunk-65abf64x.js +13 -0
  298. package/dist/chunk-65abf64x.js.map +10 -0
  299. package/dist/{chunk-hvsb78a1.js → chunk-65pyhyas.js} +114 -107
  300. package/dist/chunk-65pyhyas.js.map +20 -0
  301. package/dist/{chunk-1sr8ryzk.js → chunk-661ezhks.js} +303 -6
  302. package/dist/chunk-661ezhks.js.map +11 -0
  303. package/dist/{chunk-z3y5kg1x.js → chunk-6eqsgvxk.js} +3 -3
  304. package/dist/{chunk-z3y5kg1x.js.map → chunk-6eqsgvxk.js.map} +2 -2
  305. package/dist/{chunk-c85m1hyj.js → chunk-6n69k945.js} +2 -2
  306. package/dist/{chunk-xfs8x8m9.js → chunk-6p0pastb.js} +5 -5
  307. package/dist/{chunk-rrzt8jdy.js → chunk-6rrtzea3.js} +116 -110
  308. package/dist/chunk-6rrtzea3.js.map +14 -0
  309. package/dist/{chunk-t7x8dmn0.js → chunk-6y0mkhex.js} +3 -3
  310. package/dist/{chunk-es1gxsbf.js → chunk-73v685wb.js} +14 -16
  311. package/dist/chunk-73v685wb.js.map +12 -0
  312. package/dist/{chunk-6c6sn0bh.js → chunk-7gr4j2eq.js} +7930 -5973
  313. package/dist/chunk-7gr4j2eq.js.map +120 -0
  314. package/dist/{chunk-hjzdd750.js → chunk-7mc2wkre.js} +391 -91
  315. package/dist/chunk-7mc2wkre.js.map +50 -0
  316. package/dist/chunk-7z5p905k.js +1660 -0
  317. package/dist/chunk-7z5p905k.js.map +22 -0
  318. package/dist/{chunk-3zxk45er.js → chunk-8ncg20rd.js} +3 -68
  319. package/dist/{chunk-3zxk45er.js.map → chunk-8ncg20rd.js.map} +4 -5
  320. package/dist/{chunk-yxd3nnqt.js → chunk-9mab3dvg.js} +26 -2
  321. package/dist/chunk-9mab3dvg.js.map +11 -0
  322. package/dist/chunk-9wr3yajk.js +42 -0
  323. package/dist/chunk-9wr3yajk.js.map +10 -0
  324. package/dist/chunk-a3faa34j.js +74 -0
  325. package/dist/chunk-a3faa34j.js.map +10 -0
  326. package/dist/chunk-az47zep4.js +41 -0
  327. package/dist/chunk-az47zep4.js.map +10 -0
  328. package/dist/{chunk-v9xd5wzd.js → chunk-bab05bhg.js} +1 -1
  329. package/dist/{chunk-5j58wjct.js → chunk-bktev1ds.js} +14 -11
  330. package/dist/{chunk-5j58wjct.js.map → chunk-bktev1ds.js.map} +3 -3
  331. package/dist/{chunk-b38szspf.js → chunk-c0vk1djt.js} +5 -3
  332. package/dist/chunk-c0vk1djt.js.map +11 -0
  333. package/dist/chunk-c69nj7se.js +3 -0
  334. package/dist/chunk-c69nj7se.js.map +9 -0
  335. package/dist/{chunk-0yh890a4.js → chunk-c844dkwd.js} +35 -7
  336. package/dist/{chunk-0yh890a4.js.map → chunk-c844dkwd.js.map} +3 -3
  337. package/dist/{chunk-d09tj99x.js → chunk-cdk3egjj.js} +24 -5
  338. package/dist/chunk-cdk3egjj.js.map +12 -0
  339. package/dist/chunk-cswhawa2.js +113 -0
  340. package/dist/chunk-cswhawa2.js.map +10 -0
  341. package/dist/{chunk-gc4ntf7d.js → chunk-cwdzcv37.js} +1 -1
  342. package/dist/chunk-d2m879s4.js +288 -0
  343. package/dist/chunk-d2m879s4.js.map +12 -0
  344. package/dist/chunk-d7vyc7k6.js +10 -0
  345. package/dist/chunk-d7vyc7k6.js.map +10 -0
  346. package/dist/{chunk-vyf9kfqf.js → chunk-dp0cdtj2.js} +2 -2
  347. package/dist/{chunk-6x0pqh32.js → chunk-e5wf5vz0.js} +3 -1
  348. package/dist/chunk-e5wf5vz0.js.map +10 -0
  349. package/dist/{chunk-bx9q3cwv.js → chunk-efmm01gj.js} +108 -1045
  350. package/dist/chunk-efmm01gj.js.map +18 -0
  351. package/dist/{chunk-tw03bsmb.js → chunk-eptrvnby.js} +224 -3
  352. package/dist/chunk-eptrvnby.js.map +12 -0
  353. package/dist/{chunk-n33z5bjw.js → chunk-ezne9wc9.js} +1762 -502
  354. package/dist/chunk-ezne9wc9.js.map +71 -0
  355. package/dist/chunk-fe8zwt8b.js +688 -0
  356. package/dist/chunk-fe8zwt8b.js.map +19 -0
  357. package/dist/chunk-ff5xkv0p.js +211 -0
  358. package/dist/chunk-ff5xkv0p.js.map +10 -0
  359. package/dist/{chunk-br3k6qbf.js → chunk-fm62y49k.js} +1 -1
  360. package/dist/{chunk-nq6gpjt7.js → chunk-fntqb7qy.js} +30 -4
  361. package/dist/{chunk-nq6gpjt7.js.map → chunk-fntqb7qy.js.map} +5 -5
  362. package/dist/{chunk-1zq2p6g0.js → chunk-fp2kq35z.js} +26 -10
  363. package/dist/{chunk-1zq2p6g0.js.map → chunk-fp2kq35z.js.map} +5 -5
  364. package/dist/chunk-g5bvzyyr.js +32 -0
  365. package/dist/chunk-g5bvzyyr.js.map +10 -0
  366. package/dist/{chunk-9ybhtmg4.js → chunk-g663fahq.js} +2 -2
  367. package/dist/{chunk-k6q3n2sc.js → chunk-gvj5cd3b.js} +29 -13
  368. package/dist/chunk-gvj5cd3b.js.map +12 -0
  369. package/dist/{chunk-yevzdx4y.js → chunk-h33shhq6.js} +10 -12
  370. package/dist/{chunk-yevzdx4y.js.map → chunk-h33shhq6.js.map} +3 -4
  371. package/dist/{chunk-vpq4shxz.js → chunk-h3pbv7n8.js} +1771 -36
  372. package/dist/chunk-h3pbv7n8.js.map +48 -0
  373. package/dist/chunk-hke9aeen.js +9 -0
  374. package/dist/chunk-hke9aeen.js.map +10 -0
  375. package/dist/chunk-hn2r7z41.js.map +1 -1
  376. package/dist/{chunk-pbcbn83d.js → chunk-hqsp2sx4.js} +54 -8
  377. package/dist/chunk-hqsp2sx4.js.map +14 -0
  378. package/dist/{chunk-9w055r5b.js → chunk-hwarjrgf.js} +1 -1
  379. package/dist/{chunk-9dmt152s.js → chunk-hyesv9dv.js} +2 -2
  380. package/dist/chunk-hz5d43gn.js +45 -0
  381. package/dist/chunk-hz5d43gn.js.map +10 -0
  382. package/dist/{chunk-91mg3nj9.js → chunk-j936th07.js} +86 -41
  383. package/dist/chunk-j936th07.js.map +12 -0
  384. package/dist/chunk-jcfw4h7m.js +9 -0
  385. package/dist/chunk-jcfw4h7m.js.map +10 -0
  386. package/dist/chunk-kcqpk9w1.js +75 -0
  387. package/dist/chunk-kcqpk9w1.js.map +10 -0
  388. package/dist/{chunk-x6m907x7.js → chunk-m2nevja0.js} +6 -7
  389. package/dist/{chunk-x6m907x7.js.map → chunk-m2nevja0.js.map} +3 -3
  390. package/dist/{chunk-x9v4cx1d.js → chunk-m36fw8ft.js} +1 -1
  391. package/dist/{chunk-a40ad1ft.js → chunk-mbsbxarb.js} +1 -1
  392. package/dist/chunk-mzx71snp.js +129 -0
  393. package/dist/chunk-mzx71snp.js.map +10 -0
  394. package/dist/{chunk-6aawea28.js → chunk-n8q5j6y5.js} +1 -1
  395. package/dist/{chunk-dk8tkk5f.js → chunk-n9zpx9c6.js} +4 -4
  396. package/dist/{chunk-7t429e3f.js → chunk-npcr0228.js} +1 -1
  397. package/dist/chunk-nydf3dbe.js +663 -0
  398. package/dist/chunk-nydf3dbe.js.map +13 -0
  399. package/dist/chunk-pdt5cw8z.js +233 -0
  400. package/dist/chunk-pdt5cw8z.js.map +11 -0
  401. package/dist/{chunk-rj69qcrd.js → chunk-pgrf64hp.js} +55 -7
  402. package/dist/chunk-pgrf64hp.js.map +12 -0
  403. package/dist/{chunk-z4m0yz8c.js → chunk-q4pmvkg0.js} +1 -1
  404. package/dist/chunk-qhqgp4jf.js +1418 -0
  405. package/dist/chunk-qhqgp4jf.js.map +22 -0
  406. package/dist/chunk-qx00vjrj.js +144 -0
  407. package/dist/chunk-qx00vjrj.js.map +13 -0
  408. package/dist/{chunk-5e43w60z.js → chunk-r6szek0x.js} +184 -7
  409. package/dist/chunk-r6szek0x.js.map +10 -0
  410. package/dist/{chunk-v4jbb3rs.js → chunk-rap5w0x0.js} +156 -2
  411. package/dist/chunk-rap5w0x0.js.map +10 -0
  412. package/dist/{chunk-pfp1txq2.js → chunk-sgx82nnt.js} +5 -31
  413. package/dist/{chunk-pfp1txq2.js.map → chunk-sgx82nnt.js.map} +3 -4
  414. package/dist/{chunk-bkpke1sg.js → chunk-t5608tkq.js} +3 -1
  415. package/dist/{chunk-bkpke1sg.js.map → chunk-t5608tkq.js.map} +3 -3
  416. package/dist/{chunk-29yx306f.js → chunk-tdxfsg1c.js} +507 -265
  417. package/dist/chunk-tdxfsg1c.js.map +23 -0
  418. package/dist/chunk-vabga7fk.js +176 -0
  419. package/dist/chunk-vabga7fk.js.map +12 -0
  420. package/dist/{chunk-gsjm1wms.js → chunk-vhbw5sqm.js} +33 -3
  421. package/dist/chunk-vhbw5sqm.js.map +10 -0
  422. package/dist/{chunk-tpn40322.js → chunk-vpgwq5nf.js} +104 -17
  423. package/dist/chunk-vpgwq5nf.js.map +21 -0
  424. package/dist/{chunk-0rbyz4qy.js → chunk-vyt322b6.js} +586 -171
  425. package/dist/{chunk-0rbyz4qy.js.map → chunk-vyt322b6.js.map} +12 -9
  426. package/dist/chunk-waqk73p1.js +2380 -0
  427. package/dist/chunk-waqk73p1.js.map +23 -0
  428. package/dist/{chunk-jhm3zsa7.js → chunk-wkv3h3q7.js} +64 -2
  429. package/dist/{chunk-jhm3zsa7.js.map → chunk-wkv3h3q7.js.map} +3 -3
  430. package/dist/chunk-wsc1brye.js +27 -0
  431. package/dist/chunk-wsc1brye.js.map +10 -0
  432. package/dist/chunk-x0v3jd47.js +124 -0
  433. package/dist/chunk-x0v3jd47.js.map +10 -0
  434. package/dist/{chunk-96yw3pwd.js → chunk-y7dbmaqh.js} +28 -2
  435. package/dist/chunk-y7dbmaqh.js.map +10 -0
  436. package/dist/{chunk-d0bqz29d.js → chunk-yc9ners4.js} +124 -19
  437. package/dist/{chunk-d0bqz29d.js.map → chunk-yc9ners4.js.map} +8 -8
  438. package/dist/{chunk-8mx7qw3y.js → chunk-zbc929zg.js} +29 -5
  439. package/dist/chunk-zbc929zg.js.map +13 -0
  440. package/dist/chunk-zrvhsq7f.js +37 -0
  441. package/dist/chunk-zrvhsq7f.js.map +10 -0
  442. package/dist/datasets/builders.d.ts +15 -2
  443. package/dist/datasets/builders.d.ts.map +1 -1
  444. package/dist/datasets/column-index.d.ts +7 -0
  445. package/dist/datasets/column-index.d.ts.map +1 -0
  446. package/dist/datasets/execution.d.ts +3 -2
  447. package/dist/datasets/execution.d.ts.map +1 -1
  448. package/dist/datasets/write.js +8 -8
  449. package/dist/error-reporting/internal.js +4 -4
  450. package/dist/errors/catalog.d.ts +26 -0
  451. package/dist/errors/catalog.d.ts.map +1 -1
  452. package/dist/errors/internal.d.ts +1 -0
  453. package/dist/errors/internal.d.ts.map +1 -1
  454. package/dist/errors/internal.js +7 -4
  455. package/dist/errors/internal.js.map +1 -1
  456. package/dist/events/definitions.d.ts +7 -0
  457. package/dist/events/definitions.d.ts.map +1 -1
  458. package/dist/events/execution.d.ts +12 -2
  459. package/dist/events/execution.d.ts.map +1 -1
  460. package/dist/events/index.d.ts +2 -3
  461. package/dist/events/index.d.ts.map +1 -1
  462. package/dist/events/index.js +9 -11
  463. package/dist/events/index.js.map +1 -1
  464. package/dist/events/scope.d.ts.map +1 -1
  465. package/dist/events/scope.js +1 -1
  466. package/dist/events/selectors/builder.d.ts +12 -1
  467. package/dist/events/selectors/builder.d.ts.map +1 -1
  468. package/dist/events/selectors/index.d.ts +2 -2
  469. package/dist/events/selectors/index.d.ts.map +1 -1
  470. package/dist/events/selectors/index.js +2 -2
  471. package/dist/events/selectors/types.d.ts +19 -3
  472. package/dist/events/selectors/types.d.ts.map +1 -1
  473. package/dist/events/service.d.ts +17 -2
  474. package/dist/events/service.d.ts.map +1 -1
  475. package/dist/events/types/index.d.ts +3 -1
  476. package/dist/events/types/index.d.ts.map +1 -1
  477. package/dist/events/types/users.d.ts +63 -0
  478. package/dist/events/types/users.d.ts.map +1 -0
  479. package/dist/events/view-conditions.d.ts +34 -0
  480. package/dist/events/view-conditions.d.ts.map +1 -0
  481. package/dist/execution/agent.d.ts +15 -0
  482. package/dist/execution/agent.d.ts.map +1 -1
  483. package/dist/execution/agent.js +72 -59
  484. package/dist/execution/agent.js.map +1 -1
  485. package/dist/execution/authorization.d.ts.map +1 -1
  486. package/dist/execution/authorized-object-reader.d.ts +102 -12
  487. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  488. package/dist/execution/lineage.d.ts +7 -0
  489. package/dist/execution/lineage.d.ts.map +1 -0
  490. package/dist/execution/object-reader-clearance.d.ts +41 -0
  491. package/dist/execution/object-reader-clearance.d.ts.map +1 -0
  492. package/dist/execution/object-reader-ontology.d.ts +12 -0
  493. package/dist/execution/object-reader-ontology.d.ts.map +1 -0
  494. package/dist/execution/object-reader-security.d.ts +66 -0
  495. package/dist/execution/object-reader-security.d.ts.map +1 -0
  496. package/dist/execution/object-reader-users.d.ts +20 -0
  497. package/dist/execution/object-reader-users.d.ts.map +1 -0
  498. package/dist/execution/preparation.d.ts +23 -0
  499. package/dist/execution/preparation.d.ts.map +1 -0
  500. package/dist/execution/primitive.js +70 -59
  501. package/dist/execution/primitive.js.map +1 -1
  502. package/dist/execution/request.d.ts +2 -1
  503. package/dist/execution/request.d.ts.map +1 -1
  504. package/dist/execution/request.js +72 -57
  505. package/dist/execution/request.js.map +3 -3
  506. package/dist/execution/unique-lookup.d.ts +14 -0
  507. package/dist/execution/unique-lookup.d.ts.map +1 -0
  508. package/dist/execution/visible-objects.d.ts +12 -0
  509. package/dist/execution/visible-objects.d.ts.map +1 -0
  510. package/dist/http/api-routes.d.ts +17 -0
  511. package/dist/http/api-routes.d.ts.map +1 -1
  512. package/dist/http/index.js +1 -1
  513. package/dist/index.d.ts +49 -16
  514. package/dist/index.d.ts.map +1 -1
  515. package/dist/index.js +168 -142
  516. package/dist/index.js.map +1 -1
  517. package/dist/lake-storage/in-memory.d.ts +1 -0
  518. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  519. package/dist/lake-storage/index.d.ts +6 -3
  520. package/dist/lake-storage/index.d.ts.map +1 -1
  521. package/dist/lake-storage/index.js +21 -13
  522. package/dist/lake-storage/index.js.map +1 -1
  523. package/dist/lake-storage/lineage.d.ts +94 -0
  524. package/dist/lake-storage/lineage.d.ts.map +1 -0
  525. package/dist/lake-storage/sql-transforms.d.ts +45 -0
  526. package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
  527. package/dist/lake-storage/types.d.ts +55 -1
  528. package/dist/lake-storage/types.d.ts.map +1 -1
  529. package/dist/lake-storage/version-inputs.d.ts +14 -3
  530. package/dist/lake-storage/version-inputs.d.ts.map +1 -1
  531. package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
  532. package/dist/materialization/errors.d.ts +25 -0
  533. package/dist/materialization/errors.d.ts.map +1 -1
  534. package/dist/materialization/event-envelopes.d.ts +5 -0
  535. package/dist/materialization/event-envelopes.d.ts.map +1 -1
  536. package/dist/materialization/index.d.ts +1 -1
  537. package/dist/materialization/index.d.ts.map +1 -1
  538. package/dist/materialization/index.js +14 -8
  539. package/dist/materialization/index.js.map +1 -1
  540. package/dist/materialization/model.d.ts +20 -2
  541. package/dist/materialization/model.d.ts.map +1 -1
  542. package/dist/materializer/edits/commit.d.ts.map +1 -1
  543. package/dist/materializer/edits/load-state.d.ts +5 -1
  544. package/dist/materializer/edits/load-state.d.ts.map +1 -1
  545. package/dist/materializer/edits/plan.d.ts.map +1 -1
  546. package/dist/materializer/edits/unique-values.d.ts +47 -0
  547. package/dist/materializer/edits/unique-values.d.ts.map +1 -0
  548. package/dist/materializer/edits/working-state.d.ts +6 -1
  549. package/dist/materializer/edits/working-state.d.ts.map +1 -1
  550. package/dist/materializer/execution/work-records.d.ts +7 -1
  551. package/dist/materializer/execution/work-records.d.ts.map +1 -1
  552. package/dist/materializer/index.js +51 -46
  553. package/dist/materializer/index.js.map +1 -1
  554. package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
  555. package/dist/materializer/projections/source-materialization.d.ts +1 -0
  556. package/dist/materializer/projections/source-materialization.d.ts.map +1 -1
  557. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  558. package/dist/materializer/shared/projection-run.d.ts +0 -1
  559. package/dist/materializer/shared/projection-run.d.ts.map +1 -1
  560. package/dist/materializer/telemetry/plan.d.ts.map +1 -1
  561. package/dist/models/audio/catalog.d.ts +13 -1
  562. package/dist/models/audio/catalog.d.ts.map +1 -1
  563. package/dist/models/audio/errors.d.ts +6 -1
  564. package/dist/models/audio/errors.d.ts.map +1 -1
  565. package/dist/models/audio/runtime.d.ts.map +1 -1
  566. package/dist/models/audio/speech.d.ts +8 -0
  567. package/dist/models/audio/speech.d.ts.map +1 -0
  568. package/dist/models/audio/types.d.ts +93 -0
  569. package/dist/models/audio/types.d.ts.map +1 -1
  570. package/dist/models/calls.d.ts +27 -0
  571. package/dist/models/calls.d.ts.map +1 -0
  572. package/dist/models/catalog-index.d.ts +7 -4
  573. package/dist/models/catalog-index.d.ts.map +1 -1
  574. package/dist/models/catalog.d.ts +55 -3
  575. package/dist/models/catalog.d.ts.map +1 -1
  576. package/dist/models/decision/runtime.d.ts +6 -1
  577. package/dist/models/decision/runtime.d.ts.map +1 -1
  578. package/dist/models/decision/validation.d.ts +4 -1
  579. package/dist/models/decision/validation.d.ts.map +1 -1
  580. package/dist/models/definitions.d.ts +23 -1
  581. package/dist/models/definitions.d.ts.map +1 -1
  582. package/dist/models/events.d.ts +12 -1
  583. package/dist/models/events.d.ts.map +1 -1
  584. package/dist/models/execution/binding.d.ts +3 -1
  585. package/dist/models/execution/binding.d.ts.map +1 -1
  586. package/dist/models/execution/index.d.ts +1 -0
  587. package/dist/models/execution/index.d.ts.map +1 -1
  588. package/dist/models/execution/index.js +50 -39
  589. package/dist/models/execution/index.js.map +1 -1
  590. package/dist/models/execution/model-call-accounting.d.ts.map +1 -1
  591. package/dist/models/execution/model-call-recorder.d.ts +3 -0
  592. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  593. package/dist/models/execution/usage.d.ts.map +1 -1
  594. package/dist/models/execution.d.ts +4 -2
  595. package/dist/models/execution.d.ts.map +1 -1
  596. package/dist/models/generation-types.d.ts +8 -1
  597. package/dist/models/generation-types.d.ts.map +1 -1
  598. package/dist/models/image/catalog.d.ts +13 -0
  599. package/dist/models/image/catalog.d.ts.map +1 -0
  600. package/dist/models/image/errors.d.ts +8 -0
  601. package/dist/models/image/errors.d.ts.map +1 -0
  602. package/dist/models/image/runtime.d.ts +8 -0
  603. package/dist/models/image/runtime.d.ts.map +1 -0
  604. package/dist/models/image/types.d.ts +103 -0
  605. package/dist/models/image/types.d.ts.map +1 -0
  606. package/dist/models/index.d.ts +12 -8
  607. package/dist/models/index.d.ts.map +1 -1
  608. package/dist/models/index.js +17 -7
  609. package/dist/models/index.js.map +1 -1
  610. package/dist/models/input-file.d.ts +9 -0
  611. package/dist/models/input-file.d.ts.map +1 -0
  612. package/dist/models/language-model.d.ts +13 -0
  613. package/dist/models/language-model.d.ts.map +1 -1
  614. package/dist/models/pricing.d.ts +25 -10
  615. package/dist/models/pricing.d.ts.map +1 -1
  616. package/dist/models/rate-card.d.ts +44 -6
  617. package/dist/models/rate-card.d.ts.map +1 -1
  618. package/dist/objects/clearance-redaction.d.ts +27 -0
  619. package/dist/objects/clearance-redaction.d.ts.map +1 -0
  620. package/dist/objects/conditional-writes.d.ts +37 -0
  621. package/dist/objects/conditional-writes.d.ts.map +1 -0
  622. package/dist/objects/execution.d.ts +2 -0
  623. package/dist/objects/execution.d.ts.map +1 -1
  624. package/dist/objects/index.d.ts +1 -0
  625. package/dist/objects/index.d.ts.map +1 -1
  626. package/dist/objects/index.js +77 -60
  627. package/dist/objects/index.js.map +1 -1
  628. package/dist/objects/link/authorization.d.ts +11 -5
  629. package/dist/objects/link/authorization.d.ts.map +1 -1
  630. package/dist/objects/link/endpoints.d.ts +21 -2
  631. package/dist/objects/link/endpoints.d.ts.map +1 -1
  632. package/dist/objects/link/remove.d.ts.map +1 -1
  633. package/dist/objects/link/upsert-batch.d.ts.map +1 -1
  634. package/dist/objects/link/upsert.d.ts.map +1 -1
  635. package/dist/objects/materializer-adapter.d.ts +13 -4
  636. package/dist/objects/materializer-adapter.d.ts.map +1 -1
  637. package/dist/objects/object/delete.d.ts +3 -0
  638. package/dist/objects/object/delete.d.ts.map +1 -1
  639. package/dist/objects/object/upsert-batch.d.ts.map +1 -1
  640. package/dist/objects/object/upsert.d.ts.map +1 -1
  641. package/dist/objects/property-clearance.d.ts +47 -24
  642. package/dist/objects/property-clearance.d.ts.map +1 -1
  643. package/dist/objects/query/clearance-admission.d.ts +10 -0
  644. package/dist/objects/query/clearance-admission.d.ts.map +1 -0
  645. package/dist/objects/query/current-user.d.ts +17 -0
  646. package/dist/objects/query/current-user.d.ts.map +1 -0
  647. package/dist/objects/query/executor.d.ts +14 -0
  648. package/dist/objects/query/executor.d.ts.map +1 -1
  649. package/dist/objects/query/index.d.ts +2 -2
  650. package/dist/objects/query/index.d.ts.map +1 -1
  651. package/dist/objects/query/index.js +55 -49
  652. package/dist/objects/query/index.js.map +1 -1
  653. package/dist/objects/query/ir.d.ts +19 -1
  654. package/dist/objects/query/ir.d.ts.map +1 -1
  655. package/dist/objects/query/link-query-clearance.d.ts +21 -0
  656. package/dist/objects/query/link-query-clearance.d.ts.map +1 -0
  657. package/dist/objects/query/matches-predicate.d.ts +9 -0
  658. package/dist/objects/query/matches-predicate.d.ts.map +1 -0
  659. package/dist/objects/query/normalize.d.ts.map +1 -1
  660. package/dist/objects/query/user-expansions.d.ts +27 -0
  661. package/dist/objects/query/user-expansions.d.ts.map +1 -0
  662. package/dist/objects/query/validate.d.ts.map +1 -1
  663. package/dist/objects/runtime-batch.d.ts +3 -1
  664. package/dist/objects/runtime-batch.d.ts.map +1 -1
  665. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  666. package/dist/objects/sdk/query-executor.d.ts +6 -0
  667. package/dist/objects/sdk/query-executor.d.ts.map +1 -1
  668. package/dist/objects/serialize.d.ts +39 -0
  669. package/dist/objects/serialize.d.ts.map +1 -0
  670. package/dist/objects/unique-violation.d.ts +22 -0
  671. package/dist/objects/unique-violation.d.ts.map +1 -0
  672. package/dist/ontology/builders.d.ts +3 -1
  673. package/dist/ontology/builders.d.ts.map +1 -1
  674. package/dist/ontology/docs-markdown.d.ts +1 -1
  675. package/dist/ontology/docs-markdown.d.ts.map +1 -1
  676. package/dist/ontology/index.d.ts +2 -2
  677. package/dist/ontology/index.d.ts.map +1 -1
  678. package/dist/ontology/index.js +13 -9
  679. package/dist/ontology/index.js.map +1 -1
  680. package/dist/ontology/internal.js +9 -7
  681. package/dist/ontology/internal.js.map +3 -3
  682. package/dist/ontology/json-schema.d.ts.map +1 -1
  683. package/dist/ontology/primitives.d.ts +3 -0
  684. package/dist/ontology/primitives.d.ts.map +1 -1
  685. package/dist/ontology/registry.d.ts +6 -0
  686. package/dist/ontology/registry.d.ts.map +1 -1
  687. package/dist/ontology/types.d.ts +9 -0
  688. package/dist/ontology/types.d.ts.map +1 -1
  689. package/dist/ontology/unique-values.d.ts +26 -0
  690. package/dist/ontology/unique-values.d.ts.map +1 -0
  691. package/dist/ontology/user-ref.d.ts +23 -0
  692. package/dist/ontology/user-ref.d.ts.map +1 -1
  693. package/dist/ontology/validation/properties.d.ts.map +1 -1
  694. package/dist/ontology/validation/schema.d.ts.map +1 -1
  695. package/dist/pipelines/index.d.ts +2 -0
  696. package/dist/pipelines/index.d.ts.map +1 -1
  697. package/dist/pipelines/index.js +61 -46
  698. package/dist/pipelines/index.js.map +1 -1
  699. package/dist/pipelines/lineage.d.ts +17 -0
  700. package/dist/pipelines/lineage.d.ts.map +1 -0
  701. package/dist/projections/internal.d.ts +2 -2
  702. package/dist/projections/internal.js +42 -38
  703. package/dist/projections/internal.js.map +1 -1
  704. package/dist/projections/registry.d.ts +4 -0
  705. package/dist/projections/registry.d.ts.map +1 -1
  706. package/dist/projections/revision.d.ts +15 -0
  707. package/dist/projections/revision.d.ts.map +1 -1
  708. package/dist/projections/run-dispatch.d.ts.map +1 -1
  709. package/dist/projections/types.d.ts +2 -0
  710. package/dist/projections/types.d.ts.map +1 -1
  711. package/dist/query.d.ts +4 -2
  712. package/dist/query.d.ts.map +1 -1
  713. package/dist/query.js +2 -2
  714. package/dist/rules/execution.d.ts.map +1 -1
  715. package/dist/runtime/ai-cost.d.ts +2 -0
  716. package/dist/runtime/ai-cost.d.ts.map +1 -1
  717. package/dist/runtime/ai-usage.d.ts +7 -0
  718. package/dist/runtime/ai-usage.d.ts.map +1 -1
  719. package/dist/runtime/create.d.ts +3 -0
  720. package/dist/runtime/create.d.ts.map +1 -1
  721. package/dist/runtime/host.d.ts +6 -0
  722. package/dist/runtime/host.d.ts.map +1 -1
  723. package/dist/runtime/index.d.ts +1 -1
  724. package/dist/runtime/index.d.ts.map +1 -1
  725. package/dist/runtime/internal.d.ts +2 -0
  726. package/dist/runtime/internal.d.ts.map +1 -1
  727. package/dist/runtime/internal.js +58 -50
  728. package/dist/runtime/internal.js.map +1 -1
  729. package/dist/runtime/ontology-mutations.d.ts +2 -0
  730. package/dist/runtime/ontology-mutations.d.ts.map +1 -1
  731. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  732. package/dist/runtime/sixb.d.ts +10 -0
  733. package/dist/runtime/sixb.d.ts.map +1 -1
  734. package/dist/runtime/types.d.ts +66 -8
  735. package/dist/runtime/types.d.ts.map +1 -1
  736. package/dist/sandboxes/auth.d.ts +16 -0
  737. package/dist/sandboxes/auth.d.ts.map +1 -1
  738. package/dist/sandboxes/config.d.ts.map +1 -1
  739. package/dist/sandboxes/configuration.d.ts +26 -0
  740. package/dist/sandboxes/configuration.d.ts.map +1 -1
  741. package/dist/sandboxes/index.d.ts +1 -1
  742. package/dist/sandboxes/index.d.ts.map +1 -1
  743. package/dist/sandboxes/index.js +15 -13
  744. package/dist/sandboxes/index.js.map +1 -1
  745. package/dist/sandboxes/sandbox.d.ts +28 -5
  746. package/dist/sandboxes/sandbox.d.ts.map +1 -1
  747. package/dist/schedules/builders.d.ts.map +1 -1
  748. package/dist/schedules/index.js +3 -3
  749. package/dist/schedules/runtime.d.ts.map +1 -1
  750. package/dist/schedules/validation.d.ts.map +1 -1
  751. package/dist/security/applied-markings-contribution.d.ts +58 -0
  752. package/dist/security/applied-markings-contribution.d.ts.map +1 -0
  753. package/dist/security/applied-markings-host.d.ts +10 -0
  754. package/dist/security/applied-markings-host.d.ts.map +1 -0
  755. package/dist/security/applied-markings-snapshot.d.ts +67 -0
  756. package/dist/security/applied-markings-snapshot.d.ts.map +1 -0
  757. package/dist/security/applied-markings.d.ts +73 -0
  758. package/dist/security/applied-markings.d.ts.map +1 -0
  759. package/dist/security/dataset-version-markings.d.ts +47 -0
  760. package/dist/security/dataset-version-markings.d.ts.map +1 -0
  761. package/dist/security/grants.d.ts +13 -4
  762. package/dist/security/grants.d.ts.map +1 -1
  763. package/dist/security/index.d.ts +2 -1
  764. package/dist/security/index.d.ts.map +1 -1
  765. package/dist/security/internal.d.ts +15 -0
  766. package/dist/security/internal.d.ts.map +1 -0
  767. package/dist/security/internal.js +135 -0
  768. package/dist/security/internal.js.map +10 -0
  769. package/dist/security/marking-propagation.d.ts +62 -0
  770. package/dist/security/marking-propagation.d.ts.map +1 -0
  771. package/dist/security/marking-sets.d.ts +14 -0
  772. package/dist/security/marking-sets.d.ts.map +1 -0
  773. package/dist/security/markings.d.ts +6 -3
  774. package/dist/security/markings.d.ts.map +1 -1
  775. package/dist/security/pipeline-markings.d.ts +20 -0
  776. package/dist/security/pipeline-markings.d.ts.map +1 -0
  777. package/dist/security/project.d.ts +7 -0
  778. package/dist/security/project.d.ts.map +1 -0
  779. package/dist/security/projection-markings.d.ts +71 -0
  780. package/dist/security/projection-markings.d.ts.map +1 -0
  781. package/dist/security/public.js +2 -2
  782. package/dist/security/redactions.d.ts +4 -1
  783. package/dist/security/redactions.d.ts.map +1 -1
  784. package/dist/security/registry.d.ts +6 -0
  785. package/dist/security/registry.d.ts.map +1 -1
  786. package/dist/security/types.d.ts +64 -6
  787. package/dist/security/types.d.ts.map +1 -1
  788. package/dist/security/validation.d.ts.map +1 -1
  789. package/dist/security/view-conditions.d.ts +37 -0
  790. package/dist/security/view-conditions.d.ts.map +1 -0
  791. package/dist/shares/execution.d.ts.map +1 -1
  792. package/dist/shares/internal.js +40 -36
  793. package/dist/shares/internal.js.map +2 -2
  794. package/dist/storage/action-runs/failure.js +3 -3
  795. package/dist/storage/action-runs/in-memory.d.ts +4 -0
  796. package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
  797. package/dist/storage/action-runs/provider.js +1 -1
  798. package/dist/storage/action-runs/types.d.ts +9 -1
  799. package/dist/storage/action-runs/types.d.ts.map +1 -1
  800. package/dist/storage/activity/in-memory.d.ts +55 -0
  801. package/dist/storage/activity/in-memory.d.ts.map +1 -0
  802. package/dist/storage/activity/index.d.ts +3 -0
  803. package/dist/storage/activity/index.d.ts.map +1 -0
  804. package/dist/storage/activity/policy.d.ts +96 -0
  805. package/dist/storage/activity/policy.d.ts.map +1 -0
  806. package/dist/storage/activity/types.d.ts +191 -0
  807. package/dist/storage/activity/types.d.ts.map +1 -0
  808. package/dist/storage/agents/errors.d.ts +3 -1
  809. package/dist/storage/agents/errors.d.ts.map +1 -1
  810. package/dist/storage/agents/in-memory.d.ts +124 -3
  811. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  812. package/dist/storage/agents/index.d.ts +2 -2
  813. package/dist/storage/agents/index.d.ts.map +1 -1
  814. package/dist/storage/agents/provider.d.ts +154 -4
  815. package/dist/storage/agents/provider.d.ts.map +1 -1
  816. package/dist/storage/agents/provider.js +60 -8
  817. package/dist/storage/agents/provider.js.map +1 -1
  818. package/dist/storage/agents/types.d.ts +573 -20
  819. package/dist/storage/agents/types.d.ts.map +1 -1
  820. package/dist/storage/ai-cost/analytics.d.ts +10 -1
  821. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  822. package/dist/storage/ai-cost/groups.d.ts +9 -0
  823. package/dist/storage/ai-cost/groups.d.ts.map +1 -1
  824. package/dist/storage/ai-cost/index.d.ts +1 -1
  825. package/dist/storage/ai-cost/index.d.ts.map +1 -1
  826. package/dist/storage/ai-cost/provider.d.ts +2 -1
  827. package/dist/storage/ai-cost/provider.d.ts.map +1 -1
  828. package/dist/storage/ai-cost/provider.js +11 -5
  829. package/dist/storage/ai-cost/provider.js.map +1 -1
  830. package/dist/storage/ai-cost/types.d.ts +14 -2
  831. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  832. package/dist/storage/ai-cost/validation.d.ts.map +1 -1
  833. package/dist/storage/ai-limits/enforcement.js +6 -5
  834. package/dist/storage/ai-limits/enforcement.js.map +1 -1
  835. package/dist/storage/ai-limits/provider.d.ts +1 -1
  836. package/dist/storage/ai-limits/provider.d.ts.map +1 -1
  837. package/dist/storage/ai-limits/provider.js +3 -2
  838. package/dist/storage/ai-limits/provider.js.map +1 -1
  839. package/dist/storage/ai-usage/in-memory.d.ts +5 -1
  840. package/dist/storage/ai-usage/in-memory.d.ts.map +1 -1
  841. package/dist/storage/ai-usage/index.d.ts +2 -2
  842. package/dist/storage/ai-usage/index.d.ts.map +1 -1
  843. package/dist/storage/ai-usage/record.d.ts +5 -1
  844. package/dist/storage/ai-usage/record.d.ts.map +1 -1
  845. package/dist/storage/ai-usage/types.d.ts +33 -0
  846. package/dist/storage/ai-usage/types.d.ts.map +1 -1
  847. package/dist/storage/ai-usage/usage.d.ts +2 -0
  848. package/dist/storage/ai-usage/usage.d.ts.map +1 -1
  849. package/dist/storage/artifacts/errors.d.ts +18 -0
  850. package/dist/storage/artifacts/errors.d.ts.map +1 -0
  851. package/dist/storage/artifacts/in-memory.d.ts +55 -0
  852. package/dist/storage/artifacts/in-memory.d.ts.map +1 -0
  853. package/dist/storage/artifacts/index.d.ts +5 -0
  854. package/dist/storage/artifacts/index.d.ts.map +1 -0
  855. package/dist/storage/artifacts/record.d.ts +34 -0
  856. package/dist/storage/artifacts/record.d.ts.map +1 -0
  857. package/dist/storage/artifacts/types.d.ts +263 -0
  858. package/dist/storage/artifacts/types.d.ts.map +1 -0
  859. package/dist/storage/auth/in-memory/auth-storage.d.ts +3 -2
  860. package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
  861. package/dist/storage/auth/in-memory/sessions.d.ts +2 -1
  862. package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
  863. package/dist/storage/auth/in-memory/users.d.ts +7 -3
  864. package/dist/storage/auth/in-memory/users.d.ts.map +1 -1
  865. package/dist/storage/auth/index.d.ts +1 -1
  866. package/dist/storage/auth/index.d.ts.map +1 -1
  867. package/dist/storage/auth/types.d.ts +59 -9
  868. package/dist/storage/auth/types.d.ts.map +1 -1
  869. package/dist/storage/connector-connections/provider.js +2 -2
  870. package/dist/storage/executions/in-memory.d.ts +3 -1
  871. package/dist/storage/executions/in-memory.d.ts.map +1 -1
  872. package/dist/storage/executions/index.d.ts +1 -1
  873. package/dist/storage/executions/index.d.ts.map +1 -1
  874. package/dist/storage/executions/provider.d.ts +2 -0
  875. package/dist/storage/executions/provider.d.ts.map +1 -1
  876. package/dist/storage/executions/provider.js +9 -223
  877. package/dist/storage/executions/provider.js.map +3 -4
  878. package/dist/storage/executions/types.d.ts +46 -0
  879. package/dist/storage/executions/types.d.ts.map +1 -1
  880. package/dist/storage/file-upload-sessions/provider.js +17 -14
  881. package/dist/storage/file-upload-sessions/provider.js.map +1 -1
  882. package/dist/storage/in-memory/index.d.ts +8 -0
  883. package/dist/storage/in-memory/index.d.ts.map +1 -1
  884. package/dist/storage/index.d.ts +15 -11
  885. package/dist/storage/index.d.ts.map +1 -1
  886. package/dist/storage/index.js +78 -66
  887. package/dist/storage/index.js.map +1 -1
  888. package/dist/storage/internal.d.ts +4 -1
  889. package/dist/storage/internal.d.ts.map +1 -1
  890. package/dist/storage/internal.js +80 -19
  891. package/dist/storage/internal.js.map +1 -1
  892. package/dist/storage/migrations/migrate-storage.d.ts +4 -1
  893. package/dist/storage/migrations/migrate-storage.d.ts.map +1 -1
  894. package/dist/storage/migrations/prepare-unique-properties.d.ts +18 -0
  895. package/dist/storage/migrations/prepare-unique-properties.d.ts.map +1 -0
  896. package/dist/storage/objects/guard.d.ts +1 -1
  897. package/dist/storage/objects/guard.d.ts.map +1 -1
  898. package/dist/storage/objects/in-memory/conditional-reader.d.ts +5 -0
  899. package/dist/storage/objects/in-memory/conditional-reader.d.ts.map +1 -0
  900. package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
  901. package/dist/storage/objects/in-memory/read-scope.d.ts +3 -9
  902. package/dist/storage/objects/in-memory/read-scope.d.ts.map +1 -1
  903. package/dist/storage/objects/in-memory/read-source.d.ts +10 -1
  904. package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -1
  905. package/dist/storage/objects/in-memory/scoped-reader.d.ts +14 -0
  906. package/dist/storage/objects/in-memory/scoped-reader.d.ts.map +1 -0
  907. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
  908. package/dist/storage/objects/in-memory/storage.d.ts +36 -1
  909. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
  910. package/dist/storage/objects/index.d.ts +2 -2
  911. package/dist/storage/objects/index.d.ts.map +1 -1
  912. package/dist/storage/objects/read-scope.d.ts +9 -1
  913. package/dist/storage/objects/read-scope.d.ts.map +1 -1
  914. package/dist/storage/objects/types.d.ts +64 -1
  915. package/dist/storage/objects/types.d.ts.map +1 -1
  916. package/dist/storage/ontology/in-memory/index.d.ts +2 -0
  917. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  918. package/dist/storage/ontology/in-memory/materializations.d.ts +1 -0
  919. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  920. package/dist/storage/ontology/in-memory/replacement-plans.d.ts.map +1 -1
  921. package/dist/storage/ontology/in-memory/sources.d.ts +2 -1
  922. package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
  923. package/dist/storage/ontology/in-memory/unique-values.d.ts +32 -0
  924. package/dist/storage/ontology/in-memory/unique-values.d.ts.map +1 -0
  925. package/dist/storage/ontology/index.d.ts +5 -2
  926. package/dist/storage/ontology/index.d.ts.map +1 -1
  927. package/dist/storage/ontology/materializations.d.ts +34 -1
  928. package/dist/storage/ontology/materializations.d.ts.map +1 -1
  929. package/dist/storage/ontology/provider-work.d.ts +15 -2
  930. package/dist/storage/ontology/provider-work.d.ts.map +1 -1
  931. package/dist/storage/ontology/provider.d.ts +1 -1
  932. package/dist/storage/ontology/provider.d.ts.map +1 -1
  933. package/dist/storage/ontology/provider.js +9 -4
  934. package/dist/storage/ontology/provider.js.map +1 -1
  935. package/dist/storage/ontology/sources.d.ts +15 -0
  936. package/dist/storage/ontology/sources.d.ts.map +1 -1
  937. package/dist/storage/ontology/unique-values.d.ts +54 -0
  938. package/dist/storage/ontology/unique-values.d.ts.map +1 -0
  939. package/dist/storage/operation-scope.d.ts +1 -1
  940. package/dist/storage/operation-scope.d.ts.map +1 -1
  941. package/dist/storage/operation-scope.js +1 -1
  942. package/dist/storage/projection-runs/in-memory.d.ts +0 -6
  943. package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
  944. package/dist/storage/projection-runs/provider.js +3 -3
  945. package/dist/storage/share-grants/in-memory.d.ts +2 -1
  946. package/dist/storage/share-grants/in-memory.d.ts.map +1 -1
  947. package/dist/storage/share-grants/index.d.ts +1 -1
  948. package/dist/storage/share-grants/index.d.ts.map +1 -1
  949. package/dist/storage/share-grants/provider.js +4 -3
  950. package/dist/storage/share-grants/provider.js.map +1 -1
  951. package/dist/storage/share-grants/types.d.ts +6 -0
  952. package/dist/storage/share-grants/types.d.ts.map +1 -1
  953. package/dist/storage/types.d.ts +6 -2
  954. package/dist/storage/types.d.ts.map +1 -1
  955. package/dist/storage/workflow-runs/in-memory.d.ts +4 -0
  956. package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
  957. package/dist/storage/workflow-runs/provider.js +18 -14
  958. package/dist/storage/workflow-runs/provider.js.map +1 -1
  959. package/dist/storage/workflow-runs/types.d.ts +5 -0
  960. package/dist/storage/workflow-runs/types.d.ts.map +1 -1
  961. package/dist/syncs/index.js +49 -45
  962. package/dist/syncs/index.js.map +1 -1
  963. package/dist/testing/action-run-storage-contract.d.ts.map +1 -1
  964. package/dist/testing/activity-storage-contract.d.ts +14 -0
  965. package/dist/testing/activity-storage-contract.d.ts.map +1 -0
  966. package/dist/testing/agent-approval-storage-contract.d.ts +17 -0
  967. package/dist/testing/agent-approval-storage-contract.d.ts.map +1 -0
  968. package/dist/testing/agent-memory-storage-contract.d.ts +12 -0
  969. package/dist/testing/agent-memory-storage-contract.d.ts.map +1 -0
  970. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  971. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  972. package/dist/testing/ai-limit-storage-contract.d.ts +0 -1
  973. package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -1
  974. package/dist/testing/ai-model-call-groups-contract.d.ts.map +1 -1
  975. package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
  976. package/dist/testing/artifact-storage-contract.d.ts +13 -0
  977. package/dist/testing/artifact-storage-contract.d.ts.map +1 -0
  978. package/dist/testing/auth-storage-contract.d.ts +13 -0
  979. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  980. package/dist/testing/broker-contract.d.ts +5 -0
  981. package/dist/testing/broker-contract.d.ts.map +1 -1
  982. package/dist/testing/effective-storage-contract.d.ts.map +1 -1
  983. package/dist/testing/execution-storage-contract.d.ts.map +1 -1
  984. package/dist/testing/file-upload-session-storage-contract.d.ts.map +1 -1
  985. package/dist/testing/index.d.ts +11 -5
  986. package/dist/testing/index.d.ts.map +1 -1
  987. package/dist/testing/index.js +9340 -3794
  988. package/dist/testing/index.js.map +32 -26
  989. package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
  990. package/dist/testing/lake-storage-contract.d.ts +2 -0
  991. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  992. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  993. package/dist/testing/object-conditional-read-scope-contract.d.ts +11 -0
  994. package/dist/testing/object-conditional-read-scope-contract.d.ts.map +1 -0
  995. package/dist/testing/object-query-contract.d.ts +0 -2
  996. package/dist/testing/object-query-contract.d.ts.map +1 -1
  997. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  998. package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
  999. package/dist/testing/queues-contract.d.ts +5 -0
  1000. package/dist/testing/queues-contract.d.ts.map +1 -1
  1001. package/dist/testing/sandboxes-contract.d.ts.map +1 -1
  1002. package/dist/testing/share-grant-storage-contract.d.ts.map +1 -1
  1003. package/dist/testing/share-session-storage-contract.d.ts.map +1 -1
  1004. package/dist/testing/unique-values-contract.d.ts +21 -0
  1005. package/dist/testing/unique-values-contract.d.ts.map +1 -0
  1006. package/dist/testing/webhook-execution.d.ts +0 -8
  1007. package/dist/testing/webhook-execution.d.ts.map +1 -1
  1008. package/dist/testing/webhook-run-storage-contract.d.ts.map +1 -1
  1009. package/dist/users/execution.d.ts +40 -0
  1010. package/dist/users/execution.d.ts.map +1 -0
  1011. package/dist/users/index.d.ts +3 -0
  1012. package/dist/users/index.d.ts.map +1 -0
  1013. package/dist/webhooks/internal.js +42 -38
  1014. package/dist/webhooks/internal.js.map +2 -2
  1015. package/dist/workers/index.js +5 -7
  1016. package/dist/workers/index.js.map +4 -4
  1017. package/dist/workers/queue-worker.d.ts +0 -2
  1018. package/dist/workers/queue-worker.d.ts.map +1 -1
  1019. package/dist/workers/worker.d.ts +0 -2
  1020. package/dist/workers/worker.d.ts.map +1 -1
  1021. package/dist/workflows/builders.d.ts.map +1 -1
  1022. package/dist/workflows/index.js +76 -66
  1023. package/dist/workflows/index.js.map +1 -1
  1024. package/dist/workflows/request.d.ts +12 -1
  1025. package/dist/workflows/request.d.ts.map +1 -1
  1026. package/dist/workflows/types.d.ts +15 -2
  1027. package/dist/workflows/types.d.ts.map +1 -1
  1028. package/dist/workflows/validation.d.ts +7 -0
  1029. package/dist/workflows/validation.d.ts.map +1 -1
  1030. package/package.json +25 -1
  1031. package/src/actions/commit-edits.ts +6 -1
  1032. package/src/actions/execution.ts +55 -23
  1033. package/src/actions/read-facade.ts +33 -0
  1034. package/src/actions/request.ts +234 -66
  1035. package/src/actions/run/context.ts +47 -1
  1036. package/src/actions/run/execute.ts +13 -6
  1037. package/src/actions/run/executor.ts +11 -2
  1038. package/src/actions/run/normalize.ts +12 -2
  1039. package/src/actions/run/phases.ts +2 -0
  1040. package/src/actions/run/run-action.ts +12 -3
  1041. package/src/actions/run/signals.ts +3 -9
  1042. package/src/actions/run/types.ts +17 -1
  1043. package/src/actions/run-authorization.ts +95 -0
  1044. package/src/actions/types/context.ts +20 -3
  1045. package/src/actions/validators.ts +19 -8
  1046. package/src/activity/README.md +158 -0
  1047. package/src/activity/connection.ts +217 -0
  1048. package/src/activity/device.ts +41 -0
  1049. package/src/activity/execution.ts +210 -0
  1050. package/src/activity/service.ts +274 -0
  1051. package/src/activity/shares.ts +62 -0
  1052. package/src/activity/timeline.ts +385 -0
  1053. package/src/agents/accounting.ts +59 -0
  1054. package/src/agents/adapters.ts +10 -0
  1055. package/src/agents/agent-mail.ts +29 -0
  1056. package/src/agents/api-gateway.ts +14 -3
  1057. package/src/agents/approval-continuation.ts +48 -0
  1058. package/src/agents/approval-executor.ts +318 -0
  1059. package/src/agents/approval-outcome.ts +59 -0
  1060. package/src/agents/approvals.ts +566 -0
  1061. package/src/agents/authority.ts +24 -1
  1062. package/src/agents/builders.ts +5 -3
  1063. package/src/agents/cancel.ts +103 -0
  1064. package/src/agents/child-question.ts +46 -0
  1065. package/src/agents/children.ts +404 -0
  1066. package/src/agents/context-compaction.ts +12 -0
  1067. package/src/agents/errors.ts +31 -0
  1068. package/src/agents/execution.ts +788 -90
  1069. package/src/agents/fork.ts +158 -0
  1070. package/src/agents/ids.ts +18 -6
  1071. package/src/agents/index.ts +63 -3
  1072. package/src/agents/memory-execution.ts +186 -0
  1073. package/src/agents/memory.ts +178 -0
  1074. package/src/agents/message.ts +57 -0
  1075. package/src/agents/model-loop.ts +93 -6
  1076. package/src/agents/model-routing.ts +193 -0
  1077. package/src/agents/participants.ts +213 -0
  1078. package/src/agents/reference.ts +2 -0
  1079. package/src/agents/request.ts +398 -64
  1080. package/src/agents/run-scope.ts +134 -0
  1081. package/src/agents/skills.ts +6 -0
  1082. package/src/agents/streams/index.ts +5 -0
  1083. package/src/agents/streams/internal.ts +1 -0
  1084. package/src/agents/streams/protocol.ts +385 -7
  1085. package/src/agents/subagent-runs.ts +41 -0
  1086. package/src/agents/thread-access.ts +137 -0
  1087. package/src/agents/tool-definition.ts +5 -3
  1088. package/src/agents/types.ts +43 -18
  1089. package/src/agents/validation.ts +4 -0
  1090. package/src/artifacts/access.ts +125 -0
  1091. package/src/artifacts/address.ts +132 -0
  1092. package/src/artifacts/canvas.ts +369 -0
  1093. package/src/artifacts/csv.ts +118 -0
  1094. package/src/artifacts/errors.ts +32 -0
  1095. package/src/artifacts/execution.ts +553 -0
  1096. package/src/artifacts/formula/check.ts +171 -0
  1097. package/src/artifacts/formula/evaluate.ts +288 -0
  1098. package/src/artifacts/formula/index.ts +199 -0
  1099. package/src/artifacts/formula/parser.ts +357 -0
  1100. package/src/artifacts/frames/assets.ts +104 -0
  1101. package/src/artifacts/frames/entries.ts +35 -0
  1102. package/src/artifacts/frames/grants.ts +125 -0
  1103. package/src/artifacts/frames/index.ts +21 -0
  1104. package/src/artifacts/frames/kit.ts +569 -0
  1105. package/src/artifacts/frames/probe.ts +357 -0
  1106. package/src/artifacts/frames/protocol.ts +328 -0
  1107. package/src/artifacts/frames/runtime.ts +458 -0
  1108. package/src/artifacts/html.ts +25 -0
  1109. package/src/artifacts/ids.ts +18 -0
  1110. package/src/artifacts/index.ts +125 -0
  1111. package/src/artifacts/kinds.ts +8 -0
  1112. package/src/artifacts/limits.ts +58 -0
  1113. package/src/artifacts/live-sheet.ts +345 -0
  1114. package/src/artifacts/outline.ts +95 -0
  1115. package/src/artifacts/publish/files.ts +87 -0
  1116. package/src/artifacts/publish/index.ts +14 -0
  1117. package/src/artifacts/publish/publish.ts +336 -0
  1118. package/src/artifacts/publish/queries.ts +336 -0
  1119. package/src/artifacts/publish/references.ts +135 -0
  1120. package/src/artifacts/publish/validate/canvas.ts +118 -0
  1121. package/src/artifacts/publish/validate/document.ts +114 -0
  1122. package/src/artifacts/publish/validate/file.ts +19 -0
  1123. package/src/artifacts/publish/validate/html.ts +78 -0
  1124. package/src/artifacts/publish/validate/page.ts +65 -0
  1125. package/src/artifacts/publish/validate/sheet.ts +297 -0
  1126. package/src/artifacts/publish/validate/slides.ts +82 -0
  1127. package/src/artifacts/queries.ts +512 -0
  1128. package/src/artifacts/references.ts +11 -0
  1129. package/src/artifacts/resolve.ts +112 -0
  1130. package/src/artifacts/run-query.ts +212 -0
  1131. package/src/artifacts/serialize-query.ts +25 -0
  1132. package/src/artifacts/sheet-rules.ts +180 -0
  1133. package/src/artifacts/theme.ts +116 -0
  1134. package/src/artifacts/tones.ts +20 -0
  1135. package/src/artifacts/warnings.ts +10 -0
  1136. package/src/artifacts/workbook.ts +674 -0
  1137. package/src/auth/index.ts +4 -0
  1138. package/src/auth/member-events.ts +114 -0
  1139. package/src/auth/profile.ts +118 -0
  1140. package/src/auth/runtime.ts +190 -9
  1141. package/src/auth/strategy.ts +3 -0
  1142. package/src/auth/types.ts +32 -0
  1143. package/src/authorization/decision.ts +52 -0
  1144. package/src/authorization/event-visibility.ts +17 -16
  1145. package/src/authorization/grant-kinds.ts +46 -2
  1146. package/src/authorization/index.ts +6 -1
  1147. package/src/authorization/resolve.ts +58 -1
  1148. package/src/authorization/run-visibility.ts +8 -1
  1149. package/src/authorization/types.ts +14 -0
  1150. package/src/blob-storage/internal.ts +1 -1
  1151. package/src/blob-storage/media-type.ts +69 -0
  1152. package/src/datasets/builders.ts +66 -2
  1153. package/src/datasets/column-index.ts +19 -0
  1154. package/src/datasets/execution.ts +23 -9
  1155. package/src/errors/catalog.ts +26 -1
  1156. package/src/errors/internal.ts +18 -8
  1157. package/src/events/definitions.ts +26 -0
  1158. package/src/events/execution.ts +171 -21
  1159. package/src/events/index.ts +10 -1
  1160. package/src/events/scope.ts +2 -0
  1161. package/src/events/selectors/builder.ts +50 -0
  1162. package/src/events/selectors/index.ts +4 -0
  1163. package/src/events/selectors/types.ts +32 -1
  1164. package/src/events/service.ts +55 -2
  1165. package/src/events/types/index.ts +10 -0
  1166. package/src/events/types/users.ts +73 -0
  1167. package/src/events/view-conditions.ts +241 -0
  1168. package/src/execution/agent.ts +25 -0
  1169. package/src/execution/authorization.ts +70 -0
  1170. package/src/execution/authorized-object-reader.ts +486 -266
  1171. package/src/execution/lineage.ts +14 -0
  1172. package/src/execution/object-reader-clearance.ts +91 -0
  1173. package/src/execution/object-reader-ontology.ts +60 -0
  1174. package/src/execution/object-reader-security.ts +270 -0
  1175. package/src/execution/object-reader-users.ts +122 -0
  1176. package/src/execution/preparation.ts +78 -0
  1177. package/src/execution/request.ts +2 -0
  1178. package/src/execution/unique-lookup.ts +55 -0
  1179. package/src/execution/visible-objects.ts +26 -0
  1180. package/src/http/api-routes.ts +331 -7
  1181. package/src/index.ts +169 -4
  1182. package/src/lake-storage/in-memory.ts +26 -3
  1183. package/src/lake-storage/index.ts +13 -1
  1184. package/src/lake-storage/lineage.ts +385 -0
  1185. package/src/lake-storage/sql-transforms.ts +45 -0
  1186. package/src/lake-storage/types.ts +59 -1
  1187. package/src/lake-storage/version-inputs.ts +35 -6
  1188. package/src/maintenance/ontology-maintenance.ts +15 -0
  1189. package/src/materialization/errors.ts +37 -0
  1190. package/src/materialization/event-envelopes.ts +11 -3
  1191. package/src/materialization/index.ts +1 -0
  1192. package/src/materialization/model.ts +24 -4
  1193. package/src/materializer/README.md +7 -1
  1194. package/src/materializer/edits/commit.ts +56 -12
  1195. package/src/materializer/edits/load-state.ts +15 -7
  1196. package/src/materializer/edits/operations.ts +12 -0
  1197. package/src/materializer/edits/plan.ts +2 -0
  1198. package/src/materializer/edits/unique-values.ts +255 -0
  1199. package/src/materializer/edits/working-state.ts +8 -1
  1200. package/src/materializer/execution/work-records.ts +47 -0
  1201. package/src/materializer/projections/finish-run.ts +0 -1
  1202. package/src/materializer/projections/replace.ts +1 -1
  1203. package/src/materializer/projections/replacement-plan.ts +4 -1
  1204. package/src/materializer/projections/source-materialization.ts +2 -1
  1205. package/src/materializer/shared/normalize.ts +37 -6
  1206. package/src/materializer/shared/projection-run.ts +1 -2
  1207. package/src/materializer/telemetry/append.ts +14 -17
  1208. package/src/materializer/telemetry/plan.ts +2 -0
  1209. package/src/models/audio/catalog.ts +89 -10
  1210. package/src/models/audio/errors.ts +18 -1
  1211. package/src/models/audio/runtime.ts +10 -13
  1212. package/src/models/audio/speech.ts +261 -0
  1213. package/src/models/audio/types.ts +97 -0
  1214. package/src/models/calls.ts +100 -0
  1215. package/src/models/catalog-index.ts +21 -2
  1216. package/src/models/catalog.ts +211 -35
  1217. package/src/models/decision/runtime.ts +21 -22
  1218. package/src/models/decision/validation.ts +4 -1
  1219. package/src/models/definitions.ts +57 -8
  1220. package/src/models/events.ts +72 -1
  1221. package/src/models/execution/README.md +34 -5
  1222. package/src/models/execution/binding.ts +3 -1
  1223. package/src/models/execution/embedding.ts +1 -0
  1224. package/src/models/execution/index.ts +5 -0
  1225. package/src/models/execution/model-call-accounting.ts +3 -1
  1226. package/src/models/execution/model-call-recorder.ts +29 -1
  1227. package/src/models/execution/usage.ts +8 -0
  1228. package/src/models/execution.ts +20 -22
  1229. package/src/models/generation-types.ts +8 -1
  1230. package/src/models/image/catalog.ts +89 -0
  1231. package/src/models/image/errors.ts +19 -0
  1232. package/src/models/image/runtime.ts +335 -0
  1233. package/src/models/image/types.ts +111 -0
  1234. package/src/models/index.ts +38 -4
  1235. package/src/models/{audio/file.ts → input-file.ts} +22 -13
  1236. package/src/models/language-model.ts +13 -0
  1237. package/src/models/pricing.ts +263 -42
  1238. package/src/models/rate-card.ts +161 -12
  1239. package/src/objects/authorized-ontology-view.ts +1 -0
  1240. package/src/objects/clearance-redaction.ts +138 -0
  1241. package/src/objects/conditional-writes.ts +109 -0
  1242. package/src/objects/execution.ts +4 -0
  1243. package/src/objects/index.ts +8 -0
  1244. package/src/objects/link/authorization.ts +37 -8
  1245. package/src/objects/link/endpoints.ts +42 -11
  1246. package/src/objects/link/remove.ts +27 -12
  1247. package/src/objects/link/upsert-batch.ts +9 -5
  1248. package/src/objects/link/upsert.ts +20 -14
  1249. package/src/objects/materializer-adapter.ts +55 -18
  1250. package/src/objects/object/delete.ts +26 -7
  1251. package/src/objects/object/upsert-batch.ts +46 -18
  1252. package/src/objects/object/upsert.ts +25 -8
  1253. package/src/objects/property-clearance.ts +171 -152
  1254. package/src/objects/query/clearance-admission.ts +112 -0
  1255. package/src/objects/query/current-user.ts +76 -0
  1256. package/src/objects/query/executor.ts +39 -103
  1257. package/src/objects/query/explain.ts +20 -7
  1258. package/src/objects/query/index.ts +2 -0
  1259. package/src/objects/query/ir.ts +20 -0
  1260. package/src/objects/query/link-query-clearance.ts +73 -0
  1261. package/src/objects/query/links.ts +8 -0
  1262. package/src/objects/query/matches-predicate.ts +108 -0
  1263. package/src/objects/query/normalize.ts +50 -19
  1264. package/src/objects/query/scalar-values.ts +19 -3
  1265. package/src/objects/query/user-expansions.ts +65 -0
  1266. package/src/objects/query/validate.ts +248 -10
  1267. package/src/objects/runtime-batch.ts +8 -2
  1268. package/src/objects/sdk/object-set.ts +12 -1
  1269. package/src/objects/sdk/query-builder.ts +39 -8
  1270. package/src/objects/sdk/query-executor.ts +6 -0
  1271. package/src/objects/serialize.ts +79 -0
  1272. package/src/objects/unique-violation.ts +59 -0
  1273. package/src/objects/vectors/handle.ts +3 -3
  1274. package/src/ontology/builders.ts +15 -1
  1275. package/src/ontology/docs-markdown.ts +2 -1
  1276. package/src/ontology/index.ts +2 -2
  1277. package/src/ontology/json-schema.ts +4 -0
  1278. package/src/ontology/primitives.ts +21 -8
  1279. package/src/ontology/registry.ts +16 -0
  1280. package/src/ontology/types.ts +9 -0
  1281. package/src/ontology/unique-values.ts +84 -0
  1282. package/src/ontology/user-ref.ts +39 -0
  1283. package/src/ontology/validation/properties.ts +43 -0
  1284. package/src/ontology/validation/schema.ts +9 -1
  1285. package/src/pipelines/index.ts +2 -0
  1286. package/src/pipelines/lineage.ts +45 -0
  1287. package/src/projections/internal.ts +2 -2
  1288. package/src/projections/registry.ts +16 -10
  1289. package/src/projections/revision.ts +112 -45
  1290. package/src/projections/run-dispatch.ts +38 -25
  1291. package/src/projections/types.ts +2 -0
  1292. package/src/query.ts +5 -0
  1293. package/src/rules/execution.ts +43 -11
  1294. package/src/runtime/ai-cost.ts +30 -0
  1295. package/src/runtime/ai-usage.ts +32 -1
  1296. package/src/runtime/create.ts +4 -0
  1297. package/src/runtime/host.ts +73 -1
  1298. package/src/runtime/index.ts +2 -0
  1299. package/src/runtime/internal.ts +2 -0
  1300. package/src/runtime/ontology-mutations.ts +19 -4
  1301. package/src/runtime/resolve-definitions.ts +69 -3
  1302. package/src/runtime/sixb.ts +53 -9
  1303. package/src/runtime/types.ts +99 -9
  1304. package/src/sandboxes/README.md +29 -7
  1305. package/src/sandboxes/auth.ts +16 -0
  1306. package/src/sandboxes/config.ts +2 -7
  1307. package/src/sandboxes/configuration.ts +61 -7
  1308. package/src/sandboxes/index.ts +1 -0
  1309. package/src/sandboxes/sandbox.ts +27 -5
  1310. package/src/schedules/builders.ts +3 -1
  1311. package/src/schedules/runtime.ts +6 -0
  1312. package/src/schedules/validation.ts +23 -1
  1313. package/src/security/README.md +62 -0
  1314. package/src/security/applied-markings-contribution.ts +277 -0
  1315. package/src/security/applied-markings-host.ts +41 -0
  1316. package/src/security/applied-markings-snapshot.ts +235 -0
  1317. package/src/security/applied-markings.ts +405 -0
  1318. package/src/security/dataset-version-markings.ts +163 -0
  1319. package/src/security/grants.ts +191 -11
  1320. package/src/security/index.ts +5 -0
  1321. package/src/security/internal.ts +18 -0
  1322. package/src/security/marking-propagation.ts +255 -0
  1323. package/src/security/marking-sets.ts +42 -0
  1324. package/src/security/markings.ts +29 -178
  1325. package/src/security/pipeline-markings.ts +175 -0
  1326. package/src/security/project.ts +13 -0
  1327. package/src/security/projection-markings.ts +421 -0
  1328. package/src/security/redactions.ts +7 -2
  1329. package/src/security/registry.ts +32 -7
  1330. package/src/security/types.ts +68 -5
  1331. package/src/security/validation.ts +34 -11
  1332. package/src/security/view-conditions.ts +215 -0
  1333. package/src/shares/execution.ts +43 -10
  1334. package/src/storage/action-runs/in-memory.ts +18 -0
  1335. package/src/storage/action-runs/types.ts +10 -0
  1336. package/src/storage/activity/in-memory.ts +374 -0
  1337. package/src/storage/activity/index.ts +27 -0
  1338. package/src/storage/activity/policy.ts +430 -0
  1339. package/src/storage/activity/types.ts +211 -0
  1340. package/src/storage/agents/errors.ts +3 -0
  1341. package/src/storage/agents/in-memory.ts +789 -32
  1342. package/src/storage/agents/index.ts +42 -0
  1343. package/src/storage/agents/provider.ts +730 -16
  1344. package/src/storage/agents/types.ts +628 -27
  1345. package/src/storage/ai-cost/analytics.ts +60 -7
  1346. package/src/storage/ai-cost/codec.ts +6 -1
  1347. package/src/storage/ai-cost/groups.ts +44 -1
  1348. package/src/storage/ai-cost/index.ts +1 -0
  1349. package/src/storage/ai-cost/provider.ts +2 -0
  1350. package/src/storage/ai-cost/types.ts +18 -1
  1351. package/src/storage/ai-cost/validation.ts +39 -12
  1352. package/src/storage/ai-limits/provider.ts +4 -7
  1353. package/src/storage/ai-usage/in-memory.ts +28 -1
  1354. package/src/storage/ai-usage/index.ts +9 -1
  1355. package/src/storage/ai-usage/record.ts +44 -7
  1356. package/src/storage/ai-usage/types.ts +38 -0
  1357. package/src/storage/ai-usage/usage.ts +15 -1
  1358. package/src/storage/artifacts/errors.ts +28 -0
  1359. package/src/storage/artifacts/in-memory.ts +388 -0
  1360. package/src/storage/artifacts/index.ts +35 -0
  1361. package/src/storage/artifacts/record.ts +260 -0
  1362. package/src/storage/artifacts/types.ts +293 -0
  1363. package/src/storage/auth/in-memory/auth-storage.ts +27 -2
  1364. package/src/storage/auth/in-memory/sessions.ts +21 -0
  1365. package/src/storage/auth/in-memory/users.ts +40 -6
  1366. package/src/storage/auth/index.ts +3 -0
  1367. package/src/storage/auth/types.ts +61 -7
  1368. package/src/storage/executions/in-memory.ts +93 -1
  1369. package/src/storage/executions/index.ts +5 -0
  1370. package/src/storage/executions/provider.ts +12 -0
  1371. package/src/storage/executions/types.ts +47 -0
  1372. package/src/storage/in-memory/index.ts +16 -0
  1373. package/src/storage/index.ts +132 -1
  1374. package/src/storage/internal.ts +39 -1
  1375. package/src/storage/migrations/migrate-storage.ts +8 -1
  1376. package/src/storage/migrations/prepare-unique-properties.ts +161 -0
  1377. package/src/storage/objects/guard.ts +7 -3
  1378. package/src/storage/objects/in-memory/conditional-reader.ts +72 -0
  1379. package/src/storage/objects/in-memory/query.ts +4 -105
  1380. package/src/storage/objects/in-memory/read-scope.ts +15 -14
  1381. package/src/storage/objects/in-memory/read-source.ts +11 -1
  1382. package/src/storage/objects/in-memory/scoped-reader.ts +243 -0
  1383. package/src/storage/objects/in-memory/selected-reader.ts +6 -231
  1384. package/src/storage/objects/in-memory/storage.ts +183 -1
  1385. package/src/storage/objects/index.ts +9 -1
  1386. package/src/storage/objects/read-scope.ts +191 -0
  1387. package/src/storage/objects/types.ts +68 -1
  1388. package/src/storage/ontology/in-memory/index.ts +3 -0
  1389. package/src/storage/ontology/in-memory/materializations.ts +35 -0
  1390. package/src/storage/ontology/in-memory/replacement-plans.ts +4 -0
  1391. package/src/storage/ontology/in-memory/sources.ts +23 -0
  1392. package/src/storage/ontology/in-memory/unique-values.ts +62 -0
  1393. package/src/storage/ontology/index.ts +12 -0
  1394. package/src/storage/ontology/materializations.ts +35 -1
  1395. package/src/storage/ontology/provider-work.ts +76 -0
  1396. package/src/storage/ontology/provider.ts +3 -0
  1397. package/src/storage/ontology/sources.ts +17 -0
  1398. package/src/storage/ontology/unique-values.ts +56 -0
  1399. package/src/storage/operation-scope.ts +9 -1
  1400. package/src/storage/projection-runs/in-memory.ts +3 -35
  1401. package/src/storage/share-grants/in-memory.ts +8 -0
  1402. package/src/storage/share-grants/index.ts +1 -0
  1403. package/src/storage/share-grants/types.ts +8 -0
  1404. package/src/storage/types.ts +6 -0
  1405. package/src/storage/workflow-runs/in-memory.ts +16 -0
  1406. package/src/storage/workflow-runs/types.ts +5 -0
  1407. package/src/testing/action-run-storage-contract.ts +25 -0
  1408. package/src/testing/activity-storage-contract.ts +840 -0
  1409. package/src/testing/agent-approval-storage-contract.ts +1117 -0
  1410. package/src/testing/agent-memory-storage-contract.ts +400 -0
  1411. package/src/testing/agent-storage-contract.ts +1206 -50
  1412. package/src/testing/ai-cost-storage-contract.ts +31 -1
  1413. package/src/testing/ai-limit-storage-contract.ts +9 -7
  1414. package/src/testing/ai-model-call-groups-contract.ts +76 -0
  1415. package/src/testing/ai-usage-storage-contract.ts +120 -13
  1416. package/src/testing/artifact-storage-contract.ts +851 -0
  1417. package/src/testing/auth-storage-contract.ts +597 -73
  1418. package/src/testing/broker-contract.ts +28 -23
  1419. package/src/testing/effective-storage-contract.ts +3 -8
  1420. package/src/testing/execution-storage-contract.ts +200 -1
  1421. package/src/testing/file-upload-session-storage-contract.ts +12 -24
  1422. package/src/testing/index.ts +26 -4
  1423. package/src/testing/lake-merge-storage-contract.ts +38 -0
  1424. package/src/testing/lake-storage-contract.ts +269 -30
  1425. package/src/testing/materializer-storage-contract.ts +37 -9
  1426. package/src/testing/object-conditional-read-scope-contract.ts +634 -0
  1427. package/src/testing/object-query-contract.ts +386 -186
  1428. package/src/testing/ontology-storage-contract.ts +286 -22
  1429. package/src/testing/projection-run-storage-contract.ts +8 -18
  1430. package/src/testing/queues-contract.ts +39 -70
  1431. package/src/testing/sandboxes-contract.ts +3 -14
  1432. package/src/testing/share-grant-storage-contract.ts +28 -16
  1433. package/src/testing/share-session-storage-contract.ts +4 -14
  1434. package/src/testing/unique-values-contract.ts +907 -0
  1435. package/src/testing/webhook-execution.ts +1 -1
  1436. package/src/testing/webhook-run-storage-contract.ts +6 -9
  1437. package/src/users/execution.ts +131 -0
  1438. package/src/users/index.ts +2 -0
  1439. package/src/workers/queue-worker.ts +1 -3
  1440. package/src/workers/worker.ts +1 -3
  1441. package/src/workflows/builders.ts +20 -0
  1442. package/src/workflows/request.ts +46 -8
  1443. package/src/workflows/types.ts +15 -2
  1444. package/src/workflows/validation.ts +95 -9
  1445. package/dist/chunk-1k89ecfr.js +0 -85
  1446. package/dist/chunk-1k89ecfr.js.map +0 -10
  1447. package/dist/chunk-1sr8ryzk.js.map +0 -11
  1448. package/dist/chunk-29yx306f.js.map +0 -22
  1449. package/dist/chunk-3t2hgbgd.js.map +0 -15
  1450. package/dist/chunk-4as3wt1c.js.map +0 -12
  1451. package/dist/chunk-4vyr1j8f.js +0 -128
  1452. package/dist/chunk-4vyr1j8f.js.map +0 -11
  1453. package/dist/chunk-5e43w60z.js.map +0 -10
  1454. package/dist/chunk-6c6sn0bh.js.map +0 -106
  1455. package/dist/chunk-6p49a5cq.js.map +0 -12
  1456. package/dist/chunk-6x0pqh32.js.map +0 -10
  1457. package/dist/chunk-7n30ybym.js +0 -3
  1458. package/dist/chunk-7n440zgt.js +0 -261
  1459. package/dist/chunk-7n440zgt.js.map +0 -12
  1460. package/dist/chunk-8mx7qw3y.js.map +0 -13
  1461. package/dist/chunk-91mg3nj9.js.map +0 -12
  1462. package/dist/chunk-96yw3pwd.js.map +0 -10
  1463. package/dist/chunk-9gyp8hg1.js +0 -363
  1464. package/dist/chunk-9gyp8hg1.js.map +0 -14
  1465. package/dist/chunk-9k93ah50.js.map +0 -11
  1466. package/dist/chunk-b38szspf.js.map +0 -11
  1467. package/dist/chunk-bx9q3cwv.js.map +0 -19
  1468. package/dist/chunk-d09tj99x.js.map +0 -12
  1469. package/dist/chunk-ere85b8y.js.map +0 -15
  1470. package/dist/chunk-es1gxsbf.js.map +0 -13
  1471. package/dist/chunk-gsjm1wms.js.map +0 -10
  1472. package/dist/chunk-hjzdd750.js.map +0 -49
  1473. package/dist/chunk-hkc3jct7.js.map +0 -10
  1474. package/dist/chunk-hvsb78a1.js.map +0 -20
  1475. package/dist/chunk-k6q3n2sc.js.map +0 -12
  1476. package/dist/chunk-n33z5bjw.js.map +0 -66
  1477. package/dist/chunk-pbcbn83d.js.map +0 -14
  1478. package/dist/chunk-pqajwytd.js +0 -68
  1479. package/dist/chunk-pqajwytd.js.map +0 -11
  1480. package/dist/chunk-qczk96d9.js.map +0 -11
  1481. package/dist/chunk-rdghfsss.js +0 -39
  1482. package/dist/chunk-rdghfsss.js.map +0 -10
  1483. package/dist/chunk-rj69qcrd.js.map +0 -11
  1484. package/dist/chunk-rrzt8jdy.js.map +0 -14
  1485. package/dist/chunk-s16apyk9.js +0 -256
  1486. package/dist/chunk-s16apyk9.js.map +0 -16
  1487. package/dist/chunk-s54c868q.js +0 -307
  1488. package/dist/chunk-s54c868q.js.map +0 -12
  1489. package/dist/chunk-tpn40322.js.map +0 -19
  1490. package/dist/chunk-tw03bsmb.js.map +0 -11
  1491. package/dist/chunk-v4jbb3rs.js.map +0 -10
  1492. package/dist/chunk-vpq4shxz.js.map +0 -39
  1493. package/dist/chunk-yxd3nnqt.js.map +0 -11
  1494. package/dist/chunk-yzwja0mj.js.map +0 -14
  1495. package/dist/events/toStoredEvent.d.ts +0 -9
  1496. package/dist/events/toStoredEvent.d.ts.map +0 -1
  1497. package/dist/models/audio/file.d.ts +0 -9
  1498. package/dist/models/audio/file.d.ts.map +0 -1
  1499. package/src/events/toStoredEvent.ts +0 -33
  1500. /package/dist/{chunk-mfs23znk.js.map → chunk-07kkp2e1.js.map} +0 -0
  1501. /package/dist/{chunk-fkgc1wt8.js.map → chunk-0phpbbvm.js.map} +0 -0
  1502. /package/dist/{chunk-y0c4e6ex.js.map → chunk-3gbefjg5.js.map} +0 -0
  1503. /package/dist/{chunk-fa02jy15.js.map → chunk-48jezz3j.js.map} +0 -0
  1504. /package/dist/{chunk-c85m1hyj.js.map → chunk-6n69k945.js.map} +0 -0
  1505. /package/dist/{chunk-xfs8x8m9.js.map → chunk-6p0pastb.js.map} +0 -0
  1506. /package/dist/{chunk-t7x8dmn0.js.map → chunk-6y0mkhex.js.map} +0 -0
  1507. /package/dist/{chunk-v9xd5wzd.js.map → chunk-bab05bhg.js.map} +0 -0
  1508. /package/dist/{chunk-gc4ntf7d.js.map → chunk-cwdzcv37.js.map} +0 -0
  1509. /package/dist/{chunk-vyf9kfqf.js.map → chunk-dp0cdtj2.js.map} +0 -0
  1510. /package/dist/{chunk-br3k6qbf.js.map → chunk-fm62y49k.js.map} +0 -0
  1511. /package/dist/{chunk-9ybhtmg4.js.map → chunk-g663fahq.js.map} +0 -0
  1512. /package/dist/{chunk-9w055r5b.js.map → chunk-hwarjrgf.js.map} +0 -0
  1513. /package/dist/{chunk-9dmt152s.js.map → chunk-hyesv9dv.js.map} +0 -0
  1514. /package/dist/{chunk-x9v4cx1d.js.map → chunk-m36fw8ft.js.map} +0 -0
  1515. /package/dist/{chunk-a40ad1ft.js.map → chunk-mbsbxarb.js.map} +0 -0
  1516. /package/dist/{chunk-6aawea28.js.map → chunk-n8q5j6y5.js.map} +0 -0
  1517. /package/dist/{chunk-dk8tkk5f.js.map → chunk-n9zpx9c6.js.map} +0 -0
  1518. /package/dist/{chunk-7t429e3f.js.map → chunk-npcr0228.js.map} +0 -0
  1519. /package/dist/{chunk-z4m0yz8c.js.map → chunk-q4pmvkg0.js.map} +0 -0
@@ -5,12 +5,12 @@
5
5
  "import type {\n LinkPredicateOperator,\n Predicate,\n PredicateValue,\n PropertyPredicateOperator,\n} from \"./types\"\n\nconst propertyOperators = new Set<PropertyPredicateOperator>([\n \"eq\",\n \"notEq\",\n \"gt\",\n \"gte\",\n \"lt\",\n \"lte\",\n \"isPresent\",\n \"isMissing\",\n])\n\nconst propertyValueOperators = new Set<PropertyPredicateOperator>([\n \"eq\",\n \"notEq\",\n \"gt\",\n \"gte\",\n \"lt\",\n \"lte\",\n])\n\nconst linkOperators = new Set<LinkPredicateOperator>([\"exists\", \"isMissing\"])\n\ntype AssertPredicateShapeOptions = {\n readonly subject?: string\n readonly createError?: (message: string) => Error\n}\n\nfunction defaultError(message: string): Error {\n return new Error(message)\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction assertNonEmptyString(\n value: unknown,\n field: string,\n createError: (message: string) => Error\n): asserts value is string {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw createError(`${field} must not be empty.`)\n }\n}\n\nexport function isPredicateValue(value: unknown): value is PredicateValue {\n if (value === null) {\n return true\n }\n\n if (typeof value === \"number\") {\n return Number.isFinite(value)\n }\n\n return typeof value === \"string\" || typeof value === \"boolean\"\n}\n\n/**\n * Validate the portable predicate AST shape.\n *\n * Primitive-specific validators can wrap this with their own `subject` so\n * errors read as \"Rule ...\" or \"Trigger ...\" while sharing the same checks.\n */\nexport function assertPredicateShape(\n value: unknown,\n options: AssertPredicateShapeOptions = {}\n): asserts value is Predicate {\n const subject = options.subject ?? \"Predicate\"\n const createError = options.createError ?? defaultError\n\n if (!isRecord(value)) {\n throw createError(`${subject} predicate must be an object.`)\n }\n\n if (value.kind === \"all\" || value.kind === \"any\") {\n if (!Array.isArray(value.predicates)) {\n throw createError(`${subject} ${value.kind} predicate must declare predicates.`)\n }\n\n for (const predicate of value.predicates) {\n assertPredicateShape(predicate, options)\n }\n return\n }\n\n if (value.kind === \"not\") {\n assertPredicateShape(value.predicate, options)\n return\n }\n\n if (value.kind === \"property\") {\n assertNonEmptyString(value.propertyId, `${subject} property predicate propertyId`, createError)\n\n if (!propertyOperators.has(value.op as PropertyPredicateOperator)) {\n throw createError(\n `${subject} property predicate '${value.propertyId}' has invalid operator '${String(\n value.op\n )}'.`\n )\n }\n\n const op = value.op as PropertyPredicateOperator\n const hasValue = Object.hasOwn(value, \"value\")\n if (propertyValueOperators.has(op)) {\n if (!hasValue || !isPredicateValue(value.value)) {\n throw createError(\n `${subject} property predicate '${value.propertyId}' must declare a value.`\n )\n }\n return\n }\n\n if (hasValue) {\n throw createError(\n `${subject} property predicate '${value.propertyId}' must not declare a value.`\n )\n }\n return\n }\n\n if (value.kind === \"field\") {\n assertNonEmptyString(value.field, `${subject} field predicate field`, createError)\n if (value.op !== \"eq\") {\n throw createError(\n `${subject} field predicate '${value.field}' has invalid operator '${String(value.op)}'.`\n )\n }\n if (!isPredicateValue(value.value)) {\n throw createError(`${subject} field predicate '${value.field}' must declare a value.`)\n }\n return\n }\n\n if (value.kind === \"link\") {\n assertNonEmptyString(value.linkId, `${subject} link predicate linkId`, createError)\n if (!linkOperators.has(value.op as LinkPredicateOperator)) {\n throw createError(\n `${subject} link predicate '${value.linkId}' has invalid operator '${String(value.op)}'.`\n )\n }\n return\n }\n\n throw createError(`Unknown ${subject.toLowerCase()} predicate kind '${String(value.kind)}'.`)\n}\n",
6
6
  "import type {\n FieldPredicate,\n LinkPredicate,\n LinkPredicateBuilder,\n Predicate,\n PredicateValue,\n PropertyPredicate,\n PropertyPredicateOperator,\n} from \"./types\"\nimport { isPredicateValue } from \"./validation\"\n\nexport type RuntimePropertyPredicateBuilder<TResult = PropertyPredicate> = {\n eq(value: PredicateValue): TResult\n notEq(value: PredicateValue): TResult\n gt(value: PredicateValue): TResult\n gte(value: PredicateValue): TResult\n lt(value: PredicateValue): TResult\n lte(value: PredicateValue): TResult\n isPresent(): TResult\n isMissing(): TResult\n}\n\nexport function createFieldPredicate(\n field: string,\n value: PredicateValue,\n options: Pick<PropertyPredicateBuilderOptions<unknown>, \"subject\" | \"createError\"> = {}\n): FieldPredicate {\n const subject = options.subject ?? \"Predicate\"\n const createError = options.createError ?? defaultError\n if (!field.trim()) {\n throw createError(`${subject} predicate field must not be empty.`)\n }\n assertSerializablePredicateValue(value, subject, createError)\n\n return { kind: \"field\", field, op: \"eq\", value }\n}\n\nexport type PropertyPredicateBuilderOptions<TResult> = {\n readonly subject?: string\n readonly createError?: (message: string) => Error\n readonly wrap?: (predicate: PropertyPredicate) => TResult\n}\n\nfunction defaultError(message: string): Error {\n return new Error(message)\n}\n\nfunction assertSerializablePredicateValue(\n value: PredicateValue,\n subject: string,\n createError: (message: string) => Error\n): void {\n if (!isPredicateValue(value)) {\n throw createError(`${subject} predicate values must be serializable scalar values.`)\n }\n}\n\nexport function createPropertyPredicate(\n propertyId: string,\n op: PropertyPredicateOperator,\n value?: PredicateValue,\n options: Pick<PropertyPredicateBuilderOptions<unknown>, \"subject\" | \"createError\"> = {}\n): PropertyPredicate {\n const subject = options.subject ?? \"Predicate\"\n const createError = options.createError ?? defaultError\n if (value !== undefined) {\n assertSerializablePredicateValue(value, subject, createError)\n }\n\n return {\n kind: \"property\",\n propertyId,\n op,\n ...(value !== undefined ? { value } : {}),\n }\n}\n\nexport function createPropertyPredicateBuilder<TResult = PropertyPredicate>(\n propertyId: string,\n options: PropertyPredicateBuilderOptions<TResult> = {}\n): RuntimePropertyPredicateBuilder<TResult> {\n const wrap = options.wrap ?? ((predicate: PropertyPredicate) => predicate as TResult)\n const createPredicate = (op: PropertyPredicateOperator, value?: PredicateValue) =>\n wrap(createPropertyPredicate(propertyId, op, value, options))\n\n return {\n eq(value) {\n return createPredicate(\"eq\", value)\n },\n notEq(value) {\n return createPredicate(\"notEq\", value)\n },\n gt(value) {\n return createPredicate(\"gt\", value)\n },\n gte(value) {\n return createPredicate(\"gte\", value)\n },\n lt(value) {\n return createPredicate(\"lt\", value)\n },\n lte(value) {\n return createPredicate(\"lte\", value)\n },\n isPresent() {\n return createPredicate(\"isPresent\")\n },\n isMissing() {\n return createPredicate(\"isMissing\")\n },\n }\n}\n\nexport function createLinkPredicateBuilder(linkId: string): LinkPredicateBuilder {\n return {\n exists(): LinkPredicate {\n return {\n kind: \"link\",\n linkId,\n op: \"exists\",\n }\n },\n isMissing(): LinkPredicate {\n return {\n kind: \"link\",\n linkId,\n op: \"isMissing\",\n }\n },\n }\n}\n\nexport function allPredicates(predicates: readonly Predicate[]): Predicate {\n return {\n kind: \"all\",\n predicates: [...predicates],\n }\n}\n\nexport function anyPredicates(predicates: readonly Predicate[]): Predicate {\n return {\n kind: \"any\",\n predicates: [...predicates],\n }\n}\n\nexport function notPredicate(predicate: Predicate): Predicate {\n return {\n kind: \"not\",\n predicate,\n }\n}\n",
7
7
  "import { compareDecimalValues, isDecimalValue } from \"../ontology/decimal\"\nimport type {\n FieldPredicate,\n LinkPredicate,\n Predicate,\n PredicateValue,\n PropertyPredicate,\n} from \"./types\"\n\nexport interface PredicateEvaluationSubject {\n readonly properties?: Readonly<Record<string, unknown>>\n readonly fields?: Readonly<Record<string, unknown>>\n readonly links?: Readonly<Record<string, boolean>>\n}\n\nexport function evaluatePredicate(\n predicate: Predicate,\n subject: PredicateEvaluationSubject\n): boolean {\n switch (predicate.kind) {\n case \"all\":\n return predicate.predicates.every((child) => evaluatePredicate(child, subject))\n case \"any\":\n return predicate.predicates.some((child) => evaluatePredicate(child, subject))\n case \"not\":\n return !evaluatePredicate(predicate.predicate, subject)\n case \"property\":\n return evaluatePropertyPredicate(predicate, subject.properties ?? {})\n case \"field\":\n return evaluateFieldPredicate(predicate, subject.fields ?? {})\n case \"link\":\n return evaluateLinkPredicate(predicate, subject.links ?? {})\n }\n}\n\nfunction evaluateFieldPredicate(\n predicate: FieldPredicate,\n fields: Readonly<Record<string, unknown>>\n): boolean {\n return predicateValueEquals(fields[predicate.field], predicate.value)\n}\n\nfunction evaluatePropertyPredicate(\n predicate: PropertyPredicate,\n properties: Readonly<Record<string, unknown>>\n): boolean {\n const value = properties[predicate.propertyId]\n const isPresent = value !== undefined && value !== null\n\n switch (predicate.op) {\n case \"eq\":\n return isPresent && predicateValueEquals(value, predicate.value)\n case \"notEq\":\n return !isPresent || !predicateValueEquals(value, predicate.value)\n case \"gt\":\n return compareOrderedValues(value, predicate.value, (comparison) => comparison > 0)\n case \"gte\":\n return compareOrderedValues(value, predicate.value, (comparison) => comparison >= 0)\n case \"lt\":\n return compareOrderedValues(value, predicate.value, (comparison) => comparison < 0)\n case \"lte\":\n return compareOrderedValues(value, predicate.value, (comparison) => comparison <= 0)\n case \"isPresent\":\n return isPresent\n case \"isMissing\":\n return !isPresent\n }\n}\n\nfunction evaluateLinkPredicate(\n predicate: LinkPredicate,\n links: Readonly<Record<string, boolean>>\n): boolean {\n const exists = links[predicate.linkId] === true\n switch (predicate.op) {\n case \"exists\":\n return exists\n case \"isMissing\":\n return !exists\n }\n}\n\nfunction predicateValueEquals(left: unknown, right: PredicateValue | undefined): boolean {\n return isPredicateComparableValue(left) && right !== undefined && Object.is(left, right)\n}\n\nfunction isPredicateComparableValue(value: unknown): value is PredicateValue {\n return (\n value === null || typeof value === \"string\" || typeof value === \"boolean\" || isNumber(value)\n )\n}\n\nfunction isNumber(value: unknown): value is number {\n return typeof value === \"number\" && Number.isFinite(value)\n}\n\nfunction compareOrderedValues(\n left: unknown,\n right: unknown,\n matches: (comparison: number) => boolean\n): boolean {\n if (isNumber(left) && isNumber(right)) return matches(left - right)\n if (isDecimalValue(left) && isDecimalValue(right)) {\n return matches(compareDecimalValues(left, right))\n }\n return false\n}\n",
8
- "import type { EventSelectorSpec } from \"../events/selectors\"\nimport { eventSelectorSpec } from \"../events/selectors\"\nimport {\n allPredicates,\n anyPredicates,\n assertPredicateShape,\n createFieldPredicate,\n createPropertyPredicateBuilder,\n notPredicate,\n type Predicate,\n type RuntimePropertyPredicateBuilder,\n} from \"../predicates\"\nimport { createCronMatcher } from \"./cron\"\nimport { ScheduleValidationError } from \"./errors\"\nimport type {\n CronScheduleDefinition,\n EventScheduleCondition,\n EventScheduleConditionScope,\n EventScheduleDefinition,\n EventScheduleScopedPredicate,\n ScheduleBuilder,\n} from \"./types\"\n\ntype RuntimeEventSchedulePropertyPredicateBuilder =\n RuntimePropertyPredicateBuilder<EventScheduleScopedPredicate>\n\ntype RuntimeEventSchedulePredicateSubject = {\n p: Record<string, RuntimeEventSchedulePropertyPredicateBuilder>\n all(...predicates: EventScheduleCondition[]): EventScheduleCondition\n any(...predicates: EventScheduleCondition[]): EventScheduleCondition\n not(predicate: EventScheduleCondition): EventScheduleCondition\n}\n\ntype RuntimeEventSchedulePredicateContext = {\n object?: RuntimeEventSchedulePredicateSubject\n link?: RuntimeEventSchedulePredicateSubject\n target?: RuntimeEventScheduleTargetPredicateSubject\n}\n\ntype RuntimeEventScheduleTargetPredicateSubject = {\n is(objectType: { readonly id: string }): EventScheduleCondition\n id: { eq(value: string): EventScheduleCondition }\n}\n\nfunction assertNonEmpty(value: string, field: string): void {\n if (!value.trim()) {\n throw new ScheduleValidationError(`Schedule ${field} must not be empty.`)\n }\n}\n\nfunction validateTimezone(timezone: string): void {\n try {\n Intl.DateTimeFormat(undefined, { timeZone: timezone })\n } catch {\n throw new ScheduleValidationError(`Invalid timezone '${timezone}'.`)\n }\n}\n\nfunction createCondition(\n scope: EventScheduleConditionScope,\n predicate: Predicate\n): EventScheduleCondition {\n return {\n kind: \"becomesTrue\",\n scope,\n predicate,\n }\n}\n\nfunction createEventSchedulePropertyPredicateBuilder(\n scope: EventScheduleConditionScope,\n propertyId: string\n): RuntimeEventSchedulePropertyPredicateBuilder {\n return createPropertyPredicateBuilder(propertyId, {\n subject: \"Schedule\",\n createError: (message) => new ScheduleValidationError(message),\n wrap: (predicate) => createCondition(scope, predicate),\n })\n}\n\nfunction createPredicateSubject(\n scope: EventScheduleConditionScope\n): RuntimeEventSchedulePredicateSubject {\n const properties = new Proxy<Record<string, RuntimeEventSchedulePropertyPredicateBuilder>>(\n {},\n {\n get(target, property) {\n if (typeof property !== \"string\") return undefined\n target[property] ??= createEventSchedulePropertyPredicateBuilder(scope, property)\n return target[property]\n },\n }\n )\n\n return {\n p: properties,\n all(...conditions) {\n return createCondition(\n scope,\n allPredicates(conditions.map((condition) => condition.predicate))\n )\n },\n any(...conditions) {\n return createCondition(\n scope,\n anyPredicates(conditions.map((condition) => condition.predicate))\n )\n },\n not(condition) {\n return createCondition(scope, notPredicate(condition.predicate))\n },\n }\n}\n\nfunction createTargetPredicateSubject(): RuntimeEventScheduleTargetPredicateSubject {\n const condition = (field: string, value: string) =>\n createCondition(\n \"event.link\",\n createFieldPredicate(field, value, {\n subject: \"Schedule\",\n createError: (message) => new ScheduleValidationError(message),\n })\n )\n\n return {\n is(objectType) {\n assertNonEmpty(objectType.id, \"target object type id\")\n return condition(\"target.objectTypeId\", objectType.id)\n },\n id: {\n eq(value) {\n assertNonEmpty(value, \"target object id\")\n return condition(\"target.primaryId\", value)\n },\n },\n }\n}\n\nfunction createPredicateContext(selector: EventSelectorSpec): RuntimeEventSchedulePredicateContext {\n if (selector.topic === \"objects\") {\n return { object: createPredicateSubject(\"event.object\") }\n }\n\n if (selector.topic === \"links\") {\n return {\n link: createPredicateSubject(\"event.link\"),\n target: createTargetPredicateSubject(),\n }\n }\n\n return {}\n}\n\nfunction assertEventSource(source: EventSelectorSpec): void {\n if (!source.types || source.types.length === 0) {\n throw new ScheduleValidationError(\n \"Schedule event source must select an event operation, e.g. .created(), .updated(), or .succeeded().\"\n )\n }\n\n switch (source.topic) {\n case \"objects\":\n assertNonEmpty(source.objectTypeId ?? \"\", \"event source objectTypeId\")\n return\n case \"links\":\n assertNonEmpty(source.objectTypeId ?? \"\", \"event source objectTypeId\")\n assertNonEmpty(source.linkId ?? \"\", \"event source linkId\")\n return\n case \"rules\":\n assertNonEmpty(source.ruleId ?? \"\", \"event source ruleId\")\n return\n case \"datasets\":\n assertNonEmpty(source.datasetId ?? \"\", \"event source datasetId\")\n return\n case \"syncs\":\n assertNonEmpty(source.syncId ?? \"\", \"event source syncId\")\n return\n case \"pipelines\":\n assertNonEmpty(source.pipelineId ?? \"\", \"event source pipelineId\")\n return\n default:\n throw new ScheduleValidationError(\n \"Schedule event source must select object, link, rule, dataset, sync, or pipeline events.\"\n )\n }\n}\n\n/** Define an inert, reusable policy describing when work should run. */\nexport function defineSchedule<const TId extends string>(id: TId): ScheduleBuilder<TId>\nexport function defineSchedule(id: string): ScheduleBuilder<string> {\n assertNonEmpty(id, \"id\")\n\n return {\n cron(expression, options): CronScheduleDefinition {\n assertNonEmpty(expression, \"cron expression\")\n createCronMatcher(expression)\n\n if (options?.timezone !== undefined) validateTimezone(options.timezone)\n\n return {\n kind: \"schedule\",\n id,\n trigger: {\n type: \"cron\",\n expression,\n ...(options?.timezone !== undefined ? { timezone: options.timezone } : {}),\n },\n }\n },\n on(selector: EventSelectorSpec): unknown {\n const source = eventSelectorSpec(selector)\n assertEventSource(source)\n\n const base = {\n kind: \"schedule\" as const,\n id,\n trigger: {\n type: \"event\" as const,\n source,\n },\n }\n\n if (source.topic !== \"objects\" && source.topic !== \"links\") {\n return base satisfies EventScheduleDefinition\n }\n\n Object.defineProperty(base, \"where\", {\n enumerable: false,\n value(callback: (event: RuntimeEventSchedulePredicateContext) => EventScheduleCondition) {\n const condition = callback(createPredicateContext(source))\n if (!condition || condition.kind !== \"becomesTrue\") {\n throw new ScheduleValidationError(\n \"Schedule condition must be built from the event DSL.\"\n )\n }\n assertPredicateShape(condition.predicate, {\n subject: \"Schedule\",\n createError: (message) => new ScheduleValidationError(message),\n })\n\n return {\n ...base,\n trigger: {\n ...base.trigger,\n condition,\n },\n } satisfies EventScheduleDefinition\n },\n })\n\n return base\n },\n } as ScheduleBuilder<string>\n}\n",
9
- "import { buildEventSelectorPredicate, type EventSelectorSpec } from \"../events/selectors\"\nimport type { DomainEvent, PropertyChange, PropertyChangeMap } from \"../events/types\"\nimport { evaluatePredicate } from \"../predicates\"\nimport type { EventScheduleConditionScope, EventScheduleTriggerDefinition } from \"./types\"\n\nexport type RuntimeEventScheduleContext = Readonly<Record<string, unknown>>\n\nexport interface RuntimeEventScheduleDefinition {\n readonly kind: \"schedule\"\n readonly id: string\n readonly trigger: EventScheduleTriggerDefinition<EventSelectorSpec<unknown>>\n}\n\nexport interface EventScheduleEvaluationResult<TEvent = unknown> {\n readonly schedule: RuntimeEventScheduleDefinition\n readonly event: TEvent\n}\n\nexport function eventScheduleSubscribedEventTypes(\n schedule: RuntimeEventScheduleDefinition\n): readonly DomainEvent[\"type\"][] {\n return schedule.trigger.source.types ?? []\n}\n\nexport function evaluateEventSchedule(\n schedule: RuntimeEventScheduleDefinition,\n event: DomainEvent\n): EventScheduleEvaluationResult | null {\n if (!buildEventSelectorPredicate(schedule.trigger.source)(event)) {\n return null\n }\n\n const eventContext = buildEventScheduleContext(event)\n if (!eventContext) {\n return null\n }\n\n const condition = schedule.trigger.condition\n if (!condition) {\n return {\n schedule,\n event: eventContext,\n }\n }\n\n const afterProperties = propertiesForScope(event, condition.scope)\n const fields = fieldsForEvent(event)\n if (!evaluatePredicate(condition.predicate, { properties: afterProperties, fields })) {\n return null\n }\n\n if (isUpdateEvent(event)) {\n const beforeProperties = previousProperties(afterProperties, event.payload.propertyChanges)\n if (evaluatePredicate(condition.predicate, { properties: beforeProperties, fields })) {\n return null\n }\n }\n\n return {\n schedule,\n event: eventContext,\n }\n}\n\nexport function buildEventScheduleContext(event: DomainEvent): RuntimeEventScheduleContext | null {\n switch (event.type) {\n case \"object.created\":\n case \"object.updated\":\n case \"object.deleted\":\n return {\n object: {\n objectTypeId: event.payload.objectTypeId,\n primaryId: event.payload.primaryId,\n p: currentProperties(event),\n },\n }\n case \"link.created\":\n case \"link.updated\":\n case \"link.deleted\":\n return {\n source: {\n objectTypeId: event.payload.sourceTypeId,\n primaryId: event.payload.sourceId,\n },\n target: {\n objectTypeId: event.payload.targetTypeId,\n primaryId: event.payload.targetId,\n },\n link: {\n id: event.payload.linkId,\n p: currentProperties(event),\n },\n }\n case \"rule.triggered\":\n case \"rule.resolved\":\n return {\n ruleId: event.payload.ruleId,\n subject: {\n objectTypeId: event.payload.subject.objectTypeId,\n primaryId: event.payload.subject.primaryId,\n },\n }\n case \"dataset.version.committed\":\n return { ...event.payload }\n case \"sync.run.finished\":\n return { ...event.payload }\n case \"pipeline.run.finished\":\n return { ...event.payload }\n default:\n return null\n }\n}\n\nfunction fieldsForEvent(event: DomainEvent): Readonly<Record<string, unknown>> {\n if (event.topic !== \"links\") {\n return {}\n }\n\n return {\n \"target.objectTypeId\": event.payload.targetTypeId,\n \"target.primaryId\": event.payload.targetId,\n }\n}\n\nfunction propertiesForScope(\n event: DomainEvent,\n scope: EventScheduleConditionScope\n): Readonly<Record<string, unknown>> {\n if (scope === \"event.object\" && event.topic !== \"objects\") {\n return {}\n }\n\n if (scope === \"event.link\" && event.topic !== \"links\") {\n return {}\n }\n\n return currentProperties(event)\n}\n\nfunction currentProperties(event: DomainEvent): Readonly<Record<string, unknown>> {\n const payload = event.payload\n if (payload && typeof payload === \"object\" && \"properties\" in payload) {\n return { ...((payload as { properties?: Record<string, unknown> }).properties ?? {}) }\n }\n\n if (payload && typeof payload === \"object\" && \"propertyChanges\" in payload) {\n return propertiesFromChanges(\n (payload as { propertyChanges: PropertyChangeMap }).propertyChanges,\n \"after\"\n )\n }\n\n return {}\n}\n\nfunction previousProperties(\n afterProperties: Readonly<Record<string, unknown>>,\n changes: PropertyChangeMap\n): Readonly<Record<string, unknown>> {\n const before: Record<string, unknown> = { ...afterProperties }\n\n for (const [propertyId, change] of Object.entries(changes)) {\n if (change.operation === \"created\") {\n delete before[propertyId]\n continue\n }\n before[propertyId] = change.before\n }\n\n return before\n}\n\nfunction propertiesFromChanges(\n changes: PropertyChangeMap,\n side: \"before\" | \"after\"\n): Readonly<Record<string, unknown>> {\n const properties: Record<string, unknown> = {}\n\n for (const [propertyId, change] of Object.entries(changes)) {\n const value = propertyChangeValue(change, side)\n if (value !== undefined) {\n properties[propertyId] = value\n }\n }\n\n return properties\n}\n\nfunction propertyChangeValue(change: PropertyChange, side: \"before\" | \"after\"): unknown {\n if (side === \"before\") {\n return change.operation === \"created\" ? undefined : change.before\n }\n return change.after\n}\n\nfunction isUpdateEvent(\n event: DomainEvent\n): event is Extract<DomainEvent, { type: \"object.updated\" | \"link.updated\" }> {\n return event.type === \"object.updated\" || event.type === \"link.updated\"\n}\n",
8
+ "import type { EventSelectorSpec } from \"../events/selectors\"\nimport { eventSelectorSpec } from \"../events/selectors\"\nimport {\n allPredicates,\n anyPredicates,\n assertPredicateShape,\n createFieldPredicate,\n createPropertyPredicateBuilder,\n notPredicate,\n type Predicate,\n type RuntimePropertyPredicateBuilder,\n} from \"../predicates\"\nimport { createCronMatcher } from \"./cron\"\nimport { ScheduleValidationError } from \"./errors\"\nimport type {\n CronScheduleDefinition,\n EventScheduleCondition,\n EventScheduleConditionScope,\n EventScheduleDefinition,\n EventScheduleScopedPredicate,\n ScheduleBuilder,\n} from \"./types\"\n\ntype RuntimeEventSchedulePropertyPredicateBuilder =\n RuntimePropertyPredicateBuilder<EventScheduleScopedPredicate>\n\ntype RuntimeEventSchedulePredicateSubject = {\n p: Record<string, RuntimeEventSchedulePropertyPredicateBuilder>\n all(...predicates: EventScheduleCondition[]): EventScheduleCondition\n any(...predicates: EventScheduleCondition[]): EventScheduleCondition\n not(predicate: EventScheduleCondition): EventScheduleCondition\n}\n\ntype RuntimeEventSchedulePredicateContext = {\n object?: RuntimeEventSchedulePredicateSubject\n link?: RuntimeEventSchedulePredicateSubject\n target?: RuntimeEventScheduleTargetPredicateSubject\n}\n\ntype RuntimeEventScheduleTargetPredicateSubject = {\n is(objectType: { readonly id: string }): EventScheduleCondition\n id: { eq(value: string): EventScheduleCondition }\n}\n\nfunction assertNonEmpty(value: string, field: string): void {\n if (!value.trim()) {\n throw new ScheduleValidationError(`Schedule ${field} must not be empty.`)\n }\n}\n\nfunction validateTimezone(timezone: string): void {\n try {\n Intl.DateTimeFormat(undefined, { timeZone: timezone })\n } catch {\n throw new ScheduleValidationError(`Invalid timezone '${timezone}'.`)\n }\n}\n\nfunction createCondition(\n scope: EventScheduleConditionScope,\n predicate: Predicate\n): EventScheduleCondition {\n return {\n kind: \"becomesTrue\",\n scope,\n predicate,\n }\n}\n\nfunction createEventSchedulePropertyPredicateBuilder(\n scope: EventScheduleConditionScope,\n propertyId: string\n): RuntimeEventSchedulePropertyPredicateBuilder {\n return createPropertyPredicateBuilder(propertyId, {\n subject: \"Schedule\",\n createError: (message) => new ScheduleValidationError(message),\n wrap: (predicate) => createCondition(scope, predicate),\n })\n}\n\nfunction createPredicateSubject(\n scope: EventScheduleConditionScope\n): RuntimeEventSchedulePredicateSubject {\n const properties = new Proxy<Record<string, RuntimeEventSchedulePropertyPredicateBuilder>>(\n {},\n {\n get(target, property) {\n if (typeof property !== \"string\") return undefined\n target[property] ??= createEventSchedulePropertyPredicateBuilder(scope, property)\n return target[property]\n },\n }\n )\n\n return {\n p: properties,\n all(...conditions) {\n return createCondition(\n scope,\n allPredicates(conditions.map((condition) => condition.predicate))\n )\n },\n any(...conditions) {\n return createCondition(\n scope,\n anyPredicates(conditions.map((condition) => condition.predicate))\n )\n },\n not(condition) {\n return createCondition(scope, notPredicate(condition.predicate))\n },\n }\n}\n\nfunction createTargetPredicateSubject(): RuntimeEventScheduleTargetPredicateSubject {\n const condition = (field: string, value: string) =>\n createCondition(\n \"event.link\",\n createFieldPredicate(field, value, {\n subject: \"Schedule\",\n createError: (message) => new ScheduleValidationError(message),\n })\n )\n\n return {\n is(objectType) {\n assertNonEmpty(objectType.id, \"target object type id\")\n return condition(\"target.objectTypeId\", objectType.id)\n },\n id: {\n eq(value) {\n assertNonEmpty(value, \"target object id\")\n return condition(\"target.primaryId\", value)\n },\n },\n }\n}\n\nfunction createPredicateContext(selector: EventSelectorSpec): RuntimeEventSchedulePredicateContext {\n if (selector.topic === \"objects\") {\n return { object: createPredicateSubject(\"event.object\") }\n }\n\n if (selector.topic === \"links\") {\n return {\n link: createPredicateSubject(\"event.link\"),\n target: createTargetPredicateSubject(),\n }\n }\n\n return {}\n}\n\nfunction assertEventSource(source: EventSelectorSpec): void {\n if (!source.types || source.types.length === 0) {\n throw new ScheduleValidationError(\n \"Schedule event source must select an event operation, e.g. .created(), .updated(), or .succeeded().\"\n )\n }\n\n switch (source.topic) {\n case \"objects\":\n assertNonEmpty(source.objectTypeId ?? \"\", \"event source objectTypeId\")\n return\n case \"links\":\n assertNonEmpty(source.objectTypeId ?? \"\", \"event source objectTypeId\")\n assertNonEmpty(source.linkId ?? \"\", \"event source linkId\")\n return\n case \"rules\":\n assertNonEmpty(source.ruleId ?? \"\", \"event source ruleId\")\n return\n case \"datasets\":\n assertNonEmpty(source.datasetId ?? \"\", \"event source datasetId\")\n return\n case \"syncs\":\n assertNonEmpty(source.syncId ?? \"\", \"event source syncId\")\n return\n case \"pipelines\":\n assertNonEmpty(source.pipelineId ?? \"\", \"event source pipelineId\")\n return\n case \"users\":\n return\n default:\n throw new ScheduleValidationError(\n \"Schedule event source must select object, link, rule, dataset, sync, pipeline, or member events.\"\n )\n }\n}\n\n/** Define an inert, reusable policy describing when work should run. */\nexport function defineSchedule<const TId extends string>(id: TId): ScheduleBuilder<TId>\nexport function defineSchedule(id: string): ScheduleBuilder<string> {\n assertNonEmpty(id, \"id\")\n\n return {\n cron(expression, options): CronScheduleDefinition {\n assertNonEmpty(expression, \"cron expression\")\n createCronMatcher(expression)\n\n if (options?.timezone !== undefined) validateTimezone(options.timezone)\n\n return {\n kind: \"schedule\",\n id,\n trigger: {\n type: \"cron\",\n expression,\n ...(options?.timezone !== undefined ? { timezone: options.timezone } : {}),\n },\n }\n },\n on(selector: EventSelectorSpec): unknown {\n const source = eventSelectorSpec(selector)\n assertEventSource(source)\n\n const base = {\n kind: \"schedule\" as const,\n id,\n trigger: {\n type: \"event\" as const,\n source,\n },\n }\n\n if (source.topic !== \"objects\" && source.topic !== \"links\") {\n return base satisfies EventScheduleDefinition\n }\n\n Object.defineProperty(base, \"where\", {\n enumerable: false,\n value(callback: (event: RuntimeEventSchedulePredicateContext) => EventScheduleCondition) {\n const condition = callback(createPredicateContext(source))\n if (!condition || condition.kind !== \"becomesTrue\") {\n throw new ScheduleValidationError(\n \"Schedule condition must be built from the event DSL.\"\n )\n }\n assertPredicateShape(condition.predicate, {\n subject: \"Schedule\",\n createError: (message) => new ScheduleValidationError(message),\n })\n\n return {\n ...base,\n trigger: {\n ...base.trigger,\n condition,\n },\n } satisfies EventScheduleDefinition\n },\n })\n\n return base\n },\n } as ScheduleBuilder<string>\n}\n",
9
+ "import { buildEventSelectorPredicate, type EventSelectorSpec } from \"../events/selectors\"\nimport type { DomainEvent, PropertyChange, PropertyChangeMap } from \"../events/types\"\nimport { evaluatePredicate } from \"../predicates\"\nimport type { EventScheduleConditionScope, EventScheduleTriggerDefinition } from \"./types\"\n\nexport type RuntimeEventScheduleContext = Readonly<Record<string, unknown>>\n\nexport interface RuntimeEventScheduleDefinition {\n readonly kind: \"schedule\"\n readonly id: string\n readonly trigger: EventScheduleTriggerDefinition<EventSelectorSpec<unknown>>\n}\n\nexport interface EventScheduleEvaluationResult<TEvent = unknown> {\n readonly schedule: RuntimeEventScheduleDefinition\n readonly event: TEvent\n}\n\nexport function eventScheduleSubscribedEventTypes(\n schedule: RuntimeEventScheduleDefinition\n): readonly DomainEvent[\"type\"][] {\n return schedule.trigger.source.types ?? []\n}\n\nexport function evaluateEventSchedule(\n schedule: RuntimeEventScheduleDefinition,\n event: DomainEvent\n): EventScheduleEvaluationResult | null {\n if (!buildEventSelectorPredicate(schedule.trigger.source)(event)) {\n return null\n }\n\n const eventContext = buildEventScheduleContext(event)\n if (!eventContext) {\n return null\n }\n\n const condition = schedule.trigger.condition\n if (!condition) {\n return {\n schedule,\n event: eventContext,\n }\n }\n\n const afterProperties = propertiesForScope(event, condition.scope)\n const fields = fieldsForEvent(event)\n if (!evaluatePredicate(condition.predicate, { properties: afterProperties, fields })) {\n return null\n }\n\n if (isUpdateEvent(event)) {\n const beforeProperties = previousProperties(afterProperties, event.payload.propertyChanges)\n if (evaluatePredicate(condition.predicate, { properties: beforeProperties, fields })) {\n return null\n }\n }\n\n return {\n schedule,\n event: eventContext,\n }\n}\n\nexport function buildEventScheduleContext(event: DomainEvent): RuntimeEventScheduleContext | null {\n switch (event.type) {\n case \"object.created\":\n case \"object.updated\":\n case \"object.deleted\":\n return {\n object: {\n objectTypeId: event.payload.objectTypeId,\n primaryId: event.payload.primaryId,\n p: currentProperties(event),\n },\n }\n case \"link.created\":\n case \"link.updated\":\n case \"link.deleted\":\n return {\n source: {\n objectTypeId: event.payload.sourceTypeId,\n primaryId: event.payload.sourceId,\n },\n target: {\n objectTypeId: event.payload.targetTypeId,\n primaryId: event.payload.targetId,\n },\n link: {\n id: event.payload.linkId,\n p: currentProperties(event),\n },\n }\n case \"rule.triggered\":\n case \"rule.resolved\":\n return {\n ruleId: event.payload.ruleId,\n subject: {\n objectTypeId: event.payload.subject.objectTypeId,\n primaryId: event.payload.subject.primaryId,\n },\n }\n case \"dataset.version.committed\":\n return { ...event.payload }\n case \"sync.run.finished\":\n return { ...event.payload }\n case \"pipeline.run.finished\":\n return { ...event.payload }\n case \"user.joined\":\n case \"user.suspended\":\n case \"user.reactivated\":\n case \"user.invited\":\n case \"user.profile.updated\":\n return { ...event.payload }\n default:\n return null\n }\n}\n\nfunction fieldsForEvent(event: DomainEvent): Readonly<Record<string, unknown>> {\n if (event.topic !== \"links\") {\n return {}\n }\n\n return {\n \"target.objectTypeId\": event.payload.targetTypeId,\n \"target.primaryId\": event.payload.targetId,\n }\n}\n\nfunction propertiesForScope(\n event: DomainEvent,\n scope: EventScheduleConditionScope\n): Readonly<Record<string, unknown>> {\n if (scope === \"event.object\" && event.topic !== \"objects\") {\n return {}\n }\n\n if (scope === \"event.link\" && event.topic !== \"links\") {\n return {}\n }\n\n return currentProperties(event)\n}\n\nfunction currentProperties(event: DomainEvent): Readonly<Record<string, unknown>> {\n const payload = event.payload\n if (payload && typeof payload === \"object\" && \"properties\" in payload) {\n return { ...((payload as { properties?: Record<string, unknown> }).properties ?? {}) }\n }\n\n if (payload && typeof payload === \"object\" && \"propertyChanges\" in payload) {\n return propertiesFromChanges(\n (payload as { propertyChanges: PropertyChangeMap }).propertyChanges,\n \"after\"\n )\n }\n\n return {}\n}\n\nfunction previousProperties(\n afterProperties: Readonly<Record<string, unknown>>,\n changes: PropertyChangeMap\n): Readonly<Record<string, unknown>> {\n const before: Record<string, unknown> = { ...afterProperties }\n\n for (const [propertyId, change] of Object.entries(changes)) {\n if (change.operation === \"created\") {\n delete before[propertyId]\n continue\n }\n before[propertyId] = change.before\n }\n\n return before\n}\n\nfunction propertiesFromChanges(\n changes: PropertyChangeMap,\n side: \"before\" | \"after\"\n): Readonly<Record<string, unknown>> {\n const properties: Record<string, unknown> = {}\n\n for (const [propertyId, change] of Object.entries(changes)) {\n const value = propertyChangeValue(change, side)\n if (value !== undefined) {\n properties[propertyId] = value\n }\n }\n\n return properties\n}\n\nfunction propertyChangeValue(change: PropertyChange, side: \"before\" | \"after\"): unknown {\n if (side === \"before\") {\n return change.operation === \"created\" ? undefined : change.before\n }\n return change.after\n}\n\nfunction isUpdateEvent(\n event: DomainEvent\n): event is Extract<DomainEvent, { type: \"object.updated\" | \"link.updated\" }> {\n return event.type === \"object.updated\" || event.type === \"link.updated\"\n}\n",
10
10
  "import type {\n EventSelectorSpec,\n InferEventSelectorContext,\n InferEventSelectorEvent,\n LinkEventSelectorContext,\n ObjectEventSelectorContext,\n} from \"../events/selectors\"\nimport type { LinkToken, ObjectTypeWithTokens, Property, PropertyToken } from \"../ontology\"\nimport type {\n FieldPredicate,\n Predicate,\n PropertyPredicate,\n PropertyPredicateBuilder,\n} from \"../predicates\"\n\ndeclare const scheduleEventType: unique symbol\n\nexport interface CronScheduleTriggerDefinition {\n readonly type: \"cron\"\n readonly expression: string\n readonly timezone?: string\n}\n\nexport interface EventScheduleTriggerDefinition<\n TSelector extends EventSelectorSpec<unknown> = EventSelectorSpec,\n> {\n readonly type: \"event\"\n readonly source: TSelector\n readonly condition?: EventScheduleCondition\n}\n\nexport type ScheduleTriggerDefinition =\n | CronScheduleTriggerDefinition\n | EventScheduleTriggerDefinition\n\n/** Internal reference stored by definitions that run from a named schedule. */\nexport interface ScheduleReference {\n readonly type: \"schedule\"\n readonly scheduleId: string\n}\n\nexport function isScheduleReference(value: unknown): value is ScheduleReference {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"type\" in value &&\n value.type === \"schedule\" &&\n \"scheduleId\" in value &&\n typeof value.scheduleId === \"string\" &&\n value.scheduleId.trim().length > 0\n )\n}\n\n/** Inert, reusable definition of when work should run. */\nexport interface ScheduleDefinition<TId extends string = string, TEvent = unknown> {\n readonly [scheduleEventType]?: TEvent\n readonly kind: \"schedule\"\n readonly id: TId\n readonly trigger: ScheduleTriggerDefinition\n}\n\nexport type CronScheduleDefinition<TId extends string = string> = ScheduleDefinition<TId, never> & {\n readonly trigger: CronScheduleTriggerDefinition\n}\n\nexport type EventScheduleDefinition<\n TId extends string = string,\n TSelector extends EventSelectorSpec<unknown> = EventSelectorSpec,\n> = ScheduleDefinition<TId, InferEventSelectorEvent<TSelector>> & {\n readonly trigger: EventScheduleTriggerDefinition<TSelector>\n}\n\nexport type ScheduleDefinitionForEvent<TEvent = unknown> = ScheduleDefinition<string, TEvent> & {\n readonly trigger: EventScheduleTriggerDefinition\n}\n\nexport type InferScheduleEvent<TSchedule> = TSchedule extends {\n readonly [scheduleEventType]?: infer TEvent\n}\n ? NonNullable<TEvent>\n : never\n\nexport interface CronScheduleBuilder<TId extends string = string> {\n cron(expression: string, options?: { timezone?: string }): CronScheduleDefinition<TId>\n}\n\nexport interface EventScheduleBuilder<TId extends string = string> {\n on<const TSelector extends EventSelectorSpec<unknown>>(\n selector: TSelector\n ): EventScheduleSourceBuilder<TId, TSelector>\n}\n\nexport interface ScheduleBuilder<TId extends string = string>\n extends CronScheduleBuilder<TId>,\n EventScheduleBuilder<TId> {}\n\nexport type EventScheduleSourceBuilder<\n TId extends string,\n TSelector extends EventSelectorSpec<unknown>,\n> =\n InferEventSelectorContext<TSelector> extends ObjectEventSelectorContext | LinkEventSelectorContext\n ? EventScheduleWhereBuilder<TId, TSelector>\n : EventScheduleDefinition<TId, TSelector>\n\nexport type EventScheduleWhereBuilder<\n TId extends string,\n TSelector extends EventSelectorSpec<unknown>,\n> = EventScheduleDefinition<TId, TSelector> & {\n where(\n predicate: (\n event: EventSchedulePredicateContext<InferEventSelectorContext<TSelector>>\n ) => EventScheduleCondition\n ): EventScheduleDefinition<TId, TSelector>\n}\n\nexport type EventScheduleConditionScope = \"event.object\" | \"event.link\"\n\nexport interface EventScheduleCondition {\n readonly kind: \"becomesTrue\"\n readonly scope: EventScheduleConditionScope\n readonly predicate: Predicate\n}\n\nexport type EventScheduleScopedPredicate = EventScheduleCondition\n\nexport type EventSchedulePredicateContext<TContext> =\n TContext extends ObjectEventSelectorContext<infer TObjectType>\n ? { readonly object: EventScheduleObjectPredicateSubject<TObjectType> }\n : TContext extends LinkEventSelectorContext<infer TObjectType, infer TLink>\n ? {\n readonly link: EventScheduleLinkPredicateSubject<TObjectType, TLink>\n readonly target: EventScheduleTargetPredicateSubject<TLink>\n }\n : never\n\nexport type EventScheduleObjectPredicateSubject<TObjectType extends ObjectTypeWithTokens> =\n EventSchedulePredicateSubject<\"event.object\", TObjectType[\"p\"]>\n\nexport type EventScheduleLinkPredicateSubject<\n _TObjectType extends ObjectTypeWithTokens,\n TLink extends LinkToken,\n> = EventSchedulePredicateSubject<\"event.link\", LinkPropertyTokens<TLink>>\n\nexport type EventScheduleTargetPredicateSubject<TLink extends LinkToken> = {\n is(\n objectType: ObjectTypeWithTokens & { readonly id: AllowedTargetTypeId<TLink> }\n ): EventScheduleConditionFor<\"event.link\", FieldPredicate>\n readonly id: {\n eq(value: string): EventScheduleConditionFor<\"event.link\", FieldPredicate>\n }\n}\n\nexport type EventSchedulePredicateSubject<\n TScope extends EventScheduleConditionScope,\n TTokens extends Record<string, PropertyToken>,\n> = {\n readonly p: {\n readonly [TPropertyId in keyof TTokens]: TTokens[TPropertyId] extends PropertyToken<\n string,\n string,\n infer TProperty\n >\n ? EventSchedulePropertyPredicateBuilder<TScope, TProperty>\n : never\n }\n all(...predicates: EventScheduleCondition[]): EventScheduleCondition\n any(...predicates: EventScheduleCondition[]): EventScheduleCondition\n not(predicate: EventScheduleCondition): EventScheduleCondition\n}\n\nexport type EventSchedulePropertyPredicateBuilder<\n TScope extends EventScheduleConditionScope = EventScheduleConditionScope,\n TProperty extends Property = Property,\n> = PropertyPredicateBuilder<TProperty, EventScheduleConditionFor<TScope>>\n\nexport type EventScheduleConditionFor<\n TScope extends EventScheduleConditionScope,\n TPredicate extends Predicate = PropertyPredicate,\n> = EventScheduleCondition & {\n readonly scope: TScope\n readonly predicate: TPredicate\n}\n\ntype LinkPropertyTokens<TLink extends LinkToken> =\n NonNullable<TLink[\"link\"][\"properties\"]> extends readonly Property[]\n ? {\n readonly [P in NonNullable<TLink[\"link\"][\"properties\"]>[number] as P[\"id\"]]: PropertyToken<\n TLink[\"objectTypeId\"],\n P[\"id\"],\n P\n >\n }\n : Record<never, never>\n\ntype ResolveTargetTypeId<TTarget> = TTarget extends readonly string[]\n ? TTarget[number]\n : TTarget extends string\n ? TTarget\n : string\n\ntype AllowedTargetTypeId<TLink extends LinkToken> =\n \"*\" extends ResolveTargetTypeId<TLink[\"targetObjectTypeId\"]>\n ? string\n : ResolveTargetTypeId<TLink[\"targetObjectTypeId\"]>\n",
11
- "import type { EventSelectorSpec } from \"../events/selectors\"\nimport type { ObjectLink, ObjectType, OntologyRegistry } from \"../ontology\"\nimport { assertPredicateShape, type Predicate } from \"../predicates\"\nimport { createCronMatcher } from \"./cron\"\nimport { ScheduleValidationError } from \"./errors\"\nimport type { EventScheduleCondition, EventScheduleDefinition, ScheduleDefinition } from \"./types\"\n\nconst objectEventTypes = new Set([\"object.created\", \"object.updated\", \"object.deleted\"])\nconst linkEventTypes = new Set([\"link.created\", \"link.updated\", \"link.deleted\"])\nconst ruleEventTypes = new Set([\"rule.triggered\", \"rule.resolved\"])\nconst datasetEventTypes = new Set([\"dataset.version.committed\"])\nconst syncEventTypes = new Set([\"sync.run.finished\"])\nconst pipelineEventTypes = new Set([\"pipeline.run.finished\"])\nconst runStatuses = new Set([\"succeeded\", \"failed\", \"cancelled\"])\nconst linkIdentityFields = new Set([\"target.objectTypeId\", \"target.primaryId\"])\n\nexport interface ValidateSchedulesAtStartupOptions {\n readonly registeredRuleIds?: ReadonlySet<string>\n readonly registeredDatasetIds?: ReadonlySet<string>\n readonly registeredSyncIds?: ReadonlySet<string>\n readonly registeredPipelineIds?: ReadonlySet<string>\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction assertNonEmptyString(\n value: unknown,\n field: string,\n createError: (message: string) => Error\n): asserts value is string {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw createError(`${field} must not be empty.`)\n }\n}\n\nexport function assertScheduleDefinition(\n value: unknown,\n createError: (message: string) => Error = (message) => new ScheduleValidationError(message)\n): asserts value is ScheduleDefinition {\n if (!isRecord(value)) throw createError(\"Schedule definition must be an object.\")\n if (value.kind !== \"schedule\") {\n throw createError(\"Schedule definition kind must be 'schedule'.\")\n }\n\n assertNonEmptyString(value.id, \"Schedule id\", createError)\n if (!isRecord(value.trigger))\n throw createError(`Schedule \"${value.id}\" trigger must be an object.`)\n\n if (value.trigger.type === \"cron\") {\n assertNonEmptyString(\n value.trigger.expression,\n `Schedule \"${value.id}\" cron expression`,\n createError\n )\n if (value.trigger.timezone !== undefined && typeof value.trigger.timezone !== \"string\") {\n throw createError(`Schedule \"${value.id}\" timezone must be a string.`)\n }\n return\n }\n\n if (value.trigger.type !== \"event\") {\n throw createError(`Schedule \"${value.id}\" trigger type is unsupported.`)\n }\n\n assertEventSourceShape(value.trigger.source, `Schedule \"${value.id}\" event source`, createError)\n if (value.trigger.condition !== undefined) {\n assertEventConditionShape(\n value.trigger.condition,\n `Schedule \"${value.id}\" condition`,\n createError\n )\n }\n}\n\nexport function isScheduleDefinition(value: unknown): value is ScheduleDefinition {\n try {\n assertScheduleDefinition(value, (message) => new Error(message))\n return true\n } catch {\n return false\n }\n}\n\nexport function validateSchedulesAtStartup(\n schedules: readonly ScheduleDefinition[],\n ontology: OntologyRegistry,\n options: ValidateSchedulesAtStartupOptions = {}\n): void {\n const seenIds = new Set<string>()\n\n for (const schedule of schedules) {\n assertScheduleDefinition(schedule)\n if (seenIds.has(schedule.id)) {\n throw new ScheduleValidationError(`Duplicate schedule id: ${schedule.id}`)\n }\n seenIds.add(schedule.id)\n\n if (schedule.trigger.type === \"cron\") {\n createCronMatcher(schedule.trigger.expression)\n if (schedule.trigger.timezone !== undefined) validateTimezone(schedule.trigger.timezone)\n continue\n }\n\n validateEventSchedule(schedule as EventScheduleDefinition, ontology, options)\n }\n}\n\nfunction validateTimezone(timezone: string): void {\n try {\n Intl.DateTimeFormat(undefined, { timeZone: timezone })\n } catch {\n throw new ScheduleValidationError(`Invalid timezone '${timezone}'.`)\n }\n}\n\nfunction assertEventSourceShape(\n value: unknown,\n path: string,\n createError: (message: string) => Error\n): asserts value is EventSelectorSpec {\n if (!isRecord(value)) throw createError(`${path} must be an event selector.`)\n if (!Array.isArray(value.types) || value.types.length === 0) {\n throw createError(`${path} must select at least one event type.`)\n }\n\n switch (value.topic) {\n case \"objects\":\n assertNonEmptyString(value.objectTypeId, `${path} objectTypeId`, createError)\n return\n case \"links\":\n assertNonEmptyString(value.objectTypeId, `${path} objectTypeId`, createError)\n assertNonEmptyString(value.linkId, `${path} linkId`, createError)\n return\n case \"rules\":\n assertNonEmptyString(value.ruleId, `${path} ruleId`, createError)\n return\n case \"datasets\":\n assertNonEmptyString(value.datasetId, `${path} datasetId`, createError)\n return\n case \"syncs\":\n assertNonEmptyString(value.syncId, `${path} syncId`, createError)\n assertRunStatus(value.runStatus, path, createError)\n return\n case \"pipelines\":\n assertNonEmptyString(value.pipelineId, `${path} pipelineId`, createError)\n assertRunStatus(value.runStatus, path, createError)\n return\n default:\n throw createError(\n `${path} must select object, link, rule, dataset, sync, or pipeline events.`\n )\n }\n}\n\nfunction assertRunStatus(\n value: unknown,\n path: string,\n createError: (message: string) => Error\n): void {\n if (typeof value !== \"string\" || !runStatuses.has(value)) {\n throw createError(`${path} must select succeeded, failed, or cancelled runs.`)\n }\n}\n\nfunction assertEventConditionShape(\n value: unknown,\n path: string,\n createError: (message: string) => Error\n): asserts value is EventScheduleCondition {\n if (!isRecord(value)) throw createError(`${path} must be an object.`)\n if (value.kind !== \"becomesTrue\") throw createError(`${path} kind must be 'becomesTrue'.`)\n if (value.scope !== \"event.object\" && value.scope !== \"event.link\") {\n throw createError(`${path} scope must be 'event.object' or 'event.link'.`)\n }\n assertPredicateShape(value.predicate, { subject: \"Schedule\", createError })\n}\n\nfunction validateEventSchedule(\n schedule: EventScheduleDefinition,\n ontology: OntologyRegistry,\n options: ValidateSchedulesAtStartupOptions\n): void {\n const { source } = schedule.trigger\n\n switch (source.topic) {\n case \"objects\":\n case \"links\": {\n const objectTypeId = source.objectTypeId\n const objectType = objectTypeId ? ontology.getObjectTypeById(objectTypeId) : undefined\n if (!objectType) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown object type \"${objectTypeId}\".`\n )\n }\n if (source.topic === \"objects\") validateObjectSource(schedule, objectType)\n else validateLinkSource(schedule, objectType)\n return\n }\n case \"rules\":\n validateRegisteredSource(\n schedule,\n source.ruleId,\n options.registeredRuleIds,\n ruleEventTypes,\n \"rule\"\n )\n return\n case \"datasets\":\n validateRegisteredSource(\n schedule,\n source.datasetId,\n options.registeredDatasetIds,\n datasetEventTypes,\n \"dataset\"\n )\n return\n case \"syncs\":\n validateRegisteredSource(\n schedule,\n source.syncId,\n options.registeredSyncIds,\n syncEventTypes,\n \"sync\"\n )\n return\n case \"pipelines\":\n validateRegisteredSource(\n schedule,\n source.pipelineId,\n options.registeredPipelineIds,\n pipelineEventTypes,\n \"pipeline\"\n )\n return\n }\n}\n\nfunction validateObjectSource(schedule: EventScheduleDefinition, objectType: ObjectType): void {\n validateEventTypes(schedule, objectEventTypes, \"object\")\n const propertyIds = new Set(objectType.properties.map((property) => property.id))\n validateSelectorProperty(schedule, propertyIds)\n\n const condition = schedule.trigger.condition\n if (!condition) return\n if (condition.scope !== \"event.object\") {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": object event sources can only use event.object conditions.`\n )\n }\n validateConditionPredicate(schedule, propertyIds, condition.predicate)\n}\n\nfunction validateLinkSource(schedule: EventScheduleDefinition, objectType: ObjectType): void {\n validateEventTypes(schedule, linkEventTypes, \"link\")\n const source = schedule.trigger.source\n const link = objectType.links.find((candidate) => candidate.id === source.linkId)\n if (!link) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown link \"${source.linkId}\" on object type \"${objectType.id}\".`\n )\n }\n\n const propertyIds = new Set((link.properties ?? []).map((property) => property.id))\n validateSelectorProperty(schedule, propertyIds)\n\n const condition = schedule.trigger.condition\n if (!condition) return\n if (condition.scope !== \"event.link\") {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": link event sources can only use event.link conditions.`\n )\n }\n validateConditionPredicate(schedule, propertyIds, condition.predicate, link)\n}\n\nfunction validateRegisteredSource(\n schedule: EventScheduleDefinition,\n sourceId: string | undefined,\n registeredIds: ReadonlySet<string> | undefined,\n supportedTypes: ReadonlySet<string>,\n sourceKind: \"rule\" | \"dataset\" | \"sync\" | \"pipeline\"\n): void {\n validateEventTypes(schedule, supportedTypes, sourceKind)\n if (!registeredIds?.has(sourceId ?? \"\")) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown ${sourceKind} \"${sourceId}\".`\n )\n }\n if (schedule.trigger.condition) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": ${sourceKind} event sources do not support .where() conditions.`\n )\n }\n}\n\nfunction validateEventTypes(\n schedule: EventScheduleDefinition,\n supportedTypes: ReadonlySet<string>,\n sourceKind: string\n): void {\n for (const type of schedule.trigger.source.types ?? []) {\n if (!supportedTypes.has(type)) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unsupported ${sourceKind} event type \"${type}\".`\n )\n }\n }\n}\n\nfunction validateSelectorProperty(\n schedule: EventScheduleDefinition,\n propertyIds: ReadonlySet<string>\n): void {\n const propertyId = schedule.trigger.source.propertyId\n if (propertyId !== undefined && !propertyIds.has(propertyId)) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown selector property \"${propertyId}\".`\n )\n }\n}\n\nfunction validateConditionPredicate(\n schedule: EventScheduleDefinition,\n propertyIds: ReadonlySet<string>,\n predicate: Predicate,\n link?: ObjectLink\n): void {\n if (predicate.kind === \"all\" || predicate.kind === \"any\") {\n if (predicate.predicates.length === 0) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": ${predicate.kind} predicate must contain at least one predicate.`\n )\n }\n for (const child of predicate.predicates) {\n validateConditionPredicate(schedule, propertyIds, child, link)\n }\n return\n }\n\n if (predicate.kind === \"not\") {\n validateConditionPredicate(schedule, propertyIds, predicate.predicate, link)\n return\n }\n\n if (predicate.kind === \"link\") {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": link predicates are not supported in event conditions.`\n )\n }\n\n if (predicate.kind === \"field\") {\n if (!link || !linkIdentityFields.has(predicate.field)) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unsupported event field predicate \"${predicate.field}\".`\n )\n }\n if (typeof predicate.value !== \"string\" || !predicate.value.trim()) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": event field \"${predicate.field}\" must compare against a non-empty string.`\n )\n }\n if (predicate.field === \"target.objectTypeId\") {\n const targetIds = Array.isArray(link.targetObjectTypeId)\n ? link.targetObjectTypeId\n : [link.targetObjectTypeId]\n if (!targetIds.includes(\"*\") && !targetIds.includes(predicate.value)) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": object type \"${predicate.value}\" is not a target of link \"${link.id}\".`\n )\n }\n }\n return\n }\n\n if (!propertyIds.has(predicate.propertyId)) {\n const source = schedule.trigger.source\n const subject = link ? `link \"${link.id}\"` : `object type \"${source.objectTypeId}\"`\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown property \"${predicate.propertyId}\" on ${subject}.`\n )\n }\n}\n"
11
+ "import type { EventSelectorSpec } from \"../events/selectors\"\nimport type { ObjectLink, ObjectType, OntologyRegistry } from \"../ontology\"\nimport { assertPredicateShape, type Predicate } from \"../predicates\"\nimport { createCronMatcher } from \"./cron\"\nimport { ScheduleValidationError } from \"./errors\"\nimport type { EventScheduleCondition, EventScheduleDefinition, ScheduleDefinition } from \"./types\"\n\nconst objectEventTypes = new Set([\"object.created\", \"object.updated\", \"object.deleted\"])\nconst linkEventTypes = new Set([\"link.created\", \"link.updated\", \"link.deleted\"])\nconst ruleEventTypes = new Set([\"rule.triggered\", \"rule.resolved\"])\nconst datasetEventTypes = new Set([\"dataset.version.committed\"])\nconst syncEventTypes = new Set([\"sync.run.finished\"])\nconst pipelineEventTypes = new Set([\"pipeline.run.finished\"])\nconst userEventTypes = new Set([\n \"user.joined\",\n \"user.suspended\",\n \"user.reactivated\",\n \"user.invited\",\n \"user.profile.updated\",\n])\nconst runStatuses = new Set([\"succeeded\", \"failed\", \"cancelled\"])\nconst linkIdentityFields = new Set([\"target.objectTypeId\", \"target.primaryId\"])\n\nexport interface ValidateSchedulesAtStartupOptions {\n readonly registeredRuleIds?: ReadonlySet<string>\n readonly registeredDatasetIds?: ReadonlySet<string>\n readonly registeredSyncIds?: ReadonlySet<string>\n readonly registeredPipelineIds?: ReadonlySet<string>\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction assertNonEmptyString(\n value: unknown,\n field: string,\n createError: (message: string) => Error\n): asserts value is string {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw createError(`${field} must not be empty.`)\n }\n}\n\nexport function assertScheduleDefinition(\n value: unknown,\n createError: (message: string) => Error = (message) => new ScheduleValidationError(message)\n): asserts value is ScheduleDefinition {\n if (!isRecord(value)) throw createError(\"Schedule definition must be an object.\")\n if (value.kind !== \"schedule\") {\n throw createError(\"Schedule definition kind must be 'schedule'.\")\n }\n\n assertNonEmptyString(value.id, \"Schedule id\", createError)\n if (!isRecord(value.trigger))\n throw createError(`Schedule \"${value.id}\" trigger must be an object.`)\n\n if (value.trigger.type === \"cron\") {\n assertNonEmptyString(\n value.trigger.expression,\n `Schedule \"${value.id}\" cron expression`,\n createError\n )\n if (value.trigger.timezone !== undefined && typeof value.trigger.timezone !== \"string\") {\n throw createError(`Schedule \"${value.id}\" timezone must be a string.`)\n }\n return\n }\n\n if (value.trigger.type !== \"event\") {\n throw createError(`Schedule \"${value.id}\" trigger type is unsupported.`)\n }\n\n assertEventSourceShape(value.trigger.source, `Schedule \"${value.id}\" event source`, createError)\n if (value.trigger.condition !== undefined) {\n assertEventConditionShape(\n value.trigger.condition,\n `Schedule \"${value.id}\" condition`,\n createError\n )\n }\n}\n\nexport function isScheduleDefinition(value: unknown): value is ScheduleDefinition {\n try {\n assertScheduleDefinition(value, (message) => new Error(message))\n return true\n } catch {\n return false\n }\n}\n\nexport function validateSchedulesAtStartup(\n schedules: readonly ScheduleDefinition[],\n ontology: OntologyRegistry,\n options: ValidateSchedulesAtStartupOptions = {}\n): void {\n const seenIds = new Set<string>()\n\n for (const schedule of schedules) {\n assertScheduleDefinition(schedule)\n if (seenIds.has(schedule.id)) {\n throw new ScheduleValidationError(`Duplicate schedule id: ${schedule.id}`)\n }\n seenIds.add(schedule.id)\n\n if (schedule.trigger.type === \"cron\") {\n createCronMatcher(schedule.trigger.expression)\n if (schedule.trigger.timezone !== undefined) validateTimezone(schedule.trigger.timezone)\n continue\n }\n\n validateEventSchedule(schedule as EventScheduleDefinition, ontology, options)\n }\n}\n\nfunction validateTimezone(timezone: string): void {\n try {\n Intl.DateTimeFormat(undefined, { timeZone: timezone })\n } catch {\n throw new ScheduleValidationError(`Invalid timezone '${timezone}'.`)\n }\n}\n\nfunction assertEventSourceShape(\n value: unknown,\n path: string,\n createError: (message: string) => Error\n): asserts value is EventSelectorSpec {\n if (!isRecord(value)) throw createError(`${path} must be an event selector.`)\n if (!Array.isArray(value.types) || value.types.length === 0) {\n throw createError(`${path} must select at least one event type.`)\n }\n\n switch (value.topic) {\n case \"objects\":\n assertNonEmptyString(value.objectTypeId, `${path} objectTypeId`, createError)\n return\n case \"links\":\n assertNonEmptyString(value.objectTypeId, `${path} objectTypeId`, createError)\n assertNonEmptyString(value.linkId, `${path} linkId`, createError)\n return\n case \"rules\":\n assertNonEmptyString(value.ruleId, `${path} ruleId`, createError)\n return\n case \"datasets\":\n assertNonEmptyString(value.datasetId, `${path} datasetId`, createError)\n return\n case \"syncs\":\n assertNonEmptyString(value.syncId, `${path} syncId`, createError)\n assertRunStatus(value.runStatus, path, createError)\n return\n case \"pipelines\":\n assertNonEmptyString(value.pipelineId, `${path} pipelineId`, createError)\n assertRunStatus(value.runStatus, path, createError)\n return\n case \"users\":\n return\n default:\n throw createError(\n `${path} must select object, link, rule, dataset, sync, pipeline, or member events.`\n )\n }\n}\n\nfunction assertRunStatus(\n value: unknown,\n path: string,\n createError: (message: string) => Error\n): void {\n if (typeof value !== \"string\" || !runStatuses.has(value)) {\n throw createError(`${path} must select succeeded, failed, or cancelled runs.`)\n }\n}\n\nfunction assertEventConditionShape(\n value: unknown,\n path: string,\n createError: (message: string) => Error\n): asserts value is EventScheduleCondition {\n if (!isRecord(value)) throw createError(`${path} must be an object.`)\n if (value.kind !== \"becomesTrue\") throw createError(`${path} kind must be 'becomesTrue'.`)\n if (value.scope !== \"event.object\" && value.scope !== \"event.link\") {\n throw createError(`${path} scope must be 'event.object' or 'event.link'.`)\n }\n assertPredicateShape(value.predicate, { subject: \"Schedule\", createError })\n}\n\nfunction validateEventSchedule(\n schedule: EventScheduleDefinition,\n ontology: OntologyRegistry,\n options: ValidateSchedulesAtStartupOptions\n): void {\n const { source } = schedule.trigger\n\n switch (source.topic) {\n case \"objects\":\n case \"links\": {\n const objectTypeId = source.objectTypeId\n const objectType = objectTypeId ? ontology.getObjectTypeById(objectTypeId) : undefined\n if (!objectType) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown object type \"${objectTypeId}\".`\n )\n }\n if (source.topic === \"objects\") validateObjectSource(schedule, objectType)\n else validateLinkSource(schedule, objectType)\n return\n }\n case \"rules\":\n validateRegisteredSource(\n schedule,\n source.ruleId,\n options.registeredRuleIds,\n ruleEventTypes,\n \"rule\"\n )\n return\n case \"datasets\":\n validateRegisteredSource(\n schedule,\n source.datasetId,\n options.registeredDatasetIds,\n datasetEventTypes,\n \"dataset\"\n )\n return\n case \"syncs\":\n validateRegisteredSource(\n schedule,\n source.syncId,\n options.registeredSyncIds,\n syncEventTypes,\n \"sync\"\n )\n return\n case \"pipelines\":\n validateRegisteredSource(\n schedule,\n source.pipelineId,\n options.registeredPipelineIds,\n pipelineEventTypes,\n \"pipeline\"\n )\n return\n case \"users\":\n validateMemberSource(schedule)\n return\n }\n}\n\nfunction validateObjectSource(schedule: EventScheduleDefinition, objectType: ObjectType): void {\n validateEventTypes(schedule, objectEventTypes, \"object\")\n const propertyIds = new Set(objectType.properties.map((property) => property.id))\n validateSelectorProperty(schedule, propertyIds)\n\n const condition = schedule.trigger.condition\n if (!condition) return\n if (condition.scope !== \"event.object\") {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": object event sources can only use event.object conditions.`\n )\n }\n validateConditionPredicate(schedule, propertyIds, condition.predicate)\n}\n\nfunction validateLinkSource(schedule: EventScheduleDefinition, objectType: ObjectType): void {\n validateEventTypes(schedule, linkEventTypes, \"link\")\n const source = schedule.trigger.source\n const link = objectType.links.find((candidate) => candidate.id === source.linkId)\n if (!link) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown link \"${source.linkId}\" on object type \"${objectType.id}\".`\n )\n }\n\n const propertyIds = new Set((link.properties ?? []).map((property) => property.id))\n validateSelectorProperty(schedule, propertyIds)\n\n const condition = schedule.trigger.condition\n if (!condition) return\n if (condition.scope !== \"event.link\") {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": link event sources can only use event.link conditions.`\n )\n }\n validateConditionPredicate(schedule, propertyIds, condition.predicate, link)\n}\n\nfunction validateRegisteredSource(\n schedule: EventScheduleDefinition,\n sourceId: string | undefined,\n registeredIds: ReadonlySet<string> | undefined,\n supportedTypes: ReadonlySet<string>,\n sourceKind: \"rule\" | \"dataset\" | \"sync\" | \"pipeline\"\n): void {\n validateEventTypes(schedule, supportedTypes, sourceKind)\n if (!registeredIds?.has(sourceId ?? \"\")) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown ${sourceKind} \"${sourceId}\".`\n )\n }\n if (schedule.trigger.condition) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": ${sourceKind} event sources do not support .where() conditions.`\n )\n }\n}\n\n// The project has one member directory, so a member event source names nothing to look up.\nfunction validateMemberSource(schedule: EventScheduleDefinition): void {\n validateEventTypes(schedule, userEventTypes, \"member\")\n if (schedule.trigger.condition) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": member event sources do not support .where() conditions.`\n )\n }\n}\n\nfunction validateEventTypes(\n schedule: EventScheduleDefinition,\n supportedTypes: ReadonlySet<string>,\n sourceKind: string\n): void {\n for (const type of schedule.trigger.source.types ?? []) {\n if (!supportedTypes.has(type)) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unsupported ${sourceKind} event type \"${type}\".`\n )\n }\n }\n}\n\nfunction validateSelectorProperty(\n schedule: EventScheduleDefinition,\n propertyIds: ReadonlySet<string>\n): void {\n const propertyId = schedule.trigger.source.propertyId\n if (propertyId !== undefined && !propertyIds.has(propertyId)) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown selector property \"${propertyId}\".`\n )\n }\n}\n\nfunction validateConditionPredicate(\n schedule: EventScheduleDefinition,\n propertyIds: ReadonlySet<string>,\n predicate: Predicate,\n link?: ObjectLink\n): void {\n if (predicate.kind === \"all\" || predicate.kind === \"any\") {\n if (predicate.predicates.length === 0) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": ${predicate.kind} predicate must contain at least one predicate.`\n )\n }\n for (const child of predicate.predicates) {\n validateConditionPredicate(schedule, propertyIds, child, link)\n }\n return\n }\n\n if (predicate.kind === \"not\") {\n validateConditionPredicate(schedule, propertyIds, predicate.predicate, link)\n return\n }\n\n if (predicate.kind === \"link\") {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": link predicates are not supported in event conditions.`\n )\n }\n\n if (predicate.kind === \"field\") {\n if (!link || !linkIdentityFields.has(predicate.field)) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unsupported event field predicate \"${predicate.field}\".`\n )\n }\n if (typeof predicate.value !== \"string\" || !predicate.value.trim()) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": event field \"${predicate.field}\" must compare against a non-empty string.`\n )\n }\n if (predicate.field === \"target.objectTypeId\") {\n const targetIds = Array.isArray(link.targetObjectTypeId)\n ? link.targetObjectTypeId\n : [link.targetObjectTypeId]\n if (!targetIds.includes(\"*\") && !targetIds.includes(predicate.value)) {\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": object type \"${predicate.value}\" is not a target of link \"${link.id}\".`\n )\n }\n }\n return\n }\n\n if (!propertyIds.has(predicate.propertyId)) {\n const source = schedule.trigger.source\n const subject = link ? `link \"${link.id}\"` : `object type \"${source.objectTypeId}\"`\n throw new ScheduleValidationError(\n `Schedule \"${schedule.id}\": unknown property \"${predicate.propertyId}\" on ${subject}.`\n )\n }\n}\n"
12
12
  ],
13
- "mappings": "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",
14
- "debugId": "7C0C2D81ADFC7E2C64756E2164756E21",
13
+ "mappings": "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",
14
+ "debugId": "5FA1F6A50899183464756E2164756E21",
15
15
  "names": []
16
16
  }
@@ -2,28 +2,28 @@
2
2
  import {
3
3
  createSixbError2,
4
4
  isSixbError2
5
- } from "./chunk-8mx7qw3y.js";
5
+ } from "./chunk-zbc929zg.js";
6
6
  import {
7
7
  AiLimitStorageError2,
8
8
  aiLimitMeterApplies2
9
- } from "./chunk-4as3wt1c.js";
9
+ } from "./chunk-4ymrcdbm.js";
10
10
  import {
11
11
  aiLimitSubjectsFromAttribution2,
12
12
  applicableAiLimitPolicies2,
13
13
  aiUsageLimitExceededError2,
14
14
  aiUsageLimitUnavailableError2
15
- } from "./chunk-vyf9kfqf.js";
15
+ } from "./chunk-dp0cdtj2.js";
16
16
  import {
17
- AiUsageStorageError2,
18
17
  normalizeAiModelCallCostRecord2,
19
18
  aiModelCallCostMatchesUsage2
20
- } from "./chunk-ere85b8y.js";
19
+ } from "./chunk-0xmt5p5y.js";
21
20
  import {
22
21
  AiCostStorageError2
23
- } from "./chunk-n33z5bjw.js";
22
+ } from "./chunk-ezne9wc9.js";
24
23
  import {
24
+ AiUsageStorageError2,
25
25
  normalizeAiModelCallRecord2
26
- } from "./chunk-rj69qcrd.js";
26
+ } from "./chunk-pgrf64hp.js";
27
27
  import {
28
28
  assertJsonObject2
29
29
  } from "./chunk-wy0qdqfm.js";
@@ -219,7 +219,7 @@ function modelCostRecord(input, usageRecordId) {
219
219
  ratedAt: new Date(input.ratedAt)
220
220
  };
221
221
  }
222
- const reason = input.cost.reason === "missing-rate-card" ? "missingRateCard" : input.cost.reason === "missing-usage" ? "missingUsageMeter" : "invalidUsageForFormula";
222
+ const reason = input.cost.reason === "missing-rate-card" ? "missingRateCard" : input.cost.reason === "missing-usage" ? "missingUsageMeter" : input.cost.reason === "unsupported-pricing-dimension" ? "unsupportedPricingDimension" : "invalidUsageForFormula";
223
223
  const missingMeters = reason === "missingUsageMeter" ? normalizeMissingMeters(input.cost.missingMeters) : undefined;
224
224
  return {
225
225
  projectId: input.usage.projectId,
@@ -274,7 +274,11 @@ function aiModelCallUsageFromModel(usage) {
274
274
  ...usage.cacheReadInputTokens === undefined ? {} : { cacheReadInputTokens: usage.cacheReadInputTokens },
275
275
  ...usage.cacheWriteInputTokens === undefined ? {} : { cacheWriteInputTokens: usage.cacheWriteInputTokens },
276
276
  ...usage.textOutputTokens === undefined ? {} : { textOutputTokens: usage.textOutputTokens },
277
- ...usage.reasoningOutputTokens === undefined ? {} : { reasoningOutputTokens: usage.reasoningOutputTokens }
277
+ ...usage.reasoningOutputTokens === undefined ? {} : { reasoningOutputTokens: usage.reasoningOutputTokens },
278
+ ...usage.imageOutputTokens === undefined ? {} : { imageOutputTokens: usage.imageOutputTokens },
279
+ ...usage.audioOutputTokens === undefined ? {} : { audioOutputTokens: usage.audioOutputTokens },
280
+ ...usage.outputImages === undefined ? {} : { outputImages: usage.outputImages },
281
+ ...usage.inputCharacters === undefined ? {} : { inputCharacters: usage.inputCharacters }
278
282
  };
279
283
  }
280
284
 
@@ -551,6 +555,18 @@ class AiModelCallRecorder2 {
551
555
  throw recordingError;
552
556
  }
553
557
  };
558
+ async recordFiles(callId, files) {
559
+ try {
560
+ await retryOperation(() => this.input.storage.aiUsage.recordModelCallFiles({
561
+ projectId: this.input.projectId,
562
+ executionId: this.input.executionId,
563
+ callId,
564
+ files
565
+ }), this.retryDelaysMs, this.sleep, (error) => !(error instanceof TypeError || error instanceof AiUsageStorageError2));
566
+ } catch (error) {
567
+ throw new Error(`[SixbModels] Model call '${callId}' completed, but its files could not be recorded.`, { cause: error });
568
+ }
569
+ }
554
570
  assertHealthy() {
555
571
  if (this.admissionError !== undefined)
556
572
  throw this.admissionError;
@@ -598,4 +614,4 @@ async function enqueueAiModelCallRecovery2(queue, input) {
598
614
 
599
615
  export { AI_MODEL_CALL_OUTPUT_TOKEN_ALLOWANCE, aiModelCallOutputTokenAllowance, requireAccountingCapabilities, createAiModelCallLimitController2, ModelUsageRecordingError2, recordRecoveredAiModelCall2, isPermanentAiUsageRecoveryError2, AiModelCallRecorder2, enqueueAiModelCallRecovery2 };
600
616
 
601
- //# debugId=4BD85BF64D5B7A3564756E2164756E21
617
+ //# debugId=8311E82DEB61C61564756E2164756E21
@@ -4,14 +4,14 @@
4
4
  "sourcesContent": [
5
5
  "import { isSixbError } from \"../../errors/internal\"\nimport type { AuthorizablePrincipal } from \"../../execution\"\nimport type {\n AiLimitPolicy,\n AiLimitQuantity,\n AiModelCallReservationIdentity,\n ReserveAiModelCallResult,\n} from \"../../storage\"\nimport {\n aiLimitSubjectsFromAttribution,\n aiUsageLimitExceededError,\n aiUsageLimitUnavailableError,\n applicableAiLimitPolicies,\n} from \"../../storage/ai-limits/enforcement\"\nimport { aiLimitMeterApplies } from \"../../storage/ai-limits/provider\"\nimport type {\n AiModelCallAdmissionDecision,\n AiModelCallAdmissionInput,\n BeforeAiModelCall,\n MarkAiModelCallUnknown,\n} from \"./model-call-admission\"\nimport type { ModelCallAccountingStorage } from \"./types\"\n\nexport interface AiModelCallLimitController {\n readonly beforeModelCall: BeforeAiModelCall\n readonly markModelCallUnknown: MarkAiModelCallUnknown\n}\n\n/** Build the reservation lifecycle for model calls from any execution. */\nexport function createAiModelCallLimitController(input: {\n readonly storage: Pick<ModelCallAccountingStorage, \"aiLimits\">\n readonly projectId: string\n readonly requestedBy?: AuthorizablePrincipal\n readonly requesterGroupIds: readonly string[]\n}): AiModelCallLimitController {\n const subjects = aiLimitSubjectsFromAttribution(input.requestedBy, input.requesterGroupIds)\n\n return {\n beforeModelCall: async (admission) => {\n let applicable: readonly AiLimitPolicy[]\n try {\n const policies = await input.storage.aiLimits.listPolicies({\n projectId: input.projectId,\n })\n applicable = applicableAiLimitPolicies(policies, subjects).filter((policy) =>\n aiLimitMeterApplies(policy.limit.meter, admission.modelKind)\n )\n } catch (error) {\n throw limitStorageUnavailable(error)\n }\n // This read is the fast no-policy path. A concurrently created policy linearizes after it;\n // every later call will see it, while existing policies always continue to atomic reserve.\n if (applicable.length === 0) return { reservation: \"none\" }\n\n const estimates = reservationEstimates(\n admission,\n applicable.some((policy) => policy.limit.meter === \"cost.catalogEstimated\")\n )\n if (estimates.length === 0) {\n throw aiUsageLimitUnavailableError([\"missingEstimate\"])\n }\n\n let result: ReserveAiModelCallResult\n try {\n result = await input.storage.aiLimits.reserveModelCall({\n ...reservationIdentity(admission),\n subjects,\n estimates,\n ...(admission.modelKind === undefined ? {} : { modelKind: admission.modelKind }),\n })\n } catch (error) {\n throw limitStorageUnavailable(error)\n }\n switch (result.status) {\n case \"reserved\":\n return { reservation: \"active\" } satisfies AiModelCallAdmissionDecision\n case \"notRequired\":\n return { reservation: \"none\" } satisfies AiModelCallAdmissionDecision\n case \"denied\":\n throw aiUsageLimitExceededError(result.resetAt)\n case \"unavailable\":\n throw aiUsageLimitUnavailableError(result.reasons)\n case \"terminal\":\n throw aiUsageLimitUnavailableError([\"terminalReservationReplay\"])\n }\n },\n markModelCallUnknown: async (identity) => {\n try {\n await input.storage.aiLimits.markReservationUnknown(identity)\n } catch (error) {\n throw limitStorageUnavailable(error)\n }\n },\n }\n}\n\nfunction reservationEstimates(\n input: AiModelCallAdmissionInput,\n needsCost: boolean\n): readonly AiLimitQuantity[] {\n const estimates: AiLimitQuantity[] = []\n if (input.inputTokens.status === \"estimated\" && input.estimatedTotalTokens !== undefined) {\n estimates.push({ meter: \"tokens.total\", amount: input.estimatedTotalTokens })\n }\n\n if (needsCost) {\n try {\n let money = input.reservationCost\n if (money == null && input.inputTokens.status === \"estimated\") {\n money = input.costEstimator?.estimateReservation?.({\n inputTokens: input.inputTokens.tokens,\n outputTokens: input.outputTokenAllowance,\n })\n }\n\n if (money) {\n estimates.push({ meter: \"cost.catalogEstimated\", amount: money })\n }\n } catch {\n // An unavailable price must not prevent a token-only policy from being evaluated.\n return estimates\n }\n }\n\n return estimates\n}\n\nfunction reservationIdentity(input: AiModelCallAdmissionInput): AiModelCallReservationIdentity {\n return {\n projectId: input.projectId,\n executionId: input.executionId,\n attempt: input.attempt,\n callId: input.callId,\n }\n}\n\nfunction limitStorageUnavailable(error: unknown): unknown {\n if (\n isSixbError(error) &&\n (error.code === \"ai.usage_limit_exceeded\" || error.code === \"ai.usage_limit_unavailable\")\n ) {\n return error\n }\n return aiUsageLimitUnavailableError([\"limitStorageUnavailable\"])\n}\n",
6
6
  "/** A provider call was not recorded synchronously, so its execution must stop. */\nexport class ModelUsageRecordingError extends Error {\n readonly name = \"ModelUsageRecordingError\"\n\n constructor(\n readonly executionId: string,\n readonly callId: string,\n readonly recoveryScheduled: boolean,\n options?: ErrorOptions\n ) {\n super(\n recoveryScheduled\n ? `[SixbModels] AI usage for call '${callId}' in execution '${executionId}' was deferred to durable recovery.`\n : `[SixbModels] Could not preserve AI usage for call '${callId}' in execution '${executionId}'.`,\n options\n )\n }\n}\n",
7
- "import { createHash } from \"node:crypto\"\nimport { assertJsonObject } from \"../../json\"\nimport type {\n AiBillableMeter,\n AiCostStorage,\n AiLimitStorage,\n AiModelCallCostRecord,\n AiModelCallUsageRecord,\n AiPricingContext,\n AiUsageStorage,\n RecordAiModelCallResult,\n Storage,\n} from \"../../storage\"\nimport {\n aiModelCallCostMatchesUsage,\n normalizeAiModelCallCostRecord,\n} from \"../../storage/ai-cost/provider\"\nimport { normalizeAiModelCallRecord } from \"../../storage/ai-usage/record\"\nimport type { ModelCostEstimate } from \"../pricing\"\nimport type { ModelCallAccountingStorage, RecoverAiModelCallInput } from \"./types\"\n\ninterface RecordAiModelCallAccountingInput extends RecoverAiModelCallInput {\n readonly storage: Pick<ModelCallAccountingStorage, \"transaction\">\n}\n\ninterface AiAccountingCapabilities {\n readonly aiUsage: AiUsageStorage\n readonly aiCosts: AiCostStorage\n readonly aiLimits: AiLimitStorage\n}\n\n/** Atomically append one provider call's usage and the valuation captured by the model runtime. */\nexport async function recordAiModelCallAccounting(\n input: RecordAiModelCallAccountingInput\n): Promise<RecordAiModelCallResult> {\n return input.storage.transaction(async (tx) => {\n const { aiUsage, aiCosts, aiLimits } = requireAccountingCapabilities(tx)\n const usage = await aiUsage.recordModelCall(input.usage)\n // Usage deduplicates provider lifecycle replays by execution/call identity. Always attach the\n // valuation to the canonical row it returns, not the fresh candidate ID from a replay.\n const canonical = normalizeModelCallAccounting({\n ...input,\n usage: usage.record,\n ratedAt: usage.record.recordedAt,\n })\n const record = modelCostRecord(canonical, usage.record.id)\n const estimate =\n canonical.cost.status !== \"reported\" || canonical.estimate === undefined\n ? undefined\n : modelCostRecord({ ...canonical, cost: canonical.estimate }, usage.record.id)\n await aiCosts.recordModelCallCost({\n ...record,\n ...(estimate === undefined\n ? {}\n : {\n estimate:\n estimate.status === \"rated\"\n ? { status: \"rated\", money: estimate.money, components: estimate.components }\n : {\n status: \"unpriceable\",\n reason: estimate.reason,\n ...(estimate.missingMeters === undefined\n ? {}\n : { missingMeters: estimate.missingMeters }),\n },\n }),\n })\n if (usage.created) {\n await aiLimits.recordModelCallActuals({\n projectId: usage.record.projectId,\n usageRecordId: usage.record.id,\n recordedAt: input.ratedAt,\n })\n }\n if (input.reconcileLimitReservation) {\n await aiLimits.reconcileModelCall({\n projectId: usage.record.projectId,\n executionId: usage.record.executionId,\n attempt: usage.record.attempt,\n callId: usage.record.callId,\n usageRecordId: usage.record.id,\n reconciledAt: input.ratedAt,\n })\n }\n return usage\n })\n}\n\n/** Sanitize optional enrichment before either persistence or a JSON-safe recovery handoff. */\nexport function normalizeModelCallAccounting(\n input: RecoverAiModelCallInput\n): RecoverAiModelCallInput {\n const usage = normalizeAiModelCallRecord(input.usage)\n return {\n ...input,\n cost:\n input.cost.status === \"reported\" ? input.cost : validatedEstimate(input.cost, input, usage),\n ...(input.estimate === undefined\n ? {}\n : { estimate: validatedEstimate(input.estimate, input, usage) }),\n }\n}\n\nfunction validatedEstimate(\n cost: ModelCostEstimate,\n input: RecoverAiModelCallInput,\n usage: AiModelCallUsageRecord\n): ModelCostEstimate {\n try {\n assertJsonObject(cost, \"model cost estimate\")\n const record = normalizeAiModelCallCostRecord(modelCostRecord({ ...input, cost }, usage.id))\n if (!aiModelCallCostMatchesUsage(record, usage)) {\n throw new TypeError(\"Estimate quantities do not match recorded usage.\")\n }\n return structuredClone(cost)\n } catch {\n console.warn(\n \"[SixbModels] Invalid model cost estimate; preserving call usage and provider cost.\"\n )\n return { status: \"unpriceable\", reason: \"inconsistent-usage\" }\n }\n}\n\nfunction modelCostRecord(\n input: RecoverAiModelCallInput,\n usageRecordId: string\n): AiModelCallCostRecord {\n const billingIdentity = {\n providerId: input.usage.providerId,\n modelId: input.usage.requestedModelId,\n }\n const pricingContext: AiPricingContext = {\n ...(input.route?.providerId === undefined ? {} : { routedProviderId: input.route.providerId }),\n ...(input.route?.modelId === undefined ? {} : { routedModelId: input.route.modelId }),\n }\n if (input.cost.status === \"reported\" || input.cost.status === \"rated\") {\n return {\n projectId: input.usage.projectId,\n usageRecordId,\n status: \"rated\",\n billingIdentity,\n pricingContext,\n priceSource: costPriceSource(input.usage, input.cost),\n money: input.cost.money,\n components: input.cost.status === \"rated\" ? input.cost.components : [],\n ratedAt: new Date(input.ratedAt),\n }\n }\n\n const reason =\n input.cost.reason === \"missing-rate-card\"\n ? \"missingRateCard\"\n : input.cost.reason === \"missing-usage\"\n ? \"missingUsageMeter\"\n : \"invalidUsageForFormula\"\n const missingMeters =\n reason === \"missingUsageMeter\" ? normalizeMissingMeters(input.cost.missingMeters) : undefined\n return {\n projectId: input.usage.projectId,\n usageRecordId,\n status: \"unpriceable\",\n billingIdentity,\n pricingContext,\n reason,\n ...(missingMeters === undefined ? {} : { missingMeters }),\n ratedAt: new Date(input.ratedAt),\n }\n}\n\nfunction costPriceSource(\n usage: RecoverAiModelCallInput[\"usage\"],\n cost: Extract<RecoverAiModelCallInput[\"cost\"], { status: \"reported\" | \"rated\" }>\n) {\n if (cost.status === \"reported\") {\n return {\n sourceId: \"provider-reported\",\n sourceEntryId: `${usage.providerId}/${usage.responseId}`,\n sourceVersion: \"response-v1\",\n observedAt: new Date(usage.occurredAt),\n }\n }\n const rates = cost.components.map(({ meter, rateAmountNanosPerMillion }) => ({\n meter,\n rateAmountNanosPerMillion,\n }))\n const version = createHash(\"sha256\").update(JSON.stringify(rates)).digest(\"hex\")\n return {\n sourceId: \"model-rate-card\",\n sourceEntryId: `${usage.providerId}/${usage.requestedModelId}`,\n sourceVersion: `sha256:${version}`,\n observedAt: new Date(usage.occurredAt),\n }\n}\n\nfunction normalizeMissingMeters(\n meters: Extract<RecoverAiModelCallInput[\"cost\"], { status: \"unpriceable\" }>[\"missingMeters\"]\n): readonly AiBillableMeter[] {\n const fallback: readonly AiBillableMeter[] = [\"tokens.input.total\", \"tokens.output.total\"]\n return [...new Set<AiBillableMeter>(meters ?? fallback)]\n}\n\nexport function requireAccountingCapabilities(\n storage: Pick<Storage, \"aiUsage\" | \"aiCosts\" | \"aiLimits\">\n): AiAccountingCapabilities {\n if (!storage.aiUsage || !storage.aiCosts || !storage.aiLimits) {\n throw new Error(\n \"[SixbModels] AI model-call accounting requires storage.aiUsage, storage.aiCosts, and storage.aiLimits.\"\n )\n }\n return { aiUsage: storage.aiUsage, aiCosts: storage.aiCosts, aiLimits: storage.aiLimits }\n}\n",
8
- "import type { AiModelCallUsageInput } from \"../../storage\"\nimport type { ModelUsage } from \"../events\"\n\n/** Map one provider-neutral model call into Sixb's durable accounting vocabulary. */\nexport function aiModelCallUsageFromModel(usage: ModelUsage): AiModelCallUsageInput {\n return {\n ...(usage.audioDurationMs === undefined ? {} : { audioDurationMs: usage.audioDurationMs }),\n ...(usage.inputTokens === undefined ? {} : { inputTokens: usage.inputTokens }),\n ...(usage.outputTokens === undefined ? {} : { outputTokens: usage.outputTokens }),\n ...(usage.uncachedInputTokens === undefined\n ? {}\n : { uncachedInputTokens: usage.uncachedInputTokens }),\n ...(usage.cacheReadInputTokens === undefined\n ? {}\n : { cacheReadInputTokens: usage.cacheReadInputTokens }),\n ...(usage.cacheWriteInputTokens === undefined\n ? {}\n : { cacheWriteInputTokens: usage.cacheWriteInputTokens }),\n ...(usage.textOutputTokens === undefined ? {} : { textOutputTokens: usage.textOutputTokens }),\n ...(usage.reasoningOutputTokens === undefined\n ? {}\n : { reasoningOutputTokens: usage.reasoningOutputTokens }),\n }\n}\n",
7
+ "import { createHash } from \"node:crypto\"\nimport { assertJsonObject } from \"../../json\"\nimport type {\n AiBillableMeter,\n AiCostStorage,\n AiLimitStorage,\n AiModelCallCostRecord,\n AiModelCallUsageRecord,\n AiPricingContext,\n AiUsageStorage,\n RecordAiModelCallResult,\n Storage,\n} from \"../../storage\"\nimport {\n aiModelCallCostMatchesUsage,\n normalizeAiModelCallCostRecord,\n} from \"../../storage/ai-cost/provider\"\nimport { normalizeAiModelCallRecord } from \"../../storage/ai-usage/record\"\nimport type { ModelCostEstimate } from \"../pricing\"\nimport type { ModelCallAccountingStorage, RecoverAiModelCallInput } from \"./types\"\n\ninterface RecordAiModelCallAccountingInput extends RecoverAiModelCallInput {\n readonly storage: Pick<ModelCallAccountingStorage, \"transaction\">\n}\n\ninterface AiAccountingCapabilities {\n readonly aiUsage: AiUsageStorage\n readonly aiCosts: AiCostStorage\n readonly aiLimits: AiLimitStorage\n}\n\n/** Atomically append one provider call's usage and the valuation captured by the model runtime. */\nexport async function recordAiModelCallAccounting(\n input: RecordAiModelCallAccountingInput\n): Promise<RecordAiModelCallResult> {\n return input.storage.transaction(async (tx) => {\n const { aiUsage, aiCosts, aiLimits } = requireAccountingCapabilities(tx)\n const usage = await aiUsage.recordModelCall(input.usage)\n // Usage deduplicates provider lifecycle replays by execution/call identity. Always attach the\n // valuation to the canonical row it returns, not the fresh candidate ID from a replay.\n const canonical = normalizeModelCallAccounting({\n ...input,\n usage: usage.record,\n ratedAt: usage.record.recordedAt,\n })\n const record = modelCostRecord(canonical, usage.record.id)\n const estimate =\n canonical.cost.status !== \"reported\" || canonical.estimate === undefined\n ? undefined\n : modelCostRecord({ ...canonical, cost: canonical.estimate }, usage.record.id)\n await aiCosts.recordModelCallCost({\n ...record,\n ...(estimate === undefined\n ? {}\n : {\n estimate:\n estimate.status === \"rated\"\n ? { status: \"rated\", money: estimate.money, components: estimate.components }\n : {\n status: \"unpriceable\",\n reason: estimate.reason,\n ...(estimate.missingMeters === undefined\n ? {}\n : { missingMeters: estimate.missingMeters }),\n },\n }),\n })\n if (usage.created) {\n await aiLimits.recordModelCallActuals({\n projectId: usage.record.projectId,\n usageRecordId: usage.record.id,\n recordedAt: input.ratedAt,\n })\n }\n if (input.reconcileLimitReservation) {\n await aiLimits.reconcileModelCall({\n projectId: usage.record.projectId,\n executionId: usage.record.executionId,\n attempt: usage.record.attempt,\n callId: usage.record.callId,\n usageRecordId: usage.record.id,\n reconciledAt: input.ratedAt,\n })\n }\n return usage\n })\n}\n\n/** Sanitize optional enrichment before either persistence or a JSON-safe recovery handoff. */\nexport function normalizeModelCallAccounting(\n input: RecoverAiModelCallInput\n): RecoverAiModelCallInput {\n const usage = normalizeAiModelCallRecord(input.usage)\n return {\n ...input,\n cost:\n input.cost.status === \"reported\" ? input.cost : validatedEstimate(input.cost, input, usage),\n ...(input.estimate === undefined\n ? {}\n : { estimate: validatedEstimate(input.estimate, input, usage) }),\n }\n}\n\nfunction validatedEstimate(\n cost: ModelCostEstimate,\n input: RecoverAiModelCallInput,\n usage: AiModelCallUsageRecord\n): ModelCostEstimate {\n try {\n assertJsonObject(cost, \"model cost estimate\")\n const record = normalizeAiModelCallCostRecord(modelCostRecord({ ...input, cost }, usage.id))\n if (!aiModelCallCostMatchesUsage(record, usage)) {\n throw new TypeError(\"Estimate quantities do not match recorded usage.\")\n }\n return structuredClone(cost)\n } catch {\n console.warn(\n \"[SixbModels] Invalid model cost estimate; preserving call usage and provider cost.\"\n )\n return { status: \"unpriceable\", reason: \"inconsistent-usage\" }\n }\n}\n\nfunction modelCostRecord(\n input: RecoverAiModelCallInput,\n usageRecordId: string\n): AiModelCallCostRecord {\n const billingIdentity = {\n providerId: input.usage.providerId,\n modelId: input.usage.requestedModelId,\n }\n const pricingContext: AiPricingContext = {\n ...(input.route?.providerId === undefined ? {} : { routedProviderId: input.route.providerId }),\n ...(input.route?.modelId === undefined ? {} : { routedModelId: input.route.modelId }),\n }\n if (input.cost.status === \"reported\" || input.cost.status === \"rated\") {\n return {\n projectId: input.usage.projectId,\n usageRecordId,\n status: \"rated\",\n billingIdentity,\n pricingContext,\n priceSource: costPriceSource(input.usage, input.cost),\n money: input.cost.money,\n components: input.cost.status === \"rated\" ? input.cost.components : [],\n ratedAt: new Date(input.ratedAt),\n }\n }\n\n const reason =\n input.cost.reason === \"missing-rate-card\"\n ? \"missingRateCard\"\n : input.cost.reason === \"missing-usage\"\n ? \"missingUsageMeter\"\n : input.cost.reason === \"unsupported-pricing-dimension\"\n ? \"unsupportedPricingDimension\"\n : \"invalidUsageForFormula\"\n const missingMeters =\n reason === \"missingUsageMeter\" ? normalizeMissingMeters(input.cost.missingMeters) : undefined\n return {\n projectId: input.usage.projectId,\n usageRecordId,\n status: \"unpriceable\",\n billingIdentity,\n pricingContext,\n reason,\n ...(missingMeters === undefined ? {} : { missingMeters }),\n ratedAt: new Date(input.ratedAt),\n }\n}\n\nfunction costPriceSource(\n usage: RecoverAiModelCallInput[\"usage\"],\n cost: Extract<RecoverAiModelCallInput[\"cost\"], { status: \"reported\" | \"rated\" }>\n) {\n if (cost.status === \"reported\") {\n return {\n sourceId: \"provider-reported\",\n sourceEntryId: `${usage.providerId}/${usage.responseId}`,\n sourceVersion: \"response-v1\",\n observedAt: new Date(usage.occurredAt),\n }\n }\n const rates = cost.components.map(({ meter, rateAmountNanosPerMillion }) => ({\n meter,\n rateAmountNanosPerMillion,\n }))\n const version = createHash(\"sha256\").update(JSON.stringify(rates)).digest(\"hex\")\n return {\n sourceId: \"model-rate-card\",\n sourceEntryId: `${usage.providerId}/${usage.requestedModelId}`,\n sourceVersion: `sha256:${version}`,\n observedAt: new Date(usage.occurredAt),\n }\n}\n\nfunction normalizeMissingMeters(\n meters: Extract<RecoverAiModelCallInput[\"cost\"], { status: \"unpriceable\" }>[\"missingMeters\"]\n): readonly AiBillableMeter[] {\n const fallback: readonly AiBillableMeter[] = [\"tokens.input.total\", \"tokens.output.total\"]\n return [...new Set<AiBillableMeter>(meters ?? fallback)]\n}\n\nexport function requireAccountingCapabilities(\n storage: Pick<Storage, \"aiUsage\" | \"aiCosts\" | \"aiLimits\">\n): AiAccountingCapabilities {\n if (!storage.aiUsage || !storage.aiCosts || !storage.aiLimits) {\n throw new Error(\n \"[SixbModels] AI model-call accounting requires storage.aiUsage, storage.aiCosts, and storage.aiLimits.\"\n )\n }\n return { aiUsage: storage.aiUsage, aiCosts: storage.aiCosts, aiLimits: storage.aiLimits }\n}\n",
8
+ "import type { AiModelCallUsageInput } from \"../../storage\"\nimport type { ModelUsage } from \"../events\"\n\n/** Map one provider-neutral model call into Sixb's durable accounting vocabulary. */\nexport function aiModelCallUsageFromModel(usage: ModelUsage): AiModelCallUsageInput {\n return {\n ...(usage.audioDurationMs === undefined ? {} : { audioDurationMs: usage.audioDurationMs }),\n ...(usage.inputTokens === undefined ? {} : { inputTokens: usage.inputTokens }),\n ...(usage.outputTokens === undefined ? {} : { outputTokens: usage.outputTokens }),\n ...(usage.uncachedInputTokens === undefined\n ? {}\n : { uncachedInputTokens: usage.uncachedInputTokens }),\n ...(usage.cacheReadInputTokens === undefined\n ? {}\n : { cacheReadInputTokens: usage.cacheReadInputTokens }),\n ...(usage.cacheWriteInputTokens === undefined\n ? {}\n : { cacheWriteInputTokens: usage.cacheWriteInputTokens }),\n ...(usage.textOutputTokens === undefined ? {} : { textOutputTokens: usage.textOutputTokens }),\n ...(usage.reasoningOutputTokens === undefined\n ? {}\n : { reasoningOutputTokens: usage.reasoningOutputTokens }),\n ...(usage.imageOutputTokens === undefined\n ? {}\n : { imageOutputTokens: usage.imageOutputTokens }),\n ...(usage.audioOutputTokens === undefined\n ? {}\n : { audioOutputTokens: usage.audioOutputTokens }),\n ...(usage.outputImages === undefined ? {} : { outputImages: usage.outputImages }),\n ...(usage.inputCharacters === undefined ? {} : { inputCharacters: usage.inputCharacters }),\n }\n}\n",
9
9
  "import type { RecordAiModelCallInput, RecordAiModelCallResult } from \"../../storage\"\nimport { AiCostStorageError, AiLimitStorageError, AiUsageStorageError } from \"../../storage\"\nimport { normalizeAiModelCallRecord } from \"../../storage/ai-usage/record\"\nimport { recordAiModelCallAccounting } from \"./model-call-accounting\"\nimport type {\n AiModelCallAccountingPayload,\n AiModelCallRecordPayload,\n AiModelCallRecoveryRecord,\n ModelCallAccountingStorage,\n RecoverAiModelCallInput,\n} from \"./types\"\nimport { aiModelCallUsageFromModel } from \"./usage\"\n\nclass InvalidAiUsageRecoveryJobError extends Error {\n readonly name = \"InvalidAiUsageRecoveryJobError\"\n\n constructor(message: string, options?: ErrorOptions) {\n super(`[SixbModels] ${message}`, options)\n }\n}\n\n/** Encode one failed accounting transaction for a durable, JSON-safe handoff. */\nexport function modelCallRecoveryPayload(input: RecoverAiModelCallInput): {\n readonly record: AiModelCallRecordPayload\n readonly accounting: AiModelCallAccountingPayload\n} {\n normalizeAiModelCallRecord(input.usage)\n return {\n record: toQueuePayload(input.usage),\n accounting: toAccountingPayload(input),\n }\n}\n\n/** Replay one durable handoff through the idempotent atomic accounting boundary. */\nexport async function recordRecoveredAiModelCall(\n storage: Pick<ModelCallAccountingStorage, \"transaction\">,\n job: AiModelCallRecoveryRecord\n): Promise<RecordAiModelCallResult> {\n const usage = fromQueuePayload(job)\n const accounting = accountingFromQueuePayload(job)\n return recordAiModelCallAccounting({ storage, usage, ...accounting })\n}\n\n/** Validation and referential-integrity failures cannot become valid through queue redelivery. */\nexport function isPermanentAiUsageRecoveryError(error: unknown): boolean {\n return (\n error instanceof InvalidAiUsageRecoveryJobError ||\n error instanceof TypeError ||\n (error instanceof AiUsageStorageError &&\n (error.code === \"duplicate_id\" || error.code === \"missing_execution\")) ||\n (error instanceof AiCostStorageError &&\n (error.code === \"missing_usage\" || error.code === \"cost_mismatch\")) ||\n (error instanceof AiLimitStorageError &&\n (error.code === \"missing_execution\" ||\n error.code === \"missing_reservation\" ||\n error.code === \"missing_usage_record\" ||\n error.code === \"usage_mismatch\" ||\n error.code === \"reservation_conflict\" ||\n error.code === \"reconciliation_conflict\" ||\n error.code === \"invalid_reservation_state\"))\n )\n}\n\nfunction toQueuePayload(record: RecordAiModelCallInput): AiModelCallRecordPayload {\n return {\n id: record.id,\n executionId: record.executionId,\n attempt: record.attempt,\n callId: record.callId,\n requesterGroupIds: [...record.requesterGroupIds],\n providerId: record.providerId,\n ...(record.providerIds === undefined\n ? {}\n : { providerIds: structuredClone(record.providerIds) }),\n requestedModelId: record.requestedModelId,\n ...(record.modelKind === undefined ? {} : { modelKind: record.modelKind }),\n ...(record.requestedReasoning === undefined\n ? {}\n : { requestedReasoning: structuredClone(record.requestedReasoning) }),\n ...(record.responseModelId === undefined ? {} : { responseModelId: record.responseModelId }),\n responseId: record.responseId,\n usage: aiModelCallUsageFromModel(record.usage),\n ...(record.rawUsage === undefined ? {} : { rawUsage: structuredClone(record.rawUsage) }),\n occurredAt: record.occurredAt.toISOString(),\n }\n}\n\nfunction toAccountingPayload(input: RecoverAiModelCallInput): AiModelCallAccountingPayload {\n return {\n cost: structuredClone(input.cost),\n ...(input.estimate === undefined ? {} : { estimate: structuredClone(input.estimate) }),\n ...(input.route === undefined ? {} : { route: structuredClone(input.route) }),\n ratedAt: input.ratedAt.toISOString(),\n ...(input.reconcileLimitReservation ? { reconcileLimitReservation: true } : {}),\n }\n}\n\nfunction fromQueuePayload(job: AiModelCallRecoveryRecord): RecordAiModelCallInput {\n const occurredAt = parseDate(job.payload.record.occurredAt, job.id, \"occurredAt\")\n return { ...job.payload.record, projectId: job.projectId, occurredAt }\n}\n\nfunction accountingFromQueuePayload(\n job: AiModelCallRecoveryRecord\n): Omit<RecoverAiModelCallInput, \"usage\"> {\n const accounting = job.payload.accounting\n return {\n cost: structuredClone(accounting.cost),\n ...(accounting.estimate === undefined\n ? {}\n : { estimate: structuredClone(accounting.estimate) }),\n ...(accounting.route === undefined ? {} : { route: structuredClone(accounting.route) }),\n ratedAt: parseDate(accounting.ratedAt, job.id, \"ratedAt\"),\n reconcileLimitReservation: accounting.reconcileLimitReservation === true,\n }\n}\n\nfunction parseDate(value: string, jobId: string, field: string): Date {\n const date = new Date(value)\n if (!Number.isFinite(date.getTime())) {\n throw new InvalidAiUsageRecoveryJobError(\n `AI usage recovery job '${jobId}' has an invalid ${field} timestamp.`\n )\n }\n return date\n}\n",
10
- "import { randomUUID } from \"node:crypto\"\nimport type { ReadonlyJsonObject, RecordAiModelCallInput } from \"../../storage\"\nimport type { ModelCallEndEvent, ModelUsage } from \"../events\"\nimport type { LanguageModel } from \"../language-model\"\nimport { ModelUsageRecordingError } from \"./errors\"\nimport {\n normalizeModelCallAccounting,\n recordAiModelCallAccounting,\n requireAccountingCapabilities,\n} from \"./model-call-accounting\"\nimport {\n type AiModelCallAdmissionInput,\n aiModelCallOutputTokenAllowance,\n estimateAiModelCallInputTokens,\n estimatedAiModelCallTotalTokens,\n} from \"./model-call-admission\"\nimport type { AiModelCallLimitController } from \"./model-call-limits\"\nimport { isPermanentAiUsageRecoveryError } from \"./model-call-recovery\"\nimport type {\n ModelCallAccountingStorage,\n RecoverAiModelCall,\n RecoverAiModelCallInput,\n} from \"./types\"\nimport { aiModelCallUsageFromModel } from \"./usage\"\n\nconst STORAGE_RETRY_DELAYS_MS = [50, 200, 600] as const\n\nexport interface AiModelCallRecorderInput {\n readonly storage: ModelCallAccountingStorage\n readonly projectId: string\n readonly executionId: string\n readonly attempt: number\n readonly requesterGroupIds: readonly string[]\n readonly limits: AiModelCallLimitController\n readonly recoverAiModelCall: RecoverAiModelCall\n}\n\ninterface AiModelCallRecorderInternals {\n readonly generateId?: () => string\n readonly now?: () => Date\n readonly retryDelaysMs?: readonly number[]\n readonly sleep?: (ms: number) => Promise<void>\n readonly recordAccounting?: (input: RecoverAiModelCallInput) => Promise<void>\n}\n\n/** Persist every completed provider call before another billable loop step can start. */\nexport class AiModelCallRecorder {\n private readonly generateId: () => string\n private readonly now: () => Date\n private readonly retryDelaysMs: readonly number[]\n private readonly sleep: (ms: number) => Promise<void>\n private readonly recordAccounting: (input: RecoverAiModelCallInput) => Promise<void>\n private readonly reservations = new Set<string>()\n private admissionError: unknown\n private recordingError: ModelUsageRecordingError | undefined\n\n constructor(\n private readonly input: AiModelCallRecorderInput,\n internals: AiModelCallRecorderInternals = {}\n ) {\n requireAccountingCapabilities(input.storage)\n this.generateId = internals.generateId ?? (() => `ai_usage_${randomUUID()}`)\n this.now = internals.now ?? (() => new Date())\n this.retryDelaysMs = internals.retryDelaysMs ?? STORAGE_RETRY_DELAYS_MS\n this.sleep = internals.sleep ?? sleep\n this.recordAccounting =\n internals.recordAccounting ??\n (async (recovery) => {\n await recordAiModelCallAccounting({ storage: this.input.storage, ...recovery })\n })\n }\n\n /** The execution every call this recorder admits is attributed to. */\n get executionId(): string {\n return this.input.executionId\n }\n\n /** The execution attempt every call this recorder admits is attributed to. */\n get attempt(): number {\n return this.input.attempt\n }\n\n /** Wrap the resolved model so all calls in an execution share admission. */\n wrapModel(model: LanguageModel): LanguageModel {\n return {\n providerId: model.providerId,\n modelId: model.modelId,\n definition: model.definition,\n costEstimator: model.costEstimator,\n ...(model.validateResponseFormat === undefined\n ? {}\n : { validateResponseFormat: model.validateResponseFormat.bind(model) }),\n stream: async (request) => {\n this.assertHealthy()\n const inputTokens = estimateAiModelCallInputTokens({\n prompt: request.messages,\n tools: request.tools,\n responseFormat: request.responseFormat,\n })\n const outputTokenAllowance = aiModelCallOutputTokenAllowance(request.maxOutputTokens)\n await this.admitCall({\n callId: request.callId,\n providerId: model.providerId,\n modelId: model.modelId,\n costEstimator: model.costEstimator,\n inputTokens,\n outputTokenAllowance,\n estimatedTotalTokens: estimatedAiModelCallTotalTokens(inputTokens, outputTokenAllowance),\n })\n try {\n return await model.stream(request)\n } catch (error) {\n await this.markCallUnknown(request.callId)\n throw error\n }\n },\n }\n }\n\n /** Admit one provider attempt, independently of its language or embedding protocol. */\n async admitCall(\n call: Omit<\n AiModelCallAdmissionInput,\n \"projectId\" | \"executionId\" | \"attempt\" | \"requesterGroupIds\"\n >\n ): Promise<void> {\n this.assertHealthy()\n try {\n const decision = await this.input.limits.beforeModelCall({\n ...call,\n projectId: this.input.projectId,\n executionId: this.input.executionId,\n attempt: this.input.attempt,\n requesterGroupIds: this.input.requesterGroupIds,\n })\n if (decision.reservation === \"active\") this.reservations.add(call.callId)\n } catch (error) {\n // Execution boundaries must retain the original coded admission failure.\n this.admissionError = error\n throw error\n }\n }\n\n /** Keep an unresolved reservation when an attempted call's billable outcome is unknown. */\n private async markCallUnknown(callId: string): Promise<void> {\n if (!this.reservations.has(callId)) return\n await this.input.limits.markModelCallUnknown({\n projectId: this.input.projectId,\n executionId: this.input.executionId,\n attempt: this.input.attempt,\n callId,\n })\n }\n\n readonly onModelCallEnd = async (event: ModelCallEndEvent): Promise<void> => {\n // Calls already in flight still need their own accounting after another call fails.\n // Only admission is gated by the execution's sticky failure.\n try {\n const occurredAt = this.now()\n const record: RecordAiModelCallInput = {\n id: this.generateId(),\n projectId: this.input.projectId,\n executionId: this.input.executionId,\n attempt: this.input.attempt,\n callId: event.callId,\n requesterGroupIds: this.input.requesterGroupIds,\n providerId: event.providerId,\n ...(event.providerIds === undefined ? {} : { providerIds: event.providerIds }),\n requestedModelId: event.modelId,\n ...(event.modelKind === undefined ? {} : { modelKind: event.modelKind }),\n ...(event.requestedReasoning === undefined\n ? {}\n : { requestedReasoning: event.requestedReasoning }),\n ...(event.responseModelId === undefined ? {} : { responseModelId: event.responseModelId }),\n responseId: event.responseId,\n usage: aiModelCallUsageFromModel(event.usage),\n ...(event.usage.raw === undefined ? {} : { rawUsage: rawUsage(event.usage) }),\n occurredAt,\n }\n const recoveryInput = normalizeModelCallAccounting({\n usage: record,\n cost: event.cost,\n ...(event.estimate === undefined ? {} : { estimate: event.estimate }),\n ...(event.route === undefined ? {} : { route: event.route }),\n ratedAt: new Date(occurredAt),\n ...(this.reservations.has(event.callId) ? { reconcileLimitReservation: true } : {}),\n })\n\n try {\n await retryOperation(\n () => this.recordAccounting(recoveryInput),\n this.retryDelaysMs,\n this.sleep,\n (error) => !isPermanentAiUsageRecoveryError(error)\n )\n } catch (storageError) {\n if (isPermanentAiUsageRecoveryError(storageError)) throw storageError\n\n try {\n await retryOperation(\n () => this.input.recoverAiModelCall(recoveryInput),\n this.retryDelaysMs,\n this.sleep,\n (error) => !isPermanentAiUsageRecoveryError(error)\n )\n } catch (recoveryError) {\n throw new AggregateError(\n [storageError, recoveryError],\n \"Direct AI accounting and durable recovery both failed.\"\n )\n }\n throw new ModelUsageRecordingError(this.input.executionId, event.callId, true, {\n cause: storageError,\n })\n }\n } catch (error) {\n const recordingError =\n error instanceof ModelUsageRecordingError\n ? error\n : new ModelUsageRecordingError(this.input.executionId, event.callId, false, {\n cause: error,\n })\n this.recordingError ??= recordingError\n throw recordingError\n }\n }\n\n assertHealthy(): void {\n if (this.admissionError !== undefined) throw this.admissionError\n if (this.recordingError) throw this.recordingError\n }\n}\n\nfunction rawUsage(usage: ModelUsage): ReadonlyJsonObject {\n return structuredClone(usage.raw ?? {})\n}\n\nasync function retryOperation<TResult>(\n operation: () => Promise<TResult>,\n retryDelaysMs: readonly number[],\n wait: (ms: number) => Promise<void>,\n shouldRetry: (error: unknown) => boolean\n): Promise<TResult> {\n for (let attempt = 0; ; attempt += 1) {\n try {\n return await operation()\n } catch (error) {\n if (!shouldRetry(error)) throw error\n const delay = retryDelaysMs[attempt]\n if (delay === undefined) throw error\n await wait(delay)\n }\n }\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n",
10
+ "import { randomUUID } from \"node:crypto\"\nimport type { FileRef } from \"../../blob-storage/types\"\nimport {\n AiUsageStorageError,\n type ReadonlyJsonObject,\n type RecordAiModelCallInput,\n} from \"../../storage\"\nimport type { ModelCallEndEvent, ModelUsage } from \"../events\"\nimport type { LanguageModel } from \"../language-model\"\nimport { ModelUsageRecordingError } from \"./errors\"\nimport {\n normalizeModelCallAccounting,\n recordAiModelCallAccounting,\n requireAccountingCapabilities,\n} from \"./model-call-accounting\"\nimport {\n type AiModelCallAdmissionInput,\n aiModelCallOutputTokenAllowance,\n estimateAiModelCallInputTokens,\n estimatedAiModelCallTotalTokens,\n} from \"./model-call-admission\"\nimport type { AiModelCallLimitController } from \"./model-call-limits\"\nimport { isPermanentAiUsageRecoveryError } from \"./model-call-recovery\"\nimport type {\n ModelCallAccountingStorage,\n RecoverAiModelCall,\n RecoverAiModelCallInput,\n} from \"./types\"\nimport { aiModelCallUsageFromModel } from \"./usage\"\n\nconst STORAGE_RETRY_DELAYS_MS = [50, 200, 600] as const\n\nexport interface AiModelCallRecorderInput {\n readonly storage: ModelCallAccountingStorage\n readonly projectId: string\n readonly executionId: string\n readonly attempt: number\n readonly requesterGroupIds: readonly string[]\n readonly limits: AiModelCallLimitController\n readonly recoverAiModelCall: RecoverAiModelCall\n}\n\ninterface AiModelCallRecorderInternals {\n readonly generateId?: () => string\n readonly now?: () => Date\n readonly retryDelaysMs?: readonly number[]\n readonly sleep?: (ms: number) => Promise<void>\n readonly recordAccounting?: (input: RecoverAiModelCallInput) => Promise<void>\n}\n\n/** Persist every completed provider call before another billable loop step can start. */\nexport class AiModelCallRecorder {\n private readonly generateId: () => string\n private readonly now: () => Date\n private readonly retryDelaysMs: readonly number[]\n private readonly sleep: (ms: number) => Promise<void>\n private readonly recordAccounting: (input: RecoverAiModelCallInput) => Promise<void>\n private readonly reservations = new Set<string>()\n private admissionError: unknown\n private recordingError: ModelUsageRecordingError | undefined\n\n constructor(\n private readonly input: AiModelCallRecorderInput,\n internals: AiModelCallRecorderInternals = {}\n ) {\n requireAccountingCapabilities(input.storage)\n this.generateId = internals.generateId ?? (() => `ai_usage_${randomUUID()}`)\n this.now = internals.now ?? (() => new Date())\n this.retryDelaysMs = internals.retryDelaysMs ?? STORAGE_RETRY_DELAYS_MS\n this.sleep = internals.sleep ?? sleep\n this.recordAccounting =\n internals.recordAccounting ??\n (async (recovery) => {\n await recordAiModelCallAccounting({ storage: this.input.storage, ...recovery })\n })\n }\n\n /** The execution every call this recorder admits is attributed to. */\n get executionId(): string {\n return this.input.executionId\n }\n\n /** The execution attempt every call this recorder admits is attributed to. */\n get attempt(): number {\n return this.input.attempt\n }\n\n /** Wrap the resolved model so all calls in an execution share admission. */\n wrapModel(model: LanguageModel): LanguageModel {\n return {\n providerId: model.providerId,\n modelId: model.modelId,\n definition: model.definition,\n costEstimator: model.costEstimator,\n ...(model.validateResponseFormat === undefined\n ? {}\n : { validateResponseFormat: model.validateResponseFormat.bind(model) }),\n stream: async (request) => {\n this.assertHealthy()\n const inputTokens = estimateAiModelCallInputTokens({\n prompt: request.messages,\n tools: request.tools,\n responseFormat: request.responseFormat,\n })\n const outputTokenAllowance = aiModelCallOutputTokenAllowance(request.maxOutputTokens)\n await this.admitCall({\n callId: request.callId,\n providerId: model.providerId,\n modelId: model.modelId,\n costEstimator: model.costEstimator,\n inputTokens,\n outputTokenAllowance,\n estimatedTotalTokens: estimatedAiModelCallTotalTokens(inputTokens, outputTokenAllowance),\n })\n try {\n return await model.stream(request)\n } catch (error) {\n await this.markCallUnknown(request.callId)\n throw error\n }\n },\n }\n }\n\n /** Admit one provider attempt, independently of its language or embedding protocol. */\n async admitCall(\n call: Omit<\n AiModelCallAdmissionInput,\n \"projectId\" | \"executionId\" | \"attempt\" | \"requesterGroupIds\"\n >\n ): Promise<void> {\n this.assertHealthy()\n try {\n const decision = await this.input.limits.beforeModelCall({\n ...call,\n projectId: this.input.projectId,\n executionId: this.input.executionId,\n attempt: this.input.attempt,\n requesterGroupIds: this.input.requesterGroupIds,\n })\n if (decision.reservation === \"active\") this.reservations.add(call.callId)\n } catch (error) {\n // Execution boundaries must retain the original coded admission failure.\n this.admissionError = error\n throw error\n }\n }\n\n /** Keep an unresolved reservation when an attempted call's billable outcome is unknown. */\n private async markCallUnknown(callId: string): Promise<void> {\n if (!this.reservations.has(callId)) return\n await this.input.limits.markModelCallUnknown({\n projectId: this.input.projectId,\n executionId: this.input.executionId,\n attempt: this.input.attempt,\n callId,\n })\n }\n\n readonly onModelCallEnd = async (event: ModelCallEndEvent): Promise<void> => {\n // Calls already in flight still need their own accounting after another call fails.\n // Only admission is gated by the execution's sticky failure.\n try {\n const occurredAt = this.now()\n const record: RecordAiModelCallInput = {\n id: this.generateId(),\n projectId: this.input.projectId,\n executionId: this.input.executionId,\n attempt: this.input.attempt,\n callId: event.callId,\n requesterGroupIds: this.input.requesterGroupIds,\n providerId: event.providerId,\n ...(event.providerIds === undefined ? {} : { providerIds: event.providerIds }),\n requestedModelId: event.modelId,\n ...(event.modelKind === undefined ? {} : { modelKind: event.modelKind }),\n ...(event.requestedReasoning === undefined\n ? {}\n : { requestedReasoning: event.requestedReasoning }),\n ...(event.responseModelId === undefined ? {} : { responseModelId: event.responseModelId }),\n responseId: event.responseId,\n usage: aiModelCallUsageFromModel(event.usage),\n ...(event.usage.raw === undefined ? {} : { rawUsage: rawUsage(event.usage) }),\n occurredAt,\n }\n const recoveryInput = normalizeModelCallAccounting({\n usage: record,\n cost: event.cost,\n ...(event.estimate === undefined ? {} : { estimate: event.estimate }),\n ...(event.route === undefined ? {} : { route: event.route }),\n ratedAt: new Date(occurredAt),\n ...(this.reservations.has(event.callId) ? { reconcileLimitReservation: true } : {}),\n })\n\n try {\n await retryOperation(\n () => this.recordAccounting(recoveryInput),\n this.retryDelaysMs,\n this.sleep,\n (error) => !isPermanentAiUsageRecoveryError(error)\n )\n } catch (storageError) {\n if (isPermanentAiUsageRecoveryError(storageError)) throw storageError\n\n try {\n await retryOperation(\n () => this.input.recoverAiModelCall(recoveryInput),\n this.retryDelaysMs,\n this.sleep,\n (error) => !isPermanentAiUsageRecoveryError(error)\n )\n } catch (recoveryError) {\n throw new AggregateError(\n [storageError, recoveryError],\n \"Direct AI accounting and durable recovery both failed.\"\n )\n }\n throw new ModelUsageRecordingError(this.input.executionId, event.callId, true, {\n cause: storageError,\n })\n }\n } catch (error) {\n const recordingError =\n error instanceof ModelUsageRecordingError\n ? error\n : new ModelUsageRecordingError(this.input.executionId, event.callId, false, {\n cause: error,\n })\n this.recordingError ??= recordingError\n throw recordingError\n }\n }\n\n /** Record the files a completed call produced; the call's readers download them through it. */\n async recordFiles(callId: string, files: readonly FileRef[]): Promise<void> {\n try {\n await retryOperation(\n () =>\n this.input.storage.aiUsage.recordModelCallFiles({\n projectId: this.input.projectId,\n executionId: this.input.executionId,\n callId,\n files,\n }),\n this.retryDelaysMs,\n this.sleep,\n (error) => !(error instanceof TypeError || error instanceof AiUsageStorageError)\n )\n } catch (error) {\n throw new Error(\n `[SixbModels] Model call '${callId}' completed, but its files could not be recorded.`,\n { cause: error }\n )\n }\n }\n\n assertHealthy(): void {\n if (this.admissionError !== undefined) throw this.admissionError\n if (this.recordingError) throw this.recordingError\n }\n}\n\nfunction rawUsage(usage: ModelUsage): ReadonlyJsonObject {\n return structuredClone(usage.raw ?? {})\n}\n\nasync function retryOperation<TResult>(\n operation: () => Promise<TResult>,\n retryDelaysMs: readonly number[],\n wait: (ms: number) => Promise<void>,\n shouldRetry: (error: unknown) => boolean\n): Promise<TResult> {\n for (let attempt = 0; ; attempt += 1) {\n try {\n return await operation()\n } catch (error) {\n if (!shouldRetry(error)) throw error\n const delay = retryDelaysMs[attempt]\n if (delay === undefined) throw error\n await wait(delay)\n }\n }\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n",
11
11
  "import type { AiModelCallReservationIdentity } from \"../../storage\"\nimport type { ModelKind } from \"../definitions\"\nimport type { ModelCostEstimator, ModelMoney } from \"../pricing\"\n\n/** Default output ceiling when a call and its resolved model supply no limit. */\nexport const AI_MODEL_CALL_OUTPUT_TOKEN_ALLOWANCE = 4_096\n\nexport type AiModelCallInputTokenEstimate =\n | {\n readonly status: \"estimated\"\n readonly tokens: number\n readonly method: \"utf8BytesDividedByFour\"\n }\n | {\n readonly status: \"unavailable\"\n readonly reason: \"nonTextInput\" | \"unserializableInput\"\n }\n\n/** Provider-neutral snapshot passed to aggregate-budget admission before a provider request. */\nexport interface AiModelCallAdmissionInput {\n readonly projectId: string\n readonly executionId: string\n readonly attempt: number\n readonly requesterGroupIds: readonly string[]\n readonly callId: string\n readonly providerId: string\n readonly modelId: string\n /** Selects the applicable limit meters; transcription and reranking skip token limits. */\n readonly modelKind?: ModelKind\n readonly costEstimator?: ModelCostEstimator\n /** A non-token estimate, computed by the resolved binding before inference. */\n readonly reservationCost?: ModelMoney\n readonly inputTokens: AiModelCallInputTokenEstimate\n readonly outputTokenAllowance: number\n readonly estimatedTotalTokens?: number\n}\n\nexport interface AiModelCallAdmissionDecision {\n /** Active means accounting must reconcile the reservation for this provider attempt. */\n readonly reservation: \"active\" | \"none\"\n}\n\nexport type BeforeAiModelCall = (\n input: AiModelCallAdmissionInput\n) => AiModelCallAdmissionDecision | Promise<AiModelCallAdmissionDecision>\n\nexport type MarkAiModelCallUnknown = (input: AiModelCallReservationIdentity) => void | Promise<void>\n\n/**\n * Estimate the exact, prepared provider request without requiring a provider-specific tokenizer.\n *\n * The heuristic is intentionally explicit so reservations are reproducible. Non-text inputs are\n * reported as unavailable; an enforced token or cost policy can then fail closed instead of\n * pretending that an image, file, or provider-defined payload has no token cost.\n */\nexport function estimateAiModelCallInputTokens(input: {\n readonly prompt: unknown\n readonly tools: unknown\n readonly responseFormat: unknown\n}): AiModelCallInputTokenEstimate {\n if (containsNonTextInput(input.prompt)) {\n return { status: \"unavailable\", reason: \"nonTextInput\" }\n }\n\n let serialized: string | undefined\n try {\n serialized = JSON.stringify(input)\n } catch {\n return { status: \"unavailable\", reason: \"unserializableInput\" }\n }\n if (serialized === undefined) {\n return { status: \"unavailable\", reason: \"unserializableInput\" }\n }\n\n const bytes = new TextEncoder().encode(serialized).byteLength\n return {\n status: \"estimated\",\n tokens: Math.ceil(bytes / 4),\n method: \"utf8BytesDividedByFour\",\n }\n}\n\nexport function aiModelCallOutputTokenAllowance(maxOutputTokens: number | undefined): number {\n if (maxOutputTokens === undefined) return AI_MODEL_CALL_OUTPUT_TOKEN_ALLOWANCE\n if (!Number.isSafeInteger(maxOutputTokens) || maxOutputTokens <= 0) {\n throw new TypeError(\n \"[SixbModels] AI model-call maxOutputTokens must be a positive safe integer.\"\n )\n }\n return maxOutputTokens\n}\n\nexport function estimatedAiModelCallTotalTokens(\n inputTokens: AiModelCallInputTokenEstimate,\n outputTokenAllowance: number\n): number | undefined {\n if (inputTokens.status !== \"estimated\") return undefined\n const total = inputTokens.tokens + outputTokenAllowance\n if (!Number.isSafeInteger(total)) {\n throw new TypeError(\"[SixbModels] AI model-call token estimate exceeds the safe range.\")\n }\n return total\n}\n\nfunction containsNonTextInput(value: unknown, seen = new WeakSet<object>()): boolean {\n if (value === null || typeof value !== \"object\") return false\n if (\n value instanceof URL ||\n value instanceof ArrayBuffer ||\n ArrayBuffer.isView(value) ||\n (typeof Blob !== \"undefined\" && value instanceof Blob)\n ) {\n return true\n }\n if (seen.has(value)) return false\n seen.add(value)\n\n if (!Array.isArray(value)) {\n const type = Reflect.get(value, \"type\")\n if (\n type === \"image\" ||\n type === \"file\" ||\n type === \"reasoning-file\" ||\n type === \"custom\" ||\n type === \"provider-state\"\n ) {\n return true\n }\n }\n\n return Object.values(value).some((entry) => containsNonTextInput(entry, seen))\n}\n",
12
12
  "import { createSixbError } from \"../../errors/internal\"\nimport type { AgentQueueJob, Queue } from \"../../queues\"\nimport { modelCallRecoveryPayload } from \"./model-call-recovery\"\nimport type { RecoverAiModelCallInput } from \"./types\"\n\n/** Stable queue identity: a lost enqueue response can safely retry the same accounting handoff. */\nfunction agentAiUsageRecoveryJobId(recordId: string): string {\n return `agt_usage_job_${recordId}`\n}\n\n/** Transport adapter for the agent worker's existing durable recovery lane. */\nexport async function enqueueAiModelCallRecovery(\n queue: Pick<Queue<AgentQueueJob>, \"enqueue\">,\n input: RecoverAiModelCallInput\n): Promise<void> {\n const payload = modelCallRecoveryPayload(input)\n const record = input.usage\n const jobId = agentAiUsageRecoveryJobId(record.id)\n const [job] = await queue.enqueue({\n projectId: record.projectId,\n jobs: [{ id: jobId, type: \"agent.ai-usage.record.requested\", payload }],\n })\n\n if (job?.id !== jobId || job.type !== \"agent.ai-usage.record.requested\") {\n throw createSixbError(\n \"internal.unexpected\",\n `[SixbModels] Agent queue did not confirm AI usage recovery job '${jobId}'.`,\n { details: { jobId } }\n )\n }\n}\n"
13
13
  ],
14
- "mappings": "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",
15
- "debugId": "4BD85BF64D5B7A3564756E2164756E21",
14
+ "mappings": "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",
15
+ "debugId": "8311E82DEB61C61564756E2164756E21",
16
16
  "names": []
17
17
  }