@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
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/storage/agents/provider.ts", "../src/agents/ids.ts", "../src/agents/types.ts", "../src/storage/agents/errors.ts"],
4
+ "sourcesContent": [
5
+ "import { isDeepStrictEqual } from \"node:util\"\nimport { createAgentMessageId, createCopiedAgentContextCheckpointId } from \"../../agents/ids\"\nimport { AGENT_REASONING_LEVELS } from \"../../agents/types\"\nimport type { Principal, UserPrincipal } from \"../../auth\"\nimport { isFileRef } from \"../../blob-storage/validation\"\nimport { isJsonObject, isPlainRecord } from \"../../json\"\nimport { isLanguageModelTier, LANGUAGE_MODEL_TIERS } from \"../../models/catalog\"\nimport { isModelReasoning } from \"../../models/language-model\"\nimport type { ExecutionRecord, ExecutionStorage } from \"../executions\"\nimport { findAgentRunExecution } from \"../executions/run-link\"\nimport { AgentStorageError } from \"./errors\"\nimport type {\n AddAgentThreadParticipantsInput,\n AgentApprovalCall,\n AgentApprovalMode,\n AgentApprovalRecord,\n AgentApprovalStatus,\n AgentContextCheckpointRecord,\n AgentMemoryChange,\n AgentMessageRecord,\n AgentRunRecord,\n AgentThreadParticipantRecord,\n AgentThreadRecord,\n AgentThreadSandboxParams,\n AgentThreadSandboxState,\n ConversationAgentRunSpec,\n CreateAgentContextCheckpointInput,\n CreateSubagentRunInput,\n FinishAgentRunInput,\n ForkAgentThreadInput,\n ListAgentApprovalsInput,\n RequestAgentApprovalInput,\n SaveAgentMemoryInput,\n StopAgentApprovalsInput,\n SubagentRunFile,\n SubagentRunRecord,\n SubagentRunResult,\n TransitionAgentThreadSandboxInput,\n} from \"./types\"\nimport {\n AGENT_APPROVAL_MODES,\n AGENT_HOLDING_APPROVAL_MODES,\n AGENT_MEMORY_HISTORY_DAYS,\n} from \"./types\"\n\nconst SANDBOX_NAME_PATTERN = /^[a-zA-Z0-9-]{1,80}$/\n\n/**\n * Shared state machine. Providers must lock the run, then thread, around this decision/write.\n *\n * A conversation has a workspace once its sandbox is configured. A sub-agent's thread may keep a\n * blank one while the sub-agent pauses, fenced by the thread's active run as a turn's is. Its\n * next run starts a fresh one where a conversation's would need an explicit recreation.\n */\nexport function transitionAgentThreadSandbox(\n thread: AgentThreadRecord | null,\n run: AgentRunRecord | null,\n input: TransitionAgentThreadSandboxInput\n): AgentThreadSandboxState {\n const fail = (message: string): never => {\n throw new AgentStorageError(\"invalid_state\", `[Sixb] Sandbox ${message}`)\n }\n if (!thread || (!thread.sandboxParams && thread.kind !== \"subagent\")) {\n return fail(\"is not configured on this thread.\")\n }\n if (!SANDBOX_NAME_PATTERN.test(input.name)) return fail(\"name is invalid.\")\n const state = thread.sandboxState\n if (input.action === \"recreate\") {\n if (thread.activeRunId !== null) return fail(\"cannot be recreated during an active run.\")\n if (!state || state.name !== input.expectedSandboxName || input.name === state.name)\n return fail(\"changed; reload before recreating.\")\n if (![\"busy\", \"blocked\", \"unavailable\"].includes(state.status)) {\n return fail(\"does not require recovery.\")\n }\n return {\n name: input.name,\n status: \"new\",\n initialized: false,\n resetAt: new Date().toISOString(),\n }\n }\n if (\n !run ||\n run.threadId !== thread.id ||\n run.status !== \"running\" ||\n thread.activeRunId !== run.id ||\n run.id !== input.runId ||\n run.execution?.token !== input.executionToken ||\n run.execution.queueLeaseExpiresAt.getTime() <= Date.now()\n ) {\n throw new AgentStorageError(\"execution_lost\", \"[Sixb] Sandbox execution ownership was lost.\")\n }\n if (input.action === \"acquire\") {\n if (state && state.status !== \"new\" && state.status !== \"ready\") {\n if (thread.kind === \"subagent\" && state.name !== input.name) {\n return startSubagentWorkspaceAgain(input)\n }\n return fail(\"requires recovery; previous operations may still be in flight.\")\n }\n if (state && state.name !== input.name) return fail(\"name changed.\")\n if (!/^[a-f0-9]{64}$/.test(input.sourceFingerprint))\n return fail(\"source fingerprint is invalid.\")\n if (state?.sourceFingerprint && state.sourceFingerprint !== input.sourceFingerprint) {\n return fail(\"source identity changed; the existing checkout was not opened.\")\n }\n return {\n name: input.name,\n status: \"busy\",\n initialized: state?.initialized ?? false,\n ...(state?.resetAt ? { resetAt: state.resetAt } : {}),\n sourceFingerprint: input.sourceFingerprint,\n owner: { runId: input.runId, executionToken: input.executionToken },\n }\n }\n if (\n state?.status !== \"busy\" ||\n state.name !== input.name ||\n state.owner?.runId !== input.runId ||\n state.owner.executionToken !== input.executionToken\n ) {\n return fail(\"is not owned by this execution.\")\n }\n if (input.action === \"replace\") {\n if (\n !state.initialized ||\n input.nextName === state.name ||\n !SANDBOX_NAME_PATTERN.test(input.nextName)\n ) {\n return fail(\"replacement requires initialized state and a fresh valid name.\")\n }\n // Only the owning worker may report confirmed loss; retain its fence across replacement.\n return {\n ...state,\n name: input.nextName,\n initialized: false,\n resetAt: new Date().toISOString(),\n }\n }\n if (input.status === \"ready\" && !input.initialized) return fail(\"initialization is incomplete.\")\n return {\n name: state.name,\n status: input.status,\n initialized: input.initialized,\n sourceFingerprint: state.sourceFingerprint,\n ...(state.resetAt ? { resetAt: state.resetAt } : {}),\n }\n}\n\n/**\n * A sub-agent's thread whose workspace an ended run left destroyed, unsaved or in doubt: the run\n * that continues it starts from a fresh one, under a new name, and is told its files were reset.\n * Nobody can recreate a sub-agent's workspace, and the thread's single active run is this one, so\n * whatever the old name still holds is never opened again.\n */\nfunction startSubagentWorkspaceAgain(\n input: Extract<TransitionAgentThreadSandboxInput, { readonly action: \"acquire\" }>\n): AgentThreadSandboxState {\n if (!/^[a-f0-9]{64}$/.test(input.sourceFingerprint)) {\n throw new AgentStorageError(\"invalid_state\", \"[Sixb] Sandbox source fingerprint is invalid.\")\n }\n return {\n name: input.name,\n status: \"busy\",\n initialized: false,\n resetAt: new Date().toISOString(),\n sourceFingerprint: input.sourceFingerprint,\n owner: { runId: input.runId, executionToken: input.executionToken },\n }\n}\n\n/** Snapshot application parameters independently of worker-owned sandbox state. */\nexport function snapshotAgentThreadSandboxParams(value: unknown): AgentThreadSandboxParams {\n if (!isPlainRecord(value) || !isJsonObject(value)) {\n throw new AgentStorageError(\n \"invalid_input\",\n \"[Sixb] Thread sandbox must contain only JSON params.\"\n )\n }\n return structuredClone(value)\n}\n\n/**\n * The users an add actually adds: those not already taking part. Providers call it under the\n * thread's lock with the participants they read there, so the cap holds across concurrent adds.\n * Who may be added is the caller's decision; this enforces only the cap.\n */\nexport function participantsToAdd(\n input: AddAgentThreadParticipantsInput,\n existing: readonly AgentThreadParticipantRecord[],\n prefix = \"Sixb\"\n): readonly UserPrincipal[] {\n const taken = new Set(existing.map((participant) => participant.principal.id))\n const added = input.principals.filter((principal) => !taken.has(principal.id))\n\n if (existing.length + added.length > input.maxParticipants) {\n throw new AgentStorageError(\n \"participant_limit\",\n `[${prefix}] Agent thread '${input.threadId}' can have at most ${input.maxParticipants} participants.`\n )\n }\n\n return added\n}\n\n/**\n * Participants oldest first, then by user id and thread id compared as UTF-8 bytes: the order\n * PostgreSQL's \"C\" collation and SQLite's binary one give, so every provider lists them alike.\n */\nexport function compareAgentThreadParticipants(\n left: AgentThreadParticipantRecord,\n right: AgentThreadParticipantRecord\n): number {\n return (\n left.addedAt.getTime() - right.addedAt.getTime() ||\n Buffer.compare(Buffer.from(left.principal.id), Buffer.from(right.principal.id)) ||\n Buffer.compare(Buffer.from(left.threadId), Buffer.from(right.threadId))\n )\n}\n\nconst ARTIFACT_ID_TOKEN = /art_[0-9a-z]{10}/g\n\n/**\n * Text with each artifact id the copies map replaced by its copy's: a copied message's parts, as\n * JSON, or a summary. Ids are fixed-length tokens, so one never matches inside another.\n */\nexport function remapArtifactIds(\n text: string,\n copies: Readonly<Record<string, string>> | undefined\n): string {\n if (!copies || Object.keys(copies).length === 0) return text\n return text.replace(ARTIFACT_ID_TOKEN, (id) => copies[id] ?? id)\n}\n\n/** What a fork reads from its source thread, inside the provider's transaction. */\nexport interface AgentThreadForkSource {\n /** The active run's trigger message, when a turn is running. */\n readonly triggerMessageId?: string\n /**\n * Every message of the source, ordered by ascending `seq`. `counted: false` marks one the thread\n * does not count ({@link countsAsThreadMessage}); a provider reads it from the parts it copies.\n */\n readonly messages: readonly (Pick<AgentMessageRecord, \"id\" | \"seq\"> & {\n readonly counted?: boolean\n })[]\n /** Every checkpoint of the source, latest first, in `getLatest` order. */\n readonly checkpoints: readonly AgentContextCheckpointRecord[]\n}\n\n/** The rows a provider writes for a fork. */\nexport interface AgentThreadForkPlan {\n readonly thread: AgentThreadRecord\n /** The source messages to copy, in `seq` order, with the id of each copy. */\n readonly messages: readonly { readonly sourceId: string; readonly id: string }[]\n readonly checkpoint?: AgentContextCheckpointRecord\n}\n\n/**\n * Decide what a fork copies. While a turn is running, the fork copies what came before its trigger\n * message, so the copy never has a gap; otherwise it copies everything. Copies keep their `seq`,\n * so the latest checkpoint whose observed head was copied projects unchanged.\n *\n * The plan mints the ids of the copies: which messages are copied is only known here, under the\n * provider's lock, so the caller cannot supply them.\n */\n/**\n * Whether a message counts in its thread's `messageCount`, which reads as what the conversation\n * shows. The message Sixb writes to resume a paused turn carries only how its calls ended, which the\n * chat shows on their cards: it is not counted.\n */\nexport function countsAsThreadMessage(message: Pick<AgentMessageRecord, \"parts\">): boolean {\n return !(\n message.parts.length > 0 && message.parts.every((part) => part.type === \"approval-outcome\")\n )\n}\n\nexport function planAgentThreadFork(\n input: ForkAgentThreadInput,\n source: AgentThreadForkSource,\n prefix = \"Sixb\"\n): AgentThreadForkPlan {\n const createdAt = new Date(input.createdAt ?? new Date())\n const sandboxState = forkedSandboxState(input, createdAt, prefix)\n\n const trigger = source.messages.find((message) => message.id === source.triggerMessageId)\n const copied =\n trigger === undefined\n ? source.messages\n : source.messages.filter((message) => message.seq < trigger.seq)\n const lastCopiedSeq = copied.at(-1)?.seq ?? 0\n\n const checkpoint = source.checkpoints.find(\n (candidate) => candidate.observedHeadSeq <= lastCopiedSeq\n )\n\n const thread: AgentThreadRecord = {\n id: input.id,\n projectId: input.projectId,\n kind: \"conversation\",\n ownerPrincipal: structuredClone(input.ownerPrincipal),\n ...(input.title === undefined ? {} : { title: input.title }),\n ...(input.sandboxParams === undefined\n ? {}\n : { sandboxParams: snapshotAgentThreadSandboxParams(input.sandboxParams) }),\n ...(sandboxState === undefined ? {} : { sandboxState }),\n status: \"active\",\n activeRunId: null,\n // No `lastMessageAt` until the fork's first new message: threads sort by it, else by their\n // creation, so a fork of an old conversation sorts with what its owner just did.\n messageCount: copied.filter((message) => message.counted !== false).length,\n createdAt,\n updatedAt: createdAt,\n }\n\n return {\n thread,\n messages: copied.map((message) => ({ sourceId: message.id, id: createAgentMessageId() })),\n ...(checkpoint === undefined\n ? {}\n : {\n checkpoint: {\n ...copyCheckpoint(checkpoint, input.id),\n summary: remapArtifactIds(checkpoint.summary, input.artifactCopies),\n },\n }),\n }\n}\n\n/**\n * The copy starts the fork's chain: its predecessors stay in the source. Its `createdByRunId`\n * still names the source run, under a foreign key that restricts deletion: deleting runs or\n * threads later must account for the forks that copied their checkpoints.\n */\nfunction copyCheckpoint(\n checkpoint: AgentContextCheckpointRecord,\n threadId: string\n): AgentContextCheckpointRecord {\n const { previousCheckpointId: _previous, ...copied } = structuredClone(checkpoint)\n return { ...copied, id: createCopiedAgentContextCheckpointId(), threadId }\n}\n\n/** A fresh sandbox, reset at the fork, so the Agent knows earlier local files are not there. */\nfunction forkedSandboxState(\n input: ForkAgentThreadInput,\n createdAt: Date,\n prefix: string\n): AgentThreadSandboxState | undefined {\n if ((input.sandboxParams === undefined) !== (input.sandboxName === undefined)) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] A forked thread needs a sandbox name exactly when it has sandbox params.`\n )\n }\n\n if (input.sandboxName === undefined) return undefined\n\n if (!SANDBOX_NAME_PATTERN.test(input.sandboxName)) {\n throw new AgentStorageError(\"invalid_input\", `[${prefix}] Sandbox name is invalid.`)\n }\n\n return {\n name: input.sandboxName,\n status: \"new\",\n initialized: false,\n resetAt: createdAt.toISOString(),\n }\n}\n\n/** Validate the provider-neutral model selection captured for a conversational turn. */\nexport function assertConversationAgentRunSpec(\n spec: ConversationAgentRunSpec,\n prefix = \"Sixb\"\n): void {\n if (!isRecord(spec) || !isRecord(spec.model)) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Conversational Agent run spec must contain a model reference.`\n )\n }\n for (const [name, value] of [\n [\"model.provider\", spec.model.provider],\n [\"model.modelId\", spec.model.modelId],\n ] as const) {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Conversational Agent run '${name}' must not be empty.`\n )\n }\n }\n if (spec.reasoning !== undefined && !isModelReasoning(spec.reasoning)) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Conversational Agent reasoning must be one of: ${AGENT_REASONING_LEVELS.join(\", \")}, or a nonnegative budgetTokens object.`\n )\n }\n\n if (spec.tier !== undefined && !isLanguageModelTier(spec.tier)) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Conversational Agent run 'tier' must be one of: ${LANGUAGE_MODEL_TIERS.join(\", \")}.`\n )\n }\n if (spec.tierProbabilities !== undefined && !isTierProbabilities(spec.tierProbabilities)) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Conversational Agent run 'tierProbabilities' must give each tier a probability.`\n )\n }\n\n for (const [name, value] of [\n [\"timeZone\", spec.timeZone],\n [\"locale\", spec.locale],\n ] as const) {\n if (value !== undefined && (typeof value !== \"string\" || value.trim().length === 0)) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Conversational Agent run '${name}' must be a non-empty string.`\n )\n }\n }\n assertApprovalModeField(spec.approvalMode, \"Conversational Agent run\", prefix)\n}\n\nexport function isAgentApprovalMode(value: unknown): value is AgentApprovalMode {\n return (AGENT_APPROVAL_MODES as readonly unknown[]).includes(value)\n}\n\n/** Validate a mode a store is asked to keep, before it writes anything. */\nexport function assertAgentApprovalModeInput(\n mode: unknown,\n prefix = \"Sixb\"\n): asserts mode is AgentApprovalMode {\n if (!isAgentApprovalMode(mode)) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent approval mode must be one of: ${AGENT_APPROVAL_MODES.join(\", \")}.`\n )\n }\n}\n\nfunction assertApprovalModeField(value: unknown, owner: string, prefix: string): void {\n if (value !== undefined && !isAgentApprovalMode(value)) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] ${owner} 'approvalMode' must be one of: ${AGENT_APPROVAL_MODES.join(\", \")}.`\n )\n }\n}\n\nfunction isRecord(value: unknown): value is Readonly<Record<string, unknown>> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction isTierProbabilities(value: unknown): boolean {\n if (!isRecord(value) || Object.keys(value).length !== LANGUAGE_MODEL_TIERS.length) return false\n\n return LANGUAGE_MODEL_TIERS.every((tier) => {\n const probability = value[tier]\n return typeof probability === \"number\" && probability >= 0 && probability <= 1\n })\n}\n\n/** Validate the semantic link between a conversational Agent run and its immutable execution. */\nexport async function assertAgentRunExecution(input: {\n readonly executions: ExecutionStorage\n readonly projectId: string\n readonly executionId: string\n readonly runId: string\n}): Promise<ExecutionRecord> {\n const execution = await findAgentRunExecution({\n executions: input.executions,\n projectId: input.projectId,\n executionId: input.executionId,\n runId: input.runId,\n authority: { type: \"inherited\" },\n })\n if (!execution) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[Sixb] Execution '${input.executionId}' does not authorize Agent run '${input.runId}'.`\n )\n }\n return execution\n}\n\n/** Validate the provider-neutral payload of an idempotent child admission. */\nexport function assertCreateSubagentRunInput(input: CreateSubagentRunInput, prefix = \"Sixb\"): void {\n for (const [name, value] of [\n [\"id\", input.id],\n [\"projectId\", input.projectId],\n [\"executionId\", input.executionId],\n [\"parentRunId\", input.parentRunId],\n [\"parentExecutionToken\", input.parentExecutionToken],\n [\"spawnKey\", input.spawnKey],\n [\"model.provider\", input.spec.model.provider],\n [\"model.modelId\", input.spec.model.modelId],\n [\"task\", input.spec.task],\n [\"thread.id\", input.thread.id],\n [\"trigger.id\", input.trigger.id],\n ] as const) {\n if (value.trim().length === 0) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Subagent run '${name}' must not be empty.`\n )\n }\n }\n if (input.spawnKey.length > 128) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Subagent spawn key must not exceed 128 characters.`\n )\n }\n for (const [name, value] of [\n [\"maxActiveChildren\", input.maxActiveChildren],\n [\"spec.maxSteps\", input.spec.maxSteps],\n ] as const) {\n if (!Number.isSafeInteger(value) || value < 1) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Subagent run '${name}' must be a positive safe integer.`\n )\n }\n }\n if (new Set(input.spec.toolNames).size !== input.spec.toolNames.length) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Subagent run tool names must be unique.`\n )\n }\n if (input.spec.reasoning !== undefined && !isModelReasoning(input.spec.reasoning)) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Subagent reasoning must be one of: ${AGENT_REASONING_LEVELS.join(\", \")}, or a nonnegative budgetTokens object.`\n )\n }\n assertApprovalModeField(input.spec.approvalMode, \"Subagent run\", prefix)\n\n assertSubagentRunFiles(input.spec.files, \"spec.files\", prefix)\n\n if (input.spec.toolNames.some((name) => !name.trim())) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Subagent run tool names must not be empty.`\n )\n }\n if (!Array.isArray(input.trigger.parts) || input.trigger.parts.length === 0) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Subagent run trigger must have at least one part.`\n )\n }\n if (input.createdAt && !Number.isFinite(input.createdAt.getTime())) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Subagent run createdAt must be a valid date.`\n )\n }\n}\n\n/** Exact semantic match required when a durable spawn key is replayed. */\nexport function subagentRunMatchesCreateInput(\n run: AgentRunRecord,\n input: CreateSubagentRunInput\n): run is SubagentRunRecord {\n return (\n run.kind === \"subagent\" &&\n run.id === input.id &&\n run.projectId === input.projectId &&\n run.executionId === input.executionId &&\n run.parentRunId === input.parentRunId &&\n run.spawnKey === input.spawnKey &&\n run.threadId === input.thread.id &&\n isDeepStrictEqual(run.spec, input.spec)\n )\n}\n\n/** Refuse what only a conversation does on a sub-agent's thread. */\nexport function assertConversationThreadRow(\n thread: Pick<AgentThreadRecord, \"id\" | \"kind\">,\n /** What is refused, completing \"only a conversation …\". */\n operation: string,\n prefix = \"Sixb\"\n): void {\n if (thread.kind === \"conversation\") return\n throw new AgentStorageError(\n \"thread_not_conversation\",\n `[${prefix}] Agent thread '${thread.id}' is a sub-agent's: only a conversation ${operation}.`\n )\n}\n\n/**\n * The thread a child's first run creates. Its conversation's owner owns it, and its run is active\n * in it from the start: the trigger is its first and only message.\n */\nexport function newSubagentThreadRecord(\n input: CreateSubagentRunInput,\n conversation: { readonly id: string; readonly ownerPrincipal: Principal },\n createdAt: Date\n): AgentThreadRecord {\n return {\n id: input.thread.id,\n projectId: input.projectId,\n kind: \"subagent\",\n parent: { threadId: conversation.id, spawnedBy: input.parentRunId, key: input.spawnKey },\n ownerPrincipal: structuredClone(conversation.ownerPrincipal),\n status: \"active\",\n activeRunId: input.id,\n lastMessageAt: createdAt,\n messageCount: 1,\n createdAt,\n updatedAt: createdAt,\n }\n}\n\n/**\n * A later run of a child goes into its thread: the same child of the same conversation, and only\n * once the thread's previous run has ended, as in a conversation.\n */\nexport function assertSubagentThreadTakesRun(\n thread: AgentThreadRecord | null,\n input: CreateSubagentRunInput,\n conversationId: string,\n prefix = \"Sixb\"\n): asserts thread is AgentThreadRecord {\n if (!thread) {\n throw new AgentStorageError(\n \"thread_not_found\",\n `[${prefix}] Agent thread '${input.thread.id}' not found for project '${input.projectId}'.`\n )\n }\n if (\n thread.kind !== \"subagent\" ||\n thread.parent?.threadId !== conversationId ||\n thread.parent.key !== input.spawnKey\n ) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent thread '${thread.id}' is not the thread of child '${input.spawnKey}' of this conversation.`\n )\n }\n if (thread.activeRunId !== null) {\n throw new AgentStorageError(\n \"active_run_exists\",\n `[${prefix}] Agent thread '${thread.id}' already has an active run '${thread.activeRunId}'.`\n )\n }\n}\n\n/**\n * Validate what a finish keeps: a child's result once it succeeded. A child that paused, on its\n * held calls or on a question, may not have answered yet, so its text may be empty. A conversation\n * turn keeps none, and has no parent to wait for.\n */\nexport function assertAgentRunFinishPayload(\n kind: AgentRunRecord[\"kind\"],\n input: FinishAgentRunInput,\n runId: string,\n prefix = \"Sixb\"\n): void {\n if (kind === \"conversation\") {\n if (input.status === \"succeeded\" && input.result !== undefined) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Conversational Agent run '${runId}' cannot persist a subagent result.`\n )\n }\n if (input.finishReason === \"awaiting_answer\") {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Conversational Agent run '${runId}' has no parent to wait for: only a subagent finishes awaiting_answer.`\n )\n }\n return\n }\n\n if (input.status === \"succeeded\") {\n const paused =\n input.finishReason === \"awaiting_approval\" || input.finishReason === \"awaiting_answer\"\n assertSubagentRunResult(input.result, runId, prefix, paused)\n }\n}\n\n/**\n * Validate the small durable result returned by a successful child. A child that paused on its held\n * calls may not have answered yet, so its text may be empty.\n */\nexport function assertSubagentRunResult(\n result: SubagentRunResult | undefined,\n runId: string,\n prefix = \"Sixb\",\n paused = false\n): asserts result is SubagentRunResult {\n if (typeof result?.text !== \"string\" || (!paused && result.text.trim().length === 0)) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Succeeded subagent run '${runId}' requires text.`\n )\n }\n assertSubagentRunFiles(result.files, \"result.files\", prefix)\n if (\n result.filesError !== undefined &&\n (typeof result.filesError !== \"string\" || !result.filesError.trim() || result.files?.length)\n ) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Subagent run '${runId}' result.filesError must say why it returned no files.`\n )\n }\n}\n\n/** Each file a parent and its child exchange: a safe relative path, once, and a valid FileRef. */\nfunction assertSubagentRunFiles(\n files: readonly SubagentRunFile[] | undefined,\n field: string,\n prefix: string\n): void {\n if (files === undefined) return\n\n if (!Array.isArray(files)) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Subagent run ${field} must be a list.`\n )\n }\n\n const paths = new Set<string>()\n for (const file of files) {\n const segments: readonly string[] = typeof file?.path === \"string\" ? file.path.split(\"/\") : []\n const safe =\n segments.length > 0 &&\n !file.path.includes(\"\\0\") &&\n segments.every((segment) => segment !== \"\" && segment !== \".\" && segment !== \"..\")\n if (!safe || paths.has(file.path) || !isFileRef(file.fileRef)) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Subagent run ${field} must hold unique relative paths, each with a valid FileRef.`\n )\n }\n paths.add(file.path)\n }\n}\n\n/** Validate provider-independent checkpoint fields before entering a storage critical section. */\nexport function assertCreateAgentContextCheckpointInput(\n input: CreateAgentContextCheckpointInput,\n prefix = \"Sixb\"\n): void {\n for (const [name, value] of [\n [\"id\", input.id],\n [\"projectId\", input.projectId],\n [\"threadId\", input.threadId],\n [\"createdByRunId\", input.createdByRunId],\n [\"executionToken\", input.executionToken],\n [\"summary\", input.summary],\n [\"summaryModelId\", input.summaryModelId],\n ] as const) {\n if (value.trim().length === 0) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent context checkpoint '${name}' must not be empty.`\n )\n }\n }\n\n if (input.summaryFormatVersion !== 1) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent context checkpoint summary format version must be 1.`\n )\n }\n if (input.reason !== \"threshold\" && input.reason !== \"overflow\") {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent context checkpoint reason must be 'threshold' or 'overflow'.`\n )\n }\n if (\n input.expectedPreviousCheckpointId !== null &&\n input.expectedPreviousCheckpointId.trim().length === 0\n ) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent context checkpoint expected previous id must not be empty.`\n )\n }\n if (input.createdAt && !Number.isFinite(input.createdAt.getTime())) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent context checkpoint createdAt must be a valid date.`\n )\n }\n\n for (const [name, value, minimum] of [\n [\"expectedHeadSeq\", input.expectedHeadSeq, 1],\n [\"summarizedThroughSeq\", input.summarizedThroughSeq, 1],\n [\"observedHeadSeq\", input.observedHeadSeq, 1],\n [\"estimatedInputTokensBefore\", input.estimatedInputTokensBefore, 0],\n [\"estimatedInputTokensAfter\", input.estimatedInputTokensAfter, 0],\n ] as const) {\n if (!Number.isSafeInteger(value) || value < minimum) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent context checkpoint '${name}' must be a safe integer greater than or equal to ${minimum}.`\n )\n }\n }\n\n if (input.observedHeadSeq !== input.expectedHeadSeq) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent context checkpoint observed head must equal its expected message head.`\n )\n }\n if (input.summarizedThroughSeq >= input.observedHeadSeq) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent context checkpoint must retain the triggering head message.`\n )\n }\n}\n\n/** Assert that the current delivery still owns the active conversational run. */\nexport function assertAgentContextCheckpointAuthority(input: {\n readonly create: CreateAgentContextCheckpointInput\n readonly run: AgentRunRecord | null\n readonly thread: AgentThreadRecord | null\n readonly prefix?: string\n}): asserts input is typeof input & {\n readonly run: AgentRunRecord\n readonly thread: AgentThreadRecord\n} {\n const { create, run, thread } = input\n const prefix = input.prefix ?? \"Sixb\"\n if (!run) {\n throw new AgentStorageError(\n \"run_not_found\",\n `[${prefix}] Agent run '${create.createdByRunId}' not found for project '${create.projectId}'.`\n )\n }\n if (!thread) {\n throw new AgentStorageError(\n \"thread_not_found\",\n `[${prefix}] Agent thread '${create.threadId}' not found for project '${create.projectId}'.`\n )\n }\n if (run.kind !== \"conversation\" || run.threadId !== create.threadId) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent run '${run.id}' does not belong to thread '${create.threadId}'.`\n )\n }\n if (run.status !== \"running\") {\n throw new AgentStorageError(\n \"invalid_state\",\n `[${prefix}] Agent run '${run.id}' is not running (status '${run.status}').`\n )\n }\n if (!run.execution || run.execution.token !== create.executionToken) {\n throw new AgentStorageError(\n \"execution_lost\",\n `[${prefix}] Execution token is no longer current on agent run '${run.id}'.`\n )\n }\n if (thread.activeRunId !== run.id) {\n throw new AgentStorageError(\n \"invalid_state\",\n `[${prefix}] Agent run '${run.id}' no longer owns thread '${thread.id}'.`\n )\n }\n}\n\n/** Assert both compare-and-swap anchors and the retained-turn boundary. */\nexport function assertAgentContextCheckpointAnchors(input: {\n readonly create: CreateAgentContextCheckpointInput\n readonly latest: AgentContextCheckpointRecord | null\n readonly headSeq: number\n readonly firstRetained: AgentMessageRecord | null\n readonly prefix?: string\n}): void {\n const { create, latest, headSeq, firstRetained } = input\n const prefix = input.prefix ?? \"Sixb\"\n if (headSeq !== create.expectedHeadSeq) {\n throw new AgentStorageError(\n \"invalid_state\",\n `[${prefix}] Agent thread '${create.threadId}' message head changed from ${create.expectedHeadSeq} to ${headSeq}.`\n )\n }\n\n const latestId = latest?.id ?? null\n if (latestId !== create.expectedPreviousCheckpointId) {\n throw new AgentStorageError(\n \"invalid_state\",\n `[${prefix}] Agent thread '${create.threadId}' checkpoint head changed.`\n )\n }\n if (latest && create.summarizedThroughSeq <= latest.summarizedThroughSeq) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent context checkpoint boundary must advance beyond sequence ${latest.summarizedThroughSeq}.`\n )\n }\n if (!firstRetained || firstRetained.seq !== create.summarizedThroughSeq + 1) {\n throw new AgentStorageError(\n \"invalid_state\",\n `[${prefix}] Agent context checkpoint boundary does not align with stored thread messages.`\n )\n }\n if (firstRetained.role !== \"user\") {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent context checkpoint must retain a complete turn beginning with a user message.`\n )\n }\n}\n\n/** Validate the mutable anchors again before returning an idempotently created checkpoint. */\nexport function assertAgentContextCheckpointReplayState(input: {\n readonly create: CreateAgentContextCheckpointInput\n readonly existing: AgentContextCheckpointRecord\n readonly latest: AgentContextCheckpointRecord | null\n readonly headSeq: number\n readonly prefix?: string\n}): void {\n const prefix = input.prefix ?? \"Sixb\"\n if (input.headSeq !== input.create.expectedHeadSeq) {\n throw new AgentStorageError(\n \"invalid_state\",\n `[${prefix}] Agent thread '${input.create.threadId}' message head changed from ${input.create.expectedHeadSeq} to ${input.headSeq}.`\n )\n }\n if (input.latest?.id !== input.existing.id) {\n throw new AgentStorageError(\n \"invalid_state\",\n `[${prefix}] Agent thread '${input.create.threadId}' checkpoint head changed after '${input.existing.id}'.`\n )\n }\n}\n\n/** Compare the durable semantic payload; delivery token and generated timestamp are not content. */\nexport function agentContextCheckpointMatchesCreateInput(\n record: AgentContextCheckpointRecord,\n input: CreateAgentContextCheckpointInput\n): boolean {\n return (\n record.id === input.id &&\n record.projectId === input.projectId &&\n record.threadId === input.threadId &&\n record.createdByRunId === input.createdByRunId &&\n (record.previousCheckpointId ?? null) === input.expectedPreviousCheckpointId &&\n record.reason === input.reason &&\n record.summary === input.summary &&\n record.summaryFormatVersion === input.summaryFormatVersion &&\n record.summarizedThroughSeq === input.summarizedThroughSeq &&\n record.observedHeadSeq === input.observedHeadSeq &&\n record.estimatedInputTokensBefore === input.estimatedInputTokensBefore &&\n record.estimatedInputTokensAfter === input.estimatedInputTokensAfter &&\n record.summaryModelId === input.summaryModelId\n )\n}\n\n/** Validate the fields of a save that storage relies on, before entering its transaction. */\nexport function assertSaveAgentMemoryInput(input: SaveAgentMemoryInput, prefix = \"Sixb\"): void {\n const fail = (message: string): never => {\n throw new AgentStorageError(\"invalid_input\", `[${prefix}] Agent memory ${message}`)\n }\n if (input.projectId.trim().length === 0) fail(\"project id must not be empty.\")\n if (input.repoId.trim().length === 0) fail(\"repo id must not be empty.\")\n if (!Number.isSafeInteger(input.baseRevision) || input.baseRevision < 0) {\n fail(\"base revision must be a non-negative integer.\")\n }\n if (input.message.trim().length === 0) fail(\"save message must not be empty.\")\n if (input.changes.length === 0) fail(\"save must change at least one file.\")\n const paths = new Set<string>()\n for (const change of input.changes) {\n if (change.path.length === 0) fail(\"paths must not be empty.\")\n if (paths.has(change.path)) fail(`save changes '${change.path}' more than once.`)\n paths.add(change.path)\n }\n if (input.createdAt && !Number.isFinite(input.createdAt.getTime())) {\n fail(\"save time must be a valid date.\")\n }\n}\n\n/** A path's highest-revision version; `contents: null` when that revision deleted it. */\nexport interface LatestAgentMemoryFile {\n readonly revision: number\n readonly contents: string | null\n}\n\n/**\n * The changes of a save that would overwrite another save's work, as their files are now: every\n * change when the repo is behind the base revision (it was deleted since), otherwise each change\n * whose path was written after the base revision. Ordered by path.\n */\nexport function agentMemoryConflicts(\n input: SaveAgentMemoryInput,\n head: number,\n latest: ReadonlyMap<string, LatestAgentMemoryFile>\n): AgentMemoryChange[] {\n return input.changes\n .filter(\n (change) =>\n input.baseRevision > head || (latest.get(change.path)?.revision ?? 0) > input.baseRevision\n )\n .map((change) => ({ path: change.path, contents: latest.get(change.path)?.contents ?? null }))\n .sort((left, right) => compareAgentMemoryPaths(left.path, right.path))\n}\n\n/** Code-unit order, as SQLite and Postgres (with `COLLATE \"C\"`) compare paths. */\nexport function compareAgentMemoryPaths(left: string, right: string): number {\n return left < right ? -1 : left > right ? 1 : 0\n}\n\n/** File versions written before this time leave the history once a newer version exists. */\nexport function agentMemoryHistoryCutoff(savedAt: Date): Date {\n return new Date(savedAt.getTime() - AGENT_MEMORY_HISTORY_DAYS * 24 * 60 * 60 * 1000)\n}\n\n// ── approvals ─────────────────────────────────────────────────────────────────────────────────\n\n/** An approval that still answers for its call key: a settled one asks again. */\nexport const LIVE_AGENT_APPROVAL_STATUSES = [\n \"pending\",\n \"approved\",\n \"denied\",\n] as const satisfies readonly AgentApprovalStatus[]\n\n/**\n * Whether an approval keeps its run paused: still waiting, or decided and not reported to the model\n * yet. A run finishes `awaiting_approval` only while it holds one.\n */\nexport function agentApprovalHoldsRun(approval: AgentApprovalRecord, runId: string): boolean {\n return (\n (approval.runId === runId || approval.callerRunId === runId) &&\n (LIVE_AGENT_APPROVAL_STATUSES as readonly string[]).includes(approval.status) &&\n approval.reportedInMessageId === undefined\n )\n}\n\n/** Refuse a paused finish that holds no call, or a paused finish that did not succeed. */\nexport function assertAwaitingApprovalFinish(input: {\n readonly runId: string\n readonly status: string\n readonly holdsApproval: boolean\n readonly prefix?: string\n}): void {\n const prefix = input.prefix ?? \"Sixb\"\n if (input.status !== \"succeeded\") {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent run '${input.runId}' can only pause for approval when it succeeds.`\n )\n }\n if (!input.holdsApproval) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent run '${input.runId}' holds no call waiting for approval, so it cannot finish awaiting one.`\n )\n }\n}\n\n/**\n * Whether a run can have approvals: its mode holds some calls. A turn from before approval modes,\n * or in `auto`, holds none, and neither do its children, which copy its mode.\n */\nexport function agentRunMayHoldCalls(run: AgentRunRecord): boolean {\n return (AGENT_HOLDING_APPROVAL_MODES as readonly unknown[]).includes(run.spec?.approvalMode)\n}\n\n/** Whether a stop request reaches this approval. */\nexport function agentApprovalStops(\n approval: AgentApprovalRecord,\n input: StopAgentApprovalsInput\n): boolean {\n return (\n approval.projectId === input.projectId &&\n approval.threadId === input.threadId &&\n approval.reportedInMessageId === undefined &&\n (input.runId === undefined || approval.runId === input.runId) &&\n (input.requestedBy === undefined ||\n (approval.requestedBy.type === input.requestedBy.type &&\n approval.requestedBy.id === input.requestedBy.id))\n )\n}\n\n/** Whether a repair pass has work on this approval; providers run the same filter in SQL. */\nexport function agentApprovalRepairable(\n approval: AgentApprovalRecord,\n claimableBefore: Date\n): boolean {\n const unfinished =\n approval.status === \"approved\" &&\n approval.outcome === undefined &&\n (approval.executionClaimedAt ?? approval.decidedAt ?? new Date(0)) <= claimableBefore\n const resumable =\n (approval.status === \"approved\" || approval.status === \"denied\") &&\n approval.reportedInMessageId === undefined &&\n approval.turnStoppedAt === undefined\n return unfinished || resumable\n}\n\n/** Whether an approved call without an outcome can be claimed now. */\nexport function agentApprovalClaimable(approval: AgentApprovalRecord, staleBefore: Date): boolean {\n return (\n approval.status === \"approved\" &&\n approval.outcome === undefined &&\n (approval.executionClaimedAt ?? approval.decidedAt ?? new Date(0)) <= staleBefore\n )\n}\n\n/** The run id the call names: unique among a thread's live approvals. */\nexport function agentApprovalCallKey(call: AgentApprovalCall): string {\n return call.kind === \"action\" ? call.actionRunId : call.workflowRunId\n}\n\nexport function assertRequestAgentApprovalInput(\n input: RequestAgentApprovalInput,\n prefix = \"Sixb\"\n): void {\n for (const [name, value] of [\n [\"id\", input.id],\n [\"projectId\", input.projectId],\n [\"runId\", input.runId],\n [\"callerRunId\", input.callerRunId],\n [\"executionToken\", input.executionToken],\n [\"call key\", agentApprovalCallKey(input.call)],\n ] as const) {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent approval '${name}' must not be empty.`\n )\n }\n }\n if (!(AGENT_HOLDING_APPROVAL_MODES as readonly unknown[]).includes(input.mode)) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent approval mode must be one of: ${AGENT_HOLDING_APPROVAL_MODES.join(\", \")}.`\n )\n }\n}\n\n/**\n * Fence a held call: the caller run is running with the request's token, and is the turn or one of\n * its children. Returns the turn's thread.\n */\nexport function assertAgentApprovalCaller(input: {\n readonly request: RequestAgentApprovalInput\n readonly turn: AgentRunRecord | null\n readonly caller: AgentRunRecord | null\n readonly prefix?: string\n}): string {\n const { request, turn, caller } = input\n const prefix = input.prefix ?? \"Sixb\"\n if (!turn || !caller) {\n throw new AgentStorageError(\n \"run_not_found\",\n `[${prefix}] Agent run '${turn ? request.callerRunId : request.runId}' not found for project '${request.projectId}'.`\n )\n }\n if (turn.kind !== \"conversation\") {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent approval run '${turn.id}' must be a conversation turn.`\n )\n }\n if (caller.id !== turn.id && !(caller.kind === \"subagent\" && caller.parentRunId === turn.id)) {\n throw new AgentStorageError(\n \"invalid_input\",\n `[${prefix}] Agent run '${caller.id}' does not belong to turn '${turn.id}'.`\n )\n }\n if (caller.status !== \"running\") {\n throw new AgentStorageError(\n \"invalid_state\",\n `[${prefix}] Agent run '${caller.id}' is not running (status '${caller.status}').`\n )\n }\n if (!caller.execution || caller.execution.token !== request.executionToken) {\n throw new AgentStorageError(\n \"execution_lost\",\n `[${prefix}] Execution token is no longer current on agent run '${caller.id}'.`\n )\n }\n return turn.threadId\n}\n\n/** The approval a request creates, before any provider writes it. */\nexport function newAgentApprovalRecord(\n input: RequestAgentApprovalInput,\n threadId: string\n): AgentApprovalRecord {\n return {\n id: input.id,\n projectId: input.projectId,\n threadId,\n runId: input.runId,\n callerRunId: input.callerRunId,\n requestedBy: structuredClone(input.requestedBy),\n mode: input.mode,\n callKey: agentApprovalCallKey(input.call),\n call: structuredClone(input.call),\n status: \"pending\",\n createdAt: new Date(input.createdAt ?? new Date()),\n expiresAt: new Date(input.expiresAt),\n }\n}\n\n/** Whether an approval matches a list filter; providers run the same filter in SQL. */\nexport function agentApprovalMatches(\n approval: AgentApprovalRecord,\n input: ListAgentApprovalsInput\n): boolean {\n return (\n approval.projectId === input.projectId &&\n (input.threadId === undefined || approval.threadId === input.threadId) &&\n (input.runId === undefined || approval.runId === input.runId) &&\n (input.requestedBy === undefined ||\n (approval.requestedBy.type === input.requestedBy.type &&\n approval.requestedBy.id === input.requestedBy.id)) &&\n (input.statuses === undefined || input.statuses.includes(approval.status)) &&\n (input.reported === undefined ||\n (approval.reportedInMessageId !== undefined) === input.reported)\n )\n}\n",
6
+ "import { createHash, randomUUID } from \"node:crypto\"\n\n/**\n * Id helpers for agent persistence. Threads, the run id, and the user (trigger) message are minted\n * by the trigger; the queued run is persisted with the user message, and the assistant message id\n * is minted when the turn finalizes. Prefixes make ids self-describing in logs.\n */\n\nexport function createAgentThreadId(): string {\n return `agt_thr_${randomUUID()}`\n}\n\n/** A fresh provider name, scoped to one project's thread; never a filesystem revision. */\nexport function createAgentThreadSandboxName(projectId: string, threadId: string): string {\n const digest = createHash(\"sha256\")\n .update(JSON.stringify([projectId, threadId, randomUUID()]))\n .digest(\"hex\")\n return `sixb-sb-${digest}`\n}\n\nexport function createAgentRunId(): string {\n return `agt_run_${randomUUID()}`\n}\n\n/** One stable child identity per parent-selected spawn key. */\nexport function createSubagentRunId(parentRunId: string, spawnKey: string): string {\n return `agt_run_child_${spawnDigest(parentRunId, spawnKey)}`\n}\n\n/**\n * The thread a child works in, named after the turn that spawned it and its key. It shares its\n * first run's digest: migration `subagent-threads` names the threads of earlier children so.\n */\nexport function createSubagentThreadId(spawningRunId: string, spawnKey: string): string {\n return `agt_thr_child_${spawnDigest(spawningRunId, spawnKey)}`\n}\n\nfunction spawnDigest(runId: string, spawnKey: string): string {\n return createHash(\"sha256\").update(runId).update(\"\\0\").update(spawnKey).digest(\"hex\")\n}\n\n/** Stable execution identity paired with a deterministic child run. */\nexport function createSubagentExecutionId(runId: string): string {\n return `exec_${runId}`\n}\n\nexport function createAgentMessageId(): string {\n return `agt_msg_${randomUUID()}`\n}\n\n/** One deterministic context-checkpoint identity per conversational run. */\nexport function agentContextCheckpointId(runId: string): string {\n return `agt_ctx_${runId}`\n}\n\n/** A checkpoint copied into a fork; the source's checkpoint keeps its run-derived id. */\nexport function createCopiedAgentContextCheckpointId(): string {\n return `agt_ctx_copy_${randomUUID()}`\n}\n\n/** A queue delivery's fencing token for writes to an `agent_runs` record. */\nexport function createAgentRunExecutionToken(): string {\n return `agt_exec_${randomUUID()}`\n}\n",
7
+ "import type { ActionsRuntime } from \"../actions/execution\"\nimport type { BlobBody, FileRef, OpenedFileRef } from \"../blob-storage\"\nimport type { ConnectorRuntime } from \"../connectors\"\nimport type { JsonPrimitive, JsonValue, ReadonlyJsonValue } from \"../json\"\nimport type { Logger } from \"../logging\"\nimport { type LanguageModelRef, MODEL_REASONING_LEVELS, type ModelReasoning } from \"../models\"\nimport type { ModelsRuntime } from \"../models/generation-types\"\nimport type { InferSchema } from \"../ontology/inference\"\nimport type { Schema } from \"../ontology/types\"\nimport type { ObjectReader } from \"../runtime/types\"\nimport type { UsersRuntime } from \"../users\"\n\nexport type {\n AgentContextEntryInput,\n AgentContextInput,\n AgentContextOrigin,\n AgentContextPart,\n} from \"./context/entries\"\n\n/** Public capability reference used by security grants such as `can.run(agent)`. */\nexport interface AgentReference {\n readonly kind: \"agent\"\n readonly usage: AgentUsageReference\n readonly threads: AgentThreadsReference\n readonly memory: AgentMemoryReference\n}\n\n/** Project-wide AI accounting and limit capability, independent of permission to run the Agent. */\nexport interface AgentUsageReference {\n readonly kind: \"aiUsage\"\n}\n\n/** Every user's conversations with the Agent, as `can.observe(agent.threads)` reads them. */\nexport interface AgentThreadsReference {\n readonly kind: \"agentThreads\"\n}\n\n/** The project's shared Agent memory, which every conversation reads. */\nexport interface AgentMemoryReference {\n readonly kind: \"agentMemory\"\n}\n\n/** Public metadata for the project's conversational Agent. */\nexport interface AgentDescriptor {\n readonly name: string\n readonly model: LanguageModelRef\n}\n\nexport type AgentReasoning = ModelReasoning\n\nexport const AGENT_REASONING_LEVELS = MODEL_REASONING_LEVELS\n\ntype Simplify<T> = { [K in keyof T]: T[K] } & {}\ntype JsonifyAgentToolInput<T> = unknown extends T\n ? ReadonlyJsonValue\n : T extends Date\n ? string\n : T extends readonly (infer TItem)[]\n ? readonly JsonifyAgentToolInput<TItem>[]\n : T extends JsonPrimitive\n ? T\n : T extends object\n ? { readonly [K in keyof T]: JsonifyAgentToolInput<T[K]> }\n : never\n\n/** A model-facing object shape expressed with Sixb's schema DSL. */\nexport type AgentToolInputSchema = Readonly<Record<string, Schema>>\n\n/** Infer the handler input represented by an agent tool schema. */\nexport type InferAgentToolInputSchema<TInput extends AgentToolInputSchema> =\n string extends keyof TInput\n ? Readonly<Record<string, unknown>>\n : Simplify<{\n readonly [K in keyof TInput]: JsonifyAgentToolInput<InferSchema<TInput[K]>>\n }>\n\n/** Identifies the conversational, workflow, or child Agent execution that invoked a tool. */\nexport type AgentToolRunInfo =\n | {\n readonly kind: \"conversation\"\n readonly id: string\n readonly threadId: string\n }\n | {\n readonly kind: \"subagent\"\n readonly id: string\n readonly parentRunId: string\n }\n | {\n readonly kind: \"workflow\"\n readonly id: string\n readonly workflowId: string\n readonly stepId: string\n }\n\n/** Input accepted by the run-scoped file publisher exposed to agent tools. */\nexport interface AgentToolFilePutInput {\n readonly body: BlobBody\n readonly fileName: string\n readonly mediaType?: string\n}\n\n/** A file a tool stored durably, and the path of its copy inside the current run sandbox. */\nexport interface AgentToolFile {\n readonly fileRef: FileRef\n readonly sandboxPath: string\n}\n\n/** The narrow file-writing surface available to an agent tool call. */\nexport interface AgentToolFiles {\n put(input: AgentToolFilePutInput): Promise<AgentToolFile>\n}\n\n/**\n * The files attached to the run that invoked a tool: the messages of a chat's thread, or the input\n * files of a workflow AI task. A child Agent has none.\n */\nexport interface AgentToolAttachments {\n /**\n * Open an attachment by the `key` the Agent sees in `$SIXB_ATTACHMENTS`. Returns null when its\n * stored file is gone, and throws an `AgentToolPublicError` for a key that is not one of this\n * run's attachments.\n */\n open(key: string): Promise<OpenedFileRef | null>\n}\n\nexport type AgentToolTextContent = {\n readonly type: \"text\"\n readonly text: string\n}\n\nexport type AgentToolFileContent = {\n readonly type: \"file\"\n readonly fileRef: FileRef\n}\n\n/** Durable model-facing content returned by a file-aware tool. */\nexport type AgentToolContent = AgentToolTextContent | AgentToolFileContent\n\n/**\n * A file-aware tool result. The tag distinguishes this envelope from an ordinary JSON result while\n * keeping the whole value safe to persist in the durable tool-call trace.\n */\nexport type AgentToolResult = {\n readonly kind: \"agentToolResult\"\n readonly content: readonly AgentToolContent[]\n}\n\n/**\n * The run's domain SDK as an agent tool sees it. Unlike workflow steps and actions, it acts as the\n * run's requester: the signed-in user in a chat, that same user in a child Agent, and the step's\n * groups in a workflow AI task.\n *\n * A structural view of the public `Sixb` SDK, like `WorkflowRuntimeFacade`: the handler receives the\n * run's bound SDK, and this type guides it to what a tool should do. It reads objects and changes\n * them by requesting actions, which validate and record the change. Authority comes from the run,\n * not from this view.\n */\nexport interface AgentToolRuntimeFacade extends ObjectReader {\n readonly actions: ActionsRuntime\n readonly models: ModelsRuntime\n readonly connector: ConnectorRuntime\n readonly users: UsersRuntime\n}\n\n/** The narrow, run-scoped surface passed to an agent tool handler. */\nexport interface AgentToolRunContext<\n TInput extends Readonly<Record<string, unknown>> = Readonly<Record<string, unknown>>,\n> {\n readonly input: TInput\n readonly toolCallId: string\n readonly signal: AbortSignal\n readonly run: AgentToolRunInfo\n readonly sixb: AgentToolRuntimeFacade\n readonly logger: Logger\n readonly files: AgentToolFiles\n readonly attachments: AgentToolAttachments\n}\n\n/** Agent tool handlers may return only values safe to persist in agent messages. */\nexport type AgentToolHandlerResult<\n TOutput extends ReadonlyJsonValue | AgentToolResult = ReadonlyJsonValue | AgentToolResult,\n> = TOutput | Promise<TOutput>\n\nexport type AgentToolHandler<\n TInput extends Readonly<Record<string, unknown>>,\n TOutput extends ReadonlyJsonValue | AgentToolResult = ReadonlyJsonValue | AgentToolResult,\n> = (context: AgentToolRunContext<TInput>) => AgentToolHandlerResult<TOutput>\n\n/**\n * Runtime definitions are stored heterogeneously. Keep variance erasure at this\n * boundary only; authoring through `run()` remains strictly contravariant.\n */\ntype StoredAgentToolHandler<TInput extends Readonly<Record<string, unknown>>> = {\n bivarianceHack(context: AgentToolRunContext<TInput>): JsonValue | Promise<JsonValue>\n}[\"bivarianceHack\"]\n\ndeclare const agentToolOutputValueType: unique symbol\n\n/** A reusable, inert model tool definition selected explicitly by an agent. */\nexport interface AgentToolDefinition<\n TName extends string = string,\n TInput extends AgentToolInputSchema = AgentToolInputSchema,\n TOutput extends ReadonlyJsonValue | AgentToolResult = ReadonlyJsonValue | AgentToolResult,\n> {\n readonly kind: \"agentTool\"\n readonly name: TName\n readonly description: string\n readonly input: TInput\n readonly handler: StoredAgentToolHandler<InferAgentToolInputSchema<TInput>>\n readonly [agentToolOutputValueType]?: TOutput\n}\n\n/** Infer the input received by a tool definition's handler. */\nexport type InferAgentToolInput<TTool extends AgentToolDefinition> = InferAgentToolInputSchema<\n TTool[\"input\"]\n>\n\n/**\n * Infer the output a chat receives from a tool: its handler's return value, saved on the message\n * and streamed live as is. A file-aware tool's output is its `AgentToolResult` envelope.\n */\nexport type InferAgentToolOutput<TTool extends AgentToolDefinition> =\n TTool extends AgentToolDefinition<string, AgentToolInputSchema, infer TOutput> ? TOutput : never\n\nexport interface AgentToolRunBuilder<TName extends string, TInput extends AgentToolInputSchema> {\n run<TOutput extends ReadonlyJsonValue | AgentToolResult>(\n handler: AgentToolHandler<InferAgentToolInputSchema<TInput>, TOutput>\n ): AgentToolDefinition<TName, TInput, TOutput>\n}\n\nexport interface AgentToolInputBuilder<TName extends string> {\n input<const TInput extends AgentToolInputSchema>(\n input: TInput\n ): AgentToolRunBuilder<TName, TInput>\n}\n\nexport interface AgentToolDescriptionBuilder<TName extends string> {\n description(description: string): AgentToolInputBuilder<TName>\n}\n",
8
+ "export type AgentStorageErrorCode =\n | \"thread_not_found\"\n /** A conversation's operation on a sub-agent's thread: a turn, a fork, a participant. */\n | \"thread_not_conversation\"\n | \"active_run_exists\"\n | \"active_child_limit\"\n | \"run_not_found\"\n | \"invalid_input\"\n | \"invalid_state\"\n | \"execution_lost\"\n | \"duplicate_id\"\n | \"participant_limit\"\n\n/**\n * Error for agent-storage invariants and invalid state transitions (single-flight, execution\n * ownership, run lifecycle, message append). Callers branch on `code` rather than message text.\n */\nexport class AgentStorageError extends Error {\n readonly name = \"AgentStorageError\"\n\n constructor(\n readonly code: AgentStorageErrorCode,\n message: string\n ) {\n super(message)\n }\n}\n"
9
+ ],
10
+ "mappings": "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",
11
+ "debugId": "B924D384F542DD1B64756E2164756E21",
12
+ "names": []
13
+ }
@@ -0,0 +1,233 @@
1
+ // @bun
2
+ // src/models/language-model.ts
3
+ var MODEL_REASONING_EFFORTS2 = ["minimal", "low", "medium", "high", "xhigh", "max"];
4
+ var MODEL_REASONING_LEVELS2 = [
5
+ "provider-default",
6
+ "none",
7
+ ...MODEL_REASONING_EFFORTS2
8
+ ];
9
+ function isModelReasoning2(value) {
10
+ if (typeof value === "string") {
11
+ return MODEL_REASONING_LEVELS2.includes(value);
12
+ }
13
+ if (typeof value !== "object" || value === null || Array.isArray(value))
14
+ return false;
15
+ if (Object.keys(value).length !== 1)
16
+ return false;
17
+ const budgetTokens = value.budgetTokens;
18
+ return typeof budgetTokens === "number" && Number.isSafeInteger(budgetTokens) && budgetTokens >= 0;
19
+ }
20
+ function modelReasoningSupportIssue2(capabilities, reasoning) {
21
+ if (reasoning === undefined)
22
+ return;
23
+ if (!isModelReasoning2(reasoning))
24
+ return "the reasoning preference is invalid";
25
+ if (reasoning === "provider-default")
26
+ return;
27
+ if (capabilities === undefined)
28
+ return;
29
+ if (capabilities === false)
30
+ return "reasoning is not supported";
31
+ if (reasoning === "none") {
32
+ return capabilities.canDisable === true ? undefined : "reasoning cannot be disabled";
33
+ }
34
+ if (typeof reasoning === "string") {
35
+ return capabilities.efforts?.includes(reasoning) === true ? undefined : `reasoning effort '${reasoning}' is not supported`;
36
+ }
37
+ const budget = capabilities.budgetTokens;
38
+ if (budget === undefined)
39
+ return "reasoning token budgets are not supported";
40
+ if (budget.min !== undefined && reasoning.budgetTokens < budget.min) {
41
+ return `reasoning token budget must be at least ${budget.min}`;
42
+ }
43
+ if (budget.max !== undefined && reasoning.budgetTokens > budget.max) {
44
+ return `reasoning token budget must not exceed ${budget.max}`;
45
+ }
46
+ return;
47
+ }
48
+
49
+ // src/models/definitions.ts
50
+ var MODEL_KINDS = [
51
+ "language",
52
+ "image",
53
+ "video",
54
+ "embedding",
55
+ "decision",
56
+ "transcription",
57
+ "speech",
58
+ "reranking"
59
+ ];
60
+ var TOKENLESS_MODEL_KINDS2 = [
61
+ "transcription",
62
+ "reranking",
63
+ "image",
64
+ "speech"
65
+ ];
66
+ function defineLanguageModelLabel2(label, prefix) {
67
+ for (const field of ["name", "description"]) {
68
+ const value = label[field];
69
+ if (value !== undefined && (typeof value !== "string" || !value || value !== value.trim())) {
70
+ throw new TypeError(`${prefix} ${field} must be a nonempty trimmed string.`);
71
+ }
72
+ }
73
+ return {
74
+ ...label.name === undefined ? {} : { name: label.name },
75
+ ...label.description === undefined ? {} : { description: label.description }
76
+ };
77
+ }
78
+ function defineLanguageModel2(definition) {
79
+ if (definition.kind !== "language") {
80
+ throw new TypeError("[Sixb] Language model definitions must use kind 'language'.");
81
+ }
82
+ assertModelId(definition.providerId, "providerId");
83
+ assertModelId(definition.modelId, "modelId");
84
+ assertOptionalString(definition.name, "name");
85
+ assertOptionalString(definition.description, "description");
86
+ assertOptionalString(definition.via, "via");
87
+ if (definition.via !== undefined && !definition.via.trim())
88
+ throw new TypeError("[Sixb] Model via must not be empty.");
89
+ const publisher = definition.publisher;
90
+ if (publisher !== undefined) {
91
+ assertRecord(publisher, "publisher");
92
+ for (const [field, value] of Object.entries({ id: publisher.id, name: publisher.name })) {
93
+ if (typeof value !== "string" || !value.trim() || value !== value.trim())
94
+ throw new TypeError(`[Sixb] Model publisher.${field} must be a nonempty trimmed string.`);
95
+ }
96
+ }
97
+ assertOptionalString(definition.family, "family");
98
+ assertOptionalString(definition.releaseDate, "releaseDate");
99
+ assertOptionalString(definition.knowledgeCutoff, "knowledgeCutoff");
100
+ const tags = freezeStrings(definition.tags, "tags");
101
+ const capabilities = defineModelCapabilities(definition.capabilities);
102
+ assertOptionalPositiveInteger(definition.contextWindow, "contextWindow");
103
+ assertOptionalPositiveInteger(definition.maxInputTokens, "maxInputTokens");
104
+ assertOptionalPositiveInteger(definition.maxOutputTokens, "maxOutputTokens");
105
+ return Object.freeze({
106
+ kind: "language",
107
+ providerId: definition.providerId,
108
+ modelId: definition.modelId,
109
+ ...definition.name === undefined ? {} : { name: definition.name },
110
+ ...definition.description === undefined ? {} : { description: definition.description },
111
+ ...publisher === undefined ? {} : { publisher: Object.freeze({ id: publisher.id, name: publisher.name }) },
112
+ ...definition.via === undefined ? {} : { via: definition.via },
113
+ ...definition.family === undefined ? {} : { family: definition.family },
114
+ ...tags === undefined ? {} : { tags },
115
+ ...definition.releaseDate === undefined ? {} : { releaseDate: definition.releaseDate },
116
+ ...definition.knowledgeCutoff === undefined ? {} : { knowledgeCutoff: definition.knowledgeCutoff },
117
+ ...definition.contextWindow === undefined ? {} : { contextWindow: definition.contextWindow },
118
+ ...definition.maxInputTokens === undefined ? {} : { maxInputTokens: definition.maxInputTokens },
119
+ ...definition.maxOutputTokens === undefined ? {} : { maxOutputTokens: definition.maxOutputTokens },
120
+ capabilities
121
+ });
122
+ }
123
+ function defineModelCapabilities(capabilities) {
124
+ assertRecord(capabilities, "capabilities");
125
+ const inputMediaTypes = capabilities.inputMediaTypes === "any" ? "any" : freezeStrings(capabilities.inputMediaTypes, "capabilities.inputMediaTypes");
126
+ for (const [field, value] of Object.entries(capabilities)) {
127
+ if (field === "inputMediaTypes" || field === "reasoning")
128
+ continue;
129
+ if (value !== undefined && typeof value !== "boolean") {
130
+ throw new TypeError(`[Sixb] Model capability '${field}' must be boolean.`);
131
+ }
132
+ }
133
+ const reasoning = freezeReasoningCapabilities(capabilities.reasoning);
134
+ const flags = {};
135
+ for (const key of [
136
+ "localTools",
137
+ "parallelToolCalls",
138
+ "nativeStructuredOutput",
139
+ "providerExecutedTools"
140
+ ]) {
141
+ const value = capabilities[key];
142
+ if (typeof value === "boolean")
143
+ flags[key] = value;
144
+ }
145
+ return Object.freeze({
146
+ ...inputMediaTypes === undefined ? {} : { inputMediaTypes },
147
+ ...reasoning === undefined ? {} : { reasoning },
148
+ ...flags
149
+ });
150
+ }
151
+ function freezeReasoningCapabilities(reasoning) {
152
+ if (reasoning === undefined || reasoning === false)
153
+ return reasoning;
154
+ assertRecord(reasoning, "reasoning");
155
+ if (reasoning.canDisable !== undefined && typeof reasoning.canDisable !== "boolean") {
156
+ throw new TypeError("[Sixb] Model reasoning capability 'canDisable' must be boolean.");
157
+ }
158
+ const efforts = freezeReasoningEfforts(reasoning.efforts);
159
+ const budgetTokens = freezeReasoningBudgetCapabilities(reasoning.budgetTokens);
160
+ return Object.freeze({
161
+ ...reasoning.canDisable === undefined ? {} : { canDisable: reasoning.canDisable },
162
+ ...efforts === undefined ? {} : { efforts },
163
+ ...budgetTokens === undefined ? {} : { budgetTokens }
164
+ });
165
+ }
166
+ function freezeReasoningEfforts(efforts) {
167
+ if (efforts === undefined)
168
+ return;
169
+ if (!Array.isArray(efforts)) {
170
+ throw new TypeError("[Sixb] Model reasoning capability 'efforts' must be an array.");
171
+ }
172
+ const seen = new Set;
173
+ return Object.freeze(efforts.map((value) => {
174
+ const effort = MODEL_REASONING_EFFORTS2.find((allowed) => allowed === value);
175
+ if (effort === undefined) {
176
+ throw new TypeError(`[Sixb] Model reasoning effort '${String(value)}' is invalid.`);
177
+ }
178
+ if (seen.has(effort)) {
179
+ throw new TypeError(`[Sixb] Model reasoning effort '${effort}' is duplicated.`);
180
+ }
181
+ seen.add(effort);
182
+ return effort;
183
+ }));
184
+ }
185
+ function freezeReasoningBudgetCapabilities(budget) {
186
+ if (budget === undefined)
187
+ return;
188
+ assertRecord(budget, "reasoning budgetTokens");
189
+ assertOptionalNonnegativeInteger(budget.min, "capabilities.reasoning.budgetTokens.min");
190
+ assertOptionalNonnegativeInteger(budget.max, "capabilities.reasoning.budgetTokens.max");
191
+ if (budget.min !== undefined && budget.max !== undefined && budget.max < budget.min) {
192
+ throw new TypeError("[Sixb] Model reasoning token budget maximum must not be below its minimum.");
193
+ }
194
+ return Object.freeze({
195
+ ...budget.min === undefined ? {} : { min: budget.min },
196
+ ...budget.max === undefined ? {} : { max: budget.max }
197
+ });
198
+ }
199
+ function assertModelId(value, field) {
200
+ if (!value.trim())
201
+ throw new TypeError(`[Sixb] Model ${field} must not be empty.`);
202
+ }
203
+ function assertOptionalPositiveInteger(value, field) {
204
+ if (value !== undefined && (!Number.isSafeInteger(value) || value <= 0)) {
205
+ throw new TypeError(`[Sixb] Model ${field} must be a positive safe integer.`);
206
+ }
207
+ }
208
+ function assertOptionalNonnegativeInteger(value, field) {
209
+ if (value !== undefined && (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0)) {
210
+ throw new TypeError(`[Sixb] Model ${field} must be a nonnegative safe integer.`);
211
+ }
212
+ }
213
+ function assertOptionalString(value, field) {
214
+ if (value !== undefined && typeof value !== "string") {
215
+ throw new TypeError(`[Sixb] Model ${field} must be a string.`);
216
+ }
217
+ }
218
+ function freezeStrings(value, field) {
219
+ if (value === undefined)
220
+ return;
221
+ if (!Array.isArray(value) || value.some((entry) => typeof entry !== "string" || !entry.trim())) {
222
+ throw new TypeError(`[Sixb] Model ${field} must contain nonempty strings.`);
223
+ }
224
+ return Object.freeze([...value]);
225
+ }
226
+ function assertRecord(value, field) {
227
+ if (value === null || typeof value !== "object" || Array.isArray(value))
228
+ throw new TypeError(`[Sixb] Model ${field} must be an object.`);
229
+ }
230
+
231
+ export { MODEL_REASONING_EFFORTS2, MODEL_REASONING_LEVELS2, isModelReasoning2, modelReasoningSupportIssue2, MODEL_KINDS, TOKENLESS_MODEL_KINDS2, defineLanguageModelLabel2, defineLanguageModel2 };
232
+
233
+ //# debugId=42D2719D2ECF78EC64756E2164756E21
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/models/language-model.ts", "../src/models/definitions.ts"],
4
+ "sourcesContent": [
5
+ "import type { JsonObject, ReadonlyJsonObject } from \"../json\"\nimport type { LanguageModelDefinitionCatalog, ModelDefinitionCatalog } from \"./catalog\"\nimport type { LanguageModelDefinition } from \"./definitions\"\nimport type { LanguageModelStreamEvent } from \"./events\"\nimport type { ModelMessage } from \"./messages\"\nimport type { ModelCostEstimator } from \"./pricing\"\nimport type { ModelRateCard } from \"./rate-card\"\n\nexport const MODEL_REASONING_EFFORTS = [\"minimal\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"] as const\n\nexport type ModelReasoningEffort = (typeof MODEL_REASONING_EFFORTS)[number]\n\nexport const MODEL_REASONING_LEVELS = [\n \"provider-default\",\n \"none\",\n ...MODEL_REASONING_EFFORTS,\n] as const\n\nexport type ModelReasoningLevel = (typeof MODEL_REASONING_LEVELS)[number]\n\n/** Exact provider-native reasoning budget, expressed in tokens. */\nexport interface ModelReasoningBudget extends ReadonlyJsonObject {\n readonly budgetTokens: number\n}\n\n/** Provider-neutral reasoning preference accepted by every language-model runtime. */\nexport type ModelReasoning = ModelReasoningLevel | ModelReasoningBudget\n\nexport interface ModelReasoningBudgetCapabilities {\n readonly min?: number\n readonly max?: number\n}\n\n/** Controls exposed by one concrete model offering through one provider. */\nexport interface ModelReasoningCapabilities {\n readonly canDisable?: boolean\n readonly efforts?: readonly ModelReasoningEffort[]\n readonly budgetTokens?: ModelReasoningBudgetCapabilities\n}\n\nexport interface ModelCapabilities {\n readonly inputMediaTypes?: readonly string[] | \"any\"\n /** `undefined` is unknown, `false` is unsupported, and an object describes supported controls. */\n readonly reasoning?: false | ModelReasoningCapabilities\n readonly localTools?: boolean\n readonly parallelToolCalls?: boolean\n /** `undefined` is unknown, not an assertion that schema-constrained output is unsupported. */\n readonly nativeStructuredOutput?: boolean\n readonly providerExecutedTools?: boolean\n}\n\nexport interface ModelToolSpecification {\n readonly name: string\n readonly description: string\n readonly inputSchema: JsonObject\n}\n\nexport interface ModelResponseFormat {\n readonly type: \"json\"\n readonly name: string\n readonly description?: string\n readonly schema: JsonObject\n}\n\nexport interface LanguageModelRequest {\n readonly callId: string\n readonly messages: readonly ModelMessage[]\n readonly tools: readonly ModelToolSpecification[]\n readonly reasoning?: ModelReasoning\n /** Per-call output ceiling; providers must not exceed a stricter configured model limit. */\n readonly maxOutputTokens?: number\n /** Disable automatic prompt caching without overriding explicit provider configuration. */\n readonly caching?: \"auto\" | \"off\"\n readonly responseFormat?: ModelResponseFormat\n readonly signal: AbortSignal\n}\n\nexport interface LanguageModelStream {\n readonly events: AsyncIterable<LanguageModelStreamEvent>\n}\n\nexport interface LanguageModel {\n readonly providerId: string\n readonly modelId: string\n readonly definition: LanguageModelDefinition\n readonly costEstimator?: ModelCostEstimator\n /**\n * The prices this binding bills by, for people and agents choosing a model. Pricing itself\n * goes through costEstimator; absent when the price is unknown.\n */\n readonly rateCard?: ModelRateCard\n /**\n * Reasoning Sixb applies whenever this model runs without an explicit choice: chat turns, AI\n * workflow steps, subagents, and direct generation. Providers set it from their model options;\n * Sixb checks it against `definition.capabilities` at startup.\n */\n readonly defaultReasoning?: ModelReasoningLevel\n /**\n * Output limit the binding sets for every call, agent calls included. Unlike\n * `definition.maxOutputTokens`, the most the model itself can produce, this is the developer's\n * choice. Providers set it from their model options; Sixb checks it against that maximum at\n * startup.\n */\n readonly maxOutputTokens?: number\n /**\n * Return an executable model pinned to operational metadata, preserving model identity.\n * `offline` requires a local snapshot without catalog I/O. Workers retain this model\n * for generation and compaction; later catalog refreshes must not change its capabilities/limits.\n * Throw ModelCatalogUnavailableError for catalog transport/access failures to allow workers to\n * retry with an offline snapshot. Invalid definitions and other resolver errors remain fatal.\n */\n resolve?(options?: { readonly offline?: boolean }): Promise<LanguageModel>\n /** Validate known output constraints without inference. Success does not certify endpoint support. */\n validateResponseFormat?(format: ModelResponseFormat): void | Promise<void>\n stream(request: LanguageModelRequest): Promise<LanguageModelStream>\n}\n\n/** The common callable provider shape. Provider packages may accept additional model options. */\nexport interface ModelProvider<TCatalog extends ModelDefinitionCatalog = ModelDefinitionCatalog> {\n readonly providerId: string\n readonly catalog: TCatalog\n}\n\nexport interface LanguageModelProvider extends ModelProvider<LanguageModelDefinitionCatalog> {\n (modelId: string): LanguageModel\n}\n\nexport function isModelReasoning(value: unknown): value is ModelReasoning {\n if (typeof value === \"string\") {\n return (MODEL_REASONING_LEVELS as readonly string[]).includes(value)\n }\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) return false\n if (Object.keys(value).length !== 1) return false\n const budgetTokens = (value as { readonly budgetTokens?: unknown }).budgetTokens\n return typeof budgetTokens === \"number\" && Number.isSafeInteger(budgetTokens) && budgetTokens >= 0\n}\n\n/** Explain why a request cannot be represented by known model capabilities. Unknown is allowed. */\nexport function modelReasoningSupportIssue(\n capabilities: ModelCapabilities[\"reasoning\"],\n reasoning: unknown\n): string | undefined {\n if (reasoning === undefined) return undefined\n if (!isModelReasoning(reasoning)) return \"the reasoning preference is invalid\"\n if (reasoning === \"provider-default\") return undefined\n if (capabilities === undefined) return undefined\n if (capabilities === false) return \"reasoning is not supported\"\n if (reasoning === \"none\") {\n return capabilities.canDisable === true ? undefined : \"reasoning cannot be disabled\"\n }\n if (typeof reasoning === \"string\") {\n return capabilities.efforts?.includes(reasoning) === true\n ? undefined\n : `reasoning effort '${reasoning}' is not supported`\n }\n const budget = capabilities.budgetTokens\n if (budget === undefined) return \"reasoning token budgets are not supported\"\n if (budget.min !== undefined && reasoning.budgetTokens < budget.min) {\n return `reasoning token budget must be at least ${budget.min}`\n }\n if (budget.max !== undefined && reasoning.budgetTokens > budget.max) {\n return `reasoning token budget must not exceed ${budget.max}`\n }\n return undefined\n}\n",
6
+ "import {\n MODEL_REASONING_EFFORTS,\n type ModelCapabilities,\n type ModelReasoningBudgetCapabilities,\n type ModelReasoningCapabilities,\n} from \"./language-model\"\n\n/** @internal Every model kind, for validating stored values. */\nexport const MODEL_KINDS = [\n \"language\",\n \"image\",\n \"video\",\n \"embedding\",\n \"decision\",\n \"transcription\",\n \"speech\",\n \"reranking\",\n] as const\n\nexport type ModelKind = (typeof MODEL_KINDS)[number]\n\n/**\n * @internal Kinds billed per audio second, search, image or character, whose providers mostly\n * report no tokens. Token limits skip them, and a missing token count from one is not a gap.\n */\nexport const TOKENLESS_MODEL_KINDS: readonly ModelKind[] = [\n \"transcription\",\n \"reranking\",\n \"image\",\n \"speech\",\n]\n\n/** Common catalog identity shared by every present and future model runtime. */\nexport interface ModelDefinition {\n readonly kind: ModelKind\n readonly providerId: string\n readonly modelId: string\n readonly name?: string\n readonly description?: string\n /** Model author for display; does not change the provider/model routing identity. */\n readonly publisher?: { readonly id: string; readonly name: string }\n /** Hosting service label, when the model is offered through an intermediary. */\n readonly via?: string\n readonly family?: string\n readonly tags?: readonly string[]\n readonly releaseDate?: string\n}\n\n/** Serializable facts about one concrete model offering from one provider. */\nexport interface LanguageModelDefinition extends ModelDefinition {\n readonly kind: \"language\"\n readonly knowledgeCutoff?: string\n readonly contextWindow?: number\n /** Maximum input tokens, distinct from a shared input/output context window. */\n readonly maxInputTokens?: number\n readonly maxOutputTokens?: number\n readonly capabilities: ModelCapabilities\n}\n\n/** The name and description a project gives a language model, in place of the provider's. */\nexport interface LanguageModelLabel {\n /** Shown in the chat's model picker and to the Agent. */\n readonly name?: string\n /** When the model is useful, for the people choosing it and for the Agent delegating to it. */\n readonly description?: string\n}\n\n/**\n * The label a model binding sets, checked and reported with the provider's error prefix. A provider\n * spreads it over every definition it builds for the binding, its resolved ones included.\n *\n * Stricter than `defineLanguageModel`, which takes a provider's catalog text as it comes: the\n * project types a label by hand, so an empty or padded value is a mistake to report.\n */\nexport function defineLanguageModelLabel(\n label: LanguageModelLabel,\n prefix: string\n): LanguageModelLabel {\n for (const field of [\"name\", \"description\"] as const) {\n const value: unknown = label[field]\n\n if (value !== undefined && (typeof value !== \"string\" || !value || value !== value.trim())) {\n throw new TypeError(`${prefix} ${field} must be a nonempty trimmed string.`)\n }\n }\n\n return {\n ...(label.name === undefined ? {} : { name: label.name }),\n ...(label.description === undefined ? {} : { description: label.description }),\n }\n}\n\nexport function defineLanguageModel(definition: LanguageModelDefinition): LanguageModelDefinition {\n if (definition.kind !== \"language\") {\n throw new TypeError(\"[Sixb] Language model definitions must use kind 'language'.\")\n }\n assertModelId(definition.providerId, \"providerId\")\n assertModelId(definition.modelId, \"modelId\")\n assertOptionalString(definition.name, \"name\")\n assertOptionalString(definition.description, \"description\")\n assertOptionalString(definition.via, \"via\")\n if (definition.via !== undefined && !definition.via.trim())\n throw new TypeError(\"[Sixb] Model via must not be empty.\")\n const publisher = definition.publisher\n if (publisher !== undefined) {\n assertRecord(publisher, \"publisher\")\n for (const [field, value] of Object.entries({ id: publisher.id, name: publisher.name })) {\n if (typeof value !== \"string\" || !value.trim() || value !== value.trim())\n throw new TypeError(`[Sixb] Model publisher.${field} must be a nonempty trimmed string.`)\n }\n }\n assertOptionalString(definition.family, \"family\")\n assertOptionalString(definition.releaseDate, \"releaseDate\")\n assertOptionalString(definition.knowledgeCutoff, \"knowledgeCutoff\")\n const tags = freezeStrings(definition.tags, \"tags\")\n const capabilities = defineModelCapabilities(definition.capabilities)\n assertOptionalPositiveInteger(definition.contextWindow, \"contextWindow\")\n assertOptionalPositiveInteger(definition.maxInputTokens, \"maxInputTokens\")\n assertOptionalPositiveInteger(definition.maxOutputTokens, \"maxOutputTokens\")\n return Object.freeze({\n kind: \"language\",\n providerId: definition.providerId,\n modelId: definition.modelId,\n ...(definition.name === undefined ? {} : { name: definition.name }),\n ...(definition.description === undefined ? {} : { description: definition.description }),\n ...(publisher === undefined\n ? {}\n : { publisher: Object.freeze({ id: publisher.id, name: publisher.name }) }),\n ...(definition.via === undefined ? {} : { via: definition.via }),\n ...(definition.family === undefined ? {} : { family: definition.family }),\n ...(tags === undefined ? {} : { tags }),\n ...(definition.releaseDate === undefined ? {} : { releaseDate: definition.releaseDate }),\n ...(definition.knowledgeCutoff === undefined\n ? {}\n : { knowledgeCutoff: definition.knowledgeCutoff }),\n ...(definition.contextWindow === undefined ? {} : { contextWindow: definition.contextWindow }),\n ...(definition.maxInputTokens === undefined\n ? {}\n : { maxInputTokens: definition.maxInputTokens }),\n ...(definition.maxOutputTokens === undefined\n ? {}\n : { maxOutputTokens: definition.maxOutputTokens }),\n capabilities,\n })\n}\n\nfunction defineModelCapabilities(capabilities: unknown): ModelCapabilities {\n assertRecord(capabilities, \"capabilities\")\n const inputMediaTypes =\n capabilities.inputMediaTypes === \"any\"\n ? \"any\"\n : freezeStrings(capabilities.inputMediaTypes, \"capabilities.inputMediaTypes\")\n for (const [field, value] of Object.entries(capabilities)) {\n if (field === \"inputMediaTypes\" || field === \"reasoning\") continue\n if (value !== undefined && typeof value !== \"boolean\") {\n throw new TypeError(`[Sixb] Model capability '${field}' must be boolean.`)\n }\n }\n const reasoning = freezeReasoningCapabilities(capabilities.reasoning)\n const flags: {\n localTools?: boolean\n parallelToolCalls?: boolean\n nativeStructuredOutput?: boolean\n providerExecutedTools?: boolean\n } = {}\n for (const key of [\n \"localTools\",\n \"parallelToolCalls\",\n \"nativeStructuredOutput\",\n \"providerExecutedTools\",\n ] as const) {\n const value = capabilities[key]\n if (typeof value === \"boolean\") flags[key] = value\n }\n return Object.freeze({\n ...(inputMediaTypes === undefined ? {} : { inputMediaTypes }),\n ...(reasoning === undefined ? {} : { reasoning }),\n ...flags,\n })\n}\n\nfunction freezeReasoningCapabilities(reasoning: unknown): ModelCapabilities[\"reasoning\"] {\n if (reasoning === undefined || reasoning === false) return reasoning\n assertRecord(reasoning, \"reasoning\")\n if (reasoning.canDisable !== undefined && typeof reasoning.canDisable !== \"boolean\") {\n throw new TypeError(\"[Sixb] Model reasoning capability 'canDisable' must be boolean.\")\n }\n const efforts = freezeReasoningEfforts(reasoning.efforts)\n const budgetTokens = freezeReasoningBudgetCapabilities(reasoning.budgetTokens)\n return Object.freeze({\n ...(reasoning.canDisable === undefined ? {} : { canDisable: reasoning.canDisable }),\n ...(efforts === undefined ? {} : { efforts }),\n ...(budgetTokens === undefined ? {} : { budgetTokens }),\n } satisfies ModelReasoningCapabilities)\n}\n\nfunction freezeReasoningEfforts(\n efforts: unknown\n): readonly (typeof MODEL_REASONING_EFFORTS)[number][] | undefined {\n if (efforts === undefined) return undefined\n if (!Array.isArray(efforts)) {\n throw new TypeError(\"[Sixb] Model reasoning capability 'efforts' must be an array.\")\n }\n const seen = new Set<string>()\n return Object.freeze(\n efforts.map((value: unknown) => {\n const effort = MODEL_REASONING_EFFORTS.find((allowed) => allowed === value)\n if (effort === undefined) {\n throw new TypeError(`[Sixb] Model reasoning effort '${String(value)}' is invalid.`)\n }\n if (seen.has(effort)) {\n throw new TypeError(`[Sixb] Model reasoning effort '${effort}' is duplicated.`)\n }\n seen.add(effort)\n return effort\n })\n )\n}\n\nfunction freezeReasoningBudgetCapabilities(\n budget: unknown\n): ModelReasoningBudgetCapabilities | undefined {\n if (budget === undefined) return undefined\n assertRecord(budget, \"reasoning budgetTokens\")\n assertOptionalNonnegativeInteger(budget.min, \"capabilities.reasoning.budgetTokens.min\")\n assertOptionalNonnegativeInteger(budget.max, \"capabilities.reasoning.budgetTokens.max\")\n if (budget.min !== undefined && budget.max !== undefined && budget.max < budget.min) {\n throw new TypeError(\n \"[Sixb] Model reasoning token budget maximum must not be below its minimum.\"\n )\n }\n return Object.freeze({\n ...(budget.min === undefined ? {} : { min: budget.min }),\n ...(budget.max === undefined ? {} : { max: budget.max }),\n })\n}\n\nfunction assertModelId(value: string, field: string): void {\n if (!value.trim()) throw new TypeError(`[Sixb] Model ${field} must not be empty.`)\n}\n\nfunction assertOptionalPositiveInteger(value: number | undefined, field: string): void {\n if (value !== undefined && (!Number.isSafeInteger(value) || value <= 0)) {\n throw new TypeError(`[Sixb] Model ${field} must be a positive safe integer.`)\n }\n}\n\nfunction assertOptionalNonnegativeInteger(\n value: unknown,\n field: string\n): asserts value is number | undefined {\n if (\n value !== undefined &&\n (typeof value !== \"number\" || !Number.isSafeInteger(value) || value < 0)\n ) {\n throw new TypeError(`[Sixb] Model ${field} must be a nonnegative safe integer.`)\n }\n}\n\nfunction assertOptionalString(value: string | undefined, field: string): void {\n if (value !== undefined && typeof value !== \"string\") {\n throw new TypeError(`[Sixb] Model ${field} must be a string.`)\n }\n}\n\nfunction freezeStrings(value: unknown, field: string): readonly string[] | undefined {\n if (value === undefined) return undefined\n if (!Array.isArray(value) || value.some((entry) => typeof entry !== \"string\" || !entry.trim())) {\n throw new TypeError(`[Sixb] Model ${field} must contain nonempty strings.`)\n }\n return Object.freeze([...value])\n}\n\nfunction assertRecord(value: unknown, field: string): asserts value is Record<string, unknown> {\n if (value === null || typeof value !== \"object\" || Array.isArray(value))\n throw new TypeError(`[Sixb] Model ${field} must be an object.`)\n}\n"
7
+ ],
8
+ "mappings": "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",
9
+ "debugId": "42D2719D2ECF78EC64756E2164756E21",
10
+ "names": []
11
+ }
@@ -1,18 +1,34 @@
1
1
  // @bun
2
+ import {
3
+ isValidFileRef
4
+ } from "./chunk-wkv3h3q7.js";
2
5
  import {
3
6
  isModelReasoning2,
4
- normalizeModelProviderIds2
5
- } from "./chunk-pqajwytd.js";
7
+ MODEL_KINDS
8
+ } from "./chunk-pdt5cw8z.js";
6
9
  import {
7
10
  normalizeRequesterGroupIds
8
11
  } from "./chunk-9tc8dxmn.js";
12
+ import {
13
+ normalizeModelProviderIds2
14
+ } from "./chunk-kcqpk9w1.js";
9
15
  import {
10
16
  assertJsonValue2,
11
17
  isPlainRecord
12
18
  } from "./chunk-wy0qdqfm.js";
13
19
 
20
+ // src/storage/ai-usage/errors.ts
21
+ class AiUsageStorageError2 extends Error {
22
+ code;
23
+ name = "AiUsageStorageError";
24
+ constructor(code, message) {
25
+ super(message);
26
+ this.code = code;
27
+ }
28
+ }
29
+
14
30
  // src/storage/ai-usage/usage.ts
15
- var USAGE_FIELDS = [
31
+ var AI_USAGE_FIELDS = [
16
32
  "inputTokens",
17
33
  "outputTokens",
18
34
  "uncachedInputTokens",
@@ -20,8 +36,13 @@ var USAGE_FIELDS = [
20
36
  "cacheWriteInputTokens",
21
37
  "textOutputTokens",
22
38
  "reasoningOutputTokens",
23
- "audioDurationMs"
39
+ "audioDurationMs",
40
+ "imageOutputTokens",
41
+ "audioOutputTokens",
42
+ "outputImages",
43
+ "inputCharacters"
24
44
  ];
45
+ var USAGE_FIELDS = AI_USAGE_FIELDS;
25
46
  function normalizeAiModelCallUsage2(input) {
26
47
  for (const field of USAGE_FIELDS) {
27
48
  assertUsageCount(input[field], field);
@@ -38,6 +59,10 @@ function normalizeAiModelCallUsage2(input) {
38
59
  ...input.cacheWriteInputTokens === undefined ? {} : { cacheWriteInputTokens: input.cacheWriteInputTokens },
39
60
  ...input.textOutputTokens === undefined ? {} : { textOutputTokens: input.textOutputTokens },
40
61
  ...input.reasoningOutputTokens === undefined ? {} : { reasoningOutputTokens: input.reasoningOutputTokens },
62
+ ...input.imageOutputTokens === undefined ? {} : { imageOutputTokens: input.imageOutputTokens },
63
+ ...input.audioOutputTokens === undefined ? {} : { audioOutputTokens: input.audioOutputTokens },
64
+ ...input.outputImages === undefined ? {} : { outputImages: input.outputImages },
65
+ ...input.inputCharacters === undefined ? {} : { inputCharacters: input.inputCharacters },
41
66
  reportingStatus
42
67
  };
43
68
  }
@@ -88,7 +113,7 @@ function normalizeAiModelCallRecord2(input) {
88
113
  assertNonBlank(input.responseModelId, "responseModelId");
89
114
  }
90
115
  assertNonBlank(input.responseId, "responseId");
91
- if (input.modelKind !== undefined && !["language", "image", "video", "embedding", "decision", "transcription", "reranking"].includes(input.modelKind)) {
116
+ if (input.modelKind !== undefined && !MODEL_KINDS.includes(input.modelKind)) {
92
117
  throw new TypeError("[Sixb] AI model kind is invalid.");
93
118
  }
94
119
  const occurredAt = cloneValidDate(input.occurredAt, "occurredAt");
@@ -116,6 +141,29 @@ function normalizeAiModelCallRecord2(input) {
116
141
  recordedAt
117
142
  };
118
143
  }
144
+ function normalizeAiModelCallFilesRecord2(input) {
145
+ assertNonBlank(input.projectId, "projectId");
146
+ assertAiUsageExecutionId2(input.executionId);
147
+ assertNonBlank(input.callId, "callId");
148
+ if (!Array.isArray(input.files) || input.files.length === 0) {
149
+ throw new TypeError("[Sixb] AI model-call files must be a nonempty array.");
150
+ }
151
+ if (!input.files.every(isValidFileRef)) {
152
+ throw new TypeError("[Sixb] AI model-call files must be valid FileRefs.");
153
+ }
154
+ return {
155
+ projectId: input.projectId,
156
+ executionId: input.executionId,
157
+ callId: input.callId,
158
+ files: structuredClone(input.files),
159
+ recordedAt: cloneValidDate(input.recordedAt ?? new Date, "recordedAt")
160
+ };
161
+ }
162
+ function assertSameCallExecution2(existing, input) {
163
+ if (existing.executionId === input.executionId)
164
+ return existing;
165
+ throw new AiUsageStorageError2("duplicate_id", `[Sixb] AI model call '${input.callId}' already has files from another execution.`);
166
+ }
119
167
  function cloneRequestedReasoning(reasoning) {
120
168
  if (reasoning === undefined)
121
169
  return;
@@ -153,6 +201,6 @@ function cloneValidDate(value, field) {
153
201
  return new Date(value);
154
202
  }
155
203
 
156
- export { normalizeAiModelCallUsage2, aggregateAiModelCallUsage2, normalizeAiModelCallRecord2, assertAiUsageExecutionId2 };
204
+ export { AiUsageStorageError2, AI_USAGE_FIELDS, normalizeAiModelCallUsage2, aggregateAiModelCallUsage2, normalizeAiModelCallRecord2, normalizeAiModelCallFilesRecord2, assertSameCallExecution2, assertAiUsageExecutionId2 };
157
205
 
158
- //# debugId=3EEC0D4BC9CCF52864756E2164756E21
206
+ //# debugId=FB38052F1DE2E9BE64756E2164756E21