@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
@@ -0,0 +1,512 @@
1
+ import {
2
+ formatUnknownObjectTypeMessage,
3
+ OntologyNotFoundError,
4
+ OntologyValidationError,
5
+ } from "../ontology/errors"
6
+ import type { OntologyDefinitionCatalog } from "../ontology/registry"
7
+ import type { ObjectTypeWithPropertyTokens } from "../ontology/tokens"
8
+ import { createLinkTokenMap, createPropertyTokenMap } from "../ontology/tokens"
9
+ import type {
10
+ ObjectLink,
11
+ ObjectType,
12
+ ObjectTypeSearchMetadata,
13
+ Property,
14
+ PropertyQueryMetadata,
15
+ Schema,
16
+ ValueType,
17
+ } from "../ontology/types"
18
+ import type { CompiledSelectedObjectReadScope } from "../storage/objects/types"
19
+
20
+ /** Public ontology operations that may cross an execution-bound authorization boundary. */
21
+ export type AuthorizedOntologyView = Pick<
22
+ OntologyDefinitionCatalog,
23
+ | "listObjectTypes"
24
+ | "getObjectTypeById"
25
+ | "resolveObjectType"
26
+ | "getValueTypesById"
27
+ | "getPrimaryPropertyId"
28
+ | "listSubTypes"
29
+ | "isValidLinkTarget"
30
+ >
31
+
32
+ export type AuthorizedOntologySelection =
33
+ | { readonly kind: "all" }
34
+ | { readonly kind: "types"; readonly objectTypeIds: readonly string[] }
35
+ | { readonly kind: "selected"; readonly scope: CompiledSelectedObjectReadScope }
36
+
37
+ interface LinkSelection {
38
+ readonly targetObjectTypeIds: Set<string>
39
+ readonly propertyIds: Set<string>
40
+ }
41
+
42
+ interface SelectedSchema {
43
+ readonly propertyIdsByObjectType: ReadonlyMap<string, ReadonlySet<string>>
44
+ readonly linksBySourceType: ReadonlyMap<string, ReadonlyMap<string, LinkSelection>>
45
+ }
46
+
47
+ /**
48
+ * Project inert ontology metadata from one already-captured authority.
49
+ *
50
+ * Query validation intentionally keeps using the complete internal registry. This view is only
51
+ * the discovery surface returned to application code and HTTP serializers.
52
+ */
53
+ export function createAuthorizedOntologyView(input: {
54
+ readonly ontology: OntologyDefinitionCatalog
55
+ readonly selection: AuthorizedOntologySelection
56
+ readonly assertOutputWithinLimit?: (value: unknown) => void
57
+ }): AuthorizedOntologyView {
58
+ const allObjectTypes = input.ontology.listObjectTypes()
59
+ const registeredObjectTypeIds = new Set(allObjectTypes.map((objectType) => objectType.id))
60
+ const requestedObjectTypeIds = selectedObjectTypeIds(input.selection, allObjectTypes)
61
+ const visibleObjectTypeIds = new Set(
62
+ [...requestedObjectTypeIds].filter((objectTypeId) => registeredObjectTypeIds.has(objectTypeId))
63
+ )
64
+ const selectedSchema =
65
+ input.selection.kind === "selected" ? collectSelectedSchema(input.selection.scope) : undefined
66
+ const projectedObjectTypes: ObjectTypeWithPropertyTokens[] = []
67
+
68
+ for (const objectType of allObjectTypes) {
69
+ if (!visibleObjectTypeIds.has(objectType.id)) continue
70
+ const propertyIds =
71
+ selectedSchema?.propertyIdsByObjectType.get(objectType.id) ??
72
+ new Set(objectType.properties.map((property) => property.id))
73
+ const links = selectedSchema
74
+ ? (selectedSchema.linksBySourceType.get(objectType.id) ?? new Map())
75
+ : input.selection.kind === "all"
76
+ ? allDeclaredLinks(objectType)
77
+ : allVisibleLinks(input.ontology, objectType, visibleObjectTypeIds)
78
+ projectedObjectTypes.push(
79
+ projectObjectType({
80
+ objectType,
81
+ propertyIds,
82
+ links,
83
+ visibleObjectTypeIds,
84
+ ontology: input.ontology,
85
+ targetMode:
86
+ input.selection.kind === "all"
87
+ ? "original"
88
+ : input.selection.kind === "types"
89
+ ? "principal"
90
+ : "exact",
91
+ exposeContracts: input.selection.kind !== "selected",
92
+ })
93
+ )
94
+ }
95
+
96
+ const objectTypes = projectedObjectTypes
97
+ const objectTypesById = new Map(objectTypes.map((objectType) => [objectType.id, objectType]))
98
+ const valueTypesById =
99
+ input.selection.kind === "selected"
100
+ ? collectVisibleValueTypes(input.ontology.getValueTypesById(), objectTypes)
101
+ : snapshotAllValueTypes(input.ontology.getValueTypesById())
102
+ const release = <T>(value: T, budgetValue: unknown = value): T => {
103
+ input.assertOutputWithinLimit?.(budgetValue)
104
+ return value
105
+ }
106
+ const cloneObjectType = (objectType: ObjectTypeWithPropertyTokens) => structuredClone(objectType)
107
+ const cloneValueTypes = () =>
108
+ new Map(
109
+ [...valueTypesById].map(([valueTypeId, valueType]) => [
110
+ valueTypeId,
111
+ structuredClone(valueType),
112
+ ])
113
+ )
114
+
115
+ return Object.freeze({
116
+ listObjectTypes: () => release(objectTypes.map(cloneObjectType)),
117
+ getObjectTypeById: (objectTypeId: string) => {
118
+ const objectType = objectTypesById.get(objectTypeId)
119
+ return release(objectType ? cloneObjectType(objectType) : null)
120
+ },
121
+ resolveObjectType: (objectTypeId: string) => {
122
+ const objectType = objectTypesById.get(objectTypeId)
123
+ return objectType ? release(cloneObjectType(objectType)) : unknownObjectType(objectTypeId)
124
+ },
125
+ getValueTypesById: () => {
126
+ const valueTypes = cloneValueTypes()
127
+ return release(valueTypes, [...valueTypes.entries()])
128
+ },
129
+ getPrimaryPropertyId: (objectTypeId: string) => {
130
+ const objectType = objectTypesById.get(objectTypeId)
131
+ if (!objectType) return unknownObjectType(objectTypeId)
132
+ const primary = objectType.properties.find((property) => property.primary)
133
+ if (!primary) {
134
+ throw new OntologyValidationError(
135
+ `[Sixb] Object type '${objectTypeId}' does not expose its primary property in this execution scope.`
136
+ )
137
+ }
138
+ return release(primary.id)
139
+ },
140
+ listSubTypes: (objectTypeId: string) => {
141
+ const subTypes = visibleObjectTypeIds.has(objectTypeId)
142
+ ? input.ontology
143
+ .listSubTypes(objectTypeId)
144
+ .filter((subTypeId) => visibleObjectTypeIds.has(subTypeId))
145
+ : []
146
+ return release(subTypes)
147
+ },
148
+ isValidLinkTarget: (expected: string | string[], actual: string) => {
149
+ if (input.selection.kind === "all") {
150
+ return release(input.ontology.isValidLinkTarget(expected, actual))
151
+ }
152
+ if (!visibleObjectTypeIds.has(actual)) return release(false)
153
+ const expectedTypes = Array.isArray(expected) ? expected : [expected]
154
+ if (input.selection.kind === "selected") {
155
+ return release(
156
+ expectedTypes.some((expectedType) => expectedType === "*" || expectedType === actual)
157
+ )
158
+ }
159
+ return release(
160
+ expectedTypes.some(
161
+ (expectedType) =>
162
+ expectedType === "*" ||
163
+ (visibleObjectTypeIds.has(expectedType) &&
164
+ input.ontology.isValidLinkTarget(expectedType, actual))
165
+ )
166
+ )
167
+ },
168
+ })
169
+ }
170
+
171
+ function selectedObjectTypeIds(
172
+ selection: AuthorizedOntologySelection,
173
+ allObjectTypes: readonly ObjectTypeWithPropertyTokens[]
174
+ ): ReadonlySet<string> {
175
+ switch (selection.kind) {
176
+ case "all":
177
+ return new Set(allObjectTypes.map((objectType) => objectType.id))
178
+ case "types":
179
+ return new Set(selection.objectTypeIds)
180
+ case "selected":
181
+ return new Set(selection.scope.objects.map((object) => object.objectTypeId))
182
+ }
183
+ }
184
+
185
+ function collectSelectedSchema(scope: CompiledSelectedObjectReadScope): SelectedSchema {
186
+ const propertyIdsByObjectType = new Map<string, Set<string>>()
187
+ for (const object of scope.objects) {
188
+ const properties = propertyIdsByObjectType.get(object.objectTypeId) ?? new Set<string>()
189
+ for (const propertyId of object.propertyIds) properties.add(propertyId)
190
+ propertyIdsByObjectType.set(object.objectTypeId, properties)
191
+ }
192
+
193
+ const linksBySourceType = new Map<string, Map<string, LinkSelection>>()
194
+ for (const step of scope.steps) {
195
+ const links = linksBySourceType.get(step.sourceObjectTypeId) ?? new Map()
196
+ const selected = links.get(step.linkId) ?? {
197
+ targetObjectTypeIds: new Set<string>(),
198
+ propertyIds: new Set<string>(),
199
+ }
200
+ selected.targetObjectTypeIds.add(step.targetObjectTypeId)
201
+ for (const propertyId of step.propertyIds) selected.propertyIds.add(propertyId)
202
+ links.set(step.linkId, selected)
203
+ linksBySourceType.set(step.sourceObjectTypeId, links)
204
+ }
205
+
206
+ return { propertyIdsByObjectType, linksBySourceType }
207
+ }
208
+
209
+ function allDeclaredLinks(
210
+ objectType: ObjectTypeWithPropertyTokens
211
+ ): ReadonlyMap<string, LinkSelection> {
212
+ return new Map(
213
+ objectType.links.map((link) => [
214
+ link.id,
215
+ {
216
+ targetObjectTypeIds: new Set(
217
+ typeof link.targetObjectTypeId === "string"
218
+ ? [link.targetObjectTypeId]
219
+ : link.targetObjectTypeId
220
+ ),
221
+ propertyIds: new Set(link.properties?.map((property) => property.id) ?? []),
222
+ },
223
+ ])
224
+ )
225
+ }
226
+
227
+ function allVisibleLinks(
228
+ ontology: OntologyDefinitionCatalog,
229
+ objectType: ObjectTypeWithPropertyTokens,
230
+ visibleObjectTypeIds: ReadonlySet<string>
231
+ ): ReadonlyMap<string, LinkSelection> {
232
+ const links = new Map<string, LinkSelection>()
233
+ for (const link of objectType.links) {
234
+ const targetObjectTypeIds = new Set(
235
+ [...visibleObjectTypeIds].filter((targetObjectTypeId) =>
236
+ ontology.isValidLinkTarget(link.targetObjectTypeId, targetObjectTypeId)
237
+ )
238
+ )
239
+ if (targetObjectTypeIds.size === 0) continue
240
+ links.set(link.id, {
241
+ targetObjectTypeIds,
242
+ propertyIds: new Set(link.properties?.map((property) => property.id) ?? []),
243
+ })
244
+ }
245
+ return links
246
+ }
247
+
248
+ function projectObjectType(input: {
249
+ readonly ontology: OntologyDefinitionCatalog
250
+ readonly objectType: ObjectTypeWithPropertyTokens
251
+ readonly propertyIds: ReadonlySet<string>
252
+ readonly links: ReadonlyMap<string, LinkSelection>
253
+ readonly visibleObjectTypeIds: ReadonlySet<string>
254
+ readonly targetMode: "original" | "principal" | "exact"
255
+ readonly exposeContracts: boolean
256
+ }): ObjectTypeWithPropertyTokens {
257
+ const properties = input.objectType.properties
258
+ .filter((property) => input.propertyIds.has(property.id))
259
+ .map(snapshotProperty)
260
+ const visiblePropertyIds = new Set(properties.map((property) => property.id))
261
+ const links = input.objectType.links.flatMap((link): ObjectLink[] => {
262
+ const selected = input.links.get(link.id)
263
+ if (!selected) return []
264
+ if (input.targetMode === "original") {
265
+ return [snapshotLink(link, snapshotLinkTarget(link.targetObjectTypeId), selected.propertyIds)]
266
+ }
267
+ const targetObjectTypeIds = new Set(
268
+ [...selected.targetObjectTypeIds].filter(
269
+ (targetObjectTypeId) =>
270
+ input.visibleObjectTypeIds.has(targetObjectTypeId) &&
271
+ input.ontology.isValidLinkTarget(link.targetObjectTypeId, targetObjectTypeId)
272
+ )
273
+ )
274
+ if (targetObjectTypeIds.size === 0) return []
275
+ const target =
276
+ input.targetMode === "principal"
277
+ ? principalLinkTargets(link, targetObjectTypeIds, input.visibleObjectTypeIds)
278
+ : exactLinkTargets(targetObjectTypeIds)
279
+ return [snapshotLink(link, target, selected.propertyIds, { omitEmptyProperties: true })]
280
+ })
281
+
282
+ // Whitelist top-level metadata so future cross-ontology fields remain closed until reviewed.
283
+ const projected: ObjectType = {
284
+ id: input.objectType.id,
285
+ name: input.objectType.name,
286
+ description: input.objectType.description,
287
+ quantityKind: input.objectType.quantityKind,
288
+ seeAlso: input.objectType.seeAlso ? [...input.objectType.seeAlso] : undefined,
289
+ extends:
290
+ input.objectType.extends && input.visibleObjectTypeIds.has(input.objectType.extends)
291
+ ? input.objectType.extends
292
+ : undefined,
293
+ parents: projectOptionalIds(
294
+ input.objectType.parents,
295
+ input.visibleObjectTypeIds,
296
+ input.targetMode === "original"
297
+ ),
298
+ implements:
299
+ input.exposeContracts && input.objectType.implements
300
+ ? [...input.objectType.implements]
301
+ : undefined,
302
+ properties,
303
+ links,
304
+ search: projectSearch(input.objectType.search, visiblePropertyIds, {
305
+ preserveEmpty: input.targetMode !== "exact",
306
+ }),
307
+ }
308
+ const withTokens = {
309
+ ...projected,
310
+ p: createPropertyTokenMap(projected),
311
+ l: createLinkTokenMap(projected),
312
+ }
313
+ return deepFreeze(withTokens) as ObjectTypeWithPropertyTokens
314
+ }
315
+
316
+ function principalLinkTargets(
317
+ link: ObjectLink,
318
+ allowedTargetObjectTypeIds: ReadonlySet<string>,
319
+ visibleObjectTypeIds: ReadonlySet<string>
320
+ ): string | string[] {
321
+ if (link.targetObjectTypeId === "*") return exactLinkTargets(allowedTargetObjectTypeIds)
322
+ const declared = Array.isArray(link.targetObjectTypeId)
323
+ ? link.targetObjectTypeId
324
+ : [link.targetObjectTypeId]
325
+ if (declared.every((objectTypeId) => visibleObjectTypeIds.has(objectTypeId))) {
326
+ return snapshotLinkTarget(link.targetObjectTypeId)
327
+ }
328
+ return exactLinkTargets(allowedTargetObjectTypeIds)
329
+ }
330
+
331
+ function exactLinkTargets(targetObjectTypeIds: ReadonlySet<string>): string | string[] {
332
+ const targets = [...targetObjectTypeIds].sort()
333
+ return targets.length === 1 ? targets[0]! : targets
334
+ }
335
+
336
+ function projectOptionalIds(
337
+ ids: readonly string[] | undefined,
338
+ visibleObjectTypeIds: ReadonlySet<string>,
339
+ preserveOriginal: boolean
340
+ ): string[] | undefined {
341
+ if (!ids) return undefined
342
+ if (preserveOriginal) return [...ids]
343
+ const visible = ids.filter((id) => visibleObjectTypeIds.has(id))
344
+ return visible.length > 0 ? visible : undefined
345
+ }
346
+
347
+ function snapshotLink(
348
+ link: ObjectLink,
349
+ targetObjectTypeId: string | string[],
350
+ propertyIds: ReadonlySet<string>,
351
+ options: { readonly omitEmptyProperties?: boolean } = {}
352
+ ): ObjectLink {
353
+ const properties = link.properties
354
+ ?.filter((property) => propertyIds.has(property.id))
355
+ .map(snapshotProperty)
356
+ return {
357
+ id: link.id,
358
+ name: link.name,
359
+ description: link.description,
360
+ targetObjectTypeId,
361
+ cardinality: link.cardinality,
362
+ properties: options.omitEmptyProperties && properties?.length === 0 ? undefined : properties,
363
+ }
364
+ }
365
+
366
+ function snapshotLinkTarget(target: string | readonly string[]): string | string[] {
367
+ return typeof target === "string" ? target : [...target]
368
+ }
369
+
370
+ function snapshotProperty(property: Property): Property {
371
+ return {
372
+ id: property.id,
373
+ name: property.name,
374
+ schema: snapshotSchema(property.schema),
375
+ description: property.description,
376
+ required: property.required,
377
+ nullable: property.nullable,
378
+ primary: property.primary,
379
+ mode: property.mode,
380
+ semanticType: property.semanticType,
381
+ query: snapshotPropertyQuery(property.query),
382
+ }
383
+ }
384
+
385
+ function snapshotPropertyQuery(
386
+ query: PropertyQueryMetadata | undefined
387
+ ): PropertyQueryMetadata | undefined {
388
+ if (!query) return undefined
389
+ return {
390
+ searchable: query.searchable,
391
+ filterable: query.filterable,
392
+ sortable: query.sortable,
393
+ text: query.text,
394
+ exact: query.exact,
395
+ facet: query.facet,
396
+ vector: query.vector,
397
+ weight: query.weight,
398
+ }
399
+ }
400
+
401
+ function projectSearch(
402
+ search: ObjectTypeSearchMetadata | undefined,
403
+ visiblePropertyIds: ReadonlySet<string>,
404
+ options: { readonly preserveEmpty: boolean }
405
+ ): ObjectTypeSearchMetadata | undefined {
406
+ if (!search) return undefined
407
+ const title = search.title && visiblePropertyIds.has(search.title) ? search.title : undefined
408
+ const selectedDefaultText = search.defaultText?.filter((propertyId) =>
409
+ visiblePropertyIds.has(propertyId)
410
+ )
411
+ const selectedExact = search.exact?.filter((propertyId) => visiblePropertyIds.has(propertyId))
412
+ const defaultText =
413
+ options.preserveEmpty || selectedDefaultText?.length ? selectedDefaultText : undefined
414
+ const exact = options.preserveEmpty || selectedExact?.length ? selectedExact : undefined
415
+ const vector =
416
+ search.vector &&
417
+ visiblePropertyIds.has(search.vector.property) &&
418
+ search.vector.source.every((propertyId) => visiblePropertyIds.has(propertyId))
419
+ ? { property: search.vector.property, source: [...search.vector.source] }
420
+ : undefined
421
+ const projected: ObjectTypeSearchMetadata = {
422
+ ...(title === undefined ? {} : { title }),
423
+ ...(defaultText === undefined ? {} : { defaultText }),
424
+ ...(exact === undefined ? {} : { exact }),
425
+ ...(vector === undefined ? {} : { vector }),
426
+ }
427
+ return Object.keys(projected).length > 0 || options.preserveEmpty ? projected : undefined
428
+ }
429
+
430
+ function snapshotAllValueTypes(
431
+ registered: ReadonlyMap<string, ValueType>
432
+ ): ReadonlyMap<string, ValueType> {
433
+ return new Map(
434
+ [...registered.values()].map((valueType) => {
435
+ const snapshot = snapshotValueType(valueType)
436
+ return [snapshot.id, snapshot] as const
437
+ })
438
+ )
439
+ }
440
+
441
+ function collectVisibleValueTypes(
442
+ registered: ReadonlyMap<string, ValueType>,
443
+ objectTypes: readonly ObjectTypeWithPropertyTokens[]
444
+ ): ReadonlyMap<string, ValueType> {
445
+ const referencedIds = new Set<string>()
446
+ const pendingSchemas: Schema[] = []
447
+ const visitedSchemas = new Set<object>()
448
+ for (const objectType of objectTypes) {
449
+ for (const property of objectType.properties) pendingSchemas.push(property.schema)
450
+ for (const link of objectType.links) {
451
+ for (const property of link.properties ?? []) pendingSchemas.push(property.schema)
452
+ }
453
+ }
454
+
455
+ while (pendingSchemas.length > 0) {
456
+ const schema = pendingSchemas.pop()!
457
+ if (typeof schema === "string" || visitedSchemas.has(schema)) continue
458
+ visitedSchemas.add(schema)
459
+ if (schema.type === "valueTypeRef") {
460
+ if (!referencedIds.has(schema.valueTypeId)) {
461
+ referencedIds.add(schema.valueTypeId)
462
+ const valueType = registered.get(schema.valueTypeId)
463
+ if (valueType) pendingSchemas.push(valueType.schema)
464
+ }
465
+ if (schema._resolved) pendingSchemas.push(schema._resolved)
466
+ } else if (schema.type === "object") {
467
+ for (const field of Object.values(schema.properties)) pendingSchemas.push(field.schema)
468
+ } else if (schema.type === "array") {
469
+ pendingSchemas.push(schema.items)
470
+ } else if (schema.type === "map") {
471
+ pendingSchemas.push(schema.valueSchema)
472
+ }
473
+ }
474
+
475
+ return new Map(
476
+ [...referencedIds]
477
+ .map((valueTypeId) => registered.get(valueTypeId))
478
+ .filter((valueType): valueType is ValueType => valueType !== undefined)
479
+ .map((valueType) => {
480
+ const snapshot = snapshotValueType(valueType)
481
+ return [snapshot.id, snapshot] as const
482
+ })
483
+ )
484
+ }
485
+
486
+ function snapshotValueType(valueType: ValueType): ValueType {
487
+ return deepFreeze({
488
+ id: valueType.id,
489
+ name: valueType.name,
490
+ description: valueType.description,
491
+ schema: snapshotSchema(valueType.schema),
492
+ semanticType: valueType.semanticType,
493
+ })
494
+ }
495
+
496
+ function snapshotSchema(schema: Schema): Schema {
497
+ return deepFreeze(structuredClone(schema))
498
+ }
499
+
500
+ function deepFreeze<T>(value: T, seen: Set<object> = new Set()): T {
501
+ if (typeof value !== "object" || value === null || seen.has(value)) return value
502
+ seen.add(value)
503
+ for (const key of Reflect.ownKeys(value)) {
504
+ const descriptor = Object.getOwnPropertyDescriptor(value, key)
505
+ if (descriptor && "value" in descriptor) deepFreeze(descriptor.value, seen)
506
+ }
507
+ return Object.freeze(value)
508
+ }
509
+
510
+ function unknownObjectType(objectTypeId: string): never {
511
+ throw new OntologyNotFoundError(formatUnknownObjectTypeMessage(objectTypeId))
512
+ }