@sixb/core 0.1.7 → 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 (612) 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 +36 -30
  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 +3 -3
  15. package/dist/actions/worker.js.map +1 -1
  16. package/dist/agents/adapters.d.ts +5 -122
  17. package/dist/agents/adapters.d.ts.map +1 -1
  18. package/dist/agents/authority.d.ts +1 -1
  19. package/dist/agents/authority.d.ts.map +1 -1
  20. package/dist/agents/context-resolution.d.ts.map +1 -1
  21. package/dist/agents/context.js +1 -1
  22. package/dist/agents/errors.d.ts +0 -9
  23. package/dist/agents/errors.d.ts.map +1 -1
  24. package/dist/agents/execution.d.ts.map +1 -1
  25. package/dist/agents/identity.d.ts +3 -0
  26. package/dist/agents/identity.d.ts.map +1 -0
  27. package/dist/agents/index.d.ts +3 -3
  28. package/dist/agents/index.d.ts.map +1 -1
  29. package/dist/agents/index.js +43 -43
  30. package/dist/agents/index.js.map +1 -1
  31. package/dist/agents/message.d.ts +4 -5
  32. package/dist/agents/message.d.ts.map +1 -1
  33. package/dist/agents/model-loop.d.ts +2 -0
  34. package/dist/agents/model-loop.d.ts.map +1 -1
  35. package/dist/agents/request.d.ts.map +1 -1
  36. package/dist/agents/tool-definition.d.ts +0 -1
  37. package/dist/agents/tool-definition.d.ts.map +1 -1
  38. package/dist/agents/validation.d.ts +0 -4
  39. package/dist/agents/validation.d.ts.map +1 -1
  40. package/dist/ai-usage/execution.d.ts.map +1 -1
  41. package/dist/auth/index.js +8 -5
  42. package/dist/auth/index.js.map +1 -1
  43. package/dist/authorization/decision.d.ts +10 -2
  44. package/dist/authorization/decision.d.ts.map +1 -1
  45. package/dist/authorization/grant-kinds.d.ts +2 -1
  46. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  47. package/dist/authorization/index.d.ts +1 -1
  48. package/dist/authorization/index.d.ts.map +1 -1
  49. package/dist/authorization/index.js +7 -4
  50. package/dist/authorization/index.js.map +1 -1
  51. package/dist/bootstrap/discovery.d.ts +7 -1
  52. package/dist/bootstrap/discovery.d.ts.map +1 -1
  53. package/dist/bootstrap/index.js +46 -39
  54. package/dist/bootstrap/index.js.map +1 -1
  55. package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
  56. package/dist/chunk-19jp6g9d.js +131 -0
  57. package/dist/chunk-19jp6g9d.js.map +11 -0
  58. package/dist/{chunk-x0qhkqje.js → chunk-2dw777qw.js} +50 -5
  59. package/dist/{chunk-x0qhkqje.js.map → chunk-2dw777qw.js.map} +4 -3
  60. package/dist/chunk-359jm1jw.js +147 -0
  61. package/dist/chunk-359jm1jw.js.map +10 -0
  62. package/dist/{chunk-2b5qtban.js → chunk-3xep5cjx.js} +56 -21
  63. package/dist/chunk-3xep5cjx.js.map +15 -0
  64. package/dist/{chunk-qjycjdj6.js → chunk-3z1qec12.js} +6 -8
  65. package/dist/{chunk-qjycjdj6.js.map → chunk-3z1qec12.js.map} +2 -2
  66. package/dist/{chunk-5jcdmjam.js → chunk-4jjp5k14.js} +1 -1
  67. package/dist/{chunk-n2arzn6e.js → chunk-4qfkag59.js} +44 -221
  68. package/dist/chunk-4qfkag59.js.map +20 -0
  69. package/dist/{chunk-rre42skh.js → chunk-4sm0aznx.js} +515 -80
  70. package/dist/{chunk-rre42skh.js.map → chunk-4sm0aznx.js.map} +11 -7
  71. package/dist/chunk-4yqmp43v.js +159 -0
  72. package/dist/chunk-4yqmp43v.js.map +11 -0
  73. package/dist/{chunk-atmkaf60.js → chunk-5e3pq99w.js} +2 -6
  74. package/dist/{chunk-atmkaf60.js.map → chunk-5e3pq99w.js.map} +3 -3
  75. package/dist/{chunk-agsvg9ar.js → chunk-5ntny1qx.js} +1 -1
  76. package/dist/{chunk-z2sery1b.js → chunk-9nbmsvn5.js} +60 -20
  77. package/dist/chunk-9nbmsvn5.js.map +11 -0
  78. package/dist/{chunk-e4rvtvpw.js → chunk-aa2pen2v.js} +250 -78
  79. package/dist/chunk-aa2pen2v.js.map +34 -0
  80. package/dist/{chunk-64sr682n.js → chunk-ajnan18g.js} +11 -8
  81. package/dist/chunk-ajnan18g.js.map +12 -0
  82. package/dist/{chunk-9aehf39w.js → chunk-f26bck4t.js} +4 -4
  83. package/dist/{chunk-7ds9620f.js → chunk-fvt9rjsa.js} +23 -7
  84. package/dist/chunk-fvt9rjsa.js.map +10 -0
  85. package/dist/{chunk-kt81c11h.js → chunk-gbejpkex.js} +5 -5
  86. package/dist/{chunk-kt81c11h.js.map → chunk-gbejpkex.js.map} +1 -1
  87. package/dist/{chunk-vjjv9mrb.js → chunk-gzasd5b6.js} +5 -5
  88. package/dist/{chunk-vjjv9mrb.js.map → chunk-gzasd5b6.js.map} +3 -3
  89. package/dist/{chunk-d63tybny.js → chunk-h0k55pc7.js} +4 -4
  90. package/dist/{chunk-d63tybny.js.map → chunk-h0k55pc7.js.map} +1 -1
  91. package/dist/chunk-h5vqbfmd.js +1537 -0
  92. package/dist/chunk-h5vqbfmd.js.map +19 -0
  93. package/dist/{chunk-3kv70xwp.js → chunk-j1sbhm7p.js} +18 -2
  94. package/dist/chunk-j1sbhm7p.js.map +10 -0
  95. package/dist/{chunk-hdz94br2.js → chunk-k522z7v6.js} +10 -5
  96. package/dist/chunk-k522z7v6.js.map +10 -0
  97. package/dist/{chunk-wjgm6jjt.js → chunk-mth82m8t.js} +128 -94
  98. package/dist/chunk-mth82m8t.js.map +14 -0
  99. package/dist/{chunk-qv38twt8.js → chunk-mwsxn98e.js} +46 -25
  100. package/dist/{chunk-qv38twt8.js.map → chunk-mwsxn98e.js.map} +6 -6
  101. package/dist/chunk-n4khvw9n.js +111 -0
  102. package/dist/chunk-n4khvw9n.js.map +11 -0
  103. package/dist/{chunk-qjzp9xyb.js → chunk-nn0tekr1.js} +6 -8
  104. package/dist/chunk-nn0tekr1.js.map +12 -0
  105. package/dist/chunk-nx7k8tpr.js +436 -0
  106. package/dist/chunk-nx7k8tpr.js.map +12 -0
  107. package/dist/{chunk-08twe8m6.js → chunk-p1rzczbt.js} +1 -1
  108. package/dist/{chunk-37wk412q.js → chunk-p1x242ad.js} +587 -70
  109. package/dist/chunk-p1x242ad.js.map +25 -0
  110. package/dist/{chunk-tn7xcs2n.js → chunk-pc7ys28c.js} +68 -5
  111. package/dist/chunk-pc7ys28c.js.map +14 -0
  112. package/dist/{chunk-3fqt22c4.js → chunk-q0k9nc5a.js} +280 -88
  113. package/dist/chunk-q0k9nc5a.js.map +14 -0
  114. package/dist/chunk-r8jrnexe.js +403 -0
  115. package/dist/chunk-r8jrnexe.js.map +10 -0
  116. package/dist/{chunk-gbrpsx4m.js → chunk-rafagrwr.js} +30 -2
  117. package/dist/chunk-rafagrwr.js.map +11 -0
  118. package/dist/{chunk-xdpwpkha.js → chunk-rv2hkwwa.js} +1 -1
  119. package/dist/{chunk-6ed5bwnd.js → chunk-sbzzr4kx.js} +1203 -691
  120. package/dist/{chunk-6ed5bwnd.js.map → chunk-sbzzr4kx.js.map} +15 -9
  121. package/dist/{chunk-d2ndstdf.js → chunk-v1xppd0y.js} +13 -11
  122. package/dist/{chunk-d2ndstdf.js.map → chunk-v1xppd0y.js.map} +2 -2
  123. package/dist/chunk-v4en4jc2.js +252 -0
  124. package/dist/chunk-v4en4jc2.js.map +10 -0
  125. package/dist/{chunk-1kamz6j0.js → chunk-w1tvjszy.js} +1 -1
  126. package/dist/{chunk-rp1mvzb4.js → chunk-w9tg6yyb.js} +11 -6
  127. package/dist/{chunk-rp1mvzb4.js.map → chunk-w9tg6yyb.js.map} +3 -3
  128. package/dist/{chunk-4nxeacx7.js → chunk-wdage1eb.js} +1 -1
  129. package/dist/{chunk-ha58tjtt.js → chunk-wtf06et8.js} +9 -5
  130. package/dist/{chunk-ha58tjtt.js.map → chunk-wtf06et8.js.map} +3 -3
  131. package/dist/{chunk-h0knpbz5.js → chunk-xajtptbw.js} +782 -211
  132. package/dist/chunk-xajtptbw.js.map +40 -0
  133. package/dist/{chunk-xc7hq65b.js → chunk-yp8ee62z.js} +49 -2
  134. package/dist/chunk-yp8ee62z.js.map +11 -0
  135. package/dist/chunk-z4ccwbkz.js +139 -0
  136. package/dist/chunk-z4ccwbkz.js.map +10 -0
  137. package/dist/datasets/builders.d.ts +11 -2
  138. package/dist/datasets/builders.d.ts.map +1 -1
  139. package/dist/datasets/changes.d.ts +14 -4
  140. package/dist/datasets/changes.d.ts.map +1 -1
  141. package/dist/datasets/execution.d.ts +15 -1
  142. package/dist/datasets/execution.d.ts.map +1 -1
  143. package/dist/datasets/index.d.ts +1 -0
  144. package/dist/datasets/index.d.ts.map +1 -1
  145. package/dist/datasets/sequence.d.ts +7 -0
  146. package/dist/datasets/sequence.d.ts.map +1 -0
  147. package/dist/datasets/types.d.ts +1 -0
  148. package/dist/datasets/types.d.ts.map +1 -1
  149. package/dist/datasets/validation.d.ts.map +1 -1
  150. package/dist/datasets/write.d.ts +37 -0
  151. package/dist/datasets/write.d.ts.map +1 -0
  152. package/dist/datasets/write.js +17 -0
  153. package/dist/datasets/write.js.map +9 -0
  154. package/dist/events/execution.d.ts.map +1 -1
  155. package/dist/events/types/datasets.d.ts +2 -6
  156. package/dist/events/types/datasets.d.ts.map +1 -1
  157. package/dist/execution/agent.d.ts.map +1 -1
  158. package/dist/execution/agent.js +39 -32
  159. package/dist/execution/agent.js.map +1 -1
  160. package/dist/execution/authorization.d.ts +58 -20
  161. package/dist/execution/authorization.d.ts.map +1 -1
  162. package/dist/execution/authorized-object-reader.d.ts +69 -0
  163. package/dist/execution/authorized-object-reader.d.ts.map +1 -0
  164. package/dist/execution/durable.d.ts.map +1 -1
  165. package/dist/execution/index.d.ts +1 -1
  166. package/dist/execution/index.d.ts.map +1 -1
  167. package/dist/execution/primitive.js +39 -32
  168. package/dist/execution/primitive.js.map +2 -2
  169. package/dist/execution/request.d.ts +11 -0
  170. package/dist/execution/request.d.ts.map +1 -1
  171. package/dist/execution/request.js +76 -40
  172. package/dist/execution/request.js.map +3 -3
  173. package/dist/execution/scopes.d.ts +16 -0
  174. package/dist/execution/scopes.d.ts.map +1 -1
  175. package/dist/execution/types.d.ts +9 -0
  176. package/dist/execution/types.d.ts.map +1 -1
  177. package/dist/http/api-routes.d.ts +2 -0
  178. package/dist/http/api-routes.d.ts.map +1 -1
  179. package/dist/http/index.js +1 -1
  180. package/dist/index.d.ts +8 -5
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +92 -78
  183. package/dist/index.js.map +1 -1
  184. package/dist/lake-storage/definition-updates.d.ts.map +1 -1
  185. package/dist/lake-storage/errors.d.ts +5 -1
  186. package/dist/lake-storage/errors.d.ts.map +1 -1
  187. package/dist/lake-storage/in-memory.d.ts +1 -0
  188. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  189. package/dist/lake-storage/index.d.ts +6 -1
  190. package/dist/lake-storage/index.d.ts.map +1 -1
  191. package/dist/lake-storage/index.js +24 -7
  192. package/dist/lake-storage/index.js.map +1 -1
  193. package/dist/lake-storage/merge-validation.d.ts.map +1 -1
  194. package/dist/lake-storage/merge.d.ts +13 -2
  195. package/dist/lake-storage/merge.d.ts.map +1 -1
  196. package/dist/lake-storage/source-ordering.d.ts +19 -0
  197. package/dist/lake-storage/source-ordering.d.ts.map +1 -0
  198. package/dist/lake-storage/sql-transforms.d.ts +2 -1
  199. package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
  200. package/dist/lake-storage/types.d.ts +10 -5
  201. package/dist/lake-storage/types.d.ts.map +1 -1
  202. package/dist/lake-storage/version-inputs.d.ts +4 -0
  203. package/dist/lake-storage/version-inputs.d.ts.map +1 -0
  204. package/dist/materializer/index.js +25 -22
  205. package/dist/materializer/index.js.map +1 -1
  206. package/dist/objects/authorized-ontology-view.d.ts +25 -0
  207. package/dist/objects/authorized-ontology-view.d.ts.map +1 -0
  208. package/dist/objects/execution.d.ts +1 -1
  209. package/dist/objects/execution.d.ts.map +1 -1
  210. package/dist/objects/index.js +29 -26
  211. package/dist/objects/index.js.map +1 -1
  212. package/dist/objects/link/authorization.d.ts +2 -7
  213. package/dist/objects/link/authorization.d.ts.map +1 -1
  214. package/dist/objects/query/executor.d.ts +4 -2
  215. package/dist/objects/query/executor.d.ts.map +1 -1
  216. package/dist/objects/query/index.js +24 -21
  217. package/dist/objects/query/index.js.map +1 -1
  218. package/dist/objects/query/links.d.ts +22 -1
  219. package/dist/objects/query/links.d.ts.map +1 -1
  220. package/dist/objects/query/selected-read-admission.d.ts +27 -0
  221. package/dist/objects/query/selected-read-admission.d.ts.map +1 -0
  222. package/dist/objects/query/validate.d.ts +60 -2
  223. package/dist/objects/query/validate.d.ts.map +1 -1
  224. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  225. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  226. package/dist/objects/sdk/runtime-query-executor.d.ts +2 -7
  227. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  228. package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
  229. package/dist/objects/service/list-service.d.ts +2 -3
  230. package/dist/objects/service/list-service.d.ts.map +1 -1
  231. package/dist/objects/telemetry/history.d.ts +8 -6
  232. package/dist/objects/telemetry/history.d.ts.map +1 -1
  233. package/dist/objects/telemetry/index.d.ts +2 -2
  234. package/dist/objects/telemetry/index.d.ts.map +1 -1
  235. package/dist/objects/telemetry/workload.d.ts +11 -0
  236. package/dist/objects/telemetry/workload.d.ts.map +1 -0
  237. package/dist/ontology/index.d.ts +2 -1
  238. package/dist/ontology/index.d.ts.map +1 -1
  239. package/dist/ontology/index.js +13 -12
  240. package/dist/ontology/index.js.map +1 -1
  241. package/dist/ontology/inference/index.d.ts +2 -1
  242. package/dist/ontology/inference/index.d.ts.map +1 -1
  243. package/dist/ontology/internal.d.ts +0 -1
  244. package/dist/ontology/internal.d.ts.map +1 -1
  245. package/dist/ontology/internal.js +5 -10
  246. package/dist/ontology/internal.js.map +3 -3
  247. package/dist/ontology/json-schema.d.ts +10 -6
  248. package/dist/ontology/json-schema.d.ts.map +1 -1
  249. package/dist/ontology/link-path-selection.d.ts +35 -0
  250. package/dist/ontology/link-path-selection.d.ts.map +1 -0
  251. package/dist/ontology/refs.d.ts +2 -0
  252. package/dist/ontology/refs.d.ts.map +1 -1
  253. package/dist/ontology/tokens.d.ts +2 -1
  254. package/dist/ontology/tokens.d.ts.map +1 -1
  255. package/dist/pipelines/execution.d.ts.map +1 -1
  256. package/dist/pipelines/index.js +27 -24
  257. package/dist/pipelines/index.js.map +1 -1
  258. package/dist/pipelines/request.d.ts.map +1 -1
  259. package/dist/projections/execution.d.ts.map +1 -1
  260. package/dist/projections/internal.js +25 -22
  261. package/dist/projections/internal.js.map +1 -1
  262. package/dist/projections/run-dispatch.d.ts.map +1 -1
  263. package/dist/rules/execution.d.ts.map +1 -1
  264. package/dist/runtime/create.d.ts +4 -1
  265. package/dist/runtime/create.d.ts.map +1 -1
  266. package/dist/runtime/definitions.d.ts +2 -0
  267. package/dist/runtime/definitions.d.ts.map +1 -1
  268. package/dist/runtime/host.d.ts +2 -0
  269. package/dist/runtime/host.d.ts.map +1 -1
  270. package/dist/runtime/internal.d.ts +1 -0
  271. package/dist/runtime/internal.d.ts.map +1 -1
  272. package/dist/runtime/resolve-definitions.d.ts +2 -0
  273. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  274. package/dist/runtime/sixb.d.ts +4 -0
  275. package/dist/runtime/sixb.d.ts.map +1 -1
  276. package/dist/runtime/types.d.ts +3 -0
  277. package/dist/runtime/types.d.ts.map +1 -1
  278. package/dist/schedules/execution.d.ts +2 -1
  279. package/dist/schedules/execution.d.ts.map +1 -1
  280. package/dist/security/every.d.ts +4 -1
  281. package/dist/security/every.d.ts.map +1 -1
  282. package/dist/security/grants.d.ts +7 -2
  283. package/dist/security/grants.d.ts.map +1 -1
  284. package/dist/security/index.d.ts +1 -1
  285. package/dist/security/index.d.ts.map +1 -1
  286. package/dist/security/registry.d.ts +1 -0
  287. package/dist/security/registry.d.ts.map +1 -1
  288. package/dist/security/types.d.ts +7 -1
  289. package/dist/security/types.d.ts.map +1 -1
  290. package/dist/security/validation.d.ts +2 -0
  291. package/dist/security/validation.d.ts.map +1 -1
  292. package/dist/shares/access-plan.d.ts +22 -0
  293. package/dist/shares/access-plan.d.ts.map +1 -0
  294. package/dist/shares/builders.d.ts +14 -0
  295. package/dist/shares/builders.d.ts.map +1 -0
  296. package/dist/shares/compiler.d.ts +14 -0
  297. package/dist/shares/compiler.d.ts.map +1 -0
  298. package/dist/shares/errors.d.ts +4 -0
  299. package/dist/shares/errors.d.ts.map +1 -0
  300. package/dist/shares/execution.d.ts +57 -0
  301. package/dist/shares/execution.d.ts.map +1 -0
  302. package/dist/shares/index.d.ts +10 -0
  303. package/dist/shares/index.d.ts.map +1 -0
  304. package/dist/shares/internal.d.ts +3 -0
  305. package/dist/shares/internal.d.ts.map +1 -0
  306. package/dist/shares/internal.js +239 -0
  307. package/dist/shares/internal.js.map +10 -0
  308. package/dist/shares/intersection.d.ts +9 -0
  309. package/dist/shares/intersection.d.ts.map +1 -0
  310. package/dist/shares/session-protocol.d.ts +41 -0
  311. package/dist/shares/session-protocol.d.ts.map +1 -0
  312. package/dist/shares/types.d.ts +51 -0
  313. package/dist/shares/types.d.ts.map +1 -0
  314. package/dist/shares/validation.d.ts +11 -0
  315. package/dist/shares/validation.d.ts.map +1 -0
  316. package/dist/storage/action-runs/provider.js +2 -2
  317. package/dist/storage/agents/provider.js +2 -2
  318. package/dist/storage/executions/in-memory.d.ts +3 -0
  319. package/dist/storage/executions/in-memory.d.ts.map +1 -1
  320. package/dist/storage/executions/provider.d.ts +4 -1
  321. package/dist/storage/executions/provider.d.ts.map +1 -1
  322. package/dist/storage/executions/provider.js +23 -3
  323. package/dist/storage/executions/provider.js.map +3 -3
  324. package/dist/storage/executions/run-link.d.ts +7 -0
  325. package/dist/storage/executions/run-link.d.ts.map +1 -1
  326. package/dist/storage/executions/validation.d.ts +6 -0
  327. package/dist/storage/executions/validation.d.ts.map +1 -1
  328. package/dist/storage/in-memory/index.d.ts +8 -0
  329. package/dist/storage/in-memory/index.d.ts.map +1 -1
  330. package/dist/storage/index.d.ts +8 -2
  331. package/dist/storage/index.d.ts.map +1 -1
  332. package/dist/storage/index.js +65 -36
  333. package/dist/storage/index.js.map +1 -1
  334. package/dist/storage/objects/execution-limits.d.ts +25 -0
  335. package/dist/storage/objects/execution-limits.d.ts.map +1 -0
  336. package/dist/storage/objects/guard.d.ts +16 -0
  337. package/dist/storage/objects/guard.d.ts.map +1 -0
  338. package/dist/storage/objects/in-memory/index.d.ts +3 -0
  339. package/dist/storage/objects/in-memory/index.d.ts.map +1 -0
  340. package/dist/storage/objects/in-memory/keys.d.ts +10 -0
  341. package/dist/storage/objects/in-memory/keys.d.ts.map +1 -0
  342. package/dist/storage/objects/in-memory/query.d.ts +31 -0
  343. package/dist/storage/objects/in-memory/query.d.ts.map +1 -0
  344. package/dist/storage/objects/in-memory/read-scope.d.ts +18 -0
  345. package/dist/storage/objects/in-memory/read-scope.d.ts.map +1 -0
  346. package/dist/storage/objects/in-memory/read-source.d.ts +10 -0
  347. package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -0
  348. package/dist/storage/objects/in-memory/selected-reader.d.ts +9 -0
  349. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -0
  350. package/dist/storage/objects/{in-memory.d.ts → in-memory/storage.d.ts} +13 -10
  351. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -0
  352. package/dist/storage/objects/index.d.ts +4 -1
  353. package/dist/storage/objects/index.d.ts.map +1 -1
  354. package/dist/storage/objects/keys.d.ts +1 -1
  355. package/dist/storage/objects/keys.d.ts.map +1 -1
  356. package/dist/storage/objects/read-scope.d.ts +25 -0
  357. package/dist/storage/objects/read-scope.d.ts.map +1 -0
  358. package/dist/storage/objects/types.d.ts +114 -22
  359. package/dist/storage/objects/types.d.ts.map +1 -1
  360. package/dist/storage/operation-scope.d.ts +3 -0
  361. package/dist/storage/operation-scope.d.ts.map +1 -1
  362. package/dist/storage/operation-scope.js +4 -2
  363. package/dist/storage/operation-scope.js.map +1 -1
  364. package/dist/storage/pipeline-runs/provider.js +2 -2
  365. package/dist/storage/projection-runs/provider.js +2 -2
  366. package/dist/storage/share-grants/errors.d.ts +8 -0
  367. package/dist/storage/share-grants/errors.d.ts.map +1 -0
  368. package/dist/storage/share-grants/in-memory.d.ts +11 -0
  369. package/dist/storage/share-grants/in-memory.d.ts.map +1 -0
  370. package/dist/storage/share-grants/index.d.ts +5 -0
  371. package/dist/storage/share-grants/index.d.ts.map +1 -0
  372. package/dist/storage/share-grants/provider.d.ts +4 -0
  373. package/dist/storage/share-grants/provider.d.ts.map +1 -0
  374. package/dist/storage/share-grants/provider.js +24 -0
  375. package/dist/storage/share-grants/provider.js.map +9 -0
  376. package/dist/storage/share-grants/record.d.ts +11 -0
  377. package/dist/storage/share-grants/record.d.ts.map +1 -0
  378. package/dist/storage/share-grants/types.d.ts +97 -0
  379. package/dist/storage/share-grants/types.d.ts.map +1 -0
  380. package/dist/storage/share-sessions/errors.d.ts +8 -0
  381. package/dist/storage/share-sessions/errors.d.ts.map +1 -0
  382. package/dist/storage/share-sessions/in-memory.d.ts +14 -0
  383. package/dist/storage/share-sessions/in-memory.d.ts.map +1 -0
  384. package/dist/storage/share-sessions/index.d.ts +5 -0
  385. package/dist/storage/share-sessions/index.d.ts.map +1 -0
  386. package/dist/storage/share-sessions/provider.d.ts +3 -0
  387. package/dist/storage/share-sessions/provider.d.ts.map +1 -0
  388. package/dist/storage/share-sessions/provider.js +20 -0
  389. package/dist/storage/share-sessions/provider.js.map +9 -0
  390. package/dist/storage/share-sessions/record.d.ts +8 -0
  391. package/dist/storage/share-sessions/record.d.ts.map +1 -0
  392. package/dist/storage/share-sessions/types.d.ts +50 -0
  393. package/dist/storage/share-sessions/types.d.ts.map +1 -0
  394. package/dist/storage/sync-runs/provider.js +2 -2
  395. package/dist/storage/transaction.d.ts +2 -1
  396. package/dist/storage/transaction.d.ts.map +1 -1
  397. package/dist/storage/types.d.ts +8 -0
  398. package/dist/storage/types.d.ts.map +1 -1
  399. package/dist/storage/webhook-runs/provider.js +2 -2
  400. package/dist/storage/workflow-runs/provider.js +10 -7
  401. package/dist/storage/workflow-runs/provider.js.map +1 -1
  402. package/dist/syncs/execution.d.ts.map +1 -1
  403. package/dist/syncs/index.js +27 -24
  404. package/dist/syncs/index.js.map +1 -1
  405. package/dist/syncs/request.d.ts.map +1 -1
  406. package/dist/testing/dataset-sequence-contract.d.ts +4 -0
  407. package/dist/testing/dataset-sequence-contract.d.ts.map +1 -0
  408. package/dist/testing/effective-storage-contract.d.ts.map +1 -1
  409. package/dist/testing/execution-storage-contract.d.ts +4 -0
  410. package/dist/testing/execution-storage-contract.d.ts.map +1 -1
  411. package/dist/testing/index.d.ts +3 -0
  412. package/dist/testing/index.d.ts.map +1 -1
  413. package/dist/testing/index.js +2555 -908
  414. package/dist/testing/index.js.map +11 -7
  415. package/dist/testing/lake-merge-storage-contract.d.ts +1 -0
  416. package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
  417. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  418. package/dist/testing/object-read-scope-contract.d.ts +22 -0
  419. package/dist/testing/object-read-scope-contract.d.ts.map +1 -0
  420. package/dist/testing/share-grant-storage-contract.d.ts +10 -0
  421. package/dist/testing/share-grant-storage-contract.d.ts.map +1 -0
  422. package/dist/testing/share-session-storage-contract.d.ts +9 -0
  423. package/dist/testing/share-session-storage-contract.d.ts.map +1 -0
  424. package/dist/webhooks/internal.js +24 -21
  425. package/dist/webhooks/internal.js.map +2 -2
  426. package/dist/workflows/execution.d.ts.map +1 -1
  427. package/dist/workflows/index.js +42 -35
  428. package/dist/workflows/index.js.map +1 -1
  429. package/dist/workflows/request.d.ts.map +1 -1
  430. package/package.json +25 -1
  431. package/src/actions/delegated-admission.ts +72 -0
  432. package/src/actions/descriptor.ts +58 -0
  433. package/src/actions/execution.ts +99 -24
  434. package/src/actions/request.ts +136 -19
  435. package/src/actions/run-authorization.ts +53 -0
  436. package/src/actions/run-dispatch.ts +8 -1
  437. package/src/agents/adapters.ts +30 -420
  438. package/src/agents/authority.ts +3 -4
  439. package/src/agents/context-resolution.ts +1 -4
  440. package/src/agents/errors.ts +0 -10
  441. package/src/agents/execution.ts +13 -5
  442. package/src/agents/identity.ts +4 -0
  443. package/src/agents/index.ts +1 -20
  444. package/src/agents/message.ts +4 -5
  445. package/src/agents/model-loop.ts +54 -6
  446. package/src/agents/request.ts +16 -3
  447. package/src/agents/tool-definition.ts +0 -19
  448. package/src/agents/validation.ts +6 -65
  449. package/src/ai-usage/execution.ts +4 -11
  450. package/src/authorization/decision.ts +29 -14
  451. package/src/authorization/grant-kinds.ts +10 -0
  452. package/src/authorization/index.ts +1 -0
  453. package/src/bootstrap/discovery.ts +3 -0
  454. package/src/bootstrap/ontology-type-manifest.ts +12 -6
  455. package/src/datasets/builders.ts +23 -2
  456. package/src/datasets/changes.ts +16 -4
  457. package/src/datasets/execution.ts +76 -5
  458. package/src/datasets/index.ts +1 -0
  459. package/src/datasets/sequence.ts +77 -0
  460. package/src/datasets/types.ts +1 -0
  461. package/src/datasets/validation.ts +26 -0
  462. package/src/datasets/write.ts +240 -0
  463. package/src/events/execution.ts +57 -7
  464. package/src/events/types/datasets.ts +2 -6
  465. package/src/execution/agent.ts +1 -4
  466. package/src/execution/authorization.ts +470 -90
  467. package/src/execution/authorized-object-reader.ts +695 -0
  468. package/src/execution/durable.ts +10 -2
  469. package/src/execution/index.ts +1 -0
  470. package/src/execution/request.ts +63 -13
  471. package/src/execution/scopes.ts +36 -6
  472. package/src/execution/types.ts +8 -0
  473. package/src/http/api-routes.ts +45 -0
  474. package/src/index.ts +36 -15
  475. package/src/lake-storage/definition-updates.ts +9 -0
  476. package/src/lake-storage/errors.ts +6 -1
  477. package/src/lake-storage/in-memory.ts +53 -17
  478. package/src/lake-storage/index.ts +10 -1
  479. package/src/lake-storage/merge-validation.ts +12 -2
  480. package/src/lake-storage/merge.ts +40 -2
  481. package/src/lake-storage/source-ordering.ts +95 -0
  482. package/src/lake-storage/sql-transforms.ts +2 -1
  483. package/src/lake-storage/types.ts +10 -5
  484. package/src/lake-storage/version-inputs.ts +14 -0
  485. package/src/objects/authorized-ontology-view.ts +512 -0
  486. package/src/objects/execution.ts +98 -143
  487. package/src/objects/link/authorization.ts +3 -2
  488. package/src/objects/query/executor.ts +45 -34
  489. package/src/objects/query/links.ts +84 -25
  490. package/src/objects/query/selected-read-admission.ts +310 -0
  491. package/src/objects/query/validate.ts +353 -36
  492. package/src/objects/sdk/object-handle.ts +2 -8
  493. package/src/objects/sdk/object-set.ts +10 -11
  494. package/src/objects/sdk/runtime-query-executor.ts +8 -28
  495. package/src/objects/sdk/telemetry-channel.ts +11 -7
  496. package/src/objects/service/list-service.ts +15 -29
  497. package/src/objects/telemetry/history.ts +297 -17
  498. package/src/objects/telemetry/index.ts +2 -2
  499. package/src/objects/telemetry/workload.ts +79 -0
  500. package/src/ontology/index.ts +7 -1
  501. package/src/ontology/inference/index.ts +4 -1
  502. package/src/ontology/internal.ts +0 -1
  503. package/src/ontology/json-schema.ts +13 -12
  504. package/src/ontology/link-path-selection.ts +193 -0
  505. package/src/ontology/refs.ts +19 -0
  506. package/src/ontology/tokens.ts +15 -8
  507. package/src/pipelines/execution.ts +30 -7
  508. package/src/pipelines/request.ts +5 -0
  509. package/src/projections/execution.ts +72 -11
  510. package/src/projections/run-dispatch.ts +6 -12
  511. package/src/rules/execution.ts +20 -8
  512. package/src/runtime/create.ts +5 -1
  513. package/src/runtime/definitions.ts +2 -0
  514. package/src/runtime/host.ts +25 -6
  515. package/src/runtime/internal.ts +1 -0
  516. package/src/runtime/resolve-definitions.ts +9 -0
  517. package/src/runtime/sixb.ts +23 -2
  518. package/src/runtime/types.ts +3 -0
  519. package/src/schedules/execution.ts +24 -2
  520. package/src/security/every.ts +4 -0
  521. package/src/security/grants.ts +45 -3
  522. package/src/security/index.ts +1 -0
  523. package/src/security/registry.ts +3 -0
  524. package/src/security/types.ts +8 -0
  525. package/src/security/validation.ts +3 -0
  526. package/src/shares/access-plan.ts +225 -0
  527. package/src/shares/builders.ts +381 -0
  528. package/src/shares/compiler.ts +359 -0
  529. package/src/shares/errors.ts +3 -0
  530. package/src/shares/execution.ts +394 -0
  531. package/src/shares/index.ts +28 -0
  532. package/src/shares/internal.ts +9 -0
  533. package/src/shares/intersection.ts +178 -0
  534. package/src/shares/session-protocol.ts +258 -0
  535. package/src/shares/types.ts +76 -0
  536. package/src/shares/validation.ts +40 -0
  537. package/src/storage/executions/in-memory.ts +9 -1
  538. package/src/storage/executions/provider.ts +30 -1
  539. package/src/storage/executions/run-link.ts +29 -0
  540. package/src/storage/executions/validation.ts +46 -1
  541. package/src/storage/in-memory/index.ts +21 -2
  542. package/src/storage/index.ts +51 -0
  543. package/src/storage/objects/execution-limits.ts +283 -0
  544. package/src/storage/objects/guard.ts +55 -0
  545. package/src/storage/objects/in-memory/index.ts +2 -0
  546. package/src/storage/objects/in-memory/keys.ts +46 -0
  547. package/src/storage/objects/in-memory/query.ts +754 -0
  548. package/src/storage/objects/in-memory/read-scope.ts +211 -0
  549. package/src/storage/objects/in-memory/read-source.ts +10 -0
  550. package/src/storage/objects/in-memory/selected-reader.ts +252 -0
  551. package/src/storage/objects/in-memory/storage.ts +589 -0
  552. package/src/storage/objects/index.ts +21 -0
  553. package/src/storage/objects/keys.ts +1 -1
  554. package/src/storage/objects/read-scope.ts +672 -0
  555. package/src/storage/objects/types.ts +123 -19
  556. package/src/storage/operation-scope.ts +16 -0
  557. package/src/storage/share-grants/errors.ts +14 -0
  558. package/src/storage/share-grants/in-memory.ts +107 -0
  559. package/src/storage/share-grants/index.ts +14 -0
  560. package/src/storage/share-grants/provider.ts +11 -0
  561. package/src/storage/share-grants/record.ts +347 -0
  562. package/src/storage/share-grants/types.ts +112 -0
  563. package/src/storage/share-sessions/errors.ts +14 -0
  564. package/src/storage/share-sessions/in-memory.ts +105 -0
  565. package/src/storage/share-sessions/index.ts +11 -0
  566. package/src/storage/share-sessions/provider.ts +9 -0
  567. package/src/storage/share-sessions/record.ts +176 -0
  568. package/src/storage/share-sessions/types.ts +57 -0
  569. package/src/storage/transaction.ts +14 -2
  570. package/src/storage/types.ts +27 -0
  571. package/src/syncs/execution.ts +25 -5
  572. package/src/syncs/request.ts +5 -0
  573. package/src/testing/dataset-sequence-contract.ts +373 -0
  574. package/src/testing/effective-storage-contract.ts +34 -0
  575. package/src/testing/execution-storage-contract.ts +79 -0
  576. package/src/testing/index.ts +16 -0
  577. package/src/testing/lake-merge-storage-contract.ts +3 -0
  578. package/src/testing/lake-storage-contract.ts +58 -0
  579. package/src/testing/object-read-scope-contract.ts +939 -0
  580. package/src/testing/share-grant-storage-contract.ts +325 -0
  581. package/src/testing/share-session-storage-contract.ts +235 -0
  582. package/src/workflows/execution.ts +53 -14
  583. package/src/workflows/request.ts +5 -0
  584. package/dist/chunk-2b5qtban.js.map +0 -14
  585. package/dist/chunk-37wk412q.js.map +0 -23
  586. package/dist/chunk-3fqt22c4.js.map +0 -14
  587. package/dist/chunk-3kv70xwp.js.map +0 -10
  588. package/dist/chunk-64sr682n.js.map +0 -12
  589. package/dist/chunk-7ds9620f.js.map +0 -10
  590. package/dist/chunk-dqn23610.js +0 -72
  591. package/dist/chunk-dqn23610.js.map +0 -11
  592. package/dist/chunk-e4rvtvpw.js.map +0 -34
  593. package/dist/chunk-gbrpsx4m.js.map +0 -11
  594. package/dist/chunk-h0knpbz5.js.map +0 -38
  595. package/dist/chunk-hdz94br2.js.map +0 -10
  596. package/dist/chunk-n2arzn6e.js.map +0 -20
  597. package/dist/chunk-qjzp9xyb.js.map +0 -12
  598. package/dist/chunk-tn7xcs2n.js.map +0 -13
  599. package/dist/chunk-wjgm6jjt.js.map +0 -13
  600. package/dist/chunk-xc7hq65b.js.map +0 -10
  601. package/dist/chunk-y35ma3mj.js +0 -551
  602. package/dist/chunk-y35ma3mj.js.map +0 -15
  603. package/dist/chunk-z2sery1b.js.map +0 -11
  604. package/dist/storage/objects/in-memory.d.ts.map +0 -1
  605. package/src/storage/objects/in-memory.ts +0 -1241
  606. /package/dist/{chunk-5jcdmjam.js.map → chunk-4jjp5k14.js.map} +0 -0
  607. /package/dist/{chunk-agsvg9ar.js.map → chunk-5ntny1qx.js.map} +0 -0
  608. /package/dist/{chunk-9aehf39w.js.map → chunk-f26bck4t.js.map} +0 -0
  609. /package/dist/{chunk-08twe8m6.js.map → chunk-p1rzczbt.js.map} +0 -0
  610. /package/dist/{chunk-xdpwpkha.js.map → chunk-rv2hkwwa.js.map} +0 -0
  611. /package/dist/{chunk-1kamz6j0.js.map → chunk-w1tvjszy.js.map} +0 -0
  612. /package/dist/{chunk-4nxeacx7.js.map → chunk-wdage1eb.js.map} +0 -0
@@ -1,6 +1,7 @@
1
1
  import { principalsEqual, SYSTEM_PRINCIPAL } from "../auth"
2
- import { assertAuthorized, isAllowed } from "../authorization"
2
+ import { assertAuthorized, isRuntimeAllowed } from "../authorization"
3
3
  import type { AuthorizablePrincipal, ExecutionContext } from "../execution"
4
+ import { resolveRuntimeAuthorizationForProject } from "../execution/authorization"
4
5
  import type { ModelCatalog } from "../models"
5
6
  import { resolveExecutionCosts } from "../runtime/ai-cost"
6
7
  import { resolveExecutionUsage } from "../runtime/ai-usage"
@@ -82,22 +83,25 @@ export function createAgentRuntime(
82
83
  execution: ExecutionContext,
83
84
  models?: ModelCatalog
84
85
  ): AgentRuntime {
85
- const principal = runtime.authorization?.principal ?? SYSTEM_PRINCIPAL
86
- const allowed = () => isAllowed(runtime.authorization, { kind: "agent.run" })
86
+ const authority = resolveRuntimeAuthorizationForProject(runtime)
87
+ const principal = authority.type === "principal" ? authority.context.principal : SYSTEM_PRINCIPAL
88
+ const allowed = () => isRuntimeAllowed(runtime, { kind: "agent.run" })
87
89
 
88
90
  const getVisibleThreadRecord = async (threadId: string): Promise<AgentThreadRecord | null> => {
91
+ if (authority.type === "denied" || authority.type === "delegated") return null
89
92
  const thread =
90
93
  (await runtime.storage.agents?.threads.getById({
91
94
  projectId: runtime.projectId,
92
95
  id: threadId,
93
96
  })) ?? null
94
97
  if (!thread || !allowed()) return null
95
- return runtime.authorization && !principalsEqual(principal, thread.ownerPrincipal)
98
+ return authority.type === "principal" && !principalsEqual(principal, thread.ownerPrincipal)
96
99
  ? null
97
100
  : thread
98
101
  }
99
102
 
100
103
  const getAgent = (): AgentDescriptor | null => {
104
+ if (authority.type === "denied" || authority.type === "delegated") return null
101
105
  const model = models?.language.default
102
106
  if (!model || !allowed()) return null
103
107
  return {
@@ -107,6 +111,7 @@ export function createAgentRuntime(
107
111
  }
108
112
 
109
113
  const getVisibleRunRecord = async (runId: string): Promise<ConversationAgentRunRecord | null> => {
114
+ if (authority.type === "denied" || authority.type === "delegated") return null
110
115
  const run =
111
116
  (await runtime.storage.agents?.runs.getById({
112
117
  projectId: runtime.projectId,
@@ -148,12 +153,15 @@ export function createAgentRuntime(
148
153
  getById: getVisibleThreadRecord,
149
154
  list: async (input = {}) => {
150
155
  assertNoAgentSelector(input)
156
+ if (authority.type === "denied" || authority.type === "delegated") {
157
+ return { threads: [], hasMore: false, total: 0 }
158
+ }
151
159
  const storage = runtime.storage.agents
152
160
  if (!storage || !allowed()) return { threads: [], hasMore: false, total: 0 }
153
161
  return storage.threads.list({
154
162
  ...input,
155
163
  projectId: runtime.projectId,
156
- ownerPrincipal: runtime.authorization ? principal : undefined,
164
+ ownerPrincipal: authority.type === "principal" ? principal : undefined,
157
165
  })
158
166
  },
159
167
  },
@@ -0,0 +1,4 @@
1
+ /** Deterministic managed service-account id owned by one framework Agent actor. */
2
+ export function agentServiceAccountId(actorId: string): string {
3
+ return `svc_agent_${actorId}`
4
+ }
@@ -1,28 +1,10 @@
1
1
  export type {
2
2
  AgentFileDataProjection,
3
3
  AgentFileDataResolverInput,
4
- AgentInboundUiMessage,
5
- AgentInboundUiMessagePart,
6
- AgentModelAssistantPart,
7
- AgentModelFilePart,
8
- AgentModelMessage,
9
- AgentModelReasoningPart,
10
- AgentModelTextPart,
11
- AgentModelToolCallPart,
12
- AgentModelToolOutput,
13
- AgentModelToolResultPart,
14
4
  AgentToolResultFileResolverInput,
15
- AgentUiMessage,
16
- AgentUiMessagePart,
17
- AgentUiToolPart,
18
5
  ToModelMessagesOptions,
19
6
  } from "./adapters"
20
- export {
21
- fromUiMessage,
22
- omitUndefinedObjectProperties,
23
- toModelMessages,
24
- toUiMessage,
25
- } from "./adapters"
7
+ export { toModelMessages } from "./adapters"
26
8
  export type { AgentApiGatewayCapabilityInput, AgentApiRoute } from "./api-gateway"
27
9
  export {
28
10
  AGENT_API_GATEWAY_PREFIX,
@@ -85,7 +67,6 @@ export {
85
67
  } from "./dispatch"
86
68
  export {
87
69
  AgentDefinitionError,
88
- AgentMessageAdapterError,
89
70
  AgentRequestError,
90
71
  type AgentRequestErrorCode,
91
72
  AgentToolPublicError,
@@ -10,9 +10,8 @@ import type { AgentContextPart } from "./context"
10
10
  * column) versions the parts shape so it can be migrated.
11
11
  *
12
12
  * The part union is intentionally focused on what agent runs actually produce (text, reasoning, step
13
- * boundaries, tool calls). It is extensible: adding a part kind later is non-breaking. The adapter
14
- * `fromUiMessage` is total — it throws on any part it cannot model rather than dropping it silently,
15
- * which both prevents data loss and signals exactly when the union must grow.
13
+ * boundaries, tool calls). The model loop validates and normalizes output before its steps are
14
+ * projected into this union; storage validates the durable write contract independently.
16
15
  */
17
16
  export const AGENT_MESSAGE_CONTENT_VERSION = 2 as const
18
17
 
@@ -53,7 +52,7 @@ interface AgentToolCallBase {
53
52
  readonly type: "tool-call"
54
53
  readonly toolCallId: string
55
54
  readonly toolName: string
56
- /** `true` when reconstructed from a dynamic tool part (vs a static `tool-${name}` part). */
55
+ /** `true` when the model identifies the call as a dynamic tool. */
57
56
  readonly dynamic?: boolean
58
57
  /** `true` when the provider executed the tool inline (steers model projection). */
59
58
  readonly providerExecuted?: boolean
@@ -95,6 +94,6 @@ export type AgentToolCallState = AgentToolCallPart["state"]
95
94
  export interface AgentMessage {
96
95
  readonly role: AgentMessageRole
97
96
  readonly parts: readonly AgentMessagePart[]
98
- /** Message-level metadata (mirrors `UIMessage.metadata`). */
97
+ /** Optional JSON metadata associated with the message. */
99
98
  readonly metadata?: JsonValue
100
99
  }
@@ -1,5 +1,11 @@
1
1
  import { randomUUID } from "node:crypto"
2
- import { assertJsonObject, assertJsonValue, isJsonValue, type JsonValue } from "../json"
2
+ import {
3
+ assertJsonObject,
4
+ assertJsonValue,
5
+ isJsonValue,
6
+ isPlainRecord,
7
+ type JsonValue,
8
+ } from "../json"
3
9
  import { ModelProviderError, ModelStreamError, StructuredOutputError } from "../models/errors"
4
10
  import type {
5
11
  LanguageModelStreamEvent,
@@ -110,6 +116,8 @@ interface ParsedToolCall {
110
116
  *
111
117
  * One step is exactly one provider call. Lifecycle and stream callbacks are awaited so the caller
112
118
  * controls backpressure and can fail closed before another billable call starts.
119
+ * Completed steps and partial content contain validated JSON payloads and normalized provider
120
+ * metadata. Trace adapters may project these results directly; storage owns write validation.
113
121
  */
114
122
  export function runModelLoop<TOutput = string>(
115
123
  input: RunModelLoopInput<TOutput>
@@ -523,6 +531,11 @@ function validateModelToolOutput(output: ModelToolOutput, toolName: string): voi
523
531
  }
524
532
  return
525
533
  }
534
+ if (output.type !== "json" && output.type !== "error-json") {
535
+ throw new TypeError(
536
+ `[SixbModels] Tool '${toolName}' returned an unsupported model output type.`
537
+ )
538
+ }
526
539
  assertJsonValue(output.value, `tool '${toolName}' model output`)
527
540
  }
528
541
 
@@ -537,6 +550,9 @@ function modelToolOutput(value: JsonValue): ModelToolOutput {
537
550
  }
538
551
 
539
552
  function toolErrorResult(part: ModelToolCallPart, errorText: string): ModelToolResultPart {
553
+ if (typeof errorText !== "string") {
554
+ throw new TypeError(`[SixbModels] Tool '${part.toolName}' error text must be a string.`)
555
+ }
540
556
  return {
541
557
  type: "tool-result",
542
558
  toolCallId: part.toolCallId,
@@ -645,6 +661,12 @@ class StreamAccumulator {
645
661
  this.addProviderToolResult(event)
646
662
  return
647
663
  case "provider-state":
664
+ if (typeof event.providerId !== "string" || event.providerId.length === 0) {
665
+ this.captureProjectionError(
666
+ new ModelStreamError("[SixbModels] Provider state requires a nonempty provider ID.")
667
+ )
668
+ return
669
+ }
648
670
  if (this.captureProviderState(event.data)) {
649
671
  this.parts.push({
650
672
  type: "provider-state",
@@ -836,7 +858,12 @@ class StreamAccumulator {
836
858
  event: Extract<LanguageModelStreamEvent, { type: "tool-input-start" }>
837
859
  ): Promise<void> {
838
860
  this.requireStarted(event.type)
839
- if (!event.id || !event.toolName) {
861
+ if (
862
+ typeof event.id !== "string" ||
863
+ !event.id ||
864
+ typeof event.toolName !== "string" ||
865
+ !event.toolName
866
+ ) {
840
867
  throw new ModelStreamError("[SixbModels] Tool calls require nonempty IDs and names.")
841
868
  }
842
869
  if (this.toolCalls.has(event.id)) {
@@ -932,8 +959,7 @@ class StreamAccumulator {
932
959
  private captureProviderData(data: ProviderData | undefined): ProviderData | undefined {
933
960
  if (data === undefined) return undefined
934
961
  try {
935
- validateProviderData(data)
936
- return data
962
+ return normalizeProviderData(data)
937
963
  } catch (error) {
938
964
  this.captureProjectionError(error)
939
965
  return undefined
@@ -993,8 +1019,8 @@ function validateUsage(usage: ModelUsage): void {
993
1019
  }
994
1020
  }
995
1021
 
996
- function validateProviderData(data: ProviderData | undefined): void {
997
- if (data === undefined) return
1022
+ function normalizeProviderData(value: ProviderData): ProviderData {
1023
+ const data = omitUndefinedObjectProperties(value)
998
1024
  assertJsonValue(data, "provider data")
999
1025
  if (typeof data !== "object" || data === null || Array.isArray(data)) {
1000
1026
  throw new TypeError("[SixbModels] provider data must be a JSON object.")
@@ -1004,6 +1030,28 @@ function validateProviderData(data: ProviderData | undefined): void {
1004
1030
  `[SixbModels] Provider data exceeds the ${MAX_PROVIDER_DATA_BYTES}-byte response limit.`
1005
1031
  )
1006
1032
  }
1033
+ return data
1034
+ }
1035
+
1036
+ /** Normalize absent metadata fields at ingestion, leaving non-JSON values for validation. */
1037
+ function omitUndefinedObjectProperties(value: unknown, seen = new Set<object>()): unknown {
1038
+ if (typeof value !== "object" || value === null || seen.has(value)) return value
1039
+ seen.add(value)
1040
+ try {
1041
+ if (Array.isArray(value)) {
1042
+ return value.map((entry) => omitUndefinedObjectProperties(entry, seen))
1043
+ }
1044
+ if (!isPlainRecord(value)) return value
1045
+ return Object.fromEntries(
1046
+ Reflect.ownKeys(value)
1047
+ .filter((key) => Object.prototype.propertyIsEnumerable.call(value, key))
1048
+ .map((key) => [key, Reflect.get(value, key)] as const)
1049
+ .filter(([, entry]) => entry !== undefined)
1050
+ .map(([key, entry]) => [key, omitUndefinedObjectProperties(entry, seen)])
1051
+ )
1052
+ } finally {
1053
+ seen.delete(value)
1054
+ }
1007
1055
  }
1008
1056
 
1009
1057
  function mergeProviderData(
@@ -8,6 +8,7 @@ import {
8
8
  canInheritAgentRequestAuthorization,
9
9
  createInheritedAgentExecutionRecord,
10
10
  } from "../execution/agent"
11
+ import { resolveExecutionScopeAuthorization } from "../execution/authorization"
11
12
  import { ensureExecutionRecord, executionRecordInputFromRuntime } from "../execution/durable"
12
13
  import type { ExecutionContext } from "../execution/types"
13
14
  import type { LanguageModelCatalog, LanguageModelRef } from "../models"
@@ -81,6 +82,10 @@ export async function requestAgentRun(
81
82
  models: LanguageModelCatalog | undefined,
82
83
  input: RequestAgentRunInput
83
84
  ): Promise<RequestAgentRunResult> {
85
+ const authority = resolveExecutionScopeAuthorization(runtime.projectId, {
86
+ execution,
87
+ authorization: runtime.runtimeAuthorization,
88
+ })
84
89
  assertNoAgentSelector(input)
85
90
  assertAuthorized(runtime, { kind: "agent.run" })
86
91
  assertRequestAuthorityCanRunAgent(runtime)
@@ -92,9 +97,13 @@ export async function requestAgentRun(
92
97
 
93
98
  const agents = requireAgentStorage(runtime)
94
99
  const projectId = runtime.projectId
95
- // A scoped runtime is authoritative for caller identity. `input.principal` remains available to
96
- // privileged server integrations that have already authenticated their request.
97
- const principal = runtime.authorization?.principal ?? input.principal ?? SYSTEM_PRINCIPAL
100
+ // Attribution comes from the exact capability/execution pair, never the optional context cache
101
+ // on the runtime. `input.principal` remains available to unrestricted server integrations that
102
+ // have already authenticated their request.
103
+ const principal =
104
+ authority.type === "principal"
105
+ ? authority.context.principal
106
+ : (input.principal ?? SYSTEM_PRINCIPAL)
98
107
  const runId = createAgentRunId()
99
108
  const durableExecution = await prepareDurableAgentExecution(runtime, execution, runId)
100
109
  const requesterGroupIds = durableExecution.requestedBy
@@ -179,6 +188,10 @@ export async function retryAgentRun(
179
188
  models: LanguageModelCatalog | undefined,
180
189
  failedRun: ConversationAgentRunRecord
181
190
  ): Promise<RequestAgentRunResult> {
191
+ resolveExecutionScopeAuthorization(runtime.projectId, {
192
+ execution,
193
+ authorization: runtime.runtimeAuthorization,
194
+ })
182
195
  assertAuthorized(runtime, { kind: "agent.run" })
183
196
  assertRequestAuthorityCanRunAgent(runtime)
184
197
  if (failedRun.status !== "failed") {
@@ -13,7 +13,6 @@ import type {
13
13
  InferAgentToolInputSchema,
14
14
  } from "./types"
15
15
  import {
16
- assertValidAgentToolDefinitions,
17
16
  assertValidAgentToolDescription,
18
17
  assertValidAgentToolName,
19
18
  assertValidProjectAgentToolDefinitions,
@@ -73,24 +72,6 @@ export function createAgentToolDefinition<
73
72
  return Object.freeze(tool)
74
73
  }
75
74
 
76
- export function toolsFromDefinitions(
77
- agentId: string,
78
- tools: readonly AgentToolDefinition[] | undefined
79
- ): readonly AgentToolDefinition[] {
80
- if (tools === undefined) {
81
- return EMPTY_AGENT_TOOLS
82
- }
83
- if (!Array.isArray(tools)) {
84
- throw new AgentDefinitionError(
85
- `[Sixb] Agent '${agentId}' tools must be an array of agent tool definitions.`
86
- )
87
- }
88
-
89
- assertValidAgentToolDefinitions(agentId, tools)
90
-
91
- return normalizeAgentToolDefinitions(tools)
92
- }
93
-
94
75
  export function toolsFromProjectConfig(
95
76
  tools: readonly AgentToolDefinition[] | undefined
96
77
  ): readonly AgentToolDefinition[] {
@@ -6,7 +6,6 @@ import {
6
6
  type ValueType,
7
7
  validateSchemaValue,
8
8
  } from "../ontology"
9
- import type { GroupDefinition } from "../security"
10
9
  import { AgentDefinitionError } from "./errors"
11
10
  import type { AgentToolDefinition, AgentToolInputSchema } from "./types"
12
11
 
@@ -31,12 +30,6 @@ export const AGENT_RESERVED_TOOL_NAMES = [
31
30
  "wait_agent",
32
31
  ] as const
33
32
 
34
- export function assertNonEmpty(value: string, field: string): void {
35
- if (!value.trim()) {
36
- throw new AgentDefinitionError(`[Sixb] Agent ${field} must not be empty.`)
37
- }
38
- }
39
-
40
33
  export function isAgentToolDefinition(value: unknown): value is AgentToolDefinition {
41
34
  return (
42
35
  isRecord(value) &&
@@ -126,38 +119,6 @@ export function validateAndNormalizeAgentToolInput(
126
119
  )
127
120
  }
128
121
 
129
- export function groupIdsFromDefinitions(
130
- agentId: string,
131
- groups: readonly GroupDefinition[] | undefined
132
- ): readonly string[] {
133
- const groupIds = (groups ?? []).map((group) => {
134
- if (!isRecord(group) || group.kind !== "group") {
135
- throw new AgentDefinitionError(
136
- `[Sixb] Agent '${agentId}' groups must contain only group definitions.`
137
- )
138
- }
139
-
140
- assertNonEmpty(group.id, `Agent '${agentId}' group id`)
141
- return group.id
142
- })
143
-
144
- assertNoDuplicateGroupIds(agentId, groupIds)
145
- return Object.freeze(groupIds)
146
- }
147
-
148
- function assertNoDuplicateGroupIds(agentId: string, groupIds: readonly string[]): void {
149
- const seen = new Set<string>()
150
- for (const groupId of groupIds) {
151
- assertNonEmpty(groupId, `Agent '${agentId}' group id`)
152
- if (seen.has(groupId)) {
153
- throw new AgentDefinitionError(
154
- `[Sixb] Agent '${agentId}' groups contains duplicate group id '${groupId}'.`
155
- )
156
- }
157
- seen.add(groupId)
158
- }
159
- }
160
-
161
122
  function assertValidAgentToolSchema(
162
123
  toolName: string,
163
124
  schema: unknown,
@@ -238,45 +199,25 @@ function invalidAgentToolSchema(toolName: string, path: string): AgentDefinition
238
199
  )
239
200
  }
240
201
 
241
- export function assertValidAgentToolDefinitions(
242
- agentId: string,
243
- tools: readonly AgentToolDefinition[]
244
- ): void {
245
- assertValidAgentToolDefinitionList(tools, {
246
- invalidDefinitions: `[Sixb] Agent '${agentId}' tools must contain only agent tool definitions.`,
247
- duplicateName: (name) =>
248
- `[Sixb] Agent '${agentId}' tools contains duplicate tool name '${name}'.`,
249
- })
250
- }
251
-
252
202
  export function assertValidProjectAgentToolDefinitions(
253
203
  tools: readonly AgentToolDefinition[]
254
- ): void {
255
- assertValidAgentToolDefinitionList(tools, {
256
- invalidDefinitions: "[Sixb] Project tools must contain only agent tool definitions.",
257
- duplicateName: (name) => `[Sixb] Project tools contain duplicate tool name '${name}'.`,
258
- })
259
- }
260
-
261
- function assertValidAgentToolDefinitionList(
262
- tools: readonly AgentToolDefinition[],
263
- messages: {
264
- readonly invalidDefinitions: string
265
- readonly duplicateName: (name: string) => string
266
- }
267
204
  ): void {
268
205
  const seen = new Set<string>()
269
206
  for (let index = 0; index < tools.length; index += 1) {
270
207
  const tool = tools[index]
271
208
  if (!Object.hasOwn(tools, index) || !isAgentToolDefinition(tool)) {
272
- throw new AgentDefinitionError(messages.invalidDefinitions)
209
+ throw new AgentDefinitionError(
210
+ "[Sixb] Project tools must contain only agent tool definitions."
211
+ )
273
212
  }
274
213
 
275
214
  assertValidAgentToolName(tool.name)
276
215
  assertValidAgentToolDescription(tool.name, tool.description)
277
216
  assertValidAgentToolInput(tool.name, tool.input)
278
217
  if (seen.has(tool.name)) {
279
- throw new AgentDefinitionError(messages.duplicateName(tool.name))
218
+ throw new AgentDefinitionError(
219
+ `[Sixb] Project tools contain duplicate tool name '${tool.name}'.`
220
+ )
280
221
  }
281
222
  seen.add(tool.name)
282
223
  }
@@ -1,5 +1,5 @@
1
1
  import { randomUUID } from "node:crypto"
2
- import { assertAuthorized, assertRuntimeAuthorizationBound, isAllowed } from "../authorization"
2
+ import { assertAuthorized, isRuntimeAllowed } from "../authorization"
3
3
  import type { SixbRuntimeContext } from "../runtime/types"
4
4
  import type { SecurityDefinitionCatalog } from "../security"
5
5
  import type {
@@ -87,11 +87,9 @@ export function createAiUsageRuntime(
87
87
  const assertObservable = () => assertAuthorized(runtime, { kind: "aiUsage.observe" })
88
88
  const assertManageable = () => assertAuthorized(runtime, { kind: "aiUsage.manage" })
89
89
  const assertPolicyReadable = () => {
90
- const resolved = assertRuntimeAuthorizationBound(runtime)
91
90
  if (
92
- resolved.type === "principal" &&
93
- !isAllowed(resolved.context, { kind: "aiUsage.observe" }) &&
94
- !isAllowed(resolved.context, { kind: "aiUsage.manage" })
91
+ !isRuntimeAllowed(runtime, { kind: "aiUsage.observe" }) &&
92
+ !isRuntimeAllowed(runtime, { kind: "aiUsage.manage" })
95
93
  ) {
96
94
  assertObservable()
97
95
  }
@@ -114,12 +112,7 @@ export function createAiUsageRuntime(
114
112
  limitsConfigured: runtime.storage.aiLimits !== undefined,
115
113
  assertObservable,
116
114
  assertManageable,
117
- canManageLimits: () => {
118
- const resolved = assertRuntimeAuthorizationBound(runtime)
119
- return (
120
- resolved.type !== "principal" || isAllowed(resolved.context, { kind: "aiUsage.manage" })
121
- )
122
- },
115
+ canManageLimits: () => isRuntimeAllowed(runtime, { kind: "aiUsage.manage" }),
123
116
  queryOverview: (input) => {
124
117
  assertObservable()
125
118
  return requireCosts().queryProjectOverview({ ...input, projectId: runtime.projectId })
@@ -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,6 +29,7 @@ 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 }
@@ -47,6 +49,7 @@ export interface AuthzDecision {
47
49
  }
48
50
 
49
51
  interface AuthorizedRuntime {
52
+ readonly projectId: string
50
53
  readonly runtimeAuthorization?: RuntimeAuthorization
51
54
  readonly authorization?: AuthorizationContext
52
55
  }
@@ -73,6 +76,8 @@ function atomsFor(request: AuthzRequest): readonly Atom[] {
73
76
  return [{ kind: "append:telemetry", id: request.objectTypeId }]
74
77
  case "action.apply":
75
78
  return [{ kind: "apply:action", id: request.actionId }]
79
+ case "share.manage":
80
+ return [{ kind: "share:share", id: request.shareId }]
76
81
  case "workflow.run":
77
82
  return [{ kind: "run:workflow", id: request.workflowId }]
78
83
  case "sync.run":
@@ -133,6 +138,12 @@ export function isAllowed(
133
138
 
134
139
  export function assertAuthorized(runtime: AuthorizedRuntime, request: AuthzRequest): void {
135
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
+ }
136
147
  const authorization = resolved.type === "principal" ? resolved.context : undefined
137
148
  const decision = evaluate(authorization, request)
138
149
  if (decision.allowed) {
@@ -145,11 +156,18 @@ export function assertAuthorized(runtime: AuthorizedRuntime, request: AuthzReque
145
156
  )
146
157
  }
147
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
+
148
166
  /** Resolve registered process-local authority before a protected leaf makes a decision. */
149
167
  export function assertRuntimeAuthorizationBound(
150
168
  runtime: AuthorizedRuntime
151
169
  ): Exclude<ResolvedRuntimeAuthorization, { readonly type: "denied" }> {
152
- const resolved = resolveRuntimeAuthorization(runtime.runtimeAuthorization)
170
+ const resolved = resolveRuntimeAuthorizationForProject(runtime)
153
171
  if (resolved.type === "denied") {
154
172
  throw new AuthorizationError(
155
173
  "runtime:unbound",
@@ -218,27 +236,22 @@ export function assertPrivileged(runtime: AuthorizedRuntime, operation: string):
218
236
  * Assert access to process providers that trusted executions and genuine agent runs may use.
219
237
  *
220
238
  * Agent provenance alone is not authority: the registered capability must be bound to the exact
221
- * same execution identity and run before this check succeeds.
239
+ * same immutable execution before this check succeeds.
222
240
  */
223
241
  export function assertProviderAccess(
224
- runtime: AuthorizedRuntime,
242
+ runtime: AuthorizedRuntime & { readonly runtimeAuthorization: RuntimeAuthorization },
225
243
  execution: ExecutionContext,
226
244
  operation: string
227
245
  ): void {
228
- const resolved = assertRuntimeAuthorizationBound(runtime)
246
+ const resolved = resolveExecutionScopeAuthorization(runtime.projectId, {
247
+ execution,
248
+ authorization: runtime.runtimeAuthorization,
249
+ })
229
250
  if (resolved.type === "unrestricted") {
230
251
  return
231
252
  }
232
253
 
233
- const binding = resolved.executionBinding
234
- const executor = execution.executor
235
- if (
236
- binding?.type === "agent" &&
237
- executor.type === "agent" &&
238
- binding.executionId === execution.id &&
239
- binding.actorId === executor.actorId &&
240
- binding.runId === executor.runId
241
- ) {
254
+ if (execution.executor.type === "agent") {
242
255
  return
243
256
  }
244
257
 
@@ -266,6 +279,8 @@ function deniedMessage(
266
279
  return `[Sixb] Principal '${principalId}' is not allowed to append telemetry for object type '${request.objectTypeId}'.`
267
280
  case "action.apply":
268
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}'.`
269
284
  case "workflow.run":
270
285
  return `[Sixb] Principal '${principalId}' is not allowed to run workflow '${request.workflowId}'.`
271
286
  case "sync.run":
@@ -17,6 +17,7 @@ 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"
@@ -35,6 +36,7 @@ export interface GrantUniverse {
35
36
  readonly objectTypeIds: ReadonlySet<string>
36
37
  readonly datasetIds: ReadonlySet<string>
37
38
  readonly actionIds: ReadonlySet<string>
39
+ readonly shareIds: ReadonlySet<string>
38
40
  readonly workflowIds: ReadonlySet<string>
39
41
  readonly syncIds: ReadonlySet<string>
40
42
  readonly pipelineIds: ReadonlySet<string>
@@ -108,6 +110,11 @@ export const GRANT_KINDS: {
108
110
  subject: "action",
109
111
  fix: "Add it to 'actions/' or pass it to createSixb({ actions }).",
110
112
  },
113
+ "share:share": {
114
+ universeKey: "shareIds",
115
+ subject: "share",
116
+ fix: "Add it to 'shares/' or pass it to createSixb({ shares }).",
117
+ },
111
118
  "run:workflow": {
112
119
  universeKey: "workflowIds",
113
120
  subject: "workflow",
@@ -171,6 +178,8 @@ export function grantKindOf(grant: GrantDefinition): GrantKind {
171
178
  return "append:telemetry"
172
179
  case "apply":
173
180
  return "apply:action"
181
+ case "share":
182
+ return "share:share"
174
183
  case "run":
175
184
  return `run:${grant.target}`
176
185
  case "observe":
@@ -193,6 +202,7 @@ export function emptyGrantSets(): MutableGrantIndex {
193
202
  "edit:object": new Set(),
194
203
  "append:telemetry": new Set(),
195
204
  "apply:action": new Set(),
205
+ "share:share": new Set(),
196
206
  "run:workflow": new Set(),
197
207
  "run:sync": new Set(),
198
208
  "run:pipeline": new Set(),
@@ -10,6 +10,7 @@ export {
10
10
  assertRuntimeAuthorizationBound,
11
11
  evaluate,
12
12
  isAllowed,
13
+ isRuntimeAllowed,
13
14
  } from "./decision"
14
15
  export { AuthorizationError } from "./errors"
15
16
  export { canViewEvent } from "./event-visibility"
@@ -21,6 +21,7 @@ import { isRuleDefinition } from "../rules"
21
21
  import { RuntimeError } from "../runtime/errors"
22
22
  import { isScheduleDefinition } from "../schedules"
23
23
  import { isGroupDefinition, isMembershipPolicyDefinition, isRoleDefinition } from "../security"
24
+ import { isShareDefinition } from "../shares"
24
25
  import { isSyncDefinition } from "../syncs"
25
26
  import { isWorkflowDefinition } from "../workflows"
26
27
 
@@ -82,6 +83,7 @@ type DiscoveryModuleKind =
82
83
  | "role"
83
84
  | "rule"
84
85
  | "schedule"
86
+ | "share"
85
87
  | "sync"
86
88
  | "workflow"
87
89
 
@@ -136,6 +138,7 @@ const definitionDiscoveryRegistry = {
136
138
  kind: "membershipPolicy",
137
139
  isDefinition: isMembershipPolicyDefinition,
138
140
  },
141
+ shares: { directory: ["shares"], kind: "share", isDefinition: isShareDefinition },
139
142
  } as const satisfies Record<string, DefinitionDiscoveryFamily<unknown>>
140
143
 
141
144
  type DefinitionFromFamily<TFamily> =