@sixb/core 0.1.5 → 0.1.7

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 (564) hide show
  1. package/dist/actions/index.js +37 -33
  2. package/dist/actions/index.js.map +1 -1
  3. package/dist/actions/types/definitions.d.ts +8 -2
  4. package/dist/actions/types/definitions.d.ts.map +1 -1
  5. package/dist/actions/worker.js +3 -3
  6. package/dist/agents/adapters.d.ts +33 -76
  7. package/dist/agents/adapters.d.ts.map +1 -1
  8. package/dist/agents/authority.d.ts +22 -6
  9. package/dist/agents/authority.d.ts.map +1 -1
  10. package/dist/agents/builders.d.ts +3 -11
  11. package/dist/agents/builders.d.ts.map +1 -1
  12. package/dist/agents/context.js +2 -2
  13. package/dist/agents/dispatch.d.ts +9 -1
  14. package/dist/agents/dispatch.d.ts.map +1 -1
  15. package/dist/agents/errors.d.ts +2 -2
  16. package/dist/agents/errors.d.ts.map +1 -1
  17. package/dist/agents/execution.d.ts +9 -10
  18. package/dist/agents/execution.d.ts.map +1 -1
  19. package/dist/agents/ids.d.ts +4 -0
  20. package/dist/agents/ids.d.ts.map +1 -1
  21. package/dist/agents/index.d.ts +13 -9
  22. package/dist/agents/index.d.ts.map +1 -1
  23. package/dist/agents/index.js +80 -68
  24. package/dist/agents/index.js.map +1 -1
  25. package/dist/agents/message.d.ts +17 -10
  26. package/dist/agents/message.d.ts.map +1 -1
  27. package/dist/agents/model-loop.d.ts +56 -0
  28. package/dist/agents/model-loop.d.ts.map +1 -0
  29. package/dist/agents/reference.d.ts +4 -0
  30. package/dist/agents/reference.d.ts.map +1 -0
  31. package/dist/agents/request.d.ts +10 -8
  32. package/dist/agents/request.d.ts.map +1 -1
  33. package/dist/agents/retired-config.d.ts +4 -0
  34. package/dist/agents/retired-config.d.ts.map +1 -0
  35. package/dist/agents/streams.d.ts +13 -8
  36. package/dist/agents/streams.d.ts.map +1 -1
  37. package/dist/agents/streams.js +7 -5
  38. package/dist/agents/streams.js.map +1 -1
  39. package/dist/agents/tool-catalog.d.ts +9 -0
  40. package/dist/agents/tool-catalog.d.ts.map +1 -0
  41. package/dist/agents/tool-definition.d.ts +1 -0
  42. package/dist/agents/tool-definition.d.ts.map +1 -1
  43. package/dist/agents/types.d.ts +31 -68
  44. package/dist/agents/types.d.ts.map +1 -1
  45. package/dist/agents/validation.d.ts +4 -10
  46. package/dist/agents/validation.d.ts.map +1 -1
  47. package/dist/ai-usage/execution.d.ts +53 -0
  48. package/dist/ai-usage/execution.d.ts.map +1 -0
  49. package/dist/ai-usage/index.d.ts +3 -0
  50. package/dist/ai-usage/index.d.ts.map +1 -0
  51. package/dist/auth/index.d.ts +1 -1
  52. package/dist/auth/index.d.ts.map +1 -1
  53. package/dist/auth/index.js +7 -7
  54. package/dist/auth/runtime.d.ts.map +1 -1
  55. package/dist/auth/strategy.d.ts +1 -1
  56. package/dist/auth/strategy.d.ts.map +1 -1
  57. package/dist/auth/types.d.ts +13 -0
  58. package/dist/auth/types.d.ts.map +1 -1
  59. package/dist/authorization/decision.d.ts +5 -2
  60. package/dist/authorization/decision.d.ts.map +1 -1
  61. package/dist/authorization/grant-kinds.d.ts +24 -8
  62. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  63. package/dist/authorization/index.d.ts +1 -1
  64. package/dist/authorization/index.d.ts.map +1 -1
  65. package/dist/authorization/index.js +8 -6
  66. package/dist/authorization/index.js.map +1 -1
  67. package/dist/authorization/resolve.d.ts +3 -3
  68. package/dist/authorization/resolve.d.ts.map +1 -1
  69. package/dist/authorization/types.d.ts +7 -5
  70. package/dist/authorization/types.d.ts.map +1 -1
  71. package/dist/blob-storage/browser.js +2 -2
  72. package/dist/blob-storage/index.js +3 -3
  73. package/dist/bootstrap/discovery.d.ts +1 -7
  74. package/dist/bootstrap/discovery.d.ts.map +1 -1
  75. package/dist/bootstrap/index.js +52 -48
  76. package/dist/bootstrap/index.js.map +1 -1
  77. package/dist/broker/index.js +2 -2
  78. package/dist/{chunk-zqysyfjt.js → chunk-08m3b6w8.js} +1 -1
  79. package/dist/{chunk-xdf9yswn.js → chunk-08twe8m6.js} +93 -8
  80. package/dist/chunk-08twe8m6.js.map +12 -0
  81. package/dist/{chunk-xkthy56g.js → chunk-1kamz6j0.js} +1 -1
  82. package/dist/{chunk-h6h91mfy.js → chunk-2b5qtban.js} +12 -12
  83. package/dist/{chunk-h6h91mfy.js.map → chunk-2b5qtban.js.map} +3 -3
  84. package/dist/{chunk-0172wgm9.js → chunk-2xns679x.js} +10 -2
  85. package/dist/{chunk-0172wgm9.js.map → chunk-2xns679x.js.map} +3 -3
  86. package/dist/{chunk-f83ka50g.js → chunk-37wk412q.js} +86 -28
  87. package/dist/{chunk-f83ka50g.js.map → chunk-37wk412q.js.map} +8 -8
  88. package/dist/{chunk-6d5xdj1q.js → chunk-3fqt22c4.js} +4 -4
  89. package/dist/{chunk-t9xghkva.js → chunk-3kv70xwp.js} +3 -2
  90. package/dist/{chunk-t9xghkva.js.map → chunk-3kv70xwp.js.map} +3 -3
  91. package/dist/{chunk-z3zp0bj1.js → chunk-407j3msh.js} +1 -1
  92. package/dist/{chunk-rhrbz7d4.js → chunk-4a849fr1.js} +1 -1
  93. package/dist/{chunk-62c7t4jc.js → chunk-4nxeacx7.js} +1 -1
  94. package/dist/{chunk-cy0n5dms.js → chunk-5jcdmjam.js} +1 -1
  95. package/dist/{chunk-819wnjz8.js → chunk-64sr682n.js} +7 -7
  96. package/dist/{chunk-v0egge8b.js → chunk-6ed5bwnd.js} +666 -81
  97. package/dist/chunk-6ed5bwnd.js.map +57 -0
  98. package/dist/{chunk-x2yw73hy.js → chunk-7ds9620f.js} +1 -1
  99. package/dist/{chunk-dm72y8wt.js → chunk-7y0f6rf1.js} +29 -16
  100. package/dist/chunk-7y0f6rf1.js.map +10 -0
  101. package/dist/{chunk-72q2y8hn.js → chunk-8tsf6dmc.js} +2 -2
  102. package/dist/{chunk-72q2y8hn.js.map → chunk-8tsf6dmc.js.map} +3 -3
  103. package/dist/{chunk-tbv03sx2.js → chunk-9aehf39w.js} +7 -7
  104. package/dist/{chunk-ezake7g1.js → chunk-agsvg9ar.js} +1 -1
  105. package/dist/{chunk-rdeagz6b.js → chunk-atmkaf60.js} +1 -1
  106. package/dist/{chunk-rdeagz6b.js.map → chunk-atmkaf60.js.map} +2 -2
  107. package/dist/chunk-c15dr03f.js +43 -0
  108. package/dist/chunk-c15dr03f.js.map +10 -0
  109. package/dist/{chunk-78c6xvyr.js → chunk-d2ndstdf.js} +8 -6
  110. package/dist/{chunk-78c6xvyr.js.map → chunk-d2ndstdf.js.map} +2 -2
  111. package/dist/{chunk-rnshztfq.js → chunk-d63tybny.js} +2 -2
  112. package/dist/{chunk-t0jjkep3.js → chunk-d8qkxt2v.js} +4 -2
  113. package/dist/chunk-d8qkxt2v.js.map +10 -0
  114. package/dist/{chunk-vybf6pkp.js → chunk-dbc80ad7.js} +1 -1
  115. package/dist/{chunk-4gz41why.js → chunk-dqn23610.js} +1 -1
  116. package/dist/{chunk-z3ga9q5m.js → chunk-e4rvtvpw.js} +13 -11
  117. package/dist/{chunk-z3ga9q5m.js.map → chunk-e4rvtvpw.js.map} +2 -2
  118. package/dist/{chunk-h9kxd41f.js → chunk-gbrpsx4m.js} +19 -6
  119. package/dist/chunk-gbrpsx4m.js.map +11 -0
  120. package/dist/{chunk-84h6qhmp.js → chunk-h0knpbz5.js} +468 -1236
  121. package/dist/chunk-h0knpbz5.js.map +38 -0
  122. package/dist/{chunk-zp2v2rv6.js → chunk-ha58tjtt.js} +6 -6
  123. package/dist/{chunk-f6erf2vv.js → chunk-hdz94br2.js} +2 -2
  124. package/dist/chunk-jecn6t54.js +307 -0
  125. package/dist/chunk-jecn6t54.js.map +12 -0
  126. package/dist/{chunk-dsrkgtnh.js → chunk-jq43kdvk.js} +1 -1
  127. package/dist/{chunk-wtmzkcht.js → chunk-k34z5rvh.js} +1 -1
  128. package/dist/{chunk-htq0qh7z.js → chunk-ka3a2ft3.js} +2 -2
  129. package/dist/{chunk-4h947jd8.js → chunk-kt81c11h.js} +2 -2
  130. package/dist/chunk-n2arzn6e.js +1745 -0
  131. package/dist/chunk-n2arzn6e.js.map +20 -0
  132. package/dist/{chunk-f2rt4vkh.js → chunk-n2w475r0.js} +3 -3
  133. package/dist/{chunk-t8t39h7v.js → chunk-n6jxh8sw.js} +10 -2
  134. package/dist/chunk-n6jxh8sw.js.map +10 -0
  135. package/dist/{chunk-drjqm1aa.js → chunk-p03r0h5s.js} +310 -28
  136. package/dist/chunk-p03r0h5s.js.map +16 -0
  137. package/dist/chunk-p2vqaxkc.js +528 -0
  138. package/dist/chunk-p2vqaxkc.js.map +15 -0
  139. package/dist/{chunk-gadsm794.js → chunk-qjycjdj6.js} +84 -11
  140. package/dist/chunk-qjycjdj6.js.map +12 -0
  141. package/dist/chunk-qjzp9xyb.js +286 -0
  142. package/dist/chunk-qjzp9xyb.js.map +12 -0
  143. package/dist/{chunk-am6eczah.js → chunk-qv38twt8.js} +50 -69
  144. package/dist/{chunk-am6eczah.js.map → chunk-qv38twt8.js.map} +8 -8
  145. package/dist/{chunk-bhxaq2nn.js → chunk-qw9gvjv5.js} +1 -1
  146. package/dist/{chunk-r0rry8dn.js → chunk-rp1mvzb4.js} +6 -6
  147. package/dist/{chunk-tkdscva6.js → chunk-rre42skh.js} +187 -18
  148. package/dist/chunk-rre42skh.js.map +39 -0
  149. package/dist/{chunk-ghteq96b.js → chunk-s5y30bc9.js} +2 -2
  150. package/dist/{chunk-a31h57d5.js → chunk-tn7xcs2n.js} +2 -2
  151. package/dist/{chunk-6gjqgd3d.js → chunk-tpnd31c1.js} +2 -1
  152. package/dist/chunk-tpnd31c1.js.map +11 -0
  153. package/dist/chunk-trxxmgnf.js +68 -0
  154. package/dist/chunk-trxxmgnf.js.map +11 -0
  155. package/dist/{chunk-ea73pzk7.js → chunk-vjjv9mrb.js} +2 -2
  156. package/dist/{chunk-8b55ygje.js → chunk-w3e09qqk.js} +1 -1
  157. package/dist/{chunk-ckxfnx7f.js → chunk-wjgm6jjt.js} +2 -2
  158. package/dist/{chunk-3j7573mj.js → chunk-x0qhkqje.js} +2 -2
  159. package/dist/{chunk-dysw7nsm.js → chunk-xdpwpkha.js} +2 -2
  160. package/dist/{chunk-1q02e95s.js → chunk-y35ma3mj.js} +11 -16
  161. package/dist/{chunk-1q02e95s.js.map → chunk-y35ma3mj.js.map} +3 -4
  162. package/dist/{chunk-qewtks41.js → chunk-z2sery1b.js} +64 -1
  163. package/dist/{chunk-qewtks41.js.map → chunk-z2sery1b.js.map} +3 -3
  164. package/dist/error-reporting/internal.js +4 -4
  165. package/dist/error-reporting/types.d.ts +7 -2
  166. package/dist/error-reporting/types.d.ts.map +1 -1
  167. package/dist/errors/catalog.d.ts +8 -0
  168. package/dist/errors/catalog.d.ts.map +1 -1
  169. package/dist/errors/internal.js +2 -2
  170. package/dist/events/index.js +4 -4
  171. package/dist/execution/agent.d.ts +18 -9
  172. package/dist/execution/agent.d.ts.map +1 -1
  173. package/dist/execution/agent.js +52 -43
  174. package/dist/execution/agent.js.map +1 -1
  175. package/dist/execution/authorization.d.ts +14 -4
  176. package/dist/execution/authorization.d.ts.map +1 -1
  177. package/dist/execution/primitive.js +45 -43
  178. package/dist/execution/primitive.js.map +2 -2
  179. package/dist/execution/request.d.ts +3 -1
  180. package/dist/execution/request.d.ts.map +1 -1
  181. package/dist/execution/request.js +46 -44
  182. package/dist/execution/request.js.map +3 -3
  183. package/dist/execution/types.d.ts +1 -1
  184. package/dist/execution/types.d.ts.map +1 -1
  185. package/dist/http/api-routes.d.ts.map +1 -1
  186. package/dist/http/index.js +1 -1
  187. package/dist/index.d.ts +9 -6
  188. package/dist/index.d.ts.map +1 -1
  189. package/dist/index.js +82 -77
  190. package/dist/index.js.map +1 -1
  191. package/dist/json.d.ts +2 -0
  192. package/dist/json.d.ts.map +1 -1
  193. package/dist/lake-storage/index.js +5 -5
  194. package/dist/logging/index.js +3 -3
  195. package/dist/logging/types.js +2 -2
  196. package/dist/materialization/index.js +2 -2
  197. package/dist/materializer/index.js +33 -29
  198. package/dist/materializer/index.js.map +1 -1
  199. package/dist/models/catalog.d.ts +40 -0
  200. package/dist/models/catalog.d.ts.map +1 -0
  201. package/dist/models/definitions.d.ts +25 -0
  202. package/dist/models/definitions.d.ts.map +1 -0
  203. package/dist/models/errors.d.ts +52 -0
  204. package/dist/models/errors.d.ts.map +1 -0
  205. package/dist/models/events.d.ts +192 -0
  206. package/dist/models/events.d.ts.map +1 -0
  207. package/dist/models/index.d.ts +17 -39
  208. package/dist/models/index.d.ts.map +1 -1
  209. package/dist/models/index.js +50 -0
  210. package/dist/models/index.js.map +9 -0
  211. package/dist/models/language-model.d.ts +90 -0
  212. package/dist/models/language-model.d.ts.map +1 -0
  213. package/dist/models/messages.d.ts +74 -0
  214. package/dist/models/messages.d.ts.map +1 -0
  215. package/dist/models/pricing.d.ts +69 -0
  216. package/dist/models/pricing.d.ts.map +1 -0
  217. package/dist/models/rate-card.d.ts +24 -0
  218. package/dist/models/rate-card.d.ts.map +1 -0
  219. package/dist/models/tools.d.ts +24 -0
  220. package/dist/models/tools.d.ts.map +1 -0
  221. package/dist/objects/index.js +38 -34
  222. package/dist/objects/index.js.map +1 -1
  223. package/dist/objects/query/index.js +32 -28
  224. package/dist/objects/query/index.js.map +1 -1
  225. package/dist/ontology/index.js +5 -5
  226. package/dist/ontology/internal.js +4 -4
  227. package/dist/pipelines/index.js +37 -35
  228. package/dist/pipelines/index.js.map +1 -1
  229. package/dist/projections/internal.js +35 -31
  230. package/dist/projections/internal.js.map +1 -1
  231. package/dist/queues/in-memory.d.ts +3 -2
  232. package/dist/queues/in-memory.d.ts.map +1 -1
  233. package/dist/queues/index.d.ts +3 -1
  234. package/dist/queues/index.d.ts.map +1 -1
  235. package/dist/queues/index.js +1 -1
  236. package/dist/queues/types.d.ts +15 -3
  237. package/dist/queues/types.d.ts.map +1 -1
  238. package/dist/runtime/create.d.ts +4 -4
  239. package/dist/runtime/create.d.ts.map +1 -1
  240. package/dist/runtime/definitions.d.ts +2 -2
  241. package/dist/runtime/definitions.d.ts.map +1 -1
  242. package/dist/runtime/host.d.ts +3 -2
  243. package/dist/runtime/host.d.ts.map +1 -1
  244. package/dist/runtime/resolve-definitions.d.ts +2 -2
  245. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  246. package/dist/runtime/sixb.d.ts +4 -2
  247. package/dist/runtime/sixb.d.ts.map +1 -1
  248. package/dist/security/every.d.ts +1 -4
  249. package/dist/security/every.d.ts.map +1 -1
  250. package/dist/security/grants.d.ts +6 -5
  251. package/dist/security/grants.d.ts.map +1 -1
  252. package/dist/security/index.d.ts +1 -1
  253. package/dist/security/index.d.ts.map +1 -1
  254. package/dist/security/registry.d.ts +1 -1
  255. package/dist/security/registry.d.ts.map +1 -1
  256. package/dist/security/types.d.ts +13 -5
  257. package/dist/security/types.d.ts.map +1 -1
  258. package/dist/security/validation.d.ts +4 -2
  259. package/dist/security/validation.d.ts.map +1 -1
  260. package/dist/storage/action-runs/failure.js +3 -3
  261. package/dist/storage/action-runs/provider.js +2 -2
  262. package/dist/storage/agents/errors.d.ts +1 -1
  263. package/dist/storage/agents/errors.d.ts.map +1 -1
  264. package/dist/storage/agents/in-memory.d.ts +3 -2
  265. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  266. package/dist/storage/agents/index.d.ts +1 -1
  267. package/dist/storage/agents/index.d.ts.map +1 -1
  268. package/dist/storage/agents/provider.d.ts +11 -4
  269. package/dist/storage/agents/provider.d.ts.map +1 -1
  270. package/dist/storage/agents/provider.js +18 -15
  271. package/dist/storage/agents/provider.js.map +1 -1
  272. package/dist/storage/agents/types.d.ts +65 -17
  273. package/dist/storage/agents/types.d.ts.map +1 -1
  274. package/dist/storage/ai-cost/analytics.d.ts +2 -1
  275. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  276. package/dist/storage/ai-cost/codec.d.ts +3 -2
  277. package/dist/storage/ai-cost/codec.d.ts.map +1 -1
  278. package/dist/storage/ai-cost/groups.d.ts +51 -0
  279. package/dist/storage/ai-cost/groups.d.ts.map +1 -0
  280. package/dist/storage/ai-cost/in-memory.d.ts +11 -1
  281. package/dist/storage/ai-cost/in-memory.d.ts.map +1 -1
  282. package/dist/storage/ai-cost/index.d.ts +1 -1
  283. package/dist/storage/ai-cost/index.d.ts.map +1 -1
  284. package/dist/storage/ai-cost/provider.d.ts +2 -0
  285. package/dist/storage/ai-cost/provider.d.ts.map +1 -1
  286. package/dist/storage/ai-cost/provider.js +29 -13
  287. package/dist/storage/ai-cost/provider.js.map +3 -3
  288. package/dist/storage/ai-cost/types.d.ts +64 -15
  289. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  290. package/dist/storage/ai-cost/validation.d.ts +2 -1
  291. package/dist/storage/ai-cost/validation.d.ts.map +1 -1
  292. package/dist/storage/ai-limits/enforcement.d.ts +14 -0
  293. package/dist/storage/ai-limits/enforcement.d.ts.map +1 -0
  294. package/dist/storage/ai-limits/enforcement.js +21 -0
  295. package/dist/storage/ai-limits/enforcement.js.map +9 -0
  296. package/dist/storage/ai-limits/errors.d.ts +8 -0
  297. package/dist/storage/ai-limits/errors.d.ts.map +1 -0
  298. package/dist/storage/ai-limits/in-memory.d.ts +78 -0
  299. package/dist/storage/ai-limits/in-memory.d.ts.map +1 -0
  300. package/dist/storage/ai-limits/index.d.ts +7 -0
  301. package/dist/storage/ai-limits/index.d.ts.map +1 -0
  302. package/dist/storage/ai-limits/period.d.ts +4 -0
  303. package/dist/storage/ai-limits/period.d.ts.map +1 -0
  304. package/dist/storage/ai-limits/provider.d.ts +85 -0
  305. package/dist/storage/ai-limits/provider.d.ts.map +1 -0
  306. package/dist/storage/ai-limits/provider.js +62 -0
  307. package/dist/storage/ai-limits/provider.js.map +9 -0
  308. package/dist/storage/ai-limits/types.d.ts +175 -0
  309. package/dist/storage/ai-limits/types.d.ts.map +1 -0
  310. package/dist/storage/ai-usage/in-memory.d.ts +4 -0
  311. package/dist/storage/ai-usage/in-memory.d.ts.map +1 -1
  312. package/dist/storage/ai-usage/record.d.ts.map +1 -1
  313. package/dist/storage/ai-usage/types.d.ts +6 -2
  314. package/dist/storage/ai-usage/types.d.ts.map +1 -1
  315. package/dist/storage/auth/errors.d.ts +1 -1
  316. package/dist/storage/auth/errors.d.ts.map +1 -1
  317. package/dist/storage/auth/in-memory/auth-storage.d.ts +4 -1
  318. package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
  319. package/dist/storage/auth/in-memory/device-authorizations.d.ts +29 -0
  320. package/dist/storage/auth/in-memory/device-authorizations.d.ts.map +1 -0
  321. package/dist/storage/auth/in-memory/shared.d.ts +3 -1
  322. package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
  323. package/dist/storage/auth/index.d.ts +2 -1
  324. package/dist/storage/auth/index.d.ts.map +1 -1
  325. package/dist/storage/auth/types.d.ts +66 -0
  326. package/dist/storage/auth/types.d.ts.map +1 -1
  327. package/dist/storage/connector-connections/provider.js +2 -2
  328. package/dist/storage/executions/provider.js +1 -1
  329. package/dist/storage/executions/run-link.d.ts +7 -2
  330. package/dist/storage/executions/run-link.d.ts.map +1 -1
  331. package/dist/storage/executions/validation.d.ts.map +1 -1
  332. package/dist/storage/in-memory/index.d.ts +4 -0
  333. package/dist/storage/in-memory/index.d.ts.map +1 -1
  334. package/dist/storage/index.d.ts +8 -5
  335. package/dist/storage/index.d.ts.map +1 -1
  336. package/dist/storage/index.js +51 -38
  337. package/dist/storage/index.js.map +1 -1
  338. package/dist/storage/ontology/in-memory/materializations.d.ts +4 -3
  339. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  340. package/dist/storage/ontology/index.d.ts +1 -1
  341. package/dist/storage/ontology/index.d.ts.map +1 -1
  342. package/dist/storage/ontology/materializations.d.ts +7 -3
  343. package/dist/storage/ontology/materializations.d.ts.map +1 -1
  344. package/dist/storage/ontology/provider.d.ts +2 -2
  345. package/dist/storage/ontology/provider.d.ts.map +1 -1
  346. package/dist/storage/ontology/provider.js +3 -3
  347. package/dist/storage/pipeline-runs/provider.js +2 -2
  348. package/dist/storage/projection-runs/provider.js +4 -4
  349. package/dist/storage/sync-runs/provider.js +2 -2
  350. package/dist/storage/types.d.ts +5 -1
  351. package/dist/storage/types.d.ts.map +1 -1
  352. package/dist/storage/webhook-runs/provider.js +2 -2
  353. package/dist/storage/workflow-runs/provider.d.ts +1 -1
  354. package/dist/storage/workflow-runs/provider.js +10 -11
  355. package/dist/storage/workflow-runs/provider.js.map +1 -1
  356. package/dist/storage/workflow-runs/types.d.ts +5 -4
  357. package/dist/storage/workflow-runs/types.d.ts.map +1 -1
  358. package/dist/syncs/index.js +37 -35
  359. package/dist/syncs/index.js.map +1 -1
  360. package/dist/testing/agent-execution.d.ts +3 -1
  361. package/dist/testing/agent-execution.d.ts.map +1 -1
  362. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  363. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  364. package/dist/testing/ai-limit-storage-contract.d.ts +18 -0
  365. package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -0
  366. package/dist/testing/ai-model-call-groups-contract.d.ts +6 -0
  367. package/dist/testing/ai-model-call-groups-contract.d.ts.map +1 -0
  368. package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
  369. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  370. package/dist/testing/index.d.ts +2 -0
  371. package/dist/testing/index.d.ts.map +1 -1
  372. package/dist/testing/index.js +3758 -1945
  373. package/dist/testing/index.js.map +15 -13
  374. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  375. package/dist/testing/queues-contract.d.ts.map +1 -1
  376. package/dist/webhooks/internal.js +32 -28
  377. package/dist/webhooks/internal.js.map +2 -2
  378. package/dist/workers/index.js +2 -2
  379. package/dist/workflows/agent-step-identity.d.ts +3 -0
  380. package/dist/workflows/agent-step-identity.d.ts.map +1 -0
  381. package/dist/workflows/builders.d.ts +2 -3
  382. package/dist/workflows/builders.d.ts.map +1 -1
  383. package/dist/workflows/execution.d.ts +1 -1
  384. package/dist/workflows/execution.d.ts.map +1 -1
  385. package/dist/workflows/failure.d.ts +1 -1
  386. package/dist/workflows/failure.d.ts.map +1 -1
  387. package/dist/workflows/index.d.ts +3 -2
  388. package/dist/workflows/index.d.ts.map +1 -1
  389. package/dist/workflows/index.js +53 -45
  390. package/dist/workflows/index.js.map +1 -1
  391. package/dist/workflows/types.d.ts +26 -11
  392. package/dist/workflows/types.d.ts.map +1 -1
  393. package/dist/workflows/validation.d.ts +7 -1
  394. package/dist/workflows/validation.d.ts.map +1 -1
  395. package/package.json +19 -4
  396. package/src/actions/types/definitions.ts +24 -2
  397. package/src/agents/adapters.ts +109 -115
  398. package/src/agents/authority.ts +214 -32
  399. package/src/agents/builders.ts +3 -50
  400. package/src/agents/context-compaction.ts +4 -0
  401. package/src/agents/dispatch.ts +59 -2
  402. package/src/agents/errors.ts +5 -2
  403. package/src/agents/execution.ts +53 -52
  404. package/src/agents/ids.ts +16 -1
  405. package/src/agents/index.ts +23 -11
  406. package/src/agents/message.ts +18 -9
  407. package/src/agents/model-loop.ts +1023 -0
  408. package/src/agents/reference.ts +7 -0
  409. package/src/agents/request.ts +141 -74
  410. package/src/agents/retired-config.ts +20 -0
  411. package/src/agents/streams.ts +45 -19
  412. package/src/agents/tool-catalog.ts +21 -0
  413. package/src/agents/tool-definition.ts +23 -0
  414. package/src/agents/types.ts +39 -81
  415. package/src/agents/validation.ts +34 -180
  416. package/src/ai-usage/execution.ts +196 -0
  417. package/src/ai-usage/index.ts +15 -0
  418. package/src/auth/index.ts +1 -0
  419. package/src/auth/runtime.ts +8 -0
  420. package/src/auth/strategy.ts +1 -0
  421. package/src/auth/types.ts +14 -0
  422. package/src/authorization/decision.ts +27 -10
  423. package/src/authorization/grant-kinds.ts +62 -15
  424. package/src/authorization/index.ts +1 -0
  425. package/src/authorization/resolve.ts +12 -5
  426. package/src/authorization/types.ts +7 -5
  427. package/src/bootstrap/discovery.ts +0 -3
  428. package/src/error-reporting/types.ts +4 -2
  429. package/src/errors/catalog.ts +8 -0
  430. package/src/execution/agent.ts +129 -22
  431. package/src/execution/authorization.ts +48 -18
  432. package/src/execution/request.ts +4 -1
  433. package/src/execution/types.ts +1 -1
  434. package/src/http/api-routes.ts +63 -0
  435. package/src/index.ts +36 -7
  436. package/src/json.ts +9 -0
  437. package/src/models/catalog.ts +137 -0
  438. package/src/models/definitions.ts +202 -0
  439. package/src/models/errors.ts +83 -0
  440. package/src/models/events.ts +198 -0
  441. package/src/models/index.ts +89 -71
  442. package/src/models/language-model.ts +143 -0
  443. package/src/models/messages.ts +78 -0
  444. package/src/models/pricing.ts +390 -0
  445. package/src/models/rate-card.ts +101 -0
  446. package/src/models/tools.ts +29 -0
  447. package/src/queues/in-memory.ts +5 -0
  448. package/src/queues/index.ts +11 -0
  449. package/src/queues/types.ts +20 -3
  450. package/src/runtime/create.ts +7 -5
  451. package/src/runtime/definitions.ts +2 -2
  452. package/src/runtime/host.ts +3 -2
  453. package/src/runtime/resolve-definitions.ts +13 -36
  454. package/src/runtime/sixb.ts +6 -8
  455. package/src/security/every.ts +0 -4
  456. package/src/security/grants.ts +55 -11
  457. package/src/security/index.ts +2 -0
  458. package/src/security/registry.ts +6 -5
  459. package/src/security/types.ts +15 -4
  460. package/src/security/validation.ts +30 -9
  461. package/src/storage/agents/errors.ts +1 -0
  462. package/src/storage/agents/in-memory.ts +121 -11
  463. package/src/storage/agents/index.ts +7 -0
  464. package/src/storage/agents/provider.ts +150 -6
  465. package/src/storage/agents/types.ts +73 -16
  466. package/src/storage/ai-cost/analytics.ts +63 -6
  467. package/src/storage/ai-cost/codec.ts +37 -12
  468. package/src/storage/ai-cost/groups.ts +248 -0
  469. package/src/storage/ai-cost/in-memory.ts +42 -0
  470. package/src/storage/ai-cost/index.ts +6 -0
  471. package/src/storage/ai-cost/provider.ts +7 -0
  472. package/src/storage/ai-cost/types.ts +76 -14
  473. package/src/storage/ai-cost/validation.ts +147 -17
  474. package/src/storage/ai-limits/enforcement.ts +68 -0
  475. package/src/storage/ai-limits/errors.ts +23 -0
  476. package/src/storage/ai-limits/in-memory.ts +671 -0
  477. package/src/storage/ai-limits/index.ts +31 -0
  478. package/src/storage/ai-limits/period.ts +11 -0
  479. package/src/storage/ai-limits/provider.ts +430 -0
  480. package/src/storage/ai-limits/types.ts +195 -0
  481. package/src/storage/ai-usage/in-memory.ts +13 -0
  482. package/src/storage/ai-usage/record.ts +17 -0
  483. package/src/storage/ai-usage/types.ts +6 -2
  484. package/src/storage/auth/errors.ts +6 -0
  485. package/src/storage/auth/in-memory/auth-storage.ts +69 -0
  486. package/src/storage/auth/in-memory/device-authorizations.ts +145 -0
  487. package/src/storage/auth/in-memory/shared.ts +7 -0
  488. package/src/storage/auth/index.ts +7 -0
  489. package/src/storage/auth/types.ts +73 -0
  490. package/src/storage/executions/run-link.ts +16 -6
  491. package/src/storage/executions/validation.ts +36 -6
  492. package/src/storage/in-memory/index.ts +48 -4
  493. package/src/storage/index.ts +52 -1
  494. package/src/storage/ontology/in-memory/materializations.ts +34 -22
  495. package/src/storage/ontology/index.ts +1 -0
  496. package/src/storage/ontology/materializations.ts +8 -3
  497. package/src/storage/ontology/provider.ts +2 -2
  498. package/src/storage/types.ts +37 -0
  499. package/src/storage/workflow-runs/in-memory.ts +3 -3
  500. package/src/storage/workflow-runs/provider.ts +2 -2
  501. package/src/storage/workflow-runs/types.ts +6 -3
  502. package/src/testing/agent-execution.ts +40 -28
  503. package/src/testing/agent-storage-contract.ts +249 -28
  504. package/src/testing/ai-cost-storage-contract.ts +96 -8
  505. package/src/testing/ai-limit-storage-contract.ts +1134 -0
  506. package/src/testing/ai-model-call-groups-contract.ts +353 -0
  507. package/src/testing/ai-usage-storage-contract.ts +31 -0
  508. package/src/testing/auth-storage-contract.ts +85 -0
  509. package/src/testing/execution-storage-contract.ts +2 -2
  510. package/src/testing/index.ts +10 -0
  511. package/src/testing/materializer-storage-contract.ts +170 -2
  512. package/src/testing/queues-contract.ts +36 -1
  513. package/src/workflows/agent-step-identity.ts +4 -0
  514. package/src/workflows/builders.ts +95 -9
  515. package/src/workflows/execution.ts +2 -2
  516. package/src/workflows/failure.ts +2 -2
  517. package/src/workflows/index.ts +3 -0
  518. package/src/workflows/types.ts +23 -11
  519. package/src/workflows/validation.ts +100 -7
  520. package/dist/chunk-6gjqgd3d.js.map +0 -11
  521. package/dist/chunk-84h6qhmp.js.map +0 -46
  522. package/dist/chunk-a09jx26t.js +0 -55
  523. package/dist/chunk-a09jx26t.js.map +0 -11
  524. package/dist/chunk-dm72y8wt.js.map +0 -10
  525. package/dist/chunk-drjqm1aa.js.map +0 -15
  526. package/dist/chunk-gadsm794.js.map +0 -11
  527. package/dist/chunk-h9kxd41f.js.map +0 -11
  528. package/dist/chunk-nzw7sm3b.js +0 -137
  529. package/dist/chunk-nzw7sm3b.js.map +0 -10
  530. package/dist/chunk-t0jjkep3.js.map +0 -10
  531. package/dist/chunk-t8t39h7v.js.map +0 -10
  532. package/dist/chunk-tkdscva6.js.map +0 -37
  533. package/dist/chunk-v0egge8b.js.map +0 -56
  534. package/dist/chunk-xdf9yswn.js.map +0 -11
  535. /package/dist/{chunk-zqysyfjt.js.map → chunk-08m3b6w8.js.map} +0 -0
  536. /package/dist/{chunk-xkthy56g.js.map → chunk-1kamz6j0.js.map} +0 -0
  537. /package/dist/{chunk-6d5xdj1q.js.map → chunk-3fqt22c4.js.map} +0 -0
  538. /package/dist/{chunk-z3zp0bj1.js.map → chunk-407j3msh.js.map} +0 -0
  539. /package/dist/{chunk-rhrbz7d4.js.map → chunk-4a849fr1.js.map} +0 -0
  540. /package/dist/{chunk-62c7t4jc.js.map → chunk-4nxeacx7.js.map} +0 -0
  541. /package/dist/{chunk-cy0n5dms.js.map → chunk-5jcdmjam.js.map} +0 -0
  542. /package/dist/{chunk-819wnjz8.js.map → chunk-64sr682n.js.map} +0 -0
  543. /package/dist/{chunk-x2yw73hy.js.map → chunk-7ds9620f.js.map} +0 -0
  544. /package/dist/{chunk-tbv03sx2.js.map → chunk-9aehf39w.js.map} +0 -0
  545. /package/dist/{chunk-ezake7g1.js.map → chunk-agsvg9ar.js.map} +0 -0
  546. /package/dist/{chunk-rnshztfq.js.map → chunk-d63tybny.js.map} +0 -0
  547. /package/dist/{chunk-vybf6pkp.js.map → chunk-dbc80ad7.js.map} +0 -0
  548. /package/dist/{chunk-4gz41why.js.map → chunk-dqn23610.js.map} +0 -0
  549. /package/dist/{chunk-zp2v2rv6.js.map → chunk-ha58tjtt.js.map} +0 -0
  550. /package/dist/{chunk-f6erf2vv.js.map → chunk-hdz94br2.js.map} +0 -0
  551. /package/dist/{chunk-dsrkgtnh.js.map → chunk-jq43kdvk.js.map} +0 -0
  552. /package/dist/{chunk-wtmzkcht.js.map → chunk-k34z5rvh.js.map} +0 -0
  553. /package/dist/{chunk-htq0qh7z.js.map → chunk-ka3a2ft3.js.map} +0 -0
  554. /package/dist/{chunk-4h947jd8.js.map → chunk-kt81c11h.js.map} +0 -0
  555. /package/dist/{chunk-f2rt4vkh.js.map → chunk-n2w475r0.js.map} +0 -0
  556. /package/dist/{chunk-bhxaq2nn.js.map → chunk-qw9gvjv5.js.map} +0 -0
  557. /package/dist/{chunk-r0rry8dn.js.map → chunk-rp1mvzb4.js.map} +0 -0
  558. /package/dist/{chunk-ghteq96b.js.map → chunk-s5y30bc9.js.map} +0 -0
  559. /package/dist/{chunk-a31h57d5.js.map → chunk-tn7xcs2n.js.map} +0 -0
  560. /package/dist/{chunk-ea73pzk7.js.map → chunk-vjjv9mrb.js.map} +0 -0
  561. /package/dist/{chunk-8b55ygje.js.map → chunk-w3e09qqk.js.map} +0 -0
  562. /package/dist/{chunk-ckxfnx7f.js.map → chunk-wjgm6jjt.js.map} +0 -0
  563. /package/dist/{chunk-3j7573mj.js.map → chunk-x0qhkqje.js.map} +0 -0
  564. /package/dist/{chunk-dysw7nsm.js.map → chunk-xdpwpkha.js.map} +0 -0
@@ -0,0 +1,202 @@
1
+ import {
2
+ MODEL_REASONING_EFFORTS,
3
+ type ModelCapabilities,
4
+ type ModelReasoningBudgetCapabilities,
5
+ type ModelReasoningCapabilities,
6
+ } from "./language-model"
7
+
8
+ export type ModelKind = "language" | "image" | "video" | "embedding"
9
+
10
+ /** Common catalog identity shared by every present and future model runtime. */
11
+ export interface ModelDefinition {
12
+ readonly kind: ModelKind
13
+ readonly providerId: string
14
+ readonly modelId: string
15
+ readonly name?: string
16
+ readonly description?: string
17
+ readonly family?: string
18
+ readonly tags?: readonly string[]
19
+ readonly releaseDate?: string
20
+ }
21
+
22
+ /** Serializable facts about one concrete model offering from one provider. */
23
+ export interface LanguageModelDefinition extends ModelDefinition {
24
+ readonly kind: "language"
25
+ readonly knowledgeCutoff?: string
26
+ readonly contextWindow?: number
27
+ /** Maximum input tokens, distinct from a shared input/output context window. */
28
+ readonly maxInputTokens?: number
29
+ readonly maxOutputTokens?: number
30
+ readonly capabilities: ModelCapabilities
31
+ }
32
+
33
+ export function defineLanguageModel(definition: LanguageModelDefinition): LanguageModelDefinition {
34
+ if (definition.kind !== "language") {
35
+ throw new TypeError("[Sixb] Language model definitions must use kind 'language'.")
36
+ }
37
+ assertModelId(definition.providerId, "providerId")
38
+ assertModelId(definition.modelId, "modelId")
39
+ assertOptionalString(definition.name, "name")
40
+ assertOptionalString(definition.description, "description")
41
+ assertOptionalString(definition.family, "family")
42
+ assertOptionalString(definition.releaseDate, "releaseDate")
43
+ assertOptionalString(definition.knowledgeCutoff, "knowledgeCutoff")
44
+ const tags = freezeStrings(definition.tags, "tags")
45
+ const capabilities = defineModelCapabilities(definition.capabilities)
46
+ assertOptionalPositiveInteger(definition.contextWindow, "contextWindow")
47
+ assertOptionalPositiveInteger(definition.maxInputTokens, "maxInputTokens")
48
+ assertOptionalPositiveInteger(definition.maxOutputTokens, "maxOutputTokens")
49
+ return Object.freeze({
50
+ kind: "language",
51
+ providerId: definition.providerId,
52
+ modelId: definition.modelId,
53
+ ...(definition.name === undefined ? {} : { name: definition.name }),
54
+ ...(definition.description === undefined ? {} : { description: definition.description }),
55
+ ...(definition.family === undefined ? {} : { family: definition.family }),
56
+ ...(tags === undefined ? {} : { tags }),
57
+ ...(definition.releaseDate === undefined ? {} : { releaseDate: definition.releaseDate }),
58
+ ...(definition.knowledgeCutoff === undefined
59
+ ? {}
60
+ : { knowledgeCutoff: definition.knowledgeCutoff }),
61
+ ...(definition.contextWindow === undefined ? {} : { contextWindow: definition.contextWindow }),
62
+ ...(definition.maxInputTokens === undefined
63
+ ? {}
64
+ : { maxInputTokens: definition.maxInputTokens }),
65
+ ...(definition.maxOutputTokens === undefined
66
+ ? {}
67
+ : { maxOutputTokens: definition.maxOutputTokens }),
68
+ capabilities,
69
+ })
70
+ }
71
+
72
+ function defineModelCapabilities(capabilities: unknown): ModelCapabilities {
73
+ assertRecord(capabilities, "capabilities")
74
+ const inputMediaTypes =
75
+ capabilities.inputMediaTypes === "any"
76
+ ? "any"
77
+ : freezeStrings(capabilities.inputMediaTypes, "capabilities.inputMediaTypes")
78
+ for (const [field, value] of Object.entries(capabilities)) {
79
+ if (field === "inputMediaTypes" || field === "reasoning") continue
80
+ if (value !== undefined && typeof value !== "boolean") {
81
+ throw new TypeError(`[Sixb] Model capability '${field}' must be boolean.`)
82
+ }
83
+ }
84
+ const reasoning = freezeReasoningCapabilities(capabilities.reasoning)
85
+ const flags: {
86
+ localTools?: boolean
87
+ parallelToolCalls?: boolean
88
+ nativeStructuredOutput?: boolean
89
+ providerExecutedTools?: boolean
90
+ } = {}
91
+ for (const key of [
92
+ "localTools",
93
+ "parallelToolCalls",
94
+ "nativeStructuredOutput",
95
+ "providerExecutedTools",
96
+ ] as const) {
97
+ const value = capabilities[key]
98
+ if (typeof value === "boolean") flags[key] = value
99
+ }
100
+ return Object.freeze({
101
+ ...(inputMediaTypes === undefined ? {} : { inputMediaTypes }),
102
+ ...(reasoning === undefined ? {} : { reasoning }),
103
+ ...flags,
104
+ })
105
+ }
106
+
107
+ function freezeReasoningCapabilities(reasoning: unknown): ModelCapabilities["reasoning"] {
108
+ if (reasoning === undefined || reasoning === false) return reasoning
109
+ assertRecord(reasoning, "reasoning")
110
+ if (reasoning.canDisable !== undefined && typeof reasoning.canDisable !== "boolean") {
111
+ throw new TypeError("[Sixb] Model reasoning capability 'canDisable' must be boolean.")
112
+ }
113
+ const efforts = freezeReasoningEfforts(reasoning.efforts)
114
+ const budgetTokens = freezeReasoningBudgetCapabilities(reasoning.budgetTokens)
115
+ return Object.freeze({
116
+ ...(reasoning.canDisable === undefined ? {} : { canDisable: reasoning.canDisable }),
117
+ ...(efforts === undefined ? {} : { efforts }),
118
+ ...(budgetTokens === undefined ? {} : { budgetTokens }),
119
+ } satisfies ModelReasoningCapabilities)
120
+ }
121
+
122
+ function freezeReasoningEfforts(
123
+ efforts: unknown
124
+ ): readonly (typeof MODEL_REASONING_EFFORTS)[number][] | undefined {
125
+ if (efforts === undefined) return undefined
126
+ if (!Array.isArray(efforts)) {
127
+ throw new TypeError("[Sixb] Model reasoning capability 'efforts' must be an array.")
128
+ }
129
+ const seen = new Set<string>()
130
+ return Object.freeze(
131
+ efforts.map((value: unknown) => {
132
+ const effort = MODEL_REASONING_EFFORTS.find((allowed) => allowed === value)
133
+ if (effort === undefined) {
134
+ throw new TypeError(`[Sixb] Model reasoning effort '${String(value)}' is invalid.`)
135
+ }
136
+ if (seen.has(effort)) {
137
+ throw new TypeError(`[Sixb] Model reasoning effort '${effort}' is duplicated.`)
138
+ }
139
+ seen.add(effort)
140
+ return effort
141
+ })
142
+ )
143
+ }
144
+
145
+ function freezeReasoningBudgetCapabilities(
146
+ budget: unknown
147
+ ): ModelReasoningBudgetCapabilities | undefined {
148
+ if (budget === undefined) return undefined
149
+ assertRecord(budget, "reasoning budgetTokens")
150
+ assertOptionalNonnegativeInteger(budget.min, "capabilities.reasoning.budgetTokens.min")
151
+ assertOptionalNonnegativeInteger(budget.max, "capabilities.reasoning.budgetTokens.max")
152
+ if (budget.min !== undefined && budget.max !== undefined && budget.max < budget.min) {
153
+ throw new TypeError(
154
+ "[Sixb] Model reasoning token budget maximum must not be below its minimum."
155
+ )
156
+ }
157
+ return Object.freeze({
158
+ ...(budget.min === undefined ? {} : { min: budget.min }),
159
+ ...(budget.max === undefined ? {} : { max: budget.max }),
160
+ })
161
+ }
162
+
163
+ function assertModelId(value: string, field: string): void {
164
+ if (!value.trim()) throw new TypeError(`[Sixb] Model ${field} must not be empty.`)
165
+ }
166
+
167
+ function assertOptionalPositiveInteger(value: number | undefined, field: string): void {
168
+ if (value !== undefined && (!Number.isSafeInteger(value) || value <= 0)) {
169
+ throw new TypeError(`[Sixb] Model ${field} must be a positive safe integer.`)
170
+ }
171
+ }
172
+
173
+ function assertOptionalNonnegativeInteger(
174
+ value: unknown,
175
+ field: string
176
+ ): asserts value is number | undefined {
177
+ if (
178
+ value !== undefined &&
179
+ (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0)
180
+ ) {
181
+ throw new TypeError(`[Sixb] Model ${field} must be a nonnegative safe integer.`)
182
+ }
183
+ }
184
+
185
+ function assertOptionalString(value: string | undefined, field: string): void {
186
+ if (value !== undefined && typeof value !== "string") {
187
+ throw new TypeError(`[Sixb] Model ${field} must be a string.`)
188
+ }
189
+ }
190
+
191
+ function freezeStrings(value: unknown, field: string): readonly string[] | undefined {
192
+ if (value === undefined) return undefined
193
+ if (!Array.isArray(value) || value.some((entry) => typeof entry !== "string" || !entry.trim())) {
194
+ throw new TypeError(`[Sixb] Model ${field} must contain nonempty strings.`)
195
+ }
196
+ return Object.freeze([...value])
197
+ }
198
+
199
+ function assertRecord(value: unknown, field: string): asserts value is Record<string, unknown> {
200
+ if (value === null || typeof value !== "object" || Array.isArray(value))
201
+ throw new TypeError(`[Sixb] Model ${field} must be an object.`)
202
+ }
@@ -0,0 +1,83 @@
1
+ import type { ModelFinishReason, ModelUsage } from "./events"
2
+ import type { ModelCallCost } from "./pricing"
3
+
4
+ /** Catalog transport/access failed; callers may use local metadata without masking invalid definitions. */
5
+ export class ModelCatalogUnavailableError extends Error {
6
+ readonly name = "ModelCatalogUnavailableError"
7
+ }
8
+
9
+ /** A provider or provider protocol rejected a model request. */
10
+ export class ModelProviderError extends Error {
11
+ readonly name = "ModelProviderError"
12
+
13
+ constructor(
14
+ message: string,
15
+ readonly providerId: string,
16
+ readonly modelId: string,
17
+ options?: ErrorOptions & {
18
+ readonly status?: number
19
+ readonly code?: string
20
+ readonly requestId?: string
21
+ readonly retryAfterMs?: number
22
+ readonly retryable?: boolean
23
+ }
24
+ ) {
25
+ super(message, options)
26
+ this.status = options?.status
27
+ this.code = options?.code
28
+ this.requestId = options?.requestId
29
+ this.retryAfterMs = options?.retryAfterMs
30
+ this.retryable = options?.retryable ?? false
31
+ }
32
+
33
+ readonly status?: number
34
+ readonly code?: string
35
+ readonly requestId?: string
36
+ readonly retryAfterMs?: number
37
+ readonly retryable: boolean
38
+ }
39
+
40
+ export class ModelStreamError extends Error {
41
+ readonly name = "ModelStreamError"
42
+ }
43
+
44
+ export class UnsupportedModelFeatureError extends Error {
45
+ readonly name = "UnsupportedModelFeatureError"
46
+ }
47
+
48
+ export class StructuredOutputError extends Error {
49
+ readonly name = "StructuredOutputError"
50
+
51
+ constructor(
52
+ message: string,
53
+ options?: ErrorOptions & {
54
+ readonly text?: string
55
+ readonly providerId?: string
56
+ readonly modelId?: string
57
+ readonly responseId?: string
58
+ readonly responseModelId?: string
59
+ readonly finishReason?: ModelFinishReason
60
+ readonly usage?: ModelUsage
61
+ readonly cost?: ModelCallCost
62
+ }
63
+ ) {
64
+ super(message, options)
65
+ this.text = options?.text
66
+ this.providerId = options?.providerId
67
+ this.modelId = options?.modelId
68
+ this.responseId = options?.responseId
69
+ this.responseModelId = options?.responseModelId
70
+ this.finishReason = options?.finishReason
71
+ this.usage = options?.usage
72
+ this.cost = options?.cost
73
+ }
74
+
75
+ readonly text?: string
76
+ readonly providerId?: string
77
+ readonly modelId?: string
78
+ readonly responseId?: string
79
+ readonly responseModelId?: string
80
+ readonly finishReason?: ModelFinishReason
81
+ readonly usage?: ModelUsage
82
+ readonly cost?: ModelCallCost
83
+ }
@@ -0,0 +1,198 @@
1
+ import type { JsonObject, JsonValue } from "../json"
2
+ import type { ModelReasoning } from "./language-model"
3
+ import type {
4
+ ModelAssistantPart,
5
+ ModelToolCallPart,
6
+ ModelToolResultPart,
7
+ ProviderData,
8
+ } from "./messages"
9
+ import type { ModelCallCost, ModelCostEstimate, ModelReportedCost } from "./pricing"
10
+
11
+ export interface ModelRoute {
12
+ /** Provider selected by a routing gateway, when it differs from the provider being called. */
13
+ readonly providerId?: string
14
+ readonly modelId?: string
15
+ }
16
+
17
+ /** Only identifiers supplied by the provider. Internal call/response fallback IDs never belong here. */
18
+ export type ModelProviderIds = {
19
+ readonly requestId?: string
20
+ readonly responseId?: string
21
+ readonly generationId?: string
22
+ }
23
+
24
+ export function normalizeModelProviderIds(value: unknown): ModelProviderIds {
25
+ if (typeof value !== "object" || value === null || Array.isArray(value))
26
+ throw new TypeError("[Sixb] Provider identifiers must be an object.")
27
+ const result: { requestId?: string; responseId?: string; generationId?: string } = {}
28
+ for (const [key, id] of Object.entries(value)) {
29
+ if (key !== "requestId" && key !== "responseId" && key !== "generationId") continue
30
+ if (id === undefined) continue
31
+ if (typeof id !== "string" || !id.trim())
32
+ throw new TypeError(`[Sixb] Provider ${key} must be nonblank.`)
33
+ result[key] = id
34
+ }
35
+ return Object.freeze(result)
36
+ }
37
+
38
+ export type ModelFinishReason =
39
+ | "stop"
40
+ | "length"
41
+ | "content-filter"
42
+ | "tool-calls"
43
+ | "pause"
44
+ | "error"
45
+ | "other"
46
+ | "unknown"
47
+
48
+ export interface ModelUsage {
49
+ readonly inputTokens?: number
50
+ readonly outputTokens?: number
51
+ readonly uncachedInputTokens?: number
52
+ readonly cacheReadInputTokens?: number
53
+ readonly cacheWriteInputTokens?: number
54
+ readonly cacheWrite5mInputTokens?: number
55
+ readonly cacheWrite1hInputTokens?: number
56
+ readonly textOutputTokens?: number
57
+ readonly reasoningOutputTokens?: number
58
+ readonly raw?: JsonObject
59
+ }
60
+
61
+ export type LanguageModelStreamEvent =
62
+ | { readonly type: "stream-start" }
63
+ | {
64
+ readonly type: "response-metadata"
65
+ readonly providerIds?: ModelProviderIds
66
+ readonly id?: string
67
+ readonly modelId?: string
68
+ }
69
+ | { readonly type: "text-start"; readonly id: string; readonly providerData?: ProviderData }
70
+ | { readonly type: "text-delta"; readonly id: string; readonly delta: string }
71
+ | { readonly type: "text-end"; readonly id: string; readonly providerData?: ProviderData }
72
+ | {
73
+ readonly type: "reasoning-start"
74
+ readonly id: string
75
+ readonly providerData?: ProviderData
76
+ }
77
+ | { readonly type: "reasoning-delta"; readonly id: string; readonly delta: string }
78
+ | { readonly type: "reasoning-end"; readonly id: string; readonly providerData?: ProviderData }
79
+ | {
80
+ readonly type: "tool-input-start"
81
+ readonly id: string
82
+ readonly toolName: string
83
+ readonly providerData?: ProviderData
84
+ readonly providerExecuted?: boolean
85
+ readonly dynamic?: boolean
86
+ }
87
+ | { readonly type: "tool-input-delta"; readonly id: string; readonly delta: string }
88
+ | { readonly type: "tool-input-end"; readonly id: string; readonly providerData?: ProviderData }
89
+ | {
90
+ readonly type: "tool-call"
91
+ readonly toolCallId: string
92
+ readonly toolName: string
93
+ readonly input: string
94
+ readonly providerData?: ProviderData
95
+ readonly providerExecuted?: boolean
96
+ readonly dynamic?: boolean
97
+ }
98
+ | {
99
+ readonly type: "tool-result"
100
+ readonly toolCallId: string
101
+ readonly toolName: string
102
+ readonly output: JsonValue
103
+ readonly isError?: boolean
104
+ readonly providerData?: ProviderData
105
+ readonly providerExecuted?: boolean
106
+ readonly dynamic?: boolean
107
+ }
108
+ | {
109
+ readonly type: "provider-state"
110
+ readonly providerId: string
111
+ readonly data: JsonValue
112
+ }
113
+ | {
114
+ readonly type: "finish"
115
+ readonly finishReason: ModelFinishReason
116
+ readonly rawFinishReason?: string
117
+ readonly usage: ModelUsage
118
+ readonly providerData?: ProviderData
119
+ readonly reportedCost?: ModelReportedCost
120
+ readonly route?: ModelRoute
121
+ }
122
+ | { readonly type: "error"; readonly error: unknown }
123
+
124
+ export type ModelUiChunk =
125
+ | { readonly type: "start-step" }
126
+ | { readonly type: "text-start"; readonly id: string }
127
+ | { readonly type: "text-delta"; readonly id: string; readonly delta: string }
128
+ | { readonly type: "text-end"; readonly id: string }
129
+ | { readonly type: "reasoning-start"; readonly id: string }
130
+ | { readonly type: "reasoning-delta"; readonly id: string; readonly delta: string }
131
+ | { readonly type: "reasoning-end"; readonly id: string }
132
+ | {
133
+ readonly type: "tool-input-start"
134
+ readonly toolCallId: string
135
+ readonly toolName: string
136
+ }
137
+ | {
138
+ readonly type: "tool-input-delta"
139
+ readonly toolCallId: string
140
+ readonly toolName: string
141
+ readonly inputTextDelta: string
142
+ }
143
+ | {
144
+ readonly type: "tool-input-available"
145
+ readonly toolCallId: string
146
+ readonly toolName: string
147
+ readonly input: JsonValue
148
+ }
149
+ | {
150
+ readonly type: "tool-input-error"
151
+ readonly toolCallId: string
152
+ readonly toolName: string
153
+ readonly input: JsonValue
154
+ readonly errorText: string
155
+ }
156
+ | {
157
+ readonly type: "tool-output-available"
158
+ readonly toolCallId: string
159
+ readonly toolName: string
160
+ readonly output: JsonValue
161
+ }
162
+ | {
163
+ readonly type: "tool-output-error"
164
+ readonly toolCallId: string
165
+ readonly toolName: string
166
+ readonly errorText: string
167
+ }
168
+ | { readonly type: "error"; readonly errorText: string }
169
+
170
+ export interface ModelCallEndEvent {
171
+ readonly providerIds?: ModelProviderIds
172
+ /** Retained independently when the selected display cost is provider-reported. */
173
+ readonly estimate?: ModelCostEstimate
174
+ readonly callId: string
175
+ readonly providerId: string
176
+ readonly modelId: string
177
+ readonly responseId: string
178
+ readonly responseModelId?: string
179
+ readonly usage: ModelUsage
180
+ readonly cost: ModelCallCost
181
+ readonly requestedReasoning?: ModelReasoning
182
+ readonly route?: ModelRoute
183
+ }
184
+
185
+ export interface ModelStep {
186
+ readonly content: readonly (ModelAssistantPart | ModelToolResultPart)[]
187
+ readonly finishReason: ModelFinishReason
188
+ readonly rawFinishReason?: string
189
+ readonly usage: ModelUsage
190
+ readonly responseId: string
191
+ readonly responseModelId?: string
192
+ readonly cost: ModelCallCost
193
+ readonly route?: ModelRoute
194
+ }
195
+
196
+ export interface ModelLoopPartial {
197
+ readonly content: readonly (ModelAssistantPart | ModelToolCallPart | ModelToolResultPart)[]
198
+ }
@@ -1,71 +1,89 @@
1
- import type { LanguageModelV4 } from "@ai-sdk/provider"
2
- import { createDefinitionCatalog, type DefinitionCatalog } from "../runtime/definitions"
3
- import { RuntimeError } from "../runtime/errors"
4
-
5
- /** The configured language models, with the project default. */
6
- export interface LanguageModelCatalog extends DefinitionCatalog<LanguageModelEntry> {
7
- readonly default: LanguageModelEntry
8
- }
9
-
10
- /**
11
- * One configured language model.
12
- *
13
- * `ref` is derived, never author-supplied, and stays internal to the runtime: it identifies the
14
- * configured binding, not a vendor model. The AI SDK's `provider` names the binding, so
15
- * `openai.chat(...)` and `openai.responses(...)` are distinct entries even for one vendor model,
16
- * and neither matches the canonical id the worker resolves for billing
17
- * (`SDK_PROVIDER_BINDINGS` in `@sixb/agent-worker`). Anything user-facing should key on
18
- * `provider` + `modelId` instead.
19
- */
20
- export interface LanguageModelEntry {
21
- readonly ref: string
22
- readonly provider: string
23
- readonly modelId: string
24
- readonly model: LanguageModelV4
25
- }
26
-
27
- /** Models a project allows Sixb to use, organized by technical model kind. */
28
- export interface ModelCatalog {
29
- readonly language: LanguageModelCatalog
30
- }
31
-
32
- export interface ModelCatalogInput {
33
- /** Ordered; the first entry is the project default. */
34
- readonly language: readonly LanguageModelV4[]
35
- }
36
-
37
- /**
38
- * Identify a catalog entry by the binding its model was constructed from.
39
- *
40
- * `gateway("openai/gpt-5.4")` and `openai("gpt-5.4")` are different entries on purpose: they route
41
- * differently and bill differently. See {@link LanguageModelEntry}.
42
- */
43
- export function modelRef(model: LanguageModelV4): string {
44
- return `${model.provider}/${model.modelId}`
45
- }
46
-
47
- /** Build the immutable project model catalog. Rejects duplicates and an empty catalog. */
48
- export function createModelCatalog(input: ModelCatalogInput): ModelCatalog {
49
- const byRef = new Map<string, LanguageModelEntry>()
50
-
51
- for (const model of input.language) {
52
- const ref = modelRef(model)
53
- if (byRef.has(ref)) {
54
- throw new RuntimeError(
55
- `[Sixb] Duplicate language model '${ref}' in 'models'. Each provider and model id pair may be configured once.`
56
- )
57
- }
58
- byRef.set(ref, Object.freeze({ ref, provider: model.provider, modelId: model.modelId, model }))
59
- }
60
-
61
- const [defaultEntry] = byRef.values()
62
- if (defaultEntry === undefined) {
63
- throw new RuntimeError(
64
- "[Sixb] 'models.language' needs at least one model. Configure one or omit 'models' from createSixb()."
65
- )
66
- }
67
-
68
- return Object.freeze({
69
- language: Object.freeze({ ...createDefinitionCatalog(byRef), default: defaultEntry }),
70
- })
71
- }
1
+ export type { JsonObject, JsonPrimitive, JsonValue } from "../json"
2
+ export { assertJsonObject, assertJsonValue, isJsonObject, isJsonValue } from "../json"
3
+ export type {
4
+ LanguageModelCatalog,
5
+ LanguageModelDefinitionCatalog,
6
+ LanguageModelEntry,
7
+ LanguageModelRef,
8
+ ModelCatalog,
9
+ ModelCatalogInput,
10
+ ModelDefinitionCatalog,
11
+ } from "./catalog"
12
+ export { createModelCatalog } from "./catalog"
13
+ export type {
14
+ LanguageModelDefinition,
15
+ ModelDefinition,
16
+ ModelKind,
17
+ } from "./definitions"
18
+ export { defineLanguageModel } from "./definitions"
19
+ export {
20
+ ModelCatalogUnavailableError,
21
+ ModelProviderError,
22
+ ModelStreamError,
23
+ StructuredOutputError,
24
+ UnsupportedModelFeatureError,
25
+ } from "./errors"
26
+ export type {
27
+ LanguageModelStreamEvent,
28
+ ModelCallEndEvent,
29
+ ModelFinishReason,
30
+ ModelLoopPartial,
31
+ ModelProviderIds,
32
+ ModelRoute,
33
+ ModelStep,
34
+ ModelUiChunk,
35
+ ModelUsage,
36
+ } from "./events"
37
+ export { normalizeModelProviderIds } from "./events"
38
+ export type {
39
+ LanguageModel,
40
+ LanguageModelProvider,
41
+ LanguageModelRequest,
42
+ LanguageModelStream,
43
+ ModelCapabilities,
44
+ ModelProvider,
45
+ ModelReasoning,
46
+ ModelReasoningBudget,
47
+ ModelReasoningBudgetCapabilities,
48
+ ModelReasoningCapabilities,
49
+ ModelReasoningEffort,
50
+ ModelReasoningLevel,
51
+ ModelResponseFormat,
52
+ ModelToolSpecification,
53
+ } from "./language-model"
54
+ export {
55
+ isModelReasoning,
56
+ MODEL_REASONING_EFFORTS,
57
+ MODEL_REASONING_LEVELS,
58
+ modelReasoningSupportIssue,
59
+ } from "./language-model"
60
+ export type {
61
+ ModelAssistantPart,
62
+ ModelFilePart,
63
+ ModelMessage,
64
+ ModelProviderStatePart,
65
+ ModelReasoningPart,
66
+ ModelTextPart,
67
+ ModelToolCallPart,
68
+ ModelToolOutput,
69
+ ModelToolResultPart,
70
+ ProviderData,
71
+ } from "./messages"
72
+ export type {
73
+ ModelCallCost,
74
+ ModelCostComponent,
75
+ ModelCostEstimate,
76
+ ModelCostEstimator,
77
+ ModelCostMeter,
78
+ ModelMoney,
79
+ ModelReportedCost,
80
+ } from "./pricing"
81
+ export { estimateModelReservation, rateModelCall } from "./pricing"
82
+ export type {
83
+ LanguageModelRateCard,
84
+ ModelPricingTier,
85
+ ModelTokenPrice,
86
+ ModelUnitPrice,
87
+ } from "./rate-card"
88
+ export { defineModelRateCard } from "./rate-card"
89
+ export type { ModelOutput, ModelTool, ModelToolExecutionContext } from "./tools"