@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,5 +1,11 @@
1
- import { canViewWorkflowIntervention, canViewWorkflowRun, isAllowed } from "../authorization"
1
+ import {
2
+ assertAuthorized,
3
+ canViewWorkflowIntervention,
4
+ canViewWorkflowRun,
5
+ isRuntimeAllowed,
6
+ } from "../authorization"
2
7
  import type { AuthorizablePrincipal, ExecutionContext } from "../execution"
8
+ import { resolveRuntimeAuthorizationForProject } from "../execution/authorization"
3
9
  import { resolveExecutionCosts } from "../runtime/ai-cost"
4
10
  import { resolveExecutionUsage } from "../runtime/ai-usage"
5
11
  import type { SixbRuntimeContext } from "../runtime/types"
@@ -101,22 +107,40 @@ export function createWorkflowsRuntime(
101
107
  execution: ExecutionContext,
102
108
  source: Pick<WorkflowsRuntime, "list" | "getById">
103
109
  ): WorkflowsRuntime {
110
+ const authority = resolveRuntimeAuthorizationForProject(runtime)
104
111
  const allowed = (workflowId: string) =>
105
- isAllowed(runtime.authorization, { kind: "workflow.run", workflowId })
106
- const canAccessHistory = (workflowId: string) =>
107
- allowed(workflowId) && (!runtime.authorization || source.getById(workflowId) !== null)
112
+ isRuntimeAllowed(runtime, { kind: "workflow.run", workflowId })
113
+ const canAccessHistory = (workflowId: string) => {
114
+ switch (authority.type) {
115
+ case "denied":
116
+ case "delegated":
117
+ return false
118
+ case "unrestricted":
119
+ return true
120
+ case "principal":
121
+ return allowed(workflowId) && source.getById(workflowId) !== null
122
+ }
123
+ }
108
124
  const visibleIds = () =>
109
125
  source
110
126
  .list()
111
127
  .filter((workflow) => allowed(workflow.id))
112
128
  .map((workflow) => workflow.id)
129
+ const historyFilterIds = () =>
130
+ authority.type === "unrestricted"
131
+ ? undefined
132
+ : authority.type === "principal"
133
+ ? visibleIds()
134
+ : []
113
135
  const getVisibleRunRecord = async (runId: string): Promise<WorkflowRunRecord | null> => {
136
+ if (authority.type === "denied" || authority.type === "delegated") return null
114
137
  const run =
115
138
  (await runtime.storage.workflowRuns?.getById({
116
139
  projectId: runtime.projectId,
117
140
  id: runId,
118
141
  })) ?? null
119
- return run && canViewWorkflowRun(runtime.authorization, run) && canAccessHistory(run.workflowId)
142
+ if (!run || !canAccessHistory(run.workflowId)) return null
143
+ return authority.type === "unrestricted" || canViewWorkflowRun(authority.context, run)
120
144
  ? run
121
145
  : null
122
146
  }
@@ -131,9 +155,9 @@ export function createWorkflowsRuntime(
131
155
  const storage = runtime.storage.workflowRuns
132
156
  if (!storage || !(await getVisibleRunRecord(runId))) return null
133
157
  const result = await storage.nodes.list({
134
- projectId: runtime.projectId,
135
158
  ...input,
136
159
  workflowRunId: runId,
160
+ projectId: runtime.projectId,
137
161
  })
138
162
  return {
139
163
  ...result,
@@ -142,13 +166,18 @@ export function createWorkflowsRuntime(
142
166
  }
143
167
 
144
168
  return {
145
- list: () => source.list().filter((workflow) => allowed(workflow.id)),
169
+ list: () =>
170
+ authority.type === "denied" || authority.type === "delegated"
171
+ ? []
172
+ : source.list().filter((workflow) => allowed(workflow.id)),
146
173
  getById: (workflowId) => {
174
+ if (authority.type === "denied" || authority.type === "delegated") return null
147
175
  const workflow = source.getById(workflowId)
148
176
  return workflow && allowed(workflowId) ? workflow : null
149
177
  },
150
178
  request: (workflow, options) => requestWorkflowRun(runtime, execution, workflow, options),
151
179
  requestById: async (input) => {
180
+ assertAuthorized(runtime, { kind: "workflow.run", workflowId: input.workflowId })
152
181
  const workflow = source.getById(input.workflowId)
153
182
  if (!workflow) {
154
183
  throw new WorkflowValidationError(`[Sixb] Unknown workflow '${input.workflowId}'`)
@@ -158,12 +187,15 @@ export function createWorkflowsRuntime(
158
187
  runs: {
159
188
  getById: getRun,
160
189
  list: async (input = {}) => {
190
+ if (authority.type === "denied" || authority.type === "delegated") {
191
+ return { runs: [], hasMore: false, total: 0 }
192
+ }
161
193
  const storage = runtime.storage.workflowRuns
162
194
  if (!storage) return { runs: [], hasMore: false, total: 0 }
163
195
  const result = await storage.list({
164
- projectId: runtime.projectId,
165
196
  ...input,
166
- workflowIds: runtime.authorization ? visibleIds() : undefined,
197
+ workflowIds: historyFilterIds(),
198
+ projectId: runtime.projectId,
167
199
  })
168
200
  return {
169
201
  ...result,
@@ -171,6 +203,9 @@ export function createWorkflowsRuntime(
171
203
  }
172
204
  },
173
205
  listLatest: async (workflowIds) => {
206
+ if (authority.type === "denied" || authority.type === "delegated") {
207
+ return { runs: [] }
208
+ }
174
209
  const storage = runtime.storage.workflowRuns
175
210
  if (!storage || workflowIds.length === 0) return { runs: [] }
176
211
  const allowedIds = workflowIds.filter(canAccessHistory)
@@ -187,24 +222,28 @@ export function createWorkflowsRuntime(
187
222
  },
188
223
  interventions: {
189
224
  getById: async (interventionId) => {
225
+ if (authority.type === "denied" || authority.type === "delegated") return null
190
226
  const intervention =
191
227
  (await runtime.storage.workflowInterventions?.getById({
192
228
  projectId: runtime.projectId,
193
229
  id: interventionId,
194
230
  })) ?? null
195
- return intervention &&
196
- canViewWorkflowIntervention(runtime.authorization, intervention) &&
197
- canAccessHistory(intervention.workflowId)
231
+ if (!intervention || !canAccessHistory(intervention.workflowId)) return null
232
+ return authority.type === "unrestricted" ||
233
+ canViewWorkflowIntervention(authority.context, intervention)
198
234
  ? intervention
199
235
  : null
200
236
  },
201
237
  list: (input = {}) => {
238
+ if (authority.type === "denied" || authority.type === "delegated") {
239
+ return Promise.resolve({ interventions: [], hasMore: false, total: 0 })
240
+ }
202
241
  const storage = runtime.storage.workflowInterventions
203
242
  if (!storage) return Promise.resolve({ interventions: [], hasMore: false, total: 0 })
204
243
  return storage.list({
205
- projectId: runtime.projectId,
206
244
  ...input,
207
- workflowIds: runtime.authorization ? visibleIds() : undefined,
245
+ workflowIds: historyFilterIds(),
246
+ projectId: runtime.projectId,
208
247
  })
209
248
  },
210
249
  },
@@ -1,5 +1,6 @@
1
1
  import { snapshotRequesterGroupIds } from "../auth/attribution"
2
2
  import { assertAuthorized } from "../authorization"
3
+ import { resolveExecutionScopeAuthorization } from "../execution/authorization"
3
4
  import {
4
5
  createPrimitiveExecutionRecord,
5
6
  ensureExecutionRecord,
@@ -44,6 +45,10 @@ export async function requestWorkflowRun(
44
45
  workflow: WorkflowDefinition,
45
46
  options: WorkflowRunRequestOptions = {}
46
47
  ): Promise<WorkflowRunRequestResult> {
48
+ resolveExecutionScopeAuthorization(runtime.projectId, {
49
+ execution,
50
+ authorization: runtime.runtimeAuthorization,
51
+ })
47
52
  assertAuthorized(runtime, { kind: "workflow.run", workflowId: workflow.id })
48
53
  const requesterGroupIds = execution.requestedBy
49
54
  ? await snapshotRequesterGroupIds({
@@ -1,14 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/bootstrap/discovery.ts", "../src/rules/errors.ts", "../src/rules/validation.ts", "../src/rules/builders.ts", "../src/bootstrap/ontology-type-manifest.ts"],
4
- "sourcesContent": [
5
- "/**\n * Filesystem auto-discovery for convention-based module loading.\n *\n * Scans well-known definition directories (`ontology/`, `actions/`, etc.)\n * relative to a project root and returns typed definition arrays ready\n * for the `Sixb` constructor.\n */\n\nimport { readdir } from \"node:fs/promises\"\nimport { join, relative } from \"node:path\"\nimport { pathToFileURL } from \"node:url\"\nimport { isActionDefinition } from \"../actions\"\nimport { isConnectorDefinition } from \"../connectors\"\nimport { isDatasetDefinition } from \"../datasets\"\nimport type { OntologyDocumentInput, OntologySource } from \"../ontology/registry\"\nimport type { ObjectTypeWithPropertyTokens } from \"../ontology/tokens\"\nimport type { ValueType } from \"../ontology/types\"\nimport { isPipelineDefinition } from \"../pipelines\"\nimport { isProjectionDefinition } from \"../projections/builders\"\nimport { isRuleDefinition } from \"../rules\"\nimport { RuntimeError } from \"../runtime/errors\"\nimport { isScheduleDefinition } from \"../schedules\"\nimport { isGroupDefinition, isMembershipPolicyDefinition, isRoleDefinition } from \"../security\"\nimport { isSyncDefinition } from \"../syncs\"\nimport { isWorkflowDefinition } from \"../workflows\"\n\nconst moduleExtensions = new Set([\".ts\", \".tsx\", \".js\", \".jsx\", \".mjs\", \".cjs\"])\n\nexport async function discoverOntologySources(\n projectRoot: string\n): Promise<readonly OntologySource[]> {\n const ontologyDir = join(projectRoot, \"ontology\")\n const modulePaths = await listModuleFiles(ontologyDir)\n const exportedCandidates = await loadModuleExports({\n modulePaths,\n projectRoot,\n kind: \"ontology\",\n })\n\n const ontologyDocuments: OntologyDocumentInput[] = []\n const objectTypes: ObjectTypeWithPropertyTokens[] = []\n const valueTypes: ValueType[] = []\n\n for (const candidate of exportedCandidates) {\n if (isOntologyDocumentInput(candidate)) {\n ontologyDocuments.push(candidate)\n continue\n }\n\n if (isObjectTypeWithPropertyTokens(candidate)) {\n objectTypes.push(candidate)\n continue\n }\n\n if (isValueType(candidate)) {\n valueTypes.push(candidate)\n }\n }\n\n const discoveredSources: OntologySource[] = [...ontologyDocuments, ...objectTypes]\n if (valueTypes.length > 0) {\n discoveredSources.push({\n id: \"__sixb.discovered.value-types__\",\n version: \"0.0.0\",\n objectTypes: [],\n valueTypes,\n })\n }\n\n return discoveredSources\n}\n\ntype DiscoveryModuleKind =\n | \"action\"\n | \"connector\"\n | \"dataset\"\n | \"group\"\n | \"membershipPolicy\"\n | \"ontology\"\n | \"pipeline\"\n | \"projection\"\n | \"role\"\n | \"rule\"\n | \"schedule\"\n | \"sync\"\n | \"workflow\"\n\ninterface DefinitionDiscoveryFamily<TDefinition> {\n readonly directory: readonly string[]\n readonly kind: Exclude<DiscoveryModuleKind, \"ontology\">\n readonly isDefinition: (value: unknown) => value is TDefinition\n}\n\nconst definitionDiscoveryRegistry = {\n actions: { directory: [\"actions\"], kind: \"action\", isDefinition: isActionDefinition },\n projections: {\n directory: [\"projections\"],\n kind: \"projection\",\n isDefinition: isProjectionDefinition,\n },\n schedules: {\n directory: [\"schedules\"],\n kind: \"schedule\",\n isDefinition: isScheduleDefinition,\n },\n syncs: { directory: [\"syncs\"], kind: \"sync\", isDefinition: isSyncDefinition },\n connectors: {\n directory: [\"connectors\"],\n kind: \"connector\",\n isDefinition: isConnectorDefinition,\n },\n pipelines: {\n directory: [\"pipelines\"],\n kind: \"pipeline\",\n isDefinition: isPipelineDefinition,\n },\n datasets: { directory: [\"datasets\"], kind: \"dataset\", isDefinition: isDatasetDefinition },\n rules: { directory: [\"rules\"], kind: \"rule\", isDefinition: isRuleDefinition },\n workflows: {\n directory: [\"workflows\"],\n kind: \"workflow\",\n isDefinition: isWorkflowDefinition,\n },\n groups: {\n directory: [\"security\", \"groups\"],\n kind: \"group\",\n isDefinition: isGroupDefinition,\n },\n roles: {\n directory: [\"security\", \"roles\"],\n kind: \"role\",\n isDefinition: isRoleDefinition,\n },\n membershipPolicies: {\n directory: [\"security\", \"policies\"],\n kind: \"membershipPolicy\",\n isDefinition: isMembershipPolicyDefinition,\n },\n} as const satisfies Record<string, DefinitionDiscoveryFamily<unknown>>\n\ntype DefinitionFromFamily<TFamily> =\n TFamily extends DefinitionDiscoveryFamily<infer TDefinition> ? TDefinition : never\n\nexport type DiscoveredProjectDefinitions = {\n readonly [TKey in keyof typeof definitionDiscoveryRegistry]: readonly DefinitionFromFamily<\n (typeof definitionDiscoveryRegistry)[TKey]\n >[]\n}\n\nexport async function discoverProjectDefinitions(\n projectRoot: string\n): Promise<DiscoveredProjectDefinitions> {\n const entries = await Promise.all(\n Object.entries(definitionDiscoveryRegistry).map(async ([key, family]) => {\n const definitions = await discoverDefinitionFamily(projectRoot, family)\n return [key, definitions] as const\n })\n )\n\n // Object.fromEntries erases literal keys. Every entry above comes from the exact registry and its\n // definitions have passed that entry's type guard, so restoring the mapped result type is safe.\n return Object.fromEntries(entries) as DiscoveredProjectDefinitions\n}\n\nasync function discoverDefinitionFamily(\n projectRoot: string,\n family: DefinitionDiscoveryFamily<unknown>\n): Promise<readonly unknown[]> {\n const modulePaths = await listModuleFiles(join(projectRoot, ...family.directory))\n const exportedCandidates = await loadModuleExports({\n modulePaths,\n projectRoot,\n kind: family.kind,\n })\n\n return exportedCandidates.filter(family.isDefinition)\n}\n\n// ── Internal helpers ────────────────────────────────────────\n\nasync function loadModuleExports(options: {\n modulePaths: readonly string[]\n projectRoot: string\n kind: DiscoveryModuleKind\n}): Promise<unknown[]> {\n const exportedCandidates: unknown[] = []\n const seen = new Set<unknown>()\n\n for (const modulePath of options.modulePaths) {\n let moduleNamespace: Record<string, unknown>\n try {\n moduleNamespace = (await import(pathToFileURL(modulePath).href)) as Record<string, unknown>\n } catch (error) {\n const relPath = relative(options.projectRoot, modulePath)\n const reason = error instanceof Error ? error.message : String(error)\n throw new RuntimeError(`Failed to load ${options.kind} module '${relPath}': ${reason}`)\n }\n\n for (const exportedValue of Object.values(moduleNamespace)) {\n collectExportedCandidates(exportedValue, exportedCandidates, seen)\n }\n }\n\n return exportedCandidates\n}\n\nfunction collectExportedCandidates(value: unknown, target: unknown[], seen: Set<unknown>): void {\n if (Array.isArray(value)) {\n for (const item of value) {\n collectExportedCandidates(item, target, seen)\n }\n return\n }\n\n if (value === undefined) {\n return\n }\n\n if ((typeof value === \"object\" && value !== null) || typeof value === \"function\") {\n if (seen.has(value)) {\n return\n }\n seen.add(value)\n }\n\n target.push(value)\n}\n\nasync function listModuleFiles(dir: string): Promise<string[]> {\n let entries: import(\"node:fs\").Dirent[]\n try {\n entries = (await readdir(dir, { withFileTypes: true })) as import(\"node:fs\").Dirent[]\n } catch (error) {\n if (isNotFoundError(error)) {\n return []\n }\n throw error\n }\n\n const files: string[] = []\n const sortedEntries = [...entries].sort((a, b) => a.name.localeCompare(b.name))\n\n for (const entry of sortedEntries) {\n const fullPath = join(dir, entry.name)\n if (entry.isDirectory()) {\n files.push(...(await listModuleFiles(fullPath)))\n continue\n }\n\n if (!entry.isFile()) {\n continue\n }\n\n if (!hasSupportedModuleExtension(entry.name)) {\n continue\n }\n\n files.push(fullPath)\n }\n\n return files\n}\n\nfunction isNotFoundError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false\n }\n\n const code = (error as NodeJS.ErrnoException).code\n return code === \"ENOENT\" || code === \"ENOTDIR\"\n}\n\nfunction hasSupportedModuleExtension(fileName: string): boolean {\n const normalized = fileName.toLowerCase()\n for (const extension of moduleExtensions) {\n if (normalized.endsWith(extension)) {\n return true\n }\n }\n return false\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction isOntologyDocumentInput(value: unknown): value is OntologyDocumentInput {\n if (!isRecord(value)) {\n return false\n }\n\n return (\n typeof value.id === \"string\" &&\n typeof value.version === \"string\" &&\n Array.isArray(value.objectTypes)\n )\n}\n\nfunction isObjectTypeWithPropertyTokens(value: unknown): value is ObjectTypeWithPropertyTokens {\n if (!isRecord(value)) {\n return false\n }\n\n return (\n typeof value.id === \"string\" &&\n Array.isArray(value.properties) &&\n Array.isArray(value.links) &&\n isRecord(value.p)\n )\n}\n\nfunction isValueType(value: unknown): value is ValueType {\n if (!isRecord(value)) {\n return false\n }\n\n return (\n typeof value.id === \"string\" &&\n typeof value.name === \"string\" &&\n \"schema\" in value &&\n !Array.isArray(value.properties) &&\n !Array.isArray(value.objectTypes)\n )\n}\n",
6
- "/**\n * Base error for the rules module. `RuleValidationError` covers invalid rule\n * definitions both at builder time and during runtime startup validation.\n */\nexport class RuleError extends Error {\n readonly name: string = \"RuleError\"\n}\n\nexport class RuleValidationError extends RuleError {\n override readonly name = \"RuleValidationError\"\n}\n",
7
- "import type { OntologyRegistry } from \"../ontology/registry\"\nimport type { ObjectType } from \"../ontology/types\"\nimport { assertPredicateShape } from \"../predicates\"\nimport { RuleValidationError } from \"./errors\"\nimport type { RuleDefinition, RulePredicate } from \"./types\"\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction assertNonEmptyString(\n value: unknown,\n field: string,\n createError: (message: string) => Error\n): asserts value is string {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw createError(`${field} must not be empty.`)\n }\n}\n\n/**\n * Validate only the portable AST shape.\n *\n * This is used by discovery/type guards and by the builder after `.where(...)`.\n * Ontology-aware checks live in `validateRulesAtStartup`, once the full\n * registry has inherited properties and links resolved.\n */\nexport function assertRulePredicateShape(\n value: unknown,\n createError: (message: string) => Error = (message) => new RuleValidationError(message)\n): asserts value is RulePredicate {\n assertPredicateShape(value, { subject: \"Rule\", createError })\n}\n\n/** Validate the serializable rule envelope without consulting ontology state. */\nexport function assertRuleDefinition(\n value: unknown,\n createError: (message: string) => Error = (message) => new RuleValidationError(message)\n): asserts value is RuleDefinition {\n if (!isRecord(value)) {\n throw createError(\"Rule definition must be an object.\")\n }\n\n if (value.kind !== \"rule\") {\n throw createError(\"Rule definition kind must be 'rule'.\")\n }\n\n assertNonEmptyString(value.id, \"Rule id\", createError)\n\n if (!isRecord(value.subject) || value.subject.kind !== \"object\") {\n throw createError(`Rule '${value.id}' subject must be an object subject.`)\n }\n\n assertNonEmptyString(\n value.subject.objectTypeId,\n `Rule '${value.id}' subject objectTypeId`,\n createError\n )\n assertRulePredicateShape(value.predicate, createError)\n}\n\nexport function isRuleDefinition(value: unknown): value is RuleDefinition {\n try {\n assertRuleDefinition(value, (message) => new Error(message))\n return true\n } catch {\n return false\n }\n}\n\n/**\n * Validate rules after the ontology registry is built.\n *\n * Startup is where we can reject references that cannot be known from the\n * serialized rule alone: duplicate ids, unknown subject types, unknown\n * properties/links, and empty logical groups.\n */\nexport function validateRulesAtStartup(\n rules: readonly RuleDefinition[],\n ontology: OntologyRegistry\n): void {\n const seenRuleIds = new Set<string>()\n\n for (const rule of rules) {\n assertRuleDefinition(rule)\n\n if (seenRuleIds.has(rule.id)) {\n throw new RuleValidationError(`Duplicate rule id: ${rule.id}`)\n }\n seenRuleIds.add(rule.id)\n\n const objectType = ontology.getObjectTypeById(rule.subject.objectTypeId)\n if (!objectType) {\n throw new RuleValidationError(\n `Rule \"${rule.id}\": unknown object type \"${rule.subject.objectTypeId}\".`\n )\n }\n\n validatePredicateAgainstSubject(rule, objectType, rule.predicate)\n }\n}\n\n/** Walk every predicate node and check subject-scoped references. */\nfunction validatePredicateAgainstSubject(\n rule: RuleDefinition,\n objectType: ObjectType,\n predicate: RulePredicate\n): void {\n if (predicate.kind === \"all\" || predicate.kind === \"any\") {\n if (predicate.predicates.length === 0) {\n throw new RuleValidationError(\n `Rule \"${rule.id}\": ${predicate.kind} predicate must contain at least one predicate.`\n )\n }\n\n for (const child of predicate.predicates) {\n validatePredicateAgainstSubject(rule, objectType, child)\n }\n return\n }\n\n if (predicate.kind === \"not\") {\n validatePredicateAgainstSubject(rule, objectType, predicate.predicate)\n return\n }\n\n if (predicate.kind === \"property\") {\n const propertyIds = new Set(objectType.properties.map((property) => property.id))\n if (!propertyIds.has(predicate.propertyId)) {\n throw new RuleValidationError(\n `Rule \"${rule.id}\": unknown property \"${predicate.propertyId}\" on object type \"${objectType.id}\".`\n )\n }\n return\n }\n\n if (predicate.kind === \"field\") {\n throw new RuleValidationError(\n `Rule \"${rule.id}\": field predicates are not supported in rule conditions.`\n )\n }\n\n const linkIds = new Set(objectType.links.map((link) => link.id))\n if (!linkIds.has(predicate.linkId)) {\n throw new RuleValidationError(\n `Rule \"${rule.id}\": unknown link \"${predicate.linkId}\" on object type \"${objectType.id}\".`\n )\n }\n}\n",
8
- "import {\n allPredicates,\n anyPredicates,\n createLinkPredicateBuilder as createSharedLinkPredicateBuilder,\n createPropertyPredicateBuilder as createSharedPropertyPredicateBuilder,\n notPredicate,\n type RuntimePropertyPredicateBuilder,\n} from \"../predicates\"\nimport { RuleValidationError } from \"./errors\"\nimport type {\n RuleBuilder,\n RuleDefinition,\n RuleLinkPredicateBuilder,\n RuleObjectType,\n RulePredicate,\n RulePropertyPredicate,\n} from \"./types\"\nimport { assertRulePredicateShape } from \"./validation\"\n\n/**\n * Runtime builders stay deliberately concrete.\n *\n * The public overload below provides typed property/link keys to callers, while\n * this internal shape keeps the implementation simple and avoids asking\n * TypeScript to instantiate the full ontology mapped type while checking this\n * file.\n */\ntype RuntimeRulePropertyPredicateBuilder = RuntimePropertyPredicateBuilder<RulePropertyPredicate>\n\ntype RuntimeRuleSubjectBuilder = {\n p: Record<string, RuntimeRulePropertyPredicateBuilder>\n l: Record<string, RuleLinkPredicateBuilder>\n all(...predicates: RulePredicate[]): RulePredicate\n any(...predicates: RulePredicate[]): RulePredicate\n not(predicate: RulePredicate): RulePredicate\n}\n\nfunction assertNonEmpty(value: string, field: string): void {\n if (!value.trim()) {\n throw new RuleValidationError(`Rule ${field} must not be empty.`)\n }\n}\n\n/** Build the `tx.p.<propertyId>` API for one ontology property. */\nfunction createPropertyPredicateBuilder(propertyId: string): RuntimeRulePropertyPredicateBuilder {\n return createSharedPropertyPredicateBuilder(propertyId, {\n subject: \"Rule\",\n createError: (message) => new RuleValidationError(message),\n })\n}\n\n/** Build the `tx.l.<linkId>` API for one ontology link. */\nfunction createLinkPredicateBuilder(linkId: string): RuleLinkPredicateBuilder {\n return createSharedLinkPredicateBuilder(linkId)\n}\n\n/**\n * Build the callback subject from ontology metadata.\n *\n * This object is only used while `.where(...)` executes. The returned\n * RuleDefinition stores the predicate data produced by these methods, not this\n * builder object or the user callback.\n */\nfunction createRuleSubjectBuilder<TObjectType extends RuleObjectType>(\n objectType: TObjectType\n): RuntimeRuleSubjectBuilder {\n const properties = Object.fromEntries(\n objectType.properties.map((property) => [\n property.id,\n createPropertyPredicateBuilder(property.id),\n ])\n )\n\n const links = Object.fromEntries(\n objectType.links.map((link) => [link.id, createLinkPredicateBuilder(link.id)])\n )\n\n return {\n p: properties,\n l: links,\n all(...predicates: RulePredicate[]): RulePredicate {\n return allPredicates(predicates)\n },\n any(...predicates: RulePredicate[]): RulePredicate {\n return anyPredicates(predicates)\n },\n not(predicate: RulePredicate): RulePredicate {\n return notPredicate(predicate)\n },\n }\n}\n\n/**\n * Define an inert business rule.\n *\n * The overload preserves literal ids and typed property/link keys for users.\n * The implementation returns a concrete builder and casts at the boundary so\n * runtime code stays small while callers still get the typed DSL.\n */\nexport function defineRule<const TId extends string>(id: TId): RuleBuilder<TId>\nexport function defineRule(id: string): RuleBuilder<string> {\n assertNonEmpty(id, \"id\")\n\n const builder = {\n on(objectType: RuleObjectType) {\n return {\n where(callback: (subject: RuntimeRuleSubjectBuilder) => RulePredicate): RuleDefinition {\n const predicate = callback(createRuleSubjectBuilder(objectType))\n assertRulePredicateShape(predicate)\n\n return {\n kind: \"rule\",\n id,\n subject: {\n kind: \"object\",\n objectTypeId: objectType.id,\n },\n predicate,\n }\n },\n }\n },\n }\n\n return builder as unknown as RuleBuilder<string>\n}\n",
9
- "import { mkdir, readdir, readFile, writeFile } from \"node:fs/promises\"\nimport { dirname, extname, join, relative, resolve, sep } from \"node:path\"\nimport { pathToFileURL } from \"node:url\"\nimport type { OntologyDocumentInput } from \"../ontology/registry\"\nimport type { ObjectTypeWithPropertyTokens } from \"../ontology/tokens\"\nimport { RuntimeError } from \"../runtime/errors\"\n\nconst moduleExtensions = new Set([\".ts\", \".tsx\", \".js\", \".jsx\", \".mjs\", \".cjs\"])\n\nexport interface OntologyTypeManifestEntry {\n readonly objectTypeId: string\n readonly modulePath: string\n readonly exportName: string\n readonly typeExpression: string\n}\n\nexport interface OntologyTypeManifestDiscovery {\n readonly entries: readonly OntologyTypeManifestEntry[]\n readonly moduleCount: number\n}\n\nexport interface GenerateOntologyTypeManifestOptions {\n readonly projectRoot: string\n readonly outFile?: string\n}\n\nexport interface GenerateOntologyTypeManifestResult extends OntologyTypeManifestDiscovery {\n readonly path: string\n readonly written: boolean\n readonly skipped: boolean\n}\n\nexport async function discoverOntologyTypeManifest(\n projectRoot: string\n): Promise<OntologyTypeManifestDiscovery> {\n const resolvedProjectRoot = resolve(projectRoot)\n const ontologyDir = join(resolvedProjectRoot, \"ontology\")\n const modulePaths = await listModuleFiles(ontologyDir)\n const entries = new Map<string, OntologyTypeManifestEntry>()\n const seenObjectTypes = new Set<unknown>()\n\n for (const modulePath of modulePaths) {\n const moduleSpecifier = toGeneratedModuleSpecifier({\n fromDir: join(resolvedProjectRoot, \".sixb\", \"types\"),\n modulePath,\n })\n const moduleNamespace = await loadOntologyModule({\n modulePath,\n projectRoot: resolvedProjectRoot,\n })\n\n for (const [exportName, exportedValue] of Object.entries(moduleNamespace)) {\n collectManifestEntries({\n exportedValue,\n exportName,\n modulePath,\n moduleSpecifier,\n entries,\n seenObjectTypes,\n })\n }\n }\n\n return {\n entries: [...entries.values()].sort((a, b) => a.objectTypeId.localeCompare(b.objectTypeId)),\n moduleCount: modulePaths.length,\n }\n}\n\nexport async function generateOntologyTypeManifest(\n options: GenerateOntologyTypeManifestOptions\n): Promise<GenerateOntologyTypeManifestResult> {\n const projectRoot = resolve(options.projectRoot)\n const outFile = resolve(projectRoot, options.outFile ?? join(\".sixb\", \"types\", \"ontology.d.ts\"))\n const discovery = await discoverOntologyTypeManifest(projectRoot)\n\n if (discovery.moduleCount === 0) {\n return {\n ...discovery,\n path: outFile,\n written: false,\n skipped: true,\n }\n }\n\n const content = renderOntologyTypeManifest(discovery.entries)\n await mkdir(dirname(outFile), { recursive: true })\n const written = await writeFileIfChanged(outFile, content)\n\n return {\n ...discovery,\n path: outFile,\n written,\n skipped: false,\n }\n}\n\nfunction collectManifestEntries(input: {\n readonly exportedValue: unknown\n readonly exportName: string\n readonly modulePath: string\n readonly moduleSpecifier: string\n readonly entries: Map<string, OntologyTypeManifestEntry>\n readonly seenObjectTypes: Set<unknown>\n}): void {\n if (isObjectTypeWithPropertyTokens(input.exportedValue)) {\n addManifestEntry({\n objectType: input.exportedValue,\n modulePath: input.modulePath,\n exportName: input.exportName,\n typeExpression: `typeof import(${JSON.stringify(input.moduleSpecifier)})[${JSON.stringify(\n input.exportName\n )}]`,\n entries: input.entries,\n seenObjectTypes: input.seenObjectTypes,\n })\n return\n }\n\n if (isOntologyDocumentInput(input.exportedValue)) {\n for (const objectType of input.exportedValue.objectTypes) {\n addManifestEntry({\n objectType,\n modulePath: input.modulePath,\n exportName: input.exportName,\n typeExpression: `Extract<(typeof import(${JSON.stringify(\n input.moduleSpecifier\n )})[${JSON.stringify(input.exportName)}])[\"objectTypes\"][number], { id: ${JSON.stringify(\n objectType.id\n )} }>`,\n entries: input.entries,\n seenObjectTypes: input.seenObjectTypes,\n })\n }\n return\n }\n\n if (Array.isArray(input.exportedValue)) {\n for (const item of input.exportedValue) {\n if (!isObjectTypeWithPropertyTokens(item)) continue\n addManifestEntry({\n objectType: item,\n modulePath: input.modulePath,\n exportName: input.exportName,\n typeExpression: `Extract<(typeof import(${JSON.stringify(\n input.moduleSpecifier\n )})[${JSON.stringify(input.exportName)}])[number], { id: ${JSON.stringify(item.id)} }>`,\n entries: input.entries,\n seenObjectTypes: input.seenObjectTypes,\n })\n }\n }\n}\n\nfunction addManifestEntry(input: {\n readonly objectType: ObjectTypeWithPropertyTokens\n readonly modulePath: string\n readonly exportName: string\n readonly typeExpression: string\n readonly entries: Map<string, OntologyTypeManifestEntry>\n readonly seenObjectTypes: Set<unknown>\n}): void {\n if (input.seenObjectTypes.has(input.objectType)) {\n return\n }\n input.seenObjectTypes.add(input.objectType)\n\n const existing = input.entries.get(input.objectType.id)\n const entry: OntologyTypeManifestEntry = {\n objectTypeId: input.objectType.id,\n modulePath: input.modulePath,\n exportName: input.exportName,\n typeExpression: input.typeExpression,\n }\n\n if (!existing) {\n input.entries.set(input.objectType.id, entry)\n return\n }\n\n throw new RuntimeError(\n `[Sixb] Duplicate ontology object type id \"${input.objectType.id}\" while generating `.concat(\n `the type manifest: ${relative(process.cwd(), existing.modulePath)} and `,\n `${relative(process.cwd(), input.modulePath)}.`\n )\n )\n}\n\nfunction renderOntologyTypeManifest(entries: readonly OntologyTypeManifestEntry[]): string {\n const lines = [\n \"// This file is auto-generated by Sixb.\",\n \"// Do not edit this file directly.\",\n \"\",\n 'declare module \"@sixb/core/ontology\" {',\n \" interface SixbObjectTypeMap {\",\n ]\n\n for (const entry of entries) {\n lines.push(` ${JSON.stringify(entry.objectTypeId)}: ${entry.typeExpression}`)\n }\n\n lines.push(\" }\", \"}\", \"\", \"export {}\", \"\")\n return lines.join(\"\\n\")\n}\n\nasync function writeFileIfChanged(path: string, content: string): Promise<boolean> {\n try {\n const existing = await readFile(path, \"utf-8\")\n if (existing === content) return false\n } catch (error) {\n if (!isNotFoundError(error)) throw error\n }\n\n await writeFile(path, content, \"utf-8\")\n return true\n}\n\nasync function loadOntologyModule(input: {\n readonly modulePath: string\n readonly projectRoot: string\n}): Promise<Record<string, unknown>> {\n try {\n return (await import(pathToFileURL(input.modulePath).href)) as Record<string, unknown>\n } catch (error) {\n const relPath = relative(input.projectRoot, input.modulePath)\n const reason = error instanceof Error ? error.message : String(error)\n throw new RuntimeError(`Failed to load ontology module '${relPath}': ${reason}`)\n }\n}\n\nasync function listModuleFiles(dir: string): Promise<string[]> {\n let entries: import(\"node:fs\").Dirent[]\n try {\n entries = (await readdir(dir, { withFileTypes: true })) as import(\"node:fs\").Dirent[]\n } catch (error) {\n if (isNotFoundError(error)) {\n return []\n }\n throw error\n }\n\n const files: string[] = []\n const sortedEntries = [...entries].sort((a, b) => a.name.localeCompare(b.name))\n\n for (const entry of sortedEntries) {\n const fullPath = join(dir, entry.name)\n if (entry.isDirectory()) {\n files.push(...(await listModuleFiles(fullPath)))\n continue\n }\n\n if (!entry.isFile() || !hasSupportedModuleExtension(entry.name)) {\n continue\n }\n\n files.push(fullPath)\n }\n\n return files\n}\n\nfunction toGeneratedModuleSpecifier(input: {\n readonly fromDir: string\n readonly modulePath: string\n}): string {\n const withoutExtension = stripSupportedModuleExtension(input.modulePath)\n const relativePath = relative(input.fromDir, withoutExtension).split(sep).join(\"/\")\n return relativePath.startsWith(\".\") ? relativePath : `./${relativePath}`\n}\n\nfunction stripSupportedModuleExtension(path: string): string {\n const extension = extname(path)\n return moduleExtensions.has(extension) ? path.slice(0, -extension.length) : path\n}\n\nfunction hasSupportedModuleExtension(fileName: string): boolean {\n return moduleExtensions.has(extname(fileName).toLowerCase())\n}\n\nfunction isNotFoundError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false\n }\n\n const code = (error as NodeJS.ErrnoException).code\n return code === \"ENOENT\" || code === \"ENOTDIR\"\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction isObjectTypeWithPropertyTokens(value: unknown): value is ObjectTypeWithPropertyTokens {\n if (!isRecord(value)) {\n return false\n }\n\n return (\n typeof value.id === \"string\" &&\n Array.isArray(value.properties) &&\n Array.isArray(value.links) &&\n isRecord(value.p)\n )\n}\n\nfunction isOntologyDocumentInput(value: unknown): value is OntologyDocumentInput {\n if (!isRecord(value)) {\n return false\n }\n\n return (\n typeof value.id === \"string\" &&\n typeof value.version === \"string\" &&\n Array.isArray(value.objectTypes)\n )\n}\n"
10
- ],
11
- "mappings": "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",
12
- "debugId": "03EE8E60B135B4C464756E2164756E21",
13
- "names": []
14
- }