@x12i/memorix-metadata 3.0.2 → 3.1.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 (72) hide show
  1. package/README.md +10 -6
  2. package/dist/abstracts.d.ts +9 -3
  3. package/dist/abstracts.d.ts.map +1 -1
  4. package/dist/abstracts.js +70 -66
  5. package/dist/abstracts.js.map +1 -1
  6. package/dist/fold-bindings.d.ts +19 -0
  7. package/dist/fold-bindings.d.ts.map +1 -0
  8. package/dist/fold-bindings.js +103 -0
  9. package/dist/fold-bindings.js.map +1 -0
  10. package/dist/index.d.ts +7 -3
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +7 -3
  13. package/dist/index.js.map +1 -1
  14. package/dist/kind-fields.d.ts.map +1 -1
  15. package/dist/kind-fields.js +0 -1
  16. package/dist/kind-fields.js.map +1 -1
  17. package/dist/kinds.d.ts +1 -1
  18. package/dist/kinds.d.ts.map +1 -1
  19. package/dist/kinds.js +6 -11
  20. package/dist/kinds.js.map +1 -1
  21. package/dist/multi-agent-rule.d.ts +3 -3
  22. package/dist/multi-agent-rule.d.ts.map +1 -1
  23. package/dist/multi-agent-rule.js +7 -7
  24. package/dist/multi-agent-rule.js.map +1 -1
  25. package/dist/normalize.d.ts +3 -2
  26. package/dist/normalize.d.ts.map +1 -1
  27. package/dist/normalize.js +18 -5
  28. package/dist/normalize.js.map +1 -1
  29. package/dist/resolve.d.ts +14 -2
  30. package/dist/resolve.d.ts.map +1 -1
  31. package/dist/resolve.js +229 -133
  32. package/dist/resolve.js.map +1 -1
  33. package/dist/streams.d.ts +17 -0
  34. package/dist/streams.d.ts.map +1 -0
  35. package/dist/streams.js +76 -0
  36. package/dist/streams.js.map +1 -0
  37. package/dist/topology.d.ts +52 -0
  38. package/dist/topology.d.ts.map +1 -0
  39. package/dist/topology.js +348 -0
  40. package/dist/topology.js.map +1 -0
  41. package/dist/types.d.ts +133 -17
  42. package/dist/types.d.ts.map +1 -1
  43. package/dist/types.js +22 -2
  44. package/dist/types.js.map +1 -1
  45. package/dist/validate.d.ts.map +1 -1
  46. package/dist/validate.js +188 -64
  47. package/dist/validate.js.map +1 -1
  48. package/examples/custom-kinds/acme-ui-tabs.pack.json +2 -2
  49. package/examples/invalid/agent-classification.json +69 -69
  50. package/examples/invalid/broken-binding.json +69 -69
  51. package/examples/invalid/completion-mapping-with-exec-policy.json +65 -65
  52. package/examples/invalid/missing-parent.json +69 -69
  53. package/examples/invalid/operational-kind-root.json +73 -73
  54. package/examples/invalid/pipeline-unknown-service.json +62 -62
  55. package/examples/invalid/relationship-missing-rules.json +65 -65
  56. package/examples/invalid/relationship-with-storage.json +65 -65
  57. package/examples/invalid/service-with-secrets.json +66 -66
  58. package/examples/knowx/normalized/pack.json +1538 -0
  59. package/examples/{ops → opx}/normalized/pack.json +340 -322
  60. package/examples/opx/raw/abstract-types.json +244 -0
  61. package/examples/{ops → opx}/raw/agents.json +8 -8
  62. package/examples/opx/raw/object-types.json +101 -0
  63. package/examples/{ops → opx}/raw/pipelines-and-sources.json +79 -31
  64. package/examples/{ops → opx}/raw/relationship-definitions.json +17 -47
  65. package/examples/{ops → opx}/raw/view-definitions.json +7 -21
  66. package/examples/opx/raw/write-and-source-mappings.json +223 -0
  67. package/examples/{project-ops → project-opx}/normalized/pack.json +391 -299
  68. package/package.json +1 -1
  69. package/examples/ops/raw/abstract-bindings.json +0 -38
  70. package/examples/ops/raw/abstract-types.json +0 -28
  71. package/examples/ops/raw/object-types.json +0 -170
  72. package/examples/ops/raw/write-and-source-mappings.json +0 -108
package/dist/resolve.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { fingerprintDefinition } from "./fingerprint.js";
2
2
  import { isValidCustomKindId } from "./custom-kinds.js";
3
+ import { foldLegacyAbstractBindings } from "./fold-bindings.js";
3
4
  import { KIND_TO_PACK_FIELD, PACK_DEFINITION_KINDS } from "./kind-fields.js";
4
5
  import { isMetadataKindId } from "./kinds.js";
6
+ import { parentIdsOf, } from "./types.js";
5
7
  import { validateMetadataPack } from "./validate.js";
6
8
  function defId(def) {
7
9
  return typeof def.id === "string" ? def.id : "";
@@ -38,17 +40,19 @@ function uniquePreserveAll(ids) {
38
40
  }
39
41
  return out;
40
42
  }
41
- /** True if `ancestor` appears on `descendant`'s parent chain (exclusive of self). */
43
+ /** True if `ancestor` is reachable via any parent edge from `descendant` (exclusive of self). */
42
44
  function isAncestorOf(ancestor, descendant, agents) {
43
- let current = agents.get(descendant)?.parentId ?? null;
45
+ const stack = [...parentIdsOf(agents.get(descendant))];
44
46
  const seen = new Set();
45
- while (current) {
47
+ while (stack.length) {
48
+ const current = stack.pop();
46
49
  if (current === ancestor)
47
50
  return true;
48
51
  if (seen.has(current))
49
- return false;
52
+ continue;
50
53
  seen.add(current);
51
- current = agents.get(current)?.parentId ?? null;
54
+ for (const p of parentIdsOf(agents.get(current)))
55
+ stack.push(p);
52
56
  }
53
57
  return false;
54
58
  }
@@ -62,10 +66,10 @@ export function collapseAncestorSelections(selectedAgentIds, agents) {
62
66
  return [...collapsed].sort();
63
67
  }
64
68
  /**
65
- * Resolve single-parent chain oldest-parent-first.
69
+ * Resolve parent DAG into an oldest-first linearization (stable topo).
70
+ * Supports multi-parent; single-parent chains behave as before.
66
71
  */
67
- export function resolveParentChain(agentId, agents) {
68
- const issues = [];
72
+ export function resolveParentDag(agentId, agents) {
69
73
  if (!agents.has(agentId)) {
70
74
  return {
71
75
  ok: false,
@@ -78,73 +82,96 @@ export function resolveParentChain(agentId, agents) {
78
82
  ],
79
83
  };
80
84
  }
81
- const chainRev = [];
82
- let current = agentId;
83
- const seen = new Set();
84
- while (current) {
85
- if (seen.has(current)) {
86
- const cycleStart = chainRev.indexOf(current);
87
- const cyclePath = [...chainRev.slice(cycleStart), current];
85
+ const directParents = parentIdsOf(agents.get(agentId));
86
+ const visiting = new Set();
87
+ const visited = new Set();
88
+ const order = [];
89
+ function visit(id) {
90
+ if (visiting.has(id)) {
91
+ const self = parentIdsOf(agents.get(id)).includes(id);
88
92
  return {
89
93
  ok: false,
90
94
  issues: [
91
95
  {
92
- code: chainRev.length <= 1 || (current === agentId && chainRev[0] === agentId)
93
- ? "RESOLVE-SELF-CYCLE"
94
- : "RESOLVE-CYCLE",
95
- message: `Parent cycle detected: ${[...chainRev, current].join(" -> ")}`,
96
+ code: self ? "RESOLVE-SELF-CYCLE" : "RESOLVE-CYCLE",
97
+ message: self
98
+ ? `Agent "${id}" parents itself`
99
+ : `Parent cycle detected involving "${id}" while resolving "${agentId}"`,
96
100
  agentId,
97
- path: cyclePath,
101
+ path: self ? [id, id] : [id],
98
102
  },
99
103
  ],
100
104
  };
101
105
  }
102
- seen.add(current);
103
- const agent = agents.get(current);
106
+ if (visited.has(id))
107
+ return { ok: true };
108
+ const agent = agents.get(id);
104
109
  if (!agent) {
105
- issues.push({
106
- code: "RESOLVE-MISSING-AGENT",
107
- message: `Agent "${current}" missing while resolving chain for "${agentId}"`,
108
- agentId: current,
109
- });
110
- return { ok: false, issues };
110
+ return {
111
+ ok: false,
112
+ issues: [
113
+ {
114
+ code: "RESOLVE-MISSING-AGENT",
115
+ message: `Agent "${id}" missing while resolving parents for "${agentId}"`,
116
+ agentId: id,
117
+ },
118
+ ],
119
+ };
111
120
  }
112
- if (agent.parentId === agent.id) {
121
+ const parents = parentIdsOf(agent);
122
+ if (parents.includes(id)) {
113
123
  return {
114
124
  ok: false,
115
125
  issues: [
116
126
  {
117
127
  code: "RESOLVE-SELF-CYCLE",
118
- message: `Agent "${agent.id}" parents itself`,
119
- agentId: agent.id,
120
- path: [agent.id, agent.id],
128
+ message: `Agent "${id}" parents itself`,
129
+ agentId: id,
130
+ path: [id, id],
121
131
  },
122
132
  ],
123
133
  };
124
134
  }
125
- chainRev.push(current);
126
- if (agent.parentId) {
127
- if (!agents.has(agent.parentId)) {
135
+ visiting.add(id);
136
+ for (const p of parents) {
137
+ if (!agents.has(p)) {
138
+ visiting.delete(id);
128
139
  return {
129
140
  ok: false,
130
141
  issues: [
131
142
  {
132
143
  code: "RESOLVE-MISSING-PARENT",
133
- message: `Agent "${agent.id}" references missing parent "${agent.parentId}"`,
134
- agentId: agent.id,
135
- path: [agent.id, agent.parentId],
144
+ message: `Agent "${id}" references missing parent "${p}"`,
145
+ agentId: id,
146
+ path: [id, p],
136
147
  },
137
148
  ],
138
149
  };
139
150
  }
140
- current = agent.parentId;
141
- }
142
- else {
143
- current = null;
151
+ const nested = visit(p);
152
+ if (!nested.ok) {
153
+ visiting.delete(id);
154
+ return nested;
155
+ }
144
156
  }
157
+ visiting.delete(id);
158
+ visited.add(id);
159
+ order.push(id);
160
+ return { ok: true };
145
161
  }
146
- // chainRev is newest-first (agent → … → root); reverse to oldest-parent-first
147
- return { ok: true, chain: chainRev.reverse() };
162
+ const result = visit(agentId);
163
+ if (!result.ok)
164
+ return result;
165
+ return { ok: true, chain: order, directParents };
166
+ }
167
+ /**
168
+ * Resolve parent chain oldest-parent-first (linearization of the parent DAG).
169
+ */
170
+ export function resolveParentChain(agentId, agents) {
171
+ const dag = resolveParentDag(agentId, agents);
172
+ if (!dag.ok)
173
+ return dag;
174
+ return { ok: true, chain: dag.chain };
148
175
  }
149
176
  function definitionsFromPack(pack, agentId) {
150
177
  const out = [];
@@ -195,42 +222,138 @@ function composeChain(chain, selectedAgentId, packsByAgentId) {
195
222
  return { ok: false, issues };
196
223
  }
197
224
  const inheritancePath = chain.slice(0, i + 1);
198
- for (const { kind, definition } of definitionsFromPack(pack, agentId)) {
199
- const id = defId(definition);
200
- const key = `${kind}::${id}`;
201
- const fp = fingerprintDefinition(definition);
202
- const existing = map.get(key);
225
+ applyPackDefinitions(map, pack, agentId, inheritancePath, selectedAgentId);
226
+ }
227
+ return { ok: true, map };
228
+ }
229
+ function applyPackDefinitions(map, pack, agentId, inheritancePath, selectedAgentId) {
230
+ for (const { kind, definition } of definitionsFromPack(pack, agentId)) {
231
+ const id = defId(definition);
232
+ const key = `${kind}::${id}`;
233
+ const fp = fingerprintDefinition(definition);
234
+ const existing = map.get(key);
235
+ if (!existing) {
236
+ map.set(key, {
237
+ kind,
238
+ id,
239
+ definition,
240
+ fingerprint: fp,
241
+ definedByAgentId: agentId,
242
+ inheritancePath,
243
+ selectedAgentId,
244
+ });
245
+ }
246
+ else {
247
+ map.set(key, {
248
+ kind,
249
+ id,
250
+ definition,
251
+ fingerprint: fp,
252
+ definedByAgentId: agentId,
253
+ inheritancePath,
254
+ selectedAgentId,
255
+ overridden: {
256
+ definedByAgentId: existing.definedByAgentId,
257
+ inheritancePath: existing.inheritancePath,
258
+ fingerprint: existing.fingerprint,
259
+ },
260
+ });
261
+ }
262
+ }
263
+ }
264
+ function crossMergeWorkingMaps(maps) {
265
+ const merged = new Map();
266
+ const conflicts = [];
267
+ for (const map of maps) {
268
+ for (const [key, entry] of map) {
269
+ const existing = merged.get(key);
203
270
  if (!existing) {
204
- map.set(key, {
205
- kind,
206
- id,
207
- definition,
208
- fingerprint: fp,
209
- definedByAgentId: agentId,
210
- inheritancePath,
211
- selectedAgentId,
212
- });
271
+ merged.set(key, entry);
272
+ continue;
213
273
  }
214
- else {
215
- // Complete replacement (no deep merge)
216
- map.set(key, {
217
- kind,
218
- id,
219
- definition,
220
- fingerprint: fp,
221
- definedByAgentId: agentId,
222
- inheritancePath,
223
- selectedAgentId,
224
- overridden: {
225
- definedByAgentId: existing.definedByAgentId,
226
- inheritancePath: existing.inheritancePath,
227
- fingerprint: existing.fingerprint,
228
- },
229
- });
274
+ if (existing.fingerprint === entry.fingerprint) {
275
+ if (entry.selectedAgentId < existing.selectedAgentId) {
276
+ merged.set(key, entry);
277
+ }
278
+ continue;
230
279
  }
280
+ conflicts.push({
281
+ kind: entry.kind,
282
+ id: entry.id,
283
+ left: {
284
+ kind: existing.kind,
285
+ id: existing.id,
286
+ definedByAgentId: existing.definedByAgentId,
287
+ inheritancePath: existing.inheritancePath,
288
+ selectedAgentId: existing.selectedAgentId,
289
+ fingerprint: existing.fingerprint,
290
+ overridden: existing.overridden,
291
+ },
292
+ right: {
293
+ kind: entry.kind,
294
+ id: entry.id,
295
+ definedByAgentId: entry.definedByAgentId,
296
+ inheritancePath: entry.inheritancePath,
297
+ selectedAgentId: entry.selectedAgentId,
298
+ fingerprint: entry.fingerprint,
299
+ overridden: entry.overridden,
300
+ },
301
+ reason: "Differing definitions for the same metadata kind + id from unrelated effective branches",
302
+ });
231
303
  }
232
304
  }
233
- return { ok: true, map };
305
+ if (conflicts.length)
306
+ return { ok: false, conflicts };
307
+ return { ok: true, map: merged };
308
+ }
309
+ /**
310
+ * Compose effective defs for an agent: cross-merge direct parents (recursively),
311
+ * then apply this agent's pack as complete-replace. Parent order never confers precedence.
312
+ */
313
+ function composeMultiParent(agentId, selectedAgentId, agents, packsByAgentId, memo) {
314
+ const cached = memo.get(agentId);
315
+ if (cached) {
316
+ // Re-stamp selectedAgentId for the selecting leaf
317
+ const stamped = new Map();
318
+ for (const [k, e] of cached) {
319
+ stamped.set(k, { ...e, selectedAgentId });
320
+ }
321
+ return { ok: true, map: stamped };
322
+ }
323
+ const dag = resolveParentDag(agentId, agents);
324
+ if (!dag.ok)
325
+ return { ok: false, issues: dag.issues };
326
+ const pack = packsByAgentId[agentId];
327
+ if (!pack) {
328
+ return {
329
+ ok: false,
330
+ issues: [
331
+ {
332
+ code: "RESOLVE-MISSING-PACK",
333
+ message: `No metadata pack for agent "${agentId}"`,
334
+ agentId,
335
+ },
336
+ ],
337
+ };
338
+ }
339
+ const parentMaps = [];
340
+ for (const parentId of dag.directParents) {
341
+ const parentResult = composeMultiParent(parentId, selectedAgentId, agents, packsByAgentId, memo);
342
+ if (!parentResult.ok)
343
+ return parentResult;
344
+ parentMaps.push(parentResult.map);
345
+ }
346
+ let base = new Map();
347
+ if (parentMaps.length) {
348
+ const mergedParents = crossMergeWorkingMaps(parentMaps);
349
+ if (!mergedParents.ok) {
350
+ return { ok: false, issues: [], conflicts: mergedParents.conflicts };
351
+ }
352
+ base = mergedParents.map;
353
+ }
354
+ applyPackDefinitions(base, pack, agentId, dag.chain, selectedAgentId);
355
+ memo.set(agentId, base);
356
+ return { ok: true, map: base };
234
357
  }
235
358
  function emptyPack(agentId) {
236
359
  return {
@@ -297,7 +420,17 @@ function entryToEffective(entry) {
297
420
  * Array order never confers precedence; output is deterministic.
298
421
  */
299
422
  export function resolveEffectiveMetadata(input) {
300
- const agents = indexAgents(input.packsByAgentId);
423
+ const packsByAgentId = {};
424
+ for (const [id, pack] of Object.entries(input.packsByAgentId)) {
425
+ const next = {
426
+ ...pack,
427
+ abstractTypes: (pack.abstractTypes ?? []).map((a) => ({ ...a })),
428
+ abstractBindings: [...(pack.abstractBindings ?? [])],
429
+ };
430
+ foldLegacyAbstractBindings(next);
431
+ packsByAgentId[id] = next;
432
+ }
433
+ const agents = indexAgents(packsByAgentId);
301
434
  const selectedUnique = uniquePreserveAll(input.agentIds);
302
435
  const collapsedAgentIds = collapseAncestorSelections(selectedUnique, agents);
303
436
  const issues = [];
@@ -311,7 +444,7 @@ export function resolveEffectiveMetadata(input) {
311
444
  agentId: id,
312
445
  });
313
446
  }
314
- if (!input.packsByAgentId[id]) {
447
+ if (!packsByAgentId[id]) {
315
448
  issues.push({
316
449
  code: "RESOLVE-MISSING-PACK",
317
450
  message: `No metadata pack for selected agent "${id}"`,
@@ -332,22 +465,23 @@ export function resolveEffectiveMetadata(input) {
332
465
  };
333
466
  }
334
467
  const chainMaps = [];
468
+ const memo = new Map();
335
469
  for (const selectedAgentId of collapsedAgentIds) {
336
- const chainResult = resolveParentChain(selectedAgentId, agents);
337
- if (!chainResult.ok) {
338
- return {
339
- ok: false,
340
- selectedAgentIds: selectedUnique,
341
- collapsedAgentIds,
342
- issues: chainResult.issues,
343
- conflicts,
344
- referenceIssues: [],
345
- effective: [],
346
- effectivePack: null,
347
- };
348
- }
349
- const composed = composeChain(chainResult.chain, selectedAgentId, input.packsByAgentId);
470
+ const composed = composeMultiParent(selectedAgentId, selectedAgentId, agents, packsByAgentId, memo);
350
471
  if (!composed.ok) {
472
+ const conflicts = composed.conflicts ?? [];
473
+ if (conflicts.length) {
474
+ conflicts.sort((a, b) => a.kind.localeCompare(b.kind) ||
475
+ a.id.localeCompare(b.id) ||
476
+ a.left.selectedAgentId.localeCompare(b.left.selectedAgentId));
477
+ for (const c of conflicts) {
478
+ if (c.left.selectedAgentId > c.right.selectedAgentId) {
479
+ const tmp = c.left;
480
+ c.left = c.right;
481
+ c.right = tmp;
482
+ }
483
+ }
484
+ }
351
485
  return {
352
486
  ok: false,
353
487
  selectedAgentIds: selectedUnique,
@@ -362,51 +496,12 @@ export function resolveEffectiveMetadata(input) {
362
496
  chainMaps.push({ selectedAgentId, map: composed.map });
363
497
  }
364
498
  // Additive merge across unrelated effective agents
365
- const merged = new Map();
366
- for (const { map } of chainMaps) {
367
- for (const [key, entry] of map) {
368
- const existing = merged.get(key);
369
- if (!existing) {
370
- merged.set(key, entry);
371
- continue;
372
- }
373
- if (existing.fingerprint === entry.fingerprint) {
374
- // Identical — dedupe; keep lexicographically smaller selectedAgentId for stability
375
- if (entry.selectedAgentId < existing.selectedAgentId) {
376
- merged.set(key, entry);
377
- }
378
- continue;
379
- }
380
- conflicts.push({
381
- kind: entry.kind,
382
- id: entry.id,
383
- left: {
384
- kind: existing.kind,
385
- id: existing.id,
386
- definedByAgentId: existing.definedByAgentId,
387
- inheritancePath: existing.inheritancePath,
388
- selectedAgentId: existing.selectedAgentId,
389
- fingerprint: existing.fingerprint,
390
- overridden: existing.overridden,
391
- },
392
- right: {
393
- kind: entry.kind,
394
- id: entry.id,
395
- definedByAgentId: entry.definedByAgentId,
396
- inheritancePath: entry.inheritancePath,
397
- selectedAgentId: entry.selectedAgentId,
398
- fingerprint: entry.fingerprint,
399
- overridden: entry.overridden,
400
- },
401
- reason: "Differing definitions for the same metadata kind + id from unrelated effective branches",
402
- });
403
- }
404
- }
405
- if (conflicts.length) {
499
+ const mergeResult = crossMergeWorkingMaps(chainMaps.map((c) => c.map));
500
+ if (!mergeResult.ok) {
501
+ const conflicts = mergeResult.conflicts;
406
502
  conflicts.sort((a, b) => a.kind.localeCompare(b.kind) ||
407
503
  a.id.localeCompare(b.id) ||
408
504
  a.left.selectedAgentId.localeCompare(b.left.selectedAgentId));
409
- // Normalize left/right by selectedAgentId for deterministic conflict reports
410
505
  for (const c of conflicts) {
411
506
  if (c.left.selectedAgentId > c.right.selectedAgentId) {
412
507
  const tmp = c.left;
@@ -425,6 +520,7 @@ export function resolveEffectiveMetadata(input) {
425
520
  effectivePack: null,
426
521
  };
427
522
  }
523
+ const merged = mergeResult.map;
428
524
  const effective = [...merged.values()]
429
525
  .map(entryToEffective)
430
526
  .sort((a, b) => a.kind.localeCompare(b.kind) || a.id.localeCompare(b.id));
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { SourceDefinition, SourceRouteDefinition, SourceStreamDefinition, SourceWorkflowDefinition } from "./types.js";
2
+ /** Derive a stable-enough stream id from a legacy route (FR-043). */
3
+ export declare function derivedStreamId(route: SourceRouteDefinition): string;
4
+ /**
5
+ * Resolve durable streams for a source.
6
+ * Prefer authored `streams[]`; otherwise adapt each route into one collect stream.
7
+ */
8
+ export declare function resolveSourceStreams(source: SourceDefinition): SourceStreamDefinition[];
9
+ export declare function routeToStream(route: SourceRouteDefinition): SourceStreamDefinition;
10
+ export declare function streamToRoute(stream: SourceStreamDefinition): SourceRouteDefinition;
11
+ /**
12
+ * Compatibility workflow: one independent collect step per stream (FR-043).
13
+ */
14
+ export declare function resolveSourceWorkflow(source: SourceDefinition): SourceWorkflowDefinition;
15
+ /** Find a stream by id after resolving authored or derived streams. */
16
+ export declare function findSourceStream(source: SourceDefinition, streamId: string): SourceStreamDefinition | null;
17
+ //# sourceMappingURL=streams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EAEzB,MAAM,YAAY,CAAC;AAEpB,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAKpE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,sBAAsB,EAAE,CAYvF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAclF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,sBAAsB,GAAG,qBAAqB,CAYnF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,wBAAwB,CAaxF;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,GACf,sBAAsB,GAAG,IAAI,CAG/B"}
@@ -0,0 +1,76 @@
1
+ /** Derive a stable-enough stream id from a legacy route (FR-043). */
2
+ export function derivedStreamId(route) {
3
+ if (route.streamId?.trim())
4
+ return route.streamId.trim();
5
+ const ep = (route.endpoint ?? "").trim().replace(/^\/+/, "").replace(/\/+/g, "_");
6
+ const ot = (route.objectType ?? "").trim();
7
+ return `route:${ep || "unknown"}:${ot || "unknown"}`;
8
+ }
9
+ /**
10
+ * Resolve durable streams for a source.
11
+ * Prefer authored `streams[]`; otherwise adapt each route into one collect stream.
12
+ */
13
+ export function resolveSourceStreams(source) {
14
+ if (Array.isArray(source.streams) && source.streams.length > 0) {
15
+ return source.streams.map((s) => ({
16
+ ...s,
17
+ streamId: s.streamId.trim(),
18
+ endpoint: s.endpoint,
19
+ objectType: s.objectType,
20
+ dataCategory: s.dataCategory,
21
+ derivedFromRoute: s.derivedFromRoute === true,
22
+ }));
23
+ }
24
+ return (source.routes ?? []).map((route) => routeToStream(route));
25
+ }
26
+ export function routeToStream(route) {
27
+ return {
28
+ streamId: derivedStreamId(route),
29
+ name: route.endpoint,
30
+ endpoint: route.endpoint,
31
+ objectType: route.objectType,
32
+ dataCategory: route.dataCategory,
33
+ identityPath: route.identityPath,
34
+ primaryKind: route.primaryKind,
35
+ modes: route.modes,
36
+ pageSize: route.pageSize,
37
+ checkpoint: route.checkpoint,
38
+ derivedFromRoute: !route.streamId?.trim(),
39
+ };
40
+ }
41
+ export function streamToRoute(stream) {
42
+ return {
43
+ endpoint: stream.endpoint,
44
+ objectType: stream.objectType,
45
+ dataCategory: stream.dataCategory,
46
+ identityPath: stream.identityPath,
47
+ primaryKind: stream.primaryKind,
48
+ modes: stream.modes,
49
+ pageSize: stream.pageSize,
50
+ checkpoint: stream.checkpoint,
51
+ streamId: stream.streamId,
52
+ };
53
+ }
54
+ /**
55
+ * Compatibility workflow: one independent collect step per stream (FR-043).
56
+ */
57
+ export function resolveSourceWorkflow(source) {
58
+ if (source.workflow?.steps?.length) {
59
+ return { steps: source.workflow.steps.map((s) => ({ ...s })) };
60
+ }
61
+ const streams = resolveSourceStreams(source);
62
+ const steps = streams.map((stream) => ({
63
+ id: `collect-${stream.streamId}`,
64
+ name: stream.name ?? stream.endpoint,
65
+ kind: "collect",
66
+ streamIds: [stream.streamId],
67
+ providerOperation: stream.endpoint,
68
+ }));
69
+ return { steps };
70
+ }
71
+ /** Find a stream by id after resolving authored or derived streams. */
72
+ export function findSourceStream(source, streamId) {
73
+ const id = streamId.trim();
74
+ return resolveSourceStreams(source).find((s) => s.streamId === id) ?? null;
75
+ }
76
+ //# sourceMappingURL=streams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streams.js","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":"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"}