@astrale-os/kernel-core 0.4.2 → 0.4.4

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 (108) hide show
  1. package/dist/auth/audience/verify-audience.d.ts.map +1 -1
  2. package/dist/auth/audience/verify-audience.js +6 -2
  3. package/dist/auth/audience/verify-audience.js.map +1 -1
  4. package/dist/auth/issuers/ids.d.ts +14 -0
  5. package/dist/auth/issuers/ids.d.ts.map +1 -1
  6. package/dist/auth/issuers/ids.js +21 -0
  7. package/dist/auth/issuers/ids.js.map +1 -1
  8. package/dist/auth/methods/jwt/jwt.method.d.ts +1 -1
  9. package/dist/auth/methods/jwt/jwt.method.d.ts.map +1 -1
  10. package/dist/auth/methods/jwt/jwt.method.js +25 -3
  11. package/dist/auth/methods/jwt/jwt.method.js.map +1 -1
  12. package/dist/domain/addressing/paths/class.d.ts +1 -0
  13. package/dist/domain/addressing/paths/class.d.ts.map +1 -1
  14. package/dist/domain/addressing/paths/class.js +8 -4
  15. package/dist/domain/addressing/paths/class.js.map +1 -1
  16. package/dist/domain/addressing/paths/domain.d.ts +1 -0
  17. package/dist/domain/addressing/paths/domain.d.ts.map +1 -1
  18. package/dist/domain/addressing/paths/domain.js +8 -4
  19. package/dist/domain/addressing/paths/domain.js.map +1 -1
  20. package/dist/domain/addressing/paths/index.d.ts +1 -0
  21. package/dist/domain/addressing/paths/index.d.ts.map +1 -1
  22. package/dist/domain/addressing/paths/index.js +1 -0
  23. package/dist/domain/addressing/paths/index.js.map +1 -1
  24. package/dist/domain/addressing/paths/interface.d.ts +1 -0
  25. package/dist/domain/addressing/paths/interface.d.ts.map +1 -1
  26. package/dist/domain/addressing/paths/interface.js +8 -4
  27. package/dist/domain/addressing/paths/interface.js.map +1 -1
  28. package/dist/domain/addressing/paths/method.d.ts +1 -0
  29. package/dist/domain/addressing/paths/method.d.ts.map +1 -1
  30. package/dist/domain/addressing/paths/method.js +8 -4
  31. package/dist/domain/addressing/paths/method.js.map +1 -1
  32. package/dist/domain/addressing/paths/parse.d.ts +12 -0
  33. package/dist/domain/addressing/paths/parse.d.ts.map +1 -0
  34. package/dist/domain/addressing/paths/parse.js +47 -0
  35. package/dist/domain/addressing/paths/parse.js.map +1 -0
  36. package/dist/domain/identity/resolve-callables.d.ts.map +1 -1
  37. package/dist/domain/identity/resolve-callables.js +10 -4
  38. package/dist/domain/identity/resolve-callables.js.map +1 -1
  39. package/dist/domain/index.d.ts +2 -2
  40. package/dist/domain/index.d.ts.map +1 -1
  41. package/dist/domain/index.js +2 -2
  42. package/dist/domain/index.js.map +1 -1
  43. package/dist/domain/install-bundle.d.ts +3 -3
  44. package/dist/domain/install-bundle.d.ts.map +1 -1
  45. package/dist/domain/install-bundle.js +108 -8
  46. package/dist/domain/install-bundle.js.map +1 -1
  47. package/dist/domain/origin.d.ts +23 -1
  48. package/dist/domain/origin.d.ts.map +1 -1
  49. package/dist/domain/origin.js +50 -3
  50. package/dist/domain/origin.js.map +1 -1
  51. package/dist/graph/graph/root.d.ts +0 -11
  52. package/dist/graph/graph/root.d.ts.map +1 -1
  53. package/dist/graph/graph/root.js +1 -1
  54. package/dist/graph/graph/root.js.map +1 -1
  55. package/dist/graph/graph/walker.d.ts +0 -13
  56. package/dist/graph/graph/walker.d.ts.map +1 -1
  57. package/dist/graph/graph/walker.js +2 -2
  58. package/dist/graph/graph/walker.js.map +1 -1
  59. package/dist/graph/nav/path/kinds/registry.d.ts +1 -0
  60. package/dist/graph/nav/path/kinds/registry.d.ts.map +1 -1
  61. package/dist/graph/nav/path/kinds/registry.js +17 -14
  62. package/dist/graph/nav/path/kinds/registry.js.map +1 -1
  63. package/dist/graph/sync/reconcile/resolve.d.ts +0 -1
  64. package/dist/graph/sync/reconcile/resolve.d.ts.map +1 -1
  65. package/dist/graph/sync/reconcile/resolve.js +2 -2
  66. package/dist/graph/sync/reconcile/resolve.js.map +1 -1
  67. package/dist/kernel.d.ts +78 -15
  68. package/dist/kernel.d.ts.map +1 -1
  69. package/dist/schema/classes/edges/calls.class.d.ts +6 -1
  70. package/dist/schema/classes/edges/calls.class.d.ts.map +1 -1
  71. package/dist/schema/classes/edges/constrained-by.class.d.ts +6 -1
  72. package/dist/schema/classes/edges/constrained-by.class.d.ts.map +1 -1
  73. package/dist/schema/classes/edges/excluded-from.class.d.ts +6 -1
  74. package/dist/schema/classes/edges/excluded-from.class.d.ts.map +1 -1
  75. package/dist/schema/classes/edges/extends-with.class.d.ts +6 -1
  76. package/dist/schema/classes/edges/extends-with.class.d.ts.map +1 -1
  77. package/dist/schema/classes/edges/extends.class.d.ts +6 -1
  78. package/dist/schema/classes/edges/extends.class.d.ts.map +1 -1
  79. package/dist/schema/classes/edges/from.class.d.ts +4 -1
  80. package/dist/schema/classes/edges/from.class.d.ts.map +1 -1
  81. package/dist/schema/classes/edges/has-parent.class.d.ts +11 -1
  82. package/dist/schema/classes/edges/has-parent.class.d.ts.map +1 -1
  83. package/dist/schema/classes/edges/has-perm.class.d.ts +12 -1
  84. package/dist/schema/classes/edges/has-perm.class.d.ts.map +1 -1
  85. package/dist/schema/classes/edges/implements.class.d.ts +5 -1
  86. package/dist/schema/classes/edges/implements.class.d.ts.map +1 -1
  87. package/dist/schema/classes/edges/installed-in.class.d.ts +3 -1
  88. package/dist/schema/classes/edges/installed-in.class.d.ts.map +1 -1
  89. package/dist/schema/classes/edges/instance-of.class.d.ts +4 -1
  90. package/dist/schema/classes/edges/instance-of.class.d.ts.map +1 -1
  91. package/dist/schema/classes/edges/method-of.class.d.ts +3 -1
  92. package/dist/schema/classes/edges/method-of.class.d.ts.map +1 -1
  93. package/dist/schema/classes/edges/of-domain.class.d.ts +3 -1
  94. package/dist/schema/classes/edges/of-domain.class.d.ts.map +1 -1
  95. package/dist/schema/classes/edges/to.class.d.ts +4 -1
  96. package/dist/schema/classes/edges/to.class.d.ts.map +1 -1
  97. package/dist/schema/classes/edges/view-for.class.d.ts +3 -1
  98. package/dist/schema/classes/edges/view-for.class.d.ts.map +1 -1
  99. package/dist/schema/definitions/edge-class.d.ts +13 -2
  100. package/dist/schema/definitions/edge-class.d.ts.map +1 -1
  101. package/dist/schema/definitions/edge-class.js +5 -2
  102. package/dist/schema/definitions/edge-class.js.map +1 -1
  103. package/dist/schema/interfaces/generics/Sluggable.interface.d.ts.map +1 -1
  104. package/dist/schema/interfaces/generics/Sluggable.interface.js +3 -2
  105. package/dist/schema/interfaces/generics/Sluggable.interface.js.map +1 -1
  106. package/dist/schema/schema.d.ts +79 -15
  107. package/dist/schema/schema.d.ts.map +1 -1
  108. package/package.json +2 -2
@@ -42,12 +42,18 @@ export function resolveCallables(compiled) {
42
42
  continue;
43
43
  }
44
44
  // ── Auto-materialized core function nodes (RemoteFunction / View) ──
45
- // Detected by the `Function.binding` prop stamped by
46
- // `extendCore.buildFunctionData`. Folders and other non-callable core
47
- // entries lack it and skip naturally.
45
+ // Detected by the materialized CLASS (`View` / `Function` what the node
46
+ // IS), with the `Function.binding` prop as a fallback for hand-authored
47
+ // core entries. The class is present from define time, so a structure-only
48
+ // compile (no serving url yet → no bindings stamped) resolves the same
49
+ // callable set as the url-materialized one. Folders and other
50
+ // non-callable core entries match neither and skip naturally.
48
51
  if (ref.namespace === 'core') {
49
52
  const entry = compiled.$.core?.entries[ref.segments.join('.')];
50
- if (!entry || !(functionBindingKey in entry.data))
53
+ if (!entry)
54
+ continue;
55
+ const isCallableClass = entry.className === 'View' || entry.className === 'Function';
56
+ if (!isCallableClass && !(functionBindingKey in entry.data))
51
57
  continue;
52
58
  const slug = absolute.basename();
53
59
  if (!slug)
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-callables.js","sourceRoot":"","sources":["../../../domain/identity/resolve-callables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,SAAS,CAAA;AAqB3B;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAwB;IACvD,MAAM,GAAG,GAAuB,EAAE,CAAA;IAClC,MAAM,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA;IAExD,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3E,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAE7B,mEAAmE;QACnE,mEAAmE;QACnE,oEAAoE;QACpE,sEAAsE;QACtE,gEAAgE;QAChE,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAM,CAAC,CAAA;YACzD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,UAAU;gBAAE,SAAQ;YAChD,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YACpE,SAAQ;QACV,CAAC;QAED,sEAAsE;QACtE,qDAAqD;QACrD,sEAAsE;QACtE,sCAAsC;QACtC,IAAI,GAAG,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;YAC9D,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,kBAAkB,IAAI,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAA;YAChC,IAAI,CAAC,IAAI;gBAAE,SAAQ;YACnB,GAAG,CAAC,IAAI,CAAC;gBACP,GAAG,EAAE,MAAM;gBACX,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,QAAQ;gBACR,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAwB;IAC1D,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACrD,CAAC"}
1
+ {"version":3,"file":"resolve-callables.js","sourceRoot":"","sources":["../../../domain/identity/resolve-callables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,SAAS,CAAA;AAqB3B;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAwB;IACvD,MAAM,GAAG,GAAuB,EAAE,CAAA;IAClC,MAAM,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA;IAExD,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3E,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAE7B,mEAAmE;QACnE,mEAAmE;QACnE,oEAAoE;QACpE,sEAAsE;QACtE,gEAAgE;QAChE,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAM,CAAC,CAAA;YACzD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,UAAU;gBAAE,SAAQ;YAChD,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YACpE,SAAQ;QACV,CAAC;QAED,sEAAsE;QACtE,0EAA0E;QAC1E,wEAAwE;QACxE,2EAA2E;QAC3E,uEAAuE;QACvE,8DAA8D;QAC9D,8DAA8D;QAC9D,IAAI,GAAG,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;YAC9D,IAAI,CAAC,KAAK;gBAAE,SAAQ;YACpB,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,CAAA;YACpF,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,kBAAkB,IAAI,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAA;YAChC,IAAI,CAAC,IAAI;gBAAE,SAAQ;YACnB,GAAG,CAAC,IAAI,CAAC;gBACP,GAAG,EAAE,MAAM;gBACX,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,QAAQ;gBACR,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAwB;IAC1D,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACrD,CAAC"}
@@ -1,4 +1,4 @@
1
- export { DomainOrigin, DOMAIN_ORIGIN_RE, domainOriginSchema } from './origin';
1
+ export { DomainOrigin, DOMAIN_ORIGIN_RE, domainOriginSchema, extractDomainSlug } from './origin';
2
2
  export type { DomainInstallRequest, InstallDomainBundle, InstallDomainGraph, InstallDomainParams, } from './install-bundle';
3
3
  export { domainInstallRequestSchema, hashInstallGraph, installDomainBundleSchema, installDomainParamsSchema, } from './install-bundle';
4
4
  export { DomainError } from './errors';
@@ -13,7 +13,7 @@ export type { Layout, LayoutMap } from './addressing/layout';
13
13
  export { DomainPaths, defaultLayout, mergeLayout } from './addressing/layout';
14
14
  export { LayoutError } from './addressing/layout';
15
15
  export { validateOverrides, validateNoDuplicatePaths } from './addressing/layout';
16
- export { DomainPath, ClassPath, InterfacePath, MethodPath, InstanceMethodPath, } from './addressing/paths';
16
+ export { DomainPath, ClassPath, InterfacePath, MethodPath, InstanceMethodPath, parseKernelMetaPath, tryParseKernelMetaPath, } from './addressing/paths';
17
17
  export { PathParseError } from './addressing/paths';
18
18
  export { INSTALLED_IN, OF_DOMAIN, METHOD_OF, INSTANCE_OF, DOMAIN_SEP, INSTANCE_SEP, SLUG_PROPERTY, } from './addressing/paths';
19
19
  export { domainPathSchema, classPathSchema, interfacePathSchema, methodPathSchema, instanceMethodPathSchema, } from './addressing/paths';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../domain/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../domain/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  // ── Domain Origin ──────────────────────────────────────────────────
2
- export { DomainOrigin, DOMAIN_ORIGIN_RE, domainOriginSchema } from './origin';
2
+ export { DomainOrigin, DOMAIN_ORIGIN_RE, domainOriginSchema, extractDomainSlug } from './origin';
3
3
  export { domainInstallRequestSchema, hashInstallGraph, installDomainBundleSchema, installDomainParamsSchema, } from './install-bundle';
4
4
  // ── Errors ─────────────────────────────────────────────────────────
5
5
  export { DomainError } from './errors';
@@ -13,7 +13,7 @@ export { DomainPaths, defaultLayout, mergeLayout } from './addressing/layout';
13
13
  export { LayoutError } from './addressing/layout';
14
14
  export { validateOverrides, validateNoDuplicatePaths } from './addressing/layout';
15
15
  // ── Paths (typed domain path classes) ─────────────────────────────
16
- export { DomainPath, ClassPath, InterfacePath, MethodPath, InstanceMethodPath, } from './addressing/paths';
16
+ export { DomainPath, ClassPath, InterfacePath, MethodPath, InstanceMethodPath, parseKernelMetaPath, tryParseKernelMetaPath, } from './addressing/paths';
17
17
  export { PathParseError } from './addressing/paths';
18
18
  export { INSTALLED_IN, OF_DOMAIN, METHOD_OF, INSTANCE_OF, DOMAIN_SEP, INSTANCE_SEP, SLUG_PROPERTY, } from './addressing/paths';
19
19
  export { domainPathSchema, classPathSchema, interfacePathSchema, methodPathSchema, instanceMethodPathSchema, } from './addressing/paths';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../domain/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../domain/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- import { z } from 'zod';
2
- import type { PublicKey } from '#auth';
3
1
  import type { WireGraph } from '#graph';
2
+ import { z } from 'zod';
4
3
  export declare const domainInstallRequestSchema: z.ZodObject<{
5
4
  kernelIssuer: z.ZodString;
6
5
  nonce: z.ZodString;
@@ -33,8 +32,9 @@ export declare const installDomainBundleSchema: z.ZodObject<{
33
32
  }, z.core.$strip>;
34
33
  identity: z.ZodObject<{
35
34
  credential: z.ZodString;
36
- publicKey: z.ZodCustom<PublicKey, PublicKey>;
37
35
  }, z.core.$strip>;
36
+ postInstall: z.ZodOptional<z.ZodString>;
37
+ requires: z.ZodOptional<z.ZodArray<z.ZodCustom<import("./origin").DomainOrigin, import("./origin").DomainOrigin>>>;
38
38
  }, z.core.$strip>;
39
39
  export type DomainInstallRequest = z.infer<typeof domainInstallRequestSchema>;
40
40
  export type InstallDomainParams = z.infer<typeof installDomainParamsSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"install-bundle.d.ts","sourceRoot":"","sources":["../../domain/install-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAQvC,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;iBAGpC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOpC,CAAA;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC7E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAA;AAE1C,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CASjF"}
1
+ {"version":3,"file":"install-bundle.d.ts","sourceRoot":"","sources":["../../domain/install-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAIvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;iBAGpC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUpC,CAAA;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC7E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAA;AAE1C,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAKjF"}
@@ -1,5 +1,6 @@
1
- import { z } from 'zod';
1
+ import { toEdgeKey } from '#graph';
2
2
  import { graphSchema } from '#graph/zod';
3
+ import { z } from 'zod';
3
4
  import { domainOriginSchema } from './origin';
4
5
  const HASH_ALGORITHM = 'sha256';
5
6
  export const domainInstallRequestSchema = z.object({
@@ -14,20 +15,119 @@ export const installDomainBundleSchema = z.object({
14
15
  origin: domainOriginSchema,
15
16
  graph: graphSchema,
16
17
  identity: z.object({
18
+ // The kernel verifies the credential against the issuer's JWKS (OIDC
19
+ // discovery on the URL it fetched the domain at) — no embedded key.
17
20
  credential: z.string().min(1),
18
- publicKey: z.custom(),
19
21
  }),
22
+ postInstall: z.string().min(1).startsWith('/').optional(),
23
+ requires: z.array(domainOriginSchema).optional(),
20
24
  });
21
25
  export async function hashInstallGraph(graph) {
22
- const canonical = canonicalJson({
23
- nodes: graph.nodes,
24
- edges: graph.edges,
25
- aliases: graph.aliases ?? [],
26
- });
26
+ const canonical = canonicalJson(canonicalizeInstallGraph(graph));
27
27
  const bytes = new TextEncoder().encode(canonical);
28
- const digest = await globalThis.crypto.subtle.digest('SHA-256', bytes);
28
+ const digest = await crypto.subtle.digest('SHA-256', bytes);
29
29
  return `${HASH_ALGORITHM}:${hex(new Uint8Array(digest))}`;
30
30
  }
31
+ /**
32
+ * Reduce an install wire graph to its id-INDEPENDENT content shape, so the hash
33
+ * is a true schema-content hash rather than a per-build fingerprint.
34
+ *
35
+ * Node/edge `id`s are random UUIDs minted fresh on every build — they are not
36
+ * semantic, so two builds of the same schema would otherwise hash differently.
37
+ * We keep only content:
38
+ * - node → `{ class, path, props }` (drop `id`, storage-only `__labels`)
39
+ * - edge → `{ class, source, target, slug?, props }` (drop `id`, `__labels`, `__type`)
40
+ * - alias → `{ node: <node path>, alias: <typed path raw> }` (id remapped to
41
+ * the node's path — aliases drive typed-form path resolution after install,
42
+ * so they ARE semantic and must be sealed by the hash; only their id
43
+ * *encoding* is build-dependent)
44
+ *
45
+ * Edge endpoints are already paths (`edgeToWire` emits `source`/`target` as
46
+ * path raws), so only aliases need id remapping. Nodes are sorted by `path`,
47
+ * edges by their `(class, source, slug?, target)` identity, aliases by
48
+ * `(node, alias)`, so wire order is irrelevant.
49
+ *
50
+ * Throws if two nodes share a `path` (an absolute path uniquely identifies a
51
+ * node) or if an alias references an id with no corresponding node — either
52
+ * means the graph is malformed.
53
+ */
54
+ function canonicalizeInstallGraph(graph) {
55
+ const seenPath = new Set();
56
+ const idToPath = new Map();
57
+ const nodes = graph.nodes
58
+ .map((n) => {
59
+ const r = asRecord(n, 'node');
60
+ const path = asString(r.path, 'node.path');
61
+ if (seenPath.has(path)) {
62
+ throw new Error(`hashInstallGraph: duplicate node path ${JSON.stringify(path)} — malformed install graph`);
63
+ }
64
+ seenPath.add(path);
65
+ if (typeof r.id === 'string')
66
+ idToPath.set(r.id, path);
67
+ return { class: r.class, path, props: r.props };
68
+ })
69
+ .sort((a, b) => (a.path < b.path ? -1 : a.path > b.path ? 1 : 0));
70
+ const edges = graph.edges
71
+ .map((e) => {
72
+ const r = asRecord(e, 'edge');
73
+ const out = {
74
+ class: r.class,
75
+ source: r.source,
76
+ target: r.target,
77
+ props: r.props,
78
+ };
79
+ if (r.slug !== undefined)
80
+ out.slug = r.slug;
81
+ return out;
82
+ })
83
+ .sort((a, b) => {
84
+ const ka = edgeIdentityKey(a);
85
+ const kb = edgeIdentityKey(b);
86
+ return ka < kb ? -1 : ka > kb ? 1 : 0;
87
+ });
88
+ if (graph.aliases === undefined || graph.aliases.length === 0)
89
+ return { nodes, edges };
90
+ const aliases = graph.aliases
91
+ .map((entry) => {
92
+ const [id, aliasRaw] = entry;
93
+ const nodePath = idToPath.get(String(id));
94
+ if (nodePath === undefined) {
95
+ throw new Error(`hashInstallGraph: alias references unknown node id ${JSON.stringify(id)} — ` +
96
+ `malformed install graph`);
97
+ }
98
+ return { node: nodePath, alias: asString(aliasRaw, 'alias.path') };
99
+ })
100
+ .sort((a, b) => a.node < b.node
101
+ ? -1
102
+ : a.node > b.node
103
+ ? 1
104
+ : a.alias < b.alias
105
+ ? -1
106
+ : a.alias > b.alias
107
+ ? 1
108
+ : 0);
109
+ return { nodes, edges, aliases };
110
+ }
111
+ function edgeIdentityKey(e) {
112
+ return toEdgeKey({
113
+ class: { raw: asString(e.class, 'edge.class') },
114
+ source: { raw: asString(e.source, 'edge.source') },
115
+ slug: typeof e.slug === 'string' ? e.slug : undefined,
116
+ target: { raw: asString(e.target, 'edge.target') },
117
+ });
118
+ }
119
+ function asRecord(value, what) {
120
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
121
+ throw new Error(`hashInstallGraph: ${what} is not an object`);
122
+ }
123
+ return value;
124
+ }
125
+ function asString(value, what) {
126
+ if (typeof value !== 'string') {
127
+ throw new Error(`hashInstallGraph: ${what} must be a string`);
128
+ }
129
+ return value;
130
+ }
31
131
  function canonicalJson(value) {
32
132
  if (value === null || typeof value !== 'object')
33
133
  return JSON.stringify(value);
@@ -1 +1 @@
1
- {"version":3,"file":"install-bundle.js","sourceRoot":"","sources":["../../domain/install-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAE7C,MAAM,cAAc,GAAG,QAAQ,CAAA;AAE/B,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACzB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,MAAM,EAAE,kBAAkB;IAC1B,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAa;KACjC,CAAC;CACH,CAAC,CAAA;AAOF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAyB;IAC9D,MAAM,SAAS,GAAG,aAAa,CAAC;QAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;KAC7B,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACjD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IACtE,OAAO,GAAG,cAAc,IAAI,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;AAC3D,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IAC/E,MAAM,GAAG,GAAG,KAAgC,CAAA;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACpC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;AAC1F,CAAC;AAED,SAAS,GAAG,CAAC,KAAiB;IAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"install-bundle.js","sourceRoot":"","sources":["../../domain/install-bundle.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,28 @@ export type DomainOrigin = string & {
13
13
  };
14
14
  export declare const DOMAIN_ORIGIN_RE: RegExp;
15
15
  export declare const domainOriginSchema: z.ZodCustom<DomainOrigin, DomainOrigin>;
16
- /** Branded constructor. Validates format, throws TypeError if invalid. */
16
+ /**
17
+ * Branded constructor. Lowercases at the boundary (a domain origin is an
18
+ * FQDN-like slug — case-insensitive and canonically lowercase, like DNS), then
19
+ * validates. This keeps the rest of the system comparing one canonical form
20
+ * instead of failing when a schema declares a mixed-case domain. Throws
21
+ * TypeError if the (lowercased) value still violates `DOMAIN_ORIGIN_RE`.
22
+ */
17
23
  export declare function DomainOrigin(raw: string): DomainOrigin;
24
+ /**
25
+ * Extract the domain slug from a semantic domain-path-family string:
26
+ *
27
+ * `/apps/:dist.localhost:class.X:init` → `dist.localhost`
28
+ * `/:dist.localhost:interface.Ops:init` → `dist.localhost`
29
+ *
30
+ * The slug is the audience a remote worker expects on inbound credentials, so
31
+ * getting it wrong mints a credential the worker rejects.
32
+ *
33
+ * This deliberately does not infer origins from AbsolutePath strings. A tree
34
+ * path is structural, not semantic: `/apps/crm.acme.dev/...` cannot tell us
35
+ * from the string alone whether `crm.acme.dev` is a domain origin, an app slug,
36
+ * or just another child. Returns `null` for absolute / relative / id-anchored /
37
+ * malformed input.
38
+ */
39
+ export declare function extractDomainSlug(path: string): string | null;
18
40
  //# sourceMappingURL=origin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"origin.d.ts","sourceRoot":"","sources":["../../domain/origin.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAA;CAAE,CAAA;AAErE,eAAO,MAAM,gBAAgB,QAA2B,CAAA;AAExD,eAAO,MAAM,kBAAkB,yCAE9B,CAAA;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAKtD"}
1
+ {"version":3,"file":"origin.d.ts","sourceRoot":"","sources":["../../domain/origin.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAUnB;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAA;CAAE,CAAA;AAErE,eAAO,MAAM,gBAAgB,QAA2B,CAAA;AAExD,eAAO,MAAM,kBAAkB,yCAE9B,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAMtD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB7D"}
@@ -1,11 +1,58 @@
1
1
  import z from 'zod';
2
+ import { ClassPath, DomainPath, InterfacePath, MethodPath, tryParseKernelMetaPath, } from './addressing/paths';
2
3
  export const DOMAIN_ORIGIN_RE = /^[a-z0-9][a-z0-9._-]*$/;
3
4
  export const domainOriginSchema = z.custom((val) => typeof val === 'string' && DOMAIN_ORIGIN_RE.test(val));
4
- /** Branded constructor. Validates format, throws TypeError if invalid. */
5
+ /**
6
+ * Branded constructor. Lowercases at the boundary (a domain origin is an
7
+ * FQDN-like slug — case-insensitive and canonically lowercase, like DNS), then
8
+ * validates. This keeps the rest of the system comparing one canonical form
9
+ * instead of failing when a schema declares a mixed-case domain. Throws
10
+ * TypeError if the (lowercased) value still violates `DOMAIN_ORIGIN_RE`.
11
+ */
5
12
  export function DomainOrigin(raw) {
6
- if (!DOMAIN_ORIGIN_RE.test(raw)) {
13
+ const normalized = raw.toLowerCase();
14
+ if (!DOMAIN_ORIGIN_RE.test(normalized)) {
7
15
  throw new TypeError(`Invalid domain origin: "${raw}"`);
8
16
  }
9
- return raw;
17
+ return normalized;
18
+ }
19
+ /**
20
+ * Extract the domain slug from a semantic domain-path-family string:
21
+ *
22
+ * `/apps/:dist.localhost:class.X:init` → `dist.localhost`
23
+ * `/:dist.localhost:interface.Ops:init` → `dist.localhost`
24
+ *
25
+ * The slug is the audience a remote worker expects on inbound credentials, so
26
+ * getting it wrong mints a credential the worker rejects.
27
+ *
28
+ * This deliberately does not infer origins from AbsolutePath strings. A tree
29
+ * path is structural, not semantic: `/apps/crm.acme.dev/...` cannot tell us
30
+ * from the string alone whether `crm.acme.dev` is a domain origin, an app slug,
31
+ * or just another child. Returns `null` for absolute / relative / id-anchored /
32
+ * malformed input.
33
+ */
34
+ export function extractDomainSlug(path) {
35
+ if (!path.startsWith('/'))
36
+ return null;
37
+ if (/\s/.test(path))
38
+ return null;
39
+ const parsed = tryParseKernelMetaPath(path);
40
+ if (!parsed)
41
+ return null;
42
+ if (parsed instanceof DomainPath ||
43
+ parsed instanceof ClassPath ||
44
+ parsed instanceof InterfacePath ||
45
+ parsed instanceof MethodPath) {
46
+ return normalizeDomain(parsed.domain);
47
+ }
48
+ return null;
49
+ }
50
+ function normalizeDomain(raw) {
51
+ try {
52
+ return DomainOrigin(raw);
53
+ }
54
+ catch {
55
+ return null;
56
+ }
10
57
  }
11
58
  //# sourceMappingURL=origin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"origin.js","sourceRoot":"","sources":["../../domain/origin.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAanB,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAA;AAExD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CACxC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAC/D,CAAA;AAED,0EAA0E;AAC1E,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,2BAA2B,GAAG,GAAG,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,GAAmB,CAAA;AAC5B,CAAC"}
1
+ {"version":3,"file":"origin.js","sourceRoot":"","sources":["../../domain/origin.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,UAAU,EACV,sBAAsB,GACvB,MAAM,oBAAoB,CAAA;AAa3B,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAA;AAExD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CACxC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAC/D,CAAA;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,SAAS,CAAC,2BAA2B,GAAG,GAAG,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,UAA0B,CAAA;AACnC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACtC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAEhC,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,IACE,MAAM,YAAY,UAAU;QAC5B,MAAM,YAAY,SAAS;QAC3B,MAAM,YAAY,aAAa;QAC/B,MAAM,YAAY,UAAU,EAC5B,CAAC;QACD,OAAO,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC"}
@@ -7,17 +7,6 @@ import type { Node } from '../node';
7
7
  * sufficient — no real node mints that id.
8
8
  */
9
9
  export declare function isVirtualRoot(n: Node): boolean;
10
- /**
11
- * Factory for the virtual root node (I1). The `class` field
12
- * structurally needs a `ClassPath`-shaped value; the kernel's real
13
- * `K.Root.path.class` isn't reachable from here (importing it cycles
14
- * through `#kernel → #domain → #graph`). Reusing `AbsolutePath.root()`
15
- * is the honest structural placeholder: it's a real `Path` instance
16
- * with `raw === '/'`, it round-trips cleanly, and consumers that
17
- * discriminate the virtual root do so by `isVirtualRoot` (id), never
18
- * by class identity.
19
- */
20
- export declare function makeVirtualRoot(): Node;
21
10
  /**
22
11
  * Collapse duplicate virtual roots (auto-injected `__SYSTEM__` at `/`)
23
12
  * that appear when merging graphs. A caller-supplied real root wins
@@ -1 +1 @@
1
- {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../graph/graph/root.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAKnC;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAE9C;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAOtC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,IAAI,EAAE,CAsB1E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG;IAAE,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAezF"}
1
+ {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../graph/graph/root.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAKnC;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAE9C;AAqBD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,IAAI,EAAE,CAsB1E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG;IAAE,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAezF"}
@@ -21,7 +21,7 @@ export function isVirtualRoot(n) {
21
21
  * discriminate the virtual root do so by `isVirtualRoot` (id), never
22
22
  * by class identity.
23
23
  */
24
- export function makeVirtualRoot() {
24
+ function makeVirtualRoot() {
25
25
  return {
26
26
  id: __SYSTEM__,
27
27
  class: AbsolutePath.root(),
@@ -1 +1 @@
1
- {"version":3,"file":"root.js","sourceRoot":"","sources":["../../../graph/graph/root.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAIjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,CAAO;IACnC,OAAO,CAAC,CAAC,EAAE,KAAK,UAAU,CAAA;AAC5B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,YAAY,CAAC,IAAI,EAA0B;QAClD,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE;QACzB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;KACzB,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAsB;IACvD,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG;YAAE,SAAQ;QAChC,OAAO,EAAE,CAAA;QACT,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAAE,OAAO,GAAG,IAAI,CAAA;IACvC,CAAC;IACD,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IAE9B,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,MAAM,GAAG,GAAW,EAAE,CAAA;IACtB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACX,SAAQ;QACV,CAAC;QACD,IAAI,OAAO,IAAI,WAAW;YAAE,SAAQ;QACpC,WAAW,GAAG,IAAI,CAAA;QAClB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACb,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,IAAI,IAAsB,CAAA;IAC1B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG;YAAE,SAAQ;QAChC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,oBAAoB,CAAC;gBAC7B,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAK,EAAa,EAAE;aACjE,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,CAAA;IACV,CAAC;IACD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IAE9C,MAAM,WAAW,GAAG,eAAe,EAAE,CAAA;IACrC,OAAO,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;AAC9D,CAAC"}
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../../../graph/graph/root.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAIjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,CAAO;IACnC,OAAO,CAAC,CAAC,EAAE,KAAK,UAAU,CAAA;AAC5B,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,eAAe;IACtB,OAAO;QACL,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,YAAY,CAAC,IAAI,EAA0B;QAClD,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE;QACzB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;KACzB,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAsB;IACvD,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG;YAAE,SAAQ;QAChC,OAAO,EAAE,CAAA;QACT,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAAE,OAAO,GAAG,IAAI,CAAA;IACvC,CAAC;IACD,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IAE9B,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,MAAM,GAAG,GAAW,EAAE,CAAA;IACtB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACX,SAAQ;QACV,CAAC;QACD,IAAI,OAAO,IAAI,WAAW;YAAE,SAAQ;QACpC,WAAW,GAAG,IAAI,CAAA;QAClB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACb,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,IAAI,IAAsB,CAAA;IAC1B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG;YAAE,SAAQ;QAChC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,oBAAoB,CAAC;gBAC7B,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAK,EAAa,EAAE;aACjE,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,CAAA;IACV,CAAC;IACD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IAE9C,MAAM,WAAW,GAAG,eAAe,EAAE,CAAA;IACrC,OAAO,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;AAC9D,CAAC"}
@@ -54,13 +54,6 @@ export interface WalkContext {
54
54
  * `nodes.get` / `nodes.at`.
55
55
  */
56
56
  export declare function walkSteps(steps: readonly Step[], start: Node, ctx: WalkContext): WalkResult;
57
- /**
58
- * Advance one step from a node. Returns the next Node (in-graph
59
- * endpoint) or the endpoint Path (typed endpoint — next iteration
60
- * decides escape or miss). Uses the raw index map directly; never
61
- * calls `Graph.nodes.get` / `nodes.at` (I5 / T2).
62
- */
63
- export declare function traverseStep(from: Node, step: Step, ctx: WalkContext): Node | Path | null;
64
57
  /**
65
58
  * The unique edge at `from` that satisfies `step`. Raises
66
59
  * `AmbiguousWalkError` on multi-match (I6).
@@ -71,10 +64,4 @@ export declare function edgeIncident(from: Node, step: Traversal, ctx: WalkConte
71
64
  * role. Used by reverse-walk candidate enumeration in the resolver.
72
65
  */
73
66
  export declare function edgesByStep(step: Traversal, ctx: WalkContext): readonly Edge[];
74
- /**
75
- * Distinguish Node from Path at runtime. Nodes have `class`, `path`,
76
- * `props`; Paths have `steps`. Negating `'steps' in x` narrows the
77
- * union.
78
- */
79
- export declare function isNode(x: Node | Path): x is Node;
80
67
  //# sourceMappingURL=walker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../../graph/graph/walker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAMlC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAKrD;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7B;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC5C,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAA;IAC/D,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;CACrC;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,UAAU,CAa3F;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAWzF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAWvF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,SAAS,IAAI,EAAE,CAQ9E;AA0CD;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,CAEhD"}
1
+ {"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../../graph/graph/walker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAMlC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAKrD;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7B;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC5C,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAA;IAC/D,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;CACrC;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,UAAU,CAa3F;AAqBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAWvF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,SAAS,IAAI,EAAE,CAQ9E"}
@@ -37,7 +37,7 @@ export function walkSteps(steps, start, ctx) {
37
37
  * decides escape or miss). Uses the raw index map directly; never
38
38
  * calls `Graph.nodes.get` / `nodes.at` (I5 / T2).
39
39
  */
40
- export function traverseStep(from, step, ctx) {
40
+ function traverseStep(from, step, ctx) {
41
41
  if (step.kind === 'anchor') {
42
42
  // RootAnchor (target = __SYSTEM__) resolves to the graph's root
43
43
  // node. Other id anchors look up the node by id.
@@ -120,7 +120,7 @@ function matchEscape(endpoint, remaining) {
120
120
  * `props`; Paths have `steps`. Negating `'steps' in x` narrows the
121
121
  * union.
122
122
  */
123
- export function isNode(x) {
123
+ function isNode(x) {
124
124
  return !('steps' in x);
125
125
  }
126
126
  //# sourceMappingURL=walker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"walker.js","sourceRoot":"","sources":["../../../graph/graph/walker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"walker.js","sourceRoot":"","sources":["../../../graph/graph/walker.ts"],"names":[],"mappings":"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"}
@@ -48,4 +48,5 @@ export declare class PathTypeRegistry {
48
48
  /** Reset registry state. For testing only. */
49
49
  static _reset(): void;
50
50
  }
51
+ export declare function detectPathType(types: readonly PathType[], steps: readonly Step[]): PathType | undefined;
51
52
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../graph/nav/path/kinds/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI3C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IAE9D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAYpC;IAED,MAAM,CAAC,GAAG,IAAI,SAAS,QAAQ,EAAE,CAEhC;IAED;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAE3C;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAEjD;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,QAAQ,GAAG,SAAS,CAc1D;IAED,8CAA8C;IAC9C,MAAM,CAAC,MAAM,IAAI,IAAI,CAGpB;CACF"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../graph/nav/path/kinds/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI3C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IAE9D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAYpC;IAED,MAAM,CAAC,GAAG,IAAI,SAAS,QAAQ,EAAE,CAEhC;IAED;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAE3C;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAEjD;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,QAAQ,GAAG,SAAS,CAE1D;IAED,8CAA8C;IAC9C,MAAM,CAAC,MAAM,IAAI,IAAI,CAGpB;CACF;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,KAAK,EAAE,SAAS,IAAI,EAAE,GACrB,QAAQ,GAAG,SAAS,CActB"}
@@ -61,20 +61,7 @@ export class PathTypeRegistry {
61
61
  * step list in the base {@link Path} class as a fallback.
62
62
  */
63
63
  static detect(steps) {
64
- let best;
65
- let bestSpan = -1;
66
- for (let i = PathTypeRegistry._types.length - 1; i >= 0; i--) {
67
- const t = PathTypeRegistry._types[i];
68
- const matched = (t.matches ?? ((s) => matchesChain(t.segments, s)))(steps);
69
- if (!matched)
70
- continue;
71
- const span = chainSpan(t.segments, steps);
72
- if (span > bestSpan) {
73
- best = t;
74
- bestSpan = span;
75
- }
76
- }
77
- return best;
64
+ return detectPathType(PathTypeRegistry._types, steps);
78
65
  }
79
66
  /** Reset registry state. For testing only. */
80
67
  static _reset() {
@@ -82,4 +69,20 @@ export class PathTypeRegistry {
82
69
  PathTypeRegistry._byClass.clear();
83
70
  }
84
71
  }
72
+ export function detectPathType(types, steps) {
73
+ let best;
74
+ let bestSpan = -1;
75
+ for (let i = types.length - 1; i >= 0; i--) {
76
+ const t = types[i];
77
+ const matched = (t.matches ?? ((s) => matchesChain(t.segments, s)))(steps);
78
+ if (!matched)
79
+ continue;
80
+ const span = chainSpan(t.segments, steps);
81
+ if (span > bestSpan) {
82
+ best = t;
83
+ bestSpan = span;
84
+ }
85
+ }
86
+ return best;
87
+ }
85
88
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../graph/nav/path/kinds/registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAU,MAAM,GAAe,EAAE,CAAA;IACvC,MAAM,CAAU,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAA;IAE9D,MAAM,CAAC,QAAQ,CAAC,IAAc;QAC5B,IAAI,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAM;QAClD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC1D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,qCAAqC,IAAI,CAAC,KAAK,qCAAqC,QAAQ,CAAC,IAAI,uBAAuB,IAAI,CAAC,IAAI,2DAA2D,CAC7L,CAAA;YACH,CAAC;YACD,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACjD,CAAC;QACD,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,CAAC,GAAG;QACR,OAAO,gBAAgB,CAAC,MAAM,CAAA;IAChC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,GAAW;QACxB,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;IACnD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,gBAAgB,CAAC,QAAQ,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,KAAsB;QAClC,IAAI,IAA0B,CAAA;QAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAA;QACjB,KAAK,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7D,MAAM,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAE,CAAA;YACrC,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YAC1E,IAAI,CAAC,OAAO;gBAAE,SAAQ;YACtB,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YACzC,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACpB,IAAI,GAAG,CAAC,CAAA;gBACR,QAAQ,GAAG,IAAI,CAAA;YACjB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,8CAA8C;IAC9C,MAAM,CAAC,MAAM;QACX,gBAAgB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;QAClC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../graph/nav/path/kinds/registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAU,MAAM,GAAe,EAAE,CAAA;IACvC,MAAM,CAAU,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAA;IAE9D,MAAM,CAAC,QAAQ,CAAC,IAAc;QAC5B,IAAI,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAM;QAClD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC1D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,qCAAqC,IAAI,CAAC,KAAK,qCAAqC,QAAQ,CAAC,IAAI,uBAAuB,IAAI,CAAC,IAAI,2DAA2D,CAC7L,CAAA;YACH,CAAC;YACD,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACjD,CAAC;QACD,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,CAAC,GAAG;QACR,OAAO,gBAAgB,CAAC,MAAM,CAAA;IAChC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,GAAW;QACxB,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;IACnD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,gBAAgB,CAAC,QAAQ,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,KAAsB;QAClC,OAAO,cAAc,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACvD,CAAC;IAED,8CAA8C;IAC9C,MAAM,CAAC,MAAM;QACX,gBAAgB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;QAClC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IACnC,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAC5B,KAA0B,EAC1B,KAAsB;IAEtB,IAAI,IAA0B,CAAA;IAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAA;IACjB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QACnB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAC1E,IAAI,CAAC,OAAO;YAAE,SAAQ;QACtB,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACzC,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YACpB,IAAI,GAAG,CAAC,CAAA;YACR,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -3,7 +3,6 @@ import type { EdgeCreate, EdgeDelete, EdgeUpdate, NodeDelete, NodeUpdate } from
3
3
  import type { ConflictStrategy } from '#ids';
4
4
  import type { ReconcileConfig } from './config';
5
5
  import type { UntrackedPolicy } from './untracked';
6
- export declare function resolveStrategy(entityStrategy: ConflictStrategy | undefined, config?: ReconcileConfig): ConflictStrategy;
7
6
  export declare function resolveUntrackedNode(base: Node, policy: UntrackedPolicy | undefined): NodeDelete | null;
8
7
  export declare function resolveUntrackedEdge(base: Edge, policy: UntrackedPolicy | undefined): EdgeDelete | null;
9
8
  export declare function resolveMatchedNode(base: Node, incoming: NodeSpec, conflictStrategy: ConflictStrategy | undefined, config?: ReconcileConfig): NodeUpdate | null;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../graph/sync/reconcile/resolve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAA;AAI5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAMlD,wBAAgB,eAAe,CAC7B,cAAc,EAAE,gBAAgB,GAAG,SAAS,EAC5C,MAAM,CAAC,EAAE,eAAe,GACvB,gBAAgB,CAElB;AAID,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,eAAe,GAAG,SAAS,GAClC,UAAU,GAAG,IAAI,CASnB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,eAAe,GAAG,SAAS,GAClC,UAAU,GAAG,IAAI,CAcnB;AAID,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,EAC9C,MAAM,CAAC,EAAE,eAAe,GACvB,UAAU,GAAG,IAAI,CAkBnB;AAID,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,EAC9C,MAAM,CAAC,EAAE,eAAe,GACvB;IAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,GAAG,IAAI,CA+DhF"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../graph/sync/reconcile/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAA;AAK5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAelD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,eAAe,GAAG,SAAS,GAClC,UAAU,GAAG,IAAI,CASnB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,eAAe,GAAG,SAAS,GAClC,UAAU,GAAG,IAAI,CAcnB;AAID,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,EAC9C,MAAM,CAAC,EAAE,eAAe,GACvB,UAAU,GAAG,IAAI,CAkBnB;AAID,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,EAC9C,MAAM,CAAC,EAAE,eAAe,GACvB;IAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,GAAG,IAAI,CA+DhF"}
@@ -1,8 +1,8 @@
1
- import { dequal } from 'dequal';
2
1
  import { IdPath } from '#graph/nav/path';
2
+ import { dequal } from 'dequal';
3
3
  import { resolveProps } from './resolve-props';
4
4
  // ─── Strategy resolution ──────────────────────────────────
5
- export function resolveStrategy(entityStrategy, config) {
5
+ function resolveStrategy(entityStrategy, config) {
6
6
  return entityStrategy ?? config?.defaultStrategy ?? 'merge';
7
7
  }
8
8
  // ─── Untracked entity resolution ──────────────────────────