@sixb/core 0.1.21 → 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 (1263) 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 +63 -59
  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 +14 -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/timeline.d.ts +8 -1
  28. package/dist/activity/timeline.d.ts.map +1 -1
  29. package/dist/agents/accounting.d.ts +15 -0
  30. package/dist/agents/accounting.d.ts.map +1 -0
  31. package/dist/agents/adapters.d.ts.map +1 -1
  32. package/dist/agents/agent-mail.d.ts +9 -0
  33. package/dist/agents/agent-mail.d.ts.map +1 -0
  34. package/dist/agents/api-gateway.d.ts +5 -0
  35. package/dist/agents/api-gateway.d.ts.map +1 -1
  36. package/dist/agents/approval-continuation.d.ts +23 -0
  37. package/dist/agents/approval-continuation.d.ts.map +1 -0
  38. package/dist/agents/approval-executor.d.ts +56 -0
  39. package/dist/agents/approval-executor.d.ts.map +1 -0
  40. package/dist/agents/approval-outcome.d.ts +8 -0
  41. package/dist/agents/approval-outcome.d.ts.map +1 -0
  42. package/dist/agents/approvals.d.ts +210 -0
  43. package/dist/agents/approvals.d.ts.map +1 -0
  44. package/dist/agents/authority.d.ts +10 -0
  45. package/dist/agents/authority.d.ts.map +1 -1
  46. package/dist/agents/builders.d.ts.map +1 -1
  47. package/dist/agents/cancel.d.ts +23 -0
  48. package/dist/agents/cancel.d.ts.map +1 -0
  49. package/dist/agents/child-question.d.ts +18 -0
  50. package/dist/agents/child-question.d.ts.map +1 -0
  51. package/dist/agents/children.d.ts +99 -0
  52. package/dist/agents/children.d.ts.map +1 -0
  53. package/dist/agents/context/index.js +1 -1
  54. package/dist/agents/context-compaction.d.ts.map +1 -1
  55. package/dist/agents/errors.d.ts +13 -1
  56. package/dist/agents/errors.d.ts.map +1 -1
  57. package/dist/agents/execution.d.ts +180 -14
  58. package/dist/agents/execution.d.ts.map +1 -1
  59. package/dist/agents/fork.d.ts +16 -0
  60. package/dist/agents/fork.d.ts.map +1 -0
  61. package/dist/agents/ids.d.ts +7 -0
  62. package/dist/agents/ids.d.ts.map +1 -1
  63. package/dist/agents/index.d.ts +19 -8
  64. package/dist/agents/index.d.ts.map +1 -1
  65. package/dist/agents/index.js +159 -86
  66. package/dist/agents/index.js.map +1 -1
  67. package/dist/agents/memory-execution.d.ts +57 -0
  68. package/dist/agents/memory-execution.d.ts.map +1 -0
  69. package/dist/agents/memory.d.ts +49 -0
  70. package/dist/agents/memory.d.ts.map +1 -0
  71. package/dist/agents/message.d.ts +50 -1
  72. package/dist/agents/message.d.ts.map +1 -1
  73. package/dist/agents/model-loop.d.ts +19 -0
  74. package/dist/agents/model-loop.d.ts.map +1 -1
  75. package/dist/agents/model-routing.d.ts +19 -0
  76. package/dist/agents/model-routing.d.ts.map +1 -0
  77. package/dist/agents/participants.d.ts +18 -0
  78. package/dist/agents/participants.d.ts.map +1 -0
  79. package/dist/agents/reference.d.ts.map +1 -1
  80. package/dist/agents/request.d.ts +36 -2
  81. package/dist/agents/request.d.ts.map +1 -1
  82. package/dist/agents/run-scope.d.ts +51 -0
  83. package/dist/agents/run-scope.d.ts.map +1 -0
  84. package/dist/agents/streams/index.d.ts +3 -2
  85. package/dist/agents/streams/index.d.ts.map +1 -1
  86. package/dist/agents/streams/index.js +7 -3
  87. package/dist/agents/streams/index.js.map +1 -1
  88. package/dist/agents/streams/internal.d.ts +1 -1
  89. package/dist/agents/streams/internal.d.ts.map +1 -1
  90. package/dist/agents/streams/internal.js +5 -3
  91. package/dist/agents/streams/internal.js.map +1 -1
  92. package/dist/agents/streams/protocol.d.ts +122 -3
  93. package/dist/agents/streams/protocol.d.ts.map +1 -1
  94. package/dist/agents/subagent-runs.d.ts +12 -0
  95. package/dist/agents/subagent-runs.d.ts.map +1 -0
  96. package/dist/agents/thread-access.d.ts +53 -0
  97. package/dist/agents/thread-access.d.ts.map +1 -0
  98. package/dist/agents/tool-definition.d.ts +5 -4
  99. package/dist/agents/tool-definition.d.ts.map +1 -1
  100. package/dist/agents/types.d.ts +23 -4
  101. package/dist/agents/types.d.ts.map +1 -1
  102. package/dist/agents/validation.d.ts +1 -1
  103. package/dist/agents/validation.d.ts.map +1 -1
  104. package/dist/artifacts/access.d.ts +52 -0
  105. package/dist/artifacts/access.d.ts.map +1 -0
  106. package/dist/artifacts/canvas.d.ts +92 -0
  107. package/dist/artifacts/canvas.d.ts.map +1 -0
  108. package/dist/artifacts/csv.d.ts +5 -0
  109. package/dist/artifacts/csv.d.ts.map +1 -1
  110. package/dist/artifacts/errors.d.ts +7 -2
  111. package/dist/artifacts/errors.d.ts.map +1 -1
  112. package/dist/artifacts/execution.d.ts +102 -7
  113. package/dist/artifacts/execution.d.ts.map +1 -1
  114. package/dist/artifacts/formula/check.d.ts +24 -0
  115. package/dist/artifacts/formula/check.d.ts.map +1 -0
  116. package/dist/artifacts/formula/evaluate.d.ts +32 -0
  117. package/dist/artifacts/formula/evaluate.d.ts.map +1 -0
  118. package/dist/artifacts/formula/index.d.ts +38 -0
  119. package/dist/artifacts/formula/index.d.ts.map +1 -0
  120. package/dist/artifacts/formula/parser.d.ts +67 -0
  121. package/dist/artifacts/formula/parser.d.ts.map +1 -0
  122. package/dist/artifacts/frames/assets.d.ts +11 -9
  123. package/dist/artifacts/frames/assets.d.ts.map +1 -1
  124. package/dist/artifacts/frames/entries.d.ts +19 -0
  125. package/dist/artifacts/frames/entries.d.ts.map +1 -0
  126. package/dist/artifacts/frames/grants.d.ts +6 -6
  127. package/dist/artifacts/frames/grants.d.ts.map +1 -1
  128. package/dist/artifacts/frames/index.d.ts +4 -2
  129. package/dist/artifacts/frames/index.d.ts.map +1 -1
  130. package/dist/artifacts/frames/index.js +444 -51
  131. package/dist/artifacts/frames/index.js.map +10 -8
  132. package/dist/artifacts/frames/kit.d.ts +10 -5
  133. package/dist/artifacts/frames/kit.d.ts.map +1 -1
  134. package/dist/artifacts/frames/probe.d.ts +16 -12
  135. package/dist/artifacts/frames/probe.d.ts.map +1 -1
  136. package/dist/artifacts/frames/protocol.d.ts +79 -10
  137. package/dist/artifacts/frames/protocol.d.ts.map +1 -1
  138. package/dist/artifacts/frames/runtime.d.ts +27 -9
  139. package/dist/artifacts/frames/runtime.d.ts.map +1 -1
  140. package/dist/artifacts/index.d.ts +11 -5
  141. package/dist/artifacts/index.d.ts.map +1 -1
  142. package/dist/artifacts/index.js +128 -6
  143. package/dist/artifacts/index.js.map +3 -3
  144. package/dist/artifacts/kinds.d.ts +1 -1
  145. package/dist/artifacts/kinds.d.ts.map +1 -1
  146. package/dist/artifacts/limits.d.ts +30 -0
  147. package/dist/artifacts/limits.d.ts.map +1 -1
  148. package/dist/artifacts/live-sheet.d.ts +65 -0
  149. package/dist/artifacts/live-sheet.d.ts.map +1 -0
  150. package/dist/artifacts/outline.d.ts +27 -1
  151. package/dist/artifacts/outline.d.ts.map +1 -1
  152. package/dist/artifacts/publish/index.d.ts +2 -0
  153. package/dist/artifacts/publish/index.d.ts.map +1 -1
  154. package/dist/artifacts/publish/index.js +59 -19
  155. package/dist/artifacts/publish/index.js.map +1 -1
  156. package/dist/artifacts/publish/publish.d.ts +43 -11
  157. package/dist/artifacts/publish/publish.d.ts.map +1 -1
  158. package/dist/artifacts/publish/queries.d.ts +33 -0
  159. package/dist/artifacts/publish/queries.d.ts.map +1 -0
  160. package/dist/artifacts/publish/references.d.ts +6 -3
  161. package/dist/artifacts/publish/references.d.ts.map +1 -1
  162. package/dist/artifacts/publish/validate/canvas.d.ts +18 -0
  163. package/dist/artifacts/publish/validate/canvas.d.ts.map +1 -0
  164. package/dist/artifacts/publish/validate/html.d.ts +20 -0
  165. package/dist/artifacts/publish/validate/html.d.ts.map +1 -0
  166. package/dist/artifacts/publish/validate/page.d.ts +15 -0
  167. package/dist/artifacts/publish/validate/page.d.ts.map +1 -0
  168. package/dist/artifacts/publish/validate/sheet.d.ts +11 -3
  169. package/dist/artifacts/publish/validate/sheet.d.ts.map +1 -1
  170. package/dist/artifacts/publish/validate/slides.d.ts +1 -7
  171. package/dist/artifacts/publish/validate/slides.d.ts.map +1 -1
  172. package/dist/artifacts/queries.d.ts +95 -0
  173. package/dist/artifacts/queries.d.ts.map +1 -0
  174. package/dist/artifacts/resolve.d.ts +6 -0
  175. package/dist/artifacts/resolve.d.ts.map +1 -1
  176. package/dist/artifacts/run-query.d.ts +26 -0
  177. package/dist/artifacts/run-query.d.ts.map +1 -0
  178. package/dist/artifacts/serialize-query.d.ts +12 -0
  179. package/dist/artifacts/serialize-query.d.ts.map +1 -0
  180. package/dist/artifacts/sheet-rules.d.ts +26 -0
  181. package/dist/artifacts/sheet-rules.d.ts.map +1 -0
  182. package/dist/artifacts/tones.d.ts +8 -0
  183. package/dist/artifacts/tones.d.ts.map +1 -0
  184. package/dist/artifacts/workbook.d.ts +76 -5
  185. package/dist/artifacts/workbook.d.ts.map +1 -1
  186. package/dist/auth/index.d.ts +1 -1
  187. package/dist/auth/index.d.ts.map +1 -1
  188. package/dist/auth/index.js +14 -11
  189. package/dist/auth/index.js.map +1 -1
  190. package/dist/auth/member-events.d.ts +13 -0
  191. package/dist/auth/member-events.d.ts.map +1 -0
  192. package/dist/auth/profile.d.ts +11 -0
  193. package/dist/auth/profile.d.ts.map +1 -0
  194. package/dist/auth/runtime.d.ts +31 -3
  195. package/dist/auth/runtime.d.ts.map +1 -1
  196. package/dist/auth/strategy.d.ts +3 -1
  197. package/dist/auth/strategy.d.ts.map +1 -1
  198. package/dist/auth/strategy.js +7 -3
  199. package/dist/auth/strategy.js.map +1 -1
  200. package/dist/auth/types.d.ts +30 -1
  201. package/dist/auth/types.d.ts.map +1 -1
  202. package/dist/authorization/decision.d.ts +15 -0
  203. package/dist/authorization/decision.d.ts.map +1 -1
  204. package/dist/authorization/event-visibility.d.ts +5 -1
  205. package/dist/authorization/event-visibility.d.ts.map +1 -1
  206. package/dist/authorization/grant-kinds.d.ts +2 -2
  207. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  208. package/dist/authorization/index.d.ts +2 -2
  209. package/dist/authorization/index.d.ts.map +1 -1
  210. package/dist/authorization/index.js +12 -7
  211. package/dist/authorization/index.js.map +1 -1
  212. package/dist/authorization/resolve.d.ts +19 -1
  213. package/dist/authorization/resolve.d.ts.map +1 -1
  214. package/dist/authorization/run-visibility.d.ts +8 -1
  215. package/dist/authorization/run-visibility.d.ts.map +1 -1
  216. package/dist/authorization/types.d.ts +14 -0
  217. package/dist/authorization/types.d.ts.map +1 -1
  218. package/dist/bootstrap/index.js +69 -65
  219. package/dist/bootstrap/index.js.map +2 -2
  220. package/dist/{chunk-ky3j490c.js → chunk-02bzjgnt.js} +6 -6
  221. package/dist/{chunk-ky3j490c.js.map → chunk-02bzjgnt.js.map} +1 -1
  222. package/dist/{chunk-mfs23znk.js → chunk-07kkp2e1.js} +1 -1
  223. package/dist/{chunk-c1rxbz5y.js → chunk-098anw4f.js} +21 -19
  224. package/dist/chunk-098anw4f.js.map +12 -0
  225. package/dist/{chunk-z58tm0hm.js → chunk-0phpbbvm.js} +3 -3
  226. package/dist/{chunk-ere85b8y.js → chunk-0xmt5p5y.js} +116 -27
  227. package/dist/chunk-0xmt5p5y.js.map +14 -0
  228. package/dist/{chunk-t6f3tdnr.js → chunk-16a9dmfy.js} +33 -2
  229. package/dist/{chunk-t6f3tdnr.js.map → chunk-16a9dmfy.js.map} +5 -4
  230. package/dist/chunk-18sk89cg.js +47 -0
  231. package/dist/chunk-18sk89cg.js.map +10 -0
  232. package/dist/{chunk-e17zdm62.js → chunk-1t6k1avb.js} +1 -1
  233. package/dist/chunk-2626mh4m.js +693 -0
  234. package/dist/chunk-2626mh4m.js.map +19 -0
  235. package/dist/{chunk-qczk96d9.js → chunk-2adz0h75.js} +13 -4
  236. package/dist/chunk-2adz0h75.js.map +11 -0
  237. package/dist/{chunk-kge7k6ey.js → chunk-2fn60nvs.js} +2 -2
  238. package/dist/{chunk-99nd4rc1.js → chunk-2gjj5dx3.js} +5 -4
  239. package/dist/{chunk-99nd4rc1.js.map → chunk-2gjj5dx3.js.map} +3 -3
  240. package/dist/{chunk-mjddfa7k.js → chunk-3fqxbn31.js} +2 -24
  241. package/dist/{chunk-mjddfa7k.js.map → chunk-3fqxbn31.js.map} +3 -4
  242. package/dist/{chunk-y0c4e6ex.js → chunk-3gbefjg5.js} +1 -1
  243. package/dist/{chunk-5hx48dnn.js → chunk-45ngkxkp.js} +52 -31
  244. package/dist/chunk-45ngkxkp.js.map +13 -0
  245. package/dist/{chunk-cy4mbddw.js → chunk-48jezz3j.js} +1 -1
  246. package/dist/{chunk-561r0yc9.js → chunk-4b26qwbg.js} +13 -13
  247. package/dist/{chunk-561r0yc9.js.map → chunk-4b26qwbg.js.map} +1 -1
  248. package/dist/{chunk-9k93ah50.js → chunk-4f3ydv7t.js} +33 -69
  249. package/dist/chunk-4f3ydv7t.js.map +10 -0
  250. package/dist/chunk-4y26vs3v.js +97 -0
  251. package/dist/chunk-4y26vs3v.js.map +10 -0
  252. package/dist/{chunk-4as3wt1c.js → chunk-4ymrcdbm.js} +7 -3
  253. package/dist/chunk-4ymrcdbm.js.map +12 -0
  254. package/dist/{chunk-hcbyfxbe.js → chunk-5grk14e5.js} +76 -2
  255. package/dist/{chunk-hcbyfxbe.js.map → chunk-5grk14e5.js.map} +4 -3
  256. package/dist/{chunk-8frc8a4j.js → chunk-65pyhyas.js} +90 -83
  257. package/dist/chunk-65pyhyas.js.map +20 -0
  258. package/dist/{chunk-hwksyjks.js → chunk-661ezhks.js} +182 -6
  259. package/dist/chunk-661ezhks.js.map +11 -0
  260. package/dist/{chunk-447a5c0p.js → chunk-6n69k945.js} +2 -2
  261. package/dist/{chunk-0bphap9y.js → chunk-6p0pastb.js} +5 -5
  262. package/dist/{chunk-9j4jw7as.js → chunk-6rrtzea3.js} +18 -5
  263. package/dist/chunk-6rrtzea3.js.map +14 -0
  264. package/dist/{chunk-431pyp2c.js → chunk-6y0mkhex.js} +2 -2
  265. package/dist/{chunk-f4pamkt9.js → chunk-73v685wb.js} +10 -10
  266. package/dist/{chunk-f4pamkt9.js.map → chunk-73v685wb.js.map} +3 -3
  267. package/dist/{chunk-akzryx9h.js → chunk-7gr4j2eq.js} +7836 -5047
  268. package/dist/chunk-7gr4j2eq.js.map +120 -0
  269. package/dist/{chunk-bk9svbcq.js → chunk-7mc2wkre.js} +386 -86
  270. package/dist/chunk-7mc2wkre.js.map +50 -0
  271. package/dist/{chunk-6rqgmkde.js → chunk-7z5p905k.js} +335 -703
  272. package/dist/chunk-7z5p905k.js.map +22 -0
  273. package/dist/{chunk-yxd3nnqt.js → chunk-9mab3dvg.js} +26 -2
  274. package/dist/chunk-9mab3dvg.js.map +11 -0
  275. package/dist/chunk-9wr3yajk.js +42 -0
  276. package/dist/chunk-9wr3yajk.js.map +10 -0
  277. package/dist/chunk-az47zep4.js +41 -0
  278. package/dist/chunk-az47zep4.js.map +10 -0
  279. package/dist/{chunk-s7jg7pmn.js → chunk-bab05bhg.js} +1 -1
  280. package/dist/{chunk-858emn8m.js → chunk-bktev1ds.js} +14 -11
  281. package/dist/{chunk-858emn8m.js.map → chunk-bktev1ds.js.map} +3 -3
  282. package/dist/{chunk-dhcv7yxc.js → chunk-c0vk1djt.js} +5 -3
  283. package/dist/chunk-c0vk1djt.js.map +11 -0
  284. package/dist/chunk-c69nj7se.js +3 -0
  285. package/dist/{chunk-7n30ybym.js.map → chunk-c69nj7se.js.map} +1 -1
  286. package/dist/{chunk-q5e5tv4b.js → chunk-c844dkwd.js} +1 -1
  287. package/dist/{chunk-g257jwnc.js → chunk-cdk3egjj.js} +17 -4
  288. package/dist/chunk-cdk3egjj.js.map +12 -0
  289. package/dist/chunk-cswhawa2.js +113 -0
  290. package/dist/chunk-cswhawa2.js.map +10 -0
  291. package/dist/{chunk-cfj9dfbb.js → chunk-d2m879s4.js} +2 -2
  292. package/dist/{chunk-arns890k.js → chunk-d7vyc7k6.js} +2 -2
  293. package/dist/chunk-d7vyc7k6.js.map +10 -0
  294. package/dist/{chunk-q7gn29y3.js → chunk-dp0cdtj2.js} +2 -2
  295. package/dist/{chunk-6x0pqh32.js → chunk-e5wf5vz0.js} +3 -1
  296. package/dist/chunk-e5wf5vz0.js.map +10 -0
  297. package/dist/{chunk-cn0fwwhy.js → chunk-efmm01gj.js} +108 -1045
  298. package/dist/chunk-efmm01gj.js.map +18 -0
  299. package/dist/{chunk-918wwnaa.js → chunk-ezne9wc9.js} +1224 -430
  300. package/dist/chunk-ezne9wc9.js.map +71 -0
  301. package/dist/{chunk-tbc1ngpd.js → chunk-fe8zwt8b.js} +58 -12
  302. package/dist/{chunk-tbc1ngpd.js.map → chunk-fe8zwt8b.js.map} +5 -4
  303. package/dist/{chunk-br3k6qbf.js → chunk-fm62y49k.js} +1 -1
  304. package/dist/{chunk-nq6gpjt7.js → chunk-fntqb7qy.js} +30 -4
  305. package/dist/{chunk-nq6gpjt7.js.map → chunk-fntqb7qy.js.map} +5 -5
  306. package/dist/{chunk-1cc1xaf3.js → chunk-fp2kq35z.js} +26 -10
  307. package/dist/{chunk-1cc1xaf3.js.map → chunk-fp2kq35z.js.map} +5 -5
  308. package/dist/{chunk-vvxtn22d.js → chunk-g663fahq.js} +2 -2
  309. package/dist/{chunk-k43ct2ke.js → chunk-gvj5cd3b.js} +16 -9
  310. package/dist/chunk-gvj5cd3b.js.map +12 -0
  311. package/dist/{chunk-rmakanzx.js → chunk-h33shhq6.js} +5 -5
  312. package/dist/{chunk-nn5xnx3s.js → chunk-h3pbv7n8.js} +1738 -38
  313. package/dist/chunk-h3pbv7n8.js.map +48 -0
  314. package/dist/chunk-hn2r7z41.js.map +1 -1
  315. package/dist/{chunk-pbcbn83d.js → chunk-hqsp2sx4.js} +54 -8
  316. package/dist/chunk-hqsp2sx4.js.map +14 -0
  317. package/dist/{chunk-d09e3rax.js → chunk-hwarjrgf.js} +1 -1
  318. package/dist/{chunk-vf57cr4t.js → chunk-hyesv9dv.js} +1 -1
  319. package/dist/chunk-hz5d43gn.js +45 -0
  320. package/dist/chunk-hz5d43gn.js.map +10 -0
  321. package/dist/{chunk-91mg3nj9.js → chunk-j936th07.js} +86 -41
  322. package/dist/chunk-j936th07.js.map +12 -0
  323. package/dist/chunk-kcqpk9w1.js +75 -0
  324. package/dist/chunk-kcqpk9w1.js.map +10 -0
  325. package/dist/{chunk-5vems3nx.js → chunk-m2nevja0.js} +2 -2
  326. package/dist/{chunk-x9v4cx1d.js → chunk-m36fw8ft.js} +1 -1
  327. package/dist/{chunk-a40ad1ft.js → chunk-mbsbxarb.js} +1 -1
  328. package/dist/chunk-mzx71snp.js +129 -0
  329. package/dist/chunk-mzx71snp.js.map +10 -0
  330. package/dist/{chunk-6aawea28.js → chunk-n8q5j6y5.js} +1 -1
  331. package/dist/{chunk-d7dnxdep.js → chunk-n9zpx9c6.js} +4 -4
  332. package/dist/{chunk-xvsc5m8n.js → chunk-npcr0228.js} +1 -1
  333. package/dist/chunk-nydf3dbe.js +663 -0
  334. package/dist/chunk-nydf3dbe.js.map +13 -0
  335. package/dist/chunk-pdt5cw8z.js +233 -0
  336. package/dist/chunk-pdt5cw8z.js.map +11 -0
  337. package/dist/{chunk-rj69qcrd.js → chunk-pgrf64hp.js} +55 -7
  338. package/dist/chunk-pgrf64hp.js.map +12 -0
  339. package/dist/{chunk-y5tah2kf.js → chunk-q4pmvkg0.js} +1 -1
  340. package/dist/chunk-qhqgp4jf.js +1418 -0
  341. package/dist/chunk-qhqgp4jf.js.map +22 -0
  342. package/dist/{chunk-48qjhh6v.js → chunk-qx00vjrj.js} +19 -60
  343. package/dist/chunk-qx00vjrj.js.map +13 -0
  344. package/dist/{chunk-5948n82c.js → chunk-r6szek0x.js} +184 -7
  345. package/dist/chunk-r6szek0x.js.map +10 -0
  346. package/dist/{chunk-v4jbb3rs.js → chunk-rap5w0x0.js} +156 -2
  347. package/dist/chunk-rap5w0x0.js.map +10 -0
  348. package/dist/{chunk-pfp1txq2.js → chunk-sgx82nnt.js} +5 -31
  349. package/dist/{chunk-pfp1txq2.js.map → chunk-sgx82nnt.js.map} +3 -4
  350. package/dist/{chunk-bkpke1sg.js → chunk-t5608tkq.js} +3 -1
  351. package/dist/{chunk-bkpke1sg.js.map → chunk-t5608tkq.js.map} +3 -3
  352. package/dist/{chunk-29yx306f.js → chunk-tdxfsg1c.js} +507 -265
  353. package/dist/chunk-tdxfsg1c.js.map +23 -0
  354. package/dist/{chunk-d5rjr8c0.js → chunk-vabga7fk.js} +1 -1
  355. package/dist/{chunk-dhdha526.js → chunk-vhbw5sqm.js} +26 -2
  356. package/dist/chunk-vhbw5sqm.js.map +10 -0
  357. package/dist/{chunk-e6k4thh5.js → chunk-vpgwq5nf.js} +98 -12
  358. package/dist/chunk-vpgwq5nf.js.map +21 -0
  359. package/dist/{chunk-61y5xs4p.js → chunk-vyt322b6.js} +69 -50
  360. package/dist/{chunk-61y5xs4p.js.map → chunk-vyt322b6.js.map} +4 -4
  361. package/dist/chunk-waqk73p1.js +2380 -0
  362. package/dist/chunk-waqk73p1.js.map +23 -0
  363. package/dist/chunk-wsc1brye.js +27 -0
  364. package/dist/chunk-wsc1brye.js.map +10 -0
  365. package/dist/{chunk-96yw3pwd.js → chunk-y7dbmaqh.js} +28 -2
  366. package/dist/chunk-y7dbmaqh.js.map +10 -0
  367. package/dist/{chunk-6vb4st8k.js → chunk-yc9ners4.js} +120 -19
  368. package/dist/{chunk-6vb4st8k.js.map → chunk-yc9ners4.js.map} +8 -8
  369. package/dist/{chunk-dvd2fp9q.js → chunk-zbc929zg.js} +28 -4
  370. package/dist/chunk-zbc929zg.js.map +13 -0
  371. package/dist/chunk-zrvhsq7f.js +37 -0
  372. package/dist/chunk-zrvhsq7f.js.map +10 -0
  373. package/dist/datasets/write.js +5 -5
  374. package/dist/error-reporting/internal.js +3 -3
  375. package/dist/errors/catalog.d.ts +26 -0
  376. package/dist/errors/catalog.d.ts.map +1 -1
  377. package/dist/errors/internal.d.ts.map +1 -1
  378. package/dist/errors/internal.js +1 -1
  379. package/dist/events/definitions.d.ts +7 -0
  380. package/dist/events/definitions.d.ts.map +1 -1
  381. package/dist/events/execution.d.ts.map +1 -1
  382. package/dist/events/index.d.ts +2 -3
  383. package/dist/events/index.d.ts.map +1 -1
  384. package/dist/events/index.js +8 -10
  385. package/dist/events/index.js.map +1 -1
  386. package/dist/events/scope.d.ts.map +1 -1
  387. package/dist/events/scope.js +1 -1
  388. package/dist/events/selectors/builder.d.ts +12 -1
  389. package/dist/events/selectors/builder.d.ts.map +1 -1
  390. package/dist/events/selectors/index.d.ts +2 -2
  391. package/dist/events/selectors/index.d.ts.map +1 -1
  392. package/dist/events/selectors/index.js +2 -2
  393. package/dist/events/selectors/types.d.ts +19 -3
  394. package/dist/events/selectors/types.d.ts.map +1 -1
  395. package/dist/events/service.d.ts +17 -2
  396. package/dist/events/service.d.ts.map +1 -1
  397. package/dist/events/types/index.d.ts +3 -1
  398. package/dist/events/types/index.d.ts.map +1 -1
  399. package/dist/events/types/users.d.ts +63 -0
  400. package/dist/events/types/users.d.ts.map +1 -0
  401. package/dist/events/view-conditions.d.ts +34 -0
  402. package/dist/events/view-conditions.d.ts.map +1 -0
  403. package/dist/execution/agent.d.ts +15 -0
  404. package/dist/execution/agent.d.ts.map +1 -1
  405. package/dist/execution/agent.js +63 -57
  406. package/dist/execution/agent.js.map +1 -1
  407. package/dist/execution/authorization.d.ts.map +1 -1
  408. package/dist/execution/authorized-object-reader.d.ts +51 -2
  409. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  410. package/dist/execution/lineage.d.ts +7 -0
  411. package/dist/execution/lineage.d.ts.map +1 -0
  412. package/dist/execution/object-reader-ontology.d.ts +2 -2
  413. package/dist/execution/object-reader-ontology.d.ts.map +1 -1
  414. package/dist/execution/object-reader-security.d.ts +24 -3
  415. package/dist/execution/object-reader-security.d.ts.map +1 -1
  416. package/dist/execution/object-reader-users.d.ts +20 -0
  417. package/dist/execution/object-reader-users.d.ts.map +1 -0
  418. package/dist/execution/preparation.d.ts +23 -0
  419. package/dist/execution/preparation.d.ts.map +1 -0
  420. package/dist/execution/primitive.js +61 -57
  421. package/dist/execution/primitive.js.map +1 -1
  422. package/dist/execution/request.d.ts +2 -1
  423. package/dist/execution/request.d.ts.map +1 -1
  424. package/dist/execution/request.js +64 -56
  425. package/dist/execution/request.js.map +3 -3
  426. package/dist/execution/unique-lookup.d.ts +14 -0
  427. package/dist/execution/unique-lookup.d.ts.map +1 -0
  428. package/dist/execution/visible-objects.d.ts +12 -0
  429. package/dist/execution/visible-objects.d.ts.map +1 -0
  430. package/dist/http/api-routes.d.ts +17 -0
  431. package/dist/http/api-routes.d.ts.map +1 -1
  432. package/dist/http/index.js +1 -1
  433. package/dist/index.d.ts +32 -15
  434. package/dist/index.d.ts.map +1 -1
  435. package/dist/index.js +137 -126
  436. package/dist/index.js.map +1 -1
  437. package/dist/lake-storage/index.js +5 -5
  438. package/dist/materialization/errors.d.ts +25 -0
  439. package/dist/materialization/errors.d.ts.map +1 -1
  440. package/dist/materialization/event-envelopes.d.ts +5 -0
  441. package/dist/materialization/event-envelopes.d.ts.map +1 -1
  442. package/dist/materialization/index.d.ts +1 -1
  443. package/dist/materialization/index.d.ts.map +1 -1
  444. package/dist/materialization/index.js +14 -8
  445. package/dist/materialization/index.js.map +1 -1
  446. package/dist/materialization/model.d.ts +20 -2
  447. package/dist/materialization/model.d.ts.map +1 -1
  448. package/dist/materializer/edits/commit.d.ts.map +1 -1
  449. package/dist/materializer/edits/load-state.d.ts +5 -1
  450. package/dist/materializer/edits/load-state.d.ts.map +1 -1
  451. package/dist/materializer/edits/plan.d.ts.map +1 -1
  452. package/dist/materializer/edits/unique-values.d.ts +47 -0
  453. package/dist/materializer/edits/unique-values.d.ts.map +1 -0
  454. package/dist/materializer/edits/working-state.d.ts +6 -1
  455. package/dist/materializer/edits/working-state.d.ts.map +1 -1
  456. package/dist/materializer/execution/work-records.d.ts +7 -1
  457. package/dist/materializer/execution/work-records.d.ts.map +1 -1
  458. package/dist/materializer/index.js +45 -41
  459. package/dist/materializer/index.js.map +1 -1
  460. package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
  461. package/dist/materializer/projections/source-materialization.d.ts +1 -0
  462. package/dist/materializer/projections/source-materialization.d.ts.map +1 -1
  463. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  464. package/dist/materializer/shared/projection-run.d.ts +0 -1
  465. package/dist/materializer/shared/projection-run.d.ts.map +1 -1
  466. package/dist/materializer/telemetry/plan.d.ts.map +1 -1
  467. package/dist/models/audio/catalog.d.ts +13 -1
  468. package/dist/models/audio/catalog.d.ts.map +1 -1
  469. package/dist/models/audio/errors.d.ts +6 -1
  470. package/dist/models/audio/errors.d.ts.map +1 -1
  471. package/dist/models/audio/runtime.d.ts.map +1 -1
  472. package/dist/models/audio/speech.d.ts +8 -0
  473. package/dist/models/audio/speech.d.ts.map +1 -0
  474. package/dist/models/audio/types.d.ts +93 -0
  475. package/dist/models/audio/types.d.ts.map +1 -1
  476. package/dist/models/calls.d.ts +27 -0
  477. package/dist/models/calls.d.ts.map +1 -0
  478. package/dist/models/catalog-index.d.ts +7 -4
  479. package/dist/models/catalog-index.d.ts.map +1 -1
  480. package/dist/models/catalog.d.ts +55 -3
  481. package/dist/models/catalog.d.ts.map +1 -1
  482. package/dist/models/decision/runtime.d.ts +6 -1
  483. package/dist/models/decision/runtime.d.ts.map +1 -1
  484. package/dist/models/decision/validation.d.ts +4 -1
  485. package/dist/models/decision/validation.d.ts.map +1 -1
  486. package/dist/models/definitions.d.ts +23 -1
  487. package/dist/models/definitions.d.ts.map +1 -1
  488. package/dist/models/events.d.ts +12 -1
  489. package/dist/models/events.d.ts.map +1 -1
  490. package/dist/models/execution/binding.d.ts +3 -1
  491. package/dist/models/execution/binding.d.ts.map +1 -1
  492. package/dist/models/execution/index.d.ts +1 -0
  493. package/dist/models/execution/index.d.ts.map +1 -1
  494. package/dist/models/execution/index.js +44 -34
  495. package/dist/models/execution/index.js.map +1 -1
  496. package/dist/models/execution/model-call-accounting.d.ts.map +1 -1
  497. package/dist/models/execution/model-call-recorder.d.ts +3 -0
  498. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  499. package/dist/models/execution/usage.d.ts.map +1 -1
  500. package/dist/models/execution.d.ts +4 -2
  501. package/dist/models/execution.d.ts.map +1 -1
  502. package/dist/models/generation-types.d.ts +8 -1
  503. package/dist/models/generation-types.d.ts.map +1 -1
  504. package/dist/models/image/catalog.d.ts +13 -0
  505. package/dist/models/image/catalog.d.ts.map +1 -0
  506. package/dist/models/image/errors.d.ts +8 -0
  507. package/dist/models/image/errors.d.ts.map +1 -0
  508. package/dist/models/image/runtime.d.ts +8 -0
  509. package/dist/models/image/runtime.d.ts.map +1 -0
  510. package/dist/models/image/types.d.ts +103 -0
  511. package/dist/models/image/types.d.ts.map +1 -0
  512. package/dist/models/index.d.ts +12 -8
  513. package/dist/models/index.d.ts.map +1 -1
  514. package/dist/models/index.js +17 -7
  515. package/dist/models/index.js.map +1 -1
  516. package/dist/models/input-file.d.ts +9 -0
  517. package/dist/models/input-file.d.ts.map +1 -0
  518. package/dist/models/language-model.d.ts +13 -0
  519. package/dist/models/language-model.d.ts.map +1 -1
  520. package/dist/models/pricing.d.ts +25 -10
  521. package/dist/models/pricing.d.ts.map +1 -1
  522. package/dist/models/rate-card.d.ts +44 -6
  523. package/dist/models/rate-card.d.ts.map +1 -1
  524. package/dist/objects/conditional-writes.d.ts +37 -0
  525. package/dist/objects/conditional-writes.d.ts.map +1 -0
  526. package/dist/objects/execution.d.ts +2 -0
  527. package/dist/objects/execution.d.ts.map +1 -1
  528. package/dist/objects/index.d.ts +1 -0
  529. package/dist/objects/index.d.ts.map +1 -1
  530. package/dist/objects/index.js +68 -58
  531. package/dist/objects/index.js.map +1 -1
  532. package/dist/objects/link/authorization.d.ts +3 -0
  533. package/dist/objects/link/authorization.d.ts.map +1 -1
  534. package/dist/objects/link/endpoints.d.ts +21 -2
  535. package/dist/objects/link/endpoints.d.ts.map +1 -1
  536. package/dist/objects/link/remove.d.ts.map +1 -1
  537. package/dist/objects/link/upsert-batch.d.ts.map +1 -1
  538. package/dist/objects/link/upsert.d.ts.map +1 -1
  539. package/dist/objects/materializer-adapter.d.ts +13 -4
  540. package/dist/objects/materializer-adapter.d.ts.map +1 -1
  541. package/dist/objects/object/delete.d.ts +3 -0
  542. package/dist/objects/object/delete.d.ts.map +1 -1
  543. package/dist/objects/object/upsert-batch.d.ts.map +1 -1
  544. package/dist/objects/object/upsert.d.ts.map +1 -1
  545. package/dist/objects/query/current-user.d.ts +17 -0
  546. package/dist/objects/query/current-user.d.ts.map +1 -0
  547. package/dist/objects/query/executor.d.ts +14 -0
  548. package/dist/objects/query/executor.d.ts.map +1 -1
  549. package/dist/objects/query/index.d.ts +2 -2
  550. package/dist/objects/query/index.d.ts.map +1 -1
  551. package/dist/objects/query/index.js +49 -44
  552. package/dist/objects/query/index.js.map +1 -1
  553. package/dist/objects/query/ir.d.ts +19 -1
  554. package/dist/objects/query/ir.d.ts.map +1 -1
  555. package/dist/objects/query/matches-predicate.d.ts +9 -0
  556. package/dist/objects/query/matches-predicate.d.ts.map +1 -0
  557. package/dist/objects/query/normalize.d.ts.map +1 -1
  558. package/dist/objects/query/user-expansions.d.ts +27 -0
  559. package/dist/objects/query/user-expansions.d.ts.map +1 -0
  560. package/dist/objects/query/validate.d.ts.map +1 -1
  561. package/dist/objects/runtime-batch.d.ts +3 -1
  562. package/dist/objects/runtime-batch.d.ts.map +1 -1
  563. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  564. package/dist/objects/sdk/query-executor.d.ts +6 -0
  565. package/dist/objects/sdk/query-executor.d.ts.map +1 -1
  566. package/dist/objects/serialize.d.ts +39 -0
  567. package/dist/objects/serialize.d.ts.map +1 -0
  568. package/dist/objects/unique-violation.d.ts +22 -0
  569. package/dist/objects/unique-violation.d.ts.map +1 -0
  570. package/dist/ontology/builders.d.ts +3 -1
  571. package/dist/ontology/builders.d.ts.map +1 -1
  572. package/dist/ontology/index.d.ts +2 -2
  573. package/dist/ontology/index.d.ts.map +1 -1
  574. package/dist/ontology/index.js +11 -7
  575. package/dist/ontology/index.js.map +1 -1
  576. package/dist/ontology/internal.js +7 -5
  577. package/dist/ontology/internal.js.map +3 -3
  578. package/dist/ontology/json-schema.d.ts.map +1 -1
  579. package/dist/ontology/primitives.d.ts +3 -0
  580. package/dist/ontology/primitives.d.ts.map +1 -1
  581. package/dist/ontology/registry.d.ts +6 -0
  582. package/dist/ontology/registry.d.ts.map +1 -1
  583. package/dist/ontology/types.d.ts +9 -0
  584. package/dist/ontology/types.d.ts.map +1 -1
  585. package/dist/ontology/unique-values.d.ts +26 -0
  586. package/dist/ontology/unique-values.d.ts.map +1 -0
  587. package/dist/ontology/user-ref.d.ts +23 -0
  588. package/dist/ontology/user-ref.d.ts.map +1 -1
  589. package/dist/ontology/validation/properties.d.ts.map +1 -1
  590. package/dist/ontology/validation/schema.d.ts.map +1 -1
  591. package/dist/pipelines/index.js +43 -40
  592. package/dist/pipelines/index.js.map +1 -1
  593. package/dist/projections/internal.js +36 -33
  594. package/dist/projections/internal.js.map +1 -1
  595. package/dist/projections/registry.d.ts +4 -0
  596. package/dist/projections/registry.d.ts.map +1 -1
  597. package/dist/projections/revision.d.ts +15 -0
  598. package/dist/projections/revision.d.ts.map +1 -1
  599. package/dist/projections/run-dispatch.d.ts.map +1 -1
  600. package/dist/projections/types.d.ts +2 -0
  601. package/dist/projections/types.d.ts.map +1 -1
  602. package/dist/query.d.ts +4 -2
  603. package/dist/query.d.ts.map +1 -1
  604. package/dist/query.js +2 -2
  605. package/dist/rules/execution.d.ts.map +1 -1
  606. package/dist/runtime/ai-cost.d.ts +2 -0
  607. package/dist/runtime/ai-cost.d.ts.map +1 -1
  608. package/dist/runtime/ai-usage.d.ts +7 -0
  609. package/dist/runtime/ai-usage.d.ts.map +1 -1
  610. package/dist/runtime/host.d.ts.map +1 -1
  611. package/dist/runtime/index.d.ts +1 -1
  612. package/dist/runtime/index.d.ts.map +1 -1
  613. package/dist/runtime/internal.js +42 -38
  614. package/dist/runtime/internal.js.map +1 -1
  615. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  616. package/dist/runtime/sixb.d.ts +2 -0
  617. package/dist/runtime/sixb.d.ts.map +1 -1
  618. package/dist/runtime/types.d.ts +66 -8
  619. package/dist/runtime/types.d.ts.map +1 -1
  620. package/dist/sandboxes/index.js +7 -6
  621. package/dist/sandboxes/index.js.map +1 -1
  622. package/dist/schedules/builders.d.ts.map +1 -1
  623. package/dist/schedules/index.js +3 -3
  624. package/dist/schedules/runtime.d.ts.map +1 -1
  625. package/dist/schedules/validation.d.ts.map +1 -1
  626. package/dist/security/grants.d.ts +12 -4
  627. package/dist/security/grants.d.ts.map +1 -1
  628. package/dist/security/index.d.ts +1 -1
  629. package/dist/security/index.d.ts.map +1 -1
  630. package/dist/security/internal.js +1 -1
  631. package/dist/security/project.d.ts +4 -1
  632. package/dist/security/project.d.ts.map +1 -1
  633. package/dist/security/public.js +2 -2
  634. package/dist/security/registry.d.ts +6 -0
  635. package/dist/security/registry.d.ts.map +1 -1
  636. package/dist/security/types.d.ts +47 -9
  637. package/dist/security/types.d.ts.map +1 -1
  638. package/dist/security/validation.d.ts.map +1 -1
  639. package/dist/security/view-conditions.d.ts +37 -0
  640. package/dist/security/view-conditions.d.ts.map +1 -0
  641. package/dist/shares/execution.d.ts.map +1 -1
  642. package/dist/shares/internal.js +34 -31
  643. package/dist/shares/internal.js.map +2 -2
  644. package/dist/storage/action-runs/failure.js +2 -2
  645. package/dist/storage/action-runs/provider.js +1 -1
  646. package/dist/storage/action-runs/types.d.ts +1 -1
  647. package/dist/storage/action-runs/types.d.ts.map +1 -1
  648. package/dist/storage/agents/errors.d.ts +3 -1
  649. package/dist/storage/agents/errors.d.ts.map +1 -1
  650. package/dist/storage/agents/in-memory.d.ts +120 -3
  651. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  652. package/dist/storage/agents/index.d.ts +2 -2
  653. package/dist/storage/agents/index.d.ts.map +1 -1
  654. package/dist/storage/agents/provider.d.ts +154 -4
  655. package/dist/storage/agents/provider.d.ts.map +1 -1
  656. package/dist/storage/agents/provider.js +60 -5
  657. package/dist/storage/agents/provider.js.map +1 -1
  658. package/dist/storage/agents/types.d.ts +565 -13
  659. package/dist/storage/agents/types.d.ts.map +1 -1
  660. package/dist/storage/ai-cost/analytics.d.ts +10 -1
  661. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  662. package/dist/storage/ai-cost/groups.d.ts +9 -0
  663. package/dist/storage/ai-cost/groups.d.ts.map +1 -1
  664. package/dist/storage/ai-cost/index.d.ts +1 -1
  665. package/dist/storage/ai-cost/index.d.ts.map +1 -1
  666. package/dist/storage/ai-cost/provider.d.ts +2 -1
  667. package/dist/storage/ai-cost/provider.d.ts.map +1 -1
  668. package/dist/storage/ai-cost/provider.js +11 -5
  669. package/dist/storage/ai-cost/provider.js.map +1 -1
  670. package/dist/storage/ai-cost/types.d.ts +14 -2
  671. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  672. package/dist/storage/ai-cost/validation.d.ts.map +1 -1
  673. package/dist/storage/ai-limits/enforcement.js +5 -4
  674. package/dist/storage/ai-limits/enforcement.js.map +1 -1
  675. package/dist/storage/ai-limits/provider.d.ts +1 -1
  676. package/dist/storage/ai-limits/provider.d.ts.map +1 -1
  677. package/dist/storage/ai-limits/provider.js +3 -2
  678. package/dist/storage/ai-limits/provider.js.map +1 -1
  679. package/dist/storage/ai-usage/in-memory.d.ts +5 -1
  680. package/dist/storage/ai-usage/in-memory.d.ts.map +1 -1
  681. package/dist/storage/ai-usage/index.d.ts +2 -2
  682. package/dist/storage/ai-usage/index.d.ts.map +1 -1
  683. package/dist/storage/ai-usage/record.d.ts +5 -1
  684. package/dist/storage/ai-usage/record.d.ts.map +1 -1
  685. package/dist/storage/ai-usage/types.d.ts +33 -0
  686. package/dist/storage/ai-usage/types.d.ts.map +1 -1
  687. package/dist/storage/ai-usage/usage.d.ts +2 -0
  688. package/dist/storage/ai-usage/usage.d.ts.map +1 -1
  689. package/dist/storage/artifacts/errors.d.ts +12 -2
  690. package/dist/storage/artifacts/errors.d.ts.map +1 -1
  691. package/dist/storage/artifacts/in-memory.d.ts +23 -2
  692. package/dist/storage/artifacts/in-memory.d.ts.map +1 -1
  693. package/dist/storage/artifacts/index.d.ts +2 -2
  694. package/dist/storage/artifacts/index.d.ts.map +1 -1
  695. package/dist/storage/artifacts/record.d.ts +19 -2
  696. package/dist/storage/artifacts/record.d.ts.map +1 -1
  697. package/dist/storage/artifacts/types.d.ts +87 -8
  698. package/dist/storage/artifacts/types.d.ts.map +1 -1
  699. package/dist/storage/auth/in-memory/auth-storage.d.ts +3 -2
  700. package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
  701. package/dist/storage/auth/in-memory/users.d.ts +7 -3
  702. package/dist/storage/auth/in-memory/users.d.ts.map +1 -1
  703. package/dist/storage/auth/index.d.ts +1 -1
  704. package/dist/storage/auth/index.d.ts.map +1 -1
  705. package/dist/storage/auth/types.d.ts +40 -9
  706. package/dist/storage/auth/types.d.ts.map +1 -1
  707. package/dist/storage/connector-connections/provider.js +1 -1
  708. package/dist/storage/executions/in-memory.d.ts +2 -1
  709. package/dist/storage/executions/in-memory.d.ts.map +1 -1
  710. package/dist/storage/executions/index.d.ts +1 -1
  711. package/dist/storage/executions/index.d.ts.map +1 -1
  712. package/dist/storage/executions/types.d.ts +15 -0
  713. package/dist/storage/executions/types.d.ts.map +1 -1
  714. package/dist/storage/file-upload-sessions/provider.js +15 -12
  715. package/dist/storage/file-upload-sessions/provider.js.map +1 -1
  716. package/dist/storage/index.d.ts +13 -11
  717. package/dist/storage/index.d.ts.map +1 -1
  718. package/dist/storage/index.js +50 -39
  719. package/dist/storage/index.js.map +1 -1
  720. package/dist/storage/internal.d.ts +2 -2
  721. package/dist/storage/internal.d.ts.map +1 -1
  722. package/dist/storage/internal.js +19 -8
  723. package/dist/storage/internal.js.map +1 -1
  724. package/dist/storage/migrations/migrate-storage.d.ts +4 -1
  725. package/dist/storage/migrations/migrate-storage.d.ts.map +1 -1
  726. package/dist/storage/migrations/prepare-unique-properties.d.ts +18 -0
  727. package/dist/storage/migrations/prepare-unique-properties.d.ts.map +1 -0
  728. package/dist/storage/objects/guard.d.ts +1 -1
  729. package/dist/storage/objects/guard.d.ts.map +1 -1
  730. package/dist/storage/objects/in-memory/conditional-reader.d.ts +5 -0
  731. package/dist/storage/objects/in-memory/conditional-reader.d.ts.map +1 -0
  732. package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
  733. package/dist/storage/objects/in-memory/read-scope.d.ts +3 -9
  734. package/dist/storage/objects/in-memory/read-scope.d.ts.map +1 -1
  735. package/dist/storage/objects/in-memory/read-source.d.ts +10 -1
  736. package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -1
  737. package/dist/storage/objects/in-memory/scoped-reader.d.ts +14 -0
  738. package/dist/storage/objects/in-memory/scoped-reader.d.ts.map +1 -0
  739. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
  740. package/dist/storage/objects/in-memory/storage.d.ts +36 -1
  741. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
  742. package/dist/storage/objects/index.d.ts +2 -2
  743. package/dist/storage/objects/index.d.ts.map +1 -1
  744. package/dist/storage/objects/read-scope.d.ts +9 -1
  745. package/dist/storage/objects/read-scope.d.ts.map +1 -1
  746. package/dist/storage/objects/types.d.ts +64 -1
  747. package/dist/storage/objects/types.d.ts.map +1 -1
  748. package/dist/storage/ontology/in-memory/index.d.ts +2 -0
  749. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  750. package/dist/storage/ontology/in-memory/materializations.d.ts +1 -0
  751. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  752. package/dist/storage/ontology/in-memory/replacement-plans.d.ts.map +1 -1
  753. package/dist/storage/ontology/in-memory/unique-values.d.ts +32 -0
  754. package/dist/storage/ontology/in-memory/unique-values.d.ts.map +1 -0
  755. package/dist/storage/ontology/index.d.ts +4 -1
  756. package/dist/storage/ontology/index.d.ts.map +1 -1
  757. package/dist/storage/ontology/materializations.d.ts +34 -1
  758. package/dist/storage/ontology/materializations.d.ts.map +1 -1
  759. package/dist/storage/ontology/provider-work.d.ts +15 -2
  760. package/dist/storage/ontology/provider-work.d.ts.map +1 -1
  761. package/dist/storage/ontology/provider.d.ts +1 -1
  762. package/dist/storage/ontology/provider.d.ts.map +1 -1
  763. package/dist/storage/ontology/provider.js +9 -4
  764. package/dist/storage/ontology/provider.js.map +1 -1
  765. package/dist/storage/ontology/unique-values.d.ts +54 -0
  766. package/dist/storage/ontology/unique-values.d.ts.map +1 -0
  767. package/dist/storage/operation-scope.d.ts +1 -1
  768. package/dist/storage/operation-scope.d.ts.map +1 -1
  769. package/dist/storage/operation-scope.js +1 -1
  770. package/dist/storage/projection-runs/in-memory.d.ts +0 -6
  771. package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
  772. package/dist/storage/projection-runs/provider.js +2 -2
  773. package/dist/storage/share-grants/provider.js +4 -3
  774. package/dist/storage/share-grants/provider.js.map +1 -1
  775. package/dist/storage/types.d.ts +2 -2
  776. package/dist/storage/types.d.ts.map +1 -1
  777. package/dist/storage/workflow-runs/provider.js +15 -12
  778. package/dist/storage/workflow-runs/provider.js.map +1 -1
  779. package/dist/syncs/index.js +42 -39
  780. package/dist/syncs/index.js.map +1 -1
  781. package/dist/testing/agent-approval-storage-contract.d.ts +17 -0
  782. package/dist/testing/agent-approval-storage-contract.d.ts.map +1 -0
  783. package/dist/testing/agent-memory-storage-contract.d.ts +12 -0
  784. package/dist/testing/agent-memory-storage-contract.d.ts.map +1 -0
  785. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  786. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  787. package/dist/testing/ai-limit-storage-contract.d.ts +0 -1
  788. package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -1
  789. package/dist/testing/ai-model-call-groups-contract.d.ts.map +1 -1
  790. package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
  791. package/dist/testing/artifact-storage-contract.d.ts.map +1 -1
  792. package/dist/testing/auth-storage-contract.d.ts +13 -0
  793. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  794. package/dist/testing/broker-contract.d.ts +5 -0
  795. package/dist/testing/broker-contract.d.ts.map +1 -1
  796. package/dist/testing/effective-storage-contract.d.ts.map +1 -1
  797. package/dist/testing/execution-storage-contract.d.ts.map +1 -1
  798. package/dist/testing/file-upload-session-storage-contract.d.ts.map +1 -1
  799. package/dist/testing/index.d.ts +9 -5
  800. package/dist/testing/index.d.ts.map +1 -1
  801. package/dist/testing/index.js +7938 -3743
  802. package/dist/testing/index.js.map +29 -25
  803. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  804. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  805. package/dist/testing/object-conditional-read-scope-contract.d.ts +11 -0
  806. package/dist/testing/object-conditional-read-scope-contract.d.ts.map +1 -0
  807. package/dist/testing/object-query-contract.d.ts +0 -2
  808. package/dist/testing/object-query-contract.d.ts.map +1 -1
  809. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  810. package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
  811. package/dist/testing/queues-contract.d.ts +5 -0
  812. package/dist/testing/queues-contract.d.ts.map +1 -1
  813. package/dist/testing/sandboxes-contract.d.ts.map +1 -1
  814. package/dist/testing/share-grant-storage-contract.d.ts.map +1 -1
  815. package/dist/testing/share-session-storage-contract.d.ts.map +1 -1
  816. package/dist/testing/unique-values-contract.d.ts +21 -0
  817. package/dist/testing/unique-values-contract.d.ts.map +1 -0
  818. package/dist/testing/webhook-execution.d.ts +0 -8
  819. package/dist/testing/webhook-execution.d.ts.map +1 -1
  820. package/dist/testing/webhook-run-storage-contract.d.ts.map +1 -1
  821. package/dist/users/execution.d.ts +40 -0
  822. package/dist/users/execution.d.ts.map +1 -0
  823. package/dist/users/index.d.ts +3 -0
  824. package/dist/users/index.d.ts.map +1 -0
  825. package/dist/webhooks/internal.js +34 -31
  826. package/dist/webhooks/internal.js.map +2 -2
  827. package/dist/workers/index.js +4 -6
  828. package/dist/workers/index.js.map +4 -4
  829. package/dist/workers/queue-worker.d.ts +0 -2
  830. package/dist/workers/queue-worker.d.ts.map +1 -1
  831. package/dist/workers/worker.d.ts +0 -2
  832. package/dist/workers/worker.d.ts.map +1 -1
  833. package/dist/workflows/builders.d.ts.map +1 -1
  834. package/dist/workflows/index.js +67 -63
  835. package/dist/workflows/index.js.map +1 -1
  836. package/dist/workflows/request.d.ts +12 -1
  837. package/dist/workflows/request.d.ts.map +1 -1
  838. package/dist/workflows/types.d.ts +6 -2
  839. package/dist/workflows/types.d.ts.map +1 -1
  840. package/dist/workflows/validation.d.ts.map +1 -1
  841. package/package.json +1 -1
  842. package/src/actions/commit-edits.ts +6 -1
  843. package/src/actions/execution.ts +42 -15
  844. package/src/actions/read-facade.ts +33 -0
  845. package/src/actions/request.ts +224 -71
  846. package/src/actions/run/context.ts +47 -1
  847. package/src/actions/run/execute.ts +13 -6
  848. package/src/actions/run/executor.ts +11 -2
  849. package/src/actions/run/normalize.ts +12 -2
  850. package/src/actions/run/phases.ts +2 -0
  851. package/src/actions/run/run-action.ts +12 -3
  852. package/src/actions/run/signals.ts +3 -9
  853. package/src/actions/run/types.ts +17 -1
  854. package/src/actions/run-authorization.ts +72 -0
  855. package/src/actions/types/context.ts +20 -3
  856. package/src/actions/validators.ts +19 -8
  857. package/src/activity/README.md +5 -2
  858. package/src/activity/timeline.ts +39 -78
  859. package/src/agents/accounting.ts +59 -0
  860. package/src/agents/adapters.ts +10 -0
  861. package/src/agents/agent-mail.ts +29 -0
  862. package/src/agents/api-gateway.ts +14 -3
  863. package/src/agents/approval-continuation.ts +48 -0
  864. package/src/agents/approval-executor.ts +318 -0
  865. package/src/agents/approval-outcome.ts +59 -0
  866. package/src/agents/approvals.ts +566 -0
  867. package/src/agents/authority.ts +24 -1
  868. package/src/agents/builders.ts +5 -3
  869. package/src/agents/cancel.ts +103 -0
  870. package/src/agents/child-question.ts +46 -0
  871. package/src/agents/children.ts +404 -0
  872. package/src/agents/context-compaction.ts +12 -0
  873. package/src/agents/errors.ts +31 -0
  874. package/src/agents/execution.ts +788 -90
  875. package/src/agents/fork.ts +158 -0
  876. package/src/agents/ids.ts +18 -6
  877. package/src/agents/index.ts +55 -0
  878. package/src/agents/memory-execution.ts +186 -0
  879. package/src/agents/memory.ts +178 -0
  880. package/src/agents/message.ts +57 -0
  881. package/src/agents/model-loop.ts +93 -6
  882. package/src/agents/model-routing.ts +193 -0
  883. package/src/agents/participants.ts +213 -0
  884. package/src/agents/reference.ts +2 -0
  885. package/src/agents/request.ts +398 -69
  886. package/src/agents/run-scope.ts +134 -0
  887. package/src/agents/streams/index.ts +5 -0
  888. package/src/agents/streams/internal.ts +1 -0
  889. package/src/agents/streams/protocol.ts +385 -7
  890. package/src/agents/subagent-runs.ts +41 -0
  891. package/src/agents/thread-access.ts +137 -0
  892. package/src/agents/tool-definition.ts +5 -3
  893. package/src/agents/types.ts +35 -10
  894. package/src/agents/validation.ts +2 -0
  895. package/src/artifacts/access.ts +125 -0
  896. package/src/artifacts/canvas.ts +369 -0
  897. package/src/artifacts/csv.ts +10 -0
  898. package/src/artifacts/errors.ts +12 -1
  899. package/src/artifacts/execution.ts +436 -36
  900. package/src/artifacts/formula/check.ts +171 -0
  901. package/src/artifacts/formula/evaluate.ts +288 -0
  902. package/src/artifacts/formula/index.ts +199 -0
  903. package/src/artifacts/formula/parser.ts +357 -0
  904. package/src/artifacts/frames/assets.ts +35 -19
  905. package/src/artifacts/frames/entries.ts +35 -0
  906. package/src/artifacts/frames/grants.ts +10 -9
  907. package/src/artifacts/frames/index.ts +8 -2
  908. package/src/artifacts/frames/kit.ts +191 -14
  909. package/src/artifacts/frames/probe.ts +66 -18
  910. package/src/artifacts/frames/protocol.ts +164 -10
  911. package/src/artifacts/frames/runtime.ts +273 -28
  912. package/src/artifacts/index.ts +66 -2
  913. package/src/artifacts/kinds.ts +1 -1
  914. package/src/artifacts/limits.ts +31 -0
  915. package/src/artifacts/live-sheet.ts +345 -0
  916. package/src/artifacts/outline.ts +34 -1
  917. package/src/artifacts/publish/index.ts +2 -0
  918. package/src/artifacts/publish/publish.ts +120 -34
  919. package/src/artifacts/publish/queries.ts +336 -0
  920. package/src/artifacts/publish/references.ts +18 -13
  921. package/src/artifacts/publish/validate/canvas.ts +118 -0
  922. package/src/artifacts/publish/validate/html.ts +78 -0
  923. package/src/artifacts/publish/validate/page.ts +65 -0
  924. package/src/artifacts/publish/validate/sheet.ts +115 -69
  925. package/src/artifacts/publish/validate/slides.ts +11 -63
  926. package/src/artifacts/queries.ts +512 -0
  927. package/src/artifacts/resolve.ts +20 -5
  928. package/src/artifacts/run-query.ts +212 -0
  929. package/src/artifacts/serialize-query.ts +25 -0
  930. package/src/artifacts/sheet-rules.ts +180 -0
  931. package/src/artifacts/tones.ts +20 -0
  932. package/src/artifacts/workbook.ts +374 -15
  933. package/src/auth/index.ts +4 -0
  934. package/src/auth/member-events.ts +114 -0
  935. package/src/auth/profile.ts +118 -0
  936. package/src/auth/runtime.ts +190 -9
  937. package/src/auth/strategy.ts +3 -0
  938. package/src/auth/types.ts +32 -0
  939. package/src/authorization/decision.ts +47 -0
  940. package/src/authorization/event-visibility.ts +17 -16
  941. package/src/authorization/grant-kinds.ts +32 -0
  942. package/src/authorization/index.ts +6 -1
  943. package/src/authorization/resolve.ts +58 -1
  944. package/src/authorization/run-visibility.ts +8 -1
  945. package/src/authorization/types.ts +14 -0
  946. package/src/errors/catalog.ts +26 -1
  947. package/src/errors/internal.ts +17 -8
  948. package/src/events/definitions.ts +26 -0
  949. package/src/events/execution.ts +43 -6
  950. package/src/events/index.ts +10 -1
  951. package/src/events/scope.ts +2 -0
  952. package/src/events/selectors/builder.ts +50 -0
  953. package/src/events/selectors/index.ts +4 -0
  954. package/src/events/selectors/types.ts +32 -1
  955. package/src/events/service.ts +55 -2
  956. package/src/events/types/index.ts +10 -0
  957. package/src/events/types/users.ts +73 -0
  958. package/src/events/view-conditions.ts +241 -0
  959. package/src/execution/agent.ts +25 -0
  960. package/src/execution/authorization.ts +70 -0
  961. package/src/execution/authorized-object-reader.ts +238 -32
  962. package/src/execution/lineage.ts +14 -0
  963. package/src/execution/object-reader-ontology.ts +11 -14
  964. package/src/execution/object-reader-security.ts +134 -10
  965. package/src/execution/object-reader-users.ts +122 -0
  966. package/src/execution/preparation.ts +78 -0
  967. package/src/execution/request.ts +2 -0
  968. package/src/execution/unique-lookup.ts +55 -0
  969. package/src/execution/visible-objects.ts +26 -0
  970. package/src/http/api-routes.ts +206 -7
  971. package/src/index.ts +99 -2
  972. package/src/materialization/errors.ts +37 -0
  973. package/src/materialization/event-envelopes.ts +11 -3
  974. package/src/materialization/index.ts +1 -0
  975. package/src/materialization/model.ts +24 -4
  976. package/src/materializer/README.md +7 -1
  977. package/src/materializer/edits/commit.ts +56 -12
  978. package/src/materializer/edits/load-state.ts +15 -7
  979. package/src/materializer/edits/operations.ts +12 -0
  980. package/src/materializer/edits/plan.ts +2 -0
  981. package/src/materializer/edits/unique-values.ts +255 -0
  982. package/src/materializer/edits/working-state.ts +8 -1
  983. package/src/materializer/execution/work-records.ts +47 -0
  984. package/src/materializer/projections/finish-run.ts +0 -1
  985. package/src/materializer/projections/replace.ts +1 -1
  986. package/src/materializer/projections/replacement-plan.ts +4 -1
  987. package/src/materializer/projections/source-materialization.ts +2 -1
  988. package/src/materializer/shared/normalize.ts +37 -6
  989. package/src/materializer/shared/projection-run.ts +1 -2
  990. package/src/materializer/telemetry/append.ts +14 -17
  991. package/src/materializer/telemetry/plan.ts +2 -0
  992. package/src/models/audio/catalog.ts +89 -10
  993. package/src/models/audio/errors.ts +18 -1
  994. package/src/models/audio/runtime.ts +10 -13
  995. package/src/models/audio/speech.ts +261 -0
  996. package/src/models/audio/types.ts +97 -0
  997. package/src/models/calls.ts +100 -0
  998. package/src/models/catalog-index.ts +21 -2
  999. package/src/models/catalog.ts +211 -35
  1000. package/src/models/decision/runtime.ts +21 -22
  1001. package/src/models/decision/validation.ts +4 -1
  1002. package/src/models/definitions.ts +57 -8
  1003. package/src/models/events.ts +72 -1
  1004. package/src/models/execution/README.md +34 -5
  1005. package/src/models/execution/binding.ts +3 -1
  1006. package/src/models/execution/embedding.ts +1 -0
  1007. package/src/models/execution/index.ts +5 -0
  1008. package/src/models/execution/model-call-accounting.ts +3 -1
  1009. package/src/models/execution/model-call-recorder.ts +29 -1
  1010. package/src/models/execution/usage.ts +8 -0
  1011. package/src/models/execution.ts +20 -22
  1012. package/src/models/generation-types.ts +8 -1
  1013. package/src/models/image/catalog.ts +89 -0
  1014. package/src/models/image/errors.ts +19 -0
  1015. package/src/models/image/runtime.ts +335 -0
  1016. package/src/models/image/types.ts +111 -0
  1017. package/src/models/index.ts +38 -4
  1018. package/src/models/{audio/file.ts → input-file.ts} +22 -13
  1019. package/src/models/language-model.ts +13 -0
  1020. package/src/models/pricing.ts +263 -42
  1021. package/src/models/rate-card.ts +161 -12
  1022. package/src/objects/authorized-ontology-view.ts +1 -0
  1023. package/src/objects/conditional-writes.ts +109 -0
  1024. package/src/objects/execution.ts +4 -0
  1025. package/src/objects/index.ts +8 -0
  1026. package/src/objects/link/authorization.ts +12 -3
  1027. package/src/objects/link/endpoints.ts +42 -11
  1028. package/src/objects/link/remove.ts +25 -10
  1029. package/src/objects/link/upsert-batch.ts +2 -0
  1030. package/src/objects/link/upsert.ts +18 -12
  1031. package/src/objects/materializer-adapter.ts +55 -18
  1032. package/src/objects/object/delete.ts +24 -7
  1033. package/src/objects/object/upsert-batch.ts +44 -14
  1034. package/src/objects/object/upsert.ts +23 -5
  1035. package/src/objects/query/current-user.ts +76 -0
  1036. package/src/objects/query/executor.ts +39 -103
  1037. package/src/objects/query/explain.ts +20 -7
  1038. package/src/objects/query/index.ts +2 -0
  1039. package/src/objects/query/ir.ts +20 -0
  1040. package/src/objects/query/links.ts +8 -0
  1041. package/src/objects/query/matches-predicate.ts +108 -0
  1042. package/src/objects/query/normalize.ts +50 -19
  1043. package/src/objects/query/scalar-values.ts +19 -3
  1044. package/src/objects/query/user-expansions.ts +65 -0
  1045. package/src/objects/query/validate.ts +248 -10
  1046. package/src/objects/runtime-batch.ts +8 -2
  1047. package/src/objects/sdk/object-set.ts +12 -1
  1048. package/src/objects/sdk/query-builder.ts +39 -8
  1049. package/src/objects/sdk/query-executor.ts +6 -0
  1050. package/src/objects/serialize.ts +79 -0
  1051. package/src/objects/unique-violation.ts +59 -0
  1052. package/src/objects/vectors/handle.ts +3 -3
  1053. package/src/ontology/builders.ts +3 -0
  1054. package/src/ontology/docs-markdown.ts +1 -0
  1055. package/src/ontology/index.ts +2 -2
  1056. package/src/ontology/json-schema.ts +4 -0
  1057. package/src/ontology/primitives.ts +21 -8
  1058. package/src/ontology/registry.ts +16 -0
  1059. package/src/ontology/types.ts +9 -0
  1060. package/src/ontology/unique-values.ts +84 -0
  1061. package/src/ontology/user-ref.ts +39 -0
  1062. package/src/ontology/validation/properties.ts +43 -0
  1063. package/src/ontology/validation/schema.ts +9 -1
  1064. package/src/projections/registry.ts +16 -10
  1065. package/src/projections/revision.ts +112 -45
  1066. package/src/projections/run-dispatch.ts +38 -25
  1067. package/src/projections/types.ts +2 -0
  1068. package/src/query.ts +5 -0
  1069. package/src/rules/execution.ts +43 -11
  1070. package/src/runtime/ai-cost.ts +30 -0
  1071. package/src/runtime/ai-usage.ts +32 -1
  1072. package/src/runtime/host.ts +18 -1
  1073. package/src/runtime/index.ts +2 -0
  1074. package/src/runtime/resolve-definitions.ts +3 -0
  1075. package/src/runtime/sixb.ts +35 -8
  1076. package/src/runtime/types.ts +99 -9
  1077. package/src/schedules/builders.ts +3 -1
  1078. package/src/schedules/runtime.ts +6 -0
  1079. package/src/schedules/validation.ts +23 -1
  1080. package/src/security/README.md +62 -0
  1081. package/src/security/grants.ts +155 -10
  1082. package/src/security/index.ts +3 -1
  1083. package/src/security/project.ts +6 -1
  1084. package/src/security/registry.ts +32 -7
  1085. package/src/security/types.ts +54 -9
  1086. package/src/security/validation.ts +27 -11
  1087. package/src/security/view-conditions.ts +215 -0
  1088. package/src/shares/execution.ts +43 -10
  1089. package/src/storage/action-runs/types.ts +2 -0
  1090. package/src/storage/agents/errors.ts +3 -0
  1091. package/src/storage/agents/in-memory.ts +779 -32
  1092. package/src/storage/agents/index.ts +42 -0
  1093. package/src/storage/agents/provider.ts +733 -8
  1094. package/src/storage/agents/types.ts +620 -12
  1095. package/src/storage/ai-cost/analytics.ts +60 -7
  1096. package/src/storage/ai-cost/codec.ts +6 -1
  1097. package/src/storage/ai-cost/groups.ts +44 -1
  1098. package/src/storage/ai-cost/index.ts +1 -0
  1099. package/src/storage/ai-cost/provider.ts +2 -0
  1100. package/src/storage/ai-cost/types.ts +18 -1
  1101. package/src/storage/ai-cost/validation.ts +39 -12
  1102. package/src/storage/ai-limits/provider.ts +4 -7
  1103. package/src/storage/ai-usage/in-memory.ts +28 -1
  1104. package/src/storage/ai-usage/index.ts +9 -1
  1105. package/src/storage/ai-usage/record.ts +44 -7
  1106. package/src/storage/ai-usage/types.ts +38 -0
  1107. package/src/storage/ai-usage/usage.ts +15 -1
  1108. package/src/storage/artifacts/errors.ts +13 -1
  1109. package/src/storage/artifacts/in-memory.ts +156 -8
  1110. package/src/storage/artifacts/index.ts +6 -1
  1111. package/src/storage/artifacts/record.ts +61 -1
  1112. package/src/storage/artifacts/types.ts +92 -8
  1113. package/src/storage/auth/in-memory/auth-storage.ts +27 -2
  1114. package/src/storage/auth/in-memory/users.ts +40 -6
  1115. package/src/storage/auth/index.ts +1 -0
  1116. package/src/storage/auth/types.ts +43 -7
  1117. package/src/storage/executions/in-memory.ts +32 -0
  1118. package/src/storage/executions/index.ts +2 -0
  1119. package/src/storage/executions/types.ts +17 -0
  1120. package/src/storage/index.ts +69 -1
  1121. package/src/storage/internal.ts +9 -1
  1122. package/src/storage/migrations/migrate-storage.ts +8 -1
  1123. package/src/storage/migrations/prepare-unique-properties.ts +161 -0
  1124. package/src/storage/objects/guard.ts +7 -3
  1125. package/src/storage/objects/in-memory/conditional-reader.ts +72 -0
  1126. package/src/storage/objects/in-memory/query.ts +4 -105
  1127. package/src/storage/objects/in-memory/read-scope.ts +15 -14
  1128. package/src/storage/objects/in-memory/read-source.ts +11 -1
  1129. package/src/storage/objects/in-memory/scoped-reader.ts +243 -0
  1130. package/src/storage/objects/in-memory/selected-reader.ts +6 -231
  1131. package/src/storage/objects/in-memory/storage.ts +183 -1
  1132. package/src/storage/objects/index.ts +9 -1
  1133. package/src/storage/objects/read-scope.ts +191 -0
  1134. package/src/storage/objects/types.ts +68 -1
  1135. package/src/storage/ontology/in-memory/index.ts +3 -0
  1136. package/src/storage/ontology/in-memory/materializations.ts +35 -0
  1137. package/src/storage/ontology/in-memory/replacement-plans.ts +4 -0
  1138. package/src/storage/ontology/in-memory/unique-values.ts +62 -0
  1139. package/src/storage/ontology/index.ts +10 -0
  1140. package/src/storage/ontology/materializations.ts +35 -1
  1141. package/src/storage/ontology/provider-work.ts +76 -0
  1142. package/src/storage/ontology/provider.ts +3 -0
  1143. package/src/storage/ontology/unique-values.ts +56 -0
  1144. package/src/storage/operation-scope.ts +9 -1
  1145. package/src/storage/projection-runs/in-memory.ts +3 -35
  1146. package/src/storage/types.ts +2 -0
  1147. package/src/testing/agent-approval-storage-contract.ts +1117 -0
  1148. package/src/testing/agent-memory-storage-contract.ts +400 -0
  1149. package/src/testing/agent-storage-contract.ts +1188 -33
  1150. package/src/testing/ai-cost-storage-contract.ts +31 -1
  1151. package/src/testing/ai-limit-storage-contract.ts +9 -7
  1152. package/src/testing/ai-model-call-groups-contract.ts +76 -0
  1153. package/src/testing/ai-usage-storage-contract.ts +120 -13
  1154. package/src/testing/artifact-storage-contract.ts +338 -4
  1155. package/src/testing/auth-storage-contract.ts +550 -73
  1156. package/src/testing/broker-contract.ts +28 -23
  1157. package/src/testing/effective-storage-contract.ts +3 -8
  1158. package/src/testing/execution-storage-contract.ts +53 -0
  1159. package/src/testing/file-upload-session-storage-contract.ts +12 -24
  1160. package/src/testing/index.ts +17 -4
  1161. package/src/testing/lake-storage-contract.ts +22 -28
  1162. package/src/testing/materializer-storage-contract.ts +36 -9
  1163. package/src/testing/object-conditional-read-scope-contract.ts +634 -0
  1164. package/src/testing/object-query-contract.ts +386 -186
  1165. package/src/testing/ontology-storage-contract.ts +230 -21
  1166. package/src/testing/projection-run-storage-contract.ts +8 -18
  1167. package/src/testing/queues-contract.ts +39 -70
  1168. package/src/testing/sandboxes-contract.ts +3 -14
  1169. package/src/testing/share-grant-storage-contract.ts +13 -16
  1170. package/src/testing/share-session-storage-contract.ts +4 -14
  1171. package/src/testing/unique-values-contract.ts +907 -0
  1172. package/src/testing/webhook-execution.ts +1 -1
  1173. package/src/testing/webhook-run-storage-contract.ts +6 -9
  1174. package/src/users/execution.ts +131 -0
  1175. package/src/users/index.ts +2 -0
  1176. package/src/workers/queue-worker.ts +1 -3
  1177. package/src/workers/worker.ts +1 -3
  1178. package/src/workflows/builders.ts +6 -0
  1179. package/src/workflows/request.ts +46 -8
  1180. package/src/workflows/types.ts +6 -2
  1181. package/src/workflows/validation.ts +23 -9
  1182. package/dist/chunk-29yx306f.js.map +0 -22
  1183. package/dist/chunk-3jms7je7.js +0 -14
  1184. package/dist/chunk-3jms7je7.js.map +0 -10
  1185. package/dist/chunk-3qct2mdc.js +0 -297
  1186. package/dist/chunk-3qct2mdc.js.map +0 -12
  1187. package/dist/chunk-48qjhh6v.js.map +0 -13
  1188. package/dist/chunk-4as3wt1c.js.map +0 -12
  1189. package/dist/chunk-5948n82c.js.map +0 -10
  1190. package/dist/chunk-5hx48dnn.js.map +0 -14
  1191. package/dist/chunk-6rqgmkde.js.map +0 -29
  1192. package/dist/chunk-6x0pqh32.js.map +0 -10
  1193. package/dist/chunk-7n30ybym.js +0 -3
  1194. package/dist/chunk-7n440zgt.js +0 -261
  1195. package/dist/chunk-7n440zgt.js.map +0 -12
  1196. package/dist/chunk-7q8t23v4.js +0 -467
  1197. package/dist/chunk-7q8t23v4.js.map +0 -14
  1198. package/dist/chunk-8frc8a4j.js.map +0 -20
  1199. package/dist/chunk-918wwnaa.js.map +0 -68
  1200. package/dist/chunk-91mg3nj9.js.map +0 -12
  1201. package/dist/chunk-96yw3pwd.js.map +0 -10
  1202. package/dist/chunk-9j4jw7as.js.map +0 -14
  1203. package/dist/chunk-9k93ah50.js.map +0 -11
  1204. package/dist/chunk-9kgkfg6v.js +0 -502
  1205. package/dist/chunk-9kgkfg6v.js.map +0 -14
  1206. package/dist/chunk-akzryx9h.js.map +0 -100
  1207. package/dist/chunk-arns890k.js.map +0 -10
  1208. package/dist/chunk-bk9svbcq.js.map +0 -49
  1209. package/dist/chunk-c06hmxyy.js +0 -31
  1210. package/dist/chunk-c06hmxyy.js.map +0 -10
  1211. package/dist/chunk-c1rxbz5y.js.map +0 -12
  1212. package/dist/chunk-cn0fwwhy.js.map +0 -19
  1213. package/dist/chunk-dhcv7yxc.js.map +0 -11
  1214. package/dist/chunk-dhdha526.js.map +0 -10
  1215. package/dist/chunk-dvd2fp9q.js.map +0 -13
  1216. package/dist/chunk-e6k4thh5.js.map +0 -19
  1217. package/dist/chunk-ere85b8y.js.map +0 -15
  1218. package/dist/chunk-g257jwnc.js.map +0 -12
  1219. package/dist/chunk-hwksyjks.js.map +0 -11
  1220. package/dist/chunk-k43ct2ke.js.map +0 -12
  1221. package/dist/chunk-nn5xnx3s.js.map +0 -40
  1222. package/dist/chunk-pbcbn83d.js.map +0 -14
  1223. package/dist/chunk-pqajwytd.js +0 -68
  1224. package/dist/chunk-pqajwytd.js.map +0 -11
  1225. package/dist/chunk-qczk96d9.js.map +0 -11
  1226. package/dist/chunk-rdghfsss.js +0 -39
  1227. package/dist/chunk-rdghfsss.js.map +0 -10
  1228. package/dist/chunk-rj69qcrd.js.map +0 -11
  1229. package/dist/chunk-v4jbb3rs.js.map +0 -10
  1230. package/dist/chunk-yxd3nnqt.js.map +0 -11
  1231. package/dist/events/toStoredEvent.d.ts +0 -9
  1232. package/dist/events/toStoredEvent.d.ts.map +0 -1
  1233. package/dist/models/audio/file.d.ts +0 -9
  1234. package/dist/models/audio/file.d.ts.map +0 -1
  1235. package/src/events/toStoredEvent.ts +0 -33
  1236. /package/dist/{chunk-mfs23znk.js.map → chunk-07kkp2e1.js.map} +0 -0
  1237. /package/dist/{chunk-z58tm0hm.js.map → chunk-0phpbbvm.js.map} +0 -0
  1238. /package/dist/{chunk-e17zdm62.js.map → chunk-1t6k1avb.js.map} +0 -0
  1239. /package/dist/{chunk-kge7k6ey.js.map → chunk-2fn60nvs.js.map} +0 -0
  1240. /package/dist/{chunk-y0c4e6ex.js.map → chunk-3gbefjg5.js.map} +0 -0
  1241. /package/dist/{chunk-cy4mbddw.js.map → chunk-48jezz3j.js.map} +0 -0
  1242. /package/dist/{chunk-twe4dx8p.js → chunk-5tfev0fv.js} +0 -0
  1243. /package/dist/{chunk-twe4dx8p.js.map → chunk-5tfev0fv.js.map} +0 -0
  1244. /package/dist/{chunk-447a5c0p.js.map → chunk-6n69k945.js.map} +0 -0
  1245. /package/dist/{chunk-0bphap9y.js.map → chunk-6p0pastb.js.map} +0 -0
  1246. /package/dist/{chunk-431pyp2c.js.map → chunk-6y0mkhex.js.map} +0 -0
  1247. /package/dist/{chunk-s7jg7pmn.js.map → chunk-bab05bhg.js.map} +0 -0
  1248. /package/dist/{chunk-q5e5tv4b.js.map → chunk-c844dkwd.js.map} +0 -0
  1249. /package/dist/{chunk-cfj9dfbb.js.map → chunk-d2m879s4.js.map} +0 -0
  1250. /package/dist/{chunk-q7gn29y3.js.map → chunk-dp0cdtj2.js.map} +0 -0
  1251. /package/dist/{chunk-br3k6qbf.js.map → chunk-fm62y49k.js.map} +0 -0
  1252. /package/dist/{chunk-vvxtn22d.js.map → chunk-g663fahq.js.map} +0 -0
  1253. /package/dist/{chunk-rmakanzx.js.map → chunk-h33shhq6.js.map} +0 -0
  1254. /package/dist/{chunk-d09e3rax.js.map → chunk-hwarjrgf.js.map} +0 -0
  1255. /package/dist/{chunk-vf57cr4t.js.map → chunk-hyesv9dv.js.map} +0 -0
  1256. /package/dist/{chunk-5vems3nx.js.map → chunk-m2nevja0.js.map} +0 -0
  1257. /package/dist/{chunk-x9v4cx1d.js.map → chunk-m36fw8ft.js.map} +0 -0
  1258. /package/dist/{chunk-a40ad1ft.js.map → chunk-mbsbxarb.js.map} +0 -0
  1259. /package/dist/{chunk-6aawea28.js.map → chunk-n8q5j6y5.js.map} +0 -0
  1260. /package/dist/{chunk-d7dnxdep.js.map → chunk-n9zpx9c6.js.map} +0 -0
  1261. /package/dist/{chunk-xvsc5m8n.js.map → chunk-npcr0228.js.map} +0 -0
  1262. /package/dist/{chunk-y5tah2kf.js.map → chunk-q4pmvkg0.js.map} +0 -0
  1263. /package/dist/{chunk-d5rjr8c0.js.map → chunk-vabga7fk.js.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  // @bun
2
2
  import {
3
- MODEL_REASONING_EFFORTS2,
4
3
  MODEL_REASONING_LEVELS2,
5
- modelReasoningSupportIssue2
6
- } from "./chunk-pqajwytd.js";
4
+ modelReasoningSupportIssue2,
5
+ defineLanguageModel2
6
+ } from "./chunk-pdt5cw8z.js";
7
7
  import {
8
8
  RuntimeError2
9
9
  } from "./chunk-m4ehq95f.js";
@@ -28,8 +28,20 @@ class TranscriptionModelResponseError2 extends ModelProviderError2 {
28
28
  this.metadata = metadata;
29
29
  }
30
30
  }
31
+
32
+ class SpeechModelResponseError2 extends ModelProviderError2 {
33
+ metadata;
34
+ constructor(message, providerId, modelId, metadata, options) {
35
+ super(message, providerId, modelId, {
36
+ ...options,
37
+ code: "invalid_speech_response",
38
+ retryable: false
39
+ });
40
+ this.metadata = metadata;
41
+ }
42
+ }
31
43
  // src/models/catalog-index.ts
32
- function indexModelBindings(models, kind, validate) {
44
+ function indexModelBindings(models, kind, validate, fields) {
33
45
  const byRef = new Map;
34
46
  for (const [index, model] of models.entries()) {
35
47
  validate(model, index);
@@ -37,7 +49,8 @@ function indexModelBindings(models, kind, validate) {
37
49
  if (byRef.has(key)) {
38
50
  throw new RuntimeError2(`[Sixb] Duplicate ${kind} model '${model.providerId}/${model.modelId}' in 'models.${kind}'. Each provider and model id pair may be configured once.`);
39
51
  }
40
- byRef.set(key, Object.freeze({ provider: model.providerId, modelId: model.modelId, model }));
52
+ const entry = { provider: model.providerId, modelId: model.modelId, model };
53
+ byRef.set(key, Object.freeze(fields ? { ...entry, ...fields(index) } : entry));
41
54
  }
42
55
  const entries = Object.freeze([...byRef.values()]);
43
56
  return Object.freeze({
@@ -50,15 +63,28 @@ function indexModelBindings(models, kind, validate) {
50
63
  function createAudioCatalog(input) {
51
64
  if (input === undefined)
52
65
  return;
53
- if (!input || typeof input !== "object" || Array.isArray(input) || !Array.isArray(input.transcription)) {
54
- throw new TypeError("[Sixb] models.audio.transcription must be a nonempty array of transcription models.");
66
+ if (!input || typeof input !== "object" || Array.isArray(input) || input.transcription === undefined && input.speech === undefined) {
67
+ throw new TypeError("[Sixb] models.audio must configure transcription or speech models.");
68
+ }
69
+ const transcription = familyCatalog(input.transcription, "transcription", assertTranscriptionModel);
70
+ const speech = familyCatalog(input.speech, "speech", assertSpeechModel);
71
+ return Object.freeze({
72
+ ...transcription === undefined ? {} : { transcription },
73
+ ...speech === undefined ? {} : { speech }
74
+ });
75
+ }
76
+ function familyCatalog(models, family, validate) {
77
+ if (models === undefined)
78
+ return;
79
+ if (!Array.isArray(models)) {
80
+ throw new TypeError(`[Sixb] models.audio.${family} must be a nonempty array of ${family} models.`);
55
81
  }
56
- const index = indexModelBindings(input.transcription, "audio.transcription", assertTranscriptionModel);
82
+ const index = indexModelBindings(models, `audio.${family}`, validate);
57
83
  const [defaultEntry] = index.list();
58
84
  if (!defaultEntry) {
59
- throw new TypeError("[Sixb] models.audio.transcription must contain at least one model.");
85
+ throw new TypeError(`[Sixb] models.audio.${family} must contain at least one model.`);
60
86
  }
61
- return Object.freeze({ transcription: Object.freeze({ ...index, default: defaultEntry }) });
87
+ return Object.freeze({ ...index, default: defaultEntry });
62
88
  }
63
89
  function assertTranscriptionModel(model) {
64
90
  const candidate = model;
@@ -80,6 +106,34 @@ function isValidId(value) {
80
106
  function invalidModel() {
81
107
  return new TypeError("[SixbModels] Invalid transcription model identity, definition or input limits.");
82
108
  }
109
+ function assertSpeechModel(model) {
110
+ const candidate = model;
111
+ const definition = candidate?.definition;
112
+ if (!candidate || !isValidId(candidate.providerId) || !isValidId(candidate.modelId) || typeof candidate.speak !== "function" || definition?.kind !== "speech" || definition.providerId !== candidate.providerId || definition.modelId !== candidate.modelId) {
113
+ throw invalidSpeechModel("identity");
114
+ }
115
+ const limit = definition.maxInputCharacters;
116
+ if (limit !== undefined && (!Number.isSafeInteger(limit) || limit <= 0)) {
117
+ throw invalidSpeechModel("maxInputCharacters");
118
+ }
119
+ if (!isOptionalList(definition.voices))
120
+ throw invalidSpeechModel("voices");
121
+ if (!isOptionalList(definition.outputMediaTypes) || definition.outputMediaTypes?.some((type) => !/^audio\/[a-z0-9.+-]+$/.test(type))) {
122
+ throw invalidSpeechModel("outputMediaTypes");
123
+ }
124
+ if (definition.instructions !== undefined && typeof definition.instructions !== "boolean") {
125
+ throw invalidSpeechModel("instructions");
126
+ }
127
+ if (candidate.defaultVoice !== undefined && (!isValidId(candidate.defaultVoice) || definition.voices !== undefined && !definition.voices.includes(candidate.defaultVoice))) {
128
+ throw invalidSpeechModel("defaultVoice");
129
+ }
130
+ }
131
+ function isOptionalList(value) {
132
+ return value === undefined || Array.isArray(value) && value.length > 0 && value.every((entry) => isValidId(entry));
133
+ }
134
+ function invalidSpeechModel(field) {
135
+ return new TypeError(`[SixbModels] Invalid speech model ${field}.`);
136
+ }
83
137
 
84
138
  // src/models/decision/validation.ts
85
139
  var DISTRIBUTION_TOLERANCE = 0.0001;
@@ -309,158 +363,49 @@ function createDecisionCatalog(models) {
309
363
  return Object.freeze({ ...index, default: defaultEntry });
310
364
  }
311
365
 
312
- // src/models/definitions.ts
313
- function defineLanguageModel2(definition) {
314
- if (definition.kind !== "language") {
315
- throw new TypeError("[Sixb] Language model definitions must use kind 'language'.");
316
- }
317
- assertModelId(definition.providerId, "providerId");
318
- assertModelId(definition.modelId, "modelId");
319
- assertOptionalString(definition.name, "name");
320
- assertOptionalString(definition.description, "description");
321
- assertOptionalString(definition.via, "via");
322
- if (definition.via !== undefined && !definition.via.trim())
323
- throw new TypeError("[Sixb] Model via must not be empty.");
324
- const publisher = definition.publisher;
325
- if (publisher !== undefined) {
326
- assertRecord(publisher, "publisher");
327
- for (const [field, value] of Object.entries({ id: publisher.id, name: publisher.name })) {
328
- if (typeof value !== "string" || !value.trim() || value !== value.trim())
329
- throw new TypeError(`[Sixb] Model publisher.${field} must be a nonempty trimmed string.`);
330
- }
331
- }
332
- assertOptionalString(definition.family, "family");
333
- assertOptionalString(definition.releaseDate, "releaseDate");
334
- assertOptionalString(definition.knowledgeCutoff, "knowledgeCutoff");
335
- const tags = freezeStrings(definition.tags, "tags");
336
- const capabilities = defineModelCapabilities(definition.capabilities);
337
- assertOptionalPositiveInteger(definition.contextWindow, "contextWindow");
338
- assertOptionalPositiveInteger(definition.maxInputTokens, "maxInputTokens");
339
- assertOptionalPositiveInteger(definition.maxOutputTokens, "maxOutputTokens");
340
- return Object.freeze({
341
- kind: "language",
342
- providerId: definition.providerId,
343
- modelId: definition.modelId,
344
- ...definition.name === undefined ? {} : { name: definition.name },
345
- ...definition.description === undefined ? {} : { description: definition.description },
346
- ...publisher === undefined ? {} : { publisher: Object.freeze({ id: publisher.id, name: publisher.name }) },
347
- ...definition.via === undefined ? {} : { via: definition.via },
348
- ...definition.family === undefined ? {} : { family: definition.family },
349
- ...tags === undefined ? {} : { tags },
350
- ...definition.releaseDate === undefined ? {} : { releaseDate: definition.releaseDate },
351
- ...definition.knowledgeCutoff === undefined ? {} : { knowledgeCutoff: definition.knowledgeCutoff },
352
- ...definition.contextWindow === undefined ? {} : { contextWindow: definition.contextWindow },
353
- ...definition.maxInputTokens === undefined ? {} : { maxInputTokens: definition.maxInputTokens },
354
- ...definition.maxOutputTokens === undefined ? {} : { maxOutputTokens: definition.maxOutputTokens },
355
- capabilities
356
- });
357
- }
358
- function defineModelCapabilities(capabilities) {
359
- assertRecord(capabilities, "capabilities");
360
- const inputMediaTypes = capabilities.inputMediaTypes === "any" ? "any" : freezeStrings(capabilities.inputMediaTypes, "capabilities.inputMediaTypes");
361
- for (const [field, value] of Object.entries(capabilities)) {
362
- if (field === "inputMediaTypes" || field === "reasoning")
363
- continue;
364
- if (value !== undefined && typeof value !== "boolean") {
365
- throw new TypeError(`[Sixb] Model capability '${field}' must be boolean.`);
366
- }
366
+ // src/models/image/catalog.ts
367
+ function createImageCatalog(models) {
368
+ if (models === undefined)
369
+ return;
370
+ if (!Array.isArray(models)) {
371
+ throw new TypeError("[Sixb] models.image must be a nonempty array of image models.");
367
372
  }
368
- const reasoning = freezeReasoningCapabilities(capabilities.reasoning);
369
- const flags = {};
370
- for (const key of [
371
- "localTools",
372
- "parallelToolCalls",
373
- "nativeStructuredOutput",
374
- "providerExecutedTools"
375
- ]) {
376
- const value = capabilities[key];
377
- if (typeof value === "boolean")
378
- flags[key] = value;
373
+ const index = indexModelBindings(models, "image", assertImageModel);
374
+ const [defaultEntry] = index.list();
375
+ if (!defaultEntry) {
376
+ throw new TypeError("[Sixb] models.image must contain at least one model.");
379
377
  }
380
- return Object.freeze({
381
- ...inputMediaTypes === undefined ? {} : { inputMediaTypes },
382
- ...reasoning === undefined ? {} : { reasoning },
383
- ...flags
384
- });
378
+ return Object.freeze({ ...index, default: defaultEntry });
385
379
  }
386
- function freezeReasoningCapabilities(reasoning) {
387
- if (reasoning === undefined || reasoning === false)
388
- return reasoning;
389
- assertRecord(reasoning, "reasoning");
390
- if (reasoning.canDisable !== undefined && typeof reasoning.canDisable !== "boolean") {
391
- throw new TypeError("[Sixb] Model reasoning capability 'canDisable' must be boolean.");
380
+ function assertImageModel(model) {
381
+ const candidate = model;
382
+ const definition = candidate?.definition;
383
+ if (!candidate || !isValidId3(candidate.providerId) || !isValidId3(candidate.modelId) || typeof candidate.generate !== "function" || definition?.kind !== "image" || definition.providerId !== candidate.providerId || definition.modelId !== candidate.modelId) {
384
+ throw invalidModel2("identity");
392
385
  }
393
- const efforts = freezeReasoningEfforts(reasoning.efforts);
394
- const budgetTokens = freezeReasoningBudgetCapabilities(reasoning.budgetTokens);
395
- return Object.freeze({
396
- ...reasoning.canDisable === undefined ? {} : { canDisable: reasoning.canDisable },
397
- ...efforts === undefined ? {} : { efforts },
398
- ...budgetTokens === undefined ? {} : { budgetTokens }
399
- });
400
- }
401
- function freezeReasoningEfforts(efforts) {
402
- if (efforts === undefined)
403
- return;
404
- if (!Array.isArray(efforts)) {
405
- throw new TypeError("[Sixb] Model reasoning capability 'efforts' must be an array.");
386
+ if (definition.maxImagesPerCall !== undefined && !isPositiveInteger(definition.maxImagesPerCall)) {
387
+ throw invalidModel2("maxImagesPerCall");
406
388
  }
407
- const seen = new Set;
408
- return Object.freeze(efforts.map((value) => {
409
- const effort = MODEL_REASONING_EFFORTS2.find((allowed) => allowed === value);
410
- if (effort === undefined) {
411
- throw new TypeError(`[Sixb] Model reasoning effort '${String(value)}' is invalid.`);
412
- }
413
- if (seen.has(effort)) {
414
- throw new TypeError(`[Sixb] Model reasoning effort '${effort}' is duplicated.`);
415
- }
416
- seen.add(effort);
417
- return effort;
418
- }));
419
- }
420
- function freezeReasoningBudgetCapabilities(budget) {
421
- if (budget === undefined)
422
- return;
423
- assertRecord(budget, "reasoning budgetTokens");
424
- assertOptionalNonnegativeInteger(budget.min, "capabilities.reasoning.budgetTokens.min");
425
- assertOptionalNonnegativeInteger(budget.max, "capabilities.reasoning.budgetTokens.max");
426
- if (budget.min !== undefined && budget.max !== undefined && budget.max < budget.min) {
427
- throw new TypeError("[Sixb] Model reasoning token budget maximum must not be below its minimum.");
389
+ for (const field of ["sizes", "aspectRatios", "qualities", "styles"]) {
390
+ if (!isOptionalList2(definition[field]))
391
+ throw invalidModel2(field);
428
392
  }
429
- return Object.freeze({
430
- ...budget.min === undefined ? {} : { min: budget.min },
431
- ...budget.max === undefined ? {} : { max: budget.max }
432
- });
433
- }
434
- function assertModelId(value, field) {
435
- if (!value.trim())
436
- throw new TypeError(`[Sixb] Model ${field} must not be empty.`);
437
- }
438
- function assertOptionalPositiveInteger(value, field) {
439
- if (value !== undefined && (!Number.isSafeInteger(value) || value <= 0)) {
440
- throw new TypeError(`[Sixb] Model ${field} must be a positive safe integer.`);
393
+ const inputImages = definition.inputImages;
394
+ if (inputImages !== undefined && (!inputImages || !isPositiveInteger(inputImages.maxCount) || !isPositiveInteger(inputImages.maxBytes) || !isOptionalList2(inputImages.mediaTypes) || inputImages.mediaTypes?.some((type) => !/^image\/[a-z0-9.+-]+$/.test(type)))) {
395
+ throw invalidModel2("inputImages");
441
396
  }
442
397
  }
443
- function assertOptionalNonnegativeInteger(value, field) {
444
- if (value !== undefined && (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0)) {
445
- throw new TypeError(`[Sixb] Model ${field} must be a nonnegative safe integer.`);
446
- }
398
+ function isOptionalList2(value) {
399
+ return value === undefined || Array.isArray(value) && value.length > 0 && value.every((entry) => typeof entry === "string" && entry.trim() === entry && entry);
447
400
  }
448
- function assertOptionalString(value, field) {
449
- if (value !== undefined && typeof value !== "string") {
450
- throw new TypeError(`[Sixb] Model ${field} must be a string.`);
451
- }
401
+ function isPositiveInteger(value) {
402
+ return typeof value === "number" && Number.isSafeInteger(value) && value > 0;
452
403
  }
453
- function freezeStrings(value, field) {
454
- if (value === undefined)
455
- return;
456
- if (!Array.isArray(value) || value.some((entry) => typeof entry !== "string" || !entry.trim())) {
457
- throw new TypeError(`[Sixb] Model ${field} must contain nonempty strings.`);
458
- }
459
- return Object.freeze([...value]);
404
+ function isValidId3(value) {
405
+ return typeof value === "string" && value.length > 0 && value.trim() === value;
460
406
  }
461
- function assertRecord(value, field) {
462
- if (value === null || typeof value !== "object" || Array.isArray(value))
463
- throw new TypeError(`[Sixb] Model ${field} must be an object.`);
407
+ function invalidModel2(field) {
408
+ return new TypeError(`[SixbModels] Invalid image model ${field}.`);
464
409
  }
465
410
 
466
411
  // src/models/reranking-model.ts
@@ -505,6 +450,14 @@ class RerankingModelResponseError2 extends ModelProviderError2 {
505
450
  }
506
451
 
507
452
  // src/models/catalog.ts
453
+ var LANGUAGE_MODEL_TIERS2 = ["light", "standard", "heavy"];
454
+ function isLanguageModelTier2(value) {
455
+ return LANGUAGE_MODEL_TIERS2.includes(value);
456
+ }
457
+ function formatLanguageModelTiers2() {
458
+ const last = LANGUAGE_MODEL_TIERS2.at(-1);
459
+ return `${LANGUAGE_MODEL_TIERS2.slice(0, -1).join(", ")} or ${last}`;
460
+ }
508
461
  function createModelCatalog2(input) {
509
462
  if (!input || typeof input !== "object" || Array.isArray(input)) {
510
463
  throw new RuntimeError2("[Sixb] 'models' must be a model catalog configuration.");
@@ -513,11 +466,12 @@ function createModelCatalog2(input) {
513
466
  const embedding = createEmbeddingCatalog(input.embedding);
514
467
  const decision = createDecisionCatalog(input.decision);
515
468
  const audio = createAudioCatalog(input.audio);
469
+ const image = createImageCatalog(input.image);
516
470
  const reranking = createRerankingCatalog(input.reranking);
517
- if (!language && !decision && !audio && embedding.list().length === 0 && !reranking?.list().length) {
518
- throw new RuntimeError2("[Sixb] Configure at least one language, embedding, decision, audio or reranking model.");
471
+ if (!language && !decision && !audio && !image && embedding.list().length === 0 && !reranking?.list().length) {
472
+ throw new RuntimeError2("[Sixb] Configure at least one language, embedding, decision, audio, image or reranking model.");
519
473
  }
520
- return Object.freeze({ language, embedding, decision, audio, reranking });
474
+ return Object.freeze({ language, embedding, decision, audio, image, reranking });
521
475
  }
522
476
  function createRerankingCatalog(models) {
523
477
  if (models === undefined)
@@ -527,21 +481,71 @@ function createRerankingCatalog(models) {
527
481
  }
528
482
  return indexModelBindings(models, "reranking", assertRerankingModel);
529
483
  }
530
- function createLanguageCatalog(models) {
531
- if (models === undefined)
484
+ function createLanguageCatalog(input) {
485
+ if (input === undefined)
532
486
  return;
533
- if (!Array.isArray(models)) {
534
- throw new RuntimeError2("[Sixb] 'models.language' must be an array of Sixb language models.");
535
- }
536
- const index = indexModelBindings(models, "language", (model, position) => {
537
- assertLanguageModel(model, position);
538
- assertDefaultReasoning(model, position);
487
+ const configured = configuredLanguageModels(input);
488
+ const index = indexModelBindings(configured.map(({ model }) => model), "language", (model, position) => {
489
+ const { path } = configured[position];
490
+ assertValidLanguageModel(model, (detail) => invalidLanguageModel(path, detail));
491
+ }, (position) => {
492
+ const { tier } = configured[position];
493
+ return tier === undefined ? {} : { tier };
539
494
  });
540
- const [defaultEntry] = index.list();
495
+ const entries = index.list();
496
+ const defaultEntry = entries.find((entry) => entry.tier === "standard") ?? entries[0];
541
497
  if (!defaultEntry) {
542
498
  throw new RuntimeError2("[Sixb] 'models.language' needs at least one model. Configure one or omit 'models.language'.");
543
499
  }
544
- return Object.freeze({ ...index, default: defaultEntry });
500
+ const tiers = LANGUAGE_MODEL_TIERS2.filter((tier) => entries.some((entry) => entry.tier === tier));
501
+ return Object.freeze({
502
+ ...index,
503
+ default: defaultEntry,
504
+ tiers: Object.freeze(tiers),
505
+ getByTier: (tier) => entries.find((entry) => entry.tier === tier) ?? defaultEntry
506
+ });
507
+ }
508
+ function selectLanguageModel2(catalog, model) {
509
+ if (model === undefined)
510
+ return catalog?.default.model;
511
+ if (typeof model !== "string")
512
+ return model;
513
+ if (!isLanguageModelTier2(model)) {
514
+ throw new TypeError(`[Sixb] Unknown model tier '${model}'. Use ${formatLanguageModelTiers2()}, or pass a model.`);
515
+ }
516
+ return catalog?.getByTier(model).model;
517
+ }
518
+ function configuredLanguageModels(input) {
519
+ if (Array.isArray(input)) {
520
+ return input.map((model, index) => ({ model, path: `models.language[${index}]` }));
521
+ }
522
+ if (typeof input !== "object" || input === null) {
523
+ throw new RuntimeError2("[Sixb] 'models.language' must be an array of Sixb language models, or tiers: { light, standard, heavy }.");
524
+ }
525
+ const unknown = Object.keys(input).find((key) => !isLanguageModelTier2(key));
526
+ if (unknown !== undefined) {
527
+ throw new RuntimeError2(`[Sixb] Unknown model tier '${unknown}' in 'models.language'. Use ${formatLanguageModelTiers2()}, or pass an array of models.`);
528
+ }
529
+ const tiers = input;
530
+ if (tiers.standard === undefined) {
531
+ throw new RuntimeError2("[Sixb] 'models.language' tiers need 'standard': its first model is the project default.");
532
+ }
533
+ return LANGUAGE_MODEL_TIERS2.flatMap((tier) => {
534
+ const models = tiers[tier];
535
+ if (models === undefined)
536
+ return [];
537
+ if (!Array.isArray(models)) {
538
+ return [{ model: models, tier, path: `models.language.${tier}` }];
539
+ }
540
+ if (models.length === 0) {
541
+ throw new RuntimeError2(`[Sixb] 'models.language.${tier}' needs at least one model.`);
542
+ }
543
+ return models.map((model, index) => ({
544
+ model,
545
+ tier,
546
+ path: `models.language.${tier}[${index}]`
547
+ }));
548
+ });
545
549
  }
546
550
  function createEmbeddingCatalog(models) {
547
551
  if (models !== undefined && !Array.isArray(models)) {
@@ -549,27 +553,44 @@ function createEmbeddingCatalog(models) {
549
553
  }
550
554
  return indexModelBindings(models ?? [], "embedding", assertEmbeddingModel);
551
555
  }
552
- function assertDefaultReasoning(model, index) {
556
+ function assertValidLanguageModel(model, fail) {
557
+ assertLanguageModel(model, fail);
558
+ assertDefaultReasoning(model, fail);
559
+ assertMaxOutputTokens(model, fail);
560
+ }
561
+ function assertDefaultReasoning(model, fail) {
553
562
  const reasoning = model.defaultReasoning;
554
563
  if (reasoning === undefined)
555
564
  return;
556
565
  if (!MODEL_REASONING_LEVELS2.includes(reasoning)) {
557
- throw invalidLanguageModel(index, `expected 'defaultReasoning' to be one of: ${MODEL_REASONING_LEVELS2.join(", ")}`);
566
+ throw fail(`expected 'defaultReasoning' to be one of: ${MODEL_REASONING_LEVELS2.join(", ")}`);
558
567
  }
559
568
  const issue = modelReasoningSupportIssue2(model.definition.capabilities.reasoning, reasoning);
560
569
  if (issue !== undefined) {
561
- throw invalidLanguageModel(index, `default reasoning '${reasoning}' cannot be used: ${issue}`);
570
+ throw fail(`default reasoning '${reasoning}' cannot be used: ${issue}`);
562
571
  }
563
572
  }
564
- function assertLanguageModel(model, index) {
573
+ function assertMaxOutputTokens(model, fail) {
574
+ const maxOutputTokens = model.maxOutputTokens;
575
+ if (maxOutputTokens === undefined)
576
+ return;
577
+ if (typeof maxOutputTokens !== "number" || !Number.isSafeInteger(maxOutputTokens) || maxOutputTokens <= 0) {
578
+ throw fail("expected 'maxOutputTokens' to be a positive safe integer");
579
+ }
580
+ const modelMaximum = model.definition.maxOutputTokens;
581
+ if (modelMaximum !== undefined && maxOutputTokens > modelMaximum) {
582
+ throw fail(`'maxOutputTokens' (${maxOutputTokens}) exceeds the model maximum (${modelMaximum})`);
583
+ }
584
+ }
585
+ function assertLanguageModel(model, fail) {
565
586
  if (typeof model !== "object" && typeof model !== "function" || model === null) {
566
- throw invalidLanguageModel(index, "expected a Sixb LanguageModel instance");
587
+ throw fail("expected a Sixb LanguageModel instance");
567
588
  }
568
589
  const candidate = model;
569
- assertModelIdentifier(candidate.providerId, "provider", index);
570
- assertModelIdentifier(candidate.modelId, "modelId", index);
590
+ assertModelIdentifier(candidate.providerId, "provider", fail);
591
+ assertModelIdentifier(candidate.modelId, "modelId", fail);
571
592
  if (typeof candidate.stream !== "function") {
572
- throw invalidLanguageModel(index, "expected 'stream' to be a function");
593
+ throw fail("expected 'stream' to be a function");
573
594
  }
574
595
  try {
575
596
  const definition = defineLanguageModel2(candidate.definition);
@@ -577,19 +598,19 @@ function assertLanguageModel(model, index) {
577
598
  throw new Error("definition identity does not match the binding");
578
599
  }
579
600
  } catch (error) {
580
- throw invalidLanguageModel(index, error instanceof Error ? error.message : "invalid definition");
601
+ throw fail(error instanceof Error ? error.message : "invalid definition");
581
602
  }
582
603
  }
583
- function assertModelIdentifier(value, field, index) {
604
+ function assertModelIdentifier(value, field, fail) {
584
605
  if (typeof value !== "string" || value.length === 0) {
585
- throw invalidLanguageModel(index, `expected '${field}' to be a non-empty string`);
606
+ throw fail(`expected '${field}' to be a non-empty string`);
586
607
  }
587
608
  if (value.trim() !== value) {
588
- throw invalidLanguageModel(index, `expected '${field}' not to have surrounding whitespace`);
609
+ throw fail(`expected '${field}' not to have surrounding whitespace`);
589
610
  }
590
611
  }
591
- function invalidLanguageModel(index, detail) {
592
- return new RuntimeError2(`[Sixb] Invalid language model at 'models.language[${index}]': ${detail}.`);
612
+ function invalidLanguageModel(path, detail) {
613
+ return new RuntimeError2(`[Sixb] Invalid language model at '${path}': ${detail}.`);
593
614
  }
594
615
  // src/models/decision/errors.ts
595
616
  class DecisionModelResponseError2 extends ModelProviderError2 {
@@ -672,6 +693,157 @@ var question2 = {
672
693
  return result;
673
694
  }
674
695
  };
696
+ // src/models/image/errors.ts
697
+ class ImageModelResponseError2 extends ModelProviderError2 {
698
+ metadata;
699
+ constructor(message, providerId, modelId, metadata, options) {
700
+ super(message, providerId, modelId, {
701
+ ...options,
702
+ code: "invalid_image_response",
703
+ retryable: false
704
+ });
705
+ this.metadata = metadata;
706
+ }
707
+ }
708
+ // src/models/rate-card.ts
709
+ var PRICING_DIMENSIONS = ["size", "quality", "style", "voiceTier"];
710
+ var TOKEN_DETAIL_FIELDS = [
711
+ "cacheReadInput",
712
+ "cacheWriteInput",
713
+ "cacheWriteInput5m",
714
+ "cacheWriteInput1h",
715
+ "imageOutput",
716
+ "audioOutput"
717
+ ];
718
+ function defineModelRateCard2(rateCard) {
719
+ assertRecord(rateCard, "rate card");
720
+ if (rateCard.currency !== "USD") {
721
+ throw new TypeError("[Sixb] Model rate cards must use USD.");
722
+ }
723
+ const tokens = rateCard.input !== undefined || rateCard.output !== undefined;
724
+ if (tokens && (rateCard.input === undefined || rateCard.output === undefined)) {
725
+ throw new TypeError("[Sixb] Model rate cards must price input and output tokens together.");
726
+ }
727
+ if (!tokens && TOKEN_DETAIL_FIELDS.some((field) => rateCard[field] !== undefined)) {
728
+ throw new TypeError("[Sixb] Model rate card token details require input and output prices.");
729
+ }
730
+ if (!tokens && rateCard.images === undefined && rateCard.characters === undefined && rateCard.audioInputSeconds === undefined) {
731
+ throw new TypeError("[Sixb] Model rate cards must price tokens, images, characters or audio.");
732
+ }
733
+ if (rateCard.images !== undefined && rateCard.imageOutput !== undefined) {
734
+ throw new TypeError("[Sixb] Model rate cards bill image output per image or per token, not both.");
735
+ }
736
+ return Object.freeze({
737
+ currency: "USD",
738
+ ...tokens ? { input: tokenPrice(rateCard.input), output: tokenPrice(rateCard.output) } : {},
739
+ ...rateCard.cacheReadInput === undefined ? {} : { cacheReadInput: tokenPrice(rateCard.cacheReadInput) },
740
+ ...rateCard.cacheWriteInput === undefined ? {} : { cacheWriteInput: tokenPrice(rateCard.cacheWriteInput) },
741
+ ...rateCard.cacheWriteInput5m === undefined ? {} : { cacheWriteInput5m: tokenPrice(rateCard.cacheWriteInput5m) },
742
+ ...rateCard.cacheWriteInput1h === undefined ? {} : { cacheWriteInput1h: tokenPrice(rateCard.cacheWriteInput1h) },
743
+ ...rateCard.imageOutput === undefined ? {} : { imageOutput: tokenPrice(rateCard.imageOutput) },
744
+ ...rateCard.audioOutput === undefined ? {} : { audioOutput: tokenPrice(rateCard.audioOutput) },
745
+ ...rateCard.images === undefined ? {} : { images: variantPrice(rateCard.images, "images") },
746
+ ...rateCard.characters === undefined ? {} : { characters: variantPrice(rateCard.characters, "characters") },
747
+ ...rateCard.audioInputSeconds === undefined ? {} : { audioInputSeconds: variantPrice(rateCard.audioInputSeconds, "audioInputSeconds") }
748
+ });
749
+ }
750
+ function resolveModelVariantPrice(price, dimensions) {
751
+ if (typeof price === "string")
752
+ return { price };
753
+ const variant = price.variants.find((candidate) => PRICING_DIMENSIONS.every((dimension) => candidate[dimension] === undefined || candidate[dimension] === dimensions?.[dimension]));
754
+ if (variant) {
755
+ const label = PRICING_DIMENSIONS.flatMap((dimension) => variant[dimension] ?? []).join(" \xB7 ");
756
+ return { price: variant.price, variant: label };
757
+ }
758
+ return price.default === undefined ? undefined : { price: price.default };
759
+ }
760
+ function modelVariantPrices(price) {
761
+ if (typeof price === "string")
762
+ return [price];
763
+ return [
764
+ ...price.default === undefined ? [] : [price.default],
765
+ ...price.variants.map((variant) => variant.price)
766
+ ];
767
+ }
768
+ function variantPrice(value, field) {
769
+ if (typeof value === "string")
770
+ return price(value);
771
+ assertRecord(value, `${field} price`);
772
+ if (!Array.isArray(value.variants) || value.variants.length === 0) {
773
+ throw new TypeError(`[Sixb] Model ${field} price variants must be a nonempty array.`);
774
+ }
775
+ let shape;
776
+ const seen = new Set;
777
+ const variants = value.variants.map((variant) => {
778
+ assertRecord(variant, `${field} price variant`);
779
+ const dimensions = {};
780
+ for (const dimension of PRICING_DIMENSIONS) {
781
+ const named = variant[dimension];
782
+ if (named === undefined)
783
+ continue;
784
+ if (typeof named !== "string" || !named.trim()) {
785
+ throw new TypeError(`[Sixb] Model ${field} price variant ${dimension} must be nonblank.`);
786
+ }
787
+ dimensions[dimension] = named;
788
+ }
789
+ const key = Object.keys(dimensions).join(",");
790
+ if (!key || shape !== undefined && key !== shape) {
791
+ throw new TypeError(`[Sixb] Model ${field} price variants must all name the same pricing dimensions.`);
792
+ }
793
+ shape = key;
794
+ const identity = JSON.stringify(Object.values(dimensions));
795
+ if (seen.has(identity)) {
796
+ throw new TypeError(`[Sixb] Model ${field} price variants must be distinct.`);
797
+ }
798
+ seen.add(identity);
799
+ return Object.freeze({ ...dimensions, price: price(variant.price) });
800
+ });
801
+ return Object.freeze({
802
+ ...value.default === undefined ? {} : { default: price(value.default) },
803
+ variants: Object.freeze(variants)
804
+ });
805
+ }
806
+ function tokenPrice(value) {
807
+ if (typeof value === "string")
808
+ return price(value);
809
+ assertRecord(value, "token price");
810
+ if (!Array.isArray(value.tiers))
811
+ throw new TypeError("[Sixb] Model price tiers must be an array.");
812
+ let previousMax = 0;
813
+ return Object.freeze({
814
+ default: price(value.default),
815
+ tiers: Object.freeze(value.tiers.map((tier, index) => {
816
+ assertRecord(tier, "price tier");
817
+ if (typeof tier.minTokens !== "number" || !Number.isSafeInteger(tier.minTokens) || tier.minTokens < 0) {
818
+ throw new TypeError("[Sixb] Model price tier has an invalid minimum.");
819
+ }
820
+ if (index > 0 && tier.minTokens < previousMax) {
821
+ throw new TypeError("[Sixb] Model price tiers must be ordered and nonoverlapping.");
822
+ }
823
+ if (tier.maxTokens !== undefined && (typeof tier.maxTokens !== "number" || !Number.isSafeInteger(tier.maxTokens) || tier.maxTokens <= tier.minTokens)) {
824
+ throw new TypeError("[Sixb] Model price tier has an invalid maximum.");
825
+ }
826
+ previousMax = tier.maxTokens ?? Number.POSITIVE_INFINITY;
827
+ return Object.freeze({
828
+ minTokens: tier.minTokens,
829
+ ...tier.maxTokens === undefined ? {} : { maxTokens: tier.maxTokens },
830
+ price: price(tier.price)
831
+ });
832
+ }))
833
+ });
834
+ }
835
+ function price(value) {
836
+ if (typeof value !== "string" || !/^(?:0|[1-9]\d*)(?:\.\d+)?$/.test(value)) {
837
+ throw new TypeError("[Sixb] Model price must be a nonnegative decimal string.");
838
+ }
839
+ return value;
840
+ }
841
+ function assertRecord(value, field) {
842
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
843
+ throw new TypeError(`[Sixb] Model ${field} must be an object.`);
844
+ }
845
+ }
846
+
675
847
  // src/models/pricing.ts
676
848
  function estimateModelCall(model, input) {
677
849
  try {
@@ -681,33 +853,59 @@ function estimateModelCall(model, input) {
681
853
  return { status: "unpriceable", reason: "missing-rate-card" };
682
854
  }
683
855
  }
856
+ function pricesTokens(card) {
857
+ return card.input !== undefined && card.output !== undefined;
858
+ }
684
859
  function estimateModelReservation2(input) {
685
860
  if (!input.rateCard)
686
861
  return;
687
- if (![input.inputTokens, input.outputTokens].every((n) => Number.isSafeInteger(n) && n >= 0)) {
688
- throw new TypeError("[Sixb] Model reservation token estimates must be nonnegative safe integers.");
862
+ const counts = [input.inputTokens, input.outputTokens, input.outputImages, input.inputCharacters];
863
+ if (!counts.every((n) => n === undefined || Number.isSafeInteger(n) && n >= 0)) {
864
+ throw new TypeError("[Sixb] Model reservation estimates must be nonnegative safe integers.");
689
865
  }
690
866
  const maxRate = (prices) => {
691
867
  const rates = prices.flatMap((price) => price === undefined ? [] : typeof price === "string" ? [price] : [price.default, ...price.tiers.map((tier) => tier.price)]);
692
- return rates.reduce((max, price) => {
693
- const rate = decimalDollarsToNanos(price);
694
- return rate > max ? rate : max;
695
- }, 0n);
868
+ return highestRate(rates);
696
869
  };
697
870
  const card = input.rateCard;
698
- const inputRate = maxRate([
699
- card.input,
700
- card.cacheReadInput,
701
- card.cacheWriteInput,
702
- card.cacheWriteInput5m,
703
- card.cacheWriteInput1h
704
- ]);
705
- const outputRate = maxRate([card.output]);
706
- const charge = (tokens, rate) => (BigInt(tokens) * rate + 999999n) / 1000000n;
707
- return {
708
- currency: "USD",
709
- amountNanos: (charge(input.inputTokens, inputRate) + charge(input.outputTokens, outputRate)).toString()
710
- };
871
+ const charge = (quantity, rate) => (BigInt(quantity) * rate + 999999n) / 1000000n;
872
+ let total = 0n;
873
+ if (pricesTokens(card)) {
874
+ if (input.inputTokens === undefined || input.outputTokens === undefined)
875
+ return;
876
+ const inputRate = maxRate([
877
+ card.input,
878
+ card.cacheReadInput,
879
+ card.cacheWriteInput,
880
+ card.cacheWriteInput5m,
881
+ card.cacheWriteInput1h
882
+ ]);
883
+ const outputRate = maxRate([card.output, card.imageOutput, card.audioOutput]);
884
+ total += charge(input.inputTokens, inputRate) + charge(input.outputTokens, outputRate);
885
+ }
886
+ if (card.images !== undefined) {
887
+ if (input.outputImages === undefined)
888
+ return;
889
+ total += BigInt(input.outputImages) * reservationPrice(card.images, input.dimensions);
890
+ }
891
+ if (card.audioInputSeconds !== undefined)
892
+ return;
893
+ if (card.characters !== undefined) {
894
+ if (input.inputCharacters === undefined)
895
+ return;
896
+ total += charge(input.inputCharacters, reservationPrice(card.characters, input.dimensions));
897
+ }
898
+ return { currency: "USD", amountNanos: total.toString() };
899
+ }
900
+ function reservationPrice(price, dimensions) {
901
+ const resolved = resolveModelVariantPrice(price, dimensions);
902
+ return resolved?.variant !== undefined || typeof price === "string" ? decimalDollarsToNanos(resolved.price) : highestRate(modelVariantPrices(price));
903
+ }
904
+ function highestRate(prices) {
905
+ return prices.reduce((max, price) => {
906
+ const rate = decimalDollarsToNanos(price);
907
+ return rate > max ? rate : max;
908
+ }, 0n);
711
909
  }
712
910
  function rateModelCall2(input) {
713
911
  if (input.reported) {
@@ -724,6 +922,57 @@ function rateModelCall2(input) {
724
922
  if (!validUsageCounters(usage)) {
725
923
  return { status: "unpriceable", reason: "inconsistent-usage" };
726
924
  }
925
+ const units = rateUnits(usage, rateCard, input.dimensions);
926
+ if (!Array.isArray(units))
927
+ return units;
928
+ const tokens = pricesTokens(rateCard) ? rateTokens(usage, rateCard) : [];
929
+ if (!Array.isArray(tokens))
930
+ return tokens;
931
+ const components = [...tokens, ...units];
932
+ const total = components.reduce((sum, entry) => sum + BigInt(entry.chargeAmountNanos), 0n);
933
+ return {
934
+ status: "rated",
935
+ money: { currency: rateCard.currency, amountNanos: total.toString() },
936
+ components
937
+ };
938
+ }
939
+ function rateUnits(usage, rateCard, dimensions) {
940
+ if (!pricesTokens(rateCard)) {
941
+ const unpriced = [
942
+ ...(usage.outputImages ?? 0) > 0 && rateCard.images === undefined ? ["images.output"] : [],
943
+ ...(usage.inputCharacters ?? 0) > 0 && rateCard.characters === undefined ? ["characters.input"] : []
944
+ ];
945
+ if (unpriced.length > 0) {
946
+ return { status: "unpriceable", reason: "missing-rate-card", missingMeters: unpriced };
947
+ }
948
+ }
949
+ const components = [];
950
+ const missing = [];
951
+ for (const [meter, quantity, price, exponent] of [
952
+ ["images.output", usage.outputImages, rateCard.images, 15],
953
+ ["characters.input", usage.inputCharacters, rateCard.characters, 9],
954
+ ["audio.input.milliseconds", usage.audioDurationMs, rateCard.audioInputSeconds, 12]
955
+ ]) {
956
+ if (price === undefined)
957
+ continue;
958
+ if (quantity === undefined) {
959
+ missing.push(meter);
960
+ continue;
961
+ }
962
+ if (quantity === 0 && pricesTokens(rateCard))
963
+ continue;
964
+ const resolved = resolveModelVariantPrice(price, dimensions) ?? (quantity === 0 ? zero : null);
965
+ if (!resolved)
966
+ return { status: "unpriceable", reason: "unsupported-pricing-dimension" };
967
+ components.push(componentAtRate(meter, quantity, scaledDecimal(resolved.price, exponent), resolved.variant));
968
+ }
969
+ if (missing.length > 0) {
970
+ return { status: "unpriceable", reason: "missing-usage", missingMeters: missing };
971
+ }
972
+ return components;
973
+ }
974
+ var zero = { price: "0" };
975
+ function rateTokens(usage, rateCard) {
727
976
  if (usage.inputTokens === undefined || usage.outputTokens === undefined) {
728
977
  return {
729
978
  status: "unpriceable",
@@ -755,13 +1004,54 @@ function rateModelCall2(input) {
755
1004
  components.push(component("tokens.input.cacheWrite1h", partitioned.cacheWrite1h, rateCard.cacheWriteInput1h ?? rateCard.cacheWriteInput, usage.inputTokens));
756
1005
  }
757
1006
  }
758
- components.push(component("tokens.output.total", usage.outputTokens, rateCard.output, usage.inputTokens));
759
- const total = components.reduce((sum, entry) => sum + BigInt(entry.chargeAmountNanos), 0n);
760
- return {
761
- status: "rated",
762
- money: { currency: rateCard.currency, amountNanos: total.toString() },
763
- components
764
- };
1007
+ const output = rateOutputTokens(usage, usage.outputTokens, usage.inputTokens, rateCard);
1008
+ if (!Array.isArray(output))
1009
+ return output;
1010
+ return [...components, ...output];
1011
+ }
1012
+ function rateOutputTokens(usage, outputTokens, tierTokens, rateCard) {
1013
+ const imagesCoverTokens = rateCard.images !== undefined && (usage.outputImages ?? 0) > 0;
1014
+ const missing = [];
1015
+ if ((imagesCoverTokens || rateCard.imageOutput !== undefined) && usage.imageOutputTokens === undefined) {
1016
+ missing.push("tokens.output.image");
1017
+ }
1018
+ if (rateCard.audioOutput !== undefined && usage.audioOutputTokens === undefined) {
1019
+ missing.push("tokens.output.audio");
1020
+ }
1021
+ if (missing.length > 0) {
1022
+ return { status: "unpriceable", reason: "missing-usage", missingMeters: missing };
1023
+ }
1024
+ const covered = imagesCoverTokens ? usage.imageOutputTokens : 0;
1025
+ const media = [];
1026
+ if (!imagesCoverTokens && rateCard.imageOutput !== undefined && usage.imageOutputTokens > 0) {
1027
+ media.push(component("tokens.output.image", usage.imageOutputTokens, rateCard.imageOutput, tierTokens));
1028
+ }
1029
+ if (rateCard.audioOutput !== undefined && usage.audioOutputTokens > 0) {
1030
+ media.push(component("tokens.output.audio", usage.audioOutputTokens, rateCard.audioOutput, tierTokens));
1031
+ }
1032
+ if (covered === 0 && media.length === 0) {
1033
+ return [component("tokens.output.total", outputTokens, rateCard.output, tierTokens)];
1034
+ }
1035
+ const remainder = outputTokens - covered - media.reduce((sum, entry) => sum + Number(entry.quantity), 0);
1036
+ if (remainder < 0)
1037
+ return { status: "unpriceable", reason: "inconsistent-usage" };
1038
+ const text = usage.textOutputTokens;
1039
+ const reasoning = usage.reasoningOutputTokens;
1040
+ if (remainder > 0 && text === undefined) {
1041
+ return { status: "unpriceable", reason: "missing-usage", missingMeters: ["tokens.output.text"] };
1042
+ }
1043
+ if (remainder > 0 && text + (reasoning ?? 0) !== remainder) {
1044
+ return reasoning === undefined ? {
1045
+ status: "unpriceable",
1046
+ reason: "missing-usage",
1047
+ missingMeters: ["tokens.output.reasoning"]
1048
+ } : { status: "unpriceable", reason: "inconsistent-usage" };
1049
+ }
1050
+ return [
1051
+ ...remainder > 0 && text > 0 ? [component("tokens.output.text", text, rateCard.output, tierTokens)] : [],
1052
+ ...remainder > 0 && (reasoning ?? 0) > 0 ? [component("tokens.output.reasoning", reasoning, rateCard.output, tierTokens)] : [],
1053
+ ...media
1054
+ ];
765
1055
  }
766
1056
  function partitionInputUsage(usage, rateCard) {
767
1057
  const hasSpecificWrites = usage.cacheWrite5mInputTokens !== undefined || usage.cacheWrite1hInputTokens !== undefined;
@@ -842,13 +1132,16 @@ function validUsageCounters(usage) {
842
1132
  return Object.entries(usage).filter(([key]) => key !== "raw").every(([, value]) => value === undefined || Number.isSafeInteger(value) && value >= 0);
843
1133
  }
844
1134
  function component(meter, quantity, price, tierTokens) {
845
- const rate = decimalDollarsToNanos(resolvePrice(price, tierTokens));
1135
+ return componentAtRate(meter, quantity, decimalDollarsToNanos(resolvePrice(price, tierTokens)));
1136
+ }
1137
+ function componentAtRate(meter, quantity, rate, variant) {
846
1138
  const charge = (BigInt(quantity) * rate + 500000n) / 1000000n;
847
1139
  return {
848
1140
  meter,
849
1141
  quantity: quantity.toString(),
850
1142
  rateAmountNanosPerMillion: rate.toString(),
851
- chargeAmountNanos: charge.toString()
1143
+ chargeAmountNanos: charge.toString(),
1144
+ ...variant ? { variant } : {}
852
1145
  };
853
1146
  }
854
1147
  function resolvePrice(price, tokens) {
@@ -856,6 +1149,12 @@ function resolvePrice(price, tokens) {
856
1149
  return price;
857
1150
  return price.tiers.find((tier) => tokens >= tier.minTokens && (tier.maxTokens === undefined || tokens < tier.maxTokens))?.price ?? price.default;
858
1151
  }
1152
+ function scaledDecimal(value, exponent) {
1153
+ const [whole = "0", fraction = ""] = value.split(".");
1154
+ const kept = fraction.slice(0, exponent).padEnd(exponent, "0");
1155
+ const roundUp = Number(fraction[exponent] ?? "0") >= 5;
1156
+ return BigInt(whole) * 10n ** BigInt(exponent) + BigInt(kept) + (roundUp ? 1n : 0n);
1157
+ }
859
1158
  function decimalDollarsToNanos(value) {
860
1159
  const [whole = "0", fraction = ""] = value.split(".");
861
1160
  const nanos = fraction.slice(0, 9).padEnd(9, "0");
@@ -867,63 +1166,6 @@ function assertAmountNanos(value) {
867
1166
  throw new TypeError("[Sixb] Provider-reported model cost must use nonnegative amountNanos.");
868
1167
  }
869
1168
  }
870
- // src/models/rate-card.ts
871
- function defineModelRateCard2(rateCard) {
872
- assertRecord2(rateCard, "rate card");
873
- if (rateCard.currency !== "USD" || rateCard.unit !== "million-tokens") {
874
- throw new TypeError("[Sixb] Model rate cards must use USD per million tokens.");
875
- }
876
- return Object.freeze({
877
- currency: "USD",
878
- unit: "million-tokens",
879
- input: tokenPrice(rateCard.input),
880
- output: tokenPrice(rateCard.output),
881
- ...rateCard.cacheReadInput === undefined ? {} : { cacheReadInput: tokenPrice(rateCard.cacheReadInput) },
882
- ...rateCard.cacheWriteInput === undefined ? {} : { cacheWriteInput: tokenPrice(rateCard.cacheWriteInput) },
883
- ...rateCard.cacheWriteInput5m === undefined ? {} : { cacheWriteInput5m: tokenPrice(rateCard.cacheWriteInput5m) },
884
- ...rateCard.cacheWriteInput1h === undefined ? {} : { cacheWriteInput1h: tokenPrice(rateCard.cacheWriteInput1h) }
885
- });
886
- }
887
- function tokenPrice(value) {
888
- if (typeof value === "string")
889
- return price(value);
890
- assertRecord2(value, "token price");
891
- if (!Array.isArray(value.tiers))
892
- throw new TypeError("[Sixb] Model price tiers must be an array.");
893
- let previousMax = 0;
894
- return Object.freeze({
895
- default: price(value.default),
896
- tiers: Object.freeze(value.tiers.map((tier, index) => {
897
- assertRecord2(tier, "price tier");
898
- if (typeof tier.minTokens !== "number" || !Number.isSafeInteger(tier.minTokens) || tier.minTokens < 0) {
899
- throw new TypeError("[Sixb] Model price tier has an invalid minimum.");
900
- }
901
- if (index > 0 && tier.minTokens < previousMax) {
902
- throw new TypeError("[Sixb] Model price tiers must be ordered and nonoverlapping.");
903
- }
904
- if (tier.maxTokens !== undefined && (typeof tier.maxTokens !== "number" || !Number.isSafeInteger(tier.maxTokens) || tier.maxTokens <= tier.minTokens)) {
905
- throw new TypeError("[Sixb] Model price tier has an invalid maximum.");
906
- }
907
- previousMax = tier.maxTokens ?? Number.POSITIVE_INFINITY;
908
- return Object.freeze({
909
- minTokens: tier.minTokens,
910
- ...tier.maxTokens === undefined ? {} : { maxTokens: tier.maxTokens },
911
- price: price(tier.price)
912
- });
913
- }))
914
- });
915
- }
916
- function price(value) {
917
- if (typeof value !== "string" || !/^(?:0|[1-9]\d*)(?:\.\d+)?$/.test(value)) {
918
- throw new TypeError("[Sixb] Model price must be a nonnegative decimal string.");
919
- }
920
- return value;
921
- }
922
- function assertRecord2(value, field) {
923
- if (value === null || typeof value !== "object" || Array.isArray(value)) {
924
- throw new TypeError(`[Sixb] Model ${field} must be an object.`);
925
- }
926
- }
927
- export { TranscriptionModelResponseError2, indexModelBindings, assertTranscriptionModel, assertDecisionContent, assertDecisionQuestions, assertDecisionModel, assertDecisionSupport, validateDecisionAnswers, defineLanguageModel2, assertRerankingModel, validateRerankingResults, RerankingModelResponseError2, createModelCatalog2, DecisionModelResponseError2, decisionOutput2, question2, estimateModelCall, estimateModelReservation2, rateModelCall2, defineModelRateCard2 };
1169
+ export { TranscriptionModelResponseError2, SpeechModelResponseError2, indexModelBindings, assertTranscriptionModel, assertSpeechModel, assertDecisionContent, assertDecisionQuestions, assertDecisionModel, assertDecisionSupport, supportsQuestion, validateDecisionAnswers, assertImageModel, assertRerankingModel, validateRerankingResults, RerankingModelResponseError2, LANGUAGE_MODEL_TIERS2, isLanguageModelTier2, formatLanguageModelTiers2, createModelCatalog2, selectLanguageModel2, assertValidLanguageModel, DecisionModelResponseError2, decisionOutput2, question2, ImageModelResponseError2, defineModelRateCard2, estimateModelCall, estimateModelReservation2, rateModelCall2 };
928
1170
 
929
- //# debugId=728EDA0657BA3E0264756E2164756E21
1171
+ //# debugId=E4BBE679612780A264756E2164756E21