@x12i/memorix-metadata 0.0.0-bootstrap.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 (61) hide show
  1. package/README.md +35 -0
  2. package/dist/abstracts.d.ts +98 -0
  3. package/dist/abstracts.d.ts.map +1 -0
  4. package/dist/abstracts.js +419 -0
  5. package/dist/abstracts.js.map +1 -0
  6. package/dist/fingerprint.d.ts +11 -0
  7. package/dist/fingerprint.d.ts.map +1 -0
  8. package/dist/fingerprint.js +66 -0
  9. package/dist/fingerprint.js.map +1 -0
  10. package/dist/index.d.ts +8 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +7 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/kind-fields.d.ts +13 -0
  15. package/dist/kind-fields.d.ts.map +1 -0
  16. package/dist/kind-fields.js +39 -0
  17. package/dist/kind-fields.js.map +1 -0
  18. package/dist/kinds.d.ts +21 -0
  19. package/dist/kinds.d.ts.map +1 -0
  20. package/dist/kinds.js +147 -0
  21. package/dist/kinds.js.map +1 -0
  22. package/dist/multi-agent-rule.d.ts +15 -0
  23. package/dist/multi-agent-rule.d.ts.map +1 -0
  24. package/dist/multi-agent-rule.js +30 -0
  25. package/dist/multi-agent-rule.js.map +1 -0
  26. package/dist/normalize.d.ts +26 -0
  27. package/dist/normalize.d.ts.map +1 -0
  28. package/dist/normalize.js +114 -0
  29. package/dist/normalize.js.map +1 -0
  30. package/dist/resolve.d.ts +85 -0
  31. package/dist/resolve.d.ts.map +1 -0
  32. package/dist/resolve.js +464 -0
  33. package/dist/resolve.js.map +1 -0
  34. package/dist/types.d.ts +277 -0
  35. package/dist/types.d.ts.map +1 -0
  36. package/dist/types.js +6 -0
  37. package/dist/types.js.map +1 -0
  38. package/dist/validate.d.ts +7 -0
  39. package/dist/validate.d.ts.map +1 -0
  40. package/dist/validate.js +563 -0
  41. package/dist/validate.js.map +1 -0
  42. package/examples/invalid/agent-classification.json +709 -0
  43. package/examples/invalid/broken-binding.json +688 -0
  44. package/examples/invalid/completion-mapping-with-exec-policy.json +659 -0
  45. package/examples/invalid/missing-parent.json +708 -0
  46. package/examples/invalid/operational-kind-root.json +720 -0
  47. package/examples/invalid/pipeline-unknown-service.json +611 -0
  48. package/examples/invalid/relationship-missing-rules.json +624 -0
  49. package/examples/invalid/relationship-with-storage.json +631 -0
  50. package/examples/invalid/service-with-secrets.json +679 -0
  51. package/examples/ops/normalized/pack.json +1010 -0
  52. package/examples/ops/raw/abstract-bindings.json +38 -0
  53. package/examples/ops/raw/abstract-types.json +28 -0
  54. package/examples/ops/raw/agents.json +33 -0
  55. package/examples/ops/raw/object-types.json +170 -0
  56. package/examples/ops/raw/pipelines-and-sources.json +185 -0
  57. package/examples/ops/raw/relationship-definitions.json +110 -0
  58. package/examples/ops/raw/view-definitions.json +46 -0
  59. package/examples/ops/raw/write-and-source-mappings.json +108 -0
  60. package/examples/project-ops/normalized/pack.json +944 -0
  61. package/package.json +49 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,464 @@
1
+ import { fingerprintDefinition } from "./fingerprint.js";
2
+ import { KIND_TO_PACK_FIELD, PACK_DEFINITION_KINDS } from "./kind-fields.js";
3
+ import { validateMetadataPack } from "./validate.js";
4
+ function defId(def) {
5
+ return typeof def.id === "string" ? def.id : "";
6
+ }
7
+ function indexAgents(packsByAgentId) {
8
+ const map = new Set();
9
+ const agents = new Map();
10
+ for (const pack of Object.values(packsByAgentId)) {
11
+ for (const a of pack.agents ?? []) {
12
+ if (!agents.has(a.id))
13
+ agents.set(a.id, a);
14
+ map.add(a.id);
15
+ }
16
+ }
17
+ // Ensure pack keys are also findable as agents if listed
18
+ for (const agentId of Object.keys(packsByAgentId)) {
19
+ if (!agents.has(agentId)) {
20
+ const fromPack = packsByAgentId[agentId]?.agents?.find((a) => a.id === agentId);
21
+ if (fromPack)
22
+ agents.set(agentId, fromPack);
23
+ }
24
+ }
25
+ void map;
26
+ return agents;
27
+ }
28
+ function uniquePreserveAll(ids) {
29
+ const seen = new Set();
30
+ const out = [];
31
+ for (const id of ids) {
32
+ if (!seen.has(id)) {
33
+ seen.add(id);
34
+ out.push(id);
35
+ }
36
+ }
37
+ return out;
38
+ }
39
+ /** True if `ancestor` appears on `descendant`'s parent chain (exclusive of self). */
40
+ function isAncestorOf(ancestor, descendant, agents) {
41
+ let current = agents.get(descendant)?.parentId ?? null;
42
+ const seen = new Set();
43
+ while (current) {
44
+ if (current === ancestor)
45
+ return true;
46
+ if (seen.has(current))
47
+ return false;
48
+ seen.add(current);
49
+ current = agents.get(current)?.parentId ?? null;
50
+ }
51
+ return false;
52
+ }
53
+ /**
54
+ * Drop ancestors when a descendant is also selected.
55
+ * Remaining set is sorted for deterministic processing (not precedence).
56
+ */
57
+ export function collapseAncestorSelections(selectedAgentIds, agents) {
58
+ const unique = uniquePreserveAll(selectedAgentIds);
59
+ const collapsed = unique.filter((id) => !unique.some((other) => other !== id && isAncestorOf(id, other, agents)));
60
+ return [...collapsed].sort();
61
+ }
62
+ /**
63
+ * Resolve single-parent chain oldest-parent-first.
64
+ */
65
+ export function resolveParentChain(agentId, agents) {
66
+ const issues = [];
67
+ if (!agents.has(agentId)) {
68
+ return {
69
+ ok: false,
70
+ issues: [
71
+ {
72
+ code: "RESOLVE-MISSING-AGENT",
73
+ message: `Selected agent "${agentId}" is not defined`,
74
+ agentId,
75
+ },
76
+ ],
77
+ };
78
+ }
79
+ const chainRev = [];
80
+ let current = agentId;
81
+ const seen = new Set();
82
+ while (current) {
83
+ if (seen.has(current)) {
84
+ const cycleStart = chainRev.indexOf(current);
85
+ const cyclePath = [...chainRev.slice(cycleStart), current];
86
+ return {
87
+ ok: false,
88
+ issues: [
89
+ {
90
+ code: chainRev.length <= 1 || (current === agentId && chainRev[0] === agentId)
91
+ ? "RESOLVE-SELF-CYCLE"
92
+ : "RESOLVE-CYCLE",
93
+ message: `Parent cycle detected: ${[...chainRev, current].join(" -> ")}`,
94
+ agentId,
95
+ path: cyclePath,
96
+ },
97
+ ],
98
+ };
99
+ }
100
+ seen.add(current);
101
+ const agent = agents.get(current);
102
+ if (!agent) {
103
+ issues.push({
104
+ code: "RESOLVE-MISSING-AGENT",
105
+ message: `Agent "${current}" missing while resolving chain for "${agentId}"`,
106
+ agentId: current,
107
+ });
108
+ return { ok: false, issues };
109
+ }
110
+ if (agent.parentId === agent.id) {
111
+ return {
112
+ ok: false,
113
+ issues: [
114
+ {
115
+ code: "RESOLVE-SELF-CYCLE",
116
+ message: `Agent "${agent.id}" parents itself`,
117
+ agentId: agent.id,
118
+ path: [agent.id, agent.id],
119
+ },
120
+ ],
121
+ };
122
+ }
123
+ chainRev.push(current);
124
+ if (agent.parentId) {
125
+ if (!agents.has(agent.parentId)) {
126
+ return {
127
+ ok: false,
128
+ issues: [
129
+ {
130
+ code: "RESOLVE-MISSING-PARENT",
131
+ message: `Agent "${agent.id}" references missing parent "${agent.parentId}"`,
132
+ agentId: agent.id,
133
+ path: [agent.id, agent.parentId],
134
+ },
135
+ ],
136
+ };
137
+ }
138
+ current = agent.parentId;
139
+ }
140
+ else {
141
+ current = null;
142
+ }
143
+ }
144
+ // chainRev is newest-first (agent → … → root); reverse to oldest-parent-first
145
+ return { ok: true, chain: chainRev.reverse() };
146
+ }
147
+ function definitionsFromPack(pack, agentId) {
148
+ const out = [];
149
+ for (const kind of PACK_DEFINITION_KINDS) {
150
+ const field = KIND_TO_PACK_FIELD[kind];
151
+ const arr = pack[field];
152
+ if (!Array.isArray(arr))
153
+ continue;
154
+ for (const item of arr) {
155
+ if (!item || typeof item !== "object")
156
+ continue;
157
+ const def = item;
158
+ // For agents kind, only the agent record for this pack owner participates in chain apply
159
+ if (kind === "agents" && defId(def) !== agentId)
160
+ continue;
161
+ if (!defId(def))
162
+ continue;
163
+ out.push({ kind, definition: { ...def } });
164
+ }
165
+ }
166
+ return out;
167
+ }
168
+ function composeChain(chain, selectedAgentId, packsByAgentId) {
169
+ const map = new Map();
170
+ const issues = [];
171
+ for (let i = 0; i < chain.length; i++) {
172
+ const agentId = chain[i];
173
+ const pack = packsByAgentId[agentId];
174
+ if (!pack) {
175
+ issues.push({
176
+ code: "RESOLVE-MISSING-PACK",
177
+ message: `No metadata pack for agent "${agentId}"`,
178
+ agentId,
179
+ });
180
+ return { ok: false, issues };
181
+ }
182
+ const inheritancePath = chain.slice(0, i + 1);
183
+ for (const { kind, definition } of definitionsFromPack(pack, agentId)) {
184
+ const id = defId(definition);
185
+ const key = `${kind}::${id}`;
186
+ const fp = fingerprintDefinition(definition);
187
+ const existing = map.get(key);
188
+ if (!existing) {
189
+ map.set(key, {
190
+ kind,
191
+ id,
192
+ definition,
193
+ fingerprint: fp,
194
+ definedByAgentId: agentId,
195
+ inheritancePath,
196
+ selectedAgentId,
197
+ });
198
+ }
199
+ else {
200
+ // Complete replacement (no deep merge)
201
+ map.set(key, {
202
+ kind,
203
+ id,
204
+ definition,
205
+ fingerprint: fp,
206
+ definedByAgentId: agentId,
207
+ inheritancePath,
208
+ selectedAgentId,
209
+ overridden: {
210
+ definedByAgentId: existing.definedByAgentId,
211
+ inheritancePath: existing.inheritancePath,
212
+ fingerprint: existing.fingerprint,
213
+ },
214
+ });
215
+ }
216
+ }
217
+ }
218
+ return { ok: true, map };
219
+ }
220
+ function emptyPack(agentId) {
221
+ return {
222
+ format: "memorix-metadata/1",
223
+ agentId,
224
+ agents: [],
225
+ objectTypes: [],
226
+ abstractTypes: [],
227
+ abstractBindings: [],
228
+ relationshipDefinitions: [],
229
+ mappings: [],
230
+ views: [],
231
+ writes: [],
232
+ sources: [],
233
+ services: [],
234
+ pipelines: [],
235
+ schedules: [],
236
+ };
237
+ }
238
+ function workingMapToPack(map, agentId, agentsIndex) {
239
+ const pack = emptyPack(agentId);
240
+ for (const entry of map.values()) {
241
+ const field = KIND_TO_PACK_FIELD[entry.kind];
242
+ const arr = pack[field];
243
+ arr.push(entry.definition);
244
+ }
245
+ // Ensure selected agent record exists for pack.agentId validation
246
+ if (!pack.agents.some((a) => a.id === agentId)) {
247
+ const a = agentsIndex.get(agentId);
248
+ if (a)
249
+ pack.agents.push(a);
250
+ }
251
+ return pack;
252
+ }
253
+ function entryToEffective(entry) {
254
+ return {
255
+ kind: entry.kind,
256
+ id: entry.id,
257
+ definition: entry.definition,
258
+ provenance: {
259
+ kind: entry.kind,
260
+ id: entry.id,
261
+ definedByAgentId: entry.definedByAgentId,
262
+ inheritancePath: entry.inheritancePath,
263
+ selectedAgentId: entry.selectedAgentId,
264
+ fingerprint: entry.fingerprint,
265
+ overridden: entry.overridden,
266
+ },
267
+ };
268
+ }
269
+ /**
270
+ * Resolve effective metadata for selected agentIds[].
271
+ * Array order never confers precedence; output is deterministic.
272
+ */
273
+ export function resolveEffectiveMetadata(input) {
274
+ const agents = indexAgents(input.packsByAgentId);
275
+ const selectedUnique = uniquePreserveAll(input.agentIds);
276
+ const collapsedAgentIds = collapseAncestorSelections(selectedUnique, agents);
277
+ const issues = [];
278
+ const conflicts = [];
279
+ // Pre-check missing selected agents
280
+ for (const id of collapsedAgentIds) {
281
+ if (!agents.has(id)) {
282
+ issues.push({
283
+ code: "RESOLVE-MISSING-AGENT",
284
+ message: `Selected agent "${id}" is not defined`,
285
+ agentId: id,
286
+ });
287
+ }
288
+ if (!input.packsByAgentId[id]) {
289
+ issues.push({
290
+ code: "RESOLVE-MISSING-PACK",
291
+ message: `No metadata pack for selected agent "${id}"`,
292
+ agentId: id,
293
+ });
294
+ }
295
+ }
296
+ if (issues.length) {
297
+ return {
298
+ ok: false,
299
+ selectedAgentIds: selectedUnique,
300
+ collapsedAgentIds,
301
+ issues,
302
+ conflicts,
303
+ referenceIssues: [],
304
+ effective: [],
305
+ effectivePack: null,
306
+ };
307
+ }
308
+ const chainMaps = [];
309
+ for (const selectedAgentId of collapsedAgentIds) {
310
+ const chainResult = resolveParentChain(selectedAgentId, agents);
311
+ if (!chainResult.ok) {
312
+ return {
313
+ ok: false,
314
+ selectedAgentIds: selectedUnique,
315
+ collapsedAgentIds,
316
+ issues: chainResult.issues,
317
+ conflicts,
318
+ referenceIssues: [],
319
+ effective: [],
320
+ effectivePack: null,
321
+ };
322
+ }
323
+ const composed = composeChain(chainResult.chain, selectedAgentId, input.packsByAgentId);
324
+ if (!composed.ok) {
325
+ return {
326
+ ok: false,
327
+ selectedAgentIds: selectedUnique,
328
+ collapsedAgentIds,
329
+ issues: composed.issues,
330
+ conflicts,
331
+ referenceIssues: [],
332
+ effective: [],
333
+ effectivePack: null,
334
+ };
335
+ }
336
+ chainMaps.push({ selectedAgentId, map: composed.map });
337
+ }
338
+ // Additive merge across unrelated effective agents
339
+ const merged = new Map();
340
+ for (const { map } of chainMaps) {
341
+ for (const [key, entry] of map) {
342
+ const existing = merged.get(key);
343
+ if (!existing) {
344
+ merged.set(key, entry);
345
+ continue;
346
+ }
347
+ if (existing.fingerprint === entry.fingerprint) {
348
+ // Identical — dedupe; keep lexicographically smaller selectedAgentId for stability
349
+ if (entry.selectedAgentId < existing.selectedAgentId) {
350
+ merged.set(key, entry);
351
+ }
352
+ continue;
353
+ }
354
+ conflicts.push({
355
+ kind: entry.kind,
356
+ id: entry.id,
357
+ left: {
358
+ kind: existing.kind,
359
+ id: existing.id,
360
+ definedByAgentId: existing.definedByAgentId,
361
+ inheritancePath: existing.inheritancePath,
362
+ selectedAgentId: existing.selectedAgentId,
363
+ fingerprint: existing.fingerprint,
364
+ overridden: existing.overridden,
365
+ },
366
+ right: {
367
+ kind: entry.kind,
368
+ id: entry.id,
369
+ definedByAgentId: entry.definedByAgentId,
370
+ inheritancePath: entry.inheritancePath,
371
+ selectedAgentId: entry.selectedAgentId,
372
+ fingerprint: entry.fingerprint,
373
+ overridden: entry.overridden,
374
+ },
375
+ reason: "Differing definitions for the same metadata kind + id from unrelated effective branches",
376
+ });
377
+ }
378
+ }
379
+ if (conflicts.length) {
380
+ conflicts.sort((a, b) => a.kind.localeCompare(b.kind) ||
381
+ a.id.localeCompare(b.id) ||
382
+ a.left.selectedAgentId.localeCompare(b.left.selectedAgentId));
383
+ // Normalize left/right by selectedAgentId for deterministic conflict reports
384
+ for (const c of conflicts) {
385
+ if (c.left.selectedAgentId > c.right.selectedAgentId) {
386
+ const tmp = c.left;
387
+ c.left = c.right;
388
+ c.right = tmp;
389
+ }
390
+ }
391
+ return {
392
+ ok: false,
393
+ selectedAgentIds: selectedUnique,
394
+ collapsedAgentIds,
395
+ issues,
396
+ conflicts,
397
+ referenceIssues: [],
398
+ effective: [],
399
+ effectivePack: null,
400
+ };
401
+ }
402
+ const effective = [...merged.values()]
403
+ .map(entryToEffective)
404
+ .sort((a, b) => a.kind.localeCompare(b.kind) || a.id.localeCompare(b.id));
405
+ const primaryAgentId = collapsedAgentIds[0] ?? "effective";
406
+ const effectivePack = workingMapToPack(merged, primaryAgentId, agents);
407
+ // Include all agent records referenced by provenance for parent checks
408
+ for (const e of effective) {
409
+ for (const aid of e.provenance.inheritancePath) {
410
+ const a = agents.get(aid);
411
+ if (a && !effectivePack.agents.some((x) => x.id === a.id)) {
412
+ effectivePack.agents.push(a);
413
+ }
414
+ }
415
+ }
416
+ effectivePack.agentId = primaryAgentId;
417
+ if (!effectivePack.agents.some((a) => a.id === primaryAgentId)) {
418
+ const a = agents.get(primaryAgentId);
419
+ if (a)
420
+ effectivePack.agents.push(a);
421
+ }
422
+ const ref = validateMetadataPack(effectivePack);
423
+ return {
424
+ ok: ref.ok,
425
+ selectedAgentIds: selectedUnique,
426
+ collapsedAgentIds,
427
+ issues,
428
+ conflicts,
429
+ referenceIssues: ref.issues,
430
+ effective,
431
+ effectivePack: ref.ok ? effectivePack : effectivePack,
432
+ };
433
+ }
434
+ /** Raw (unresolved) view of a single agent's pack. */
435
+ export function getRawAgentView(agentId, packsByAgentId) {
436
+ const agents = indexAgents(packsByAgentId);
437
+ const pack = packsByAgentId[agentId] ?? null;
438
+ const issues = [];
439
+ if (!agents.has(agentId)) {
440
+ issues.push({
441
+ code: "RESOLVE-MISSING-AGENT",
442
+ message: `Agent "${agentId}" is not defined`,
443
+ agentId,
444
+ });
445
+ }
446
+ if (!pack) {
447
+ issues.push({
448
+ code: "RESOLVE-MISSING-PACK",
449
+ message: `No metadata pack for agent "${agentId}"`,
450
+ agentId,
451
+ });
452
+ }
453
+ return {
454
+ agentId,
455
+ agent: agents.get(agentId) ?? null,
456
+ pack,
457
+ issues,
458
+ };
459
+ }
460
+ /** @deprecated use resolveEffectiveMetadata */
461
+ export function resolveMultiAgentMetadata(input) {
462
+ return resolveEffectiveMetadata(input);
463
+ }
464
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}