@specverse/engines 6.2.2 → 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 +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.2",
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",