@x12i/catalox 3.5.1 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/README.md +155 -10
  2. package/dist/src/adapters/api/api-adapter.d.ts.map +1 -1
  3. package/dist/src/adapters/api/api-adapter.js +1 -0
  4. package/dist/src/adapters/api/api-adapter.js.map +1 -1
  5. package/dist/src/adapters/mongo/mongo-adapter.d.ts.map +1 -1
  6. package/dist/src/adapters/mongo/mongo-adapter.js +1 -0
  7. package/dist/src/adapters/mongo/mongo-adapter.js.map +1 -1
  8. package/dist/src/catalox/catalog-discovery.d.ts.map +1 -1
  9. package/dist/src/catalox/catalog-discovery.js +8 -6
  10. package/dist/src/catalox/catalog-discovery.js.map +1 -1
  11. package/dist/src/catalox/catalog-lifecycle.d.ts.map +1 -1
  12. package/dist/src/catalox/catalog-lifecycle.js +26 -19
  13. package/dist/src/catalox/catalog-lifecycle.js.map +1 -1
  14. package/dist/src/catalox/catalox-bound.d.ts +48 -1
  15. package/dist/src/catalox/catalox-bound.d.ts.map +1 -1
  16. package/dist/src/catalox/catalox-bound.js +24 -0
  17. package/dist/src/catalox/catalox-bound.js.map +1 -1
  18. package/dist/src/catalox/catalox.d.ts +94 -2
  19. package/dist/src/catalox/catalox.d.ts.map +1 -1
  20. package/dist/src/catalox/catalox.js +596 -75
  21. package/dist/src/catalox/catalox.js.map +1 -1
  22. package/dist/src/catalox/create-catalox.d.ts +4 -0
  23. package/dist/src/catalox/create-catalox.d.ts.map +1 -1
  24. package/dist/src/catalox/create-catalox.js +15 -0
  25. package/dist/src/catalox/create-catalox.js.map +1 -1
  26. package/dist/src/catalox/native-catalog-merge.d.ts.map +1 -1
  27. package/dist/src/catalox/native-catalog-merge.js +12 -11
  28. package/dist/src/catalox/native-catalog-merge.js.map +1 -1
  29. package/dist/src/contracts/agents.d.ts +19 -0
  30. package/dist/src/contracts/agents.d.ts.map +1 -0
  31. package/dist/src/contracts/agents.js +2 -0
  32. package/dist/src/contracts/agents.js.map +1 -0
  33. package/dist/src/contracts/catalog-types.d.ts +19 -0
  34. package/dist/src/contracts/catalog-types.d.ts.map +1 -0
  35. package/dist/src/contracts/catalog-types.js +2 -0
  36. package/dist/src/contracts/catalog-types.js.map +1 -0
  37. package/dist/src/contracts/catalogs.d.ts +26 -6
  38. package/dist/src/contracts/catalogs.d.ts.map +1 -1
  39. package/dist/src/contracts/catalogs.js.map +1 -1
  40. package/dist/src/contracts/descriptors.d.ts +11 -0
  41. package/dist/src/contracts/descriptors.d.ts.map +1 -1
  42. package/dist/src/contracts/design-objects.d.ts +38 -0
  43. package/dist/src/contracts/design-objects.d.ts.map +1 -0
  44. package/dist/src/contracts/design-objects.js +2 -0
  45. package/dist/src/contracts/design-objects.js.map +1 -0
  46. package/dist/src/contracts/discovery.d.ts +7 -8
  47. package/dist/src/contracts/discovery.d.ts.map +1 -1
  48. package/dist/src/contracts/domains.d.ts +19 -0
  49. package/dist/src/contracts/domains.d.ts.map +1 -0
  50. package/dist/src/contracts/domains.js +2 -0
  51. package/dist/src/contracts/domains.js.map +1 -0
  52. package/dist/src/contracts/ids.d.ts +2 -0
  53. package/dist/src/contracts/ids.d.ts.map +1 -1
  54. package/dist/src/contracts/index.d.ts +11 -5
  55. package/dist/src/contracts/index.d.ts.map +1 -1
  56. package/dist/src/contracts/index.js +1 -0
  57. package/dist/src/contracts/index.js.map +1 -1
  58. package/dist/src/contracts/inputs.d.ts +19 -0
  59. package/dist/src/contracts/inputs.d.ts.map +1 -1
  60. package/dist/src/contracts/items.d.ts +9 -7
  61. package/dist/src/contracts/items.d.ts.map +1 -1
  62. package/dist/src/contracts/presentation-binding.d.ts +116 -0
  63. package/dist/src/contracts/presentation-binding.d.ts.map +1 -0
  64. package/dist/src/contracts/presentation-binding.js +215 -0
  65. package/dist/src/contracts/presentation-binding.js.map +1 -0
  66. package/dist/src/contracts/presentation.d.ts +76 -0
  67. package/dist/src/contracts/presentation.d.ts.map +1 -1
  68. package/dist/src/contracts/references.d.ts +40 -0
  69. package/dist/src/contracts/references.d.ts.map +1 -1
  70. package/dist/src/contracts/render-map.d.ts +12 -0
  71. package/dist/src/contracts/render-map.d.ts.map +1 -1
  72. package/dist/src/firebase/agent-store.d.ts +18 -0
  73. package/dist/src/firebase/agent-store.d.ts.map +1 -0
  74. package/dist/src/firebase/agent-store.js +47 -0
  75. package/dist/src/firebase/agent-store.js.map +1 -0
  76. package/dist/src/firebase/catalog-type-store.d.ts +22 -0
  77. package/dist/src/firebase/catalog-type-store.d.ts.map +1 -0
  78. package/dist/src/firebase/catalog-type-store.js +51 -0
  79. package/dist/src/firebase/catalog-type-store.js.map +1 -0
  80. package/dist/src/firebase/definition-store.d.ts +4 -18
  81. package/dist/src/firebase/definition-store.d.ts.map +1 -1
  82. package/dist/src/firebase/definition-store.js.map +1 -1
  83. package/dist/src/firebase/design-object-store.d.ts +15 -0
  84. package/dist/src/firebase/design-object-store.d.ts.map +1 -0
  85. package/dist/src/firebase/design-object-store.js +51 -0
  86. package/dist/src/firebase/design-object-store.js.map +1 -0
  87. package/dist/src/firebase/domain-store.d.ts +18 -0
  88. package/dist/src/firebase/domain-store.d.ts.map +1 -0
  89. package/dist/src/firebase/domain-store.js +47 -0
  90. package/dist/src/firebase/domain-store.js.map +1 -0
  91. package/dist/src/firebase/index.d.ts +2 -0
  92. package/dist/src/firebase/index.d.ts.map +1 -1
  93. package/dist/src/firebase/index.js +2 -0
  94. package/dist/src/firebase/index.js.map +1 -1
  95. package/dist/src/firebase/presentation-profile-store.d.ts +18 -0
  96. package/dist/src/firebase/presentation-profile-store.d.ts.map +1 -0
  97. package/dist/src/firebase/presentation-profile-store.js +44 -0
  98. package/dist/src/firebase/presentation-profile-store.js.map +1 -0
  99. package/dist/src/firebase/reference-store.d.ts +1 -0
  100. package/dist/src/firebase/reference-store.d.ts.map +1 -1
  101. package/dist/src/firebase/reference-store.js +7 -0
  102. package/dist/src/firebase/reference-store.js.map +1 -1
  103. package/dist/src/migrations/backfill-catalog-model.d.ts +29 -0
  104. package/dist/src/migrations/backfill-catalog-model.d.ts.map +1 -0
  105. package/dist/src/migrations/backfill-catalog-model.js +124 -0
  106. package/dist/src/migrations/backfill-catalog-model.js.map +1 -0
  107. package/dist/src/migrations/migrate-native-catalog-layout.js +4 -4
  108. package/dist/src/migrations/migrate-native-catalog-layout.js.map +1 -1
  109. package/dist/src/validation/index.d.ts +2 -2
  110. package/dist/src/validation/index.d.ts.map +1 -1
  111. package/dist/src/validation/index.js +2 -2
  112. package/dist/src/validation/index.js.map +1 -1
  113. package/dist/src/validation/ui-spec-schema.d.ts +5 -0
  114. package/dist/src/validation/ui-spec-schema.d.ts.map +1 -1
  115. package/dist/src/validation/ui-spec-schema.js +139 -0
  116. package/dist/src/validation/ui-spec-schema.js.map +1 -1
  117. package/dist/src/validation/ui-spec-validate.d.ts +3 -0
  118. package/dist/src/validation/ui-spec-validate.d.ts.map +1 -1
  119. package/dist/src/validation/ui-spec-validate.js +13 -1
  120. package/dist/src/validation/ui-spec-validate.js.map +1 -1
  121. package/package.json +2 -2
@@ -57,7 +57,6 @@ export type UnifiedCatalogItem<TData = Record<string, unknown>> = {
57
57
  sourceType?: "firebase" | "mongo" | "api";
58
58
  title?: string;
59
59
  subtitle?: string;
60
- status?: string;
61
60
  sourceRef?: {
62
61
  adapterId?: string;
63
62
  sourceRecordId?: string;
@@ -66,13 +65,15 @@ export type UnifiedCatalogItem<TData = Record<string, unknown>> = {
66
65
  endpoint?: string;
67
66
  };
68
67
  data: TData;
69
- metadata?: Record<string, unknown>;
68
+ metadata: Record<string, unknown> & {
69
+ /** Optional association tags for host runtimes. */
70
+ domainIds?: string[];
71
+ agentIds?: string[];
72
+ };
70
73
  state?: {
71
74
  validationStatus?: "valid" | "invalid" | "unknown";
72
75
  syncStatus?: "idle" | "success" | "error" | "stale";
73
76
  };
74
- createdAt?: string;
75
- updatedAt?: string;
76
77
  };
77
78
  export type NativeCatalogItemRecord = {
78
79
  itemId: ItemId;
@@ -85,9 +86,10 @@ export type NativeCatalogItemRecord = {
85
86
  updatedBy?: string;
86
87
  indexed?: Record<string, unknown>;
87
88
  data: Record<string, unknown>;
88
- metadata?: Record<string, unknown>;
89
- createdAt: string;
90
- updatedAt: string;
89
+ metadata: Record<string, unknown> & {
90
+ domainIds?: string[];
91
+ agentIds?: string[];
92
+ };
91
93
  };
92
94
  export type SnapshotCatalogItemRecord = {
93
95
  itemId: ItemId;
@@ -1 +1 @@
1
- {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../src/contracts/items.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../src/contracts/items.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import type { CatalogDescriptor } from "./descriptors.js";
2
+ import type { CatalogPresentationSpec } from "./presentation.js";
3
+ import type { CatalogCustomRenderer, CustomRendererEntry } from "./render-map.js";
4
+ import type { CatalogDesignObjectRecord, CatalogDesignRef, CatalogDesignScope } from "./design-objects.js";
5
+ import type { CatalogRendererMode, CatalogRendererRole, CatalogRendererSnippetRecord } from "./renderer-snippets.js";
6
+ export type CatalogPresentationStrategy = "native-auto" | "template" | "custom-renderer";
7
+ export type CatalogPresentationScope = {
8
+ catalogId?: string;
9
+ catalogType?: string;
10
+ };
11
+ export type CatalogPresentationProfileRecord = {
12
+ profileId: string;
13
+ scope: CatalogPresentationScope;
14
+ /**
15
+ * Declarative presentation hints. If present, can override/augment descriptor presentationSpec.
16
+ */
17
+ presentationSpec?: CatalogPresentationSpec;
18
+ /**
19
+ * Optional template assignment defaults (host-defined). Stored on the profile so multiple catalogs
20
+ * can share a template selection without copying it into every descriptor.
21
+ */
22
+ templates?: CatalogPresentationSpec["templates"];
23
+ /**
24
+ * Optional custom renderer defaults shared across catalogs.
25
+ */
26
+ customRenderer?: CatalogCustomRenderer;
27
+ /**
28
+ * Optional design refs (tokens/branding/content) that apply under this scope.
29
+ */
30
+ designRefs?: CatalogDesignRef[];
31
+ metadata?: Record<string, unknown>;
32
+ createdAt?: string;
33
+ updatedAt?: string;
34
+ };
35
+ export type ResolveCatalogPresentationBindingInput = {
36
+ descriptor: CatalogDescriptor | null;
37
+ /**
38
+ * Optional presentation profiles; caller can provide a catalog-scoped profile and/or type-scoped profile.
39
+ */
40
+ profiles?: CatalogPresentationProfileRecord[];
41
+ role: Exclude<CatalogRendererRole, "core">;
42
+ mode?: CatalogRendererMode;
43
+ /**
44
+ * Current list-like display context. Used when selecting templates for list/grid/cards.
45
+ */
46
+ displayContext?: "grid" | "list" | "cards" | "form";
47
+ /**
48
+ * Optional snippet record resolved by the caller (Catalox can fetch it when wired).
49
+ * This is metadata only; evaluation is a host concern.
50
+ */
51
+ snippet?: CatalogRendererSnippetRecord | null;
52
+ /**
53
+ * Optional design objects available to match/merge.
54
+ */
55
+ designObjects?: CatalogDesignObjectRecord[];
56
+ /**
57
+ * Runtime scope used to select design objects, if requested.
58
+ */
59
+ designScope?: CatalogDesignScope;
60
+ };
61
+ export type ResolvedCatalogPresentationBinding = {
62
+ strategy: CatalogPresentationStrategy;
63
+ /**
64
+ * The effective presentation spec to use for native automatic or as a supplement to templates/custom renderers.
65
+ */
66
+ presentationSpec?: CatalogPresentationSpec;
67
+ /**
68
+ * The resolved template assignment, when strategy is "template".
69
+ */
70
+ template?: {
71
+ templateId: string;
72
+ props?: Record<string, unknown>;
73
+ designRefs?: CatalogDesignRef[];
74
+ metadata?: Record<string, unknown>;
75
+ };
76
+ /**
77
+ * The resolved custom renderer entry, when strategy is "custom-renderer".
78
+ */
79
+ customRenderer?: {
80
+ entry: CustomRendererEntry;
81
+ snippet?: CatalogRendererSnippetRecord | null;
82
+ };
83
+ /**
84
+ * Merged opaque design payload and provenance.
85
+ */
86
+ design?: {
87
+ merged: Record<string, unknown>;
88
+ contributingDesignIds: string[];
89
+ };
90
+ /**
91
+ * Helpful debug info for hosts (non-authoritative).
92
+ */
93
+ debug?: {
94
+ fromCatalogId?: string;
95
+ fromCatalogType?: string;
96
+ usedProfileIds?: string[];
97
+ };
98
+ };
99
+ /**
100
+ * Lightweight helper to merge JSON objects in order (later wins).
101
+ * This is intentionally shallow; hosts can implement deep merge if they want.
102
+ */
103
+ export declare function mergeDesignObjects(objects: CatalogDesignObjectRecord[]): {
104
+ merged: Record<string, unknown>;
105
+ contributingDesignIds: string[];
106
+ };
107
+ /**
108
+ * Resolve a catalog presentation binding for a given role/mode without rendering anything.
109
+ *
110
+ * Precedence:
111
+ * - catalog-scoped profiles override catalog-type-scoped profiles
112
+ * - `customRenderer` wins over templates, templates win over native-auto
113
+ * - design refs are applied (explicit refs first), then optionally scope-matched design objects
114
+ */
115
+ export declare function resolveCatalogPresentationBinding(input: ResolveCatalogPresentationBindingInput): ResolvedCatalogPresentationBinding;
116
+ //# sourceMappingURL=presentation-binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation-binding.d.ts","sourceRoot":"","sources":["../../../src/contracts/presentation-binding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,215 @@
1
+ import { resolveCustomRendererEntry } from "./custom-renderer-resolve.js";
2
+ function isNonEmptyString(v) {
3
+ return typeof v === "string" && v.trim().length > 0;
4
+ }
5
+ function scopeMatches(target, candidate) {
6
+ if (!target)
7
+ return true;
8
+ if (!candidate)
9
+ return false;
10
+ // Every axis provided in target must match candidate.
11
+ if (target.storeId != null && String(candidate.storeId ?? "") !== String(target.storeId))
12
+ return false;
13
+ if (target.appId != null && String(candidate.appId ?? "") !== String(target.appId))
14
+ return false;
15
+ if (target.accountId != null && String(candidate.accountId ?? "") !== String(target.accountId))
16
+ return false;
17
+ if (target.agentId != null && String(candidate.agentId ?? "") !== String(target.agentId))
18
+ return false;
19
+ return true;
20
+ }
21
+ function scopeSpecificity(s) {
22
+ if (!s)
23
+ return 0;
24
+ return Number(Boolean(s.storeId)) + Number(Boolean(s.appId)) + Number(Boolean(s.accountId)) + Number(Boolean(s.agentId));
25
+ }
26
+ function dedupeByDesignId(objs) {
27
+ const seen = new Set();
28
+ const out = [];
29
+ for (const o of objs) {
30
+ const id = String(o?.designId ?? "");
31
+ if (!id)
32
+ continue;
33
+ if (seen.has(id))
34
+ continue;
35
+ seen.add(id);
36
+ out.push(o);
37
+ }
38
+ return out;
39
+ }
40
+ function pickTemplateAssignment(params) {
41
+ const templates = params.templates ?? [];
42
+ if (!templates.length)
43
+ return null;
44
+ // Merge semantics: core -> role -> role+mode, optionally filtering by displayContext when provided.
45
+ const candidates = templates.filter((t) => {
46
+ if (!t || typeof t !== "object")
47
+ return false;
48
+ if (!isNonEmptyString(t.templateId))
49
+ return false;
50
+ if (params.displayContext && t.displayContext && String(t.displayContext) !== String(params.displayContext))
51
+ return false;
52
+ return true;
53
+ });
54
+ const core = candidates.find((t) => t.role === "core" && t.mode == null);
55
+ const roleOnly = candidates.find((t) => t.role === params.role && t.mode == null);
56
+ const roleMode = params.mode ? candidates.find((t) => t.role === params.role && t.mode === params.mode) : undefined;
57
+ if (!core && !roleOnly && !roleMode)
58
+ return null;
59
+ const merge = (base, override) => {
60
+ const out = { ...base, ...override };
61
+ // Merge props/designRefs shallowly (later wins but retains previous keys).
62
+ if (base?.props || override?.props)
63
+ out.props = { ...(base?.props ?? {}), ...(override?.props ?? {}) };
64
+ if (base?.designRefs || override?.designRefs)
65
+ out.designRefs = [...(base?.designRefs ?? []), ...(override?.designRefs ?? [])];
66
+ return out;
67
+ };
68
+ let out = { templateId: "", props: undefined, designRefs: undefined, metadata: undefined };
69
+ if (core)
70
+ out = merge(out, core);
71
+ if (roleOnly)
72
+ out = merge(out, roleOnly);
73
+ if (roleMode)
74
+ out = merge(out, roleMode);
75
+ if (!isNonEmptyString(out.templateId))
76
+ return null;
77
+ return { templateId: out.templateId, props: out.props, designRefs: out.designRefs, metadata: out.metadata };
78
+ }
79
+ function deriveNativeAutoPresentationSpec(descriptor) {
80
+ // v1: use explicit presentationSpec when present; derivation can be evolved later.
81
+ return descriptor?.presentationSpec;
82
+ }
83
+ /**
84
+ * Lightweight helper to merge JSON objects in order (later wins).
85
+ * This is intentionally shallow; hosts can implement deep merge if they want.
86
+ */
87
+ export function mergeDesignObjects(objects) {
88
+ const merged = {};
89
+ const contributingDesignIds = [];
90
+ for (const o of objects) {
91
+ if (!o || typeof o !== "object")
92
+ continue;
93
+ if (!o.designId)
94
+ continue;
95
+ contributingDesignIds.push(String(o.designId));
96
+ Object.assign(merged, o.design ?? {});
97
+ }
98
+ return { merged, contributingDesignIds };
99
+ }
100
+ /**
101
+ * Resolve a catalog presentation binding for a given role/mode without rendering anything.
102
+ *
103
+ * Precedence:
104
+ * - catalog-scoped profiles override catalog-type-scoped profiles
105
+ * - `customRenderer` wins over templates, templates win over native-auto
106
+ * - design refs are applied (explicit refs first), then optionally scope-matched design objects
107
+ */
108
+ export function resolveCatalogPresentationBinding(input) {
109
+ const descriptor = input.descriptor ?? null;
110
+ const catalogId = descriptor?.catalogId ? String(descriptor.catalogId) : undefined;
111
+ const catalogType = descriptor?.catalogType ? String(descriptor.catalogType) : undefined;
112
+ const profiles = input.profiles ?? [];
113
+ const catalogProfiles = catalogId ? profiles.filter((p) => p?.scope?.catalogId && String(p.scope.catalogId) === catalogId) : [];
114
+ const typeProfiles = catalogType ? profiles.filter((p) => p?.scope?.catalogType && String(p.scope.catalogType) === catalogType) : [];
115
+ const usedProfiles = [...catalogProfiles, ...typeProfiles];
116
+ const mergedCustomRenderer = (() => {
117
+ const fromProfiles = usedProfiles.map((p) => p.customRenderer).filter(Boolean);
118
+ const fromDescriptor = descriptor?.customRenderer;
119
+ const renderers = [];
120
+ for (const cr of [...fromProfiles, ...(fromDescriptor ? [fromDescriptor] : [])]) {
121
+ for (const e of cr.renderers ?? [])
122
+ renderers.push(e);
123
+ }
124
+ return renderers.length ? { renderers } : null;
125
+ })();
126
+ const mergedTemplates = (() => {
127
+ const out = [];
128
+ for (const p of usedProfiles)
129
+ for (const t of (p.templates ?? []))
130
+ out.push(t);
131
+ const dTemplates = (descriptor?.presentationSpec?.templates ?? []);
132
+ for (const t of dTemplates)
133
+ out.push(t);
134
+ return out.length ? out : undefined;
135
+ })();
136
+ const presentationSpec = (() => {
137
+ // Profile can override/augment; v1 chooses descriptor.spec if present else first profile.spec.
138
+ const d = descriptor?.presentationSpec;
139
+ if (d)
140
+ return d;
141
+ const p = usedProfiles.find((x) => x.presentationSpec)?.presentationSpec;
142
+ return p;
143
+ })();
144
+ const resolvedCustom = resolveCustomRendererEntry({
145
+ customRenderer: mergedCustomRenderer ?? undefined,
146
+ role: input.role,
147
+ ...(input.mode ? { mode: input.mode } : {}),
148
+ });
149
+ const resolvedTemplate = !resolvedCustom
150
+ ? pickTemplateAssignment({
151
+ templates: mergedTemplates,
152
+ role: input.role,
153
+ ...(input.mode ? { mode: input.mode } : {}),
154
+ ...(input.displayContext ? { displayContext: input.displayContext } : {}),
155
+ })
156
+ : null;
157
+ const strategy = resolvedCustom ? "custom-renderer" : resolvedTemplate ? "template" : "native-auto";
158
+ // Design resolution
159
+ const allDesignRefs = [
160
+ ...(usedProfiles.flatMap((p) => p.designRefs ?? []) ?? []),
161
+ ...(descriptor?.presentationSpec?.designRefs ?? []),
162
+ ...(resolvedTemplate?.designRefs ?? []),
163
+ ].filter(Boolean);
164
+ const availableDesigns = (input.designObjects ?? []).filter((d) => d && typeof d === "object" && d.design && typeof d.design === "object" && !Array.isArray(d.design));
165
+ const explicitlyPicked = dedupeByDesignId(allDesignRefs
166
+ .map((r) => {
167
+ if (!r?.designId)
168
+ return null;
169
+ const id = String(r.designId);
170
+ return availableDesigns.find((d) => String(d.designId) === id) ?? null;
171
+ })
172
+ .filter(Boolean));
173
+ const scopePicked = (() => {
174
+ if (!input.designScope)
175
+ return [];
176
+ // Match designs by runtime scope and sort by specificity (broad -> specific) so specific overrides last.
177
+ const matches = availableDesigns.filter((d) => scopeMatches(input.designScope, d.scope));
178
+ matches.sort((a, b) => scopeSpecificity(a.scope) - scopeSpecificity(b.scope));
179
+ return dedupeByDesignId(matches);
180
+ })();
181
+ const contributing = dedupeByDesignId([...explicitlyPicked, ...scopePicked]);
182
+ const design = contributing.length ? mergeDesignObjects(contributing) : undefined;
183
+ return {
184
+ strategy,
185
+ ...(() => {
186
+ const spec = strategy === "native-auto" ? deriveNativeAutoPresentationSpec(descriptor) ?? presentationSpec : presentationSpec;
187
+ return spec != null ? { presentationSpec: spec } : {};
188
+ })(),
189
+ ...(resolvedTemplate
190
+ ? {
191
+ template: {
192
+ templateId: resolvedTemplate.templateId,
193
+ ...(resolvedTemplate.props ? { props: resolvedTemplate.props } : {}),
194
+ ...(resolvedTemplate.designRefs ? { designRefs: resolvedTemplate.designRefs } : {}),
195
+ ...(resolvedTemplate.metadata ? { metadata: resolvedTemplate.metadata } : {}),
196
+ },
197
+ }
198
+ : {}),
199
+ ...(resolvedCustom
200
+ ? {
201
+ customRenderer: {
202
+ entry: resolvedCustom,
203
+ ...(input.snippet !== undefined ? { snippet: input.snippet } : {}),
204
+ },
205
+ }
206
+ : {}),
207
+ ...(design ? { design } : {}),
208
+ debug: {
209
+ ...(catalogId ? { fromCatalogId: catalogId } : {}),
210
+ ...(catalogType ? { fromCatalogType: catalogType } : {}),
211
+ ...(usedProfiles.length ? { usedProfileIds: usedProfiles.map((p) => p.profileId) } : {}),
212
+ },
213
+ };
214
+ }
215
+ //# sourceMappingURL=presentation-binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation-binding.js","sourceRoot":"","sources":["../../../src/contracts/presentation-binding.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import type { FieldSource } from "./field-source.js";
2
+ import type { CatalogDesignRef } from "./design-objects.js";
3
+ import type { CatalogRendererMode, CatalogRendererRole } from "./renderer-snippets.js";
2
4
  export type CatalogDisplayContext = "grid" | "list" | "cards" | "form";
3
5
  export type CatalogUIMode = "view" | "edit";
4
6
  export type CatalogPresentationDensity = "compact" | "default" | "comfortable";
@@ -127,6 +129,36 @@ export type EmptyStateSpec = {
127
129
  icon?: string;
128
130
  metadata?: Record<string, unknown>;
129
131
  };
132
+ export type RelationSectionSpec = {
133
+ /**
134
+ * Optional allowlist of relation types to include in this section.
135
+ * If omitted, hosts may show all relations (or those declared on the descriptor).
136
+ */
137
+ relationTypes?: string[];
138
+ label: string;
139
+ description?: string;
140
+ /**
141
+ * When true, hosts should emphasize this section in create/edit flows.
142
+ * Validation enforcement comes from `CatalogDescriptor.relationRules`.
143
+ */
144
+ required?: boolean;
145
+ /**
146
+ * Display hint: show relation count in the section header.
147
+ */
148
+ showCount?: boolean;
149
+ metadata?: Record<string, unknown>;
150
+ };
151
+ export type RelationsPresentationSpec = {
152
+ /**
153
+ * Optional ordered sections for rendering relations on item/detail surfaces.
154
+ */
155
+ sections?: RelationSectionSpec[];
156
+ /**
157
+ * Display hint for list/grid/cards surfaces (host-defined).
158
+ */
159
+ showInSummary?: boolean;
160
+ metadata?: Record<string, unknown>;
161
+ };
130
162
  export type CatalogPresentationSpec = {
131
163
  /**
132
164
  * Per-field rendering + edit semantics (view + edit in one place).
@@ -144,6 +176,50 @@ export type CatalogPresentationSpec = {
144
176
  showSearch?: boolean;
145
177
  searchFields?: string[];
146
178
  emptyState?: EmptyStateSpec;
179
+ /**
180
+ * Optional template assignments (host-defined). This is a declarative, non-code way
181
+ * to select presentation. Rendering is performed by the host presentation layer.
182
+ */
183
+ templates?: CatalogPresentationTemplateAssignment[];
184
+ /**
185
+ * Optional design references to scoped design objects (tokens/branding/content).
186
+ * Payloads remain opaque to Catalox.
187
+ */
188
+ designRefs?: CatalogDesignRef[];
189
+ /**
190
+ * Optional declarative presentation hints for item relations (links).
191
+ * Actual enforcement is driven by `CatalogDescriptor.relationRules`.
192
+ */
193
+ relations?: RelationsPresentationSpec;
194
+ metadata?: Record<string, unknown>;
195
+ };
196
+ export type CatalogPresentationTemplateAssignment = {
197
+ /**
198
+ * Matches the same renderer surface roles as custom renderers.
199
+ * Use "core" to express defaults that hosts may merge.
200
+ */
201
+ role: CatalogRendererRole;
202
+ /**
203
+ * Optional mode variant. Only meaningful for list/grid/item roles.
204
+ */
205
+ mode?: CatalogRendererMode;
206
+ /**
207
+ * Optional displayContext override used by list-like surfaces.
208
+ * If omitted, the host decides based on the active map context.
209
+ */
210
+ displayContext?: Exclude<CatalogDisplayContext, "form">;
211
+ /**
212
+ * Host-owned template identifier (not an import path).
213
+ */
214
+ templateId: string;
215
+ /**
216
+ * Static JSON props passed to the template by the host.
217
+ */
218
+ props?: Record<string, unknown>;
219
+ /**
220
+ * Optional design refs specifically for this template assignment.
221
+ */
222
+ designRefs?: CatalogDesignRef[];
147
223
  metadata?: Record<string, unknown>;
148
224
  };
149
225
  //# sourceMappingURL=presentation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"presentation.d.ts","sourceRoot":"","sources":["../../../src/contracts/presentation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presentation.d.ts","sourceRoot":"","sources":["../../../src/contracts/presentation.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,44 @@ export type CatalogItemReference = {
8
8
  label?: string;
9
9
  metadata?: Record<string, unknown>;
10
10
  };
11
+ /**
12
+ * Descriptor-level rules for item-to-item relations.
13
+ *
14
+ * These rules describe what relations are allowed/required for items in a catalog.
15
+ * The actual relation instances are stored as `CatalogItemReference` records.
16
+ */
17
+ export type CatalogRelationDirection = "outbound" | "inbound" | "bidirectional";
18
+ export type CatalogRelationTargetScope = "global" | "account" | "group" | "user" | "app" | "store" | "domain" | "agent";
19
+ export type CatalogRelationRule = {
20
+ /**
21
+ * Stable identifier used to match `CatalogItemReference.relationType`.
22
+ * Keep this stable over time to preserve compatibility.
23
+ */
24
+ relationType: string;
25
+ label?: string;
26
+ description?: string;
27
+ /**
28
+ * If true, at least one relation of this type must exist for the item.
29
+ * Enforced by validation and creation/update flows.
30
+ */
31
+ required?: boolean;
32
+ /**
33
+ * When false, only one relation of this type is allowed from an item.
34
+ * Default: true.
35
+ */
36
+ multiple?: boolean;
37
+ /**
38
+ * Optional constraints on what the relation can point to.
39
+ * If omitted, relation targets are host-defined / unconstrained.
40
+ */
41
+ targetCatalogIds?: string[];
42
+ targetCatalogTypes?: string[];
43
+ targetScopes?: CatalogRelationTargetScope[];
44
+ /**
45
+ * Presentation semantics for hosts (does not affect storage).
46
+ * Default: "outbound".
47
+ */
48
+ direction?: CatalogRelationDirection;
49
+ metadata?: Record<string, unknown>;
50
+ };
11
51
  //# sourceMappingURL=references.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../../src/contracts/references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,SAAS,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,SAAS,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC"}
1
+ {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../../src/contracts/references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,SAAS,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,SAAS,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,SAAS,GAAG,eAAe,CAAC;AAEhF,MAAM,MAAM,0BAA0B,GAClC,QAAQ,GACR,SAAS,GACT,OAAO,GACP,MAAM,GACN,KAAK,GACL,OAAO,GACP,QAAQ,GACR,OAAO,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAE5C;;;OAGG;IACH,SAAS,CAAC,EAAE,wBAAwB,CAAC;IAErC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC"}
@@ -120,6 +120,11 @@ export type CatalogItemReferenceView = {
120
120
  label?: string;
121
121
  metadata?: Record<string, unknown>;
122
122
  };
123
+ /**
124
+ * User-facing alias for item relations. This matches the existing `references` payload
125
+ * shape, but uses terminology that better reflects generic graph links.
126
+ */
127
+ export type CatalogItemRelationView = CatalogItemReferenceView;
123
128
  export type CatalogItemValidationView = {
124
129
  isValid: boolean;
125
130
  fieldErrors: Record<string, string>;
@@ -138,6 +143,13 @@ export type CatalogItemRenderMap = {
138
143
  updatedAt?: string;
139
144
  };
140
145
  resolvedSources: Record<string, ResolvedSourceOption[]>;
146
+ /**
147
+ * Generic item-to-item relations (links) originating from this item.
148
+ */
149
+ relations?: CatalogItemRelationView[];
150
+ /**
151
+ * Backward-compatible name for `relations`.
152
+ */
141
153
  references?: CatalogItemReferenceView[];
142
154
  presentation?: CatalogPresentationSpec;
143
155
  capabilities: CatalogCapabilitiesDescriptor;
@@ -1 +1 @@
1
- {"version":3,"file":"render-map.d.ts","sourceRoot":"","sources":["../../../src/contracts/render-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE9G,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE;QACX;;;WAGG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;;;WAGG;QACH,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;IACF;;OAEG;IACH,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;OAGG;IACH,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAExD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,iBAAiB,CAAC;KAC1B,CAAC;IAEF,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAE1D,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IAEF,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,YAAY,EAAE,6BAA6B,CAAC;IAE5C,OAAO,EAAE;QACP,IAAI,EAAE,aAAa,CAAC;QACpB,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;KAC3C,CAAC;IAEF,OAAO,EAAE;QACP,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;QACxC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;QACtC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;QACtC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;QACxC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;QAChD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QAC5D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;QAC5E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QACtC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QAC9C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;QAC1B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;QAC3D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;KACxB,CAAC;IAEF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAExD,UAAU,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAExC,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,YAAY,EAAE,6BAA6B,CAAC;IAE5C,OAAO,EAAE;QACP,IAAI,EAAE,aAAa,CAAC;QACpB,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;QAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IAEF,UAAU,CAAC,EAAE,yBAAyB,CAAC;IAEvC,OAAO,EAAE;QACP,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAC5D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;QACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;QAC7C,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;KACxB,CAAC;IAEF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC"}
1
+ {"version":3,"file":"render-map.d.ts","sourceRoot":"","sources":["../../../src/contracts/render-map.ts"],"names":[],"mappings":"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"}