@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,7 +1,10 @@
1
1
  // @bun
2
+ import {
3
+ compileSelectedObjectReadScope
4
+ } from "./chunk-r8jrnexe.js";
2
5
  import {
3
6
  resolveSemanticType
4
- } from "./chunk-d63tybny.js";
7
+ } from "./chunk-h0k55pc7.js";
5
8
  import {
6
9
  createSixbError
7
10
  } from "./chunk-2xns679x.js";
@@ -9,6 +12,14 @@ import {
9
12
  compareStrings
10
13
  } from "./chunk-n6jxh8sw.js";
11
14
 
15
+ // src/execution/authorization.ts
16
+ import { isDeepStrictEqual } from "util";
17
+
18
+ // src/agents/identity.ts
19
+ function agentServiceAccountId(actorId) {
20
+ return `svc_agent_${actorId}`;
21
+ }
22
+
12
23
  // src/authorization/grant-kinds.ts
13
24
  var GRANT_KINDS = {
14
25
  "access:application": {
@@ -42,6 +53,11 @@ var GRANT_KINDS = {
42
53
  subject: "action",
43
54
  fix: "Add it to 'actions/' or pass it to createSixb({ actions })."
44
55
  },
56
+ "share:share": {
57
+ universeKey: "shareIds",
58
+ subject: "share",
59
+ fix: "Add it to 'shares/' or pass it to createSixb({ shares })."
60
+ },
45
61
  "run:workflow": {
46
62
  universeKey: "workflowIds",
47
63
  subject: "workflow",
@@ -97,6 +113,8 @@ function grantKindOf(grant) {
97
113
  return "append:telemetry";
98
114
  case "apply":
99
115
  return "apply:action";
116
+ case "share":
117
+ return "share:share";
100
118
  case "run":
101
119
  return `run:${grant.target}`;
102
120
  case "observe":
@@ -113,6 +131,7 @@ function emptyGrantSets() {
113
131
  "edit:object": new Set,
114
132
  "append:telemetry": new Set,
115
133
  "apply:action": new Set,
134
+ "share:share": new Set,
116
135
  "run:workflow": new Set,
117
136
  "run:sync": new Set,
118
137
  "run:pipeline": new Set,
@@ -124,6 +143,245 @@ function emptyGrantSets() {
124
143
  };
125
144
  }
126
145
 
146
+ // src/storage/objects/execution-limits.ts
147
+ var MAX_OBJECT_READ_FACETS = 16;
148
+ var MAX_OUTPUT_JSON_DEPTH = 64;
149
+
150
+ class ObjectReadLimitExceededError extends Error {
151
+ metric;
152
+ limit;
153
+ name = "ObjectReadLimitExceededError";
154
+ code = "object_read_limit_exceeded";
155
+ constructor(metric, limit) {
156
+ super(`[Sixb] Object read exceeded its ${metric} limit (${limit}).`);
157
+ this.metric = metric;
158
+ this.limit = limit;
159
+ }
160
+ }
161
+ function snapshotObjectReadExecutionLimits(limits) {
162
+ if (typeof limits !== "object" || limits === null) {
163
+ throw new Error("[Sixb] Object read execution limits must be provided.");
164
+ }
165
+ return Object.freeze({
166
+ maxTraversalFacts: positiveSafeInteger(limits.maxTraversalFacts, "maxTraversalFacts"),
167
+ maxOutputJsonBytes: positiveSafeInteger(limits.maxOutputJsonBytes, "maxOutputJsonBytes")
168
+ });
169
+ }
170
+ function assertObjectReadFacetCount(count) {
171
+ if (!Number.isSafeInteger(count) || count < 0 || count > MAX_OBJECT_READ_FACETS) {
172
+ throw new Error(`[Sixb] An object read supports between 0 and ${MAX_OBJECT_READ_FACETS} facets.`);
173
+ }
174
+ }
175
+ function assertObjectReadOutputWithinLimit(value, limits) {
176
+ const fail = () => {
177
+ throw new ObjectReadLimitExceededError("outputJsonBytes", limits.maxOutputJsonBytes);
178
+ };
179
+ const stack = [];
180
+ let bytes = 0;
181
+ const addBytes = (count) => {
182
+ bytes += count;
183
+ if (bytes > limits.maxOutputJsonBytes)
184
+ fail();
185
+ };
186
+ const addPrimitiveBytes = (primitive) => {
187
+ switch (typeof primitive) {
188
+ case "string":
189
+ addBytes(jsonStringUtf8Length(primitive));
190
+ break;
191
+ case "number":
192
+ addBytes(Number.isFinite(primitive) ? Object.is(primitive, -0) ? 1 : String(primitive).length : 4);
193
+ break;
194
+ case "boolean":
195
+ addBytes(primitive ? 4 : 5);
196
+ break;
197
+ }
198
+ };
199
+ try {
200
+ JSON.stringify(value, function(key, current) {
201
+ const parent = isObject(this) ? this : undefined;
202
+ let parentFrameIndex = -1;
203
+ if (parent) {
204
+ for (let index = stack.length - 1;index >= 0; index -= 1) {
205
+ if (stack[index]?.value === parent) {
206
+ parentFrameIndex = index;
207
+ break;
208
+ }
209
+ }
210
+ }
211
+ const isRoot = parentFrameIndex === -1;
212
+ if (isRoot) {
213
+ stack.length = 0;
214
+ } else {
215
+ stack.length = parentFrameIndex + 1;
216
+ }
217
+ const parentFrame = isRoot ? undefined : stack[parentFrameIndex];
218
+ const parentIsArray = Array.isArray(parent);
219
+ const unsupported = current === undefined || typeof current === "function" || typeof current === "symbol";
220
+ if (!isRoot) {
221
+ if (!parentIsArray && unsupported)
222
+ return current;
223
+ if (!parentFrame)
224
+ return fail();
225
+ if (parentFrame.serializedChildren > 0)
226
+ addBytes(1);
227
+ parentFrame.serializedChildren += 1;
228
+ if (!parentIsArray)
229
+ addBytes(jsonStringUtf8Length(key) + 1);
230
+ } else if (unsupported) {
231
+ return current;
232
+ }
233
+ if (parentIsArray && unsupported) {
234
+ addBytes(4);
235
+ return current;
236
+ }
237
+ if (isObject(current)) {
238
+ const special = inspectJsonSpecialObject(current);
239
+ switch (special.kind) {
240
+ case "primitive":
241
+ addPrimitiveBytes(special.value);
242
+ return special.value;
243
+ case "bigint":
244
+ throw new TypeError("BigInt is not JSON serializable");
245
+ case "raw":
246
+ addBytes(rawJsonUtf8Length(special.value));
247
+ return current;
248
+ case "ordinary":
249
+ break;
250
+ }
251
+ }
252
+ switch (typeof current) {
253
+ case "string":
254
+ addPrimitiveBytes(current);
255
+ break;
256
+ case "number":
257
+ addPrimitiveBytes(current);
258
+ break;
259
+ case "boolean":
260
+ addPrimitiveBytes(current);
261
+ break;
262
+ case "bigint":
263
+ throw new TypeError("BigInt is not JSON serializable");
264
+ case "object":
265
+ if (current === null) {
266
+ addBytes(4);
267
+ break;
268
+ }
269
+ if (stack.some((frame) => frame.value === current)) {
270
+ throw new TypeError("Cyclic object value");
271
+ }
272
+ if (stack.length + 1 > MAX_OUTPUT_JSON_DEPTH)
273
+ fail();
274
+ addBytes(2);
275
+ stack.push({ value: current, serializedChildren: 0 });
276
+ break;
277
+ }
278
+ return current;
279
+ });
280
+ } catch (error) {
281
+ if (error instanceof ObjectReadLimitExceededError)
282
+ throw error;
283
+ if (error instanceof RangeError || error instanceof TypeError)
284
+ fail();
285
+ throw error;
286
+ }
287
+ }
288
+ var jsonWithRawJson = JSON;
289
+ var isRawJson = jsonWithRawJson.isRawJSON?.bind(jsonWithRawJson);
290
+ var booleanValueOf = bindValueOf(Boolean.prototype.valueOf);
291
+ var numberValueOf = bindValueOf(Number.prototype.valueOf);
292
+ var stringValueOf = bindValueOf(String.prototype.valueOf);
293
+ var bigintValueOf = bindValueOf(BigInt.prototype.valueOf);
294
+ var toStringValue = String;
295
+ function inspectJsonSpecialObject(value) {
296
+ if (isRawJson?.(value)) {
297
+ const raw = value.rawJSON;
298
+ if (typeof raw !== "string")
299
+ return { kind: "ordinary" };
300
+ return { kind: "raw", value: raw };
301
+ }
302
+ const boolean = unbox(value, booleanValueOf);
303
+ if (boolean.matched)
304
+ return { kind: "primitive", value: boolean.value };
305
+ const number = unbox(value, numberValueOf);
306
+ if (number.matched)
307
+ return { kind: "primitive", value: +value };
308
+ const string = unbox(value, stringValueOf);
309
+ if (string.matched)
310
+ return { kind: "primitive", value: toStringValue(value) };
311
+ if (unbox(value, bigintValueOf).matched)
312
+ return { kind: "bigint" };
313
+ return { kind: "ordinary" };
314
+ }
315
+ function bindValueOf(unboxer) {
316
+ return Function.prototype.call.bind(unboxer);
317
+ }
318
+ function unbox(value, unboxer) {
319
+ try {
320
+ return { matched: true, value: unboxer(value) };
321
+ } catch {
322
+ return { matched: false };
323
+ }
324
+ }
325
+ function rawJsonUtf8Length(value) {
326
+ let bytes = 0;
327
+ for (let index = 0;index < value.length; index += 1) {
328
+ const code = value.charCodeAt(index);
329
+ if (code <= 127) {
330
+ bytes += 1;
331
+ } else if (code <= 2047) {
332
+ bytes += 2;
333
+ } else if (code >= 55296 && code <= 56319) {
334
+ const next = value.charCodeAt(index + 1);
335
+ if (next >= 56320 && next <= 57343) {
336
+ bytes += 4;
337
+ index += 1;
338
+ } else {
339
+ bytes += 3;
340
+ }
341
+ } else {
342
+ bytes += 3;
343
+ }
344
+ }
345
+ return bytes;
346
+ }
347
+ function jsonStringUtf8Length(value) {
348
+ let bytes = 2;
349
+ for (let index = 0;index < value.length; index += 1) {
350
+ const code = value.charCodeAt(index);
351
+ if (code === 34 || code === 92) {
352
+ bytes += 2;
353
+ } else if (code <= 31) {
354
+ bytes += code === 8 || code === 9 || code === 10 || code === 12 || code === 13 ? 2 : 6;
355
+ } else if (code <= 127) {
356
+ bytes += 1;
357
+ } else if (code <= 2047) {
358
+ bytes += 2;
359
+ } else if (code >= 55296 && code <= 56319) {
360
+ const next = value.charCodeAt(index + 1);
361
+ if (next >= 56320 && next <= 57343) {
362
+ bytes += 4;
363
+ index += 1;
364
+ } else {
365
+ bytes += 6;
366
+ }
367
+ } else if (code >= 56320 && code <= 57343) {
368
+ bytes += 6;
369
+ } else {
370
+ bytes += 3;
371
+ }
372
+ }
373
+ return bytes;
374
+ }
375
+ function isObject(value) {
376
+ return typeof value === "object" && value !== null;
377
+ }
378
+ function positiveSafeInteger(value, name) {
379
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value <= 0) {
380
+ throw new Error(`[Sixb] ${name} must be a positive safe integer.`);
381
+ }
382
+ return value;
383
+ }
384
+
127
385
  // src/execution/types.ts
128
386
  class RuntimeAuthorizationCapability {
129
387
  #runtimeAuthorization = true;
@@ -146,35 +404,32 @@ function isRuntimeAuthorizationCapability(value) {
146
404
 
147
405
  // src/execution/authorization.ts
148
406
  var registeredAuthorizations = new WeakMap;
407
+ var MAX_DELEGATED_ACTION_APPLY_TARGETS = 4096;
408
+ var MAX_DELEGATED_ACTION_IDENTIFIER_CHARACTERS = 1e6;
149
409
  function createPrincipalRuntimeAuthorization(input) {
410
+ if (input.execution.executor.type !== "request") {
411
+ throw new Error("[Sixb] Principal runtime authorization requires a request execution.");
412
+ }
150
413
  return createRegisteredPrincipalAuthorization(input);
151
414
  }
152
415
  function createAgentRuntimeAuthorization(input) {
153
- assertNonEmpty(input.executionId, "Execution id");
154
- if (input.actorId !== undefined)
155
- assertNonEmpty(input.actorId, "Agent actor id");
156
- assertNonEmpty(input.runId, "Agent run id");
157
- const executionBinding = {
158
- type: "agent",
159
- executionId: input.executionId,
160
- ...input.actorId === undefined ? {} : { actorId: input.actorId },
161
- runId: input.runId
162
- };
416
+ if (input.execution.executor.type !== "agent") {
417
+ throw new Error("[Sixb] Agent runtime authorization requires an Agent execution.");
418
+ }
163
419
  if (input.authority.type === "principal") {
164
420
  return createRegisteredPrincipalAuthorization({
165
- projectId: input.projectId,
421
+ execution: input.execution,
166
422
  context: input.authority.context,
167
423
  ...input.authority.credential === undefined ? {} : { credential: input.authority.credential }
168
- }, executionBinding);
424
+ });
169
425
  }
170
- return register({
426
+ return register(input.execution, {
171
427
  type: "unrestricted",
172
- projectId: input.projectId,
173
- ref: Object.freeze({ type: "disabled" }),
174
- executionBinding: Object.freeze(executionBinding)
428
+ projectId: input.execution.projectId,
429
+ ref: Object.freeze({ type: "disabled" })
175
430
  });
176
431
  }
177
- function createRegisteredPrincipalAuthorization(input, executionBinding) {
432
+ function createRegisteredPrincipalAuthorization(input) {
178
433
  const context = snapshotAuthorizationContext(input.context);
179
434
  const credential = input.credential ? snapshotCredential(input.credential) : undefined;
180
435
  assertCredentialMatchesContext(context, credential);
@@ -183,22 +438,46 @@ function createRegisteredPrincipalAuthorization(input, executionBinding) {
183
438
  principal: context.principal,
184
439
  ...credential === undefined ? {} : { credential }
185
440
  });
186
- return register({
441
+ return register(input.execution, {
187
442
  type: "principal",
188
- projectId: input.projectId,
443
+ projectId: input.execution.projectId,
189
444
  context,
190
- ref,
191
- ...executionBinding === undefined ? {} : { executionBinding: Object.freeze({ ...executionBinding }) }
445
+ ref
446
+ });
447
+ }
448
+ function createDisabledRuntimeAuthorization(execution) {
449
+ return register(execution, {
450
+ type: "unrestricted",
451
+ projectId: execution.projectId,
452
+ ref: Object.freeze({ type: "disabled" })
192
453
  });
193
454
  }
194
- function createDisabledRuntimeAuthorization(projectId) {
195
- return register({ type: "unrestricted", projectId, ref: Object.freeze({ type: "disabled" }) });
455
+ function createDelegatedRuntimeAuthorization(input) {
456
+ const execution = input.execution;
457
+ const objectReadInput = input.objectRead;
458
+ const actionApplyInput = input.actionApply;
459
+ const delegationInput = input.delegation;
460
+ const delegation = delegationInput === undefined ? undefined : snapshotSharedDelegation(delegationInput);
461
+ if (execution.executor.type !== "request" || execution.requestedBy !== undefined) {
462
+ throw new Error("[Sixb] Delegated runtime authorization requires a request execution without a principal.");
463
+ }
464
+ const objectRead = Object.freeze({
465
+ scope: compileSelectedObjectReadScope(objectReadInput.selection),
466
+ limits: snapshotObjectReadExecutionLimits(objectReadInput.limits)
467
+ });
468
+ return register(execution, {
469
+ type: "delegated",
470
+ projectId: execution.projectId,
471
+ objectRead,
472
+ actionApply: snapshotDelegatedActionApply(actionApplyInput ?? []),
473
+ ...delegation === undefined ? {} : { delegation }
474
+ });
196
475
  }
197
476
  function createTrustedPrimitiveRuntimeAuthorization(input) {
198
477
  const primitive = snapshotTrustedPrimitive(input.primitive);
199
- return register({
478
+ return register(input.execution, {
200
479
  type: "unrestricted",
201
- projectId: input.projectId,
480
+ projectId: input.execution.projectId,
202
481
  ref: Object.freeze({ type: "trustedPrimitive", primitive })
203
482
  });
204
483
  }
@@ -206,15 +485,38 @@ function resolveRuntimeAuthorization(authorization) {
206
485
  if (!isRuntimeAuthorizationCapability(authorization)) {
207
486
  return { type: "denied" };
208
487
  }
209
- return registeredAuthorizations.get(authorization) ?? { type: "denied" };
488
+ return registeredAuthorizations.get(authorization)?.resolved ?? { type: "denied" };
489
+ }
490
+ function resolveRuntimeAuthorizationForProject(input) {
491
+ const resolved = resolveRuntimeAuthorization(input.runtimeAuthorization);
492
+ if (resolved.type === "denied" || typeof input.projectId !== "string" || resolved.projectId !== input.projectId) {
493
+ return { type: "denied" };
494
+ }
495
+ return resolved;
210
496
  }
211
497
  function getAuthorizationRef(authorization) {
212
498
  const resolved = resolveRuntimeAuthorization(authorization);
213
499
  if (resolved.type === "denied") {
214
500
  throw new Error("[Sixb] Runtime authorization is not a registered Core capability.");
215
501
  }
502
+ if (resolved.type === "delegated") {
503
+ if (resolved.delegation) {
504
+ return { type: "delegated", delegation: { ...resolved.delegation } };
505
+ }
506
+ throw new Error("[Sixb] Delegated runtime authorization cannot cross a durable execution boundary.");
507
+ }
216
508
  return cloneAuthorizationRef(resolved.ref);
217
509
  }
510
+ function snapshotSharedDelegation(input) {
511
+ const kind = input.kind;
512
+ const grantId = input.grantId;
513
+ const sessionId = input.sessionId;
514
+ if (kind !== "share")
515
+ throw new Error("[Sixb] Unknown delegated authority provenance.");
516
+ assertNonEmpty(grantId, "Share grant id");
517
+ assertNonEmpty(sessionId, "Share session id");
518
+ return Object.freeze({ kind, grantId, sessionId });
519
+ }
218
520
  function assertExecutionScopeProject(projectId, scope) {
219
521
  assertNonEmpty(projectId, "Project id");
220
522
  if (scope.execution.projectId !== projectId) {
@@ -240,46 +542,71 @@ function assertExecutionScopeProject(projectId, scope) {
240
542
  });
241
543
  }
242
544
  }
545
+ function captureExecutionScope(scope) {
546
+ const execution = scope.execution;
547
+ const authorization = scope.authorization;
548
+ return Object.freeze({ execution, authorization });
549
+ }
243
550
  function resolveExecutionScopeAuthorization(projectId, scope) {
244
- assertExecutionScopeProject(projectId, scope);
245
- const resolved = resolveRuntimeAuthorization(scope.authorization);
551
+ const capturedScope = captureExecutionScope(scope);
552
+ assertExecutionScopeProject(projectId, capturedScope);
553
+ const resolved = resolveRuntimeAuthorization(capturedScope.authorization);
246
554
  if (resolved.type === "denied") {
247
- throw createSixbError("internal.unexpected", "[Sixb] Execution scope carries unregistered runtime authorization.", { details: { executionId: scope.execution.id, projectId } });
555
+ throw createSixbError("internal.unexpected", "[Sixb] Execution scope carries unregistered runtime authorization.", { details: { executionId: capturedScope.execution.id, projectId } });
556
+ }
557
+ const registration = registeredAuthorizations.get(capturedScope.authorization);
558
+ if (!registration || !executionMatchesBinding(registration.execution, capturedScope.execution)) {
559
+ throw invalidExecutionAuthority(capturedScope.execution.id, "authority is bound to different execution provenance");
248
560
  }
249
- const { execution } = scope;
561
+ assertResolvedAuthorizationMatchesExecution(resolved, capturedScope.execution);
562
+ return resolved;
563
+ }
564
+ function assertResolvedAuthorizationMatchesExecution(resolved, execution) {
250
565
  switch (execution.executor.type) {
251
566
  case "request":
252
567
  if (execution.source.type !== "http" || execution.source.requestId !== execution.executor.requestId) {
253
568
  throw invalidExecutionAuthority(execution.id, "request source does not match its executor");
254
569
  }
255
- if (resolved.ref.type === "principal") {
256
- if (resolved.type !== "principal" || resolved.executionBinding !== undefined || !principalsEqual(execution.requestedBy, resolved.ref.principal)) {
570
+ if (resolved.type === "principal") {
571
+ if (!principalsEqual(execution.requestedBy, resolved.ref.principal)) {
257
572
  throw invalidExecutionAuthority(execution.id, "request authority does not match its requested-by principal");
258
573
  }
259
- return resolved;
574
+ return;
575
+ }
576
+ if (resolved.type === "unrestricted" && resolved.ref.type === "disabled" && execution.requestedBy === undefined) {
577
+ return;
260
578
  }
261
- if (resolved.ref.type === "disabled" && execution.requestedBy === undefined)
262
- return resolved;
263
- throw invalidExecutionAuthority(execution.id, "request execution requires principal or explicitly disabled authority");
579
+ if (resolved.type === "delegated" && execution.requestedBy === undefined)
580
+ return;
581
+ throw invalidExecutionAuthority(execution.id, "request execution requires principal, delegated, or explicitly disabled authority");
264
582
  case "primitive":
265
- if (resolved.ref.type !== "trustedPrimitive" || resolved.ref.primitive.kind !== execution.executor.kind || resolved.ref.primitive.id !== execution.executor.id || resolved.ref.primitive.runId !== execution.executor.runId) {
583
+ if (resolved.type !== "unrestricted" || resolved.ref.type !== "trustedPrimitive" || resolved.ref.primitive.kind !== execution.executor.kind || resolved.ref.primitive.id !== execution.executor.id || resolved.ref.primitive.runId !== execution.executor.runId) {
266
584
  throw invalidExecutionAuthority(execution.id, "trusted primitive authority does not match its executor");
267
585
  }
268
- return resolved;
586
+ return;
269
587
  case "agent":
270
- if (resolved.executionBinding?.type !== "agent" || resolved.executionBinding.executionId !== execution.id || resolved.executionBinding.actorId !== execution.executor.actorId || resolved.executionBinding.runId !== execution.executor.runId) {
271
- throw invalidExecutionAuthority(execution.id, "agent authority does not match its execution binding");
588
+ if (execution.source.type !== "execution") {
589
+ throw invalidExecutionAuthority(execution.id, "agent execution requires an execution source");
590
+ }
591
+ if (resolved.type === "principal" && resolved.ref.type === "principal") {
592
+ if (resolved.ref.principal.type === "serviceAccount") {
593
+ const actorId = execution.executor.actorId;
594
+ if (actorId === undefined || resolved.ref.principal.id !== agentServiceAccountId(actorId) || resolved.ref.credential !== undefined) {
595
+ throw invalidExecutionAuthority(execution.id, "agent authority must reference its managed service account");
596
+ }
597
+ } else if (resolved.ref.credential === undefined) {
598
+ throw invalidExecutionAuthority(execution.id, "inherited user agent authority requires a credential");
599
+ }
600
+ return;
272
601
  }
273
- if (resolved.type === "principal" && resolved.ref.type === "principal")
274
- return resolved;
275
602
  if (resolved.type === "unrestricted" && resolved.ref.type === "disabled")
276
- return resolved;
603
+ return;
277
604
  throw invalidExecutionAuthority(execution.id, "agent authority must be principal or explicitly disabled");
278
605
  case "kernel":
279
- if (resolved.ref.type !== "kernel" || execution.requestedBy !== undefined || resolved.ref.operation.type !== execution.executor.operation.type || resolved.ref.operation.recoveryId !== execution.executor.operation.recoveryId) {
606
+ if (resolved.type !== "unrestricted" || resolved.ref.type !== "kernel" || execution.requestedBy !== undefined || resolved.ref.operation.type !== execution.executor.operation.type || resolved.ref.operation.recoveryId !== execution.executor.operation.recoveryId) {
280
607
  throw invalidExecutionAuthority(execution.id, "kernel authority does not match its executor");
281
608
  }
282
- return resolved;
609
+ return;
283
610
  }
284
611
  }
285
612
  function principalsEqual(left, right) {
@@ -288,20 +615,99 @@ function principalsEqual(left, right) {
288
615
  function invalidExecutionAuthority(executionId, reason) {
289
616
  return createSixbError("internal.unexpected", `[Sixb] Execution '${executionId}' is incompatible with its authority: ${reason}.`, { details: { executionId, reason } });
290
617
  }
291
- function register(input) {
618
+ function register(execution, input) {
292
619
  assertNonEmpty(input.projectId, "Authorization project id");
620
+ const executionBinding = snapshotExecutionContext(execution);
621
+ if (input.projectId !== executionBinding.projectId) {
622
+ throw new Error(`[Sixb] Runtime authorization belongs to project '${input.projectId}', not execution project '${executionBinding.projectId}'.`);
623
+ }
624
+ assertResolvedAuthorizationMatchesExecution(input, executionBinding);
293
625
  const authorization = createRuntimeAuthorizationCapability();
294
- registeredAuthorizations.set(authorization, Object.freeze(input));
626
+ registeredAuthorizations.set(authorization, Object.freeze({ resolved: Object.freeze(input), execution: executionBinding }));
295
627
  return authorization;
296
628
  }
629
+ function executionMatchesBinding(binding, execution) {
630
+ try {
631
+ return isDeepStrictEqual(binding, snapshotExecutionContext(execution));
632
+ } catch {
633
+ return false;
634
+ }
635
+ }
636
+ function snapshotExecutionContext(execution) {
637
+ assertNonEmpty(execution.id, "Execution id");
638
+ assertNonEmpty(execution.projectId, "Execution project id");
639
+ assertNonEmpty(execution.correlationId, "Execution correlation id");
640
+ return Object.freeze({
641
+ id: execution.id,
642
+ projectId: execution.projectId,
643
+ ...execution.requestedBy === undefined ? {} : { requestedBy: snapshotAuthorizablePrincipal(execution.requestedBy) },
644
+ executor: snapshotExecutionExecutor(execution.executor),
645
+ source: snapshotExecutionSource(execution.source),
646
+ correlationId: execution.correlationId
647
+ });
648
+ }
649
+ function snapshotExecutionExecutor(executor) {
650
+ switch (executor.type) {
651
+ case "request":
652
+ assertNonEmpty(executor.requestId, "Execution request id");
653
+ return Object.freeze({ type: "request", requestId: executor.requestId });
654
+ case "primitive": {
655
+ const primitive = snapshotTrustedPrimitive(executor);
656
+ return Object.freeze({ type: "primitive", ...primitive });
657
+ }
658
+ case "agent":
659
+ if (executor.actorId !== undefined)
660
+ assertNonEmpty(executor.actorId, "Execution Agent actor id");
661
+ assertNonEmpty(executor.runId, "Execution Agent run id");
662
+ return Object.freeze({
663
+ type: "agent",
664
+ ...executor.actorId === undefined ? {} : { actorId: executor.actorId },
665
+ runId: executor.runId
666
+ });
667
+ case "kernel":
668
+ return Object.freeze({
669
+ type: "kernel",
670
+ operation: snapshotKernelOperation(executor.operation)
671
+ });
672
+ }
673
+ throw new Error(`[Sixb] Unknown execution executor type '${String(executor.type)}'.`);
674
+ }
675
+ function snapshotExecutionSource(source) {
676
+ switch (source.type) {
677
+ case "http":
678
+ assertNonEmpty(source.requestId, "Execution source request id");
679
+ return Object.freeze({ type: "http", requestId: source.requestId });
680
+ case "webhook":
681
+ assertNonEmpty(source.deliveryId, "Execution source delivery id");
682
+ return Object.freeze({ type: "webhook", deliveryId: source.deliveryId });
683
+ case "schedule":
684
+ case "event":
685
+ assertNonEmpty(source.eventId, "Execution source event id");
686
+ return Object.freeze({ type: source.type, eventId: source.eventId });
687
+ case "datasetVersion":
688
+ assertNonEmpty(source.datasetId, "Execution source dataset id");
689
+ assertNonEmpty(source.versionId, "Execution source dataset version id");
690
+ return Object.freeze({
691
+ type: "datasetVersion",
692
+ datasetId: source.datasetId,
693
+ versionId: source.versionId
694
+ });
695
+ case "execution":
696
+ assertNonEmpty(source.executionId, "Execution source execution id");
697
+ return Object.freeze({ type: "execution", executionId: source.executionId });
698
+ }
699
+ throw new Error(`[Sixb] Unknown execution source type '${String(source.type)}'.`);
700
+ }
297
701
  function snapshotAuthorizationContext(context) {
298
702
  const principal = snapshotAuthorizablePrincipal(context.principal);
299
- const grants = emptyGrantSets();
300
- grants["run:agent"] = context.grants["run:agent"];
703
+ const grants = {};
301
704
  for (const kind of TARGETED_GRANT_KIND_KEYS) {
302
- grants[kind] = new Set(context.grants[kind]);
705
+ grants[kind] = new ImmutableGrantSet(context.grants[kind]);
303
706
  }
304
- const frozenGrants = Object.freeze(grants);
707
+ const frozenGrants = Object.freeze({
708
+ ...grants,
709
+ "run:agent": context.grants["run:agent"]
710
+ });
305
711
  return Object.freeze({
306
712
  principal,
307
713
  ...context.sessionId === undefined ? {} : { sessionId: context.sessionId },
@@ -310,6 +716,51 @@ function snapshotAuthorizationContext(context) {
310
716
  grants: frozenGrants
311
717
  });
312
718
  }
719
+
720
+ class ImmutableGrantSet {
721
+ #values;
722
+ [Symbol.toStringTag] = "Set";
723
+ constructor(values) {
724
+ this.#values = new Set(values);
725
+ Object.freeze(this);
726
+ }
727
+ get size() {
728
+ return this.#values.size;
729
+ }
730
+ has(value) {
731
+ return this.#values.has(value);
732
+ }
733
+ entries() {
734
+ return this.#values.entries();
735
+ }
736
+ keys() {
737
+ return this.#values.keys();
738
+ }
739
+ values() {
740
+ return this.#values.values();
741
+ }
742
+ [Symbol.iterator]() {
743
+ return this.#values[Symbol.iterator]();
744
+ }
745
+ forEach(callback, thisArg) {
746
+ for (const value of this.#values) {
747
+ callback.call(thisArg, value, value, this);
748
+ }
749
+ }
750
+ add(_value) {
751
+ throw immutableGrantSetMutation();
752
+ }
753
+ delete(_value) {
754
+ throw immutableGrantSetMutation();
755
+ }
756
+ clear() {
757
+ throw immutableGrantSetMutation();
758
+ }
759
+ }
760
+ Object.freeze(ImmutableGrantSet.prototype);
761
+ function immutableGrantSetMutation() {
762
+ return new Error("[Sixb] Runtime authorization grants are immutable.");
763
+ }
313
764
  function snapshotAuthorizablePrincipal(principal) {
314
765
  if (principal.type !== "user" && principal.type !== "serviceAccount") {
315
766
  throw new Error(`[Sixb] Principal type '${principal.type}' cannot hold runtime authorization.`);
@@ -344,6 +795,56 @@ function snapshotTrustedPrimitive(primitive) {
344
795
  assertNonEmpty(primitive.runId, "Trusted primitive run id");
345
796
  return Object.freeze({ kind: primitive.kind, id: primitive.id, runId: primitive.runId });
346
797
  }
798
+ function snapshotKernelOperation(operation) {
799
+ if (operation.type !== "ontology.recover") {
800
+ throw new Error(`[Sixb] Unknown kernel operation '${operation.type}'.`);
801
+ }
802
+ assertNonEmpty(operation.recoveryId, "Kernel recovery id");
803
+ return Object.freeze({ type: operation.type, recoveryId: operation.recoveryId });
804
+ }
805
+ function snapshotDelegatedActionApply(input) {
806
+ if (!Array.isArray(input)) {
807
+ throw new Error("[Sixb] Delegated Action targets must be an array.");
808
+ }
809
+ const targetCount = input.length;
810
+ if (targetCount > MAX_DELEGATED_ACTION_APPLY_TARGETS) {
811
+ throw new Error(`[Sixb] Delegated authority exceeds the maximum of ${MAX_DELEGATED_ACTION_APPLY_TARGETS} Action targets.`);
812
+ }
813
+ let identifierCharacters = 0;
814
+ const targets = [];
815
+ for (let index = 0;index < targetCount; index += 1) {
816
+ const authoredTarget = input[index];
817
+ if (!isRecord(authoredTarget)) {
818
+ throw new Error(`[Sixb] Delegated Action target ${index} must be an object.`);
819
+ }
820
+ const authoredActionId = authoredTarget.actionId;
821
+ const authoredSubject = authoredTarget.subject;
822
+ if (!isRecord(authoredSubject)) {
823
+ throw new Error(`[Sixb] Delegated Action target ${index} subject must be an ObjectRef.`);
824
+ }
825
+ const actionId = delegatedActionIdentifier(authoredActionId, `Delegated Action target ${index} action id`);
826
+ const objectTypeId = delegatedActionIdentifier(authoredSubject.objectTypeId, `Delegated Action target ${index} subject object type id`);
827
+ const primaryId = delegatedActionIdentifier(authoredSubject.primaryId, `Delegated Action target ${index} subject primary id`);
828
+ identifierCharacters += actionId.length + objectTypeId.length + primaryId.length;
829
+ if (identifierCharacters > MAX_DELEGATED_ACTION_IDENTIFIER_CHARACTERS) {
830
+ throw new Error(`[Sixb] Delegated authority exceeds the maximum of ${MAX_DELEGATED_ACTION_IDENTIFIER_CHARACTERS} Action identifier characters.`);
831
+ }
832
+ targets.push(Object.freeze({
833
+ actionId,
834
+ subject: Object.freeze({ objectTypeId, primaryId })
835
+ }));
836
+ }
837
+ return Object.freeze(targets);
838
+ }
839
+ function delegatedActionIdentifier(value, label) {
840
+ if (typeof value !== "string" || !value.trim()) {
841
+ throw new Error(`[Sixb] ${label} must not be empty.`);
842
+ }
843
+ return value;
844
+ }
845
+ function isRecord(value) {
846
+ return typeof value === "object" && value !== null && !Array.isArray(value);
847
+ }
347
848
  function cloneAuthorizationRef(ref) {
348
849
  switch (ref.type) {
349
850
  case "principal":
@@ -354,6 +855,8 @@ function cloneAuthorizationRef(ref) {
354
855
  };
355
856
  case "trustedPrimitive":
356
857
  return { type: "trustedPrimitive", primitive: { ...ref.primitive } };
858
+ case "delegated":
859
+ return { type: "delegated", delegation: { ...ref.delegation } };
357
860
  case "kernel":
358
861
  return { type: "kernel", operation: { ...ref.operation } };
359
862
  case "disabled":
@@ -394,6 +897,8 @@ function atomsFor(request) {
394
897
  return [{ kind: "append:telemetry", id: request.objectTypeId }];
395
898
  case "action.apply":
396
899
  return [{ kind: "apply:action", id: request.actionId }];
900
+ case "share.manage":
901
+ return [{ kind: "share:share", id: request.shareId }];
397
902
  case "workflow.run":
398
903
  return [{ kind: "run:workflow", id: request.workflowId }];
399
904
  case "sync.run":
@@ -438,6 +943,9 @@ function isAllowed(authorization, request) {
438
943
  }
439
944
  function assertAuthorized(runtime, request) {
440
945
  const resolved = assertRuntimeAuthorizationBound(runtime);
946
+ if (resolved.type === "delegated") {
947
+ throw new AuthorizationError(`delegated:${request.kind}`, `[Sixb] Operation '${request.kind}' is not covered by delegated authorization.`);
948
+ }
441
949
  const authorization = resolved.type === "principal" ? resolved.context : undefined;
442
950
  const decision = evaluate(authorization, request);
443
951
  if (decision.allowed) {
@@ -445,8 +953,14 @@ function assertAuthorized(runtime, request) {
445
953
  }
446
954
  throw new AuthorizationError(decision.missing[0] ?? request.kind, deniedMessage(authorization, request));
447
955
  }
956
+ function isRuntimeAllowed(runtime, request) {
957
+ const authority = resolveRuntimeAuthorizationForProject(runtime);
958
+ if (authority.type === "denied" || authority.type === "delegated")
959
+ return false;
960
+ return authority.type === "unrestricted" || isAllowed(authority.context, request);
961
+ }
448
962
  function assertRuntimeAuthorizationBound(runtime) {
449
- const resolved = resolveRuntimeAuthorization(runtime.runtimeAuthorization);
963
+ const resolved = resolveRuntimeAuthorizationForProject(runtime);
450
964
  if (resolved.type === "denied") {
451
965
  throw new AuthorizationError("runtime:unbound", "[Sixb] Protected operations require a registered execution scope.");
452
966
  }
@@ -470,13 +984,14 @@ function assertPrivileged(runtime, operation) {
470
984
  throw new AuthorizationError(`privileged:${operation}`, `[Sixb] Operation '${operation}' is not covered by scoped authorization grants.`);
471
985
  }
472
986
  function assertProviderAccess(runtime, execution, operation) {
473
- const resolved = assertRuntimeAuthorizationBound(runtime);
987
+ const resolved = resolveExecutionScopeAuthorization(runtime.projectId, {
988
+ execution,
989
+ authorization: runtime.runtimeAuthorization
990
+ });
474
991
  if (resolved.type === "unrestricted") {
475
992
  return;
476
993
  }
477
- const binding = resolved.executionBinding;
478
- const executor = execution.executor;
479
- if (binding?.type === "agent" && executor.type === "agent" && binding.executionId === execution.id && binding.actorId === executor.actorId && binding.runId === executor.runId) {
994
+ if (execution.executor.type === "agent") {
480
995
  return;
481
996
  }
482
997
  throw new AuthorizationError(`privileged:${operation}`, `[Sixb] Operation '${operation}' is not covered by scoped authorization grants.`);
@@ -496,6 +1011,8 @@ function deniedMessage(authorization, request) {
496
1011
  return `[Sixb] Principal '${principalId}' is not allowed to append telemetry for object type '${request.objectTypeId}'.`;
497
1012
  case "action.apply":
498
1013
  return `[Sixb] Principal '${principalId}' is not allowed to apply action '${request.actionId}'.`;
1014
+ case "share.manage":
1015
+ return `[Sixb] Principal '${principalId}' is not allowed to manage Share '${request.shareId}'.`;
499
1016
  case "workflow.run":
500
1017
  return `[Sixb] Principal '${principalId}' is not allowed to run workflow '${request.workflowId}'.`;
501
1018
  case "sync.run":
@@ -1026,7 +1543,7 @@ function assertProjectionDataset(dataset) {
1026
1543
  }
1027
1544
  assertNonEmpty2(dataset.id, "dataset id");
1028
1545
  }
1029
- function isRecord(value) {
1546
+ function isRecord2(value) {
1030
1547
  return typeof value === "object" && value !== null && !Array.isArray(value);
1031
1548
  }
1032
1549
  function lowerForeignKeyMapping(mapping) {
@@ -1039,7 +1556,7 @@ function lowerForeignKeyMapping(mapping) {
1039
1556
  return lowered;
1040
1557
  }
1041
1558
  function isForeignKeyDescriptor(value) {
1042
- return isRecord(value) && typeof value.linkId === "string";
1559
+ return isRecord2(value) && typeof value.linkId === "string";
1043
1560
  }
1044
1561
  function defineProjection(id, target) {
1045
1562
  if ("link" in target)
@@ -1192,7 +1709,7 @@ function lowerTelemetryPropertiesPointMapping(objectType, mapping) {
1192
1709
  if (mapping.properties === undefined) {
1193
1710
  throw new ProjectionValidationError("Telemetry projection point mapping requires properties.");
1194
1711
  }
1195
- if (!isRecord(mapping.properties)) {
1712
+ if (!isRecord2(mapping.properties)) {
1196
1713
  throw new ProjectionValidationError("Telemetry projection point mapping properties must be an object.");
1197
1714
  }
1198
1715
  assertNonEmpty2(mapping.objectId, "objectId field");
@@ -1220,7 +1737,7 @@ function lowerTelemetryPropertyMapping(propertyId, input) {
1220
1737
  assertNonEmpty2(input, `property '${propertyId}' value field`);
1221
1738
  return { valueField: input };
1222
1739
  }
1223
- if (!isRecord(input)) {
1740
+ if (!isRecord2(input)) {
1224
1741
  throw new ProjectionValidationError(`Telemetry projection property '${propertyId}' must map a value column or value/unit columns.`);
1225
1742
  }
1226
1743
  const allowedKeys = new Set(["value", "unit"]);
@@ -1289,33 +1806,33 @@ function buildLinkProjection(id, linkToken) {
1289
1806
  };
1290
1807
  }
1291
1808
  function isObjectProjectionDefinition(value) {
1292
- if (!isRecord(value))
1809
+ if (!isRecord2(value))
1293
1810
  return false;
1294
- return value._tag === "ObjectProjectionDefinition" && typeof value.id === "string" && typeof value.objectTypeId === "string" && typeof value.datasetId === "string" && isRecord(value.properties) && isRecord(value.links) && isSourceEditConflictResolution(value.conflictResolution);
1811
+ return value._tag === "ObjectProjectionDefinition" && typeof value.id === "string" && typeof value.objectTypeId === "string" && typeof value.datasetId === "string" && isRecord2(value.properties) && isRecord2(value.links) && isSourceEditConflictResolution(value.conflictResolution);
1295
1812
  }
1296
1813
  function isSourceEditConflictResolution(value) {
1297
1814
  if (value === undefined)
1298
1815
  return true;
1299
- if (!isRecord(value) || typeof value.strategy !== "string")
1816
+ if (!isRecord2(value) || typeof value.strategy !== "string")
1300
1817
  return false;
1301
1818
  if (value.strategy === "editsWin")
1302
1819
  return value.sourceTimestamp === undefined;
1303
1820
  return value.strategy === "mostRecent" && typeof value.sourceTimestamp === "string";
1304
1821
  }
1305
1822
  function isLinkProjectionDefinition(value) {
1306
- if (!isRecord(value))
1823
+ if (!isRecord2(value))
1307
1824
  return false;
1308
1825
  return value._tag === "LinkProjectionDefinition" && typeof value.id === "string" && typeof value.linkId === "string" && typeof value.sourceObjectTypeId === "string" && typeof value.targetObjectTypeId === "string" && typeof value.datasetId === "string" && typeof value.sourceField === "string" && typeof value.targetField === "string";
1309
1826
  }
1310
1827
  function isTelemetryProjectionDefinition(value) {
1311
- if (!isRecord(value))
1828
+ if (!isRecord2(value))
1312
1829
  return false;
1313
1830
  return value._tag === "TelemetryProjectionDefinition" && typeof value.id === "string" && typeof value.objectTypeId === "string" && typeof value.datasetId === "string" && typeof value.objectIdField === "string" && typeof value.atField === "string" && isTelemetryProjectionProperties(value.properties);
1314
1831
  }
1315
1832
  function isTelemetryProjectionProperties(value) {
1316
- if (!isRecord(value) || Object.keys(value).length === 0)
1833
+ if (!isRecord2(value) || Object.keys(value).length === 0)
1317
1834
  return false;
1318
- return Object.values(value).every((mapping) => isRecord(mapping) && typeof mapping.valueField === "string" && (mapping.unitField === undefined || typeof mapping.unitField === "string"));
1835
+ return Object.values(value).every((mapping) => isRecord2(mapping) && typeof mapping.valueField === "string" && (mapping.unitField === undefined || typeof mapping.unitField === "string"));
1319
1836
  }
1320
1837
  function isProjectionDefinition(value) {
1321
1838
  return isObjectProjectionDefinition(value) || isLinkProjectionDefinition(value) || isTelemetryProjectionDefinition(value);
@@ -1365,6 +1882,6 @@ function canViewProjection(authorization, projection) {
1365
1882
  function emptyGrantIndex() {
1366
1883
  return emptyGrantSets();
1367
1884
  }
1368
- export { ProjectionValidationError, computeProjectionOwnership, validateProjectionOwnership, validateTelemetryProjectionFieldMapping, validateProjectionsAtStartup, defineProjection, fromForeignKey, isObjectProjectionDefinition, isLinkProjectionDefinition, isTelemetryProjectionDefinition, isProjectionDefinition, projectionTargetOf, GRANT_KINDS, grantKindOf, createPrincipalRuntimeAuthorization, createAgentRuntimeAuthorization, createDisabledRuntimeAuthorization, createTrustedPrimitiveRuntimeAuthorization, getAuthorizationRef, resolveExecutionScopeAuthorization, AuthorizationError, evaluate, isAllowed, assertAuthorized, assertRuntimeAuthorizationBound, assertCanEdit, assertCanAppendTelemetry, assertCanManageConnector, assertPrivileged, assertProviderAccess, isApplicationAccessControlled, canAccessApplication, canViewEvent, resolveRoleGrants, resolveAuthorizationContext, canViewActionRun, canViewWorkflowRun, canViewWorkflowIntervention, canViewPipelineRun, canViewProjectionRun, canViewProjection, emptyGrantIndex };
1885
+ export { ProjectionValidationError, computeProjectionOwnership, validateProjectionOwnership, validateTelemetryProjectionFieldMapping, validateProjectionsAtStartup, defineProjection, fromForeignKey, isObjectProjectionDefinition, isLinkProjectionDefinition, isTelemetryProjectionDefinition, isProjectionDefinition, projectionTargetOf, agentServiceAccountId, GRANT_KINDS, grantKindOf, MAX_OBJECT_READ_FACETS, ObjectReadLimitExceededError, snapshotObjectReadExecutionLimits, assertObjectReadFacetCount, assertObjectReadOutputWithinLimit, createPrincipalRuntimeAuthorization, createAgentRuntimeAuthorization, createDisabledRuntimeAuthorization, createDelegatedRuntimeAuthorization, createTrustedPrimitiveRuntimeAuthorization, resolveRuntimeAuthorizationForProject, getAuthorizationRef, captureExecutionScope, resolveExecutionScopeAuthorization, AuthorizationError, evaluate, isAllowed, assertAuthorized, isRuntimeAllowed, assertRuntimeAuthorizationBound, assertCanEdit, assertCanAppendTelemetry, assertCanManageConnector, assertPrivileged, assertProviderAccess, isApplicationAccessControlled, canAccessApplication, canViewEvent, resolveRoleGrants, resolveAuthorizationContext, canViewActionRun, canViewWorkflowRun, canViewWorkflowIntervention, canViewPipelineRun, canViewProjectionRun, canViewProjection, emptyGrantIndex };
1369
1886
 
1370
- //# debugId=61CE77C324BED20164756E2164756E21
1887
+ //# debugId=57388FDEBF4490DF64756E2164756E21