@sixb/core 0.1.6 → 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 (535) hide show
  1. package/dist/actions/index.js +37 -33
  2. package/dist/actions/index.js.map +1 -1
  3. package/dist/actions/worker.js +3 -3
  4. package/dist/agents/adapters.d.ts +33 -76
  5. package/dist/agents/adapters.d.ts.map +1 -1
  6. package/dist/agents/authority.d.ts +22 -6
  7. package/dist/agents/authority.d.ts.map +1 -1
  8. package/dist/agents/builders.d.ts +3 -11
  9. package/dist/agents/builders.d.ts.map +1 -1
  10. package/dist/agents/context.js +2 -2
  11. package/dist/agents/dispatch.d.ts +9 -1
  12. package/dist/agents/dispatch.d.ts.map +1 -1
  13. package/dist/agents/errors.d.ts +2 -2
  14. package/dist/agents/errors.d.ts.map +1 -1
  15. package/dist/agents/execution.d.ts +9 -10
  16. package/dist/agents/execution.d.ts.map +1 -1
  17. package/dist/agents/ids.d.ts +4 -0
  18. package/dist/agents/ids.d.ts.map +1 -1
  19. package/dist/agents/index.d.ts +13 -9
  20. package/dist/agents/index.d.ts.map +1 -1
  21. package/dist/agents/index.js +80 -68
  22. package/dist/agents/index.js.map +1 -1
  23. package/dist/agents/message.d.ts +17 -10
  24. package/dist/agents/message.d.ts.map +1 -1
  25. package/dist/agents/model-loop.d.ts +56 -0
  26. package/dist/agents/model-loop.d.ts.map +1 -0
  27. package/dist/agents/reference.d.ts +4 -0
  28. package/dist/agents/reference.d.ts.map +1 -0
  29. package/dist/agents/request.d.ts +10 -8
  30. package/dist/agents/request.d.ts.map +1 -1
  31. package/dist/agents/retired-config.d.ts +4 -0
  32. package/dist/agents/retired-config.d.ts.map +1 -0
  33. package/dist/agents/streams.d.ts +13 -8
  34. package/dist/agents/streams.d.ts.map +1 -1
  35. package/dist/agents/streams.js +7 -5
  36. package/dist/agents/streams.js.map +1 -1
  37. package/dist/agents/tool-catalog.d.ts +9 -0
  38. package/dist/agents/tool-catalog.d.ts.map +1 -0
  39. package/dist/agents/tool-definition.d.ts +1 -0
  40. package/dist/agents/tool-definition.d.ts.map +1 -1
  41. package/dist/agents/types.d.ts +31 -68
  42. package/dist/agents/types.d.ts.map +1 -1
  43. package/dist/agents/validation.d.ts +4 -10
  44. package/dist/agents/validation.d.ts.map +1 -1
  45. package/dist/ai-usage/execution.d.ts +53 -0
  46. package/dist/ai-usage/execution.d.ts.map +1 -0
  47. package/dist/ai-usage/index.d.ts +3 -0
  48. package/dist/ai-usage/index.d.ts.map +1 -0
  49. package/dist/auth/index.js +7 -7
  50. package/dist/authorization/decision.d.ts +5 -2
  51. package/dist/authorization/decision.d.ts.map +1 -1
  52. package/dist/authorization/grant-kinds.d.ts +24 -8
  53. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  54. package/dist/authorization/index.d.ts +1 -1
  55. package/dist/authorization/index.d.ts.map +1 -1
  56. package/dist/authorization/index.js +8 -6
  57. package/dist/authorization/index.js.map +1 -1
  58. package/dist/authorization/resolve.d.ts +3 -3
  59. package/dist/authorization/resolve.d.ts.map +1 -1
  60. package/dist/authorization/types.d.ts +7 -5
  61. package/dist/authorization/types.d.ts.map +1 -1
  62. package/dist/blob-storage/browser.js +2 -2
  63. package/dist/blob-storage/index.js +3 -3
  64. package/dist/bootstrap/discovery.d.ts +1 -7
  65. package/dist/bootstrap/discovery.d.ts.map +1 -1
  66. package/dist/bootstrap/index.js +52 -48
  67. package/dist/bootstrap/index.js.map +1 -1
  68. package/dist/broker/index.js +2 -2
  69. package/dist/{chunk-zqysyfjt.js → chunk-08m3b6w8.js} +1 -1
  70. package/dist/{chunk-1g8negke.js → chunk-08twe8m6.js} +93 -8
  71. package/dist/chunk-08twe8m6.js.map +12 -0
  72. package/dist/{chunk-xkthy56g.js → chunk-1kamz6j0.js} +1 -1
  73. package/dist/{chunk-dy311asx.js → chunk-2b5qtban.js} +12 -12
  74. package/dist/{chunk-dy311asx.js.map → chunk-2b5qtban.js.map} +3 -3
  75. package/dist/{chunk-0172wgm9.js → chunk-2xns679x.js} +10 -2
  76. package/dist/{chunk-0172wgm9.js.map → chunk-2xns679x.js.map} +3 -3
  77. package/dist/{chunk-f83ka50g.js → chunk-37wk412q.js} +86 -28
  78. package/dist/{chunk-f83ka50g.js.map → chunk-37wk412q.js.map} +8 -8
  79. package/dist/{chunk-md8k0r54.js → chunk-3fqt22c4.js} +4 -4
  80. package/dist/{chunk-t9xghkva.js → chunk-3kv70xwp.js} +3 -2
  81. package/dist/{chunk-t9xghkva.js.map → chunk-3kv70xwp.js.map} +3 -3
  82. package/dist/{chunk-z3zp0bj1.js → chunk-407j3msh.js} +1 -1
  83. package/dist/{chunk-rhrbz7d4.js → chunk-4a849fr1.js} +1 -1
  84. package/dist/{chunk-62c7t4jc.js → chunk-4nxeacx7.js} +1 -1
  85. package/dist/{chunk-cy0n5dms.js → chunk-5jcdmjam.js} +1 -1
  86. package/dist/{chunk-819wnjz8.js → chunk-64sr682n.js} +7 -7
  87. package/dist/{chunk-t624af60.js → chunk-6ed5bwnd.js} +646 -67
  88. package/dist/{chunk-t624af60.js.map → chunk-6ed5bwnd.js.map} +10 -9
  89. package/dist/{chunk-x2yw73hy.js → chunk-7ds9620f.js} +1 -1
  90. package/dist/{chunk-dm72y8wt.js → chunk-7y0f6rf1.js} +29 -16
  91. package/dist/chunk-7y0f6rf1.js.map +10 -0
  92. package/dist/{chunk-72q2y8hn.js → chunk-8tsf6dmc.js} +2 -2
  93. package/dist/{chunk-nkbfrt0c.js → chunk-9aehf39w.js} +7 -7
  94. package/dist/{chunk-ezake7g1.js → chunk-agsvg9ar.js} +1 -1
  95. package/dist/{chunk-rdeagz6b.js → chunk-atmkaf60.js} +1 -1
  96. package/dist/{chunk-rdeagz6b.js.map → chunk-atmkaf60.js.map} +2 -2
  97. package/dist/chunk-c15dr03f.js +43 -0
  98. package/dist/chunk-c15dr03f.js.map +10 -0
  99. package/dist/{chunk-0hc5j867.js → chunk-d2ndstdf.js} +8 -6
  100. package/dist/{chunk-0hc5j867.js.map → chunk-d2ndstdf.js.map} +2 -2
  101. package/dist/{chunk-rnshztfq.js → chunk-d63tybny.js} +2 -2
  102. package/dist/{chunk-t0jjkep3.js → chunk-d8qkxt2v.js} +4 -2
  103. package/dist/chunk-d8qkxt2v.js.map +10 -0
  104. package/dist/{chunk-vybf6pkp.js → chunk-dbc80ad7.js} +1 -1
  105. package/dist/{chunk-4gz41why.js → chunk-dqn23610.js} +1 -1
  106. package/dist/{chunk-5sxb1168.js → chunk-e4rvtvpw.js} +13 -11
  107. package/dist/{chunk-5sxb1168.js.map → chunk-e4rvtvpw.js.map} +2 -2
  108. package/dist/{chunk-h9kxd41f.js → chunk-gbrpsx4m.js} +19 -6
  109. package/dist/chunk-gbrpsx4m.js.map +11 -0
  110. package/dist/{chunk-nva1xkjz.js → chunk-h0knpbz5.js} +468 -1236
  111. package/dist/chunk-h0knpbz5.js.map +38 -0
  112. package/dist/{chunk-tg5mee00.js → chunk-ha58tjtt.js} +6 -6
  113. package/dist/{chunk-f6erf2vv.js → chunk-hdz94br2.js} +2 -2
  114. package/dist/chunk-jecn6t54.js +307 -0
  115. package/dist/chunk-jecn6t54.js.map +12 -0
  116. package/dist/{chunk-dsrkgtnh.js → chunk-jq43kdvk.js} +1 -1
  117. package/dist/{chunk-wtmzkcht.js → chunk-k34z5rvh.js} +1 -1
  118. package/dist/{chunk-htq0qh7z.js → chunk-ka3a2ft3.js} +2 -2
  119. package/dist/{chunk-znagycq7.js → chunk-kt81c11h.js} +2 -2
  120. package/dist/chunk-n2arzn6e.js +1745 -0
  121. package/dist/chunk-n2arzn6e.js.map +20 -0
  122. package/dist/{chunk-f2rt4vkh.js → chunk-n2w475r0.js} +3 -3
  123. package/dist/{chunk-t8t39h7v.js → chunk-n6jxh8sw.js} +10 -2
  124. package/dist/chunk-n6jxh8sw.js.map +10 -0
  125. package/dist/{chunk-drjqm1aa.js → chunk-p03r0h5s.js} +310 -28
  126. package/dist/chunk-p03r0h5s.js.map +16 -0
  127. package/dist/chunk-p2vqaxkc.js +528 -0
  128. package/dist/chunk-p2vqaxkc.js.map +15 -0
  129. package/dist/{chunk-n4spznws.js → chunk-qjycjdj6.js} +84 -11
  130. package/dist/chunk-qjycjdj6.js.map +12 -0
  131. package/dist/chunk-qjzp9xyb.js +286 -0
  132. package/dist/chunk-qjzp9xyb.js.map +12 -0
  133. package/dist/{chunk-5gynx4xn.js → chunk-qv38twt8.js} +50 -69
  134. package/dist/{chunk-5gynx4xn.js.map → chunk-qv38twt8.js.map} +8 -8
  135. package/dist/{chunk-bhxaq2nn.js → chunk-qw9gvjv5.js} +1 -1
  136. package/dist/{chunk-8gv5z0zm.js → chunk-rp1mvzb4.js} +6 -6
  137. package/dist/{chunk-1e8m6yn3.js → chunk-rre42skh.js} +182 -18
  138. package/dist/chunk-rre42skh.js.map +39 -0
  139. package/dist/{chunk-ghteq96b.js → chunk-s5y30bc9.js} +2 -2
  140. package/dist/{chunk-a31h57d5.js → chunk-tn7xcs2n.js} +2 -2
  141. package/dist/{chunk-6gjqgd3d.js → chunk-tpnd31c1.js} +2 -1
  142. package/dist/chunk-tpnd31c1.js.map +11 -0
  143. package/dist/chunk-trxxmgnf.js +68 -0
  144. package/dist/chunk-trxxmgnf.js.map +11 -0
  145. package/dist/{chunk-e42bc6m3.js → chunk-vjjv9mrb.js} +2 -2
  146. package/dist/{chunk-8b55ygje.js → chunk-w3e09qqk.js} +1 -1
  147. package/dist/{chunk-ckxfnx7f.js → chunk-wjgm6jjt.js} +2 -2
  148. package/dist/{chunk-3j7573mj.js → chunk-x0qhkqje.js} +2 -2
  149. package/dist/{chunk-dysw7nsm.js → chunk-xdpwpkha.js} +2 -2
  150. package/dist/{chunk-a44d5zgd.js → chunk-y35ma3mj.js} +11 -16
  151. package/dist/{chunk-a44d5zgd.js.map → chunk-y35ma3mj.js.map} +3 -4
  152. package/dist/{chunk-qewtks41.js → chunk-z2sery1b.js} +64 -1
  153. package/dist/{chunk-qewtks41.js.map → chunk-z2sery1b.js.map} +3 -3
  154. package/dist/error-reporting/internal.js +4 -4
  155. package/dist/error-reporting/types.d.ts +7 -2
  156. package/dist/error-reporting/types.d.ts.map +1 -1
  157. package/dist/errors/catalog.d.ts +8 -0
  158. package/dist/errors/catalog.d.ts.map +1 -1
  159. package/dist/errors/internal.js +2 -2
  160. package/dist/events/index.js +4 -4
  161. package/dist/execution/agent.d.ts +18 -9
  162. package/dist/execution/agent.d.ts.map +1 -1
  163. package/dist/execution/agent.js +52 -43
  164. package/dist/execution/agent.js.map +1 -1
  165. package/dist/execution/authorization.d.ts +14 -4
  166. package/dist/execution/authorization.d.ts.map +1 -1
  167. package/dist/execution/primitive.js +45 -43
  168. package/dist/execution/primitive.js.map +2 -2
  169. package/dist/execution/request.d.ts +3 -1
  170. package/dist/execution/request.d.ts.map +1 -1
  171. package/dist/execution/request.js +46 -44
  172. package/dist/execution/request.js.map +3 -3
  173. package/dist/execution/types.d.ts +1 -1
  174. package/dist/execution/types.d.ts.map +1 -1
  175. package/dist/http/api-routes.d.ts.map +1 -1
  176. package/dist/http/index.js +1 -1
  177. package/dist/index.d.ts +9 -6
  178. package/dist/index.d.ts.map +1 -1
  179. package/dist/index.js +82 -77
  180. package/dist/index.js.map +1 -1
  181. package/dist/json.d.ts +2 -0
  182. package/dist/json.d.ts.map +1 -1
  183. package/dist/lake-storage/index.js +5 -5
  184. package/dist/logging/index.js +3 -3
  185. package/dist/logging/types.js +2 -2
  186. package/dist/materialization/index.js +2 -2
  187. package/dist/materializer/index.js +33 -29
  188. package/dist/materializer/index.js.map +1 -1
  189. package/dist/models/catalog.d.ts +40 -0
  190. package/dist/models/catalog.d.ts.map +1 -0
  191. package/dist/models/definitions.d.ts +25 -0
  192. package/dist/models/definitions.d.ts.map +1 -0
  193. package/dist/models/errors.d.ts +52 -0
  194. package/dist/models/errors.d.ts.map +1 -0
  195. package/dist/models/events.d.ts +192 -0
  196. package/dist/models/events.d.ts.map +1 -0
  197. package/dist/models/index.d.ts +17 -39
  198. package/dist/models/index.d.ts.map +1 -1
  199. package/dist/models/index.js +50 -0
  200. package/dist/models/index.js.map +9 -0
  201. package/dist/models/language-model.d.ts +90 -0
  202. package/dist/models/language-model.d.ts.map +1 -0
  203. package/dist/models/messages.d.ts +74 -0
  204. package/dist/models/messages.d.ts.map +1 -0
  205. package/dist/models/pricing.d.ts +69 -0
  206. package/dist/models/pricing.d.ts.map +1 -0
  207. package/dist/models/rate-card.d.ts +24 -0
  208. package/dist/models/rate-card.d.ts.map +1 -0
  209. package/dist/models/tools.d.ts +24 -0
  210. package/dist/models/tools.d.ts.map +1 -0
  211. package/dist/objects/index.js +38 -34
  212. package/dist/objects/index.js.map +1 -1
  213. package/dist/objects/query/index.js +32 -28
  214. package/dist/objects/query/index.js.map +1 -1
  215. package/dist/ontology/index.js +5 -5
  216. package/dist/ontology/internal.js +4 -4
  217. package/dist/pipelines/index.js +37 -35
  218. package/dist/pipelines/index.js.map +1 -1
  219. package/dist/projections/internal.js +35 -31
  220. package/dist/projections/internal.js.map +1 -1
  221. package/dist/queues/in-memory.d.ts +3 -2
  222. package/dist/queues/in-memory.d.ts.map +1 -1
  223. package/dist/queues/index.d.ts +3 -1
  224. package/dist/queues/index.d.ts.map +1 -1
  225. package/dist/queues/index.js +1 -1
  226. package/dist/queues/types.d.ts +15 -3
  227. package/dist/queues/types.d.ts.map +1 -1
  228. package/dist/runtime/create.d.ts +4 -4
  229. package/dist/runtime/create.d.ts.map +1 -1
  230. package/dist/runtime/definitions.d.ts +2 -2
  231. package/dist/runtime/definitions.d.ts.map +1 -1
  232. package/dist/runtime/host.d.ts +3 -2
  233. package/dist/runtime/host.d.ts.map +1 -1
  234. package/dist/runtime/resolve-definitions.d.ts +2 -2
  235. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  236. package/dist/runtime/sixb.d.ts +4 -2
  237. package/dist/runtime/sixb.d.ts.map +1 -1
  238. package/dist/security/every.d.ts +1 -4
  239. package/dist/security/every.d.ts.map +1 -1
  240. package/dist/security/grants.d.ts +6 -5
  241. package/dist/security/grants.d.ts.map +1 -1
  242. package/dist/security/index.d.ts +1 -1
  243. package/dist/security/index.d.ts.map +1 -1
  244. package/dist/security/registry.d.ts +1 -1
  245. package/dist/security/registry.d.ts.map +1 -1
  246. package/dist/security/types.d.ts +13 -5
  247. package/dist/security/types.d.ts.map +1 -1
  248. package/dist/security/validation.d.ts +4 -2
  249. package/dist/security/validation.d.ts.map +1 -1
  250. package/dist/storage/action-runs/failure.js +3 -3
  251. package/dist/storage/action-runs/provider.js +2 -2
  252. package/dist/storage/agents/errors.d.ts +1 -1
  253. package/dist/storage/agents/errors.d.ts.map +1 -1
  254. package/dist/storage/agents/in-memory.d.ts +3 -2
  255. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  256. package/dist/storage/agents/index.d.ts +1 -1
  257. package/dist/storage/agents/index.d.ts.map +1 -1
  258. package/dist/storage/agents/provider.d.ts +11 -4
  259. package/dist/storage/agents/provider.d.ts.map +1 -1
  260. package/dist/storage/agents/provider.js +18 -15
  261. package/dist/storage/agents/provider.js.map +1 -1
  262. package/dist/storage/agents/types.d.ts +65 -17
  263. package/dist/storage/agents/types.d.ts.map +1 -1
  264. package/dist/storage/ai-cost/analytics.d.ts +2 -1
  265. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  266. package/dist/storage/ai-cost/codec.d.ts +3 -2
  267. package/dist/storage/ai-cost/codec.d.ts.map +1 -1
  268. package/dist/storage/ai-cost/groups.d.ts +51 -0
  269. package/dist/storage/ai-cost/groups.d.ts.map +1 -0
  270. package/dist/storage/ai-cost/in-memory.d.ts +11 -1
  271. package/dist/storage/ai-cost/in-memory.d.ts.map +1 -1
  272. package/dist/storage/ai-cost/index.d.ts +1 -1
  273. package/dist/storage/ai-cost/index.d.ts.map +1 -1
  274. package/dist/storage/ai-cost/provider.d.ts +2 -0
  275. package/dist/storage/ai-cost/provider.d.ts.map +1 -1
  276. package/dist/storage/ai-cost/provider.js +29 -13
  277. package/dist/storage/ai-cost/provider.js.map +3 -3
  278. package/dist/storage/ai-cost/types.d.ts +64 -15
  279. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  280. package/dist/storage/ai-cost/validation.d.ts +2 -1
  281. package/dist/storage/ai-cost/validation.d.ts.map +1 -1
  282. package/dist/storage/ai-limits/enforcement.d.ts +14 -0
  283. package/dist/storage/ai-limits/enforcement.d.ts.map +1 -0
  284. package/dist/storage/ai-limits/enforcement.js +21 -0
  285. package/dist/storage/ai-limits/enforcement.js.map +9 -0
  286. package/dist/storage/ai-limits/errors.d.ts +8 -0
  287. package/dist/storage/ai-limits/errors.d.ts.map +1 -0
  288. package/dist/storage/ai-limits/in-memory.d.ts +78 -0
  289. package/dist/storage/ai-limits/in-memory.d.ts.map +1 -0
  290. package/dist/storage/ai-limits/index.d.ts +7 -0
  291. package/dist/storage/ai-limits/index.d.ts.map +1 -0
  292. package/dist/storage/ai-limits/period.d.ts +4 -0
  293. package/dist/storage/ai-limits/period.d.ts.map +1 -0
  294. package/dist/storage/ai-limits/provider.d.ts +85 -0
  295. package/dist/storage/ai-limits/provider.d.ts.map +1 -0
  296. package/dist/storage/ai-limits/provider.js +62 -0
  297. package/dist/storage/ai-limits/provider.js.map +9 -0
  298. package/dist/storage/ai-limits/types.d.ts +175 -0
  299. package/dist/storage/ai-limits/types.d.ts.map +1 -0
  300. package/dist/storage/ai-usage/in-memory.d.ts +4 -0
  301. package/dist/storage/ai-usage/in-memory.d.ts.map +1 -1
  302. package/dist/storage/ai-usage/record.d.ts.map +1 -1
  303. package/dist/storage/ai-usage/types.d.ts +6 -2
  304. package/dist/storage/ai-usage/types.d.ts.map +1 -1
  305. package/dist/storage/auth/errors.d.ts +1 -1
  306. package/dist/storage/auth/errors.d.ts.map +1 -1
  307. package/dist/storage/auth/in-memory/auth-storage.d.ts +4 -1
  308. package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
  309. package/dist/storage/auth/in-memory/device-authorizations.d.ts +29 -0
  310. package/dist/storage/auth/in-memory/device-authorizations.d.ts.map +1 -0
  311. package/dist/storage/auth/in-memory/shared.d.ts +3 -1
  312. package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
  313. package/dist/storage/auth/index.d.ts +2 -1
  314. package/dist/storage/auth/index.d.ts.map +1 -1
  315. package/dist/storage/auth/types.d.ts +66 -0
  316. package/dist/storage/auth/types.d.ts.map +1 -1
  317. package/dist/storage/connector-connections/provider.js +2 -2
  318. package/dist/storage/executions/provider.js +1 -1
  319. package/dist/storage/executions/run-link.d.ts +7 -2
  320. package/dist/storage/executions/run-link.d.ts.map +1 -1
  321. package/dist/storage/executions/validation.d.ts.map +1 -1
  322. package/dist/storage/in-memory/index.d.ts +4 -0
  323. package/dist/storage/in-memory/index.d.ts.map +1 -1
  324. package/dist/storage/index.d.ts +7 -4
  325. package/dist/storage/index.d.ts.map +1 -1
  326. package/dist/storage/index.js +51 -38
  327. package/dist/storage/index.js.map +1 -1
  328. package/dist/storage/ontology/provider.js +3 -3
  329. package/dist/storage/pipeline-runs/provider.js +2 -2
  330. package/dist/storage/projection-runs/provider.js +4 -4
  331. package/dist/storage/sync-runs/provider.js +2 -2
  332. package/dist/storage/types.d.ts +5 -1
  333. package/dist/storage/types.d.ts.map +1 -1
  334. package/dist/storage/webhook-runs/provider.js +2 -2
  335. package/dist/storage/workflow-runs/provider.d.ts +1 -1
  336. package/dist/storage/workflow-runs/provider.js +10 -11
  337. package/dist/storage/workflow-runs/provider.js.map +1 -1
  338. package/dist/storage/workflow-runs/types.d.ts +5 -4
  339. package/dist/storage/workflow-runs/types.d.ts.map +1 -1
  340. package/dist/syncs/index.js +37 -35
  341. package/dist/syncs/index.js.map +1 -1
  342. package/dist/testing/agent-execution.d.ts +3 -1
  343. package/dist/testing/agent-execution.d.ts.map +1 -1
  344. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  345. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  346. package/dist/testing/ai-limit-storage-contract.d.ts +18 -0
  347. package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -0
  348. package/dist/testing/ai-model-call-groups-contract.d.ts +6 -0
  349. package/dist/testing/ai-model-call-groups-contract.d.ts.map +1 -0
  350. package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
  351. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  352. package/dist/testing/index.d.ts +2 -0
  353. package/dist/testing/index.d.ts.map +1 -1
  354. package/dist/testing/index.js +3637 -1962
  355. package/dist/testing/index.js.map +14 -12
  356. package/dist/testing/queues-contract.d.ts.map +1 -1
  357. package/dist/webhooks/internal.js +32 -28
  358. package/dist/webhooks/internal.js.map +2 -2
  359. package/dist/workers/index.js +2 -2
  360. package/dist/workflows/agent-step-identity.d.ts +3 -0
  361. package/dist/workflows/agent-step-identity.d.ts.map +1 -0
  362. package/dist/workflows/builders.d.ts +2 -3
  363. package/dist/workflows/builders.d.ts.map +1 -1
  364. package/dist/workflows/execution.d.ts +1 -1
  365. package/dist/workflows/execution.d.ts.map +1 -1
  366. package/dist/workflows/failure.d.ts +1 -1
  367. package/dist/workflows/failure.d.ts.map +1 -1
  368. package/dist/workflows/index.d.ts +3 -2
  369. package/dist/workflows/index.d.ts.map +1 -1
  370. package/dist/workflows/index.js +53 -45
  371. package/dist/workflows/index.js.map +1 -1
  372. package/dist/workflows/types.d.ts +26 -11
  373. package/dist/workflows/types.d.ts.map +1 -1
  374. package/dist/workflows/validation.d.ts +7 -1
  375. package/dist/workflows/validation.d.ts.map +1 -1
  376. package/package.json +19 -4
  377. package/src/agents/adapters.ts +109 -115
  378. package/src/agents/authority.ts +214 -32
  379. package/src/agents/builders.ts +3 -50
  380. package/src/agents/context-compaction.ts +4 -0
  381. package/src/agents/dispatch.ts +59 -2
  382. package/src/agents/errors.ts +5 -2
  383. package/src/agents/execution.ts +53 -52
  384. package/src/agents/ids.ts +16 -1
  385. package/src/agents/index.ts +23 -11
  386. package/src/agents/message.ts +18 -9
  387. package/src/agents/model-loop.ts +1023 -0
  388. package/src/agents/reference.ts +7 -0
  389. package/src/agents/request.ts +141 -74
  390. package/src/agents/retired-config.ts +20 -0
  391. package/src/agents/streams.ts +45 -19
  392. package/src/agents/tool-catalog.ts +21 -0
  393. package/src/agents/tool-definition.ts +23 -0
  394. package/src/agents/types.ts +39 -81
  395. package/src/agents/validation.ts +34 -180
  396. package/src/ai-usage/execution.ts +196 -0
  397. package/src/ai-usage/index.ts +15 -0
  398. package/src/authorization/decision.ts +27 -10
  399. package/src/authorization/grant-kinds.ts +62 -15
  400. package/src/authorization/index.ts +1 -0
  401. package/src/authorization/resolve.ts +12 -5
  402. package/src/authorization/types.ts +7 -5
  403. package/src/bootstrap/discovery.ts +0 -3
  404. package/src/error-reporting/types.ts +4 -2
  405. package/src/errors/catalog.ts +8 -0
  406. package/src/execution/agent.ts +129 -22
  407. package/src/execution/authorization.ts +48 -18
  408. package/src/execution/request.ts +4 -1
  409. package/src/execution/types.ts +1 -1
  410. package/src/http/api-routes.ts +63 -0
  411. package/src/index.ts +36 -7
  412. package/src/json.ts +9 -0
  413. package/src/models/catalog.ts +137 -0
  414. package/src/models/definitions.ts +202 -0
  415. package/src/models/errors.ts +83 -0
  416. package/src/models/events.ts +198 -0
  417. package/src/models/index.ts +89 -71
  418. package/src/models/language-model.ts +143 -0
  419. package/src/models/messages.ts +78 -0
  420. package/src/models/pricing.ts +390 -0
  421. package/src/models/rate-card.ts +101 -0
  422. package/src/models/tools.ts +29 -0
  423. package/src/queues/in-memory.ts +5 -0
  424. package/src/queues/index.ts +11 -0
  425. package/src/queues/types.ts +20 -3
  426. package/src/runtime/create.ts +7 -5
  427. package/src/runtime/definitions.ts +2 -2
  428. package/src/runtime/host.ts +3 -2
  429. package/src/runtime/resolve-definitions.ts +13 -36
  430. package/src/runtime/sixb.ts +6 -8
  431. package/src/security/every.ts +0 -4
  432. package/src/security/grants.ts +55 -11
  433. package/src/security/index.ts +2 -0
  434. package/src/security/registry.ts +6 -5
  435. package/src/security/types.ts +15 -4
  436. package/src/security/validation.ts +30 -9
  437. package/src/storage/agents/errors.ts +1 -0
  438. package/src/storage/agents/in-memory.ts +121 -11
  439. package/src/storage/agents/index.ts +7 -0
  440. package/src/storage/agents/provider.ts +150 -6
  441. package/src/storage/agents/types.ts +73 -16
  442. package/src/storage/ai-cost/analytics.ts +63 -6
  443. package/src/storage/ai-cost/codec.ts +37 -12
  444. package/src/storage/ai-cost/groups.ts +248 -0
  445. package/src/storage/ai-cost/in-memory.ts +42 -0
  446. package/src/storage/ai-cost/index.ts +6 -0
  447. package/src/storage/ai-cost/provider.ts +7 -0
  448. package/src/storage/ai-cost/types.ts +76 -14
  449. package/src/storage/ai-cost/validation.ts +147 -17
  450. package/src/storage/ai-limits/enforcement.ts +68 -0
  451. package/src/storage/ai-limits/errors.ts +23 -0
  452. package/src/storage/ai-limits/in-memory.ts +671 -0
  453. package/src/storage/ai-limits/index.ts +31 -0
  454. package/src/storage/ai-limits/period.ts +11 -0
  455. package/src/storage/ai-limits/provider.ts +430 -0
  456. package/src/storage/ai-limits/types.ts +195 -0
  457. package/src/storage/ai-usage/in-memory.ts +13 -0
  458. package/src/storage/ai-usage/record.ts +17 -0
  459. package/src/storage/ai-usage/types.ts +6 -2
  460. package/src/storage/auth/errors.ts +6 -0
  461. package/src/storage/auth/in-memory/auth-storage.ts +69 -0
  462. package/src/storage/auth/in-memory/device-authorizations.ts +145 -0
  463. package/src/storage/auth/in-memory/shared.ts +7 -0
  464. package/src/storage/auth/index.ts +7 -0
  465. package/src/storage/auth/types.ts +73 -0
  466. package/src/storage/executions/run-link.ts +16 -6
  467. package/src/storage/executions/validation.ts +36 -6
  468. package/src/storage/in-memory/index.ts +48 -4
  469. package/src/storage/index.ts +51 -1
  470. package/src/storage/types.ts +37 -0
  471. package/src/storage/workflow-runs/in-memory.ts +3 -3
  472. package/src/storage/workflow-runs/provider.ts +2 -2
  473. package/src/storage/workflow-runs/types.ts +6 -3
  474. package/src/testing/agent-execution.ts +40 -28
  475. package/src/testing/agent-storage-contract.ts +249 -28
  476. package/src/testing/ai-cost-storage-contract.ts +96 -8
  477. package/src/testing/ai-limit-storage-contract.ts +1134 -0
  478. package/src/testing/ai-model-call-groups-contract.ts +353 -0
  479. package/src/testing/ai-usage-storage-contract.ts +31 -0
  480. package/src/testing/auth-storage-contract.ts +85 -0
  481. package/src/testing/execution-storage-contract.ts +2 -2
  482. package/src/testing/index.ts +10 -0
  483. package/src/testing/queues-contract.ts +36 -1
  484. package/src/workflows/agent-step-identity.ts +4 -0
  485. package/src/workflows/builders.ts +95 -9
  486. package/src/workflows/execution.ts +2 -2
  487. package/src/workflows/failure.ts +2 -2
  488. package/src/workflows/index.ts +3 -0
  489. package/src/workflows/types.ts +23 -11
  490. package/src/workflows/validation.ts +100 -7
  491. package/dist/chunk-1e8m6yn3.js.map +0 -37
  492. package/dist/chunk-1g8negke.js.map +0 -11
  493. package/dist/chunk-6gjqgd3d.js.map +0 -11
  494. package/dist/chunk-dm72y8wt.js.map +0 -10
  495. package/dist/chunk-drjqm1aa.js.map +0 -15
  496. package/dist/chunk-fe5ev6mr.js +0 -55
  497. package/dist/chunk-fe5ev6mr.js.map +0 -11
  498. package/dist/chunk-h9kxd41f.js.map +0 -11
  499. package/dist/chunk-hceck7dq.js +0 -137
  500. package/dist/chunk-hceck7dq.js.map +0 -10
  501. package/dist/chunk-n4spznws.js.map +0 -11
  502. package/dist/chunk-nva1xkjz.js.map +0 -46
  503. package/dist/chunk-t0jjkep3.js.map +0 -10
  504. package/dist/chunk-t8t39h7v.js.map +0 -10
  505. /package/dist/{chunk-zqysyfjt.js.map → chunk-08m3b6w8.js.map} +0 -0
  506. /package/dist/{chunk-xkthy56g.js.map → chunk-1kamz6j0.js.map} +0 -0
  507. /package/dist/{chunk-md8k0r54.js.map → chunk-3fqt22c4.js.map} +0 -0
  508. /package/dist/{chunk-z3zp0bj1.js.map → chunk-407j3msh.js.map} +0 -0
  509. /package/dist/{chunk-rhrbz7d4.js.map → chunk-4a849fr1.js.map} +0 -0
  510. /package/dist/{chunk-62c7t4jc.js.map → chunk-4nxeacx7.js.map} +0 -0
  511. /package/dist/{chunk-cy0n5dms.js.map → chunk-5jcdmjam.js.map} +0 -0
  512. /package/dist/{chunk-819wnjz8.js.map → chunk-64sr682n.js.map} +0 -0
  513. /package/dist/{chunk-x2yw73hy.js.map → chunk-7ds9620f.js.map} +0 -0
  514. /package/dist/{chunk-72q2y8hn.js.map → chunk-8tsf6dmc.js.map} +0 -0
  515. /package/dist/{chunk-nkbfrt0c.js.map → chunk-9aehf39w.js.map} +0 -0
  516. /package/dist/{chunk-ezake7g1.js.map → chunk-agsvg9ar.js.map} +0 -0
  517. /package/dist/{chunk-rnshztfq.js.map → chunk-d63tybny.js.map} +0 -0
  518. /package/dist/{chunk-vybf6pkp.js.map → chunk-dbc80ad7.js.map} +0 -0
  519. /package/dist/{chunk-4gz41why.js.map → chunk-dqn23610.js.map} +0 -0
  520. /package/dist/{chunk-tg5mee00.js.map → chunk-ha58tjtt.js.map} +0 -0
  521. /package/dist/{chunk-f6erf2vv.js.map → chunk-hdz94br2.js.map} +0 -0
  522. /package/dist/{chunk-dsrkgtnh.js.map → chunk-jq43kdvk.js.map} +0 -0
  523. /package/dist/{chunk-wtmzkcht.js.map → chunk-k34z5rvh.js.map} +0 -0
  524. /package/dist/{chunk-htq0qh7z.js.map → chunk-ka3a2ft3.js.map} +0 -0
  525. /package/dist/{chunk-znagycq7.js.map → chunk-kt81c11h.js.map} +0 -0
  526. /package/dist/{chunk-f2rt4vkh.js.map → chunk-n2w475r0.js.map} +0 -0
  527. /package/dist/{chunk-bhxaq2nn.js.map → chunk-qw9gvjv5.js.map} +0 -0
  528. /package/dist/{chunk-8gv5z0zm.js.map → chunk-rp1mvzb4.js.map} +0 -0
  529. /package/dist/{chunk-ghteq96b.js.map → chunk-s5y30bc9.js.map} +0 -0
  530. /package/dist/{chunk-a31h57d5.js.map → chunk-tn7xcs2n.js.map} +0 -0
  531. /package/dist/{chunk-e42bc6m3.js.map → chunk-vjjv9mrb.js.map} +0 -0
  532. /package/dist/{chunk-8b55ygje.js.map → chunk-w3e09qqk.js.map} +0 -0
  533. /package/dist/{chunk-ckxfnx7f.js.map → chunk-wjgm6jjt.js.map} +0 -0
  534. /package/dist/{chunk-3j7573mj.js.map → chunk-x0qhkqje.js.map} +0 -0
  535. /package/dist/{chunk-dysw7nsm.js.map → chunk-xdpwpkha.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  import type { Principal } from "../auth"
2
- import { emptyGrantSets, GRANT_KIND_KEYS } from "../authorization/grant-kinds"
2
+ import { emptyGrantSets, TARGETED_GRANT_KIND_KEYS } from "../authorization/grant-kinds"
3
3
  import type { AuthorizationContext, GrantIndex } from "../authorization/types"
4
4
  import { createSixbError } from "../errors/internal"
5
5
  import {
@@ -27,6 +27,8 @@ export type ResolvedRuntimeAuthorization =
27
27
  readonly type: "unrestricted"
28
28
  readonly projectId: string
29
29
  readonly ref: Exclude<AuthorizationRef, { readonly type: "principal" }>
30
+ /** Process-local binding used by provider façades that explicitly support agent runs. */
31
+ readonly executionBinding?: AgentExecutionBinding
30
32
  }
31
33
  | { readonly type: "denied" }
32
34
 
@@ -42,7 +44,7 @@ type PrincipalAuthorizationContext = Omit<AuthorizationContext, "principal"> & {
42
44
  interface AgentExecutionBinding {
43
45
  readonly type: "agent"
44
46
  readonly executionId: string
45
- readonly agentId: string
47
+ readonly actorId?: string
46
48
  readonly runId: string
47
49
  }
48
50
 
@@ -56,25 +58,51 @@ export function createPrincipalRuntimeAuthorization(input: {
56
58
  return createRegisteredPrincipalAuthorization(input)
57
59
  }
58
60
 
59
- /** Register service-account authority bound to one exact agent run. */
61
+ /** Register restored authority bound to one exact agent run. */
60
62
  export function createAgentRuntimeAuthorization(input: {
61
63
  readonly projectId: string
62
- readonly context: AuthorizationContext
63
64
  readonly executionId: string
64
- readonly agentId: string
65
+ readonly actorId?: string
65
66
  readonly runId: string
67
+ readonly authority:
68
+ | {
69
+ readonly type: "principal"
70
+ readonly context: AuthorizationContext
71
+ readonly credential?: Extract<
72
+ AuthorizationRef,
73
+ { readonly type: "principal" }
74
+ >["credential"]
75
+ }
76
+ | { readonly type: "disabled" }
66
77
  }): RuntimeAuthorization {
67
- if (input.context.principal.type !== "serviceAccount") {
68
- throw new Error("[Sixb] Agent execution authority must belong to a service account.")
69
- }
70
78
  assertNonEmpty(input.executionId, "Execution id")
71
- assertNonEmpty(input.agentId, "Agent id")
79
+ if (input.actorId !== undefined) assertNonEmpty(input.actorId, "Agent actor id")
72
80
  assertNonEmpty(input.runId, "Agent run id")
73
- return createRegisteredPrincipalAuthorization(input, {
81
+ const executionBinding: AgentExecutionBinding = {
74
82
  type: "agent",
75
83
  executionId: input.executionId,
76
- agentId: input.agentId,
84
+ ...(input.actorId === undefined ? {} : { actorId: input.actorId }),
77
85
  runId: input.runId,
86
+ }
87
+
88
+ if (input.authority.type === "principal") {
89
+ return createRegisteredPrincipalAuthorization(
90
+ {
91
+ projectId: input.projectId,
92
+ context: input.authority.context,
93
+ ...(input.authority.credential === undefined
94
+ ? {}
95
+ : { credential: input.authority.credential }),
96
+ },
97
+ executionBinding
98
+ )
99
+ }
100
+
101
+ return register({
102
+ type: "unrestricted",
103
+ projectId: input.projectId,
104
+ ref: Object.freeze({ type: "disabled" }),
105
+ executionBinding: Object.freeze(executionBinding),
78
106
  })
79
107
  }
80
108
 
@@ -246,13 +274,9 @@ export function resolveExecutionScopeAuthorization(
246
274
 
247
275
  case "agent":
248
276
  if (
249
- resolved.type !== "principal" ||
250
- resolved.ref.type !== "principal" ||
251
- resolved.ref.principal.type !== "serviceAccount" ||
252
- resolved.ref.credential !== undefined ||
253
277
  resolved.executionBinding?.type !== "agent" ||
254
278
  resolved.executionBinding.executionId !== execution.id ||
255
- resolved.executionBinding.agentId !== execution.executor.agentId ||
279
+ resolved.executionBinding.actorId !== execution.executor.actorId ||
256
280
  resolved.executionBinding.runId !== execution.executor.runId
257
281
  ) {
258
282
  throw invalidExecutionAuthority(
@@ -260,7 +284,12 @@ export function resolveExecutionScopeAuthorization(
260
284
  "agent authority does not match its execution binding"
261
285
  )
262
286
  }
263
- return resolved
287
+ if (resolved.type === "principal" && resolved.ref.type === "principal") return resolved
288
+ if (resolved.type === "unrestricted" && resolved.ref.type === "disabled") return resolved
289
+ throw invalidExecutionAuthority(
290
+ execution.id,
291
+ "agent authority must be principal or explicitly disabled"
292
+ )
264
293
 
265
294
  case "kernel":
266
295
  if (
@@ -305,7 +334,8 @@ function snapshotAuthorizationContext(
305
334
  ): PrincipalAuthorizationContext {
306
335
  const principal = snapshotAuthorizablePrincipal(context.principal)
307
336
  const grants = emptyGrantSets()
308
- for (const kind of GRANT_KIND_KEYS) {
337
+ grants["run:agent"] = context.grants["run:agent"]
338
+ for (const kind of TARGETED_GRANT_KIND_KEYS) {
309
339
  grants[kind] = new Set(context.grants[kind])
310
340
  }
311
341
  const frozenGrants: GrantIndex = Object.freeze(grants)
@@ -9,13 +9,15 @@ export type { ActionRunsRuntime, ActionsRuntime } from "../actions/execution"
9
9
  export type {
10
10
  AgentRunListResult,
11
11
  AgentRunsRuntime,
12
+ AgentRuntime,
12
13
  AgentRunView,
13
- AgentsRuntime,
14
14
  AgentThreadsRuntime,
15
15
  CreateExecutionAgentThreadInput,
16
16
  ExecutionAgentRequestInput,
17
+ ExecutionAgentRunResult,
17
18
  ListExecutionAgentThreadsInput,
18
19
  } from "../agents/execution"
20
+ export type { AgentDescriptor } from "../agents/types"
19
21
  export type { AuthorizationContext } from "../authorization"
20
22
  export type { DatasetsRuntime } from "../datasets/execution"
21
23
  export type { EventsRuntime } from "../events/execution"
@@ -35,6 +37,7 @@ export type {
35
37
  } from "../projections/execution"
36
38
  export type { RuleStatesRuntime, RulesRuntime } from "../rules/execution"
37
39
  export type { Sixb } from "../runtime/sixb"
40
+ export type { AgentThreadRecord, ListAgentThreadsResult } from "../storage/agents"
38
41
  export type { SyncRunsRuntime, SyncsRuntime } from "../syncs/execution"
39
42
  export type {
40
43
  LatestWorkflowRunListResult,
@@ -33,7 +33,7 @@ export type ExecutionExecutor =
33
33
  readonly id: string
34
34
  readonly runId: string
35
35
  }
36
- | { readonly type: "agent"; readonly agentId: string; readonly runId: string }
36
+ | { readonly type: "agent"; readonly actorId?: string; readonly runId: string }
37
37
  | { readonly type: "kernel"; readonly operation: KernelOperation }
38
38
 
39
39
  /**
@@ -406,6 +406,69 @@ export const SIXB_API_ROUTES: readonly SixbApiRoute[] = [
406
406
  accessToken: true,
407
407
  agentApi: false,
408
408
  },
409
+ {
410
+ operationId: "getAiAccountingOverview",
411
+ method: "GET",
412
+ path: "/api/ai/accounting/overview",
413
+ accessToken: true,
414
+ agentApi: false,
415
+ },
416
+ {
417
+ operationId: "listAiModelCalls",
418
+ method: "GET",
419
+ path: "/api/ai/model-calls",
420
+ accessToken: true,
421
+ agentApi: false,
422
+ },
423
+ {
424
+ operationId: "listAiModelCallGroups",
425
+ method: "GET",
426
+ path: "/api/ai/model-call-groups",
427
+ accessToken: true,
428
+ agentApi: false,
429
+ },
430
+ {
431
+ operationId: "listAiLimitPolicies",
432
+ method: "GET",
433
+ path: "/api/ai/limits",
434
+ accessToken: true,
435
+ agentApi: false,
436
+ },
437
+ {
438
+ operationId: "getAiLimitStatus",
439
+ method: "GET",
440
+ path: "/api/ai/limits/status",
441
+ accessToken: true,
442
+ agentApi: false,
443
+ },
444
+ {
445
+ operationId: "getAiLimitSubjectOptions",
446
+ method: "GET",
447
+ path: "/api/ai/limits/subjects",
448
+ accessToken: true,
449
+ agentApi: false,
450
+ },
451
+ {
452
+ operationId: "createAiLimitPolicy",
453
+ method: "POST",
454
+ path: "/api/ai/limits",
455
+ accessToken: true,
456
+ agentApi: false,
457
+ },
458
+ {
459
+ operationId: "updateAiLimitPolicy",
460
+ method: "PUT",
461
+ path: "/api/ai/limits/:limitId",
462
+ accessToken: true,
463
+ agentApi: false,
464
+ },
465
+ {
466
+ operationId: "deleteAiLimitPolicy",
467
+ method: "DELETE",
468
+ path: "/api/ai/limits/:limitId",
469
+ accessToken: true,
470
+ agentApi: false,
471
+ },
409
472
  ]
410
473
 
411
474
  // Enforce the subset invariant at module load: a gateway-proxied route must also be a bearer route,
package/src/index.ts CHANGED
@@ -427,10 +427,28 @@ export {
427
427
  resolveAuthorizationContext,
428
428
  } from "./authorization"
429
429
 
430
+ // ── AI usage ───────────────────────────────────────────────
431
+
432
+ export type {
433
+ AiUsageLimitGroupOption,
434
+ AiUsageLimitServiceAccountOption,
435
+ AiUsageLimitSubjectOptions,
436
+ AiUsageLimitUserOption,
437
+ AiUsageRuntime,
438
+ CreateAiUsageLimitPolicyInput,
439
+ ListAiUsageLimitPoliciesInput,
440
+ ListAiUsageLimitStatusesInput,
441
+ ListAiUsageModelCallGroupsInput,
442
+ ListAiUsageModelCallsInput,
443
+ QueryAiUsageOverviewInput,
444
+ UpdateAiUsageLimitPolicyInput,
445
+ } from "./ai-usage"
446
+
430
447
  // ── Security Definitions ───────────────────────────────────
431
448
 
432
449
  export type {
433
450
  AccessGrant,
451
+ AgentRunGrant,
434
452
  AppendGrant,
435
453
  ApplicationDefinition,
436
454
  ApplyGrant,
@@ -445,6 +463,7 @@ export type {
445
463
  GroupDefinition,
446
464
  GroupReference,
447
465
  ManageGrant,
466
+ ManageGrantTarget,
448
467
  MembershipOperation,
449
468
  MembershipPolicyDefinition,
450
469
  ObserveGrant,
@@ -748,6 +767,7 @@ export type {
748
767
  AgentStepPrompt,
749
768
  AgentStepPromptBuilder,
750
769
  AgentStepPromptContext,
770
+ DefineAgentStepConfig,
751
771
  InferAgentStepInput,
752
772
  InferAgentStepOutput,
753
773
  InferInterventionInput,
@@ -827,8 +847,8 @@ export type { ActionRunsRuntime, ActionsRuntime } from "./actions/execution"
827
847
  export type {
828
848
  AgentRunListResult,
829
849
  AgentRunsRuntime,
850
+ AgentRuntime,
830
851
  AgentRunView,
831
- AgentsRuntime,
832
852
  AgentThreadsRuntime,
833
853
  ExecutionAgentRunResult,
834
854
  } from "./agents/execution"
@@ -857,6 +877,12 @@ export type {
857
877
  OntologyOperationalStatus,
858
878
  SixbReadiness,
859
879
  } from "./maintenance"
880
+ export type {
881
+ LanguageModel,
882
+ LanguageModelDefinition,
883
+ LanguageModelRateCard,
884
+ ProviderData,
885
+ } from "./models"
860
886
  export type {
861
887
  ExecutionObjectByIdHandle,
862
888
  ExecutionObjectSet,
@@ -949,18 +975,16 @@ export type {
949
975
  // ── Agents ──────────────────────────────────────────────────
950
976
 
951
977
  export type {
952
- AgentContextConfig,
953
978
  AgentContextEntryInput,
954
979
  AgentContextInput,
955
980
  AgentContextOrigin,
956
981
  AgentContextPart,
957
- AgentDefinition,
982
+ AgentDescriptor,
958
983
  AgentFileDataProjection,
959
984
  AgentFileDataResolverInput,
960
985
  AgentFilePart,
961
986
  AgentInboundUiMessage,
962
987
  AgentInboundUiMessagePart,
963
- AgentLoopConfig,
964
988
  AgentMessage,
965
989
  AgentMessagePart,
966
990
  AgentMessagePartType,
@@ -973,8 +997,11 @@ export type {
973
997
  AgentModelToolCallPart,
974
998
  AgentModelToolOutput,
975
999
  AgentModelToolResultPart,
1000
+ AgentProviderStatePart,
1001
+ AgentReasoning,
976
1002
  AgentReasoningLevel,
977
1003
  AgentReasoningPart,
1004
+ AgentReference,
978
1005
  AgentRequestErrorCode,
979
1006
  AgentStepStartPart,
980
1007
  AgentTextPart,
@@ -983,6 +1010,7 @@ export type {
983
1010
  AgentToolArtifacts,
984
1011
  AgentToolCallPart,
985
1012
  AgentToolCallState,
1013
+ AgentToolCatalog,
986
1014
  AgentToolContent,
987
1015
  AgentToolDefinition,
988
1016
  AgentToolDescriptionBuilder,
@@ -1000,7 +1028,7 @@ export type {
1000
1028
  AgentUiMessage,
1001
1029
  AgentUiMessagePart,
1002
1030
  AgentUiToolPart,
1003
- DefineAgentConfig,
1031
+ AgentUsageReference,
1004
1032
  InferAgentToolInput,
1005
1033
  InferAgentToolInputSchema,
1006
1034
  RequestAgentRunInput,
@@ -1011,22 +1039,23 @@ export {
1011
1039
  AgentDefinitionError,
1012
1040
  AgentRequestError,
1013
1041
  AgentToolPublicError,
1042
+ agent,
1014
1043
  agentContext,
1015
1044
  agentContextIdentity,
1016
- defineAgent,
1017
1045
  defineAgentTool,
1018
- isAgentDefinition,
1019
1046
  MAX_AGENT_APP_STATE_ENTRY_BYTES,
1020
1047
  MAX_AGENT_APP_STATE_TOTAL_BYTES,
1021
1048
  MAX_AGENT_CONTEXT_ENTRIES,
1022
1049
  requestAgentRun,
1023
1050
  } from "./agents"
1051
+ export type { AgentThreadRecord, ListAgentThreadsResult } from "./storage/agents"
1024
1052
 
1025
1053
  // ── Models ──────────────────────────────────────────────────
1026
1054
 
1027
1055
  export type {
1028
1056
  LanguageModelCatalog,
1029
1057
  LanguageModelEntry,
1058
+ LanguageModelRef,
1030
1059
  ModelCatalog,
1031
1060
  ModelCatalogInput,
1032
1061
  } from "./models"
package/src/json.ts CHANGED
@@ -21,6 +21,15 @@ export function assertJsonValue(value: unknown, label = "value"): asserts value
21
21
  }
22
22
  }
23
23
 
24
+ export function isJsonObject(value: unknown): value is JsonObject {
25
+ return isPlainRecord(value) && isJsonValue(value)
26
+ }
27
+
28
+ export function assertJsonObject(value: unknown, label = "value"): asserts value is JsonObject {
29
+ assertJsonValue(value, label)
30
+ if (!isPlainRecord(value)) throw new Error(`[Sixb] ${label} must be a JSON object.`)
31
+ }
32
+
24
33
  export function cloneJsonValue(value: ReadonlyJsonValue, label = "value"): JsonValue {
25
34
  assertJsonValue(value, label)
26
35
  return JSON.parse(JSON.stringify(value)) as JsonValue
@@ -0,0 +1,137 @@
1
+ import { RuntimeError } from "../runtime/errors"
2
+ import {
3
+ defineLanguageModel,
4
+ type LanguageModelDefinition,
5
+ type ModelDefinition,
6
+ } from "./definitions"
7
+ import type { LanguageModel } from "./language-model"
8
+
9
+ /** Stable identity of one configured language-model binding. */
10
+ export interface LanguageModelRef {
11
+ readonly provider: string
12
+ readonly modelId: string
13
+ }
14
+
15
+ /** The configured language models, with the project default. */
16
+ export interface LanguageModelCatalog {
17
+ readonly default: LanguageModelEntry
18
+ list(): readonly LanguageModelEntry[]
19
+ getByRef(ref: LanguageModelRef): LanguageModelEntry | null
20
+ }
21
+
22
+ /**
23
+ * One configured language model.
24
+ *
25
+ * The identity describes the configured binding, not only a vendor model. For example,
26
+ * A gateway binding and a direct provider binding for the same vendor model are distinct because their
27
+ * `provider` values differ.
28
+ */
29
+ export interface LanguageModelEntry extends LanguageModelRef {
30
+ readonly model: LanguageModel
31
+ }
32
+
33
+ /** Models a project allows Sixb to use, organized by technical model kind. */
34
+ export interface ModelCatalog {
35
+ readonly language: LanguageModelCatalog
36
+ }
37
+
38
+ export interface ModelCatalogInput {
39
+ /** Ordered; the first entry is the project default. */
40
+ readonly language: readonly LanguageModel[]
41
+ }
42
+
43
+ /** Build the immutable project model catalog. Rejects invalid, duplicate, and empty catalogs. */
44
+ export function createModelCatalog(input: ModelCatalogInput): ModelCatalog {
45
+ if (!Array.isArray(input?.language)) {
46
+ throw new RuntimeError("[Sixb] 'models.language' must be an array of Sixb language models.")
47
+ }
48
+
49
+ const entries: LanguageModelEntry[] = []
50
+ const byProvider = new Map<string, Map<string, LanguageModelEntry>>()
51
+
52
+ for (const [index, model] of input.language.entries()) {
53
+ assertLanguageModel(model, index)
54
+
55
+ let byModelId = byProvider.get(model.providerId)
56
+ if (byModelId === undefined) {
57
+ byModelId = new Map()
58
+ byProvider.set(model.providerId, byModelId)
59
+ }
60
+ if (byModelId.has(model.modelId)) {
61
+ throw new RuntimeError(
62
+ `[Sixb] Duplicate language model '${model.providerId}/${model.modelId}' in 'models'. Each provider and model id pair may be configured once.`
63
+ )
64
+ }
65
+
66
+ const entry = Object.freeze({
67
+ provider: model.providerId,
68
+ modelId: model.modelId,
69
+ model,
70
+ })
71
+ byModelId.set(model.modelId, entry)
72
+ entries.push(entry)
73
+ }
74
+
75
+ const [defaultEntry] = entries
76
+ if (defaultEntry === undefined) {
77
+ throw new RuntimeError(
78
+ "[Sixb] 'models.language' needs at least one model. Configure one or omit 'models' from createSixb()."
79
+ )
80
+ }
81
+
82
+ const listed = Object.freeze(entries.slice())
83
+ const language: LanguageModelCatalog = Object.freeze({
84
+ default: defaultEntry,
85
+ list: () => listed,
86
+ getByRef: (ref: LanguageModelRef) => byProvider.get(ref.provider)?.get(ref.modelId) ?? null,
87
+ })
88
+
89
+ return Object.freeze({ language })
90
+ }
91
+
92
+ function assertLanguageModel(model: unknown, index: number): asserts model is LanguageModel {
93
+ if ((typeof model !== "object" && typeof model !== "function") || model === null) {
94
+ throw invalidLanguageModel(index, "expected a Sixb LanguageModel instance")
95
+ }
96
+
97
+ const candidate = model as Record<string, unknown>
98
+ assertModelIdentifier(candidate.providerId, "provider", index)
99
+ assertModelIdentifier(candidate.modelId, "modelId", index)
100
+ if (typeof candidate.stream !== "function") {
101
+ throw invalidLanguageModel(index, "expected 'stream' to be a function")
102
+ }
103
+ try {
104
+ const definition = defineLanguageModel(candidate.definition as LanguageModelDefinition)
105
+ if (
106
+ definition.providerId !== candidate.providerId ||
107
+ definition.modelId !== candidate.modelId
108
+ ) {
109
+ throw new Error("definition identity does not match the binding")
110
+ }
111
+ } catch (error) {
112
+ throw invalidLanguageModel(index, error instanceof Error ? error.message : "invalid definition")
113
+ }
114
+ }
115
+
116
+ function assertModelIdentifier(value: unknown, field: "provider" | "modelId", index: number): void {
117
+ if (typeof value !== "string" || value.length === 0) {
118
+ throw invalidLanguageModel(index, `expected '${field}' to be a non-empty string`)
119
+ }
120
+ if (value.trim() !== value) {
121
+ throw invalidLanguageModel(index, `expected '${field}' not to have surrounding whitespace`)
122
+ }
123
+ }
124
+
125
+ function invalidLanguageModel(index: number, detail: string): RuntimeError {
126
+ return new RuntimeError(
127
+ `[Sixb] Invalid language model at 'models.language[${index}]': ${detail}.`
128
+ )
129
+ }
130
+
131
+ /** Provider-owned metadata lookup, independent from the project's configured bindings. */
132
+ export interface ModelDefinitionCatalog<TDefinition extends ModelDefinition = ModelDefinition> {
133
+ get(modelId: string): Promise<TDefinition | undefined>
134
+ list(): Promise<readonly TDefinition[]>
135
+ }
136
+
137
+ export type LanguageModelDefinitionCatalog = ModelDefinitionCatalog<LanguageModelDefinition>