@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
@@ -1,5 +1,8 @@
1
+ import type { AgentToolCatalog } from "../agents";
2
+ import type { ModelCatalog } from "../models";
1
3
  import type { SchemaOrRef, ValueType } from "../ontology";
2
4
  import type { ScheduleDefinition } from "../schedules";
5
+ import type { SecurityDefinitionCatalog } from "../security";
3
6
  import type { AgentStepDefinition, InterventionDefinition, InterventionFieldConfig, StepDefinition, WorkflowDefinition } from "./types";
4
7
  export declare function assertNonEmpty(value: string, subject: "Step" | "Agent step" | "Workflow" | "Intervention", field: string): void;
5
8
  export declare function isStepDefinition(value: unknown): value is StepDefinition;
@@ -11,8 +14,11 @@ export declare function validateWorkflowsAtStartup(options: {
11
14
  workflows: readonly WorkflowDefinition[];
12
15
  registeredSchedules: ReadonlyMap<string, ScheduleDefinition>;
13
16
  registeredActionIds: ReadonlySet<string>;
14
- registeredAgentIds: ReadonlySet<string>;
17
+ models?: ModelCatalog;
18
+ tools: AgentToolCatalog;
15
19
  }): readonly WorkflowDefinition[];
20
+ /** Validate workflow task memberships once the security catalog has been composed. */
21
+ export declare function validateWorkflowAgentStepGroupReferences(workflows: readonly WorkflowDefinition[], security: SecurityDefinitionCatalog): void;
16
22
  export declare function validateWorkflowInput(params: {
17
23
  readonly workflow: WorkflowDefinition;
18
24
  readonly value: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/workflows/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/workflows/validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sixb/core",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "The ontology-first runtime for Sixb — objects, links, telemetry, actions, and provider contracts",
5
5
  "keywords": [
6
6
  "sixb",
@@ -137,6 +137,18 @@
137
137
  "import": "./dist/storage/ai-cost/provider.js",
138
138
  "default": "./dist/storage/ai-cost/provider.js"
139
139
  },
140
+ "./internal/ai-limit-storage-provider": {
141
+ "types": "./dist/storage/ai-limits/provider.d.ts",
142
+ "bun": "./src/storage/ai-limits/provider.ts",
143
+ "import": "./dist/storage/ai-limits/provider.js",
144
+ "default": "./dist/storage/ai-limits/provider.js"
145
+ },
146
+ "./internal/ai-limit-enforcement": {
147
+ "types": "./dist/storage/ai-limits/enforcement.d.ts",
148
+ "bun": "./src/storage/ai-limits/enforcement.ts",
149
+ "import": "./dist/storage/ai-limits/enforcement.js",
150
+ "default": "./dist/storage/ai-limits/enforcement.js"
151
+ },
140
152
  "./internal/auth": {
141
153
  "types": "./dist/auth/index.d.ts",
142
154
  "bun": "./src/auth/index.ts",
@@ -347,6 +359,12 @@
347
359
  "import": "./dist/lake-storage/index.js",
348
360
  "default": "./dist/lake-storage/index.js"
349
361
  },
362
+ "./models": {
363
+ "types": "./dist/models/index.d.ts",
364
+ "bun": "./src/models/index.ts",
365
+ "import": "./dist/models/index.js",
366
+ "default": "./dist/models/index.js"
367
+ },
350
368
  "./logging": {
351
369
  "types": "./dist/logging/types.d.ts",
352
370
  "bun": "./src/logging/types.ts",
@@ -397,9 +415,6 @@
397
415
  "test:e2e": "bun ../../scripts/ci-guard.ts --stall 120 --max 600 bun test ./tests/published-artifacts.e2e.ts",
398
416
  "prepack": "bun run build"
399
417
  },
400
- "dependencies": {
401
- "@ai-sdk/provider": "^4.0.0"
402
- },
403
418
  "devDependencies": {
404
419
  "@types/bun": "latest",
405
420
  "typescript": "^5.7.0"
@@ -1,3 +1,4 @@
1
+ import type { ReadonlyJsonValue } from "../../json"
1
2
  import type { ObjectTypeWithPropertyTokens } from "../../ontology/tokens"
2
3
  import type {
3
4
  ActionEditsHandler,
@@ -13,6 +14,18 @@ import type {
13
14
  } from "./handlers"
14
15
  import type { ActionParamsConfig, InferActionParams } from "./params"
15
16
 
17
+ // Validate fields structurally so JSON-shaped interfaces do not need an index signature.
18
+ // Builders infer the original result first, then check it without widening via NoInfer.
19
+ type WritebackJsonValue<T> = T extends ReadonlyJsonValue
20
+ ? T
21
+ : T extends (...args: never[]) => unknown
22
+ ? never
23
+ : T extends object
24
+ ? { [K in keyof T]: WritebackJsonValue<T[K]> }
25
+ : never
26
+
27
+ type WritebackResult<T> = T extends ReturnType<() => void> ? T : WritebackJsonValue<T>
28
+
16
29
  export interface BaseActionDefinition<
17
30
  TId extends string = string,
18
31
  TParams extends ActionParamsConfig = ActionParamsConfig,
@@ -136,7 +149,11 @@ export interface GlobalActionPhaseBuilder<TId extends string, TParams extends Ac
136
149
  validator: GlobalActionValidator<InferActionParams<TParams>>
137
150
  ): GlobalActionPhaseBuilder<TId, TParams>
138
151
  writeback<const TResult>(
139
- handler: GlobalActionWritebackHandler<InferActionParams<TParams>, TResult>
152
+ handler: GlobalActionWritebackHandler<InferActionParams<TParams>, TResult> &
153
+ GlobalActionWritebackHandler<
154
+ InferActionParams<TParams>,
155
+ WritebackResult<NoInfer<Awaited<TResult>>>
156
+ >
140
157
  ): GlobalActionAfterWritebackBuilder<TId, TParams, TResult>
141
158
  edits<const TResult extends ActionNoResultHandlerResult>(
142
159
  handler: GlobalActionEditsHandler<InferActionParams<TParams>, undefined, TResult>
@@ -152,7 +169,12 @@ export interface ObjectActionPhaseBuilder<
152
169
  validator: ActionValidator<TObjectType, InferActionParams<TParams>>
153
170
  ): ObjectActionPhaseBuilder<TId, TObjectType, TParams>
154
171
  writeback<const TResult>(
155
- handler: ActionWritebackHandler<TObjectType, InferActionParams<TParams>, TResult>
172
+ handler: ActionWritebackHandler<TObjectType, InferActionParams<TParams>, TResult> &
173
+ ActionWritebackHandler<
174
+ TObjectType,
175
+ InferActionParams<TParams>,
176
+ WritebackResult<NoInfer<Awaited<TResult>>>
177
+ >
156
178
  ): ObjectActionAfterWritebackBuilder<TId, TObjectType, TParams, TResult>
157
179
  edits<const TResult extends ActionNoResultHandlerResult>(
158
180
  handler: ActionEditsHandler<TObjectType, InferActionParams<TParams>, undefined, TResult>
@@ -1,5 +1,16 @@
1
1
  import { type FileRef, isFileRef } from "../blob-storage"
2
2
  import { getInvalidJsonValueReason, isPlainRecord, type JsonValue } from "../json"
3
+ import type {
4
+ ModelAssistantPart,
5
+ ModelFilePart,
6
+ ModelMessage,
7
+ ModelReasoningPart,
8
+ ModelTextPart,
9
+ ModelToolCallPart,
10
+ ModelToolOutput,
11
+ ModelToolResultPart,
12
+ ProviderData,
13
+ } from "../models"
3
14
  import {
4
15
  type AgentContextEntryInput,
5
16
  type AgentContextInput,
@@ -8,25 +19,20 @@ import {
8
19
  } from "./context"
9
20
  import { serializeAgentContextForModel } from "./context-model"
10
21
  import { AgentMessageAdapterError } from "./errors"
11
- import type { AgentMessage, AgentMessagePart, AgentMessageRole, AgentToolCallPart } from "./message"
22
+ import type { AgentMessage, AgentMessagePart, AgentMessageRole } from "./message"
12
23
  import { isAgentToolResult } from "./tool-result"
13
24
  import type { AgentToolFileContent } from "./types"
14
25
 
15
26
  // ── Inbound (write) — deliberately WIDE ────────────────────────────────────────────────────────
16
27
  //
17
- // `fromAiSdk` is the safety net at the SDK boundary, so its input is intentionally permissive: any
18
- // `{ type: string }` part is accepted at the type level and narrowed at runtime. This is a
19
- // structural supertype of the AI SDK's `UIMessage`, so a real SDK message can be passed without a
20
- // cast (verified by a compat test in the consumer package, where `ai` lives — core stays SDK-free).
28
+ // The UI/storage boundary is intentionally permissive: any `{ type: string }` part is accepted at
29
+ // the type level and narrowed at runtime. Persisted messages remain strict and JSON-canonical.
21
30
 
22
31
  export interface AgentInboundUiMessagePart {
23
32
  readonly type: string
24
33
  readonly text?: string
25
34
  readonly state?: string
26
- // Provider metadata stays `unknown` here, exactly like `input` / `output` / `rawInput`: the SDK
27
- // types it as provider metadata (a nested record), which is not structurally a Sixb
28
- // `JsonValue`, so constraining it would break the "real SDK message assigns without a cast"
29
- // contract (locked by the consumer's compat test). `fromAiSdk` validates it to JSON at runtime.
35
+ // Provider metadata stays unknown until the persistence boundary validates it.
30
36
  readonly providerMetadata?: unknown
31
37
  readonly toolName?: string
32
38
  readonly toolCallId?: string
@@ -39,6 +45,8 @@ export interface AgentInboundUiMessagePart {
39
45
  readonly fileRef?: unknown
40
46
  readonly context?: unknown
41
47
  readonly origin?: unknown
48
+ readonly providerId?: string
49
+ readonly data?: unknown
42
50
  }
43
51
 
44
52
  export interface AgentInboundUiMessage {
@@ -48,12 +56,12 @@ export interface AgentInboundUiMessage {
48
56
  readonly parts: readonly AgentInboundUiMessagePart[]
49
57
  }
50
58
 
51
- // ── Outbound (read) — PRECISE, aligned with the AI SDK message surface ──────────────────────────
59
+ // ── Outbound (read) ─────────────────────────────────────────────────────────────────────────────
52
60
 
53
61
  interface AgentUiToolPartBody {
54
62
  readonly toolCallId: string
55
63
  readonly providerExecuted?: boolean
56
- readonly callProviderMetadata?: JsonValue
64
+ readonly callProviderMetadata?: ProviderData
57
65
  }
58
66
 
59
67
  export type AgentUiToolPart =
@@ -77,10 +85,11 @@ export type AgentUiToolPart =
77
85
  ))
78
86
 
79
87
  export type AgentUiMessagePart =
80
- | { readonly type: "text"; readonly text: string; readonly providerMetadata?: JsonValue }
81
- | { readonly type: "reasoning"; readonly text: string; readonly providerMetadata?: JsonValue }
88
+ | { readonly type: "text"; readonly text: string; readonly providerMetadata?: ProviderData }
89
+ | { readonly type: "reasoning"; readonly text: string; readonly providerMetadata?: ProviderData }
82
90
  | { readonly type: "step-start" }
83
- | { readonly type: "file"; readonly fileRef: FileRef; readonly providerMetadata?: JsonValue }
91
+ | { readonly type: "file"; readonly fileRef: FileRef; readonly providerMetadata?: ProviderData }
92
+ | { readonly type: "provider-state"; readonly providerId: string; readonly data: JsonValue }
84
93
  | {
85
94
  readonly type: "context"
86
95
  readonly context: AgentContextInput
@@ -95,59 +104,14 @@ export interface AgentUiMessage {
95
104
  readonly parts: readonly AgentUiMessagePart[]
96
105
  }
97
106
 
98
- export type AgentModelToolOutput =
99
- | { readonly type: "text"; readonly value: string }
100
- | { readonly type: "json"; readonly value: JsonValue }
101
- | { readonly type: "error-text"; readonly value: string }
102
- | { readonly type: "error-json"; readonly value: JsonValue }
103
-
104
- export interface AgentModelTextPart {
105
- readonly type: "text"
106
- readonly text: string
107
- readonly providerOptions?: JsonValue
108
- }
109
- export interface AgentModelFilePart {
110
- readonly type: "file"
111
- readonly data: URL
112
- readonly filename?: string
113
- readonly mediaType: string
114
- readonly providerOptions?: JsonValue
115
- }
116
- export interface AgentModelReasoningPart {
117
- readonly type: "reasoning"
118
- readonly text: string
119
- readonly providerOptions?: JsonValue
120
- }
121
- export interface AgentModelToolCallPart {
122
- readonly type: "tool-call"
123
- readonly toolCallId: string
124
- readonly toolName: string
125
- readonly input: JsonValue
126
- readonly providerExecuted?: boolean
127
- readonly providerOptions?: JsonValue
128
- }
129
- export interface AgentModelToolResultPart {
130
- readonly type: "tool-result"
131
- readonly toolCallId: string
132
- readonly toolName: string
133
- readonly output: AgentModelToolOutput
134
- readonly providerOptions?: JsonValue
135
- }
136
-
137
- export type AgentModelAssistantPart =
138
- | AgentModelTextPart
139
- | AgentModelReasoningPart
140
- | AgentModelToolCallPart
141
- | AgentModelToolResultPart
142
-
143
- export type AgentModelMessage =
144
- | { readonly role: "system"; readonly content: string; readonly providerOptions?: JsonValue }
145
- | {
146
- readonly role: "user"
147
- readonly content: readonly (AgentModelTextPart | AgentModelFilePart)[]
148
- }
149
- | { readonly role: "assistant"; readonly content: readonly AgentModelAssistantPart[] }
150
- | { readonly role: "tool"; readonly content: readonly AgentModelToolResultPart[] }
107
+ export type AgentModelToolOutput = ModelToolOutput
108
+ export type AgentModelTextPart = ModelTextPart
109
+ export type AgentModelFilePart = ModelFilePart
110
+ export type AgentModelReasoningPart = ModelReasoningPart
111
+ export type AgentModelToolCallPart = ModelToolCallPart
112
+ export type AgentModelToolResultPart = ModelToolResultPart
113
+ export type AgentModelAssistantPart = ModelAssistantPart
114
+ export type AgentModelMessage = ModelMessage
151
115
 
152
116
  export interface AgentFileDataResolverInput<TMessage extends AgentMessage = AgentMessage> {
153
117
  readonly message: TMessage
@@ -163,7 +127,7 @@ export interface AgentFileDataProjection {
163
127
 
164
128
  export interface AgentToolResultFileResolverInput<TMessage extends AgentMessage = AgentMessage> {
165
129
  readonly message: TMessage
166
- readonly part: AgentToolCallPart
130
+ readonly part: AgentToolCallPartResult
167
131
  readonly partIndex: number
168
132
  readonly contentPart: AgentToolFileContent
169
133
  readonly contentIndex: number
@@ -215,14 +179,21 @@ function optionalJson(value: unknown, label: string): JsonValue | undefined {
215
179
  return requireJson(omitUndefinedObjectProperties(value), label)
216
180
  }
217
181
 
182
+ function optionalProviderData(value: unknown, label: string): ProviderData | undefined {
183
+ const json = optionalJson(value, label)
184
+ if (json === undefined) return undefined
185
+ assertAdapter(isPlainRecord(json), `agent message ${label} must be a provider-keyed JSON object`)
186
+ return json as ProviderData
187
+ }
188
+
218
189
  /**
219
- * Provider metadata is opaque SDK-owned data that can contain optional object keys with
190
+ * Provider metadata is opaque provider-owned data that can contain optional object keys with
220
191
  * `undefined` values. `undefined` is not JSON, but on an object property it means the same thing as
221
192
  * "field absent", so omit those properties before validating/persisting the metadata.
222
193
  *
223
194
  * Keep the scope deliberately narrow: arrays, tool inputs/outputs, Dates, functions, bigint, cycles,
224
195
  * and every other non-JSON shape are left for `requireJson` to accept or reject. This helper only
225
- * turns `{ key: undefined }` into `{}` for metadata compatibility with SDK output.
196
+ * turns `{ key: undefined }` into `{}` for compatibility with provider output.
226
197
  */
227
198
  export function omitUndefinedObjectProperties(value: unknown): unknown {
228
199
  return omitUndefinedObjectPropertiesInternal(value, new Set())
@@ -270,22 +241,22 @@ function toolNameFromInbound(part: AgentInboundUiMessagePart): string {
270
241
  return name
271
242
  }
272
243
 
273
- // ── fromAiSdk (write) ─────────────────────────────────────────────────────────────────────────
244
+ // ── fromUiMessage (write) ─────────────────────────────────────────────────────────────────────
274
245
 
275
246
  /**
276
- * Convert an SDK-shaped UI message into a durable {@link AgentMessage}. Total: throws
277
- * {@link AgentMessageAdapterError} on any part kind, tool state, or text/reasoning state that V1 does
278
- * not model, and on a role outside `system | user | assistant`. Transient states are rejected
247
+ * Convert a UI message into a durable {@link AgentMessage}. Total: throws
248
+ * {@link AgentMessageAdapterError} on any part kind, tool state, or text/reasoning state the durable
249
+ * contract does not model, and on a role outside `system | user | assistant`. Transient states are rejected
279
250
  * because messages are only ever persisted once a run has finished.
280
251
  */
281
- export function fromAiSdk(message: AgentInboundUiMessage): AgentMessage {
252
+ export function fromUiMessage(message: AgentInboundUiMessage): AgentMessage {
282
253
  const { role } = message
283
254
  assertAdapter(
284
255
  role === "system" || role === "user" || role === "assistant",
285
256
  `unsupported message role '${role}'`
286
257
  )
287
258
 
288
- const parts: AgentMessagePart[] = message.parts.map((part) => fromAiSdkPart(part))
259
+ const parts: AgentMessagePart[] = message.parts.map((part) => fromUiMessagePart(part))
289
260
  assertAdapter(
290
261
  role === "user" || !parts.some((part) => part.type === "context"),
291
262
  "context parts are only valid on user messages"
@@ -299,7 +270,7 @@ export function fromAiSdk(message: AgentInboundUiMessage): AgentMessage {
299
270
  }
300
271
  }
301
272
 
302
- function fromAiSdkPart(part: AgentInboundUiMessagePart): AgentMessagePart {
273
+ function fromUiMessagePart(part: AgentInboundUiMessagePart): AgentMessagePart {
303
274
  switch (part.type) {
304
275
  case "text":
305
276
  case "reasoning": {
@@ -308,7 +279,10 @@ function fromAiSdkPart(part: AgentInboundUiMessagePart): AgentMessagePart {
308
279
  part.state !== "streaming",
309
280
  `cannot persist a streaming ${part.type} part; messages are written only once finalized`
310
281
  )
311
- const providerMetadata = optionalJson(part.providerMetadata, `${part.type}.providerMetadata`)
282
+ const providerMetadata = optionalProviderData(
283
+ part.providerMetadata,
284
+ `${part.type}.providerMetadata`
285
+ )
312
286
  return {
313
287
  type: part.type,
314
288
  text: part.text,
@@ -319,7 +293,7 @@ function fromAiSdkPart(part: AgentInboundUiMessagePart): AgentMessagePart {
319
293
  return { type: "step-start" }
320
294
  case "file": {
321
295
  assertAdapter(isFileRef(part.fileRef), "file part is missing a valid fileRef")
322
- const providerMetadata = optionalJson(part.providerMetadata, "file.providerMetadata")
296
+ const providerMetadata = optionalProviderData(part.providerMetadata, "file.providerMetadata")
323
297
  return {
324
298
  type: "file",
325
299
  fileRef: part.fileRef,
@@ -328,12 +302,22 @@ function fromAiSdkPart(part: AgentInboundUiMessagePart): AgentMessagePart {
328
302
  }
329
303
  case "context":
330
304
  return fromUiContextPart(part)
305
+ case "provider-state":
306
+ assertAdapter(
307
+ typeof part.providerId === "string" && part.providerId.length > 0,
308
+ "provider-state part is missing a provider id"
309
+ )
310
+ return {
311
+ type: "provider-state",
312
+ providerId: part.providerId,
313
+ data: requireJson(part.data, "provider-state data"),
314
+ }
331
315
  default: {
332
316
  assertAdapter(
333
317
  isToolType(part.type),
334
318
  `unsupported message part type '${part.type}'; extend the Sixb message part union to support it`
335
319
  )
336
- return fromAiSdkToolPart(part)
320
+ return fromUiToolPart(part)
337
321
  }
338
322
  }
339
323
  }
@@ -351,7 +335,7 @@ function fromUiContextPart(part: AgentInboundUiMessagePart): AgentMessagePart {
351
335
  }
352
336
  }
353
337
 
354
- function fromAiSdkToolPart(part: AgentInboundUiMessagePart): AgentToolCallPart {
338
+ function fromUiToolPart(part: AgentInboundUiMessagePart): AgentToolCallPartResult {
355
339
  const dynamic = part.type === "dynamic-tool"
356
340
  const toolName = toolNameFromInbound(part)
357
341
  assertAdapter(
@@ -365,7 +349,10 @@ function fromAiSdkToolPart(part: AgentInboundUiMessagePart): AgentToolCallPart {
365
349
 
366
350
  // For output-error the SDK input may be `undefined`; coerce to `null` to stay JSON-canonical.
367
351
  const input = part.input === undefined ? null : requireJson(part.input, "tool input")
368
- const providerMetadata = optionalJson(part.callProviderMetadata, "tool callProviderMetadata")
352
+ const providerMetadata = optionalProviderData(
353
+ part.callProviderMetadata,
354
+ "tool callProviderMetadata"
355
+ )
369
356
 
370
357
  const base = {
371
358
  type: "tool-call" as const,
@@ -387,9 +374,11 @@ function fromAiSdkToolPart(part: AgentInboundUiMessagePart): AgentToolCallPart {
387
374
  return { ...base, state: "output-error", errorText: part.errorText }
388
375
  }
389
376
 
377
+ type AgentToolCallPartResult = Extract<AgentMessagePart, { type: "tool-call" }>
378
+
390
379
  // ── toUiMessage (read) ────────────────────────────────────────────────────────────────────────
391
380
 
392
- /** Reconstruct an SDK-shaped UI message from a stored message. Exact inverse of {@link fromAiSdk}. */
381
+ /** Reconstruct a UI message from a stored message. Exact inverse of {@link fromUiMessage}. */
393
382
  export function toUiMessage(message: AgentMessage): AgentUiMessage {
394
383
  return {
395
384
  role: message.role,
@@ -417,12 +406,18 @@ function toUiPart(part: AgentMessagePart): AgentUiMessagePart {
417
406
  }
418
407
  case "context":
419
408
  return { type: "context", context: part.context, origin: part.origin }
409
+ case "provider-state":
410
+ return {
411
+ type: "provider-state",
412
+ providerId: part.providerId,
413
+ data: part.data,
414
+ }
420
415
  case "tool-call":
421
416
  return toUiToolPart(part)
422
417
  }
423
418
  }
424
419
 
425
- function toUiToolPart(part: AgentToolCallPart): AgentUiToolPart {
420
+ function toUiToolPart(part: AgentToolCallPartResult): AgentUiToolPart {
426
421
  const body = {
427
422
  toolCallId: part.toolCallId,
428
423
  ...(part.providerExecuted === undefined ? {} : { providerExecuted: part.providerExecuted }),
@@ -442,12 +437,11 @@ function toUiToolPart(part: AgentToolCallPart): AgentUiToolPart {
442
437
  // ── toModelMessages (read) ──────────────────────────────────────────────────────────────────────
443
438
 
444
439
  /**
445
- * Project messages into AI SDK `ModelMessage`s for replay into a model. The assistant/tool split
446
- * is hand-rolled to mirror `convertToModelMessages` (no `ai` import): assistant parts are grouped
440
+ * Project durable messages into Sixb model messages. Assistant parts are grouped
447
441
  * into blocks at each `step-start`; each block yields one `assistant` message plus, for any
448
442
  * non-provider-executed tool calls, one `tool` message. Provider-executed tool results stay inline
449
443
  * in the assistant message. Without a tool registry, a string output maps to `text` and anything
450
- * else to `json`; this is the documented V1 fidelity scope (a tool's custom `toModelOutput` is not
444
+ * else to `json`; this is the documented fidelity scope (a tool's custom `toModelOutput` is not
451
445
  * reproduced).
452
446
  */
453
447
  export function toModelMessages<TMessage extends AgentMessage>(
@@ -473,19 +467,17 @@ export function toModelMessages<TMessage extends AgentMessage>(
473
467
 
474
468
  function systemModelMessage(message: AgentMessage): AgentModelMessage {
475
469
  const textParts = message.parts.filter(isTextPart)
476
- // Mirror convertToModelMessages: merge providerMetadata across all system text parts (carries e.g.
477
- // a provider's prompt-cache directive) and forward it as providerOptions when non-empty.
478
- const providerOptions = mergeProviderMetadata(textParts)
470
+ const providerData = mergeProviderMetadata(textParts)
479
471
  return {
480
472
  role: "system",
481
473
  content: textParts.map((part) => part.text).join(""),
482
- ...(providerOptions === undefined ? {} : { providerOptions }),
474
+ ...(providerData === undefined ? {} : { providerData }),
483
475
  }
484
476
  }
485
477
 
486
478
  function mergeProviderMetadata(
487
479
  parts: readonly Extract<AgentMessagePart, { type: "text" }>[]
488
- ): JsonValue | undefined {
480
+ ): ProviderData | undefined {
489
481
  let merged: Record<string, JsonValue> | undefined
490
482
  for (const part of parts) {
491
483
  const meta = part.providerMetadata
@@ -493,7 +485,7 @@ function mergeProviderMetadata(
493
485
  merged = { ...(merged ?? {}), ...meta }
494
486
  }
495
487
  }
496
- return merged
488
+ return merged as ProviderData | undefined
497
489
  }
498
490
 
499
491
  function userModelMessage<TMessage extends AgentMessage>(
@@ -512,7 +504,7 @@ function userModelMessage<TMessage extends AgentMessage>(
512
504
  content.push({
513
505
  type: "text",
514
506
  text: part.text,
515
- ...(part.providerMetadata === undefined ? {} : { providerOptions: part.providerMetadata }),
507
+ ...(part.providerMetadata === undefined ? {} : { providerData: part.providerMetadata }),
516
508
  })
517
509
  return
518
510
  }
@@ -533,9 +525,7 @@ function userModelMessage<TMessage extends AgentMessage>(
533
525
  : part.fileRef.fileName === undefined
534
526
  ? {}
535
527
  : { filename: part.fileRef.fileName }),
536
- ...(part.providerMetadata === undefined
537
- ? {}
538
- : { providerOptions: part.providerMetadata }),
528
+ ...(part.providerMetadata === undefined ? {} : { providerData: part.providerMetadata }),
539
529
  })
540
530
  }
541
531
  }
@@ -562,17 +552,13 @@ function appendAssistantModelMessages<TMessage extends AgentMessage>(
562
552
  content.push({
563
553
  type: "text",
564
554
  text: part.text,
565
- ...(part.providerMetadata === undefined
566
- ? {}
567
- : { providerOptions: part.providerMetadata }),
555
+ ...(part.providerMetadata === undefined ? {} : { providerData: part.providerMetadata }),
568
556
  })
569
557
  } else if (part.type === "reasoning") {
570
558
  content.push({
571
559
  type: "reasoning",
572
560
  text: part.text,
573
- ...(part.providerMetadata === undefined
574
- ? {}
575
- : { providerOptions: part.providerMetadata }),
561
+ ...(part.providerMetadata === undefined ? {} : { providerData: part.providerMetadata }),
576
562
  })
577
563
  } else if (part.type === "file") {
578
564
  const fileContext = options.fileText?.({ message, part, partIndex })
@@ -584,6 +570,12 @@ function appendAssistantModelMessages<TMessage extends AgentMessage>(
584
570
  if (part.providerExecuted === true) {
585
571
  content.push(toolResultModelPart(message, part, partIndex, "json", options))
586
572
  }
573
+ } else if (part.type === "provider-state") {
574
+ content.push({
575
+ type: "provider-state",
576
+ providerId: part.providerId,
577
+ data: part.data,
578
+ })
587
579
  }
588
580
  }
589
581
  result.push({ role: "assistant", content })
@@ -608,36 +600,37 @@ function appendAssistantModelMessages<TMessage extends AgentMessage>(
608
600
  flush()
609
601
  }
610
602
 
611
- function toolCallModelPart(part: AgentToolCallPart): AgentModelToolCallPart {
603
+ function toolCallModelPart(part: AgentToolCallPartResult): AgentModelToolCallPart {
612
604
  return {
613
605
  type: "tool-call",
614
606
  toolCallId: part.toolCallId,
615
607
  toolName: part.toolName,
616
608
  input: part.input,
617
609
  ...(part.providerExecuted === undefined ? {} : { providerExecuted: part.providerExecuted }),
618
- ...(part.providerMetadata === undefined ? {} : { providerOptions: part.providerMetadata }),
610
+ ...(part.providerMetadata === undefined ? {} : { providerData: part.providerMetadata }),
619
611
  }
620
612
  }
621
613
 
622
614
  function toolResultModelPart<TMessage extends AgentMessage>(
623
615
  message: TMessage,
624
- part: AgentToolCallPart,
616
+ part: AgentToolCallPartResult,
625
617
  partIndex: number,
626
618
  errorMode: "text" | "json",
627
619
  options: ToModelMessagesOptions<TMessage>
628
620
  ): AgentModelToolResultPart {
621
+ // Stored providerMetadata belongs to the call, not this synthesized result. Replaying it here
622
+ // can replace the result with the provider's original tool-call block.
629
623
  return {
630
624
  type: "tool-result",
631
625
  toolCallId: part.toolCallId,
632
626
  toolName: part.toolName,
633
627
  output: toolResultOutput(message, part, partIndex, errorMode, options),
634
- ...(part.providerMetadata === undefined ? {} : { providerOptions: part.providerMetadata }),
635
628
  }
636
629
  }
637
630
 
638
631
  function toolResultOutput<TMessage extends AgentMessage>(
639
632
  message: TMessage,
640
- part: AgentToolCallPart,
633
+ part: AgentToolCallPartResult,
641
634
  partIndex: number,
642
635
  errorMode: "text" | "json",
643
636
  options: ToModelMessagesOptions<TMessage>
@@ -655,13 +648,14 @@ function toolResultOutput<TMessage extends AgentMessage>(
655
648
  return
656
649
  }
657
650
 
658
- const resolverInput = { message, part, partIndex, contentPart, contentIndex }
659
- const fileContext = options.toolResultFileText?.(resolverInput)
660
- if (fileContext) {
661
- value.push(fileContext)
662
- } else {
663
- value.push(toolResultFileFallbackText(contentPart))
664
- }
651
+ const fileContext = options.toolResultFileText?.({
652
+ message,
653
+ part,
654
+ partIndex,
655
+ contentPart,
656
+ contentIndex,
657
+ })
658
+ value.push(fileContext ?? toolResultFileFallbackText(contentPart))
665
659
  })
666
660
  return { type: "text", value: value.join("\n") }
667
661
  }