@sixb/core 0.1.6 → 0.1.8

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 (909) hide show
  1. package/dist/actions/delegated-admission.d.ts +24 -0
  2. package/dist/actions/delegated-admission.d.ts.map +1 -0
  3. package/dist/actions/descriptor.d.ts +29 -0
  4. package/dist/actions/descriptor.d.ts.map +1 -0
  5. package/dist/actions/execution.d.ts +5 -5
  6. package/dist/actions/execution.d.ts.map +1 -1
  7. package/dist/actions/index.js +50 -40
  8. package/dist/actions/index.js.map +1 -1
  9. package/dist/actions/request.d.ts.map +1 -1
  10. package/dist/actions/run-authorization.d.ts +20 -0
  11. package/dist/actions/run-authorization.d.ts.map +1 -0
  12. package/dist/actions/run-dispatch.d.ts +3 -1
  13. package/dist/actions/run-dispatch.d.ts.map +1 -1
  14. package/dist/actions/worker.js +5 -5
  15. package/dist/actions/worker.js.map +1 -1
  16. package/dist/agents/adapters.d.ts +6 -166
  17. package/dist/agents/adapters.d.ts.map +1 -1
  18. package/dist/agents/authority.d.ts +22 -6
  19. package/dist/agents/authority.d.ts.map +1 -1
  20. package/dist/agents/builders.d.ts +3 -11
  21. package/dist/agents/builders.d.ts.map +1 -1
  22. package/dist/agents/context-resolution.d.ts.map +1 -1
  23. package/dist/agents/context.js +2 -2
  24. package/dist/agents/dispatch.d.ts +9 -1
  25. package/dist/agents/dispatch.d.ts.map +1 -1
  26. package/dist/agents/errors.d.ts +1 -10
  27. package/dist/agents/errors.d.ts.map +1 -1
  28. package/dist/agents/execution.d.ts +9 -10
  29. package/dist/agents/execution.d.ts.map +1 -1
  30. package/dist/agents/identity.d.ts +3 -0
  31. package/dist/agents/identity.d.ts.map +1 -0
  32. package/dist/agents/ids.d.ts +4 -0
  33. package/dist/agents/ids.d.ts.map +1 -1
  34. package/dist/agents/index.d.ts +15 -11
  35. package/dist/agents/index.d.ts.map +1 -1
  36. package/dist/agents/index.js +90 -78
  37. package/dist/agents/index.js.map +1 -1
  38. package/dist/agents/message.d.ts +19 -13
  39. package/dist/agents/message.d.ts.map +1 -1
  40. package/dist/agents/model-loop.d.ts +58 -0
  41. package/dist/agents/model-loop.d.ts.map +1 -0
  42. package/dist/agents/reference.d.ts +4 -0
  43. package/dist/agents/reference.d.ts.map +1 -0
  44. package/dist/agents/request.d.ts +10 -8
  45. package/dist/agents/request.d.ts.map +1 -1
  46. package/dist/agents/retired-config.d.ts +4 -0
  47. package/dist/agents/retired-config.d.ts.map +1 -0
  48. package/dist/agents/streams.d.ts +13 -8
  49. package/dist/agents/streams.d.ts.map +1 -1
  50. package/dist/agents/streams.js +7 -5
  51. package/dist/agents/streams.js.map +1 -1
  52. package/dist/agents/tool-catalog.d.ts +9 -0
  53. package/dist/agents/tool-catalog.d.ts.map +1 -0
  54. package/dist/agents/tool-definition.d.ts +1 -1
  55. package/dist/agents/tool-definition.d.ts.map +1 -1
  56. package/dist/agents/types.d.ts +31 -68
  57. package/dist/agents/types.d.ts.map +1 -1
  58. package/dist/agents/validation.d.ts +3 -13
  59. package/dist/agents/validation.d.ts.map +1 -1
  60. package/dist/ai-usage/execution.d.ts +53 -0
  61. package/dist/ai-usage/execution.d.ts.map +1 -0
  62. package/dist/ai-usage/index.d.ts +3 -0
  63. package/dist/ai-usage/index.d.ts.map +1 -0
  64. package/dist/auth/index.js +12 -9
  65. package/dist/auth/index.js.map +1 -1
  66. package/dist/authorization/decision.d.ts +14 -3
  67. package/dist/authorization/decision.d.ts.map +1 -1
  68. package/dist/authorization/grant-kinds.d.ts +25 -8
  69. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  70. package/dist/authorization/index.d.ts +1 -1
  71. package/dist/authorization/index.d.ts.map +1 -1
  72. package/dist/authorization/index.js +12 -7
  73. package/dist/authorization/index.js.map +1 -1
  74. package/dist/authorization/resolve.d.ts +3 -3
  75. package/dist/authorization/resolve.d.ts.map +1 -1
  76. package/dist/authorization/types.d.ts +7 -5
  77. package/dist/authorization/types.d.ts.map +1 -1
  78. package/dist/blob-storage/browser.js +2 -2
  79. package/dist/blob-storage/index.js +3 -3
  80. package/dist/bootstrap/discovery.d.ts +6 -6
  81. package/dist/bootstrap/discovery.d.ts.map +1 -1
  82. package/dist/bootstrap/index.js +62 -51
  83. package/dist/bootstrap/index.js.map +1 -1
  84. package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
  85. package/dist/broker/index.js +2 -2
  86. package/dist/{chunk-zqysyfjt.js → chunk-08m3b6w8.js} +1 -1
  87. package/dist/chunk-19jp6g9d.js +131 -0
  88. package/dist/chunk-19jp6g9d.js.map +11 -0
  89. package/dist/{chunk-3j7573mj.js → chunk-2dw777qw.js} +50 -5
  90. package/dist/{chunk-3j7573mj.js.map → chunk-2dw777qw.js.map} +4 -3
  91. package/dist/{chunk-0172wgm9.js → chunk-2xns679x.js} +10 -2
  92. package/dist/{chunk-0172wgm9.js.map → chunk-2xns679x.js.map} +3 -3
  93. package/dist/chunk-359jm1jw.js +147 -0
  94. package/dist/chunk-359jm1jw.js.map +10 -0
  95. package/dist/{chunk-dy311asx.js → chunk-3xep5cjx.js} +58 -23
  96. package/dist/chunk-3xep5cjx.js.map +15 -0
  97. package/dist/{chunk-n4spznws.js → chunk-3z1qec12.js} +83 -12
  98. package/dist/chunk-3z1qec12.js.map +12 -0
  99. package/dist/{chunk-z3zp0bj1.js → chunk-407j3msh.js} +1 -1
  100. package/dist/{chunk-rhrbz7d4.js → chunk-4a849fr1.js} +1 -1
  101. package/dist/{chunk-cy0n5dms.js → chunk-4jjp5k14.js} +1 -1
  102. package/dist/chunk-4qfkag59.js +1568 -0
  103. package/dist/chunk-4qfkag59.js.map +20 -0
  104. package/dist/{chunk-1e8m6yn3.js → chunk-4sm0aznx.js} +685 -86
  105. package/dist/chunk-4sm0aznx.js.map +43 -0
  106. package/dist/chunk-4yqmp43v.js +159 -0
  107. package/dist/chunk-4yqmp43v.js.map +11 -0
  108. package/dist/{chunk-rdeagz6b.js → chunk-5e3pq99w.js} +3 -7
  109. package/dist/{chunk-rdeagz6b.js.map → chunk-5e3pq99w.js.map} +3 -3
  110. package/dist/{chunk-ezake7g1.js → chunk-5ntny1qx.js} +1 -1
  111. package/dist/{chunk-dm72y8wt.js → chunk-7y0f6rf1.js} +29 -16
  112. package/dist/chunk-7y0f6rf1.js.map +10 -0
  113. package/dist/{chunk-72q2y8hn.js → chunk-8tsf6dmc.js} +2 -2
  114. package/dist/{chunk-qewtks41.js → chunk-9nbmsvn5.js} +123 -20
  115. package/dist/chunk-9nbmsvn5.js.map +11 -0
  116. package/dist/{chunk-5sxb1168.js → chunk-aa2pen2v.js} +256 -82
  117. package/dist/chunk-aa2pen2v.js.map +34 -0
  118. package/dist/{chunk-819wnjz8.js → chunk-ajnan18g.js} +13 -10
  119. package/dist/chunk-ajnan18g.js.map +12 -0
  120. package/dist/chunk-c15dr03f.js +43 -0
  121. package/dist/chunk-c15dr03f.js.map +10 -0
  122. package/dist/{chunk-t0jjkep3.js → chunk-d8qkxt2v.js} +4 -2
  123. package/dist/chunk-d8qkxt2v.js.map +10 -0
  124. package/dist/{chunk-vybf6pkp.js → chunk-dbc80ad7.js} +1 -1
  125. package/dist/{chunk-nkbfrt0c.js → chunk-f26bck4t.js} +7 -7
  126. package/dist/{chunk-x2yw73hy.js → chunk-fvt9rjsa.js} +23 -7
  127. package/dist/chunk-fvt9rjsa.js.map +10 -0
  128. package/dist/{chunk-znagycq7.js → chunk-gbejpkex.js} +5 -5
  129. package/dist/{chunk-znagycq7.js.map → chunk-gbejpkex.js.map} +1 -1
  130. package/dist/{chunk-e42bc6m3.js → chunk-gzasd5b6.js} +5 -5
  131. package/dist/{chunk-e42bc6m3.js.map → chunk-gzasd5b6.js.map} +3 -3
  132. package/dist/{chunk-rnshztfq.js → chunk-h0k55pc7.js} +6 -6
  133. package/dist/{chunk-rnshztfq.js.map → chunk-h0k55pc7.js.map} +1 -1
  134. package/dist/chunk-h5vqbfmd.js +1537 -0
  135. package/dist/chunk-h5vqbfmd.js.map +19 -0
  136. package/dist/chunk-j1sbhm7p.js +45 -0
  137. package/dist/chunk-j1sbhm7p.js.map +10 -0
  138. package/dist/chunk-jecn6t54.js +307 -0
  139. package/dist/chunk-jecn6t54.js.map +12 -0
  140. package/dist/{chunk-dsrkgtnh.js → chunk-jq43kdvk.js} +1 -1
  141. package/dist/{chunk-wtmzkcht.js → chunk-k34z5rvh.js} +1 -1
  142. package/dist/{chunk-f6erf2vv.js → chunk-k522z7v6.js} +10 -5
  143. package/dist/chunk-k522z7v6.js.map +10 -0
  144. package/dist/{chunk-htq0qh7z.js → chunk-ka3a2ft3.js} +2 -2
  145. package/dist/{chunk-ckxfnx7f.js → chunk-mth82m8t.js} +129 -95
  146. package/dist/chunk-mth82m8t.js.map +14 -0
  147. package/dist/{chunk-5gynx4xn.js → chunk-mwsxn98e.js} +79 -77
  148. package/dist/{chunk-5gynx4xn.js.map → chunk-mwsxn98e.js.map} +8 -8
  149. package/dist/{chunk-f2rt4vkh.js → chunk-n2w475r0.js} +3 -3
  150. package/dist/chunk-n4khvw9n.js +111 -0
  151. package/dist/chunk-n4khvw9n.js.map +11 -0
  152. package/dist/{chunk-t8t39h7v.js → chunk-n6jxh8sw.js} +10 -2
  153. package/dist/chunk-n6jxh8sw.js.map +10 -0
  154. package/dist/chunk-nn0tekr1.js +284 -0
  155. package/dist/chunk-nn0tekr1.js.map +12 -0
  156. package/dist/chunk-nx7k8tpr.js +436 -0
  157. package/dist/chunk-nx7k8tpr.js.map +12 -0
  158. package/dist/{chunk-drjqm1aa.js → chunk-p03r0h5s.js} +310 -28
  159. package/dist/chunk-p03r0h5s.js.map +16 -0
  160. package/dist/{chunk-1g8negke.js → chunk-p1rzczbt.js} +93 -8
  161. package/dist/chunk-p1rzczbt.js.map +12 -0
  162. package/dist/{chunk-f83ka50g.js → chunk-p1x242ad.js} +652 -77
  163. package/dist/chunk-p1x242ad.js.map +25 -0
  164. package/dist/chunk-p2vqaxkc.js +528 -0
  165. package/dist/chunk-p2vqaxkc.js.map +15 -0
  166. package/dist/{chunk-a31h57d5.js → chunk-pc7ys28c.js} +70 -7
  167. package/dist/chunk-pc7ys28c.js.map +14 -0
  168. package/dist/{chunk-md8k0r54.js → chunk-q0k9nc5a.js} +281 -89
  169. package/dist/chunk-q0k9nc5a.js.map +14 -0
  170. package/dist/{chunk-bhxaq2nn.js → chunk-qw9gvjv5.js} +1 -1
  171. package/dist/chunk-r8jrnexe.js +403 -0
  172. package/dist/chunk-r8jrnexe.js.map +10 -0
  173. package/dist/{chunk-h9kxd41f.js → chunk-rafagrwr.js} +48 -7
  174. package/dist/chunk-rafagrwr.js.map +11 -0
  175. package/dist/{chunk-dysw7nsm.js → chunk-rv2hkwwa.js} +2 -2
  176. package/dist/{chunk-ghteq96b.js → chunk-s5y30bc9.js} +2 -2
  177. package/dist/{chunk-t624af60.js → chunk-sbzzr4kx.js} +1848 -757
  178. package/dist/chunk-sbzzr4kx.js.map +63 -0
  179. package/dist/{chunk-6gjqgd3d.js → chunk-tpnd31c1.js} +2 -1
  180. package/dist/chunk-tpnd31c1.js.map +11 -0
  181. package/dist/chunk-trxxmgnf.js +68 -0
  182. package/dist/chunk-trxxmgnf.js.map +11 -0
  183. package/dist/{chunk-0hc5j867.js → chunk-v1xppd0y.js} +17 -13
  184. package/dist/{chunk-0hc5j867.js.map → chunk-v1xppd0y.js.map} +2 -2
  185. package/dist/chunk-v4en4jc2.js +252 -0
  186. package/dist/chunk-v4en4jc2.js.map +10 -0
  187. package/dist/{chunk-xkthy56g.js → chunk-w1tvjszy.js} +1 -1
  188. package/dist/{chunk-8b55ygje.js → chunk-w3e09qqk.js} +1 -1
  189. package/dist/{chunk-8gv5z0zm.js → chunk-w9tg6yyb.js} +13 -8
  190. package/dist/{chunk-8gv5z0zm.js.map → chunk-w9tg6yyb.js.map} +3 -3
  191. package/dist/{chunk-62c7t4jc.js → chunk-wdage1eb.js} +1 -1
  192. package/dist/{chunk-tg5mee00.js → chunk-wtf06et8.js} +11 -7
  193. package/dist/{chunk-tg5mee00.js.map → chunk-wtf06et8.js.map} +3 -3
  194. package/dist/{chunk-nva1xkjz.js → chunk-xajtptbw.js} +1237 -1434
  195. package/dist/chunk-xajtptbw.js.map +40 -0
  196. package/dist/{chunk-xc7hq65b.js → chunk-yp8ee62z.js} +49 -2
  197. package/dist/chunk-yp8ee62z.js.map +11 -0
  198. package/dist/chunk-z4ccwbkz.js +139 -0
  199. package/dist/chunk-z4ccwbkz.js.map +10 -0
  200. package/dist/datasets/builders.d.ts +11 -2
  201. package/dist/datasets/builders.d.ts.map +1 -1
  202. package/dist/datasets/changes.d.ts +14 -4
  203. package/dist/datasets/changes.d.ts.map +1 -1
  204. package/dist/datasets/execution.d.ts +15 -1
  205. package/dist/datasets/execution.d.ts.map +1 -1
  206. package/dist/datasets/index.d.ts +1 -0
  207. package/dist/datasets/index.d.ts.map +1 -1
  208. package/dist/datasets/sequence.d.ts +7 -0
  209. package/dist/datasets/sequence.d.ts.map +1 -0
  210. package/dist/datasets/types.d.ts +1 -0
  211. package/dist/datasets/types.d.ts.map +1 -1
  212. package/dist/datasets/validation.d.ts.map +1 -1
  213. package/dist/datasets/write.d.ts +37 -0
  214. package/dist/datasets/write.d.ts.map +1 -0
  215. package/dist/datasets/write.js +17 -0
  216. package/dist/datasets/write.js.map +9 -0
  217. package/dist/error-reporting/internal.js +4 -4
  218. package/dist/error-reporting/types.d.ts +7 -2
  219. package/dist/error-reporting/types.d.ts.map +1 -1
  220. package/dist/errors/catalog.d.ts +8 -0
  221. package/dist/errors/catalog.d.ts.map +1 -1
  222. package/dist/errors/internal.js +2 -2
  223. package/dist/events/execution.d.ts.map +1 -1
  224. package/dist/events/index.js +4 -4
  225. package/dist/events/types/datasets.d.ts +2 -6
  226. package/dist/events/types/datasets.d.ts.map +1 -1
  227. package/dist/execution/agent.d.ts +18 -9
  228. package/dist/execution/agent.d.ts.map +1 -1
  229. package/dist/execution/agent.js +62 -46
  230. package/dist/execution/agent.js.map +1 -1
  231. package/dist/execution/authorization.d.ts +68 -20
  232. package/dist/execution/authorization.d.ts.map +1 -1
  233. package/dist/execution/authorized-object-reader.d.ts +69 -0
  234. package/dist/execution/authorized-object-reader.d.ts.map +1 -0
  235. package/dist/execution/durable.d.ts.map +1 -1
  236. package/dist/execution/index.d.ts +1 -1
  237. package/dist/execution/index.d.ts.map +1 -1
  238. package/dist/execution/primitive.js +55 -46
  239. package/dist/execution/primitive.js.map +2 -2
  240. package/dist/execution/request.d.ts +14 -1
  241. package/dist/execution/request.d.ts.map +1 -1
  242. package/dist/execution/request.js +92 -54
  243. package/dist/execution/request.js.map +3 -3
  244. package/dist/execution/scopes.d.ts +16 -0
  245. package/dist/execution/scopes.d.ts.map +1 -1
  246. package/dist/execution/types.d.ts +10 -1
  247. package/dist/execution/types.d.ts.map +1 -1
  248. package/dist/http/api-routes.d.ts +2 -0
  249. package/dist/http/api-routes.d.ts.map +1 -1
  250. package/dist/http/index.js +1 -1
  251. package/dist/index.d.ts +15 -9
  252. package/dist/index.d.ts.map +1 -1
  253. package/dist/index.js +128 -109
  254. package/dist/index.js.map +1 -1
  255. package/dist/json.d.ts +2 -0
  256. package/dist/json.d.ts.map +1 -1
  257. package/dist/lake-storage/definition-updates.d.ts.map +1 -1
  258. package/dist/lake-storage/errors.d.ts +5 -1
  259. package/dist/lake-storage/errors.d.ts.map +1 -1
  260. package/dist/lake-storage/in-memory.d.ts +1 -0
  261. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  262. package/dist/lake-storage/index.d.ts +6 -1
  263. package/dist/lake-storage/index.d.ts.map +1 -1
  264. package/dist/lake-storage/index.js +27 -10
  265. package/dist/lake-storage/index.js.map +1 -1
  266. package/dist/lake-storage/merge-validation.d.ts.map +1 -1
  267. package/dist/lake-storage/merge.d.ts +13 -2
  268. package/dist/lake-storage/merge.d.ts.map +1 -1
  269. package/dist/lake-storage/source-ordering.d.ts +19 -0
  270. package/dist/lake-storage/source-ordering.d.ts.map +1 -0
  271. package/dist/lake-storage/sql-transforms.d.ts +2 -1
  272. package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
  273. package/dist/lake-storage/types.d.ts +10 -5
  274. package/dist/lake-storage/types.d.ts.map +1 -1
  275. package/dist/lake-storage/version-inputs.d.ts +4 -0
  276. package/dist/lake-storage/version-inputs.d.ts.map +1 -0
  277. package/dist/logging/index.js +3 -3
  278. package/dist/logging/types.js +2 -2
  279. package/dist/materialization/index.js +2 -2
  280. package/dist/materializer/index.js +38 -31
  281. package/dist/materializer/index.js.map +1 -1
  282. package/dist/models/catalog.d.ts +40 -0
  283. package/dist/models/catalog.d.ts.map +1 -0
  284. package/dist/models/definitions.d.ts +25 -0
  285. package/dist/models/definitions.d.ts.map +1 -0
  286. package/dist/models/errors.d.ts +52 -0
  287. package/dist/models/errors.d.ts.map +1 -0
  288. package/dist/models/events.d.ts +192 -0
  289. package/dist/models/events.d.ts.map +1 -0
  290. package/dist/models/index.d.ts +17 -39
  291. package/dist/models/index.d.ts.map +1 -1
  292. package/dist/models/index.js +50 -0
  293. package/dist/models/index.js.map +9 -0
  294. package/dist/models/language-model.d.ts +90 -0
  295. package/dist/models/language-model.d.ts.map +1 -0
  296. package/dist/models/messages.d.ts +74 -0
  297. package/dist/models/messages.d.ts.map +1 -0
  298. package/dist/models/pricing.d.ts +69 -0
  299. package/dist/models/pricing.d.ts.map +1 -0
  300. package/dist/models/rate-card.d.ts +24 -0
  301. package/dist/models/rate-card.d.ts.map +1 -0
  302. package/dist/models/tools.d.ts +24 -0
  303. package/dist/models/tools.d.ts.map +1 -0
  304. package/dist/objects/authorized-ontology-view.d.ts +25 -0
  305. package/dist/objects/authorized-ontology-view.d.ts.map +1 -0
  306. package/dist/objects/execution.d.ts +1 -1
  307. package/dist/objects/execution.d.ts.map +1 -1
  308. package/dist/objects/index.js +43 -36
  309. package/dist/objects/index.js.map +1 -1
  310. package/dist/objects/link/authorization.d.ts +2 -7
  311. package/dist/objects/link/authorization.d.ts.map +1 -1
  312. package/dist/objects/query/executor.d.ts +4 -2
  313. package/dist/objects/query/executor.d.ts.map +1 -1
  314. package/dist/objects/query/index.js +36 -29
  315. package/dist/objects/query/index.js.map +1 -1
  316. package/dist/objects/query/links.d.ts +22 -1
  317. package/dist/objects/query/links.d.ts.map +1 -1
  318. package/dist/objects/query/selected-read-admission.d.ts +27 -0
  319. package/dist/objects/query/selected-read-admission.d.ts.map +1 -0
  320. package/dist/objects/query/validate.d.ts +60 -2
  321. package/dist/objects/query/validate.d.ts.map +1 -1
  322. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  323. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  324. package/dist/objects/sdk/runtime-query-executor.d.ts +2 -7
  325. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  326. package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
  327. package/dist/objects/service/list-service.d.ts +2 -3
  328. package/dist/objects/service/list-service.d.ts.map +1 -1
  329. package/dist/objects/telemetry/history.d.ts +8 -6
  330. package/dist/objects/telemetry/history.d.ts.map +1 -1
  331. package/dist/objects/telemetry/index.d.ts +2 -2
  332. package/dist/objects/telemetry/index.d.ts.map +1 -1
  333. package/dist/objects/telemetry/workload.d.ts +11 -0
  334. package/dist/objects/telemetry/workload.d.ts.map +1 -0
  335. package/dist/ontology/index.d.ts +2 -1
  336. package/dist/ontology/index.d.ts.map +1 -1
  337. package/dist/ontology/index.js +15 -14
  338. package/dist/ontology/index.js.map +1 -1
  339. package/dist/ontology/inference/index.d.ts +2 -1
  340. package/dist/ontology/inference/index.d.ts.map +1 -1
  341. package/dist/ontology/internal.d.ts +0 -1
  342. package/dist/ontology/internal.d.ts.map +1 -1
  343. package/dist/ontology/internal.js +5 -10
  344. package/dist/ontology/internal.js.map +3 -3
  345. package/dist/ontology/json-schema.d.ts +10 -6
  346. package/dist/ontology/json-schema.d.ts.map +1 -1
  347. package/dist/ontology/link-path-selection.d.ts +35 -0
  348. package/dist/ontology/link-path-selection.d.ts.map +1 -0
  349. package/dist/ontology/refs.d.ts +2 -0
  350. package/dist/ontology/refs.d.ts.map +1 -1
  351. package/dist/ontology/tokens.d.ts +2 -1
  352. package/dist/ontology/tokens.d.ts.map +1 -1
  353. package/dist/pipelines/execution.d.ts.map +1 -1
  354. package/dist/pipelines/index.js +41 -36
  355. package/dist/pipelines/index.js.map +1 -1
  356. package/dist/pipelines/request.d.ts.map +1 -1
  357. package/dist/projections/execution.d.ts.map +1 -1
  358. package/dist/projections/internal.js +39 -32
  359. package/dist/projections/internal.js.map +1 -1
  360. package/dist/projections/run-dispatch.d.ts.map +1 -1
  361. package/dist/queues/in-memory.d.ts +3 -2
  362. package/dist/queues/in-memory.d.ts.map +1 -1
  363. package/dist/queues/index.d.ts +3 -1
  364. package/dist/queues/index.d.ts.map +1 -1
  365. package/dist/queues/index.js +1 -1
  366. package/dist/queues/types.d.ts +15 -3
  367. package/dist/queues/types.d.ts.map +1 -1
  368. package/dist/rules/execution.d.ts.map +1 -1
  369. package/dist/runtime/create.d.ts +7 -4
  370. package/dist/runtime/create.d.ts.map +1 -1
  371. package/dist/runtime/definitions.d.ts +4 -2
  372. package/dist/runtime/definitions.d.ts.map +1 -1
  373. package/dist/runtime/host.d.ts +5 -2
  374. package/dist/runtime/host.d.ts.map +1 -1
  375. package/dist/runtime/internal.d.ts +1 -0
  376. package/dist/runtime/internal.d.ts.map +1 -1
  377. package/dist/runtime/resolve-definitions.d.ts +4 -2
  378. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  379. package/dist/runtime/sixb.d.ts +8 -2
  380. package/dist/runtime/sixb.d.ts.map +1 -1
  381. package/dist/runtime/types.d.ts +3 -0
  382. package/dist/runtime/types.d.ts.map +1 -1
  383. package/dist/schedules/execution.d.ts +2 -1
  384. package/dist/schedules/execution.d.ts.map +1 -1
  385. package/dist/security/every.d.ts +4 -4
  386. package/dist/security/every.d.ts.map +1 -1
  387. package/dist/security/grants.d.ts +12 -6
  388. package/dist/security/grants.d.ts.map +1 -1
  389. package/dist/security/index.d.ts +1 -1
  390. package/dist/security/index.d.ts.map +1 -1
  391. package/dist/security/registry.d.ts +2 -1
  392. package/dist/security/registry.d.ts.map +1 -1
  393. package/dist/security/types.d.ts +19 -5
  394. package/dist/security/types.d.ts.map +1 -1
  395. package/dist/security/validation.d.ts +6 -2
  396. package/dist/security/validation.d.ts.map +1 -1
  397. package/dist/shares/access-plan.d.ts +22 -0
  398. package/dist/shares/access-plan.d.ts.map +1 -0
  399. package/dist/shares/builders.d.ts +14 -0
  400. package/dist/shares/builders.d.ts.map +1 -0
  401. package/dist/shares/compiler.d.ts +14 -0
  402. package/dist/shares/compiler.d.ts.map +1 -0
  403. package/dist/shares/errors.d.ts +4 -0
  404. package/dist/shares/errors.d.ts.map +1 -0
  405. package/dist/shares/execution.d.ts +57 -0
  406. package/dist/shares/execution.d.ts.map +1 -0
  407. package/dist/shares/index.d.ts +10 -0
  408. package/dist/shares/index.d.ts.map +1 -0
  409. package/dist/shares/internal.d.ts +3 -0
  410. package/dist/shares/internal.d.ts.map +1 -0
  411. package/dist/shares/internal.js +239 -0
  412. package/dist/shares/internal.js.map +10 -0
  413. package/dist/shares/intersection.d.ts +9 -0
  414. package/dist/shares/intersection.d.ts.map +1 -0
  415. package/dist/shares/session-protocol.d.ts +41 -0
  416. package/dist/shares/session-protocol.d.ts.map +1 -0
  417. package/dist/shares/types.d.ts +51 -0
  418. package/dist/shares/types.d.ts.map +1 -0
  419. package/dist/shares/validation.d.ts +11 -0
  420. package/dist/shares/validation.d.ts.map +1 -0
  421. package/dist/storage/action-runs/failure.js +3 -3
  422. package/dist/storage/action-runs/provider.js +2 -2
  423. package/dist/storage/agents/errors.d.ts +1 -1
  424. package/dist/storage/agents/errors.d.ts.map +1 -1
  425. package/dist/storage/agents/in-memory.d.ts +3 -2
  426. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  427. package/dist/storage/agents/index.d.ts +1 -1
  428. package/dist/storage/agents/index.d.ts.map +1 -1
  429. package/dist/storage/agents/provider.d.ts +11 -4
  430. package/dist/storage/agents/provider.d.ts.map +1 -1
  431. package/dist/storage/agents/provider.js +18 -15
  432. package/dist/storage/agents/provider.js.map +1 -1
  433. package/dist/storage/agents/types.d.ts +65 -17
  434. package/dist/storage/agents/types.d.ts.map +1 -1
  435. package/dist/storage/ai-cost/analytics.d.ts +2 -1
  436. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  437. package/dist/storage/ai-cost/codec.d.ts +3 -2
  438. package/dist/storage/ai-cost/codec.d.ts.map +1 -1
  439. package/dist/storage/ai-cost/groups.d.ts +51 -0
  440. package/dist/storage/ai-cost/groups.d.ts.map +1 -0
  441. package/dist/storage/ai-cost/in-memory.d.ts +11 -1
  442. package/dist/storage/ai-cost/in-memory.d.ts.map +1 -1
  443. package/dist/storage/ai-cost/index.d.ts +1 -1
  444. package/dist/storage/ai-cost/index.d.ts.map +1 -1
  445. package/dist/storage/ai-cost/provider.d.ts +2 -0
  446. package/dist/storage/ai-cost/provider.d.ts.map +1 -1
  447. package/dist/storage/ai-cost/provider.js +29 -13
  448. package/dist/storage/ai-cost/provider.js.map +3 -3
  449. package/dist/storage/ai-cost/types.d.ts +64 -15
  450. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  451. package/dist/storage/ai-cost/validation.d.ts +2 -1
  452. package/dist/storage/ai-cost/validation.d.ts.map +1 -1
  453. package/dist/storage/ai-limits/enforcement.d.ts +14 -0
  454. package/dist/storage/ai-limits/enforcement.d.ts.map +1 -0
  455. package/dist/storage/ai-limits/enforcement.js +21 -0
  456. package/dist/storage/ai-limits/enforcement.js.map +9 -0
  457. package/dist/storage/ai-limits/errors.d.ts +8 -0
  458. package/dist/storage/ai-limits/errors.d.ts.map +1 -0
  459. package/dist/storage/ai-limits/in-memory.d.ts +78 -0
  460. package/dist/storage/ai-limits/in-memory.d.ts.map +1 -0
  461. package/dist/storage/ai-limits/index.d.ts +7 -0
  462. package/dist/storage/ai-limits/index.d.ts.map +1 -0
  463. package/dist/storage/ai-limits/period.d.ts +4 -0
  464. package/dist/storage/ai-limits/period.d.ts.map +1 -0
  465. package/dist/storage/ai-limits/provider.d.ts +85 -0
  466. package/dist/storage/ai-limits/provider.d.ts.map +1 -0
  467. package/dist/storage/ai-limits/provider.js +62 -0
  468. package/dist/storage/ai-limits/provider.js.map +9 -0
  469. package/dist/storage/ai-limits/types.d.ts +175 -0
  470. package/dist/storage/ai-limits/types.d.ts.map +1 -0
  471. package/dist/storage/ai-usage/in-memory.d.ts +4 -0
  472. package/dist/storage/ai-usage/in-memory.d.ts.map +1 -1
  473. package/dist/storage/ai-usage/record.d.ts.map +1 -1
  474. package/dist/storage/ai-usage/types.d.ts +6 -2
  475. package/dist/storage/ai-usage/types.d.ts.map +1 -1
  476. package/dist/storage/auth/errors.d.ts +1 -1
  477. package/dist/storage/auth/errors.d.ts.map +1 -1
  478. package/dist/storage/auth/in-memory/auth-storage.d.ts +4 -1
  479. package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
  480. package/dist/storage/auth/in-memory/device-authorizations.d.ts +29 -0
  481. package/dist/storage/auth/in-memory/device-authorizations.d.ts.map +1 -0
  482. package/dist/storage/auth/in-memory/shared.d.ts +3 -1
  483. package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
  484. package/dist/storage/auth/index.d.ts +2 -1
  485. package/dist/storage/auth/index.d.ts.map +1 -1
  486. package/dist/storage/auth/types.d.ts +66 -0
  487. package/dist/storage/auth/types.d.ts.map +1 -1
  488. package/dist/storage/connector-connections/provider.js +2 -2
  489. package/dist/storage/executions/in-memory.d.ts +3 -0
  490. package/dist/storage/executions/in-memory.d.ts.map +1 -1
  491. package/dist/storage/executions/provider.d.ts +4 -1
  492. package/dist/storage/executions/provider.d.ts.map +1 -1
  493. package/dist/storage/executions/provider.js +23 -3
  494. package/dist/storage/executions/provider.js.map +3 -3
  495. package/dist/storage/executions/run-link.d.ts +14 -2
  496. package/dist/storage/executions/run-link.d.ts.map +1 -1
  497. package/dist/storage/executions/validation.d.ts +6 -0
  498. package/dist/storage/executions/validation.d.ts.map +1 -1
  499. package/dist/storage/in-memory/index.d.ts +12 -0
  500. package/dist/storage/in-memory/index.d.ts.map +1 -1
  501. package/dist/storage/index.d.ts +15 -6
  502. package/dist/storage/index.d.ts.map +1 -1
  503. package/dist/storage/index.js +78 -36
  504. package/dist/storage/index.js.map +1 -1
  505. package/dist/storage/objects/execution-limits.d.ts +25 -0
  506. package/dist/storage/objects/execution-limits.d.ts.map +1 -0
  507. package/dist/storage/objects/guard.d.ts +16 -0
  508. package/dist/storage/objects/guard.d.ts.map +1 -0
  509. package/dist/storage/objects/in-memory/index.d.ts +3 -0
  510. package/dist/storage/objects/in-memory/index.d.ts.map +1 -0
  511. package/dist/storage/objects/in-memory/keys.d.ts +10 -0
  512. package/dist/storage/objects/in-memory/keys.d.ts.map +1 -0
  513. package/dist/storage/objects/in-memory/query.d.ts +31 -0
  514. package/dist/storage/objects/in-memory/query.d.ts.map +1 -0
  515. package/dist/storage/objects/in-memory/read-scope.d.ts +18 -0
  516. package/dist/storage/objects/in-memory/read-scope.d.ts.map +1 -0
  517. package/dist/storage/objects/in-memory/read-source.d.ts +10 -0
  518. package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -0
  519. package/dist/storage/objects/in-memory/selected-reader.d.ts +9 -0
  520. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -0
  521. package/dist/storage/objects/{in-memory.d.ts → in-memory/storage.d.ts} +13 -10
  522. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -0
  523. package/dist/storage/objects/index.d.ts +4 -1
  524. package/dist/storage/objects/index.d.ts.map +1 -1
  525. package/dist/storage/objects/keys.d.ts +1 -1
  526. package/dist/storage/objects/keys.d.ts.map +1 -1
  527. package/dist/storage/objects/read-scope.d.ts +25 -0
  528. package/dist/storage/objects/read-scope.d.ts.map +1 -0
  529. package/dist/storage/objects/types.d.ts +114 -22
  530. package/dist/storage/objects/types.d.ts.map +1 -1
  531. package/dist/storage/ontology/provider.js +3 -3
  532. package/dist/storage/operation-scope.d.ts +3 -0
  533. package/dist/storage/operation-scope.d.ts.map +1 -1
  534. package/dist/storage/operation-scope.js +4 -2
  535. package/dist/storage/operation-scope.js.map +1 -1
  536. package/dist/storage/pipeline-runs/provider.js +2 -2
  537. package/dist/storage/projection-runs/provider.js +4 -4
  538. package/dist/storage/share-grants/errors.d.ts +8 -0
  539. package/dist/storage/share-grants/errors.d.ts.map +1 -0
  540. package/dist/storage/share-grants/in-memory.d.ts +11 -0
  541. package/dist/storage/share-grants/in-memory.d.ts.map +1 -0
  542. package/dist/storage/share-grants/index.d.ts +5 -0
  543. package/dist/storage/share-grants/index.d.ts.map +1 -0
  544. package/dist/storage/share-grants/provider.d.ts +4 -0
  545. package/dist/storage/share-grants/provider.d.ts.map +1 -0
  546. package/dist/storage/share-grants/provider.js +24 -0
  547. package/dist/storage/share-grants/provider.js.map +9 -0
  548. package/dist/storage/share-grants/record.d.ts +11 -0
  549. package/dist/storage/share-grants/record.d.ts.map +1 -0
  550. package/dist/storage/share-grants/types.d.ts +97 -0
  551. package/dist/storage/share-grants/types.d.ts.map +1 -0
  552. package/dist/storage/share-sessions/errors.d.ts +8 -0
  553. package/dist/storage/share-sessions/errors.d.ts.map +1 -0
  554. package/dist/storage/share-sessions/in-memory.d.ts +14 -0
  555. package/dist/storage/share-sessions/in-memory.d.ts.map +1 -0
  556. package/dist/storage/share-sessions/index.d.ts +5 -0
  557. package/dist/storage/share-sessions/index.d.ts.map +1 -0
  558. package/dist/storage/share-sessions/provider.d.ts +3 -0
  559. package/dist/storage/share-sessions/provider.d.ts.map +1 -0
  560. package/dist/storage/share-sessions/provider.js +20 -0
  561. package/dist/storage/share-sessions/provider.js.map +9 -0
  562. package/dist/storage/share-sessions/record.d.ts +8 -0
  563. package/dist/storage/share-sessions/record.d.ts.map +1 -0
  564. package/dist/storage/share-sessions/types.d.ts +50 -0
  565. package/dist/storage/share-sessions/types.d.ts.map +1 -0
  566. package/dist/storage/sync-runs/provider.js +2 -2
  567. package/dist/storage/transaction.d.ts +2 -1
  568. package/dist/storage/transaction.d.ts.map +1 -1
  569. package/dist/storage/types.d.ts +13 -1
  570. package/dist/storage/types.d.ts.map +1 -1
  571. package/dist/storage/webhook-runs/provider.js +2 -2
  572. package/dist/storage/workflow-runs/provider.d.ts +1 -1
  573. package/dist/storage/workflow-runs/provider.js +14 -12
  574. package/dist/storage/workflow-runs/provider.js.map +1 -1
  575. package/dist/storage/workflow-runs/types.d.ts +5 -4
  576. package/dist/storage/workflow-runs/types.d.ts.map +1 -1
  577. package/dist/syncs/execution.d.ts.map +1 -1
  578. package/dist/syncs/index.js +41 -36
  579. package/dist/syncs/index.js.map +1 -1
  580. package/dist/syncs/request.d.ts.map +1 -1
  581. package/dist/testing/agent-execution.d.ts +3 -1
  582. package/dist/testing/agent-execution.d.ts.map +1 -1
  583. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  584. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  585. package/dist/testing/ai-limit-storage-contract.d.ts +18 -0
  586. package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -0
  587. package/dist/testing/ai-model-call-groups-contract.d.ts +6 -0
  588. package/dist/testing/ai-model-call-groups-contract.d.ts.map +1 -0
  589. package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
  590. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  591. package/dist/testing/dataset-sequence-contract.d.ts +4 -0
  592. package/dist/testing/dataset-sequence-contract.d.ts.map +1 -0
  593. package/dist/testing/effective-storage-contract.d.ts.map +1 -1
  594. package/dist/testing/execution-storage-contract.d.ts +4 -0
  595. package/dist/testing/execution-storage-contract.d.ts.map +1 -1
  596. package/dist/testing/index.d.ts +5 -0
  597. package/dist/testing/index.d.ts.map +1 -1
  598. package/dist/testing/index.js +5392 -2070
  599. package/dist/testing/index.js.map +21 -15
  600. package/dist/testing/lake-merge-storage-contract.d.ts +1 -0
  601. package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
  602. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  603. package/dist/testing/object-read-scope-contract.d.ts +22 -0
  604. package/dist/testing/object-read-scope-contract.d.ts.map +1 -0
  605. package/dist/testing/queues-contract.d.ts.map +1 -1
  606. package/dist/testing/share-grant-storage-contract.d.ts +10 -0
  607. package/dist/testing/share-grant-storage-contract.d.ts.map +1 -0
  608. package/dist/testing/share-session-storage-contract.d.ts +9 -0
  609. package/dist/testing/share-session-storage-contract.d.ts.map +1 -0
  610. package/dist/webhooks/internal.js +36 -29
  611. package/dist/webhooks/internal.js.map +2 -2
  612. package/dist/workers/index.js +2 -2
  613. package/dist/workflows/agent-step-identity.d.ts +3 -0
  614. package/dist/workflows/agent-step-identity.d.ts.map +1 -0
  615. package/dist/workflows/builders.d.ts +2 -3
  616. package/dist/workflows/builders.d.ts.map +1 -1
  617. package/dist/workflows/execution.d.ts +1 -1
  618. package/dist/workflows/execution.d.ts.map +1 -1
  619. package/dist/workflows/failure.d.ts +1 -1
  620. package/dist/workflows/failure.d.ts.map +1 -1
  621. package/dist/workflows/index.d.ts +3 -2
  622. package/dist/workflows/index.d.ts.map +1 -1
  623. package/dist/workflows/index.js +63 -48
  624. package/dist/workflows/index.js.map +1 -1
  625. package/dist/workflows/request.d.ts.map +1 -1
  626. package/dist/workflows/types.d.ts +26 -11
  627. package/dist/workflows/types.d.ts.map +1 -1
  628. package/dist/workflows/validation.d.ts +7 -1
  629. package/dist/workflows/validation.d.ts.map +1 -1
  630. package/package.json +43 -4
  631. package/src/actions/delegated-admission.ts +72 -0
  632. package/src/actions/descriptor.ts +58 -0
  633. package/src/actions/execution.ts +99 -24
  634. package/src/actions/request.ts +136 -19
  635. package/src/actions/run-authorization.ts +53 -0
  636. package/src/actions/run-dispatch.ts +8 -1
  637. package/src/agents/adapters.ts +60 -456
  638. package/src/agents/authority.ts +215 -34
  639. package/src/agents/builders.ts +3 -50
  640. package/src/agents/context-compaction.ts +4 -0
  641. package/src/agents/context-resolution.ts +1 -4
  642. package/src/agents/dispatch.ts +59 -2
  643. package/src/agents/errors.ts +4 -11
  644. package/src/agents/execution.ts +65 -56
  645. package/src/agents/identity.ts +4 -0
  646. package/src/agents/ids.ts +16 -1
  647. package/src/agents/index.ts +23 -30
  648. package/src/agents/message.ts +20 -12
  649. package/src/agents/model-loop.ts +1071 -0
  650. package/src/agents/reference.ts +7 -0
  651. package/src/agents/request.ts +157 -77
  652. package/src/agents/retired-config.ts +20 -0
  653. package/src/agents/streams.ts +45 -19
  654. package/src/agents/tool-catalog.ts +21 -0
  655. package/src/agents/tool-definition.ts +9 -5
  656. package/src/agents/types.ts +39 -81
  657. package/src/agents/validation.ts +11 -216
  658. package/src/ai-usage/execution.ts +189 -0
  659. package/src/ai-usage/index.ts +15 -0
  660. package/src/authorization/decision.ts +54 -22
  661. package/src/authorization/grant-kinds.ts +72 -15
  662. package/src/authorization/index.ts +2 -0
  663. package/src/authorization/resolve.ts +12 -5
  664. package/src/authorization/types.ts +7 -5
  665. package/src/bootstrap/discovery.ts +3 -3
  666. package/src/bootstrap/ontology-type-manifest.ts +12 -6
  667. package/src/datasets/builders.ts +23 -2
  668. package/src/datasets/changes.ts +16 -4
  669. package/src/datasets/execution.ts +76 -5
  670. package/src/datasets/index.ts +1 -0
  671. package/src/datasets/sequence.ts +77 -0
  672. package/src/datasets/types.ts +1 -0
  673. package/src/datasets/validation.ts +26 -0
  674. package/src/datasets/write.ts +240 -0
  675. package/src/error-reporting/types.ts +4 -2
  676. package/src/errors/catalog.ts +8 -0
  677. package/src/events/execution.ts +57 -7
  678. package/src/events/types/datasets.ts +2 -6
  679. package/src/execution/agent.ts +129 -25
  680. package/src/execution/authorization.ts +493 -83
  681. package/src/execution/authorized-object-reader.ts +695 -0
  682. package/src/execution/durable.ts +10 -2
  683. package/src/execution/index.ts +1 -0
  684. package/src/execution/request.ts +67 -14
  685. package/src/execution/scopes.ts +36 -6
  686. package/src/execution/types.ts +9 -1
  687. package/src/http/api-routes.ts +108 -0
  688. package/src/index.ts +72 -22
  689. package/src/json.ts +9 -0
  690. package/src/lake-storage/definition-updates.ts +9 -0
  691. package/src/lake-storage/errors.ts +6 -1
  692. package/src/lake-storage/in-memory.ts +53 -17
  693. package/src/lake-storage/index.ts +10 -1
  694. package/src/lake-storage/merge-validation.ts +12 -2
  695. package/src/lake-storage/merge.ts +40 -2
  696. package/src/lake-storage/source-ordering.ts +95 -0
  697. package/src/lake-storage/sql-transforms.ts +2 -1
  698. package/src/lake-storage/types.ts +10 -5
  699. package/src/lake-storage/version-inputs.ts +14 -0
  700. package/src/models/catalog.ts +137 -0
  701. package/src/models/definitions.ts +202 -0
  702. package/src/models/errors.ts +83 -0
  703. package/src/models/events.ts +198 -0
  704. package/src/models/index.ts +89 -71
  705. package/src/models/language-model.ts +143 -0
  706. package/src/models/messages.ts +78 -0
  707. package/src/models/pricing.ts +390 -0
  708. package/src/models/rate-card.ts +101 -0
  709. package/src/models/tools.ts +29 -0
  710. package/src/objects/authorized-ontology-view.ts +512 -0
  711. package/src/objects/execution.ts +98 -143
  712. package/src/objects/link/authorization.ts +3 -2
  713. package/src/objects/query/executor.ts +45 -34
  714. package/src/objects/query/links.ts +84 -25
  715. package/src/objects/query/selected-read-admission.ts +310 -0
  716. package/src/objects/query/validate.ts +353 -36
  717. package/src/objects/sdk/object-handle.ts +2 -8
  718. package/src/objects/sdk/object-set.ts +10 -11
  719. package/src/objects/sdk/runtime-query-executor.ts +8 -28
  720. package/src/objects/sdk/telemetry-channel.ts +11 -7
  721. package/src/objects/service/list-service.ts +15 -29
  722. package/src/objects/telemetry/history.ts +297 -17
  723. package/src/objects/telemetry/index.ts +2 -2
  724. package/src/objects/telemetry/workload.ts +79 -0
  725. package/src/ontology/index.ts +7 -1
  726. package/src/ontology/inference/index.ts +4 -1
  727. package/src/ontology/internal.ts +0 -1
  728. package/src/ontology/json-schema.ts +13 -12
  729. package/src/ontology/link-path-selection.ts +193 -0
  730. package/src/ontology/refs.ts +19 -0
  731. package/src/ontology/tokens.ts +15 -8
  732. package/src/pipelines/execution.ts +30 -7
  733. package/src/pipelines/request.ts +5 -0
  734. package/src/projections/execution.ts +72 -11
  735. package/src/projections/run-dispatch.ts +6 -12
  736. package/src/queues/in-memory.ts +5 -0
  737. package/src/queues/index.ts +11 -0
  738. package/src/queues/types.ts +20 -3
  739. package/src/rules/execution.ts +20 -8
  740. package/src/runtime/create.ts +11 -5
  741. package/src/runtime/definitions.ts +4 -2
  742. package/src/runtime/host.ts +28 -8
  743. package/src/runtime/internal.ts +1 -0
  744. package/src/runtime/resolve-definitions.ts +22 -36
  745. package/src/runtime/sixb.ts +29 -10
  746. package/src/runtime/types.ts +3 -0
  747. package/src/schedules/execution.ts +24 -2
  748. package/src/security/every.ts +4 -4
  749. package/src/security/grants.ts +100 -14
  750. package/src/security/index.ts +3 -0
  751. package/src/security/registry.ts +9 -5
  752. package/src/security/types.ts +23 -4
  753. package/src/security/validation.ts +33 -9
  754. package/src/shares/access-plan.ts +225 -0
  755. package/src/shares/builders.ts +381 -0
  756. package/src/shares/compiler.ts +359 -0
  757. package/src/shares/errors.ts +3 -0
  758. package/src/shares/execution.ts +394 -0
  759. package/src/shares/index.ts +28 -0
  760. package/src/shares/internal.ts +9 -0
  761. package/src/shares/intersection.ts +178 -0
  762. package/src/shares/session-protocol.ts +258 -0
  763. package/src/shares/types.ts +76 -0
  764. package/src/shares/validation.ts +40 -0
  765. package/src/storage/agents/errors.ts +1 -0
  766. package/src/storage/agents/in-memory.ts +121 -11
  767. package/src/storage/agents/index.ts +7 -0
  768. package/src/storage/agents/provider.ts +150 -6
  769. package/src/storage/agents/types.ts +73 -16
  770. package/src/storage/ai-cost/analytics.ts +63 -6
  771. package/src/storage/ai-cost/codec.ts +37 -12
  772. package/src/storage/ai-cost/groups.ts +248 -0
  773. package/src/storage/ai-cost/in-memory.ts +42 -0
  774. package/src/storage/ai-cost/index.ts +6 -0
  775. package/src/storage/ai-cost/provider.ts +7 -0
  776. package/src/storage/ai-cost/types.ts +76 -14
  777. package/src/storage/ai-cost/validation.ts +147 -17
  778. package/src/storage/ai-limits/enforcement.ts +68 -0
  779. package/src/storage/ai-limits/errors.ts +23 -0
  780. package/src/storage/ai-limits/in-memory.ts +671 -0
  781. package/src/storage/ai-limits/index.ts +31 -0
  782. package/src/storage/ai-limits/period.ts +11 -0
  783. package/src/storage/ai-limits/provider.ts +430 -0
  784. package/src/storage/ai-limits/types.ts +195 -0
  785. package/src/storage/ai-usage/in-memory.ts +13 -0
  786. package/src/storage/ai-usage/record.ts +17 -0
  787. package/src/storage/ai-usage/types.ts +6 -2
  788. package/src/storage/auth/errors.ts +6 -0
  789. package/src/storage/auth/in-memory/auth-storage.ts +69 -0
  790. package/src/storage/auth/in-memory/device-authorizations.ts +145 -0
  791. package/src/storage/auth/in-memory/shared.ts +7 -0
  792. package/src/storage/auth/index.ts +7 -0
  793. package/src/storage/auth/types.ts +73 -0
  794. package/src/storage/executions/in-memory.ts +9 -1
  795. package/src/storage/executions/provider.ts +30 -1
  796. package/src/storage/executions/run-link.ts +45 -6
  797. package/src/storage/executions/validation.ts +82 -7
  798. package/src/storage/in-memory/index.ts +69 -6
  799. package/src/storage/index.ts +102 -1
  800. package/src/storage/objects/execution-limits.ts +283 -0
  801. package/src/storage/objects/guard.ts +55 -0
  802. package/src/storage/objects/in-memory/index.ts +2 -0
  803. package/src/storage/objects/in-memory/keys.ts +46 -0
  804. package/src/storage/objects/in-memory/query.ts +754 -0
  805. package/src/storage/objects/in-memory/read-scope.ts +211 -0
  806. package/src/storage/objects/in-memory/read-source.ts +10 -0
  807. package/src/storage/objects/in-memory/selected-reader.ts +252 -0
  808. package/src/storage/objects/in-memory/storage.ts +589 -0
  809. package/src/storage/objects/index.ts +21 -0
  810. package/src/storage/objects/keys.ts +1 -1
  811. package/src/storage/objects/read-scope.ts +672 -0
  812. package/src/storage/objects/types.ts +123 -19
  813. package/src/storage/operation-scope.ts +16 -0
  814. package/src/storage/share-grants/errors.ts +14 -0
  815. package/src/storage/share-grants/in-memory.ts +107 -0
  816. package/src/storage/share-grants/index.ts +14 -0
  817. package/src/storage/share-grants/provider.ts +11 -0
  818. package/src/storage/share-grants/record.ts +347 -0
  819. package/src/storage/share-grants/types.ts +112 -0
  820. package/src/storage/share-sessions/errors.ts +14 -0
  821. package/src/storage/share-sessions/in-memory.ts +105 -0
  822. package/src/storage/share-sessions/index.ts +11 -0
  823. package/src/storage/share-sessions/provider.ts +9 -0
  824. package/src/storage/share-sessions/record.ts +176 -0
  825. package/src/storage/share-sessions/types.ts +57 -0
  826. package/src/storage/transaction.ts +14 -2
  827. package/src/storage/types.ts +64 -0
  828. package/src/storage/workflow-runs/in-memory.ts +3 -3
  829. package/src/storage/workflow-runs/provider.ts +2 -2
  830. package/src/storage/workflow-runs/types.ts +6 -3
  831. package/src/syncs/execution.ts +25 -5
  832. package/src/syncs/request.ts +5 -0
  833. package/src/testing/agent-execution.ts +40 -28
  834. package/src/testing/agent-storage-contract.ts +249 -28
  835. package/src/testing/ai-cost-storage-contract.ts +96 -8
  836. package/src/testing/ai-limit-storage-contract.ts +1134 -0
  837. package/src/testing/ai-model-call-groups-contract.ts +353 -0
  838. package/src/testing/ai-usage-storage-contract.ts +31 -0
  839. package/src/testing/auth-storage-contract.ts +85 -0
  840. package/src/testing/dataset-sequence-contract.ts +373 -0
  841. package/src/testing/effective-storage-contract.ts +34 -0
  842. package/src/testing/execution-storage-contract.ts +81 -2
  843. package/src/testing/index.ts +26 -0
  844. package/src/testing/lake-merge-storage-contract.ts +3 -0
  845. package/src/testing/lake-storage-contract.ts +58 -0
  846. package/src/testing/object-read-scope-contract.ts +939 -0
  847. package/src/testing/queues-contract.ts +36 -1
  848. package/src/testing/share-grant-storage-contract.ts +325 -0
  849. package/src/testing/share-session-storage-contract.ts +235 -0
  850. package/src/workflows/agent-step-identity.ts +4 -0
  851. package/src/workflows/builders.ts +95 -9
  852. package/src/workflows/execution.ts +55 -16
  853. package/src/workflows/failure.ts +2 -2
  854. package/src/workflows/index.ts +3 -0
  855. package/src/workflows/request.ts +5 -0
  856. package/src/workflows/types.ts +23 -11
  857. package/src/workflows/validation.ts +100 -7
  858. package/dist/chunk-1e8m6yn3.js.map +0 -37
  859. package/dist/chunk-1g8negke.js.map +0 -11
  860. package/dist/chunk-4gz41why.js +0 -72
  861. package/dist/chunk-4gz41why.js.map +0 -11
  862. package/dist/chunk-5sxb1168.js.map +0 -34
  863. package/dist/chunk-6gjqgd3d.js.map +0 -11
  864. package/dist/chunk-819wnjz8.js.map +0 -12
  865. package/dist/chunk-a31h57d5.js.map +0 -13
  866. package/dist/chunk-a44d5zgd.js +0 -556
  867. package/dist/chunk-a44d5zgd.js.map +0 -16
  868. package/dist/chunk-ckxfnx7f.js.map +0 -13
  869. package/dist/chunk-dm72y8wt.js.map +0 -10
  870. package/dist/chunk-drjqm1aa.js.map +0 -15
  871. package/dist/chunk-dy311asx.js.map +0 -14
  872. package/dist/chunk-f6erf2vv.js.map +0 -10
  873. package/dist/chunk-f83ka50g.js.map +0 -23
  874. package/dist/chunk-fe5ev6mr.js +0 -55
  875. package/dist/chunk-fe5ev6mr.js.map +0 -11
  876. package/dist/chunk-h9kxd41f.js.map +0 -11
  877. package/dist/chunk-hceck7dq.js +0 -137
  878. package/dist/chunk-hceck7dq.js.map +0 -10
  879. package/dist/chunk-md8k0r54.js.map +0 -14
  880. package/dist/chunk-n4spznws.js.map +0 -11
  881. package/dist/chunk-nva1xkjz.js.map +0 -46
  882. package/dist/chunk-qewtks41.js.map +0 -11
  883. package/dist/chunk-t0jjkep3.js.map +0 -10
  884. package/dist/chunk-t624af60.js.map +0 -56
  885. package/dist/chunk-t8t39h7v.js.map +0 -10
  886. package/dist/chunk-t9xghkva.js +0 -28
  887. package/dist/chunk-t9xghkva.js.map +0 -10
  888. package/dist/chunk-x2yw73hy.js.map +0 -10
  889. package/dist/chunk-xc7hq65b.js.map +0 -10
  890. package/dist/storage/objects/in-memory.d.ts.map +0 -1
  891. package/src/storage/objects/in-memory.ts +0 -1241
  892. /package/dist/{chunk-zqysyfjt.js.map → chunk-08m3b6w8.js.map} +0 -0
  893. /package/dist/{chunk-z3zp0bj1.js.map → chunk-407j3msh.js.map} +0 -0
  894. /package/dist/{chunk-rhrbz7d4.js.map → chunk-4a849fr1.js.map} +0 -0
  895. /package/dist/{chunk-cy0n5dms.js.map → chunk-4jjp5k14.js.map} +0 -0
  896. /package/dist/{chunk-ezake7g1.js.map → chunk-5ntny1qx.js.map} +0 -0
  897. /package/dist/{chunk-72q2y8hn.js.map → chunk-8tsf6dmc.js.map} +0 -0
  898. /package/dist/{chunk-vybf6pkp.js.map → chunk-dbc80ad7.js.map} +0 -0
  899. /package/dist/{chunk-nkbfrt0c.js.map → chunk-f26bck4t.js.map} +0 -0
  900. /package/dist/{chunk-dsrkgtnh.js.map → chunk-jq43kdvk.js.map} +0 -0
  901. /package/dist/{chunk-wtmzkcht.js.map → chunk-k34z5rvh.js.map} +0 -0
  902. /package/dist/{chunk-htq0qh7z.js.map → chunk-ka3a2ft3.js.map} +0 -0
  903. /package/dist/{chunk-f2rt4vkh.js.map → chunk-n2w475r0.js.map} +0 -0
  904. /package/dist/{chunk-bhxaq2nn.js.map → chunk-qw9gvjv5.js.map} +0 -0
  905. /package/dist/{chunk-dysw7nsm.js.map → chunk-rv2hkwwa.js.map} +0 -0
  906. /package/dist/{chunk-ghteq96b.js.map → chunk-s5y30bc9.js.map} +0 -0
  907. /package/dist/{chunk-xkthy56g.js.map → chunk-w1tvjszy.js.map} +0 -0
  908. /package/dist/{chunk-8b55ygje.js.map → chunk-w3e09qqk.js.map} +0 -0
  909. /package/dist/{chunk-62c7t4jc.js.map → chunk-wdage1eb.js.map} +0 -0
@@ -1,4 +1,5 @@
1
1
  import type { ReadonlyJsonObject } from "../../json"
2
+ import type { ModelReasoning } from "../../models/language-model"
2
3
 
3
4
  /** How much normalized token usage a provider reported for one model call. */
4
5
  export type AiUsageReportingStatus = "complete" | "partial" | "unavailable"
@@ -31,22 +32,25 @@ export interface AiUsageExecutionSummary {
31
32
 
32
33
  /** Input for an idempotent model-call ledger append. */
33
34
  export interface RecordAiModelCallInput {
35
+ readonly providerIds?: import("../../models/events").ModelProviderIds
34
36
  readonly id: string
35
37
  readonly projectId: string
36
38
  /** Immutable execution-ledger record that owns this provider call. */
37
39
  readonly executionId: string
38
40
  /** Queue delivery attempt that made the provider call. */
39
41
  readonly attempt: number
40
- /** AI SDK generation ID. Tool-loop model calls share it and are distinguished by responseId. */
42
+ /** Stable call ID generated by the owned model loop. */
41
43
  readonly callId: string
42
44
  /**
43
45
  * Durable group memberships snapshotted when the parent run was admitted. The requester itself
44
46
  * is read from the immutable execution record.
45
47
  */
46
48
  readonly requesterGroupIds: readonly string[]
47
- /** AI SDK provider that handled the call, such as `openai`, `anthropic`, or `gateway`. */
49
+ /** Provider contract that handled the call, such as `anthropic` or `vercel-ai-gateway`. */
48
50
  readonly providerId: string
49
51
  readonly requestedModelId: string
52
+ /** Provider-neutral reasoning preference used for this call, when explicitly configured. */
53
+ readonly requestedReasoning?: ModelReasoning
50
54
  /** Provider-returned model identity when the capture path exposes it. */
51
55
  readonly responseModelId?: string
52
56
  /** Provider-returned response ID used for later usage and cost reconciliation. */
@@ -1,4 +1,7 @@
1
1
  export type AuthStorageErrorCode =
2
+ | "device_authorization_denied"
3
+ | "device_authorization_limit_exceeded"
4
+ | "duplicate_device_authorization"
2
5
  | "duplicate_access_token"
3
6
  | "duplicate_identity"
4
7
  | "duplicate_invitation"
@@ -13,10 +16,13 @@ export type AuthStorageErrorCode =
13
16
  | "invalid_input"
14
17
  | "invalid_magic_link"
15
18
  | "invalid_oidc_attempt"
19
+ | "invalid_device_authorization"
16
20
  | "missing_identity"
17
21
  | "missing_invitation"
18
22
  | "missing_magic_link"
19
23
  | "missing_oidc_attempt"
24
+ | "missing_device_authorization"
25
+ | "pending_device_authorization"
20
26
  | "missing_access_token"
21
27
  | "missing_service_account"
22
28
  | "missing_session"
@@ -1,6 +1,8 @@
1
1
  import { AuthStorageError } from "../errors"
2
2
  import type {
3
3
  AuthStorage,
4
+ CompleteDeviceAuthorizationInput,
5
+ CompleteDeviceAuthorizationResult,
4
6
  CompleteMagicLinkSignInInput,
5
7
  CompleteOidcSignInInput,
6
8
  CompleteSignInResult,
@@ -12,6 +14,7 @@ import type {
12
14
  UserRecord,
13
15
  } from "../types"
14
16
  import { InMemoryAuthAccessTokenStore } from "./access-tokens"
17
+ import { InMemoryAuthDeviceAuthorizationStore } from "./device-authorizations"
15
18
  import { InMemoryAuthGroupMembershipStore } from "./group-memberships"
16
19
  import { InMemoryAuthUserIdentityStore } from "./identities"
17
20
  import { InMemoryAuthInvitationStore } from "./invitations"
@@ -27,8 +30,10 @@ import {
27
30
  cloneRecord,
28
31
  consumeMagicLinkRecord,
29
32
  consumeOidcAttemptRecord,
33
+ createAccessTokenRecord,
30
34
  createAuthStorageState,
31
35
  createSessionRecord,
36
+ deviceAuthorizationKey,
32
37
  getActiveInvitationByEmail,
33
38
  getUserByEmail,
34
39
  identityKey,
@@ -60,6 +65,7 @@ export class InMemoryAuthStorage implements AuthStorage {
60
65
  readonly groupMemberships = new InMemoryAuthGroupMembershipStore(this.state)
61
66
  readonly magicLinks = new InMemoryAuthMagicLinkStore(this.state)
62
67
  readonly oidcAuthorizationAttempts = new InMemoryAuthOidcAuthorizationAttemptStore(this.state)
68
+ readonly deviceAuthorizations = new InMemoryAuthDeviceAuthorizationStore(this.state)
63
69
 
64
70
  snapshot(): InMemoryAuthStorageSnapshot {
65
71
  return {
@@ -73,6 +79,7 @@ export class InMemoryAuthStorage implements AuthStorage {
73
79
  groupMemberships: structuredClone(this.state.groupMemberships),
74
80
  magicLinks: structuredClone(this.state.magicLinks),
75
81
  oidcAuthorizationAttempts: structuredClone(this.state.oidcAuthorizationAttempts),
82
+ deviceAuthorizations: structuredClone(this.state.deviceAuthorizations),
76
83
  }
77
84
  }
78
85
 
@@ -87,6 +94,68 @@ export class InMemoryAuthStorage implements AuthStorage {
87
94
  restoreMap(this.state.groupMemberships, snapshot.groupMemberships)
88
95
  restoreMap(this.state.magicLinks, snapshot.magicLinks)
89
96
  restoreMap(this.state.oidcAuthorizationAttempts, snapshot.oidcAuthorizationAttempts)
97
+ restoreMap(this.state.deviceAuthorizations, snapshot.deviceAuthorizations)
98
+ }
99
+
100
+ async completeDeviceAuthorization(
101
+ input: CompleteDeviceAuthorizationInput
102
+ ): Promise<CompleteDeviceAuthorizationResult> {
103
+ const key = deviceAuthorizationKey(input.projectId, input.id)
104
+ const authorization = this.state.deviceAuthorizations.get(key)
105
+ if (!authorization) {
106
+ throw new AuthStorageError(
107
+ "missing_device_authorization",
108
+ `[Sixb] Device authorization '${input.id}' not found for project '${input.projectId}'.`
109
+ )
110
+ }
111
+ if (authorization.deviceCodeHash !== input.deviceCodeHash) {
112
+ throw new AuthStorageError(
113
+ "invalid_device_authorization",
114
+ "[Sixb] Invalid device authorization."
115
+ )
116
+ }
117
+ if (authorization.status === "pending") {
118
+ throw new AuthStorageError(
119
+ "pending_device_authorization",
120
+ "[Sixb] Device authorization is pending."
121
+ )
122
+ }
123
+ if (authorization.status === "denied") {
124
+ throw new AuthStorageError(
125
+ "device_authorization_denied",
126
+ "[Sixb] Device authorization was denied."
127
+ )
128
+ }
129
+ if (
130
+ authorization.status !== "approved" ||
131
+ !authorization.approvedUserId ||
132
+ !authorization.approvedSessionId ||
133
+ authorization.expiresAt <= input.completedAt
134
+ ) {
135
+ throw new AuthStorageError(
136
+ "invalid_device_authorization",
137
+ "[Sixb] Device authorization is invalid."
138
+ )
139
+ }
140
+ if (
141
+ input.accessToken.projectId !== input.projectId ||
142
+ input.accessToken.subjectType !== "user" ||
143
+ input.accessToken.subjectId !== authorization.approvedUserId ||
144
+ input.accessToken.createdBySessionId !== authorization.approvedSessionId
145
+ ) {
146
+ throw new AuthStorageError(
147
+ "invalid_device_authorization",
148
+ "[Sixb] Device access token is invalid."
149
+ )
150
+ }
151
+ const accessToken = createAccessTokenRecord(this.state, input.accessToken)
152
+ const consumed = {
153
+ ...authorization,
154
+ status: "consumed" as const,
155
+ consumedAt: new Date(input.completedAt),
156
+ }
157
+ this.state.deviceAuthorizations.set(key, cloneRecord(consumed))
158
+ return { authorization: cloneRecord(consumed), accessToken: cloneRecord(accessToken) }
90
159
  }
91
160
 
92
161
  async completeMagicLinkSignIn(
@@ -0,0 +1,145 @@
1
+ import { AuthStorageError } from "../errors"
2
+ import type {
3
+ AuthDeviceAuthorizationStore,
4
+ CreateDeviceAuthorizationInput,
5
+ DeviceAuthorizationRecord,
6
+ } from "../types"
7
+ import { MAX_PENDING_DEVICE_AUTHORIZATIONS } from "../types"
8
+ import type { AuthStorageState } from "./shared"
9
+ import {
10
+ assertNonEmpty,
11
+ cloneRecord,
12
+ deviceAuthorizationKey,
13
+ isActiveSession,
14
+ sessionKey,
15
+ userKey,
16
+ } from "./shared"
17
+
18
+ export class InMemoryAuthDeviceAuthorizationStore implements AuthDeviceAuthorizationStore {
19
+ constructor(private readonly state: AuthStorageState) {}
20
+
21
+ async create(input: CreateDeviceAuthorizationInput): Promise<DeviceAuthorizationRecord> {
22
+ const id = assertNonEmpty(input.id, "Device authorization id")
23
+ const projectId = assertNonEmpty(input.projectId, "Project id")
24
+ for (const [key, authorization] of this.state.deviceAuthorizations) {
25
+ if (authorization.projectId === projectId && authorization.expiresAt <= input.createdAt) {
26
+ this.state.deviceAuthorizations.delete(key)
27
+ }
28
+ }
29
+ const pending = [...this.state.deviceAuthorizations.values()].filter(
30
+ (authorization) => authorization.projectId === projectId && authorization.status === "pending"
31
+ ).length
32
+ if (pending >= MAX_PENDING_DEVICE_AUTHORIZATIONS) {
33
+ throw new AuthStorageError(
34
+ "device_authorization_limit_exceeded",
35
+ `[Sixb] Project '${projectId}' has too many pending device authorizations.`
36
+ )
37
+ }
38
+ const key = deviceAuthorizationKey(projectId, id)
39
+ if (this.state.deviceAuthorizations.has(key)) {
40
+ throw duplicateAuthorization(id, projectId)
41
+ }
42
+ const record: DeviceAuthorizationRecord = {
43
+ id,
44
+ projectId,
45
+ deviceCodeHash: assertNonEmpty(input.deviceCodeHash, "Device code hash"),
46
+ userCode: assertNonEmpty(input.userCode, "User code"),
47
+ clientName: assertNonEmpty(input.clientName, "Client name"),
48
+ tokenName: assertNonEmpty(input.tokenName, "Token name"),
49
+ tokenExpiresAt: new Date(input.tokenExpiresAt),
50
+ status: "pending",
51
+ createdAt: new Date(input.createdAt),
52
+ expiresAt: new Date(input.expiresAt),
53
+ }
54
+ this.state.deviceAuthorizations.set(key, cloneRecord(record))
55
+ return cloneRecord(record)
56
+ }
57
+
58
+ async getById(params: { readonly projectId: string; readonly id: string }) {
59
+ const record = this.state.deviceAuthorizations.get(
60
+ deviceAuthorizationKey(params.projectId, params.id)
61
+ )
62
+ return record ? cloneRecord(record) : null
63
+ }
64
+
65
+ async getByUserCode(params: { readonly projectId: string; readonly userCode: string }) {
66
+ for (const record of this.state.deviceAuthorizations.values()) {
67
+ if (record.projectId === params.projectId && record.userCode === params.userCode) {
68
+ return cloneRecord(record)
69
+ }
70
+ }
71
+ return null
72
+ }
73
+
74
+ async approve(params: {
75
+ readonly projectId: string
76
+ readonly id: string
77
+ readonly userId: string
78
+ readonly sessionId: string
79
+ readonly approvedAt: Date
80
+ }): Promise<DeviceAuthorizationRecord> {
81
+ const record = this.requirePending(params.projectId, params.id, params.approvedAt)
82
+ const user = this.state.users.get(userKey(params.projectId, params.userId))
83
+ const session = this.state.sessions.get(sessionKey(params.projectId, params.sessionId))
84
+ if (
85
+ !user ||
86
+ user.status !== "active" ||
87
+ !session ||
88
+ session.userId !== user.id ||
89
+ !isActiveSession(session, params.approvedAt)
90
+ ) {
91
+ throw new AuthStorageError(
92
+ "invalid_device_authorization",
93
+ "[Sixb] Device authorization requires an active user session."
94
+ )
95
+ }
96
+ const next: DeviceAuthorizationRecord = {
97
+ ...record,
98
+ status: "approved",
99
+ approvedUserId: assertNonEmpty(params.userId, "Approved user id"),
100
+ approvedSessionId: assertNonEmpty(params.sessionId, "Approved session id"),
101
+ approvedAt: new Date(params.approvedAt),
102
+ }
103
+ this.state.deviceAuthorizations.set(deviceAuthorizationKey(params.projectId, params.id), next)
104
+ return cloneRecord(next)
105
+ }
106
+
107
+ async deny(params: {
108
+ readonly projectId: string
109
+ readonly id: string
110
+ readonly deniedAt: Date
111
+ }): Promise<DeviceAuthorizationRecord> {
112
+ const record = this.requirePending(params.projectId, params.id, params.deniedAt)
113
+ const next: DeviceAuthorizationRecord = {
114
+ ...record,
115
+ status: "denied",
116
+ deniedAt: new Date(params.deniedAt),
117
+ }
118
+ this.state.deviceAuthorizations.set(deviceAuthorizationKey(params.projectId, params.id), next)
119
+ return cloneRecord(next)
120
+ }
121
+
122
+ private requirePending(projectId: string, id: string, now: Date): DeviceAuthorizationRecord {
123
+ const record = this.state.deviceAuthorizations.get(deviceAuthorizationKey(projectId, id))
124
+ if (!record) {
125
+ throw new AuthStorageError(
126
+ "missing_device_authorization",
127
+ `[Sixb] Device authorization '${id}' not found for project '${projectId}'.`
128
+ )
129
+ }
130
+ if (record.status !== "pending" || record.expiresAt <= now) {
131
+ throw new AuthStorageError(
132
+ "invalid_device_authorization",
133
+ `[Sixb] Device authorization '${id}' is no longer pending for project '${projectId}'.`
134
+ )
135
+ }
136
+ return record
137
+ }
138
+ }
139
+
140
+ function duplicateAuthorization(id: string, projectId: string): AuthStorageError {
141
+ return new AuthStorageError(
142
+ "duplicate_device_authorization",
143
+ `[Sixb] Device authorization '${id}' already exists for project '${projectId}'.`
144
+ )
145
+ }
@@ -6,6 +6,7 @@ import type {
6
6
  CreateAuthAccessTokenInput,
7
7
  CreateAuthServiceAccountInput,
8
8
  CreateAuthSessionInput,
9
+ DeviceAuthorizationRecord,
9
10
  GroupMembershipRecord,
10
11
  InvitationRecord,
11
12
  MagicLinkRecord,
@@ -30,6 +31,7 @@ export interface AuthStorageState {
30
31
  readonly groupMemberships: Map<string, GroupMembershipRecord>
31
32
  readonly magicLinks: Map<string, MagicLinkRecord>
32
33
  readonly oidcAuthorizationAttempts: Map<string, OidcAuthorizationAttemptRecord>
34
+ readonly deviceAuthorizations: Map<string, DeviceAuthorizationRecord>
33
35
  }
34
36
 
35
37
  export function createAuthStorageState(): AuthStorageState {
@@ -44,6 +46,7 @@ export function createAuthStorageState(): AuthStorageState {
44
46
  groupMemberships: new Map(),
45
47
  magicLinks: new Map(),
46
48
  oidcAuthorizationAttempts: new Map(),
49
+ deviceAuthorizations: new Map(),
47
50
  }
48
51
  }
49
52
 
@@ -75,6 +78,10 @@ export function sessionKey(projectId: string, id: string): string {
75
78
  return scopedKey(projectId, id)
76
79
  }
77
80
 
81
+ export function deviceAuthorizationKey(projectId: string, id: string): string {
82
+ return scopedKey(projectId, id)
83
+ }
84
+
78
85
  export function accessTokenKey(projectId: string, id: string): string {
79
86
  return scopedKey(projectId, id)
80
87
  }
@@ -5,6 +5,7 @@ export type {
5
5
  AccessTokenRecord,
6
6
  AccessTokenSubjectType,
7
7
  AuthAccessTokenStore,
8
+ AuthDeviceAuthorizationStore,
8
9
  AuthGroupMembershipStore,
9
10
  AuthInvitationStore,
10
11
  AuthMagicLinkStore,
@@ -16,6 +17,8 @@ export type {
16
17
  AuthUserIdentityStore,
17
18
  AuthUserStore,
18
19
  CompleteAuthSessionInput,
20
+ CompleteDeviceAuthorizationInput,
21
+ CompleteDeviceAuthorizationResult,
19
22
  CompleteMagicLinkSignInInput,
20
23
  CompleteOidcSignInInput,
21
24
  CompleteSignInResult,
@@ -24,8 +27,11 @@ export type {
24
27
  CreateAuthServiceAccountInput,
25
28
  CreateAuthSessionInput,
26
29
  CreateAuthUserInput,
30
+ CreateDeviceAuthorizationInput,
27
31
  CreateOidcAuthorizationAttemptInput,
28
32
  CreateOrUpdateAuthInvitationInput,
33
+ DeviceAuthorizationRecord,
34
+ DeviceAuthorizationStatus,
29
35
  GroupMembershipRecord,
30
36
  GroupMembershipSource,
31
37
  InvitationRecord,
@@ -56,3 +62,4 @@ export type {
56
62
  UserRecord,
57
63
  UserStatus,
58
64
  } from "./types"
65
+ export { MAX_PENDING_DEVICE_AUTHORIZATIONS } from "./types"
@@ -5,6 +5,8 @@ export type ServiceAccountStatus = "active" | "suspended"
5
5
  export type InvitationStatus = "pending" | "accepted" | "revoked"
6
6
  export type GroupMembershipSource = "invitation" | "manual" | "agent"
7
7
  export type AccessTokenSubjectType = "user" | "serviceAccount"
8
+ export type DeviceAuthorizationStatus = "pending" | "approved" | "denied" | "consumed"
9
+ export const MAX_PENDING_DEVICE_AUTHORIZATIONS = 100
8
10
 
9
11
  export interface UserRecord {
10
12
  readonly id: string
@@ -140,6 +142,24 @@ export interface OidcAuthorizationAttemptRecord {
140
142
  readonly consumedAt?: Date
141
143
  }
142
144
 
145
+ export interface DeviceAuthorizationRecord {
146
+ readonly id: string
147
+ readonly projectId: string
148
+ readonly deviceCodeHash: string
149
+ readonly userCode: string
150
+ readonly clientName: string
151
+ readonly tokenName: string
152
+ readonly tokenExpiresAt: Date
153
+ readonly status: DeviceAuthorizationStatus
154
+ readonly approvedUserId?: string
155
+ readonly approvedSessionId?: string
156
+ readonly createdAt: Date
157
+ readonly expiresAt: Date
158
+ readonly approvedAt?: Date
159
+ readonly deniedAt?: Date
160
+ readonly consumedAt?: Date
161
+ }
162
+
143
163
  export interface CreateAuthUserInput {
144
164
  readonly id: string
145
165
  readonly projectId: string
@@ -359,6 +379,31 @@ export interface CreateOidcAuthorizationAttemptInput {
359
379
  readonly expiresAt: Date
360
380
  }
361
381
 
382
+ export interface CreateDeviceAuthorizationInput {
383
+ readonly id: string
384
+ readonly projectId: string
385
+ readonly deviceCodeHash: string
386
+ readonly userCode: string
387
+ readonly clientName: string
388
+ readonly tokenName: string
389
+ readonly tokenExpiresAt: Date
390
+ readonly createdAt: Date
391
+ readonly expiresAt: Date
392
+ }
393
+
394
+ export interface CompleteDeviceAuthorizationInput {
395
+ readonly projectId: string
396
+ readonly id: string
397
+ readonly deviceCodeHash: string
398
+ readonly accessToken: CreateAuthAccessTokenInput
399
+ readonly completedAt: Date
400
+ }
401
+
402
+ export interface CompleteDeviceAuthorizationResult {
403
+ readonly authorization: DeviceAuthorizationRecord
404
+ readonly accessToken: AccessTokenRecord
405
+ }
406
+
362
407
  export interface CompleteMagicLinkSignInInput {
363
408
  readonly projectId: string
364
409
  readonly magicLinkId: string
@@ -622,6 +667,30 @@ export interface AuthOidcAuthorizationAttemptStore {
622
667
  }): Promise<OidcAuthorizationAttemptRecord>
623
668
  }
624
669
 
670
+ export interface AuthDeviceAuthorizationStore {
671
+ create(input: CreateDeviceAuthorizationInput): Promise<DeviceAuthorizationRecord>
672
+ getById(params: {
673
+ readonly projectId: string
674
+ readonly id: string
675
+ }): Promise<DeviceAuthorizationRecord | null>
676
+ getByUserCode(params: {
677
+ readonly projectId: string
678
+ readonly userCode: string
679
+ }): Promise<DeviceAuthorizationRecord | null>
680
+ approve(params: {
681
+ readonly projectId: string
682
+ readonly id: string
683
+ readonly userId: string
684
+ readonly sessionId: string
685
+ readonly approvedAt: Date
686
+ }): Promise<DeviceAuthorizationRecord>
687
+ deny(params: {
688
+ readonly projectId: string
689
+ readonly id: string
690
+ readonly deniedAt: Date
691
+ }): Promise<DeviceAuthorizationRecord>
692
+ }
693
+
625
694
  export interface AuthStorage {
626
695
  readonly users: AuthUserStore
627
696
  readonly identities: AuthUserIdentityStore
@@ -633,8 +702,12 @@ export interface AuthStorage {
633
702
  readonly groupMemberships: AuthGroupMembershipStore
634
703
  readonly magicLinks: AuthMagicLinkStore
635
704
  readonly oidcAuthorizationAttempts: AuthOidcAuthorizationAttemptStore
705
+ readonly deviceAuthorizations: AuthDeviceAuthorizationStore
636
706
 
637
707
  completeMagicLinkSignIn(input: CompleteMagicLinkSignInInput): Promise<CompleteSignInResult>
638
708
  completeOidcSignIn(input: CompleteOidcSignInInput): Promise<CompleteSignInResult>
709
+ completeDeviceAuthorization(
710
+ input: CompleteDeviceAuthorizationInput
711
+ ): Promise<CompleteDeviceAuthorizationResult>
639
712
  suspendUserAndRevokeSessions(input: SuspendUserAndRevokeSessionsInput): Promise<UserRecord>
640
713
  }
@@ -1,4 +1,5 @@
1
1
  import type { AuthStorage } from "../auth"
2
+ import type { ShareSessionStorage } from "../share-sessions"
2
3
  import { ExecutionStorageError } from "./errors"
3
4
  import type { CreateExecutionInput, ExecutionRecord, ExecutionStorage } from "./types"
4
5
  import {
@@ -18,12 +19,17 @@ function executionKey(projectId: string, id: string): string {
18
19
  export class InMemoryExecutionStorage implements ExecutionStorage {
19
20
  private readonly rows = new Map<string, ExecutionRecord>()
20
21
  private readonly runRootOperation: RunRootOperation
22
+ private readonly shareSessions?: Pick<ShareSessionStorage, "getById">
21
23
 
22
24
  constructor(
23
25
  private readonly auth: AuthStorage,
24
- input: { readonly runRootOperation?: RunRootOperation } = {}
26
+ input: {
27
+ readonly runRootOperation?: RunRootOperation
28
+ readonly shareSessions?: Pick<ShareSessionStorage, "getById">
29
+ } = {}
25
30
  ) {
26
31
  this.runRootOperation = input.runRootOperation ?? runDirectly
32
+ this.shareSessions = input.shareSessions
27
33
  }
28
34
 
29
35
  snapshot(): InMemoryExecutionStorageSnapshot {
@@ -54,6 +60,8 @@ export class InMemoryExecutionStorage implements ExecutionStorage {
54
60
  const existing = this.rows.get(executionKey(projectId, id))
55
61
  return existing ? cloneExecutionRecord(existing) : null
56
62
  },
63
+ getShareSession: async ({ projectId, id }) =>
64
+ (await this.shareSessions?.getById({ projectId, id })) ?? null,
57
65
  })
58
66
 
59
67
  this.rows.set(key, cloneExecutionRecord(record))
@@ -22,7 +22,7 @@ export interface ExecutionStorageRow {
22
22
  readonly correlationId: string
23
23
  /** SQL-only projection of an execution source, used to enforce the parent foreign key. */
24
24
  readonly parentExecutionId: string | null
25
- readonly authorityKind: "disabled" | "kernel" | "principal" | "trustedPrimitive"
25
+ readonly authorityKind: "delegated" | "disabled" | "kernel" | "principal" | "trustedPrimitive"
26
26
  readonly authorityUserId: string | null
27
27
  readonly authorityServiceAccountId: string | null
28
28
  readonly authoritySessionId: string | null
@@ -30,6 +30,9 @@ export interface ExecutionStorageRow {
30
30
  readonly authorityPrimitiveKind: TrustedPrimitiveKind | null
31
31
  readonly authorityPrimitiveId: string | null
32
32
  readonly authorityKernelOperation: "ontology.recover" | null
33
+ readonly authorityDelegationKind: "share" | null
34
+ readonly authorityDelegationId: string | null
35
+ readonly authorityDelegationSessionId: string | null
33
36
  readonly createdAt: Date
34
37
  }
35
38
 
@@ -132,6 +135,9 @@ function flattenAuthority(
132
135
  ExecutionStorageRow,
133
136
  | "authorityAccessTokenId"
134
137
  | "authorityKernelOperation"
138
+ | "authorityDelegationKind"
139
+ | "authorityDelegationId"
140
+ | "authorityDelegationSessionId"
135
141
  | "authorityKind"
136
142
  | "authorityPrimitiveId"
137
143
  | "authorityPrimitiveKind"
@@ -147,6 +153,9 @@ function flattenAuthority(
147
153
  authorityPrimitiveKind: null,
148
154
  authorityPrimitiveId: null,
149
155
  authorityKernelOperation: null,
156
+ authorityDelegationKind: null,
157
+ authorityDelegationId: null,
158
+ authorityDelegationSessionId: null,
150
159
  }
151
160
 
152
161
  switch (record.authorizationRef.type) {
@@ -178,6 +187,14 @@ function flattenAuthority(
178
187
  authorityPrimitiveKind: record.authorizationRef.primitive.kind,
179
188
  authorityPrimitiveId: record.authorizationRef.primitive.id,
180
189
  }
190
+ case "delegated":
191
+ return {
192
+ ...empty,
193
+ authorityKind: "delegated",
194
+ authorityDelegationKind: record.authorizationRef.delegation.kind,
195
+ authorityDelegationId: record.authorizationRef.delegation.grantId,
196
+ authorityDelegationSessionId: record.authorizationRef.delegation.sessionId,
197
+ }
181
198
  case "kernel":
182
199
  return {
183
200
  ...empty,
@@ -271,6 +288,18 @@ function inflateAuthority(row: ExecutionStorageRow): CreateExecutionInput["autho
271
288
  runId: row.executorId,
272
289
  },
273
290
  }
291
+ case "delegated":
292
+ return {
293
+ type: "delegated",
294
+ delegation: {
295
+ kind: requireValue(row.authorityDelegationKind, "authority delegation kind"),
296
+ grantId: requireValue(row.authorityDelegationId, "authority delegation id"),
297
+ sessionId: requireValue(
298
+ row.authorityDelegationSessionId,
299
+ "authority delegation session id"
300
+ ),
301
+ },
302
+ }
274
303
  case "kernel":
275
304
  return {
276
305
  type: "kernel",
@@ -41,28 +41,67 @@ export async function findPrimitiveRunExecution(input: {
41
41
  return execution
42
42
  }
43
43
 
44
- /** Find the immutable execution and service-account authority owned by one Agent run. */
44
+ /** Resolve the request execution that directly initiated one provider-validated primitive run. */
45
+ export async function findPrimitiveParentRequestExecution(input: {
46
+ readonly executions: ExecutionStorage
47
+ readonly projectId: string
48
+ readonly executionId: string
49
+ readonly primitive: TrustedPrimitiveRef
50
+ }): Promise<ExecutionRecord | null> {
51
+ const child = await findPrimitiveRunExecution({
52
+ ...input,
53
+ sourceTypes: ["execution"],
54
+ })
55
+ if (!child || child.source.type !== "execution") return null
56
+
57
+ const parent = await input.executions.getById({
58
+ projectId: input.projectId,
59
+ id: child.source.executionId,
60
+ })
61
+ if (
62
+ !parent ||
63
+ parent.executor.type !== "request" ||
64
+ parent.source.type !== "http" ||
65
+ parent.executor.requestId !== parent.source.requestId ||
66
+ parent.correlationId !== child.correlationId
67
+ ) {
68
+ return null
69
+ }
70
+ return parent
71
+ }
72
+
73
+ /** Find the immutable execution and authority owned by one Agent run. */
45
74
  export async function findAgentRunExecution(input: {
46
75
  readonly executions: ExecutionStorage
47
76
  readonly projectId: string
48
77
  readonly executionId: string
49
78
  readonly runId: string
50
- readonly serviceAccountId: string
79
+ readonly authority:
80
+ | { readonly type: "managed"; readonly serviceAccountId: string }
81
+ | { readonly type: "inherited" }
51
82
  }): Promise<ExecutionRecord | null> {
52
83
  const execution = await input.executions.getById({
53
84
  projectId: input.projectId,
54
85
  id: input.executionId,
55
86
  })
56
87
  const authority = execution?.authorizationRef
88
+ const validAuthority =
89
+ input.authority.type === "managed"
90
+ ? authority?.type === "principal" &&
91
+ authority.principal.type === "serviceAccount" &&
92
+ authority.principal.id === input.authority.serviceAccountId &&
93
+ authority.credential === undefined
94
+ : authority?.type === "disabled" ||
95
+ (authority?.type === "principal" &&
96
+ authority.principal.type === "user" &&
97
+ authority.credential !== undefined)
98
+
57
99
  if (
58
100
  !execution ||
59
101
  execution.source.type !== "execution" ||
60
102
  execution.executor.type !== "agent" ||
61
103
  execution.executor.runId !== input.runId ||
62
- authority?.type !== "principal" ||
63
- authority.principal.type !== "serviceAccount" ||
64
- authority.principal.id !== input.serviceAccountId ||
65
- authority.credential !== undefined
104
+ !validAuthority
66
105
  ) {
67
106
  return null
68
107
  }