@astrale-os/kernel-core 0.9.0-beta.9 → 0.9.0

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 (380) hide show
  1. package/dist/auth/authority/accept.js +4 -0
  2. package/dist/auth/authority/admission/admission.d.ts +4 -1
  3. package/dist/auth/authority/admission/admission.js +46 -147
  4. package/dist/auth/authority/admission/index.d.ts +1 -1
  5. package/dist/auth/authority/admission/index.js +1 -1
  6. package/dist/auth/authority/admission/references.d.ts +13 -0
  7. package/dist/auth/authority/admission/references.js +38 -0
  8. package/dist/auth/authority/admission/term.d.ts +6 -0
  9. package/dist/auth/authority/admission/term.js +60 -0
  10. package/dist/auth/authority/admission/wire.d.ts +8 -0
  11. package/dist/auth/authority/admission/wire.js +33 -0
  12. package/dist/auth/authority/canonical.d.ts +2 -0
  13. package/dist/auth/authority/canonical.js +15 -0
  14. package/dist/auth/authority/index.d.ts +9 -2
  15. package/dist/auth/authority/index.js +6 -1
  16. package/dist/auth/authority/language/index.d.ts +3 -1
  17. package/dist/auth/authority/language/index.js +1 -0
  18. package/dist/auth/authority/language/predicate.d.ts +31 -16
  19. package/dist/auth/authority/language/predicate.js +1 -1
  20. package/dist/auth/authority/language/program.d.ts +21 -0
  21. package/dist/auth/authority/language/program.js +2 -0
  22. package/dist/auth/authority/normalization/index.d.ts +1 -1
  23. package/dist/auth/authority/normalization/index.js +1 -1
  24. package/dist/auth/authority/normalization/normalize.d.ts +2 -0
  25. package/dist/auth/authority/normalization/normalize.js +38 -16
  26. package/dist/auth/authority/ownership.optimization.d.ts +8 -0
  27. package/dist/auth/authority/ownership.optimization.js +83 -0
  28. package/dist/auth/authority/prepare-binder-body.d.ts +4 -0
  29. package/dist/auth/authority/prepare-binder-body.js +31 -0
  30. package/dist/auth/authority/program.d.ts +28 -0
  31. package/dist/auth/authority/program.js +191 -0
  32. package/dist/auth/authority/semantics/class-authority.d.ts +8 -0
  33. package/dist/auth/authority/semantics/class-authority.js +26 -0
  34. package/dist/auth/authority/semantics/composition.d.ts +46 -0
  35. package/dist/auth/authority/semantics/composition.js +150 -0
  36. package/dist/auth/authority/semantics/failure.d.ts +21 -0
  37. package/dist/auth/authority/semantics/failure.js +10 -0
  38. package/dist/auth/authority/semantics/index.d.ts +13 -0
  39. package/dist/auth/authority/semantics/index.js +6 -0
  40. package/dist/auth/authority/semantics/interpret.d.ts +41 -0
  41. package/dist/auth/authority/semantics/interpret.js +388 -0
  42. package/dist/auth/authority/semantics/residual.d.ts +32 -0
  43. package/dist/auth/authority/semantics/residual.js +166 -0
  44. package/dist/auth/authority/semantics/snapshot.d.ts +40 -0
  45. package/dist/auth/authority/semantics/terms.d.ts +22 -0
  46. package/dist/auth/authority/semantics/terms.js +96 -0
  47. package/dist/auth/authority/semantics/vocabulary.d.ts +19 -0
  48. package/dist/auth/context/context.d.ts +4 -3
  49. package/dist/auth/expression/authoring/builder.d.ts +2 -11
  50. package/dist/auth/expression/authoring/builder.js +1 -45
  51. package/dist/auth/expression/authoring/index.d.ts +1 -1
  52. package/dist/auth/expression/authoring/index.js +1 -1
  53. package/dist/auth/expression/index.d.ts +1 -2
  54. package/dist/auth/expression/index.js +1 -2
  55. package/dist/auth/expression/language/identity-expression.d.ts +2 -22
  56. package/dist/auth/grant/index.d.ts +1 -1
  57. package/dist/auth/grant/index.js +1 -1
  58. package/dist/auth/grant/resolved/admission.d.ts +4 -3
  59. package/dist/auth/grant/resolved/admission.js +23 -13
  60. package/dist/auth/grant/resolved/grant.d.ts +1 -1
  61. package/dist/auth/grant/resolved/index.d.ts +1 -1
  62. package/dist/auth/grant/resolved/index.js +1 -1
  63. package/dist/auth/grant/unresolved/admission.d.ts +4 -1
  64. package/dist/auth/grant/unresolved/admission.js +27 -67
  65. package/dist/auth/grant/unresolved/limits.d.ts +2 -4
  66. package/dist/auth/grant/unresolved/limits.js +1 -5
  67. package/dist/auth/identity/admission.js +11 -3
  68. package/dist/auth/identity/identity.d.ts +15 -3
  69. package/dist/auth/identity/index.d.ts +1 -1
  70. package/dist/auth/index.d.ts +4 -4
  71. package/dist/auth/index.js +1 -1
  72. package/dist/auth/jwk/index.d.ts +1 -1
  73. package/dist/auth/jwk/index.js +1 -1
  74. package/dist/auth/jwk/thumbprint.d.ts +2 -0
  75. package/dist/auth/jwk/thumbprint.js +12 -6
  76. package/dist/auth/register/fingerprint/fingerprint.d.ts +25 -0
  77. package/dist/auth/register/fingerprint/fingerprint.js +31 -0
  78. package/dist/auth/register/fingerprint/index.d.ts +2 -0
  79. package/dist/auth/register/index.d.ts +5 -0
  80. package/dist/auth/register/request/admission.d.ts +3 -0
  81. package/dist/auth/register/request/admission.js +103 -0
  82. package/dist/auth/register/request/index.d.ts +3 -0
  83. package/dist/auth/register/request/limits.d.ts +6 -0
  84. package/dist/auth/register/request/limits.js +6 -0
  85. package/dist/auth/register/request/request.d.ts +19 -0
  86. package/dist/auth/{provision → register}/request/self-issuer.d.ts +1 -1
  87. package/dist/auth/{provision → register}/request/self-issuer.js +1 -1
  88. package/dist/auth/register/result/index.d.ts +1 -0
  89. package/dist/auth/register/result/result.d.ts +10 -0
  90. package/dist/auth/register/result/result.js +1 -0
  91. package/dist/callable/contract/body.d.ts +10 -0
  92. package/dist/callable/contract/body.js +7 -0
  93. package/dist/callable/contract/index.d.ts +2 -1
  94. package/dist/callable/contract/index.js +1 -1
  95. package/dist/callable/contract/output.d.ts +18 -2
  96. package/dist/callable/index.d.ts +3 -2
  97. package/dist/callable/index.js +2 -1
  98. package/dist/callable/invocation/call.d.ts +16 -2
  99. package/dist/callable/invocation/call.js +41 -1
  100. package/dist/callable/invocation/index.d.ts +1 -1
  101. package/dist/callable/invocation/index.js +1 -1
  102. package/dist/callable/invocation/result.d.ts +10 -3
  103. package/dist/dns-label.d.ts +1 -2
  104. package/dist/dns-label.js +2 -3
  105. package/dist/graph/graph/graph.d.ts +1 -5
  106. package/dist/graph/graph/graph.js +3 -27
  107. package/dist/graph/graph/index.d.ts +2 -4
  108. package/dist/graph/graph/index.js +2 -3
  109. package/dist/graph/graph/model/codec.js +4 -4
  110. package/dist/graph/graph/model/index.d.ts +1 -1
  111. package/dist/graph/graph/model/index.js +1 -1
  112. package/dist/graph/graph/model/model.d.ts +7 -7
  113. package/dist/graph/graph/model/model.js +6 -6
  114. package/dist/graph/graph/model/wire.d.ts +58 -78
  115. package/dist/graph/graph/model/wire.js +18 -19
  116. package/dist/graph/mutate/authoring/builder.d.ts +2 -2
  117. package/dist/graph/mutate/authoring/builder.js +2 -2
  118. package/dist/graph/mutate/authoring/create.js +13 -5
  119. package/dist/graph/mutate/index.d.ts +1 -1
  120. package/dist/graph/mutate/language/codec.js +3 -3
  121. package/dist/graph/mutate/language/model.d.ts +4 -4
  122. package/dist/graph/mutate/language/wire.d.ts +226 -215
  123. package/dist/graph/mutate/language/wire.js +42 -47
  124. package/dist/graph/mutate/result/index.d.ts +4 -3
  125. package/dist/graph/mutate/result/index.js +8 -6
  126. package/dist/graph/mutate/result/wire.d.ts +4 -4
  127. package/dist/graph/mutate/result/wire.js +7 -4
  128. package/dist/graph/node/identity/id.d.ts +0 -4
  129. package/dist/graph/node/identity/id.js +0 -5
  130. package/dist/graph/node/identity/order.js +20 -0
  131. package/dist/graph/path/authoring/path.d.ts +8 -5
  132. package/dist/graph/path/authoring/path.js +21 -3
  133. package/dist/graph/path/language/model.d.ts +8 -3
  134. package/dist/graph/path/language/syntax.js +23 -8
  135. package/dist/graph/query/authoring/builder.js +37 -5
  136. package/dist/graph/query/authoring/model.d.ts +20 -1
  137. package/dist/graph/query/index.d.ts +4 -2
  138. package/dist/graph/query/index.js +1 -0
  139. package/dist/graph/query/language/codec.js +18 -3
  140. package/dist/graph/query/language/fingerprint.js +8 -0
  141. package/dist/graph/query/language/model.d.ts +22 -4
  142. package/dist/graph/query/language/wire.d.ts +124 -114
  143. package/dist/graph/query/language/wire.js +54 -47
  144. package/dist/graph/query/order/index.d.ts +53 -0
  145. package/dist/graph/query/order/index.js +79 -0
  146. package/dist/graph/query/reference/evaluate.d.ts +1 -0
  147. package/dist/graph/query/reference/evaluate.js +39 -52
  148. package/dist/graph/query/result/index.js +1 -1
  149. package/dist/graph/query/result/wire.d.ts +93 -94
  150. package/dist/graph/query/result/wire.js +20 -20
  151. package/dist/graph/reconcile/condition/model.d.ts +2 -2
  152. package/dist/graph/reconcile/condition/references.d.ts +0 -1
  153. package/dist/graph/reconcile/condition/references.js +4 -4
  154. package/dist/graph/reconcile/correspondence.d.ts +9 -8
  155. package/dist/graph/reconcile/evidence.d.ts +2 -2
  156. package/dist/graph/reconcile/mutation/assess.d.ts +2 -1
  157. package/dist/graph/reconcile/observation.d.ts +4 -3
  158. package/dist/graph/reconcile/planning/canonical.d.ts +6 -0
  159. package/dist/graph/reconcile/planning/canonical.js +28 -0
  160. package/dist/graph/reconcile/planning/context.d.ts +3 -3
  161. package/dist/graph/reconcile/planning/model.d.ts +8 -4
  162. package/dist/graph/reconcile/planning/plan.js +2 -1
  163. package/dist/schema/authority/authority-relation.js +3 -0
  164. package/dist/schema/authority/claims.d.ts +24 -25
  165. package/dist/schema/authority/claims.js +8 -8
  166. package/dist/schema/authority/governed-by.d.ts +16 -91
  167. package/dist/schema/authority/governed-by.js +1 -1
  168. package/dist/schema/authority/operation-node.d.ts +27 -13
  169. package/dist/schema/authority/operations.d.ts +8 -168
  170. package/dist/schema/authority/policy.d.ts +27 -15
  171. package/dist/schema/authority/vocabulary.d.ts +3 -0
  172. package/dist/schema/authority/vocabulary.js +25 -0
  173. package/dist/schema/callables/entrypoint.d.ts +32 -0
  174. package/dist/schema/callables/entrypoint.js +12 -0
  175. package/dist/schema/callables/execution.d.ts +569 -0
  176. package/dist/schema/callables/execution.js +32 -0
  177. package/dist/schema/callables/function.d.ts +3400 -55
  178. package/dist/schema/callables/function.js +6 -4
  179. package/dist/schema/callables/index.d.ts +2 -1
  180. package/dist/schema/callables/index.js +2 -1
  181. package/dist/schema/callables/method-of.d.ts +18 -143
  182. package/dist/schema/callables/method-of.js +2 -2
  183. package/dist/schema/callables/view.d.ts +83 -51
  184. package/dist/schema/definitions/class.d.ts +45 -33
  185. package/dist/schema/definitions/extends.d.ts +16 -110
  186. package/dist/schema/definitions/instance-of.d.ts +17 -69
  187. package/dist/schema/domain/domain.d.ts +3343 -148
  188. package/dist/schema/domain/domain.js +6 -3
  189. package/dist/schema/domain/of-domain.d.ts +18 -192
  190. package/dist/schema/domain/of-domain.js +1 -1
  191. package/dist/schema/identity/composition.d.ts +5 -0
  192. package/dist/schema/identity/composition.js +5 -0
  193. package/dist/schema/identity/identity.d.ts +225 -122
  194. package/dist/schema/identity/identity.js +3 -4
  195. package/dist/schema/index.d.ts +1 -0
  196. package/dist/schema/index.js +1 -0
  197. package/dist/schema/installation/operation-id.d.ts +1 -2
  198. package/dist/schema/installation/operation-id.js +2 -4
  199. package/dist/schema/introspection/index.d.ts +1 -1
  200. package/dist/schema/introspection/language.d.ts +12 -28
  201. package/dist/schema/kernel/projection/callables.js +2 -3
  202. package/dist/schema/kernel/projection/core.d.ts +7 -0
  203. package/dist/schema/kernel/projection/core.js +51 -0
  204. package/dist/schema/kernel/projection/definitions.d.ts +13 -0
  205. package/dist/schema/kernel/projection/definitions.js +71 -0
  206. package/dist/schema/kernel/projection/index.d.ts +3 -3
  207. package/dist/schema/kernel/projection/index.js +2 -2
  208. package/dist/schema/kernel/projection/methods.d.ts +5 -0
  209. package/dist/schema/kernel/projection/methods.js +41 -0
  210. package/dist/schema/kernel/projection/part.d.ts +34 -0
  211. package/dist/schema/kernel/projection/part.js +42 -0
  212. package/dist/schema/kernel/projection/paths.d.ts +6 -0
  213. package/dist/schema/kernel/projection/{keys.js → paths.js} +12 -14
  214. package/dist/schema/kernel/projection/project.d.ts +4 -2
  215. package/dist/schema/kernel/projection/project.js +33 -258
  216. package/dist/schema/kernel/projection/properties.d.ts +11 -0
  217. package/dist/schema/kernel/projection/properties.js +36 -0
  218. package/dist/schema/kernel/projection/relations.d.ts +7 -0
  219. package/dist/schema/kernel/projection/relations.js +61 -0
  220. package/dist/schema/kernel/projection/types.d.ts +28 -2
  221. package/dist/schema/kernel/schema.d.ts +9008 -4939
  222. package/dist/schema/kernel/schema.js +12 -8
  223. package/dist/schema/kernel/syscalls/contracts/admit.d.ts +15 -12
  224. package/dist/schema/kernel/syscalls/contracts/admit.js +16 -9
  225. package/dist/schema/kernel/syscalls/contracts/blob.d.ts +31 -0
  226. package/dist/schema/kernel/syscalls/contracts/blob.js +24 -0
  227. package/dist/schema/kernel/syscalls/contracts/can.d.ts +19 -8
  228. package/dist/schema/kernel/syscalls/contracts/can.js +12 -4
  229. package/dist/schema/kernel/syscalls/contracts/delegate.d.ts +6 -7
  230. package/dist/schema/kernel/syscalls/contracts/delegate.js +5 -5
  231. package/dist/schema/kernel/syscalls/contracts/execution.d.ts +300 -0
  232. package/dist/schema/kernel/syscalls/contracts/execution.js +116 -0
  233. package/dist/schema/kernel/syscalls/contracts/expected.d.ts +5 -0
  234. package/dist/schema/kernel/syscalls/contracts/expected.js +9 -0
  235. package/dist/schema/kernel/syscalls/contracts/identity.d.ts +18 -19
  236. package/dist/schema/kernel/syscalls/contracts/identity.js +6 -7
  237. package/dist/schema/kernel/syscalls/contracts/impersonate.d.ts +6 -0
  238. package/dist/schema/kernel/syscalls/contracts/impersonate.js +4 -0
  239. package/dist/schema/kernel/syscalls/contracts/index.d.ts +6 -3
  240. package/dist/schema/kernel/syscalls/contracts/index.js +6 -3
  241. package/dist/schema/kernel/syscalls/contracts/install.d.ts +309 -217
  242. package/dist/schema/kernel/syscalls/contracts/install.js +68 -26
  243. package/dist/schema/kernel/syscalls/contracts/installation.d.ts +70 -351
  244. package/dist/schema/kernel/syscalls/contracts/installation.js +29 -67
  245. package/dist/schema/kernel/syscalls/contracts/introspect.d.ts +11 -15
  246. package/dist/schema/kernel/syscalls/contracts/introspect.js +8 -15
  247. package/dist/schema/kernel/syscalls/contracts/journal.d.ts +26 -27
  248. package/dist/schema/kernel/syscalls/contracts/journal.js +15 -15
  249. package/dist/schema/kernel/syscalls/contracts/mint.d.ts +5 -7
  250. package/dist/schema/kernel/syscalls/contracts/mint.js +4 -5
  251. package/dist/schema/kernel/syscalls/contracts/mutate.d.ts +243 -224
  252. package/dist/schema/kernel/syscalls/contracts/mutate.js +7 -1
  253. package/dist/schema/kernel/syscalls/contracts/query.d.ts +239 -222
  254. package/dist/schema/kernel/syscalls/contracts/query.js +17 -15
  255. package/dist/schema/kernel/syscalls/contracts/register.d.ts +20 -0
  256. package/dist/schema/kernel/syscalls/contracts/register.js +24 -0
  257. package/dist/schema/kernel/syscalls/contracts/uninstall.d.ts +55 -148
  258. package/dist/schema/kernel/syscalls/contracts/uninstall.js +7 -5
  259. package/dist/schema/kernel/syscalls/contracts/view-host-requirements.d.ts +17 -0
  260. package/dist/schema/kernel/syscalls/contracts/view-host-requirements.js +40 -0
  261. package/dist/schema/kernel/syscalls/contracts/view-resolve.d.ts +27 -28
  262. package/dist/schema/kernel/syscalls/contracts/view-resolve.js +16 -24
  263. package/dist/schema/kernel/syscalls/contracts/whoami.d.ts +19 -20
  264. package/dist/schema/kernel/syscalls/contracts/whoami.js +2 -2
  265. package/dist/schema/kernel/syscalls/contracts/whois.d.ts +22 -23
  266. package/dist/schema/kernel/syscalls/contracts/whois.js +3 -3
  267. package/dist/schema/kernel/syscalls/declarations/admit.d.ts +18 -18
  268. package/dist/schema/kernel/syscalls/declarations/admit.js +3 -3
  269. package/dist/schema/kernel/syscalls/declarations/can.d.ts +19 -14
  270. package/dist/schema/kernel/syscalls/declarations/can.js +4 -4
  271. package/dist/schema/kernel/syscalls/declarations/delegate.d.ts +9 -12
  272. package/dist/schema/kernel/syscalls/declarations/delegate.js +4 -4
  273. package/dist/schema/kernel/syscalls/declarations/download.d.ts +12 -0
  274. package/dist/schema/kernel/syscalls/declarations/download.js +10 -0
  275. package/dist/schema/kernel/syscalls/declarations/execution.d.ts +255 -0
  276. package/dist/schema/kernel/syscalls/declarations/execution.js +52 -0
  277. package/dist/schema/kernel/syscalls/declarations/impersonate.d.ts +9 -0
  278. package/dist/schema/kernel/syscalls/declarations/impersonate.js +12 -0
  279. package/dist/schema/kernel/syscalls/declarations/index.d.ts +1079 -1323
  280. package/dist/schema/kernel/syscalls/declarations/index.js +18 -2
  281. package/dist/schema/kernel/syscalls/declarations/install.d.ts +85 -172
  282. package/dist/schema/kernel/syscalls/declarations/install.js +7 -3
  283. package/dist/schema/kernel/syscalls/declarations/introspect.d.ts +8 -19
  284. package/dist/schema/kernel/syscalls/declarations/introspect.js +3 -4
  285. package/dist/schema/kernel/syscalls/declarations/journal.d.ts +29 -31
  286. package/dist/schema/kernel/syscalls/declarations/journal.js +4 -2
  287. package/dist/schema/kernel/syscalls/declarations/mint.d.ts +8 -13
  288. package/dist/schema/kernel/syscalls/declarations/mint.js +5 -5
  289. package/dist/schema/kernel/syscalls/declarations/mutate.d.ts +239 -256
  290. package/dist/schema/kernel/syscalls/declarations/mutate.js +4 -2
  291. package/dist/schema/kernel/syscalls/declarations/query.d.ts +236 -260
  292. package/dist/schema/kernel/syscalls/declarations/query.js +4 -2
  293. package/dist/schema/kernel/syscalls/declarations/register.d.ts +23 -0
  294. package/dist/schema/kernel/syscalls/declarations/register.js +10 -0
  295. package/dist/schema/kernel/syscalls/declarations/uninstall.d.ts +51 -153
  296. package/dist/schema/kernel/syscalls/declarations/uninstall.js +6 -2
  297. package/dist/schema/kernel/syscalls/declarations/upload.d.ts +15 -0
  298. package/dist/schema/kernel/syscalls/declarations/upload.js +10 -0
  299. package/dist/schema/kernel/syscalls/declarations/use-policy.d.ts +4 -0
  300. package/dist/schema/kernel/syscalls/declarations/use-policy.js +9 -0
  301. package/dist/schema/kernel/syscalls/declarations/view-resolve.d.ts +30 -37
  302. package/dist/schema/kernel/syscalls/declarations/view-resolve.js +5 -3
  303. package/dist/schema/kernel/syscalls/declarations/whoami.d.ts +22 -26
  304. package/dist/schema/kernel/syscalls/declarations/whoami.js +3 -3
  305. package/dist/schema/kernel/syscalls/declarations/whois.d.ts +25 -29
  306. package/dist/schema/kernel/syscalls/declarations/whois.js +5 -3
  307. package/dist/schema/kernel/syscalls/descriptors/execution.d.ts +303 -0
  308. package/dist/schema/kernel/syscalls/descriptors/execution.js +11 -0
  309. package/dist/schema/kernel/syscalls/descriptors/function.d.ts +8 -2
  310. package/dist/schema/kernel/syscalls/descriptors/functions.d.ts +3 -1
  311. package/dist/schema/kernel/syscalls/descriptors/functions.js +3 -1
  312. package/dist/schema/kernel/syscalls/descriptors/identity.d.ts +47 -13
  313. package/dist/schema/kernel/syscalls/descriptors/identity.js +2 -1
  314. package/dist/schema/kernel/syscalls/descriptors/index.d.ts +2 -1
  315. package/dist/schema/kernel/syscalls/descriptors/index.js +2 -1
  316. package/dist/schema/kernel/syscalls/descriptors/results/view-resolution.d.ts +5 -2
  317. package/dist/schema/kernel/syscalls/descriptors/results/view-resolution.js +8 -38
  318. package/dist/schema/kernel/syscalls/descriptors/view.d.ts +11 -9
  319. package/dist/schema/kernel/syscalls/index.d.ts +2 -2
  320. package/dist/schema/kernel/syscalls/index.js +2 -2
  321. package/dist/schema/kernel/syscalls/references/execution.d.ts +55 -0
  322. package/dist/schema/kernel/syscalls/references/execution.js +13 -0
  323. package/dist/schema/kernel/syscalls/references/functions.d.ts +12 -2
  324. package/dist/schema/kernel/syscalls/references/functions.js +3 -1
  325. package/dist/schema/kernel/syscalls/references/identity.d.ts +9 -0
  326. package/dist/schema/kernel/syscalls/references/identity.js +1 -0
  327. package/dist/schema/kernel/syscalls/references/index.d.ts +2 -1
  328. package/dist/schema/kernel/syscalls/references/index.js +2 -1
  329. package/dist/schema/meta/created-by.d.ts +32 -0
  330. package/dist/schema/meta/created-by.js +17 -0
  331. package/dist/schema/meta/descriptable.d.ts +13 -11
  332. package/dist/schema/meta/edge.d.ts +5 -9
  333. package/dist/schema/meta/iconable.d.ts +13 -11
  334. package/dist/schema/meta/index.d.ts +1 -0
  335. package/dist/schema/meta/index.js +1 -0
  336. package/dist/schema/meta/named.d.ts +13 -9
  337. package/dist/schema/meta/node.d.ts +9 -1
  338. package/dist/schema/meta/remotable.d.ts +15 -22
  339. package/dist/schema/meta/statused.d.ts +13 -7
  340. package/dist/schema/meta/timestamped.d.ts +14 -12
  341. package/package.json +9 -7
  342. package/dist/auth/expression/normalization/canonicalize.d.ts +0 -7
  343. package/dist/auth/expression/normalization/canonicalize.js +0 -102
  344. package/dist/auth/expression/normalization/index.d.ts +0 -2
  345. package/dist/auth/expression/normalization/index.js +0 -2
  346. package/dist/auth/expression/normalization/raise-denials.d.ts +0 -3
  347. package/dist/auth/expression/normalization/raise-denials.js +0 -59
  348. package/dist/auth/provision/fingerprint/fingerprint.d.ts +0 -9
  349. package/dist/auth/provision/fingerprint/fingerprint.js +0 -33
  350. package/dist/auth/provision/fingerprint/index.d.ts +0 -2
  351. package/dist/auth/provision/index.d.ts +0 -5
  352. package/dist/auth/provision/request/admission.d.ts +0 -3
  353. package/dist/auth/provision/request/admission.js +0 -125
  354. package/dist/auth/provision/request/index.d.ts +0 -3
  355. package/dist/auth/provision/request/request.d.ts +0 -29
  356. package/dist/auth/provision/result/index.d.ts +0 -1
  357. package/dist/auth/provision/result/result.d.ts +0 -12
  358. package/dist/graph/graph/navigation/error.d.ts +0 -12
  359. package/dist/graph/graph/navigation/error.js +0 -20
  360. package/dist/graph/graph/navigation/index.d.ts +0 -2
  361. package/dist/graph/graph/navigation/index.js +0 -1
  362. package/dist/graph/graph/navigation/model.d.ts +0 -15
  363. package/dist/schema/callables/view-for.d.ts +0 -296
  364. package/dist/schema/callables/view-for.js +0 -12
  365. package/dist/schema/kernel/projection/keys.d.ts +0 -3
  366. package/dist/schema/kernel/projection/path.d.ts +0 -2
  367. package/dist/schema/kernel/projection/path.js +0 -140
  368. package/dist/schema/kernel/syscalls/contracts/provision.d.ts +0 -292
  369. package/dist/schema/kernel/syscalls/contracts/provision.js +0 -19
  370. package/dist/schema/kernel/syscalls/declarations/define.d.ts +0 -5
  371. package/dist/schema/kernel/syscalls/declarations/define.js +0 -7
  372. package/dist/schema/kernel/syscalls/declarations/provision.d.ts +0 -296
  373. package/dist/schema/kernel/syscalls/declarations/provision.js +0 -8
  374. /package/dist/auth/{provision/request/request.js → authority/semantics/snapshot.js} +0 -0
  375. /package/dist/auth/{provision/result/index.js → authority/semantics/vocabulary.js} +0 -0
  376. /package/dist/auth/{provision → register}/fingerprint/index.js +0 -0
  377. /package/dist/auth/{provision → register}/index.js +0 -0
  378. /package/dist/auth/{provision → register}/request/index.js +0 -0
  379. /package/dist/auth/{provision/result/result.js → register/request/request.js} +0 -0
  380. /package/dist/{graph/graph/navigation/model.js → auth/register/result/index.js} +0 -0
@@ -1,269 +1,44 @@
1
- import { Key, } from '@astrale-os/kernel-dsl/v1';
2
- import { ClassKey as ClassKeyValue } from '@astrale-os/kernel-dsl/v1/addressing';
3
- import { LocalBinding as LocalBindingValue } from '#graph/graph';
4
- import { NodePath as NodePathValue, Path as PathValue } from '#graph/path';
5
- import { normalizeProperties } from '#graph/properties';
6
- import { K } from '../index.js';
7
- import { projectedMethodPath } from './callables.js';
8
- import { ProjectionError } from './diagnostics.js';
9
- import { coreKeys, managedKeys } from './keys.js';
10
- const EMPTY_PROPERTIES = normalizeProperties({});
1
+ import { projectCore } from './core.js';
2
+ import { projectDefinitions, projectDomain } from './definitions.js';
3
+ import { projectMethods } from './methods.js';
4
+ import { Part } from './part.js';
5
+ import { corePaths, managedPaths } from './paths.js';
6
+ import { projectRelations } from './relations.js';
7
+ const NO_PAYLOAD = Object.freeze({});
11
8
  /** Project a Domain into an installation-independent symbolic graph. */
12
9
  export function project(domain) {
13
- const domainSchema = domain.source;
14
- const managedLocations = projectionLocations(managedKeys(domain));
15
- const coreLocations = projectionLocations(coreKeys(domain));
16
- const managedNodes = new Map();
17
- const managedEdges = [];
18
- const coreNodes = new Map();
19
- const coreEdges = [];
20
- const locators = [];
21
- const domainPath = PathValue.domain(domain.origin).raw;
22
- const domainEndpoint = endpoint(domainPath, managedLocations);
23
- const persistedDomainEndpoint = Object.freeze({ path: NodePathValue(domainPath) });
24
- addNode(managedNodes, domainPath, ClassKeyValue.of(K.classes.Domain.ref), domainPropertiesFor(domain), managedLocations);
25
- for (const definition of domain.definitions()) {
26
- if (definition.ref.origin !== domain.origin)
27
- continue;
28
- const projectedClass = projectionClassFor(definition);
29
- if (projectedClass === undefined)
30
- continue;
31
- const definitionPath = PathValue.project(definition.ref).raw;
32
- const definitionEndpoint = addNode(managedNodes, definitionPath, projectedClass, definitionPropertiesFor(definition), managedLocations);
33
- addEdge(managedEdges, definitionEndpoint, domainEndpoint, K.classes.of_domain.ref, normalizeProperties({
34
- [K.classes.of_domain.self.properties.member.key]: memberKey(definition),
35
- }));
36
- }
37
- for (const definition of domain.definitions()) {
38
- if (definition.ref.origin !== domain.origin)
39
- continue;
40
- const projectedClass = projectionClassFor(definition);
41
- if (projectedClass === undefined)
42
- continue;
43
- projectDefinitionRelations(domain, definition, endpoint(PathValue.project(definition.ref).raw, managedLocations), managedLocations, managedEdges);
44
- }
45
- const methods = new Map();
46
- for (const definition of Object.values(domain.classes)) {
47
- for (const method of [...definition.methods, ...definition.static.methods]) {
48
- if (method.owner.ref.origin === domain.origin &&
49
- method.definition.inheritance !== 'abstract') {
50
- methods.set(method.key, method);
51
- }
52
- }
53
- }
54
- for (const method of methods.values()) {
55
- const methodPath = projectedMethodPath(domain, method);
56
- const methodEndpoint = addNode(managedNodes, methodPath, ClassKeyValue.of(K.classes.Function.ref), callablePropertiesFor(method.definition), managedLocations);
57
- const ownerPath = PathValue.project(method.owner.ref);
58
- addEdge(managedEdges, methodEndpoint, endpoint(ownerPath.raw, managedLocations), K.classes.method_of.ref, normalizeProperties({
59
- [K.classes.method_of.self.properties.name.key]: method.name,
60
- [K.classes.method_of.self.properties.static.key]: method.definition.static,
61
- }));
62
- }
63
- for (const [slug, declaration] of Object.entries(domainSchema.core.nodes)) {
64
- const path = PathValue.project({ origin: domain.origin, kind: 'core', name: slug }).raw;
65
- const created = addNode(coreNodes, path, ClassKeyValue.of(declaration.class), declaration.properties, coreLocations);
66
- addEdge(locators, created, persistedDomainEndpoint, K.classes.of_domain.ref, normalizeProperties({
67
- [K.classes.of_domain.self.properties.member.key]: `core.${slug}`,
68
- }));
69
- }
70
- for (const declaration of domainSchema.core.edges) {
71
- addEdge(coreEdges, coreEndpoint(declaration.source, domain, persistedDomainEndpoint, coreLocations), coreEndpoint(declaration.target, domain, persistedDomainEndpoint, coreLocations), declaration.class, declaration.properties);
72
- }
10
+ const projected = walk(domain, (properties) => ({ props: properties() }));
73
11
  return Object.freeze({
74
- origin: domain.origin,
75
- revision: domain.revision,
12
+ origin: projected.origin,
13
+ revision: projected.revision,
76
14
  managed: Object.freeze({
77
- graph: Object.freeze({
78
- nodes: Object.freeze([...managedNodes.values()]),
79
- edges: Object.freeze(managedEdges),
80
- }),
81
- paths: invert(managedLocations),
15
+ graph: Object.freeze({ nodes: projected.managed.nodes, edges: projected.managed.edges }),
16
+ paths: projected.managed.paths,
82
17
  }),
83
18
  core: Object.freeze({
84
- graph: Object.freeze({
85
- nodes: Object.freeze([...coreNodes.values()]),
86
- edges: Object.freeze(coreEdges),
87
- }),
88
- paths: invert(coreLocations),
89
- locators: Object.freeze(locators),
19
+ graph: Object.freeze({ nodes: projected.core.nodes, edges: projected.core.edges }),
20
+ paths: projected.core.paths,
21
+ locators: projected.core.locators,
90
22
  }),
91
23
  });
92
24
  }
93
- function projectionLocations(paths) {
94
- return new Map(paths.map((path, index) => [NodePathValue(path), LocalBindingValue(`n${index}`)]));
95
- }
96
- function invert(locations) {
97
- return new Map([...locations].map(([path, binding]) => [binding, path]));
98
- }
99
- function coreEndpoint(value, domain, domainEndpoint, locations) {
100
- if (value.kind === 'domain')
101
- return domainEndpoint;
102
- return endpoint(PathValue.project({ origin: domain.origin, kind: 'core', name: value.name }).raw, locations);
103
- }
104
- function projectDefinitionRelations(domain, definition, definitionEndpoint, locations, edges) {
105
- if (isResolvedClass(definition)) {
106
- for (const parent of definition.definition.extends) {
107
- const path = PathValue.project(parent);
108
- addEdge(edges, definitionEndpoint, endpoint(path.raw, locations), K.classes.extends.ref, EMPTY_PROPERTIES);
109
- }
110
- }
111
- if (isResolvedClass(definition)) {
112
- const declaration = definition.definition;
113
- const assignments = declaration.kind === 'node'
114
- ? [
115
- ['read', declaration.policies.read],
116
- ['traverse', declaration.policies.traverse],
117
- ]
118
- : [['traverse', declaration.policies.traverse]];
119
- const policies = new Map();
120
- for (const [operation, policy] of assignments) {
121
- if (policy === undefined)
122
- continue;
123
- const key = Key.of(policy);
124
- const existing = policies.get(key);
125
- if (existing === undefined) {
126
- policies.set(key, { policy, operations: new Set([operation]) });
127
- }
128
- else {
129
- existing.operations.add(operation);
130
- }
131
- }
132
- for (const { policy, operations } of policies.values()) {
133
- addEdge(edges, definitionEndpoint, endpoint(PathValue.project(policy).raw, locations), K.classes.governed_by.ref, normalizeProperties({
134
- [K.classes.governed_by.self.properties.operations.key]: Object.freeze(['read', 'traverse'].filter((operation) => operations.has(operation))),
135
- }));
136
- }
137
- }
138
- if (isResolvedView(definition)) {
139
- const target = definition.definition.target;
140
- const paths = target.kind === 'domain'
141
- ? [PathValue.domain(domain.origin)]
142
- : target.definitions.map((reference) => {
143
- if (reference.kind !== 'class') {
144
- throw new ProjectionError('PROJECTION_INVALID', `View target ${reference.origin}:${reference.kind}.${reference.name} is not a Class.`);
145
- }
146
- return PathValue.project({
147
- origin: reference.origin,
148
- kind: 'class',
149
- name: reference.name,
150
- });
151
- });
152
- for (const path of paths) {
153
- addEdge(edges, definitionEndpoint, endpoint(path.raw, locations), K.classes.view_for.ref, EMPTY_PROPERTIES);
154
- }
155
- }
156
- }
157
- function projectionClassFor(definition) {
158
- if (definition.ref.kind === 'class')
159
- return ClassKeyValue.of(K.classes.Class.ref);
160
- switch (definition.ref.kind) {
161
- case 'function':
162
- return ClassKeyValue.of(K.classes.Function.ref);
163
- case 'policy':
164
- return ClassKeyValue.of(K.classes.Policy.ref);
165
- case 'view':
166
- return ClassKeyValue.of(K.classes.View.ref);
167
- case 'core':
168
- return undefined;
169
- default:
170
- return undefined;
171
- }
172
- }
173
- function definitionPropertiesFor(definition) {
174
- const description = declarationDescription(definition);
175
- const metadata = descriptionProperties(description);
176
- if (isResolvedClass(definition)) {
177
- const declaration = definition.definition;
178
- const icon = declaration.kind === 'node' ? declaration.icon : undefined;
179
- return normalizeProperties({
180
- ...metadata,
181
- [K.classes.Class.self.properties.kind.key]: declaration.kind,
182
- [K.classes.Class.self.properties.abstract.key]: declaration.abstract,
183
- ...(icon !== undefined ? { [K.classes.Iconable.self.properties.icon.key]: icon } : {}),
184
- });
185
- }
186
- if (isResolvedFunction(definition)) {
187
- return callablePropertiesFor(definition.definition);
188
- }
189
- if (definition.ref.kind === 'view') {
190
- return normalizeProperties(metadata);
191
- }
192
- if (definition.ref.kind === 'policy')
193
- return normalizeProperties(metadata);
194
- return EMPTY_PROPERTIES;
195
- }
196
- function isResolvedClass(definition) {
197
- return definition.ref.kind === 'class';
198
- }
199
- function isResolvedFunction(definition) {
200
- return definition.ref.kind === 'function';
201
- }
202
- function isResolvedView(definition) {
203
- return definition.ref.kind === 'view';
204
- }
205
- function callablePropertiesFor(declaration) {
206
- const method = 'static' in declaration;
207
- return normalizeProperties({
208
- ...descriptionProperties(declaration.description),
209
- [K.classes.Function.self.properties.kind.key]: method ? 'method' : 'function',
210
- [K.classes.Function.self.properties.input.key]: declaration.input,
211
- [K.classes.Function.self.properties.output.key]: declaration.output,
212
- [K.classes.Function.self.properties.auth.key]: declaration.auth,
213
- ...(declaration.policy === undefined
214
- ? {}
215
- : {
216
- [K.classes.Function.self.properties.policy.key]: declaration.policy,
217
- }),
218
- ...(method
219
- ? {
220
- [K.classes.Function.self.properties.static.key]: declaration.static,
221
- [K.classes.Function.self.properties.inheritance.key]: declaration.inheritance,
222
- }
223
- : {}),
224
- });
225
- }
226
- function descriptionProperties(description) {
227
- if (description === undefined)
228
- return {};
229
- return { [K.classes.Descriptable.self.properties.description.key]: description };
230
- }
231
- function declarationDescription(definition) {
232
- if (definition.ref.kind === 'core')
233
- return undefined;
234
- return definition.definition.description;
235
- }
236
- function memberKey(definition) {
237
- return `${definition.ref.kind}.${definition.ref.name}`;
238
- }
239
- /** Identity properties are supplied atomically by trusted lifecycle materialization. */
240
- function domainPropertiesFor(domain) {
241
- return normalizeProperties({
242
- [K.classes.Domain.self.properties.origin.key]: domain.origin,
243
- [K.classes.Domain.self.properties.schema.key]: domain.source,
244
- [K.classes.Domain.self.properties.schemaRevision.key]: domain.revision,
25
+ /** Project only symbolic ownership, retaining every declaration and structural check. */
26
+ export function projectTopology(domain) {
27
+ return walk(domain, () => NO_PAYLOAD);
28
+ }
29
+ /** Both projections take the same steps in the same order; only the payload differs. */
30
+ function walk(domain, payload) {
31
+ const managed = new Part(managedPaths(domain));
32
+ const core = new Part(corePaths(domain));
33
+ const domainEndpoint = projectDomain(domain, managed, payload);
34
+ projectDefinitions(domain, managed, domainEndpoint, payload);
35
+ projectRelations(domain, managed, payload);
36
+ projectMethods(domain, managed, domainEndpoint, payload);
37
+ const locators = projectCore(domain, core, payload);
38
+ return Object.freeze({
39
+ origin: domain.origin,
40
+ revision: domain.revision,
41
+ managed: managed.done(),
42
+ core: Object.freeze({ ...core.done(), locators: Object.freeze(locators) }),
245
43
  });
246
44
  }
247
- function endpoint(path, locations) {
248
- const created = locations.get(path);
249
- return created === undefined ? Object.freeze({ path }) : Object.freeze({ created });
250
- }
251
- function addNode(nodes, path, classKey, props, locations) {
252
- const existing = nodes.get(path);
253
- if (existing !== undefined)
254
- return Object.freeze({ created: existing.as });
255
- const as = locations.get(path);
256
- if (as === undefined) {
257
- throw new ProjectionError('PROJECTION_INVALID', `Projection has no binding for ${path}.`);
258
- }
259
- nodes.set(path, Object.freeze({ as, class: classKey, props }));
260
- return Object.freeze({ created: as });
261
- }
262
- function addEdge(edges, source, target, classRef, props) {
263
- edges.push(Object.freeze({
264
- source,
265
- target,
266
- class: ClassKeyValue.of(classRef),
267
- props,
268
- }));
269
- }
@@ -0,0 +1,11 @@
1
+ import type { FunctionDefinition, MethodDefinition } from '@astrale-os/kernel-dsl/v1';
2
+ import type * as portable from '@astrale-os/kernel-dsl/value';
3
+ import { type Properties } from '#graph/properties';
4
+ /** The Properties of a declaration or relation that carries none. */
5
+ export declare const EMPTY_PROPERTIES: import("@astrale-os/kernel-dsl/v1").PropertyValues;
6
+ /** The of_domain Properties locating a declaration under its Domain member name. */
7
+ export declare function memberProperties(member: string): Properties;
8
+ /** The Descriptable Property of an authored description, if any. */
9
+ export declare function descriptionProperties(description: string | undefined): Record<string, portable.Value>;
10
+ /** The Function Node Properties carrying a Function's or Method's complete callable contract. */
11
+ export declare function callableProperties(declaration: FunctionDefinition | MethodDefinition): Properties;
@@ -0,0 +1,36 @@
1
+ import { normalizeProperties } from '#graph/properties';
2
+ import { K } from '../index.js';
3
+ /** The Properties of a declaration or relation that carries none. */
4
+ export const EMPTY_PROPERTIES = normalizeProperties({});
5
+ /** The of_domain Properties locating a declaration under its Domain member name. */
6
+ export function memberProperties(member) {
7
+ return normalizeProperties({ [K.classes.of_domain.self.properties.member.key]: member });
8
+ }
9
+ /** The Descriptable Property of an authored description, if any. */
10
+ export function descriptionProperties(description) {
11
+ if (description === undefined)
12
+ return {};
13
+ return { [K.classes.Descriptable.self.properties.description.key]: description };
14
+ }
15
+ /** The Function Node Properties carrying a Function's or Method's complete callable contract. */
16
+ export function callableProperties(declaration) {
17
+ const method = 'static' in declaration;
18
+ return normalizeProperties({
19
+ ...descriptionProperties(declaration.description),
20
+ [K.classes.Function.self.properties.kind.key]: method ? 'method' : 'function',
21
+ [K.classes.Function.self.properties.input.key]: declaration.input,
22
+ [K.classes.Function.self.properties.output.key]: declaration.output,
23
+ [K.classes.Function.self.properties.auth.key]: declaration.auth,
24
+ ...(declaration.policy === undefined
25
+ ? {}
26
+ : {
27
+ [K.classes.Function.self.properties.policy.key]: declaration.policy,
28
+ }),
29
+ ...(method
30
+ ? {
31
+ [K.classes.Function.self.properties.static.key]: declaration.static,
32
+ [K.classes.Function.self.properties.abstract.key]: declaration.abstract,
33
+ }
34
+ : {}),
35
+ });
36
+ }
@@ -0,0 +1,7 @@
1
+ import { type SourceDomain, type schema } from '@astrale-os/kernel-dsl/v1';
2
+ import { type Part, type Payload } from './part.js';
3
+ /**
4
+ * Relate each local Definition to its parent Classes and governing Policies, and the entrypoint
5
+ * View to its Domain.
6
+ */
7
+ export declare function projectRelations<Extra extends object>(domain: SourceDomain<schema.DomainSchema>, managed: Part<Extra>, payload: Payload<Extra>): void;
@@ -0,0 +1,61 @@
1
+ import { Key, } from '@astrale-os/kernel-dsl/v1';
2
+ import { isClassRuleChecks } from '@astrale-os/kernel-dsl/v1/language';
3
+ import { Path } from '#graph/path';
4
+ import { normalizeProperties } from '#graph/properties';
5
+ import { K } from '../index.js';
6
+ import { is, projectedDefinitions } from './definitions.js';
7
+ import { edge } from './part.js';
8
+ import { EMPTY_PROPERTIES } from './properties.js';
9
+ const OPERATIONS = ['read', 'traverse'];
10
+ /**
11
+ * Relate each local Definition to its parent Classes and governing Policies, and the entrypoint
12
+ * View to its Domain.
13
+ */
14
+ export function projectRelations(domain, managed, payload) {
15
+ for (const [definition] of projectedDefinitions(domain)) {
16
+ const source = managed.endpoint(Path.project(definition.ref).raw);
17
+ const relate = (target, classRef, extra) => managed.edges.push(edge(source, managed.endpoint(target), classRef, extra));
18
+ if (is(definition, 'class')) {
19
+ for (const parent of definition.definition.extends) {
20
+ relate(Path.project(parent).raw, K.classes.extends.ref, payload(() => EMPTY_PROPERTIES));
21
+ }
22
+ for (const [policy, operations] of governingPolicies(definition)) {
23
+ relate(Path.project(policy).raw, K.classes.governed_by.ref, payload(() => normalizeProperties({
24
+ [K.classes.governed_by.self.properties.operations.key]: operations,
25
+ })));
26
+ }
27
+ }
28
+ // The one entrypoint View links to its own Domain; other Views relate to it only by of_domain.
29
+ if (is(definition, 'view') && domain.source.entrypoint?.name === definition.ref.name) {
30
+ relate(Path.domain(domain.origin).raw, K.classes.entrypoint.ref, payload(() => EMPTY_PROPERTIES));
31
+ }
32
+ }
33
+ }
34
+ /** Each distinct Policy of a Class, with the operations it governs in canonical order. */
35
+ function governingPolicies(definition) {
36
+ const policies = definition.definition.policies;
37
+ const grouped = new Map();
38
+ for (const operation of OPERATIONS) {
39
+ const declared = policies[operation];
40
+ // The rule `false` names no Policy, so it projects no relation; a rule governs through every
41
+ // Policy it checks.
42
+ if (typeof declared !== 'object')
43
+ continue;
44
+ for (const policy of isClassRuleChecks(declared) ? checkedPolicies(declared) : [declared]) {
45
+ const key = Key.of(policy);
46
+ const existing = grouped.get(key);
47
+ if (existing === undefined)
48
+ grouped.set(key, { policy, operations: [operation] });
49
+ else if (!existing.operations.includes(operation))
50
+ existing.operations.push(operation);
51
+ }
52
+ }
53
+ return [...grouped.values()].map(({ policy, operations }) => [policy, Object.freeze(operations)]);
54
+ }
55
+ function checkedPolicies(rule) {
56
+ if ('check' in rule)
57
+ return [rule.check];
58
+ if ('sameNode' in rule)
59
+ return [];
60
+ return ('allOf' in rule ? rule.allOf : rule.anyOf).flatMap(checkedPolicies);
61
+ }
@@ -1,10 +1,11 @@
1
1
  import type { Key, Revision } from '@astrale-os/kernel-dsl/v1';
2
- import type { GraphSpec, GraphSpecEdge, LocalBinding } from '#graph/graph';
2
+ import type { ClassKey } from '@astrale-os/kernel-dsl/v1/addressing';
3
+ import type { GraphSpec, GraphSpecEdge, GraphSpecEndpoint, LocalAlias } from '#graph/graph';
3
4
  import type { NodePath } from '#graph/path';
4
5
  export interface ProjectionPart {
5
6
  readonly graph: GraphSpec;
6
7
  /** Canonical locator of every anonymous Node declared by the projection. */
7
- readonly paths: ReadonlyMap<LocalBinding, NodePath>;
8
+ readonly paths: ReadonlyMap<LocalAlias, NodePath>;
8
9
  }
9
10
  export interface CoreProjection extends ProjectionPart {
10
11
  /** Runtime-owned locator relations that associate authored Core Nodes with their Domain. */
@@ -16,3 +17,28 @@ export interface Projection {
16
17
  readonly managed: ProjectionPart;
17
18
  readonly core: CoreProjection;
18
19
  }
20
+ /** Declaration identity only; this is not a Graph Node with absent or defaulted Properties. */
21
+ export interface ProjectionTopologyNode {
22
+ readonly as: LocalAlias;
23
+ readonly class: ClassKey;
24
+ }
25
+ export interface ProjectionTopologyEdge {
26
+ readonly source: GraphSpecEndpoint;
27
+ readonly target: GraphSpecEndpoint;
28
+ readonly class: ClassKey;
29
+ }
30
+ export interface ProjectionTopologyPart {
31
+ readonly paths: ReadonlyMap<LocalAlias, NodePath>;
32
+ readonly nodes: readonly ProjectionTopologyNode[];
33
+ readonly edges: readonly ProjectionTopologyEdge[];
34
+ }
35
+ export interface CoreProjectionTopology extends ProjectionTopologyPart {
36
+ readonly locators: readonly ProjectionTopologyEdge[];
37
+ }
38
+ /** Symbolic ownership coordinates without materialized schema Property payloads. */
39
+ export interface ProjectionTopology {
40
+ readonly origin: Key.Origin;
41
+ readonly revision: Revision;
42
+ readonly managed: ProjectionTopologyPart;
43
+ readonly core: CoreProjectionTopology;
44
+ }