@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
@@ -13,7 +13,8 @@
13
13
  import type { AuthSessionAudience } from "../auth/audience"
14
14
  import {
15
15
  type ResolvedRuntimeAuthorization,
16
- resolveRuntimeAuthorization,
16
+ resolveExecutionScopeAuthorization,
17
+ resolveRuntimeAuthorizationForProject,
17
18
  } from "../execution/authorization"
18
19
  import type { ExecutionContext, RuntimeAuthorization } from "../execution/types"
19
20
  import { AuthorizationError } from "./errors"
@@ -28,11 +29,14 @@ export type AuthzRequest =
28
29
  | { readonly kind: "object.edit"; readonly objectTypeId: string }
29
30
  | { readonly kind: "telemetry.append"; readonly objectTypeId: string }
30
31
  | { readonly kind: "action.apply"; readonly actionId: string }
32
+ | { readonly kind: "share.manage"; readonly shareId: string }
31
33
  | { readonly kind: "workflow.run"; readonly workflowId: string }
32
34
  | { readonly kind: "sync.run"; readonly syncId: string }
33
35
  | { readonly kind: "pipeline.run"; readonly pipelineId: string }
34
- | { readonly kind: "agent.run"; readonly agentId: string }
36
+ | { readonly kind: "agent.run" }
35
37
  | { readonly kind: "logs.observe" }
38
+ | { readonly kind: "aiUsage.observe" }
39
+ | { readonly kind: "aiUsage.manage" }
36
40
  | { readonly kind: "connector.manage"; readonly connectorId: string }
37
41
  | { readonly kind: "object.query"; readonly touchedObjectTypeIds: readonly string[] }
38
42
 
@@ -45,6 +49,7 @@ export interface AuthzDecision {
45
49
  }
46
50
 
47
51
  interface AuthorizedRuntime {
52
+ readonly projectId: string
48
53
  readonly runtimeAuthorization?: RuntimeAuthorization
49
54
  readonly authorization?: AuthorizationContext
50
55
  }
@@ -53,10 +58,9 @@ interface AuthorizedRuntime {
53
58
  // the single unit that both names a requirement and tests the grant index, so
54
59
  // the two can never drift. `kind` is the resolved-index key, so enforcement is
55
60
  // a direct lookup with no per-target dispatch.
56
- interface Atom {
57
- readonly kind: GrantKind
58
- readonly id: string
59
- }
61
+ type Atom =
62
+ | { readonly kind: "run:agent" }
63
+ | { readonly kind: Exclude<GrantKind, "run:agent">; readonly id: string }
60
64
 
61
65
  function atomsFor(request: AuthzRequest): readonly Atom[] {
62
66
  switch (request.kind) {
@@ -72,6 +76,8 @@ function atomsFor(request: AuthzRequest): readonly Atom[] {
72
76
  return [{ kind: "append:telemetry", id: request.objectTypeId }]
73
77
  case "action.apply":
74
78
  return [{ kind: "apply:action", id: request.actionId }]
79
+ case "share.manage":
80
+ return [{ kind: "share:share", id: request.shareId }]
75
81
  case "workflow.run":
76
82
  return [{ kind: "run:workflow", id: request.workflowId }]
77
83
  case "sync.run":
@@ -79,9 +85,13 @@ function atomsFor(request: AuthzRequest): readonly Atom[] {
79
85
  case "pipeline.run":
80
86
  return [{ kind: "run:pipeline", id: request.pipelineId }]
81
87
  case "agent.run":
82
- return [{ kind: "run:agent", id: request.agentId }]
88
+ return [{ kind: "run:agent" }]
83
89
  case "logs.observe":
84
90
  return [{ kind: "observe:logs", id: "logs" }]
91
+ case "aiUsage.observe":
92
+ return [{ kind: "observe:aiUsage", id: "aiUsage" }]
93
+ case "aiUsage.manage":
94
+ return [{ kind: "manage:aiUsage", id: "aiUsage" }]
85
95
  case "connector.manage":
86
96
  return [{ kind: "manage:connector", id: request.connectorId }]
87
97
  case "object.query":
@@ -90,11 +100,19 @@ function atomsFor(request: AuthzRequest): readonly Atom[] {
90
100
  }
91
101
 
92
102
  function atomKey(atom: Atom): string {
93
- if (atom.kind === "observe:logs") return atom.kind
103
+ if (atom.kind === "run:agent") return atom.kind
104
+ if (
105
+ atom.kind === "observe:logs" ||
106
+ atom.kind === "observe:aiUsage" ||
107
+ atom.kind === "manage:aiUsage"
108
+ ) {
109
+ return atom.kind
110
+ }
94
111
  return `${atom.kind}:${atom.id}`
95
112
  }
96
113
 
97
114
  function holds(grants: GrantIndex, atom: Atom): boolean {
115
+ if (atom.kind === "run:agent") return grants[atom.kind]
98
116
  return grants[atom.kind].has(atom.id)
99
117
  }
100
118
 
@@ -120,6 +138,12 @@ export function isAllowed(
120
138
 
121
139
  export function assertAuthorized(runtime: AuthorizedRuntime, request: AuthzRequest): void {
122
140
  const resolved = assertRuntimeAuthorizationBound(runtime)
141
+ if (resolved.type === "delegated") {
142
+ throw new AuthorizationError(
143
+ `delegated:${request.kind}`,
144
+ `[Sixb] Operation '${request.kind}' is not covered by delegated authorization.`
145
+ )
146
+ }
123
147
  const authorization = resolved.type === "principal" ? resolved.context : undefined
124
148
  const decision = evaluate(authorization, request)
125
149
  if (decision.allowed) {
@@ -132,11 +156,18 @@ export function assertAuthorized(runtime: AuthorizedRuntime, request: AuthzReque
132
156
  )
133
157
  }
134
158
 
159
+ /** Runtime catalogs never infer unrestricted access from an absent principal context. */
160
+ export function isRuntimeAllowed(runtime: AuthorizedRuntime, request: AuthzRequest): boolean {
161
+ const authority = resolveRuntimeAuthorizationForProject(runtime)
162
+ if (authority.type === "denied" || authority.type === "delegated") return false
163
+ return authority.type === "unrestricted" || isAllowed(authority.context, request)
164
+ }
165
+
135
166
  /** Resolve registered process-local authority before a protected leaf makes a decision. */
136
167
  export function assertRuntimeAuthorizationBound(
137
168
  runtime: AuthorizedRuntime
138
169
  ): Exclude<ResolvedRuntimeAuthorization, { readonly type: "denied" }> {
139
- const resolved = resolveRuntimeAuthorization(runtime.runtimeAuthorization)
170
+ const resolved = resolveRuntimeAuthorizationForProject(runtime)
140
171
  if (resolved.type === "denied") {
141
172
  throw new AuthorizationError(
142
173
  "runtime:unbound",
@@ -205,27 +236,22 @@ export function assertPrivileged(runtime: AuthorizedRuntime, operation: string):
205
236
  * Assert access to process providers that trusted executions and genuine agent runs may use.
206
237
  *
207
238
  * Agent provenance alone is not authority: the registered capability must be bound to the exact
208
- * same agent and run before this check succeeds.
239
+ * same immutable execution before this check succeeds.
209
240
  */
210
241
  export function assertProviderAccess(
211
- runtime: AuthorizedRuntime,
242
+ runtime: AuthorizedRuntime & { readonly runtimeAuthorization: RuntimeAuthorization },
212
243
  execution: ExecutionContext,
213
244
  operation: string
214
245
  ): void {
215
- const resolved = assertRuntimeAuthorizationBound(runtime)
246
+ const resolved = resolveExecutionScopeAuthorization(runtime.projectId, {
247
+ execution,
248
+ authorization: runtime.runtimeAuthorization,
249
+ })
216
250
  if (resolved.type === "unrestricted") {
217
251
  return
218
252
  }
219
253
 
220
- const binding = resolved.executionBinding
221
- const executor = execution.executor
222
- if (
223
- binding?.type === "agent" &&
224
- executor.type === "agent" &&
225
- binding.executionId === execution.id &&
226
- binding.agentId === executor.agentId &&
227
- binding.runId === executor.runId
228
- ) {
254
+ if (execution.executor.type === "agent") {
229
255
  return
230
256
  }
231
257
 
@@ -253,6 +279,8 @@ function deniedMessage(
253
279
  return `[Sixb] Principal '${principalId}' is not allowed to append telemetry for object type '${request.objectTypeId}'.`
254
280
  case "action.apply":
255
281
  return `[Sixb] Principal '${principalId}' is not allowed to apply action '${request.actionId}'.`
282
+ case "share.manage":
283
+ return `[Sixb] Principal '${principalId}' is not allowed to manage Share '${request.shareId}'.`
256
284
  case "workflow.run":
257
285
  return `[Sixb] Principal '${principalId}' is not allowed to run workflow '${request.workflowId}'.`
258
286
  case "sync.run":
@@ -260,9 +288,13 @@ function deniedMessage(
260
288
  case "pipeline.run":
261
289
  return `[Sixb] Principal '${principalId}' is not allowed to run pipeline '${request.pipelineId}'.`
262
290
  case "agent.run":
263
- return `[Sixb] Principal '${principalId}' is not allowed to run agent '${request.agentId}'.`
291
+ return `[Sixb] Principal '${principalId}' is not allowed to run the project Agent.`
264
292
  case "logs.observe":
265
293
  return `[Sixb] Principal '${principalId}' is not allowed to observe project logs.`
294
+ case "aiUsage.observe":
295
+ return `[Sixb] Principal '${principalId}' is not allowed to observe project AI usage.`
296
+ case "aiUsage.manage":
297
+ return `[Sixb] Principal '${principalId}' is not allowed to manage project AI usage limits.`
266
298
  case "connector.manage":
267
299
  return `[Sixb] Principal '${principalId}' is not allowed to manage connector '${request.connectorId}'.`
268
300
  case "object.query": {
@@ -8,7 +8,7 @@
8
8
  * entry in `GRANT_KINDS` plus the compile errors that forces at every consumer.
9
9
  */
10
10
 
11
- import type { GrantDefinition } from "../security/types"
11
+ import type { AgentRunGrant, GrantDefinition } from "../security/types"
12
12
 
13
13
  export type GrantKind =
14
14
  | "access:application"
@@ -17,12 +17,18 @@ export type GrantKind =
17
17
  | "edit:object"
18
18
  | "append:telemetry"
19
19
  | "apply:action"
20
+ | "share:share"
20
21
  | "run:workflow"
21
22
  | "run:sync"
22
23
  | "run:pipeline"
23
24
  | "run:agent"
24
25
  | "observe:logs"
26
+ | "observe:aiUsage"
25
27
  | "manage:connector"
28
+ | "manage:aiUsage"
29
+
30
+ export type SingletonGrantKind = "run:agent"
31
+ export type TargetedGrantKind = Exclude<GrantKind, SingletonGrantKind>
26
32
 
27
33
  /** Registered id universes a grant kind ranges over, plus subtype expansion. */
28
34
  export interface GrantUniverse {
@@ -30,19 +36,20 @@ export interface GrantUniverse {
30
36
  readonly objectTypeIds: ReadonlySet<string>
31
37
  readonly datasetIds: ReadonlySet<string>
32
38
  readonly actionIds: ReadonlySet<string>
39
+ readonly shareIds: ReadonlySet<string>
33
40
  readonly workflowIds: ReadonlySet<string>
34
41
  readonly syncIds: ReadonlySet<string>
35
42
  readonly pipelineIds: ReadonlySet<string>
36
- readonly agentIds: ReadonlySet<string>
37
43
  readonly observableIds: ReadonlySet<string>
38
44
  readonly connectorIds: ReadonlySet<string>
45
+ readonly manageableIds: ReadonlySet<string>
39
46
  readonly getSubTypes: (objectTypeId: string) => readonly string[]
40
47
  }
41
48
 
42
49
  /** The registered-id sets a grant kind validates against (no subtype hook). */
43
50
  export type GrantUniverseKey = Exclude<keyof GrantUniverse, "getSubTypes">
44
51
 
45
- interface GrantKindSpec {
52
+ interface TargetedGrantKindSpec {
46
53
  /** Registered universe the grant's ids must belong to. */
47
54
  readonly universeKey: GrantUniverseKey
48
55
  /** Subject noun used in validation errors ("unknown <subject> '<id>'"). */
@@ -53,11 +60,22 @@ interface GrantKindSpec {
53
60
  readonly expandsSubtypes?: true
54
61
  }
55
62
 
63
+ interface SingletonGrantKindSpec {
64
+ /** Project-wide capability with no resource selection; resolves to a boolean. */
65
+ readonly singleton: true
66
+ readonly subject: string
67
+ readonly fix: string
68
+ }
69
+
56
70
  /**
57
71
  * The exhaustive grant-kind table. A new grant family is one entry here; the
58
- * `Record<GrantKind, …>` makes every omission a compile error.
72
+ * mapped type makes every omission a compile error.
59
73
  */
60
- export const GRANT_KINDS: Record<GrantKind, GrantKindSpec> = {
74
+ export const GRANT_KINDS: {
75
+ readonly [TKind in GrantKind]: TKind extends SingletonGrantKind
76
+ ? SingletonGrantKindSpec
77
+ : TargetedGrantKindSpec
78
+ } = {
61
79
  "access:application": {
62
80
  universeKey: "applicationIds",
63
81
  subject: "application",
@@ -92,6 +110,11 @@ export const GRANT_KINDS: Record<GrantKind, GrantKindSpec> = {
92
110
  subject: "action",
93
111
  fix: "Add it to 'actions/' or pass it to createSixb({ actions }).",
94
112
  },
113
+ "share:share": {
114
+ universeKey: "shareIds",
115
+ subject: "share",
116
+ fix: "Add it to 'shares/' or pass it to createSixb({ shares }).",
117
+ },
95
118
  "run:workflow": {
96
119
  universeKey: "workflowIds",
97
120
  subject: "workflow",
@@ -108,25 +131,41 @@ export const GRANT_KINDS: Record<GrantKind, GrantKindSpec> = {
108
131
  fix: "Add it to 'pipelines/' or pass it to createSixb({ pipelines }).",
109
132
  },
110
133
  "run:agent": {
111
- universeKey: "agentIds",
134
+ singleton: true,
112
135
  subject: "agent",
113
- fix: "Add it to 'agents/' or pass it to createSixb({ agents }).",
136
+ fix: "Configure models.language and use the exported agent reference in can.run(agent).",
114
137
  },
115
138
  "observe:logs": {
116
139
  universeKey: "observableIds",
117
140
  subject: "observability surface",
118
141
  fix: 'Use can.observe("logs").',
119
142
  },
143
+ "observe:aiUsage": {
144
+ universeKey: "observableIds",
145
+ subject: "observability surface",
146
+ fix: "Use can.observe(agent.usage).",
147
+ },
120
148
  "manage:connector": {
121
149
  universeKey: "connectorIds",
122
150
  subject: "connector",
123
151
  fix: "Add it to 'connectors/' or pass it to createSixb({ connectors }).",
124
152
  },
153
+ "manage:aiUsage": {
154
+ universeKey: "manageableIds",
155
+ subject: "management surface",
156
+ fix: "Use can.manage(agent.usage).",
157
+ },
125
158
  }
126
159
 
127
160
  export const GRANT_KIND_KEYS = Object.keys(GRANT_KINDS) as readonly GrantKind[]
161
+ export const TARGETED_GRANT_KIND_KEYS = GRANT_KIND_KEYS.filter(
162
+ (kind): kind is TargetedGrantKind => kind !== "run:agent"
163
+ )
128
164
 
129
165
  /** The grant kind a stored grant resolves to. */
166
+ export function grantKindOf(grant: AgentRunGrant): SingletonGrantKind
167
+ export function grantKindOf(grant: Exclude<GrantDefinition, AgentRunGrant>): TargetedGrantKind
168
+ export function grantKindOf(grant: GrantDefinition): GrantKind
130
169
  export function grantKindOf(grant: GrantDefinition): GrantKind {
131
170
  switch (grant.capability) {
132
171
  case "access":
@@ -139,20 +178,38 @@ export function grantKindOf(grant: GrantDefinition): GrantKind {
139
178
  return "append:telemetry"
140
179
  case "apply":
141
180
  return "apply:action"
181
+ case "share":
182
+ return "share:share"
142
183
  case "run":
143
184
  return `run:${grant.target}`
144
185
  case "observe":
145
- return "observe:logs"
186
+ return `observe:${grant.target}`
146
187
  case "manage":
147
- return "manage:connector"
188
+ return `manage:${grant.target}`
148
189
  }
149
190
  }
150
191
 
151
- /** A fresh, mutable grant index with one empty id set per kind. */
152
- export function emptyGrantSets(): Record<GrantKind, Set<string>> {
153
- const sets = {} as Record<GrantKind, Set<string>>
154
- for (const kind of GRANT_KIND_KEYS) {
155
- sets[kind] = new Set<string>()
192
+ /** Mutable grant index: booleans for singleton capabilities, id sets for selected resources. */
193
+ export type MutableGrantIndex = {
194
+ [TKind in GrantKind]: TKind extends SingletonGrantKind ? boolean : Set<string>
195
+ }
196
+
197
+ export function emptyGrantSets(): MutableGrantIndex {
198
+ return {
199
+ "access:application": new Set(),
200
+ "view:object": new Set(),
201
+ "view:dataset": new Set(),
202
+ "edit:object": new Set(),
203
+ "append:telemetry": new Set(),
204
+ "apply:action": new Set(),
205
+ "share:share": new Set(),
206
+ "run:workflow": new Set(),
207
+ "run:sync": new Set(),
208
+ "run:pipeline": new Set(),
209
+ "run:agent": false,
210
+ "observe:logs": new Set(),
211
+ "observe:aiUsage": new Set(),
212
+ "manage:connector": new Set(),
213
+ "manage:aiUsage": new Set(),
156
214
  }
157
- return sets
158
215
  }
@@ -7,8 +7,10 @@ export {
7
7
  assertCanManageConnector,
8
8
  assertPrivileged,
9
9
  assertProviderAccess,
10
+ assertRuntimeAuthorizationBound,
10
11
  evaluate,
11
12
  isAllowed,
13
+ isRuntimeAllowed,
12
14
  } from "./decision"
13
15
  export { AuthorizationError } from "./errors"
14
16
  export { canViewEvent } from "./event-visibility"
@@ -2,19 +2,19 @@ import type { Principal } from "../auth/types"
2
2
  import type { RoleDefinition, Selection } from "../security"
3
3
  import {
4
4
  emptyGrantSets,
5
- GRANT_KIND_KEYS,
6
5
  GRANT_KINDS,
7
6
  type GrantUniverse,
8
7
  grantKindOf,
8
+ TARGETED_GRANT_KIND_KEYS,
9
9
  } from "./grant-kinds"
10
10
  import type { AuthorizationContext, GrantIndex, ResolvedRole } from "./types"
11
11
 
12
12
  /**
13
- * Expand a role's grants into concrete id sets once at startup.
13
+ * Resolve a role's grants once at startup.
14
14
  *
15
15
  * Broad grants (`every.object().except([...])`) expand against the registered
16
- * universe; object-type grants also expand to subtypes. The result holds only
17
- * `Set`s, so per-request resolution and runtime checks stay simple `set.has`.
16
+ * universe; object-type grants also expand to subtypes. Resource grants become
17
+ * id sets; the project Agent grant becomes a boolean.
18
18
  * The per-kind universe and subtype rules come from the `GRANT_KINDS` table, so
19
19
  * this loop never enumerates targets by hand.
20
20
  */
@@ -22,6 +22,10 @@ export function resolveRoleGrants(role: RoleDefinition, universe: GrantUniverse)
22
22
  const grants = emptyGrantSets()
23
23
 
24
24
  for (const grant of role.grants) {
25
+ if (grant.capability === "run" && grant.target === "agent") {
26
+ grants["run:agent"] = true
27
+ continue
28
+ }
25
29
  const kind = grantKindOf(grant)
26
30
  const spec = GRANT_KINDS[kind]
27
31
  expandSelection(
@@ -84,7 +88,10 @@ export function resolveAuthorizationContext(input: {
84
88
  }
85
89
 
86
90
  roleIds.push(role.id)
87
- for (const kind of GRANT_KIND_KEYS) {
91
+ if (role.grants["run:agent"]) {
92
+ grants["run:agent"] = true
93
+ }
94
+ for (const kind of TARGETED_GRANT_KIND_KEYS) {
88
95
  for (const id of role.grants[kind]) {
89
96
  grants[kind].add(id)
90
97
  }
@@ -8,16 +8,18 @@
8
8
  */
9
9
 
10
10
  import type { Principal } from "../auth/types"
11
- import { emptyGrantSets, type GrantKind } from "./grant-kinds"
11
+ import { emptyGrantSets, type GrantKind, type SingletonGrantKind } from "./grant-kinds"
12
12
 
13
13
  /**
14
- * Grants resolved to concrete id sets, keyed by grant kind (`view:object`,
15
- * `run:sync`, …). Broad grants and object subtypes are already expanded, so
16
- * enforcement is a single `grants[kind].has(id)` lookup. Keyed by `GrantKind`
14
+ * Grants keyed by kind (`view:object`, `run:sync`, …). Resource selections resolve
15
+ * to id sets; project-wide singleton capabilities resolve to booleans.
16
+ * Broad grants and object subtypes are already expanded. Keyed by `GrantKind`
17
17
  * so a new grant family adds one key, not a new bucket every consumer must
18
18
  * learn.
19
19
  */
20
- export type GrantIndex = Readonly<Record<GrantKind, ReadonlySet<string>>>
20
+ export type GrantIndex = Readonly<{
21
+ [TKind in GrantKind]: TKind extends SingletonGrantKind ? boolean : ReadonlySet<string>
22
+ }>
21
23
 
22
24
  /**
23
25
  * A grant index that grants nothing, as the base for a hand-built context — typically in tests.
@@ -10,7 +10,6 @@ import { readdir } from "node:fs/promises"
10
10
  import { join, relative } from "node:path"
11
11
  import { pathToFileURL } from "node:url"
12
12
  import { isActionDefinition } from "../actions"
13
- import { isAgentDefinition } from "../agents"
14
13
  import { isConnectorDefinition } from "../connectors"
15
14
  import { isDatasetDefinition } from "../datasets"
16
15
  import type { OntologyDocumentInput, OntologySource } from "../ontology/registry"
@@ -22,6 +21,7 @@ import { isRuleDefinition } from "../rules"
22
21
  import { RuntimeError } from "../runtime/errors"
23
22
  import { isScheduleDefinition } from "../schedules"
24
23
  import { isGroupDefinition, isMembershipPolicyDefinition, isRoleDefinition } from "../security"
24
+ import { isShareDefinition } from "../shares"
25
25
  import { isSyncDefinition } from "../syncs"
26
26
  import { isWorkflowDefinition } from "../workflows"
27
27
 
@@ -73,7 +73,6 @@ export async function discoverOntologySources(
73
73
 
74
74
  type DiscoveryModuleKind =
75
75
  | "action"
76
- | "agent"
77
76
  | "connector"
78
77
  | "dataset"
79
78
  | "group"
@@ -84,6 +83,7 @@ type DiscoveryModuleKind =
84
83
  | "role"
85
84
  | "rule"
86
85
  | "schedule"
86
+ | "share"
87
87
  | "sync"
88
88
  | "workflow"
89
89
 
@@ -138,7 +138,7 @@ const definitionDiscoveryRegistry = {
138
138
  kind: "membershipPolicy",
139
139
  isDefinition: isMembershipPolicyDefinition,
140
140
  },
141
- agents: { directory: ["agents"], kind: "agent", isDefinition: isAgentDefinition },
141
+ shares: { directory: ["shares"], kind: "share", isDefinition: isShareDefinition },
142
142
  } as const satisfies Record<string, DefinitionDiscoveryFamily<unknown>>
143
143
 
144
144
  type DefinitionFromFamily<TFamily> =
@@ -1,4 +1,4 @@
1
- import { mkdir, readdir, readFile, writeFile } from "node:fs/promises"
1
+ import { access, mkdir, readdir, readFile, writeFile } from "node:fs/promises"
2
2
  import { dirname, extname, join, relative, resolve, sep } from "node:path"
3
3
  import { pathToFileURL } from "node:url"
4
4
  import type { OntologyDocumentInput } from "../ontology/registry"
@@ -75,11 +75,17 @@ export async function generateOntologyTypeManifest(
75
75
  const discovery = await discoverOntologyTypeManifest(projectRoot)
76
76
 
77
77
  if (discovery.moduleCount === 0) {
78
- return {
79
- ...discovery,
80
- path: outFile,
81
- written: false,
82
- skipped: true,
78
+ // Leave projects without ontology untouched, but clear a previously generated map.
79
+ try {
80
+ await access(outFile)
81
+ } catch (error) {
82
+ if (!isNotFoundError(error)) throw error
83
+ return {
84
+ ...discovery,
85
+ path: outFile,
86
+ written: false,
87
+ skipped: true,
88
+ }
83
89
  }
84
90
  }
85
91
 
@@ -15,6 +15,7 @@ type DatasetColumnOptions = {
15
15
  type DefineDatasetOptions = {
16
16
  readonly schema: readonly DatasetColumnDefinition[]
17
17
  readonly primaryKey?: DatasetPrimaryKey
18
+ readonly sequenceBy?: string
18
19
  readonly partitionBy?: readonly string[]
19
20
  readonly description?: string
20
21
  }
@@ -23,6 +24,7 @@ type DeriveDatasetOptions<TParent extends DatasetDefinition> = {
23
24
  readonly pick?: readonly DatasetColumnNameOf<TParent>[]
24
25
  readonly add?: readonly DatasetColumnDefinition[]
25
26
  readonly primaryKey?: DatasetPrimaryKey
27
+ readonly sequenceBy?: string
26
28
  readonly partitionBy?: readonly string[]
27
29
  readonly description?: string
28
30
  }
@@ -58,8 +60,22 @@ type PrimaryKeyColumnNameOf<TColumns extends readonly DatasetColumnDefinition[]>
58
60
 
59
61
  type CheckedDefineDatasetOptions<TOptions extends DefineDatasetOptions> = TOptions & {
60
62
  readonly primaryKey?: DatasetPrimaryKey<PrimaryKeyColumnNameOf<TOptions["schema"]>>
63
+ readonly sequenceBy?: SequenceColumnNameOf<TOptions["schema"]>
61
64
  }
62
65
 
66
+ type SequenceColumnNameOf<TColumns extends readonly DatasetColumnDefinition[]> =
67
+ string extends ColumnNameOf<TColumns>
68
+ ? string
69
+ : {
70
+ [TName in ColumnNameOf<TColumns>]: ColumnDefinitionOf<TColumns, TName>["type"] extends
71
+ | "timestamp"
72
+ | "int64"
73
+ ? ColumnDefinitionOf<TColumns, TName> extends { readonly nullable: true }
74
+ ? never
75
+ : TName
76
+ : never
77
+ }[ColumnNameOf<TColumns>]
78
+
63
79
  type PickColumns<
64
80
  TColumns extends readonly DatasetColumnDefinition[],
65
81
  TNames extends readonly ColumnNameOf<TColumns>[],
@@ -107,8 +123,9 @@ type DatasetColumnResult<
107
123
 
108
124
  type DatasetDefinitionResult<TId extends string, TOptions extends DefineDatasetOptions> = Omit<
109
125
  DatasetDefinition<TId, TOptions["schema"]>,
110
- "primaryKey" | "partitionBy" | "description"
126
+ "primaryKey" | "sequenceBy" | "partitionBy" | "description"
111
127
  > &
128
+ FieldFromOptions<TOptions, "sequenceBy", string> &
112
129
  FieldFromOptions<TOptions, "primaryKey", DatasetPrimaryKey> &
113
130
  FieldFromOptions<TOptions, "partitionBy", readonly string[]> &
114
131
  FieldFromOptions<TOptions, "description", string>
@@ -119,8 +136,9 @@ type DerivedDatasetDefinitionResult<
119
136
  TOptions extends DeriveDatasetOptions<TParent> | undefined,
120
137
  > = Omit<
121
138
  DatasetDefinition<TId, DerivedColumns<TParent, TOptions>>,
122
- "primaryKey" | "partitionBy" | "description"
139
+ "primaryKey" | "sequenceBy" | "partitionBy" | "description"
123
140
  > &
141
+ FieldFromOptions<TOptions, "sequenceBy", string> &
124
142
  FieldFromOptions<TOptions, "primaryKey", DatasetPrimaryKey> &
125
143
  FieldFromOptions<TOptions, "partitionBy", readonly string[]> &
126
144
  FieldFromOptions<TOptions, "description", string>
@@ -130,6 +148,7 @@ type CheckedDeriveDatasetOptions<
130
148
  TOptions extends DeriveDatasetOptions<TParent>,
131
149
  > = TOptions & {
132
150
  readonly primaryKey?: DatasetPrimaryKey<PrimaryKeyColumnNameOf<DerivedColumns<TParent, TOptions>>>
151
+ readonly sequenceBy?: SequenceColumnNameOf<DerivedColumns<TParent, TOptions>>
133
152
  }
134
153
 
135
154
  export function col<const TName extends string, const TType extends DatasetColumnType>(
@@ -177,6 +196,7 @@ function createDatasetDefinition(id: string, options: DefineDatasetOptions): Dat
177
196
  }
178
197
  : {}),
179
198
  ...(options.partitionBy !== undefined ? { partitionBy: [...options.partitionBy] } : {}),
199
+ ...(options.sequenceBy !== undefined ? { sequenceBy: options.sequenceBy } : {}),
180
200
  ...(options.description !== undefined ? { description: options.description } : {}),
181
201
  }
182
202
 
@@ -230,6 +250,7 @@ function deriveDatasetDefinition(
230
250
  return createDatasetDefinition(id, {
231
251
  schema: [...pickedColumns, ...(options.add ?? [])],
232
252
  ...(options.primaryKey !== undefined ? { primaryKey: options.primaryKey } : {}),
253
+ ...(options.sequenceBy !== undefined ? { sequenceBy: options.sequenceBy } : {}),
233
254
  ...(options.partitionBy !== undefined ? { partitionBy: options.partitionBy } : {}),
234
255
  ...(options.description !== undefined ? { description: options.description } : {}),
235
256
  })
@@ -1,13 +1,25 @@
1
1
  export type MergeChange<Row, Key> =
2
2
  | { readonly kind: "upsert"; readonly row: Row }
3
- | { readonly kind: "delete"; readonly key: Key }
3
+ | { readonly kind: "delete"; readonly key: Key; readonly sequence?: string | number | Date }
4
4
 
5
5
  export const change = {
6
6
  upsert<const Row extends object>(row: Row): { readonly kind: "upsert"; readonly row: Row } {
7
7
  return { kind: "upsert", row }
8
8
  },
9
9
 
10
- delete<const Key extends object>(key: Key): { readonly kind: "delete"; readonly key: Key } {
11
- return { kind: "delete", key }
12
- },
10
+ delete: deleteChange,
11
+ }
12
+
13
+ function deleteChange<const Key extends object>(
14
+ key: Key
15
+ ): { readonly kind: "delete"; readonly key: Key }
16
+ function deleteChange<const Key extends object, const Sequence extends string | number | Date>(
17
+ key: Key,
18
+ options: { readonly sequence: Sequence }
19
+ ): { readonly kind: "delete"; readonly key: Key; readonly sequence: Sequence }
20
+ function deleteChange<Key extends object>(
21
+ key: Key,
22
+ options?: { readonly sequence: string | number | Date }
23
+ ): { readonly kind: "delete"; readonly key: Key; readonly sequence?: string | number | Date } {
24
+ return { kind: "delete", key, ...(options ? { sequence: options.sequence } : {}) }
13
25
  }