@astrale-os/kernel-core 0.4.1 → 0.4.3

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 (70) 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/schema/interfaces/generics/Sluggable.interface.d.ts.map +1 -1
  68. package/dist/schema/interfaces/generics/Sluggable.interface.js +3 -2
  69. package/dist/schema/interfaces/generics/Sluggable.interface.js.map +1 -1
  70. package/package.json +3 -3
@@ -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":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,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,qEAAqE;QACrE,oEAAoE;QACpE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACzD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;CACjD,CAAC,CAAA;AAOF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAyB;IAC9D,MAAM,SAAS,GAAG,aAAa,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAA;IAChE,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACjD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC3D,OAAO,GAAG,cAAc,IAAI,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;AAC3D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAS,wBAAwB,CAAC,KAAyB;IAKzD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QAC1C,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,yCAAyC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAC1F,CAAA;QACH,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAClB,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACtD,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;IACjD,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEnE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAC7B,MAAM,GAAG,GAA4B;YACnC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAA;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;QAC3C,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEJ,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IAEtF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;SAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAA;QAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,sDAAsD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK;gBAC3E,yBAAyB,CAC5B,CAAA;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAA;IACpE,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACb,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;QACb,CAAC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;YACf,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;gBACjB,CAAC,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;oBACjB,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,CACZ,CAAA;IAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAClC,CAAC;AAED,SAAS,eAAe,CAAC,CAA0B;IACjD,OAAO,SAAS,CAAC;QACf,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE;QAC/C,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE;QAClD,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACrD,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE;KACnD,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,IAAY;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,mBAAmB,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,KAAgC,CAAA;AACzC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,IAAY;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,mBAAmB,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,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"}
@@ -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 ──────────────────────────