@specverse/engines 6.2.1 → 6.3.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.
@@ -1,4 +1,19 @@
1
1
  import type { LanguageModelV3 } from '@ai-sdk/provider';
2
+ /**
3
+ * True when an error message indicates a recoverable session-state failure
4
+ * from claude-cli:
5
+ * - "Session ID already in use" — externally-managed sessionId collided
6
+ * with a still-live invocation (concurrent harness runs are the typical
7
+ * trigger).
8
+ * - "Session not found" / similar — `--resume` of a non-existent session,
9
+ * usually when our `initialized` flag is stale (the underlying
10
+ * claude-cli process exited and forgot the session, but the flag still
11
+ * says "resume me").
12
+ *
13
+ * Exported for unit testing and so harness code can apply the same predicate
14
+ * if it wants to wrap calls at a higher level.
15
+ */
16
+ export declare function isSessionError(message: string): boolean;
2
17
  export interface ClaudeCliOptions {
3
18
  /** Explicit path to the claude binary. Auto-detected if omitted. */
4
19
  claudePath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"claude-cli.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/claude-cli.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,eAAe,EAMhB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yGAAyG;IACzG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBjE;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/D;AAmCD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CA8GzE"}
1
+ {"version":3,"file":"claude-cli.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/claude-cli.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,eAAe,EAMhB,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yGAAyG;IACzG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBjE;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/D;AAmCD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CA+HzE"}
@@ -15,6 +15,23 @@ import { spawn, execSync } from 'child_process';
15
15
  import { existsSync } from 'fs';
16
16
  import { randomUUID } from 'crypto';
17
17
  import { join } from 'path';
18
+ /**
19
+ * True when an error message indicates a recoverable session-state failure
20
+ * from claude-cli:
21
+ * - "Session ID already in use" — externally-managed sessionId collided
22
+ * with a still-live invocation (concurrent harness runs are the typical
23
+ * trigger).
24
+ * - "Session not found" / similar — `--resume` of a non-existent session,
25
+ * usually when our `initialized` flag is stale (the underlying
26
+ * claude-cli process exited and forgot the session, but the flag still
27
+ * says "resume me").
28
+ *
29
+ * Exported for unit testing and so harness code can apply the same predicate
30
+ * if it wants to wrap calls at a higher level.
31
+ */
32
+ export function isSessionError(message) {
33
+ return /already in use|session.+not found|no.+session/i.test(message);
34
+ }
18
35
  /**
19
36
  * Find the first working `claude` binary. Tries:
20
37
  * 1. Explicit path override if given
@@ -93,7 +110,7 @@ export function claudeCli(options = {}) {
93
110
  const modelId = options.model ?? 'default';
94
111
  // Use externally-managed sessionId when provided so multiple processes
95
112
  // can share claude-cli's session state (Phase 5 of TODO #21).
96
- const sessionId = options.sessionId || randomUUID();
113
+ let sessionId = options.sessionId || randomUUID();
97
114
  let initialized = false;
98
115
  async function spawnClaude(args, stdinPrompt) {
99
116
  return new Promise((resolve, reject) => {
@@ -134,19 +151,38 @@ export function claudeCli(options = {}) {
134
151
  supportedUrls: {},
135
152
  async doGenerate(opts) {
136
153
  const { system, user } = flattenPrompt(opts.prompt);
137
- const args = ['--print'];
138
- if (!initialized) {
139
- args.push('--session-id', sessionId);
140
- if (system)
141
- args.push('--system-prompt', system);
154
+ // Build args for either a fresh session or a resume of an existing one.
155
+ const buildArgs = (sid, asResume) => {
156
+ const a = ['--print'];
157
+ if (asResume) {
158
+ a.push('--resume', sid);
159
+ }
160
+ else {
161
+ a.push('--session-id', sid);
162
+ if (system)
163
+ a.push('--system-prompt', system);
164
+ }
165
+ if (modelId !== 'default')
166
+ a.push('--model', modelId);
167
+ a.push('-p', user);
168
+ return a;
169
+ };
170
+ // claude-cli rejects two related session-failure modes that we'd rather
171
+ // recover from than propagate as opaque errors. See `isSessionError`
172
+ // below for the patterns we recognise. Either way we recover by minting
173
+ // a fresh UUID and treating the next call as a first call. We retry
174
+ // ONCE; subsequent failures propagate.
175
+ let out;
176
+ try {
177
+ out = await spawnClaude(buildArgs(sessionId, initialized), user);
142
178
  }
143
- else {
144
- args.push('--resume', sessionId);
179
+ catch (e) {
180
+ if (!isSessionError(e?.message ?? ''))
181
+ throw e;
182
+ sessionId = randomUUID();
183
+ initialized = false;
184
+ out = await spawnClaude(buildArgs(sessionId, false), user);
145
185
  }
146
- if (modelId !== 'default')
147
- args.push('--model', modelId);
148
- args.push('-p', user);
149
- const out = await spawnClaude(args, user);
150
186
  initialized = true;
151
187
  return {
152
188
  content: [{ type: 'text', text: out.trim() }],
@@ -1 +1 @@
1
- {"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../../src/ai/providers/claude-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../../src/ai/providers/claude-cli.ts"],"names":[],"mappings":"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"}
@@ -62,6 +62,15 @@ export interface PrismaFacts {
62
62
  * directly — it doesn't need any of the backend's call-graph or symbol
63
63
  * indexing for Prisma extraction. Prisma's schema syntax is small enough
64
64
  * that regex over the raw text is the right tool.
65
+ *
66
+ * Discovers Prisma sources via `**\/*.prisma` to cover both layouts:
67
+ * - Single-file: `schema.prisma` (the legacy default).
68
+ * - Multi-file: Prisma 5.18+ `prismaSchemaFolder` previewFeature, where
69
+ * models split across `prisma/schema/*.prisma`.
70
+ * Files lacking model/enum declarations (e.g. files containing only
71
+ * `generator` + `datasource` blocks) contribute nothing and are harmless.
72
+ * Duplicate model names across files emit a warning and the FIRST
73
+ * declaration wins (Prisma itself rejects duplicates at validate-time).
65
74
  */
66
75
  export declare function extractTypeScriptPrisma(prepass: StructuralPrepass): Promise<PrismaFacts>;
67
76
  //# sourceMappingURL=typescript-prisma.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-prisma.d.ts","sourceRoot":"","sources":["../../../src/analyse-prepass/adapters/typescript-prisma.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChC,0BAA0B;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyG9F"}
1
+ {"version":3,"file":"typescript-prisma.d.ts","sourceRoot":"","sources":["../../../src/analyse-prepass/adapters/typescript-prisma.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChC,0BAA0B;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAkH9F"}
@@ -5,14 +5,24 @@
5
5
  * directly — it doesn't need any of the backend's call-graph or symbol
6
6
  * indexing for Prisma extraction. Prisma's schema syntax is small enough
7
7
  * that regex over the raw text is the right tool.
8
+ *
9
+ * Discovers Prisma sources via `**\/*.prisma` to cover both layouts:
10
+ * - Single-file: `schema.prisma` (the legacy default).
11
+ * - Multi-file: Prisma 5.18+ `prismaSchemaFolder` previewFeature, where
12
+ * models split across `prisma/schema/*.prisma`.
13
+ * Files lacking model/enum declarations (e.g. files containing only
14
+ * `generator` + `datasource` blocks) contribute nothing and are harmless.
15
+ * Duplicate model names across files emit a warning and the FIRST
16
+ * declaration wins (Prisma itself rejects duplicates at validate-time).
8
17
  */
9
18
  export async function extractTypeScriptPrisma(prepass) {
10
- const schemaFiles = await prepass.listFiles({ glob: '**/schema.prisma' });
19
+ const schemaFiles = await prepass.listFiles({ glob: '**/*.prisma' });
11
20
  if (schemaFiles.length === 0) {
12
21
  return { entities: [], relationships: [], enums: {}, schemaFiles: [] };
13
22
  }
14
23
  const enums = {};
15
24
  const entities = [];
25
+ const seenModels = new Set();
16
26
  const relationships = [];
17
27
  for (const file of schemaFiles) {
18
28
  const text = await prepass.fileSourceText(file);
@@ -31,6 +41,14 @@ export async function extractTypeScriptPrisma(prepass) {
31
41
  // Extract model declarations
32
42
  for (const match of text.matchAll(/model\s+(\w+)\s*\{([^}]+)\}/g)) {
33
43
  const modelName = match[1];
44
+ if (seenModels.has(modelName)) {
45
+ // Prisma rejects duplicates at validate-time; we mirror that by
46
+ // taking the first declaration we encountered. Worth surfacing as
47
+ // a console warning so a misconfigured schema doesn't fail silently.
48
+ console.warn(`[prisma-adapter] duplicate model "${modelName}" in ${file} — first declaration wins`);
49
+ continue;
50
+ }
51
+ seenModels.add(modelName);
34
52
  const body = match[2];
35
53
  const fields = parseFields(body);
36
54
  // Detect lifecycle: a field of an enum type — the enum's values are
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-prisma.js","sourceRoot":"","sources":["../../../src/analyse-prepass/adapters/typescript-prisma.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript-prisma.js","sourceRoot":"","sources":["../../../src/analyse-prepass/adapters/typescript-prisma.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"specly-converter.d.ts","sourceRoot":"","sources":["../../../src/inference/core/specly-converter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAiClD,qBAAa,eAAe;IAE1B;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM;IA2G3E;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAkB7B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAuBjC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAuBpC,OAAO,CAAC,MAAM,CAAC,YAAY;IA0J3B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAgChC,OAAO,CAAC,MAAM,CAAC,aAAa;IA+D5B,OAAO,CAAC,MAAM,CAAC,cAAc;IA4B7B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAwC/B,OAAO,CAAC,MAAM,CAAC,YAAY;IAoB3B,OAAO,CAAC,MAAM,CAAC,WAAW;IAmL1B,OAAO,CAAC,MAAM,CAAC,WAAW;IAyB1B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAkBjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAgB9B,OAAO,CAAC,MAAM,CAAC,cAAc;IAgD7B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAkBlC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAyCpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;CAiC/B"}
1
+ {"version":3,"file":"specly-converter.d.ts","sourceRoot":"","sources":["../../../src/inference/core/specly-converter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAiClD,qBAAa,eAAe;IAE1B;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM;IA2G3E;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAkB7B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAuBjC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAuBpC,OAAO,CAAC,MAAM,CAAC,YAAY;IA0J3B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAgChC,OAAO,CAAC,MAAM,CAAC,aAAa;IA4E5B,OAAO,CAAC,MAAM,CAAC,cAAc;IA4B7B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAwC/B,OAAO,CAAC,MAAM,CAAC,YAAY;IAoB3B,OAAO,CAAC,MAAM,CAAC,WAAW;IAmL1B,OAAO,CAAC,MAAM,CAAC,WAAW;IAyB1B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAkBjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAgB9B,OAAO,CAAC,MAAM,CAAC,cAAc;IAgD7B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAkBlC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAyCpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;CAiC/B"}
@@ -449,6 +449,18 @@ export class SpeclyConverter {
449
449
  });
450
450
  }
451
451
  }
452
+ // Steps — the procedural decomposition the realize "AI from steps" layer
453
+ // (engines/libs/instance-factories/services/templates/prisma/ai-behaviors-generator.ts)
454
+ // reads to emit *.ai.ts files. controller-generator.ts promotes
455
+ // `model.behaviors[].steps` into `customActions[].steps`; without
456
+ // serialising them here they were silently dropped on the wire
457
+ // (TODO #48). Symmetric to the model-behavior emitter at convertBehavior.
458
+ if (action.steps && Array.isArray(action.steps) && action.steps.length > 0) {
459
+ output += `${indent} steps:\n`;
460
+ action.steps.forEach((step) => {
461
+ output += `${indent} - "${step}"\n`;
462
+ });
463
+ }
452
464
  return output;
453
465
  }
454
466
  static convertService(name, service, indentLevel) {
@@ -1 +1 @@
1
- {"version":3,"file":"specly-converter.js","sourceRoot":"","sources":["../../../src/inference/core/specly-converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specly-converter.js","sourceRoot":"","sources":["../../../src/inference/core/specly-converter.ts"],"names":[],"mappings":"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"}
@@ -275,62 +275,123 @@ import type { ParserEngine, InferenceEngine, RealizeEngine } from '@specverse/ty
275
275
  const yaml = await import('js-yaml');
276
276
  const inferredYaml = yaml.load(inferResult.yaml) as any;
277
277
  // Inference output: { components: { Name: { models, controllers, ... } } }
278
- // realizeAll expects: { models: {...}, controllers: {...}, ... } (flat component data)
279
- const componentName = Object.keys(inferredYaml?.components || {})[0];
280
- const componentData = componentName ? inferredYaml.components[componentName] : {};
278
+ // realizeAll expects: { models: {...}, controllers: {...}, ... } (flat).
279
+ //
280
+ // Multi-component fan-out (TODO #49): for specs with multiple components
281
+ // (e.g. idle-meta with 8 domain components, cal-com with O(10)), MERGE all
282
+ // components into a single flat componentData rather than picking only the
283
+ // first. Map sections (models/controllers/services/events/views/primitives/
284
+ // enums) merge by entity name \u2014 name collisions across components log a
285
+ // warning and the LAST occurrence wins (matches Object.assign / spread
286
+ // semantics; expected to be rare since the analyse prompt encourages
287
+ // distinct names per component).
288
+ const allComponents = inferredYaml?.components || {};
289
+ const componentNames = Object.keys(allComponents);
290
+ const MAP_SECTIONS = ['models', 'controllers', 'services', 'events', 'views', 'primitives', 'enums', 'lifecycles'];
291
+ const componentData: Record<string, any> = {};
292
+ // Carry forward non-map metadata (version / description / name / componentName)
293
+ // from the first component \u2014 realize uses these to label the generated bundle.
294
+ if (componentNames.length > 0) {
295
+ const first = allComponents[componentNames[0]];
296
+ for (const k of ['version', 'description', 'name', 'componentName', 'commonDefinitions']) {
297
+ if (first[k] != null) componentData[k] = first[k];
298
+ }
299
+ }
300
+ for (const compName of componentNames) {
301
+ const comp = allComponents[compName];
302
+ for (const section of MAP_SECTIONS) {
303
+ const sectionData = comp[section];
304
+ if (!sectionData || typeof sectionData !== 'object') continue;
305
+ componentData[section] = componentData[section] || {};
306
+ for (const [entryKey, entryVal] of Object.entries(sectionData)) {
307
+ if (componentData[section][entryKey] != null) {
308
+ console.warn('[realize] name collision: ' + section + '.' + entryKey + ' declared in multiple components; last occurrence (' + compName + ') wins');
309
+ }
310
+ componentData[section][entryKey] = entryVal;
311
+ }
312
+ }
313
+ }
281
314
 
282
315
  // Merge original spec's services/events/views that inference didn't generate
283
- // (inference generates from models; explicit services in the spec are preserved here)
284
- const origComponent = parseResult.ast!.components?.[0] || {};
285
- for (const section of ['services', 'events', 'views']) {
286
- const origData = (origComponent as any)[section];
287
- if (origData && (!componentData[section] || JSON.stringify(componentData[section]) === '{}')) {
288
- // Convert array form (from parser) to object form (for realize)
316
+ // (inference generates from models; explicit services in the spec are preserved here).
317
+ // Iterate ALL original components, not just the first, to mirror the
318
+ // multi-component fan-out above.
319
+ const origComponentsRaw = parseResult.ast!.components || [];
320
+ const origComponents = Array.isArray(origComponentsRaw)
321
+ ? origComponentsRaw
322
+ : Object.values(origComponentsRaw);
323
+ // Iterate ALL original components (TODO #49 \u2014 multi-component fan-out).
324
+ // For each, merge any user-declared services/events/views that inference
325
+ // didn't generate, plus per-entry-merge user-declared controller actions
326
+ // into the inferred ones (TODO #48 \u2014 preserve inferred steps that orig
327
+ // didn't override). Earlier behaviour processed only the first component;
328
+ // for multi-component specs (idle-meta, cal-com) the rest were dropped.
329
+ const inferredControllers = componentData.controllers || {};
330
+ for (const origComp of origComponents) {
331
+ for (const section of ['services', 'events', 'views']) {
332
+ const origData = (origComp as any)[section];
333
+ if (!origData) continue;
334
+ // Only merge if the section is empty in componentData \u2014 preserves the
335
+ // original "inference-generated wins on collision" semantic for the
336
+ // sections inference produces (events/views).
337
+ const existing = componentData[section];
338
+ const isEmpty = !existing || (typeof existing === 'object' && Object.keys(existing).length === 0);
339
+ if (!isEmpty) continue;
289
340
  if (Array.isArray(origData)) {
290
341
  componentData[section] = {};
291
- for (const item of origData) {
292
- componentData[section][item.name] = item;
293
- }
342
+ for (const item of origData) componentData[section][item.name] = item;
294
343
  } else {
295
344
  componentData[section] = origData;
296
345
  }
297
346
  }
298
- }
299
347
 
300
- // Merge custom actions from original spec controllers into inferred controllers
301
- // Inference generates standard CURED; custom actions (openPoll, castVote) come from the spec
302
- const origControllers = Array.isArray((origComponent as any).controllers)
303
- ? (origComponent as any).controllers
304
- : Object.values((origComponent as any).controllers || {});
305
- const inferredControllers = componentData.controllers || {};
306
- for (const origCtrl of origControllers) {
307
- const ctrlName = (origCtrl as any).name;
308
- if (ctrlName && (origCtrl as any).actions) {
348
+ const origControllers = Array.isArray((origComp as any).controllers)
349
+ ? (origComp as any).controllers
350
+ : Object.values((origComp as any).controllers || {});
351
+ for (const origCtrl of origControllers) {
352
+ const ctrlName = (origCtrl as any).name;
353
+ if (!ctrlName || !(origCtrl as any).actions) continue;
309
354
  const inferredCtrl = inferredControllers[ctrlName];
310
- if (inferredCtrl) {
311
- inferredCtrl.actions = { ...(inferredCtrl.actions || {}), ...(origCtrl as any).actions };
355
+ if (!inferredCtrl) continue;
356
+ const merged: Record<string, any> = { ...(inferredCtrl.actions || {}) };
357
+ for (const [actName, origAct] of Object.entries((origCtrl as any).actions) as [string, any][]) {
358
+ const inferredAct = merged[actName] || {};
359
+ const finalAct: Record<string, any> = { ...inferredAct };
360
+ for (const [fieldKey, fieldVal] of Object.entries(origAct)) {
361
+ const isEmptyArr = Array.isArray(fieldVal) && fieldVal.length === 0;
362
+ const isEmptyObj = fieldVal && typeof fieldVal === 'object'
363
+ && !Array.isArray(fieldVal) && Object.keys(fieldVal).length === 0;
364
+ if (fieldVal == null || isEmptyArr || isEmptyObj) continue;
365
+ finalAct[fieldKey] = fieldVal;
366
+ }
367
+ merged[actName] = finalAct;
312
368
  }
369
+ inferredCtrl.actions = merged;
313
370
  }
314
371
  }
315
372
 
316
- // Merge service operation steps from original spec into inferred services
373
+ // Merge service operation steps from original spec into inferred services.
317
374
  // Inference generates service shells with preconditions/returns but drops
318
375
  // the declarative steps arrays \u2014 we restore them from the parsed AST.
319
- const origServices = Array.isArray((origComponent as any).services)
320
- ? (origComponent as any).services
321
- : Object.values((origComponent as any).services || {});
376
+ // Iterates ALL original components (TODO #49) so multi-component specs
377
+ // don't lose service.operations.steps from the non-first components.
322
378
  const inferredServices = componentData.services || {};
323
- for (const origSvc of origServices) {
324
- const svcName = (origSvc as any).name;
325
- if (!svcName) continue;
326
- const inferredSvc = inferredServices[svcName];
327
- if (!inferredSvc) continue;
328
-
329
- const origOps = (origSvc as any).operations || {};
330
- const inferredOps = inferredSvc.operations || {};
331
- for (const [opName, origOp] of Object.entries(origOps) as [string, any][]) {
332
- if (inferredOps[opName] && origOp.steps) {
333
- inferredOps[opName].steps = origOp.steps;
379
+ for (const origComp of origComponents) {
380
+ const origServices = Array.isArray((origComp as any).services)
381
+ ? (origComp as any).services
382
+ : Object.values((origComp as any).services || {});
383
+ for (const origSvc of origServices) {
384
+ const svcName = (origSvc as any).name;
385
+ if (!svcName) continue;
386
+ const inferredSvc = inferredServices[svcName];
387
+ if (!inferredSvc) continue;
388
+
389
+ const origOps = (origSvc as any).operations || {};
390
+ const inferredOps = inferredSvc.operations || {};
391
+ for (const [opName, origOp] of Object.entries(origOps) as [string, any][]) {
392
+ if (inferredOps[opName] && origOp.steps) {
393
+ inferredOps[opName].steps = origOp.steps;
394
+ }
334
395
  }
335
396
  }
336
397
  }
@@ -375,6 +436,10 @@ import type { ParserEngine, InferenceEngine, RealizeEngine } from '@specverse/ty
375
436
  }
376
437
  }
377
438
  }
439
+ // First component's name is used to label the realized bundle (matches
440
+ // the prior single-component behaviour). For multi-component specs the
441
+ // remaining components are still merged into componentData (TODO #49).
442
+ const componentName = componentNames[0];
378
443
  const inferredSpec = { ...componentData, componentName, components: inferredYaml?.components || {} };
379
444
 
380
445
  // --estimate: report what realize WOULD do, broken down by layer.
@@ -330,62 +330,123 @@ import type { ParserEngine, InferenceEngine, RealizeEngine } from '@specverse/ty
330
330
  const yaml = await import('js-yaml');
331
331
  const inferredYaml = yaml.load(inferResult.yaml) as any;
332
332
  // Inference output: { components: { Name: { models, controllers, ... } } }
333
- // realizeAll expects: { models: {...}, controllers: {...}, ... } (flat component data)
334
- const componentName = Object.keys(inferredYaml?.components || {})[0];
335
- const componentData = componentName ? inferredYaml.components[componentName] : {};
333
+ // realizeAll expects: { models: {...}, controllers: {...}, ... } (flat).
334
+ //
335
+ // Multi-component fan-out (TODO #49): for specs with multiple components
336
+ // (e.g. idle-meta with 8 domain components, cal-com with O(10)), MERGE all
337
+ // components into a single flat componentData rather than picking only the
338
+ // first. Map sections (models/controllers/services/events/views/primitives/
339
+ // enums) merge by entity name — name collisions across components log a
340
+ // warning and the LAST occurrence wins (matches Object.assign / spread
341
+ // semantics; expected to be rare since the analyse prompt encourages
342
+ // distinct names per component).
343
+ const allComponents = inferredYaml?.components || {};
344
+ const componentNames = Object.keys(allComponents);
345
+ const MAP_SECTIONS = ['models', 'controllers', 'services', 'events', 'views', 'primitives', 'enums', 'lifecycles'];
346
+ const componentData: Record<string, any> = {};
347
+ // Carry forward non-map metadata (version / description / name / componentName)
348
+ // from the first component — realize uses these to label the generated bundle.
349
+ if (componentNames.length > 0) {
350
+ const first = allComponents[componentNames[0]];
351
+ for (const k of ['version', 'description', 'name', 'componentName', 'commonDefinitions']) {
352
+ if (first[k] != null) componentData[k] = first[k];
353
+ }
354
+ }
355
+ for (const compName of componentNames) {
356
+ const comp = allComponents[compName];
357
+ for (const section of MAP_SECTIONS) {
358
+ const sectionData = comp[section];
359
+ if (!sectionData || typeof sectionData !== 'object') continue;
360
+ componentData[section] = componentData[section] || {};
361
+ for (const [entryKey, entryVal] of Object.entries(sectionData)) {
362
+ if (componentData[section][entryKey] != null) {
363
+ console.warn('[realize] name collision: ' + section + '.' + entryKey + ' declared in multiple components; last occurrence (' + compName + ') wins');
364
+ }
365
+ componentData[section][entryKey] = entryVal;
366
+ }
367
+ }
368
+ }
336
369
 
337
370
  // Merge original spec's services/events/views that inference didn't generate
338
- // (inference generates from models; explicit services in the spec are preserved here)
339
- const origComponent = parseResult.ast!.components?.[0] || {};
340
- for (const section of ['services', 'events', 'views']) {
341
- const origData = (origComponent as any)[section];
342
- if (origData && (!componentData[section] || JSON.stringify(componentData[section]) === '{}')) {
343
- // Convert array form (from parser) to object form (for realize)
371
+ // (inference generates from models; explicit services in the spec are preserved here).
372
+ // Iterate ALL original components, not just the first, to mirror the
373
+ // multi-component fan-out above.
374
+ const origComponentsRaw = parseResult.ast!.components || [];
375
+ const origComponents = Array.isArray(origComponentsRaw)
376
+ ? origComponentsRaw
377
+ : Object.values(origComponentsRaw);
378
+ // Iterate ALL original components (TODO #49 — multi-component fan-out).
379
+ // For each, merge any user-declared services/events/views that inference
380
+ // didn't generate, plus per-entry-merge user-declared controller actions
381
+ // into the inferred ones (TODO #48 — preserve inferred steps that orig
382
+ // didn't override). Earlier behaviour processed only the first component;
383
+ // for multi-component specs (idle-meta, cal-com) the rest were dropped.
384
+ const inferredControllers = componentData.controllers || {};
385
+ for (const origComp of origComponents) {
386
+ for (const section of ['services', 'events', 'views']) {
387
+ const origData = (origComp as any)[section];
388
+ if (!origData) continue;
389
+ // Only merge if the section is empty in componentData — preserves the
390
+ // original "inference-generated wins on collision" semantic for the
391
+ // sections inference produces (events/views).
392
+ const existing = componentData[section];
393
+ const isEmpty = !existing || (typeof existing === 'object' && Object.keys(existing).length === 0);
394
+ if (!isEmpty) continue;
344
395
  if (Array.isArray(origData)) {
345
396
  componentData[section] = {};
346
- for (const item of origData) {
347
- componentData[section][item.name] = item;
348
- }
397
+ for (const item of origData) componentData[section][item.name] = item;
349
398
  } else {
350
399
  componentData[section] = origData;
351
400
  }
352
401
  }
353
- }
354
402
 
355
- // Merge custom actions from original spec controllers into inferred controllers
356
- // Inference generates standard CURED; custom actions (openPoll, castVote) come from the spec
357
- const origControllers = Array.isArray((origComponent as any).controllers)
358
- ? (origComponent as any).controllers
359
- : Object.values((origComponent as any).controllers || {});
360
- const inferredControllers = componentData.controllers || {};
361
- for (const origCtrl of origControllers) {
362
- const ctrlName = (origCtrl as any).name;
363
- if (ctrlName && (origCtrl as any).actions) {
403
+ const origControllers = Array.isArray((origComp as any).controllers)
404
+ ? (origComp as any).controllers
405
+ : Object.values((origComp as any).controllers || {});
406
+ for (const origCtrl of origControllers) {
407
+ const ctrlName = (origCtrl as any).name;
408
+ if (!ctrlName || !(origCtrl as any).actions) continue;
364
409
  const inferredCtrl = inferredControllers[ctrlName];
365
- if (inferredCtrl) {
366
- inferredCtrl.actions = { ...(inferredCtrl.actions || {}), ...(origCtrl as any).actions };
410
+ if (!inferredCtrl) continue;
411
+ const merged: Record<string, any> = { ...(inferredCtrl.actions || {}) };
412
+ for (const [actName, origAct] of Object.entries((origCtrl as any).actions) as [string, any][]) {
413
+ const inferredAct = merged[actName] || {};
414
+ const finalAct: Record<string, any> = { ...inferredAct };
415
+ for (const [fieldKey, fieldVal] of Object.entries(origAct)) {
416
+ const isEmptyArr = Array.isArray(fieldVal) && fieldVal.length === 0;
417
+ const isEmptyObj = fieldVal && typeof fieldVal === 'object'
418
+ && !Array.isArray(fieldVal) && Object.keys(fieldVal).length === 0;
419
+ if (fieldVal == null || isEmptyArr || isEmptyObj) continue;
420
+ finalAct[fieldKey] = fieldVal;
421
+ }
422
+ merged[actName] = finalAct;
367
423
  }
424
+ inferredCtrl.actions = merged;
368
425
  }
369
426
  }
370
427
 
371
- // Merge service operation steps from original spec into inferred services
428
+ // Merge service operation steps from original spec into inferred services.
372
429
  // Inference generates service shells with preconditions/returns but drops
373
430
  // the declarative steps arrays — we restore them from the parsed AST.
374
- const origServices = Array.isArray((origComponent as any).services)
375
- ? (origComponent as any).services
376
- : Object.values((origComponent as any).services || {});
431
+ // Iterates ALL original components (TODO #49) so multi-component specs
432
+ // don't lose service.operations.steps from the non-first components.
377
433
  const inferredServices = componentData.services || {};
378
- for (const origSvc of origServices) {
379
- const svcName = (origSvc as any).name;
380
- if (!svcName) continue;
381
- const inferredSvc = inferredServices[svcName];
382
- if (!inferredSvc) continue;
383
-
384
- const origOps = (origSvc as any).operations || {};
385
- const inferredOps = inferredSvc.operations || {};
386
- for (const [opName, origOp] of Object.entries(origOps) as [string, any][]) {
387
- if (inferredOps[opName] && origOp.steps) {
388
- inferredOps[opName].steps = origOp.steps;
434
+ for (const origComp of origComponents) {
435
+ const origServices = Array.isArray((origComp as any).services)
436
+ ? (origComp as any).services
437
+ : Object.values((origComp as any).services || {});
438
+ for (const origSvc of origServices) {
439
+ const svcName = (origSvc as any).name;
440
+ if (!svcName) continue;
441
+ const inferredSvc = inferredServices[svcName];
442
+ if (!inferredSvc) continue;
443
+
444
+ const origOps = (origSvc as any).operations || {};
445
+ const inferredOps = inferredSvc.operations || {};
446
+ for (const [opName, origOp] of Object.entries(origOps) as [string, any][]) {
447
+ if (inferredOps[opName] && origOp.steps) {
448
+ inferredOps[opName].steps = origOp.steps;
449
+ }
389
450
  }
390
451
  }
391
452
  }
@@ -430,6 +491,10 @@ import type { ParserEngine, InferenceEngine, RealizeEngine } from '@specverse/ty
430
491
  }
431
492
  }
432
493
  }
494
+ // First component's name is used to label the realized bundle (matches
495
+ // the prior single-component behaviour). For multi-component specs the
496
+ // remaining components are still merged into componentData (TODO #49).
497
+ const componentName = componentNames[0];
433
498
  const inferredSpec = { ...componentData, componentName, components: inferredYaml?.components || {} };
434
499
 
435
500
  // --estimate: report what realize WOULD do, broken down by layer.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specverse/engines",
3
- "version": "6.2.1",
3
+ "version": "6.3.0",
4
4
  "description": "SpecVerse toolchain — parser, inference, realize, generators, AI, registry, bundles",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",