@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,11 +1,24 @@
1
+ import { isDeepStrictEqual } from "node:util"
2
+ import { agentServiceAccountId } from "../agents/identity"
1
3
  import type { Principal } from "../auth"
2
- import { emptyGrantSets, GRANT_KIND_KEYS } from "../authorization/grant-kinds"
4
+ import { TARGETED_GRANT_KIND_KEYS, type TargetedGrantKind } from "../authorization/grant-kinds"
3
5
  import type { AuthorizationContext, GrantIndex } from "../authorization/types"
4
6
  import { createSixbError } from "../errors/internal"
7
+ import type { ObjectRef } from "../ontology"
8
+ import {
9
+ type ObjectReadExecutionLimits,
10
+ snapshotObjectReadExecutionLimits,
11
+ } from "../storage/objects/execution-limits"
12
+ import { compileSelectedObjectReadScope } from "../storage/objects/read-scope"
13
+ import type {
14
+ CompiledSelectedObjectReadScope,
15
+ SelectedObjectReadScope,
16
+ } from "../storage/objects/types"
5
17
  import {
6
18
  type AuthorizablePrincipal,
7
19
  type AuthorizationRef,
8
20
  createRuntimeAuthorizationCapability,
21
+ type ExecutionContext,
9
22
  type ExecutionScope,
10
23
  isRuntimeAuthorizationCapability,
11
24
  type KernelOperation,
@@ -20,16 +33,33 @@ export type ResolvedRuntimeAuthorization =
20
33
  readonly projectId: string
21
34
  readonly context: AuthorizationContext
22
35
  readonly ref: Extract<AuthorizationRef, { readonly type: "principal" }>
23
- /** Process-local binding used by provider façades that explicitly support agent runs. */
24
- readonly executionBinding?: AgentExecutionBinding
25
36
  }
26
37
  | {
27
38
  readonly type: "unrestricted"
28
39
  readonly projectId: string
29
- readonly ref: Exclude<AuthorizationRef, { readonly type: "principal" }>
40
+ readonly ref: Exclude<AuthorizationRef, { readonly type: "principal" | "delegated" }>
41
+ }
42
+ | {
43
+ readonly type: "delegated"
44
+ readonly projectId: string
45
+ readonly objectRead: DelegatedObjectReadAuthorization
46
+ readonly actionApply: readonly DelegatedActionApplyTarget[]
47
+ readonly delegation?: Extract<AuthorizationRef, { readonly type: "delegated" }>["delegation"]
30
48
  }
31
49
  | { readonly type: "denied" }
32
50
 
51
+ /** Immutable process-local object-read authority. It has no durable representation. */
52
+ export interface DelegatedObjectReadAuthorization {
53
+ readonly scope: CompiledSelectedObjectReadScope
54
+ readonly limits: ObjectReadExecutionLimits
55
+ }
56
+
57
+ /** One exact object-bound Action target carried by process-local delegated authority. */
58
+ export interface DelegatedActionApplyTarget {
59
+ readonly actionId: string
60
+ readonly subject: ObjectRef
61
+ }
62
+
33
63
  type RegisteredRuntimeAuthorization = Exclude<
34
64
  ResolvedRuntimeAuthorization,
35
65
  { readonly type: "denied" }
@@ -39,53 +69,70 @@ type PrincipalAuthorizationContext = Omit<AuthorizationContext, "principal"> & {
39
69
  readonly principal: AuthorizablePrincipal
40
70
  }
41
71
 
42
- interface AgentExecutionBinding {
43
- readonly type: "agent"
44
- readonly executionId: string
45
- readonly agentId: string
46
- readonly runId: string
72
+ interface RuntimeAuthorizationRegistration {
73
+ readonly resolved: RegisteredRuntimeAuthorization
74
+ readonly execution: ExecutionContext
47
75
  }
48
76
 
49
- const registeredAuthorizations = new WeakMap<RuntimeAuthorization, RegisteredRuntimeAuthorization>()
77
+ const registeredAuthorizations = new WeakMap<
78
+ RuntimeAuthorization,
79
+ RuntimeAuthorizationRegistration
80
+ >()
81
+
82
+ const MAX_DELEGATED_ACTION_APPLY_TARGETS = 4_096
83
+ const MAX_DELEGATED_ACTION_IDENTIFIER_CHARACTERS = 1_000_000
50
84
 
51
85
  export function createPrincipalRuntimeAuthorization(input: {
52
- readonly projectId: string
86
+ readonly execution: ExecutionContext
53
87
  readonly context: AuthorizationContext
54
88
  readonly credential?: Extract<AuthorizationRef, { readonly type: "principal" }>["credential"]
55
89
  }): RuntimeAuthorization {
90
+ if (input.execution.executor.type !== "request") {
91
+ throw new Error("[Sixb] Principal runtime authorization requires a request execution.")
92
+ }
56
93
  return createRegisteredPrincipalAuthorization(input)
57
94
  }
58
95
 
59
- /** Register service-account authority bound to one exact agent run. */
96
+ /** Register restored authority bound to one exact agent run. */
60
97
  export function createAgentRuntimeAuthorization(input: {
61
- readonly projectId: string
62
- readonly context: AuthorizationContext
63
- readonly executionId: string
64
- readonly agentId: string
65
- readonly runId: string
98
+ readonly execution: ExecutionContext
99
+ readonly authority:
100
+ | {
101
+ readonly type: "principal"
102
+ readonly context: AuthorizationContext
103
+ readonly credential?: Extract<
104
+ AuthorizationRef,
105
+ { readonly type: "principal" }
106
+ >["credential"]
107
+ }
108
+ | { readonly type: "disabled" }
66
109
  }): RuntimeAuthorization {
67
- if (input.context.principal.type !== "serviceAccount") {
68
- throw new Error("[Sixb] Agent execution authority must belong to a service account.")
69
- }
70
- assertNonEmpty(input.executionId, "Execution id")
71
- assertNonEmpty(input.agentId, "Agent id")
72
- assertNonEmpty(input.runId, "Agent run id")
73
- return createRegisteredPrincipalAuthorization(input, {
74
- type: "agent",
75
- executionId: input.executionId,
76
- agentId: input.agentId,
77
- runId: input.runId,
110
+ if (input.execution.executor.type !== "agent") {
111
+ throw new Error("[Sixb] Agent runtime authorization requires an Agent execution.")
112
+ }
113
+
114
+ if (input.authority.type === "principal") {
115
+ return createRegisteredPrincipalAuthorization({
116
+ execution: input.execution,
117
+ context: input.authority.context,
118
+ ...(input.authority.credential === undefined
119
+ ? {}
120
+ : { credential: input.authority.credential }),
121
+ })
122
+ }
123
+
124
+ return register(input.execution, {
125
+ type: "unrestricted",
126
+ projectId: input.execution.projectId,
127
+ ref: Object.freeze({ type: "disabled" }),
78
128
  })
79
129
  }
80
130
 
81
- function createRegisteredPrincipalAuthorization(
82
- input: {
83
- readonly projectId: string
84
- readonly context: AuthorizationContext
85
- readonly credential?: Extract<AuthorizationRef, { readonly type: "principal" }>["credential"]
86
- },
87
- executionBinding?: AgentExecutionBinding
88
- ): RuntimeAuthorization {
131
+ function createRegisteredPrincipalAuthorization(input: {
132
+ readonly execution: ExecutionContext
133
+ readonly context: AuthorizationContext
134
+ readonly credential?: Extract<AuthorizationRef, { readonly type: "principal" }>["credential"]
135
+ }): RuntimeAuthorization {
89
136
  const context = snapshotAuthorizationContext(input.context)
90
137
  const credential = input.credential ? snapshotCredential(input.credential) : undefined
91
138
  assertCredentialMatchesContext(context, credential)
@@ -94,41 +141,79 @@ function createRegisteredPrincipalAuthorization(
94
141
  principal: context.principal,
95
142
  ...(credential === undefined ? {} : { credential }),
96
143
  })
97
- return register({
144
+ return register(input.execution, {
98
145
  type: "principal",
99
- projectId: input.projectId,
146
+ projectId: input.execution.projectId,
100
147
  context,
101
148
  ref,
102
- ...(executionBinding === undefined
103
- ? {}
104
- : { executionBinding: Object.freeze({ ...executionBinding }) }),
105
149
  })
106
150
  }
107
151
 
108
- export function createDisabledRuntimeAuthorization(projectId: string): RuntimeAuthorization {
109
- return register({ type: "unrestricted", projectId, ref: Object.freeze({ type: "disabled" }) })
152
+ export function createDisabledRuntimeAuthorization(
153
+ execution: ExecutionContext
154
+ ): RuntimeAuthorization {
155
+ return register(execution, {
156
+ type: "unrestricted",
157
+ projectId: execution.projectId,
158
+ ref: Object.freeze({ type: "disabled" }),
159
+ })
160
+ }
161
+
162
+ /** Register exact object-read authority without fabricating a principal identity. */
163
+ export function createDelegatedRuntimeAuthorization(input: {
164
+ readonly execution: ExecutionContext
165
+ readonly objectRead: {
166
+ readonly selection: SelectedObjectReadScope
167
+ readonly limits: ObjectReadExecutionLimits
168
+ }
169
+ readonly actionApply?: readonly DelegatedActionApplyTarget[]
170
+ readonly delegation?: Extract<AuthorizationRef, { readonly type: "delegated" }>["delegation"]
171
+ }): RuntimeAuthorization {
172
+ const execution = input.execution
173
+ const objectReadInput = input.objectRead
174
+ const actionApplyInput = input.actionApply
175
+ const delegationInput = input.delegation
176
+ const delegation =
177
+ delegationInput === undefined ? undefined : snapshotSharedDelegation(delegationInput)
178
+ if (execution.executor.type !== "request" || execution.requestedBy !== undefined) {
179
+ throw new Error(
180
+ "[Sixb] Delegated runtime authorization requires a request execution without a principal."
181
+ )
182
+ }
183
+
184
+ const objectRead = Object.freeze({
185
+ scope: compileSelectedObjectReadScope(objectReadInput.selection),
186
+ limits: snapshotObjectReadExecutionLimits(objectReadInput.limits),
187
+ })
188
+ return register(execution, {
189
+ type: "delegated",
190
+ projectId: execution.projectId,
191
+ objectRead,
192
+ actionApply: snapshotDelegatedActionApply(actionApplyInput ?? []),
193
+ ...(delegation === undefined ? {} : { delegation }),
194
+ })
110
195
  }
111
196
 
112
197
  export function createTrustedPrimitiveRuntimeAuthorization(input: {
113
- readonly projectId: string
198
+ readonly execution: ExecutionContext
114
199
  readonly primitive: TrustedPrimitiveRef
115
200
  }): RuntimeAuthorization {
116
201
  const primitive = snapshotTrustedPrimitive(input.primitive)
117
- return register({
202
+ return register(input.execution, {
118
203
  type: "unrestricted",
119
- projectId: input.projectId,
204
+ projectId: input.execution.projectId,
120
205
  ref: Object.freeze({ type: "trustedPrimitive", primitive }),
121
206
  })
122
207
  }
123
208
 
124
209
  export function createKernelRuntimeAuthorization(input: {
125
- readonly projectId: string
210
+ readonly execution: ExecutionContext
126
211
  readonly operation: KernelOperation
127
212
  }): RuntimeAuthorization {
128
213
  const operation = snapshotKernelOperation(input.operation)
129
- return register({
214
+ return register(input.execution, {
130
215
  type: "unrestricted",
131
- projectId: input.projectId,
216
+ projectId: input.execution.projectId,
132
217
  ref: Object.freeze({ type: "kernel", operation }),
133
218
  })
134
219
  }
@@ -137,7 +222,28 @@ export function resolveRuntimeAuthorization(authorization: unknown): ResolvedRun
137
222
  if (!isRuntimeAuthorizationCapability(authorization)) {
138
223
  return { type: "denied" }
139
224
  }
140
- return registeredAuthorizations.get(authorization) ?? { type: "denied" }
225
+ return registeredAuthorizations.get(authorization)?.resolved ?? { type: "denied" }
226
+ }
227
+
228
+ /**
229
+ * Resolve authority from a runtime already admitted by `SixbHost.withScope`.
230
+ *
231
+ * Bound runtime facades carry no second execution value to recombine. Any lower-level boundary
232
+ * that receives an `ExecutionContext` separately must use `resolveExecutionScopeAuthorization`.
233
+ */
234
+ export function resolveRuntimeAuthorizationForProject(input: {
235
+ readonly projectId: unknown
236
+ readonly runtimeAuthorization?: unknown
237
+ }): ResolvedRuntimeAuthorization {
238
+ const resolved = resolveRuntimeAuthorization(input.runtimeAuthorization)
239
+ if (
240
+ resolved.type === "denied" ||
241
+ typeof input.projectId !== "string" ||
242
+ resolved.projectId !== input.projectId
243
+ ) {
244
+ return { type: "denied" }
245
+ }
246
+ return resolved
141
247
  }
142
248
 
143
249
  export function getAuthorizationRef(authorization: RuntimeAuthorization): AuthorizationRef {
@@ -145,9 +251,29 @@ export function getAuthorizationRef(authorization: RuntimeAuthorization): Author
145
251
  if (resolved.type === "denied") {
146
252
  throw new Error("[Sixb] Runtime authorization is not a registered Core capability.")
147
253
  }
254
+ if (resolved.type === "delegated") {
255
+ if (resolved.delegation) {
256
+ return { type: "delegated", delegation: { ...resolved.delegation } }
257
+ }
258
+ throw new Error(
259
+ "[Sixb] Delegated runtime authorization cannot cross a durable execution boundary."
260
+ )
261
+ }
148
262
  return cloneAuthorizationRef(resolved.ref)
149
263
  }
150
264
 
265
+ function snapshotSharedDelegation(
266
+ input: Extract<AuthorizationRef, { readonly type: "delegated" }>["delegation"]
267
+ ): Extract<AuthorizationRef, { readonly type: "delegated" }>["delegation"] {
268
+ const kind = input.kind
269
+ const grantId = input.grantId
270
+ const sessionId = input.sessionId
271
+ if (kind !== "share") throw new Error("[Sixb] Unknown delegated authority provenance.")
272
+ assertNonEmpty(grantId, "Share grant id")
273
+ assertNonEmpty(sessionId, "Share session id")
274
+ return Object.freeze({ kind, grantId, sessionId })
275
+ }
276
+
151
277
  export function assertExecutionScopeProject(projectId: string, scope: ExecutionScope): void {
152
278
  assertNonEmpty(projectId, "Project id")
153
279
  if (scope.execution.projectId !== projectId) {
@@ -187,22 +313,51 @@ export function assertExecutionScopeProject(projectId: string, scope: ExecutionS
187
313
  }
188
314
  }
189
315
 
316
+ /**
317
+ * Capture the two opaque capabilities carried by a scope exactly once.
318
+ *
319
+ * Security-sensitive boundaries must not resolve a caller-owned wrapper and then read it again:
320
+ * accessor-backed inputs could otherwise substitute a different execution or authority between
321
+ * those operations.
322
+ */
323
+ export function captureExecutionScope(scope: ExecutionScope): ExecutionScope {
324
+ const execution = scope.execution
325
+ const authorization = scope.authorization
326
+ return Object.freeze({ execution, authorization })
327
+ }
328
+
190
329
  /** Validate that one registered authority belongs to the exact execution it accompanies. */
191
330
  export function resolveExecutionScopeAuthorization(
192
331
  projectId: string,
193
332
  scope: ExecutionScope
194
333
  ): RegisteredRuntimeAuthorization {
195
- assertExecutionScopeProject(projectId, scope)
196
- const resolved = resolveRuntimeAuthorization(scope.authorization)
334
+ const capturedScope = captureExecutionScope(scope)
335
+ assertExecutionScopeProject(projectId, capturedScope)
336
+ const resolved = resolveRuntimeAuthorization(capturedScope.authorization)
197
337
  if (resolved.type === "denied") {
198
338
  throw createSixbError(
199
339
  "internal.unexpected",
200
340
  "[Sixb] Execution scope carries unregistered runtime authorization.",
201
- { details: { executionId: scope.execution.id, projectId } }
341
+ { details: { executionId: capturedScope.execution.id, projectId } }
202
342
  )
203
343
  }
204
344
 
205
- const { execution } = scope
345
+ const registration = registeredAuthorizations.get(capturedScope.authorization)
346
+ if (!registration || !executionMatchesBinding(registration.execution, capturedScope.execution)) {
347
+ throw invalidExecutionAuthority(
348
+ capturedScope.execution.id,
349
+ "authority is bound to different execution provenance"
350
+ )
351
+ }
352
+
353
+ assertResolvedAuthorizationMatchesExecution(resolved, capturedScope.execution)
354
+ return resolved
355
+ }
356
+
357
+ function assertResolvedAuthorizationMatchesExecution(
358
+ resolved: RegisteredRuntimeAuthorization,
359
+ execution: ExecutionContext
360
+ ): void {
206
361
  switch (execution.executor.type) {
207
362
  case "request":
208
363
  if (
@@ -211,27 +366,31 @@ export function resolveExecutionScopeAuthorization(
211
366
  ) {
212
367
  throw invalidExecutionAuthority(execution.id, "request source does not match its executor")
213
368
  }
214
- if (resolved.ref.type === "principal") {
215
- if (
216
- resolved.type !== "principal" ||
217
- resolved.executionBinding !== undefined ||
218
- !principalsEqual(execution.requestedBy, resolved.ref.principal)
219
- ) {
369
+ if (resolved.type === "principal") {
370
+ if (!principalsEqual(execution.requestedBy, resolved.ref.principal)) {
220
371
  throw invalidExecutionAuthority(
221
372
  execution.id,
222
373
  "request authority does not match its requested-by principal"
223
374
  )
224
375
  }
225
- return resolved
376
+ return
377
+ }
378
+ if (
379
+ resolved.type === "unrestricted" &&
380
+ resolved.ref.type === "disabled" &&
381
+ execution.requestedBy === undefined
382
+ ) {
383
+ return
226
384
  }
227
- if (resolved.ref.type === "disabled" && execution.requestedBy === undefined) return resolved
385
+ if (resolved.type === "delegated" && execution.requestedBy === undefined) return
228
386
  throw invalidExecutionAuthority(
229
387
  execution.id,
230
- "request execution requires principal or explicitly disabled authority"
388
+ "request execution requires principal, delegated, or explicitly disabled authority"
231
389
  )
232
390
 
233
391
  case "primitive":
234
392
  if (
393
+ resolved.type !== "unrestricted" ||
235
394
  resolved.ref.type !== "trustedPrimitive" ||
236
395
  resolved.ref.primitive.kind !== execution.executor.kind ||
237
396
  resolved.ref.primitive.id !== execution.executor.id ||
@@ -242,28 +401,45 @@ export function resolveExecutionScopeAuthorization(
242
401
  "trusted primitive authority does not match its executor"
243
402
  )
244
403
  }
245
- return resolved
404
+ return
246
405
 
247
406
  case "agent":
248
- if (
249
- resolved.type !== "principal" ||
250
- resolved.ref.type !== "principal" ||
251
- resolved.ref.principal.type !== "serviceAccount" ||
252
- resolved.ref.credential !== undefined ||
253
- resolved.executionBinding?.type !== "agent" ||
254
- resolved.executionBinding.executionId !== execution.id ||
255
- resolved.executionBinding.agentId !== execution.executor.agentId ||
256
- resolved.executionBinding.runId !== execution.executor.runId
257
- ) {
407
+ if (execution.source.type !== "execution") {
258
408
  throw invalidExecutionAuthority(
259
409
  execution.id,
260
- "agent authority does not match its execution binding"
410
+ "agent execution requires an execution source"
261
411
  )
262
412
  }
263
- return resolved
413
+ if (resolved.type === "principal" && resolved.ref.type === "principal") {
414
+ if (resolved.ref.principal.type === "serviceAccount") {
415
+ const actorId = execution.executor.actorId
416
+ if (
417
+ actorId === undefined ||
418
+ resolved.ref.principal.id !== agentServiceAccountId(actorId) ||
419
+ resolved.ref.credential !== undefined
420
+ ) {
421
+ throw invalidExecutionAuthority(
422
+ execution.id,
423
+ "agent authority must reference its managed service account"
424
+ )
425
+ }
426
+ } else if (resolved.ref.credential === undefined) {
427
+ throw invalidExecutionAuthority(
428
+ execution.id,
429
+ "inherited user agent authority requires a credential"
430
+ )
431
+ }
432
+ return
433
+ }
434
+ if (resolved.type === "unrestricted" && resolved.ref.type === "disabled") return
435
+ throw invalidExecutionAuthority(
436
+ execution.id,
437
+ "agent authority must be principal or explicitly disabled"
438
+ )
264
439
 
265
440
  case "kernel":
266
441
  if (
442
+ resolved.type !== "unrestricted" ||
267
443
  resolved.ref.type !== "kernel" ||
268
444
  execution.requestedBy !== undefined ||
269
445
  resolved.ref.operation.type !== execution.executor.operation.type ||
@@ -274,7 +450,7 @@ export function resolveExecutionScopeAuthorization(
274
450
  "kernel authority does not match its executor"
275
451
  )
276
452
  }
277
- return resolved
453
+ return
278
454
  }
279
455
  }
280
456
 
@@ -293,22 +469,122 @@ function invalidExecutionAuthority(executionId: string, reason: string): Error {
293
469
  )
294
470
  }
295
471
 
296
- function register(input: RegisteredRuntimeAuthorization): RuntimeAuthorization {
472
+ function register(
473
+ execution: ExecutionContext,
474
+ input: RegisteredRuntimeAuthorization
475
+ ): RuntimeAuthorization {
297
476
  assertNonEmpty(input.projectId, "Authorization project id")
477
+ const executionBinding = snapshotExecutionContext(execution)
478
+ if (input.projectId !== executionBinding.projectId) {
479
+ throw new Error(
480
+ `[Sixb] Runtime authorization belongs to project '${input.projectId}', not execution project '${executionBinding.projectId}'.`
481
+ )
482
+ }
483
+ assertResolvedAuthorizationMatchesExecution(input, executionBinding)
298
484
  const authorization = createRuntimeAuthorizationCapability()
299
- registeredAuthorizations.set(authorization, Object.freeze(input))
485
+ registeredAuthorizations.set(
486
+ authorization,
487
+ Object.freeze({ resolved: Object.freeze(input), execution: executionBinding })
488
+ )
300
489
  return authorization
301
490
  }
302
491
 
492
+ function executionMatchesBinding(binding: ExecutionContext, execution: ExecutionContext): boolean {
493
+ try {
494
+ return isDeepStrictEqual(binding, snapshotExecutionContext(execution))
495
+ } catch {
496
+ return false
497
+ }
498
+ }
499
+
500
+ function snapshotExecutionContext(execution: ExecutionContext): ExecutionContext {
501
+ assertNonEmpty(execution.id, "Execution id")
502
+ assertNonEmpty(execution.projectId, "Execution project id")
503
+ assertNonEmpty(execution.correlationId, "Execution correlation id")
504
+ return Object.freeze({
505
+ id: execution.id,
506
+ projectId: execution.projectId,
507
+ ...(execution.requestedBy === undefined
508
+ ? {}
509
+ : { requestedBy: snapshotAuthorizablePrincipal(execution.requestedBy) }),
510
+ executor: snapshotExecutionExecutor(execution.executor),
511
+ source: snapshotExecutionSource(execution.source),
512
+ correlationId: execution.correlationId,
513
+ })
514
+ }
515
+
516
+ function snapshotExecutionExecutor(
517
+ executor: ExecutionContext["executor"]
518
+ ): ExecutionContext["executor"] {
519
+ switch (executor.type) {
520
+ case "request":
521
+ assertNonEmpty(executor.requestId, "Execution request id")
522
+ return Object.freeze({ type: "request", requestId: executor.requestId })
523
+ case "primitive": {
524
+ const primitive = snapshotTrustedPrimitive(executor)
525
+ return Object.freeze({ type: "primitive", ...primitive })
526
+ }
527
+ case "agent":
528
+ if (executor.actorId !== undefined)
529
+ assertNonEmpty(executor.actorId, "Execution Agent actor id")
530
+ assertNonEmpty(executor.runId, "Execution Agent run id")
531
+ return Object.freeze({
532
+ type: "agent",
533
+ ...(executor.actorId === undefined ? {} : { actorId: executor.actorId }),
534
+ runId: executor.runId,
535
+ })
536
+ case "kernel":
537
+ return Object.freeze({
538
+ type: "kernel",
539
+ operation: snapshotKernelOperation(executor.operation),
540
+ })
541
+ }
542
+ throw new Error(
543
+ `[Sixb] Unknown execution executor type '${String((executor as { type?: unknown }).type)}'.`
544
+ )
545
+ }
546
+
547
+ function snapshotExecutionSource(source: ExecutionContext["source"]): ExecutionContext["source"] {
548
+ switch (source.type) {
549
+ case "http":
550
+ assertNonEmpty(source.requestId, "Execution source request id")
551
+ return Object.freeze({ type: "http", requestId: source.requestId })
552
+ case "webhook":
553
+ assertNonEmpty(source.deliveryId, "Execution source delivery id")
554
+ return Object.freeze({ type: "webhook", deliveryId: source.deliveryId })
555
+ case "schedule":
556
+ case "event":
557
+ assertNonEmpty(source.eventId, "Execution source event id")
558
+ return Object.freeze({ type: source.type, eventId: source.eventId })
559
+ case "datasetVersion":
560
+ assertNonEmpty(source.datasetId, "Execution source dataset id")
561
+ assertNonEmpty(source.versionId, "Execution source dataset version id")
562
+ return Object.freeze({
563
+ type: "datasetVersion",
564
+ datasetId: source.datasetId,
565
+ versionId: source.versionId,
566
+ })
567
+ case "execution":
568
+ assertNonEmpty(source.executionId, "Execution source execution id")
569
+ return Object.freeze({ type: "execution", executionId: source.executionId })
570
+ }
571
+ throw new Error(
572
+ `[Sixb] Unknown execution source type '${String((source as { type?: unknown }).type)}'.`
573
+ )
574
+ }
575
+
303
576
  function snapshotAuthorizationContext(
304
577
  context: AuthorizationContext
305
578
  ): PrincipalAuthorizationContext {
306
579
  const principal = snapshotAuthorizablePrincipal(context.principal)
307
- const grants = emptyGrantSets()
308
- for (const kind of GRANT_KIND_KEYS) {
309
- grants[kind] = new Set(context.grants[kind])
580
+ const grants = {} as Record<TargetedGrantKind, ReadonlySet<string>>
581
+ for (const kind of TARGETED_GRANT_KIND_KEYS) {
582
+ grants[kind] = new ImmutableGrantSet(context.grants[kind])
310
583
  }
311
- const frozenGrants: GrantIndex = Object.freeze(grants)
584
+ const frozenGrants: GrantIndex = Object.freeze({
585
+ ...grants,
586
+ "run:agent": context.grants["run:agent"],
587
+ })
312
588
  return Object.freeze({
313
589
  principal,
314
590
  ...(context.sessionId === undefined ? {} : { sessionId: context.sessionId }),
@@ -318,6 +594,68 @@ function snapshotAuthorizationContext(
318
594
  })
319
595
  }
320
596
 
597
+ /** Read-only Set semantics with no mutable handle hidden behind the TypeScript interface. */
598
+ class ImmutableGrantSet implements ReadonlySet<string> {
599
+ readonly #values: Set<string>
600
+ readonly [Symbol.toStringTag] = "Set"
601
+
602
+ constructor(values: Iterable<string>) {
603
+ this.#values = new Set(values)
604
+ Object.freeze(this)
605
+ }
606
+
607
+ get size(): number {
608
+ return this.#values.size
609
+ }
610
+
611
+ has(value: string): boolean {
612
+ return this.#values.has(value)
613
+ }
614
+
615
+ entries(): ReturnType<Set<string>["entries"]> {
616
+ return this.#values.entries()
617
+ }
618
+
619
+ keys(): ReturnType<Set<string>["keys"]> {
620
+ return this.#values.keys()
621
+ }
622
+
623
+ values(): ReturnType<Set<string>["values"]> {
624
+ return this.#values.values()
625
+ }
626
+
627
+ [Symbol.iterator](): ReturnType<Set<string>[typeof Symbol.iterator]> {
628
+ return this.#values[Symbol.iterator]()
629
+ }
630
+
631
+ forEach(
632
+ callback: (value: string, valueAgain: string, set: ReadonlySet<string>) => void,
633
+ thisArg?: unknown
634
+ ): void {
635
+ for (const value of this.#values) {
636
+ callback.call(thisArg, value, value, this)
637
+ }
638
+ }
639
+
640
+ add(_value: string): never {
641
+ throw immutableGrantSetMutation()
642
+ }
643
+
644
+ delete(_value: string): never {
645
+ throw immutableGrantSetMutation()
646
+ }
647
+
648
+ clear(): never {
649
+ throw immutableGrantSetMutation()
650
+ }
651
+ }
652
+
653
+ Object.freeze(ImmutableGrantSet.prototype)
654
+
655
+ function immutableGrantSetMutation(): Error {
656
+ return new Error("[Sixb] Runtime authorization grants are immutable.")
657
+ }
658
+
321
659
  function snapshotAuthorizablePrincipal(principal: Principal): AuthorizablePrincipal {
322
660
  if (principal.type !== "user" && principal.type !== "serviceAccount") {
323
661
  throw new Error(`[Sixb] Principal type '${principal.type}' cannot hold runtime authorization.`)
@@ -373,6 +711,76 @@ function snapshotKernelOperation(operation: KernelOperation): KernelOperation {
373
711
  return Object.freeze({ type: operation.type, recoveryId: operation.recoveryId })
374
712
  }
375
713
 
714
+ /** Validate, bound, and detach exact delegated Action targets before registering authority. */
715
+ function snapshotDelegatedActionApply(
716
+ input: readonly DelegatedActionApplyTarget[]
717
+ ): readonly DelegatedActionApplyTarget[] {
718
+ if (!Array.isArray(input)) {
719
+ throw new Error("[Sixb] Delegated Action targets must be an array.")
720
+ }
721
+
722
+ const targetCount = input.length
723
+ if (targetCount > MAX_DELEGATED_ACTION_APPLY_TARGETS) {
724
+ throw new Error(
725
+ `[Sixb] Delegated authority exceeds the maximum of ${MAX_DELEGATED_ACTION_APPLY_TARGETS} Action targets.`
726
+ )
727
+ }
728
+
729
+ let identifierCharacters = 0
730
+ const targets: DelegatedActionApplyTarget[] = []
731
+ for (let index = 0; index < targetCount; index += 1) {
732
+ const authoredTarget = input[index]
733
+ if (!isRecord(authoredTarget)) {
734
+ throw new Error(`[Sixb] Delegated Action target ${index} must be an object.`)
735
+ }
736
+
737
+ const authoredActionId = authoredTarget.actionId
738
+ const authoredSubject = authoredTarget.subject
739
+ if (!isRecord(authoredSubject)) {
740
+ throw new Error(`[Sixb] Delegated Action target ${index} subject must be an ObjectRef.`)
741
+ }
742
+
743
+ const actionId = delegatedActionIdentifier(
744
+ authoredActionId,
745
+ `Delegated Action target ${index} action id`
746
+ )
747
+ const objectTypeId = delegatedActionIdentifier(
748
+ authoredSubject.objectTypeId,
749
+ `Delegated Action target ${index} subject object type id`
750
+ )
751
+ const primaryId = delegatedActionIdentifier(
752
+ authoredSubject.primaryId,
753
+ `Delegated Action target ${index} subject primary id`
754
+ )
755
+ identifierCharacters += actionId.length + objectTypeId.length + primaryId.length
756
+ if (identifierCharacters > MAX_DELEGATED_ACTION_IDENTIFIER_CHARACTERS) {
757
+ throw new Error(
758
+ `[Sixb] Delegated authority exceeds the maximum of ${MAX_DELEGATED_ACTION_IDENTIFIER_CHARACTERS} Action identifier characters.`
759
+ )
760
+ }
761
+
762
+ targets.push(
763
+ Object.freeze({
764
+ actionId,
765
+ subject: Object.freeze({ objectTypeId, primaryId }),
766
+ })
767
+ )
768
+ }
769
+
770
+ return Object.freeze(targets)
771
+ }
772
+
773
+ function delegatedActionIdentifier(value: unknown, label: string): string {
774
+ if (typeof value !== "string" || !value.trim()) {
775
+ throw new Error(`[Sixb] ${label} must not be empty.`)
776
+ }
777
+ return value
778
+ }
779
+
780
+ function isRecord(value: unknown): value is Record<string, unknown> {
781
+ return typeof value === "object" && value !== null && !Array.isArray(value)
782
+ }
783
+
376
784
  function cloneAuthorizationRef(ref: AuthorizationRef): AuthorizationRef {
377
785
  switch (ref.type) {
378
786
  case "principal":
@@ -383,6 +791,8 @@ function cloneAuthorizationRef(ref: AuthorizationRef): AuthorizationRef {
383
791
  }
384
792
  case "trustedPrimitive":
385
793
  return { type: "trustedPrimitive", primitive: { ...ref.primitive } }
794
+ case "delegated":
795
+ return { type: "delegated", delegation: { ...ref.delegation } }
386
796
  case "kernel":
387
797
  return { type: "kernel", operation: { ...ref.operation } }
388
798
  case "disabled":