@specverse/engines 4.1.13 → 4.1.15

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 (68) hide show
  1. package/assets/prompts/core/standard/v9/behavior.prompt.yaml +126 -0
  2. package/dist/ai/behavior-ai-service.d.ts +65 -0
  3. package/dist/ai/behavior-ai-service.d.ts.map +1 -0
  4. package/dist/ai/behavior-ai-service.js +205 -0
  5. package/dist/ai/behavior-ai-service.js.map +1 -0
  6. package/dist/ai/index.d.ts +27 -0
  7. package/dist/ai/index.d.ts.map +1 -1
  8. package/dist/ai/index.js +30 -0
  9. package/dist/ai/index.js.map +1 -1
  10. package/dist/ai/prompt-loader.js +2 -2
  11. package/dist/inference/quint-transpiler.d.ts.map +1 -1
  12. package/dist/inference/quint-transpiler.js +204 -4
  13. package/dist/inference/quint-transpiler.js.map +1 -1
  14. package/dist/libs/instance-factories/applications/templates/generic/backend-package-json-generator.js +4 -1
  15. package/dist/libs/instance-factories/applications/templates/generic/backend-tsconfig-generator.js +2 -2
  16. package/dist/libs/instance-factories/applications/templates/react/runtime-package-json-generator.js +1 -0
  17. package/dist/libs/instance-factories/cli/templates/commander/command-generator.js +97 -22
  18. package/dist/libs/instance-factories/communication/templates/eventemitter/bus-generator.js +31 -31
  19. package/dist/libs/instance-factories/communication/templates/eventemitter/types-generator.js +79 -0
  20. package/dist/libs/instance-factories/communication/templates/eventemitter/websocket-bridge-generator.js +96 -0
  21. package/dist/libs/instance-factories/controllers/templates/fastify/routes-generator.js +45 -9
  22. package/dist/libs/instance-factories/controllers/templates/fastify/server-generator.js +20 -2
  23. package/dist/libs/instance-factories/scaffolding/templates/generic/tsconfig-generator.js +10 -2
  24. package/dist/libs/instance-factories/services/templates/prisma/ai-behaviors-generator.js +249 -0
  25. package/dist/libs/instance-factories/services/templates/prisma/behavior-generator.js +72 -45
  26. package/dist/libs/instance-factories/services/templates/prisma/controller-generator.js +61 -54
  27. package/dist/libs/instance-factories/services/templates/prisma/service-generator.js +31 -10
  28. package/dist/libs/instance-factories/services/templates/prisma/step-conventions.js +101 -84
  29. package/dist/libs/instance-factories/views/templates/react/components-generator.js +40 -10
  30. package/dist/realize/index.d.ts.map +1 -1
  31. package/dist/realize/index.js +192 -23
  32. package/dist/realize/index.js.map +1 -1
  33. package/libs/instance-factories/applications/templates/generic/backend-package-json-generator.ts +4 -1
  34. package/libs/instance-factories/applications/templates/generic/backend-tsconfig-generator.ts +2 -2
  35. package/libs/instance-factories/applications/templates/react/runtime-package-json-generator.ts +6 -1
  36. package/libs/instance-factories/cli/templates/commander/command-generator.ts +115 -22
  37. package/libs/instance-factories/communication/event-emitter.yaml +16 -12
  38. package/libs/instance-factories/communication/templates/eventemitter/bus-generator.ts +33 -36
  39. package/libs/instance-factories/communication/templates/eventemitter/types-generator.ts +95 -0
  40. package/libs/instance-factories/communication/templates/eventemitter/websocket-bridge-generator.ts +105 -0
  41. package/libs/instance-factories/controllers/templates/fastify/routes-generator.ts +57 -11
  42. package/libs/instance-factories/controllers/templates/fastify/server-generator.ts +23 -2
  43. package/libs/instance-factories/scaffolding/templates/generic/tsconfig-generator.ts +23 -2
  44. package/libs/instance-factories/services/templates/prisma/ai-behaviors-generator.ts +376 -0
  45. package/libs/instance-factories/services/templates/prisma/behavior-generator.ts +116 -45
  46. package/libs/instance-factories/services/templates/prisma/controller-generator.ts +83 -59
  47. package/libs/instance-factories/services/templates/prisma/service-generator.ts +40 -10
  48. package/libs/instance-factories/services/templates/prisma/step-conventions.ts +169 -85
  49. package/libs/instance-factories/views/templates/react/components-generator.ts +50 -10
  50. package/package.json +1 -1
  51. package/dist/libs/instance-factories/tools/templates/mcp/static/src/controllers/MCPServerController.js +0 -232
  52. package/dist/libs/instance-factories/tools/templates/mcp/static/src/events/EventEmitter.js +0 -49
  53. package/dist/libs/instance-factories/tools/templates/mcp/static/src/index.js +0 -18
  54. package/dist/libs/instance-factories/tools/templates/mcp/static/src/interfaces/ResourceProvider.js +0 -0
  55. package/dist/libs/instance-factories/tools/templates/mcp/static/src/models/LibrarySuggestion.js +0 -97
  56. package/dist/libs/instance-factories/tools/templates/mcp/static/src/models/SpecVerseResource.js +0 -64
  57. package/dist/libs/instance-factories/tools/templates/mcp/static/src/server/mcp-server.js +0 -182
  58. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/CLIProxyService.js +0 -1210
  59. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/EmbeddedResourcesAdapter.js +0 -172
  60. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/EntityModuleService.js +0 -240
  61. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/HybridResourcesProvider.js +0 -147
  62. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/LibraryToolsService.js +0 -281
  63. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorBridge.js +0 -409
  64. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorToolsService.js +0 -414
  65. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/PromptToolsService.js +0 -467
  66. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/ResourcesProviderService.js +0 -135
  67. package/dist/libs/instance-factories/tools/templates/mcp/static/src/types/index.js +0 -0
  68. package/dist/libs/instance-factories/tools/templates/vscode/static/extension.js +0 -965
@@ -84,7 +84,7 @@ export function transpileQuintFile(content, entity, filename) {
84
84
  name,
85
85
  kind: 'invariant',
86
86
  quint: `val ${name}: bool = ${body.trim()}`,
87
- typescript: `export function check_${name}(data: any): boolean {\n return ${tsBody};\n}`,
87
+ typescript: `export function check_${name}(_data?: any): boolean {\n return ${tsBody};\n}`,
88
88
  module: moduleName,
89
89
  entity,
90
90
  });
@@ -114,9 +114,21 @@ export function transpileQuintFile(content, entity, filename) {
114
114
  export function generateGuardsModule(guards) {
115
115
  if (guards.length === 0)
116
116
  return '// No guards generated\nexport {};\n';
117
+ // Deduplicate by name — multiple modules may define the same invariant
118
+ // (e.g. invariants.qnt and rules.qnt). First occurrence wins.
119
+ const seen = new Set();
120
+ guards = guards.filter(g => {
121
+ const key = `${g.kind}:${g.name}`;
122
+ if (seen.has(key))
123
+ return false;
124
+ seen.add(key);
125
+ return true;
126
+ });
117
127
  const functions = guards.filter(g => g.kind === 'function');
118
128
  const invariants = guards.filter(g => g.kind === 'invariant');
119
129
  const lines = [
130
+ '// @ts-nocheck',
131
+ '/* eslint-disable */',
120
132
  '/**',
121
133
  ' * Runtime Guards — Transpiled from Quint Specifications',
122
134
  ' *',
@@ -128,6 +140,32 @@ export function generateGuardsModule(guards) {
128
140
  ' * Generated by: @specverse/engine-inference quint-transpiler',
129
141
  ' */',
130
142
  '',
143
+ '// Quint module-level state variables — initialized via setSpecSnapshot().',
144
+ '// The guards read from these arrays; a host caller populates them before',
145
+ '// invoking any check_* function.',
146
+ '/* eslint-disable @typescript-eslint/no-unused-vars, prefer-const */',
147
+ 'let models: any[] = [];',
148
+ 'let controllers: any[] = [];',
149
+ 'let services: any[] = [];',
150
+ 'let views: any[] = [];',
151
+ 'let events: any[] = [];',
152
+ 'let commands: any[] = [];',
153
+ 'let conventions: any[] = [];',
154
+ 'let measures: any[] = [];',
155
+ 'let deployments: any[] = [];',
156
+ '',
157
+ 'export function setSpecSnapshot(snapshot: any): void {',
158
+ ' models = snapshot?.models ?? [];',
159
+ ' controllers = snapshot?.controllers ?? [];',
160
+ ' services = snapshot?.services ?? [];',
161
+ ' views = snapshot?.views ?? [];',
162
+ ' events = snapshot?.events ?? [];',
163
+ ' commands = snapshot?.commands ?? [];',
164
+ ' conventions = snapshot?.conventions ?? [];',
165
+ ' measures = snapshot?.measures ?? [];',
166
+ ' deployments = snapshot?.deployments ?? [];',
167
+ '}',
168
+ '',
131
169
  ];
132
170
  // Group by entity
133
171
  const byEntity = new Map();
@@ -396,6 +434,10 @@ function transpileBody(body) {
396
434
  ts = ts.replace(/\band\b/g, '&&');
397
435
  ts = ts.replace(/\bor\b/g, '||');
398
436
  ts = ts.replace(/\bnot\b/g, '!');
437
+ ts = transpileValBindings(ts);
438
+ ts = transpileImplies(ts);
439
+ ts = ts.replace(/\.forall\(\s*(\w+)\s*=>\s*/g, '.every(($1: any) => ');
440
+ ts = ts.replace(/\.exists\(\s*(\w+)\s*=>\s*/g, '.some(($1: any) => ');
399
441
  // Clean up comments
400
442
  ts = ts.replace(/\/\/.*?(?=\bif\b|\belse\b|$)/g, '');
401
443
  // Replace if/else chains → ternary (from innermost out)
@@ -409,16 +451,174 @@ function transpileBody(body) {
409
451
  }
410
452
  return `return ${ts.trim()};`;
411
453
  }
454
+ /**
455
+ * Transpile `A implies B` → `(!(A) || (B))`.
456
+ * A is the boolean expression immediately to the left of `implies`, which may
457
+ * be parenthesized or a bare comparison/member-access chain.
458
+ * B is the rest of the expression up to the next enclosing boundary.
459
+ */
460
+ function transpileImplies(ts) {
461
+ let out = ts;
462
+ let guard = 50;
463
+ while (guard-- > 0) {
464
+ const m = out.match(/\bimplies\b/);
465
+ if (!m || m.index === undefined)
466
+ break;
467
+ const idx = m.index;
468
+ // --- find left operand start ---
469
+ let i = idx - 1;
470
+ while (i >= 0 && /\s/.test(out[i]))
471
+ i--;
472
+ if (i < 0)
473
+ break;
474
+ let leftStart;
475
+ if (out[i] === ')') {
476
+ // Balanced parenthesized left operand
477
+ let depth = 1;
478
+ let k = i - 1;
479
+ while (k >= 0 && depth > 0) {
480
+ const ch = out[k];
481
+ if (ch === ')')
482
+ depth++;
483
+ else if (ch === '(')
484
+ depth--;
485
+ if (depth === 0)
486
+ break;
487
+ k--;
488
+ }
489
+ if (depth !== 0)
490
+ break;
491
+ // If the paren is a call paren (preceded by identifier or '.'), keep
492
+ // walking backward through the method chain so the left operand
493
+ // includes the receiver as well.
494
+ let kk = k - 1;
495
+ while (kk >= 0 && /[A-Za-z0-9_.]/.test(out[kk]))
496
+ kk--;
497
+ if (kk + 1 < k && /[A-Za-z_]/.test(out[kk + 1])) {
498
+ // Extend through chained receivers: `a.b.c(args)` but also
499
+ // `a.b(x).c(y)` where parens appear again.
500
+ let prev = kk;
501
+ while (prev >= 0) {
502
+ const ch = out[prev];
503
+ if (/[A-Za-z0-9_.]/.test(ch)) {
504
+ prev--;
505
+ continue;
506
+ }
507
+ if (ch === ')') {
508
+ let d = 1;
509
+ prev--;
510
+ while (prev >= 0 && d > 0) {
511
+ if (out[prev] === ')')
512
+ d++;
513
+ else if (out[prev] === '(')
514
+ d--;
515
+ if (d === 0)
516
+ break;
517
+ prev--;
518
+ }
519
+ if (d !== 0)
520
+ break;
521
+ prev--;
522
+ continue;
523
+ }
524
+ break;
525
+ }
526
+ leftStart = prev + 1;
527
+ }
528
+ else {
529
+ leftStart = k;
530
+ }
531
+ }
532
+ else {
533
+ // Bare expression — walk backward until we hit a boundary at depth 0
534
+ let depth = 0;
535
+ let k = i;
536
+ while (k >= 0) {
537
+ const ch = out[k];
538
+ if (ch === ')' || ch === ']' || ch === '}')
539
+ depth++;
540
+ else if (ch === '(' || ch === '[' || ch === '{') {
541
+ if (depth === 0) {
542
+ k++;
543
+ break;
544
+ }
545
+ depth--;
546
+ }
547
+ else if (depth === 0) {
548
+ if (ch === ',' || ch === ';' || ch === '?') {
549
+ k++;
550
+ break;
551
+ }
552
+ if (k > 0) {
553
+ const prev = out[k - 1];
554
+ if ((ch === '&' && prev === '&') || (ch === '|' && prev === '|') || (ch === '>' && prev === '=')) {
555
+ k++;
556
+ break;
557
+ }
558
+ }
559
+ }
560
+ k--;
561
+ }
562
+ if (k < 0)
563
+ k = 0;
564
+ leftStart = k;
565
+ }
566
+ const left = out.substring(leftStart, i + 1).trim();
567
+ // --- find right operand end ---
568
+ let j = idx + 'implies'.length;
569
+ while (j < out.length && /\s/.test(out[j]))
570
+ j++;
571
+ const rightStart = j;
572
+ let rDepth = 0;
573
+ while (j < out.length) {
574
+ const ch = out[j];
575
+ if (ch === '(' || ch === '[' || ch === '{')
576
+ rDepth++;
577
+ else if (ch === ')' || ch === ']' || ch === '}') {
578
+ if (rDepth === 0)
579
+ break;
580
+ rDepth--;
581
+ }
582
+ else if (rDepth === 0) {
583
+ if (ch === ',' || ch === ';')
584
+ break;
585
+ if (j + 1 < out.length) {
586
+ const next = out[j + 1];
587
+ if ((ch === '&' && next === '&') || (ch === '|' && next === '|'))
588
+ break;
589
+ }
590
+ }
591
+ j++;
592
+ }
593
+ const right = out.substring(rightStart, j).trim();
594
+ out = out.substring(0, leftStart) + `(!(${left}) || (${right}))` + out.substring(j);
595
+ }
596
+ return out;
597
+ }
598
+ /**
599
+ * Handle Quint local `val` bindings inside a block expression.
600
+ * `{ val X = CALL REST }` → `{ const X = CALL; return REST; }`
601
+ * Only supports a simple call-expression RHS; the block may contain multiple
602
+ * bindings followed by a single result expression.
603
+ */
604
+ function transpileValBindings(ts) {
605
+ return ts.replace(/\{\s*val\s+(\w+)\s*=\s*([\w.]+\([^()]*\))\s+(.+?)\s*\}/g, '{ const $1 = $2; return $3; }');
606
+ }
412
607
  function transpileExpression(expr) {
413
608
  let ts = expr;
414
609
  // Quint operators → TypeScript
415
610
  ts = ts.replace(/\band\b/g, '&&');
416
611
  ts = ts.replace(/\bor\b/g, '||');
417
612
  ts = ts.replace(/\bnot\b/g, '!');
418
- // forall .every
419
- ts = ts.replace(/(\w+)\.forall\((\w+)\s*=>\s*/g, '$1.every(($2: any) => ');
613
+ // Handle local `val` bindings inside blocks
614
+ ts = transpileValBindings(ts);
615
+ // implies → (!A || B): walk string finding each `implies` keyword,
616
+ // match its left operand as a balanced-paren expression immediately before
617
+ ts = transpileImplies(ts);
618
+ // forall → .every (accept any preceding non-word char)
619
+ ts = ts.replace(/\.forall\(\s*(\w+)\s*=>\s*/g, '.every(($1: any) => ');
420
620
  // exists → .some
421
- ts = ts.replace(/(\w+)\.exists\((\w+)\s*=>\s*/g, '$1.some(($2: any) => ');
621
+ ts = ts.replace(/\.exists\(\s*(\w+)\s*=>\s*/g, '.some(($1: any) => ');
422
622
  // .size() → .length or .size
423
623
  ts = ts.replace(/\.size\(\)/g, '.length');
424
624
  // .contains → .includes (for arrays) or .has (for Sets)
@@ -1 +1 @@
1
- {"version":3,"file":"quint-transpiler.js","sourceRoot":"","sources":["../../src/inference/quint-transpiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quint-transpiler.js","sourceRoot":"","sources":["../../src/inference/quint-transpiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAW5B;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,KAAK,MAAM,QAAQ,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,SAAS;QAEvC,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;gBAAE,SAAS;YAExC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBAC1C,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC/C,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,MAAc,EAAE,QAAgB;IAClF,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC;IAExD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE7B,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAClF,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC;YAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,YAAY,IAAI,IAAI,MAAM,MAAM,UAAU,QAAQ,IAAI,IAAI;gBACjE,UAAU,EAAE,mBAAmB,IAAI,IAAI,QAAQ,MAAM,QAAQ,SAAS,MAAM,KAAK;gBACjF,MAAM,EAAE,UAAU;gBAClB,MAAM;aACP,CAAC,CAAC;YACH,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACxB,SAAS;QACX,CAAC;QAED,gEAAgE;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC7D,IAAI,MAAM,EAAE,CAAC;YACX,mEAAmE;YACnE,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC;YACxB,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,CAAC,EAAE,CAAC;YACJ,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACnF,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC;gBAC9B,CAAC,EAAE,CAAC;YACN,CAAC;YACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,OAAO,IAAI,YAAY,IAAI,CAAC,IAAI,EAAE,EAAE;gBAC3C,UAAU,EAAE,yBAAyB,IAAI,sCAAsC,MAAM,MAAM;gBAC3F,MAAM,EAAE,UAAU;gBAClB,MAAM;aACP,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,iDAAiD;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACvE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,YAAY,CAAC;YACpC,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,OAAO,IAAI,YAAY,IAAI,EAAE;gBACpC,UAAU,EAAE,yBAAyB,IAAI,oCAAoC,MAAM,MAAM;gBACzF,MAAM,EAAE,UAAU;gBAClB,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAED,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAyB;IAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,sCAAsC,CAAC;IAEvE,uEAAuE;IACvE,8DAA8D;IAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QACzB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAa;QACtB,gBAAgB;QAChB,sBAAsB;QACtB,KAAK;QACL,0DAA0D;QAC1D,IAAI;QACJ,iFAAiF;QACjF,2EAA2E;QAC3E,sDAAsD;QACtD,IAAI;QACJ,cAAc,MAAM,CAAC,MAAM,gBAAgB,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,iBAAiB;QACnG,+DAA+D;QAC/D,KAAK;QACL,EAAE;QACF,4EAA4E;QAC5E,2EAA2E;QAC3E,mCAAmC;QACnC,sEAAsE;QACtE,yBAAyB;QACzB,8BAA8B;QAC9B,2BAA2B;QAC3B,wBAAwB;QACxB,yBAAyB;QACzB,2BAA2B;QAC3B,8BAA8B;QAC9B,2BAA2B;QAC3B,8BAA8B;QAC9B,EAAE;QACF,wDAAwD;QACxD,oCAAoC;QACpC,8CAA8C;QAC9C,wCAAwC;QACxC,kCAAkC;QAClC,oCAAoC;QACpC,wCAAwC;QACxC,8CAA8C;QAC9C,wCAAwC;QACxC,8CAA8C;QAC9C,GAAG;QACH,EAAE;KACH,CAAC;IAEF,kBAAkB;IAClB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,SAAS,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,KAAK,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,MAAM,MAAM,CAAC,CAAC;YACxH,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAgBD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,MAAc,EAAE,QAAgB;IAChF,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC;IAExD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE7B,iDAAiD;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACpF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;YACnC,0DAA0D;YAC1D,IAAI,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACvE,IAAI,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACxB,SAAS;QACX,CAAC;QAED,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CACtB,IAAY,EACZ,MAAc,EACd,IAAY,EACZ,UAAkB,EAClB,MAAc;IAEd,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,oDAAoD;QACpD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9E,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,SAAS,CAAC,GAAG,WAAW,CAAC;YACtC,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QAED,6CAA6C;QAC7C,IAAI,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC;YAAE,SAAS;QAEhD,iEAAiE;QACjE,IAAI,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC;YAAE,SAAS;QAEtD,+CAA+C;QAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACjE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,kBAAkB,SAAS,QAAQ,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnF,SAAS;QACX,CAAC;QAED,gEAAgE;QAChE,IAAI,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC;YAAE,SAAS;QAEzD,uCAAuC;QACvC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,sBAAsB;IACtB,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC9B,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACtC,OAAO,aAAa,MAAM,8CAA8C,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7G,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,OAAO,CAAC;IAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC;IAExB,MAAM,MAAM,GAAG;QACb,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,EAAE,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,UAAU,GAAG,WAAW,IAAI,IAAI,QAAQ,uBAAuB,MAAM,OAAO,CAAC;IAEnF,OAAO;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK,EAAE,UAAU,IAAI,IAAI,MAAM,iBAAiB;QAChD,UAAU;QACV,MAAM,EAAE,UAAU;QAClB,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,iEAAiE;IACjE,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;QAC1C,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;QAC1C,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAChC,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE;QAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,MAAM,MAAM,GAA4C,EAAE,CAAC;IAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACpD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc,EAAE,MAA+C;IAC3F,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACjC,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;QAClB,sCAAsC;QACtC,IAAI,GAAG,KAAK,OAAO;YAAE,GAAG,GAAG,YAAY,CAAC;aACnC,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO;YAAE,GAAG,GAAG,GAAG,CAAC;aACjD,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,GAAG,GAAG,GAAG,CAAC;aACjC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,GAAG,GAAG,GAAG,CAAC;;YAC1D,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,wCAAwC;QAC/D,OAAO,GAAG,CAAC,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,yBAAyB,QAAQ,6DAA6D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;AAC5I,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAA2B;IAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,KAAK,GAAa;QACtB,wDAAwD;QACxD,mDAAmD;QACnD,wDAAwD;QACxD,EAAE;KACH,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,wEAAwE;AAExE,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,YAAY,CAAC,KAAe,EAAE,SAAiB;IACtD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBAAC,SAAS,GAAG,IAAI,CAAC;oBAAC,SAAS;gBAAC,CAAC,CAAC,qBAAqB;YACxE,CAAC;YACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;YACtC,CAAC;YACD,IAAI,SAAS,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC5B,IAAI,IAAI,IAAI,CAAC;YACf,CAAC;QACH,CAAC;QACD,IAAI,SAAS,IAAI,KAAK,IAAI,CAAC;YAAE,IAAI,IAAI,IAAI,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,SAAS,CAAC,KAAe,EAAE,SAAiB;IACnD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,IAAI,IAAI,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAC;YAC1B,IAAI,IAAI,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAC;YAC1B,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC/B,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,OAAO,CAAC,SAAiB;IAChC,QAAQ,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;QAC1B,KAAK,KAAK,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC5B,KAAK,KAAK,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC5B,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,CAAC;QAC9B,KAAK,KAAK,CAAC,CAAC,OAAO,UAAU,CAAC;QAC9B,OAAO,CAAC,CAAC,OAAO,SAAS,IAAI,KAAK,CAAC;IACrC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,EAAE,GAAG,IAAI,CAAC;IAEd,kEAAkE;IAClE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mDAAmD,EAAE,EAAE,CAAC,CAAC;IAEzE,oBAAoB;IACpB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAE9B,mEAAmE;IACnE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAExD,0CAA0C;IAC1C,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACjC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACjC,EAAE,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAC9B,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC1B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,EAAE,sBAAsB,CAAC,CAAC;IACvE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,EAAE,qBAAqB,CAAC,CAAC;IAEtE,oBAAoB;IACpB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;IAErD,wDAAwD;IACxD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,OAAO,EAAE,KAAK,IAAI,IAAI,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,GAAG,EAAE,CAAC;QACV,0CAA0C;QAC1C,gEAAgE;QAChE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,uDAAuD,EAAE,sBAAsB,CAAC,CAAC;IACnG,CAAC;IAED,OAAO,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,EAAU;IAClC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,OAAO,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;YAAE,MAAM;QACvC,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;QAEpB,kCAAkC;QAClC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM;QAEjB,IAAI,SAAiB,CAAC;QACtB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,sCAAsC;YACtC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClB,IAAI,EAAE,KAAK,GAAG;oBAAE,KAAK,EAAE,CAAC;qBACnB,IAAI,EAAE,KAAK,GAAG;oBAAE,KAAK,EAAE,CAAC;gBAC7B,IAAI,KAAK,KAAK,CAAC;oBAAE,MAAM;gBACvB,CAAC,EAAE,CAAC;YACN,CAAC;YACD,IAAI,KAAK,KAAK,CAAC;gBAAE,MAAM;YACvB,qEAAqE;YACrE,gEAAgE;YAChE,iCAAiC;YACjC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YACf,OAAO,EAAE,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAAE,EAAE,EAAE,CAAC;YACtD,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,2DAA2D;gBAC3D,2CAA2C;gBAC3C,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC;oBACjB,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;oBACrB,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;wBAAC,IAAI,EAAE,CAAC;wBAAC,SAAS;oBAAC,CAAC;oBACnD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;wBACf,IAAI,CAAC,GAAG,CAAC,CAAC;wBACV,IAAI,EAAE,CAAC;wBACP,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC1B,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG;gCAAE,CAAC,EAAE,CAAC;iCACtB,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG;gCAAE,CAAC,EAAE,CAAC;4BAChC,IAAI,CAAC,KAAK,CAAC;gCAAE,MAAM;4BACnB,IAAI,EAAE,CAAC;wBACT,CAAC;wBACD,IAAI,CAAC,KAAK,CAAC;4BAAE,MAAM;wBACnB,IAAI,EAAE,CAAC;wBACP,SAAS;oBACX,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,qEAAqE;YACrE,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACd,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;oBAAE,KAAK,EAAE,CAAC;qBAC/C,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;oBAChD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;wBAAC,CAAC,EAAE,CAAC;wBAAC,MAAM;oBAAC,CAAC;oBAChC,KAAK,EAAE,CAAC;gBACV,CAAC;qBAAM,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACvB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;wBAAC,CAAC,EAAE,CAAC;wBAAC,MAAM;oBAAC,CAAC;oBAC3D,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBACV,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACxB,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;4BACjG,CAAC,EAAE,CAAC;4BACJ,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,CAAC,EAAE,CAAC;YACN,CAAC;YACD,IAAI,CAAC,GAAG,CAAC;gBAAE,CAAC,GAAG,CAAC,CAAC;YACjB,SAAS,GAAG,CAAC,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEpD,iCAAiC;QACjC,IAAI,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAC/B,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;gBAAE,MAAM,EAAE,CAAC;iBAChD,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAChD,IAAI,MAAM,KAAK,CAAC;oBAAE,MAAM;gBACxB,MAAM,EAAE,CAAC;YACX,CAAC;iBAAM,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;oBAAE,MAAM;gBACpC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;oBACvB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxB,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;wBAAE,MAAM;gBAC1E,CAAC;YACH,CAAC;YACD,CAAC,EAAE,CAAC;QACN,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAElD,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,MAAM,IAAI,SAAS,KAAK,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,EAAU;IACtC,OAAO,EAAE,CAAC,OAAO,CACf,yDAAyD,EACzD,+BAA+B,CAChC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,IAAI,EAAE,GAAG,IAAI,CAAC;IAEd,+BAA+B;IAC/B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACjC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAEjC,4CAA4C;IAC5C,EAAE,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAE9B,mEAAmE;IACnE,2EAA2E;IAC3E,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAE1B,uDAAuD;IACvD,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,EAAE,sBAAsB,CAAC,CAAC;IAEvE,iBAAiB;IACjB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,EAAE,qBAAqB,CAAC,CAAC;IAEtE,6BAA6B;IAC7B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE1C,wDAAwD;IACxD,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAE/C,6BAA6B;IAC7B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAE3C,qBAAqB;IACrB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACxC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE9B,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -41,8 +41,11 @@ function generateBackendPackageJson(context) {
41
41
  "@fastify/cors": "^8.4.0",
42
42
  "@fastify/helmet": "^11.1.1",
43
43
  "@fastify/rate-limit": "^9.1.0",
44
+ "@fastify/websocket": "^10.0.0",
45
+ "eventemitter3": "^5.0.0",
44
46
  "zod": "^3.22.0",
45
- "dotenv": "^16.3.0"
47
+ "dotenv": "^16.3.0",
48
+ "commander": "^13.0.0"
46
49
  },
47
50
  devDependencies: {
48
51
  "typescript": "^5.3.0",
@@ -3,9 +3,9 @@ function generateBackendTsConfig(context) {
3
3
  compilerOptions: {
4
4
  // Target and Module
5
5
  target: "ES2022",
6
- module: "ESNext",
6
+ module: "NodeNext",
7
7
  lib: ["ES2022"],
8
- moduleResolution: "node",
8
+ moduleResolution: "NodeNext",
9
9
  // Output
10
10
  outDir: "./dist",
11
11
  rootDir: "./src",
@@ -19,6 +19,7 @@ function generateRuntimePackageJson(context) {
19
19
  dependencies: {
20
20
  "react": "^18.2.0",
21
21
  "react-dom": "^18.2.0",
22
+ "react-router-dom": "^6.18.0",
22
23
  "@tanstack/react-query": "^5.0.0",
23
24
  "@specverse/runtime": "^4.1.0",
24
25
  "js-yaml": "^4.1.0",
@@ -19,7 +19,7 @@ function generateCommand(context) {
19
19
  const alias = flag.alias ? `${flag.alias}, ` : "";
20
20
  const flagType = flag.type?.toLowerCase();
21
21
  const valuePart = flagType === "boolean" ? "" : ` <${flagName.replace(/^--/, "")}>`;
22
- const defaultVal = flag.default !== void 0 ? `, ${JSON.stringify(flag.default)}` : "";
22
+ const defaultVal = flag.default !== void 0 ? `, ${commanderDefault(flag.default, flagType)}` : "";
23
23
  const desc = flag.description || `${flagName} option`;
24
24
  return ` .option('${alias}${flagName}${valuePart}', '${desc}'${defaultVal})`;
25
25
  });
@@ -47,7 +47,16 @@ function generateCommand(context) {
47
47
  if (ENGINE_HANDLERS[key]?.imports) allImportSets.push(ENGINE_HANDLERS[key].imports);
48
48
  }
49
49
  }
50
- const engineImports = deduplicateImports(allImportSets);
50
+ const registerBody = hasSubcommands ? generateCommandWithSubcommands(name, description, subcommands, optionDefs) : generateLeafCommand(name, description, commandStr, optionDefs, actionParams, serviceRef, exitCodes);
51
+ const bodyForUsage = `${serviceImport}
52
+ ${registerBody}
53
+ ${subcommandRegistrations}`;
54
+ const commandOptionsUsed = new RegExp("\\bCommandOptions\\b").test(bodyForUsage);
55
+ const engineImports = deduplicateImports(allImportSets, bodyForUsage);
56
+ const commandOptionsDecl = commandOptionsUsed ? `interface CommandOptions {
57
+ ${optionTypes.length > 0 ? optionTypes.join("\n") : " [key: string]: any;"}
58
+ }
59
+ ` : "";
51
60
  return `/**
52
61
  * ${name} command
53
62
  * ${description}
@@ -58,10 +67,7 @@ import { Command } from 'commander';
58
67
  ${serviceImport}
59
68
  ${engineImports}
60
69
 
61
- interface CommandOptions {
62
- ${optionTypes.length > 0 ? optionTypes.join("\n") : " [key: string]: any;"}
63
- }
64
-
70
+ ${commandOptionsDecl}
65
71
  ${exitCodeComments ? `/**
66
72
  * Exit codes:
67
73
  ${exitCodeComments}
@@ -71,7 +77,7 @@ ${exitCodeComments}
71
77
  * Register the ${name} command on the program.
72
78
  */
73
79
  export function register${capitalize(name)}Command(program: Command): void {
74
- ${hasSubcommands ? generateCommandWithSubcommands(name, description, subcommands, optionDefs) : generateLeafCommand(name, description, commandStr, optionDefs, actionParams, serviceRef, exitCodes)}
80
+ ${registerBody}
75
81
  }
76
82
  ${subcommandRegistrations}
77
83
  `;
@@ -227,6 +233,44 @@ import type { ParserEngine, InferenceEngine, RealizeEngine } from '@specverse/ty
227
233
  }
228
234
  }
229
235
 
236
+ // Merge custom actions from original spec controllers into inferred controllers
237
+ // Inference generates standard CURED; custom actions (openPoll, castVote) come from the spec
238
+ const origControllers = Array.isArray((origComponent as any).controllers)
239
+ ? (origComponent as any).controllers
240
+ : Object.values((origComponent as any).controllers || {});
241
+ const inferredControllers = componentData.controllers || {};
242
+ for (const origCtrl of origControllers) {
243
+ const ctrlName = (origCtrl as any).name;
244
+ if (ctrlName && (origCtrl as any).actions) {
245
+ const inferredCtrl = inferredControllers[ctrlName];
246
+ if (inferredCtrl) {
247
+ inferredCtrl.actions = { ...(inferredCtrl.actions || {}), ...(origCtrl as any).actions };
248
+ }
249
+ }
250
+ }
251
+
252
+ // Merge service operation steps from original spec into inferred services
253
+ // Inference generates service shells with preconditions/returns but drops
254
+ // the declarative steps arrays \u2014 we restore them from the parsed AST.
255
+ const origServices = Array.isArray((origComponent as any).services)
256
+ ? (origComponent as any).services
257
+ : Object.values((origComponent as any).services || {});
258
+ const inferredServices = componentData.services || {};
259
+ for (const origSvc of origServices) {
260
+ const svcName = (origSvc as any).name;
261
+ if (!svcName) continue;
262
+ const inferredSvc = inferredServices[svcName];
263
+ if (!inferredSvc) continue;
264
+
265
+ const origOps = (origSvc as any).operations || {};
266
+ const inferredOps = inferredSvc.operations || {};
267
+ for (const [opName, origOp] of Object.entries(origOps) as [string, any][]) {
268
+ if (inferredOps[opName] && origOp.steps) {
269
+ inferredOps[opName].steps = origOp.steps;
270
+ }
271
+ }
272
+ }
273
+
230
274
  // Inject key as name into entity maps, and expand convention-format attributes
231
275
  // Iterate all object-valued sections (not hardcoded \u2014 covers any entity type)
232
276
  const entitySections = Object.keys(componentData).filter(k =>
@@ -295,7 +339,7 @@ import type { ParserEngine, InferenceEngine, RealizeEngine } from '@specverse/ty
295
339
  if (!realizeEngine) { console.error('No realize engine found.'); process.exit(1); }
296
340
  await realizeEngine.initialize({ manifestPath: effectiveManifestPath, workingDir: (process.env.SPECVERSE_USER_CWD || process.cwd()) });
297
341
 
298
- const outputDir = options.output || resolve((process.env.SPECVERSE_USER_CWD || process.cwd()), 'generated/code');
342
+ const outputDir = resolve((process.env.SPECVERSE_USER_CWD || process.cwd()), options.output || 'generated/code');
299
343
  console.log('Realizing ' + type + ' from ' + file + '...');
300
344
  await (realizeEngine as any).realizeAll(inferredSpec, outputDir);
301
345
 
@@ -773,10 +817,12 @@ import { EngineRegistry } from '@specverse/entities';`,
773
817
  imports: ``,
774
818
  handler: `const { SessionManager } = await import('@specverse/engines/ai');
775
819
  const manager = new SessionManager();
776
- const job = await manager.submit(sessionId, requirements, {
777
- jobId: options.jobId,
778
- outputPath: options.output,
779
- operation: options.operation,
820
+ const job = await manager.submit({
821
+ jobId: options.jobId || ('job-' + Date.now()),
822
+ sessionId,
823
+ operation: (options.operation || 'create') as 'create' | 'analyse' | 'materialise' | 'realize',
824
+ requirements,
825
+ output: options.output,
780
826
  });
781
827
  console.log('Job submitted: ' + job.jobId);
782
828
  console.log('Status: ' + job.status);
@@ -792,8 +838,10 @@ import { EngineRegistry } from '@specverse/entities';`,
792
838
  } else {
793
839
  console.log('ID: ' + (status.sessionId || status.jobId));
794
840
  console.log('Status: ' + status.status);
795
- if (status.created) console.log('Created: ' + new Date(status.created).toLocaleString());
796
- if (status.jobsProcessed !== undefined) console.log('Jobs: ' + status.jobsProcessed);
841
+ if (status.submitted) console.log('Submitted: ' + new Date(status.submitted).toLocaleString());
842
+ if (status.started) console.log('Started: ' + new Date(status.started).toLocaleString());
843
+ if (status.completed) console.log('Completed: ' + new Date(status.completed).toLocaleString());
844
+ if (status.duration) console.log('Duration: ' + status.duration);
797
845
  }`
798
846
  },
799
847
  "session.process": {
@@ -801,7 +849,7 @@ import { EngineRegistry } from '@specverse/entities';`,
801
849
  handler: `const { SessionManager } = await import('@specverse/engines/ai');
802
850
  const manager = new SessionManager();
803
851
  console.log('Processing job: ' + jobId);
804
- await manager.process(jobId);
852
+ await manager.processJob(jobId);
805
853
  console.log('Job processed successfully');`
806
854
  }
807
855
  };
@@ -811,11 +859,12 @@ function generateLeafCommand(name, description, commandStr, optionDefs, actionPa
811
859
  const result = await service.execute(${actionParams.includes(":") ? "{ " + actionParams.split(",").map((p) => p.trim().split(":")[0].trim()).join(", ") + ", ...options }" : "options"});
812
860
  console.log(result);` : `console.log('Executing ${name}...');
813
861
  // TODO: Wire to service`;
814
- return `const cmd = program
862
+ const finalActionParams = renameUnusedActionParams(actionParams, handler);
863
+ return `program
815
864
  .command('${commandStr}')
816
865
  .description('${description}')
817
866
  ${optionDefs.join("\n")}
818
- .action(async (${actionParams}) => {
867
+ .action(async (${finalActionParams}) => {
819
868
  try {
820
869
  ${handler}
821
870
  } catch (error: any) {
@@ -824,6 +873,24 @@ ${optionDefs.join("\n")}
824
873
  }
825
874
  });`;
826
875
  }
876
+ function commanderDefault(value, flagType) {
877
+ if (flagType === "boolean") return JSON.stringify(Boolean(value));
878
+ if (typeof value === "number") return JSON.stringify(String(value));
879
+ return JSON.stringify(value);
880
+ }
881
+ function renameUnusedActionParams(actionParams, handler) {
882
+ if (!actionParams.trim()) return actionParams;
883
+ return actionParams.split(",").map((param) => {
884
+ const trimmed = param.trim();
885
+ const nameMatch = trimmed.match(/^(\w+)/);
886
+ if (!nameMatch) return param;
887
+ const name = nameMatch[1];
888
+ if (name.startsWith("_")) return param;
889
+ const re = new RegExp(`\\b${name}\\b`);
890
+ if (re.test(handler)) return param;
891
+ return param.replace(new RegExp(`\\b${name}\\b`), `_${name}`);
892
+ }).join(", ");
893
+ }
827
894
  function generateCommandWithSubcommands(name, description, subcommands, optionDefs) {
828
895
  const subcmdRegistrations = Object.entries(subcommands).map(([subName, subDef]) => {
829
896
  const subDesc = subDef.description || "";
@@ -835,7 +902,7 @@ function generateCommandWithSubcommands(name, description, subcommands, optionDe
835
902
  const alias = flag.alias ? `${flag.alias}, ` : "";
836
903
  const flagType = flag.type?.toLowerCase();
837
904
  const valuePart = flagType === "boolean" ? "" : ` <${flagName.replace(/^--/, "")}>`;
838
- const defaultVal = flag.default !== void 0 ? `, ${JSON.stringify(flag.default)}` : "";
905
+ const defaultVal = flag.default !== void 0 ? `, ${commanderDefault(flag.default, flagType)}` : "";
839
906
  return ` .option('${alias}${flagName}${valuePart}', '${flag.description || flagName}'${defaultVal})`;
840
907
  });
841
908
  const handlerKey = `${name}.${subName}`;
@@ -843,12 +910,13 @@ function generateCommandWithSubcommands(name, description, subcommands, optionDe
843
910
  const subArgTypes = Object.entries(subArgs).filter(([_, a]) => a.positional).map(([n, a]) => `${n}: ${mapArgTypeToTS(a.type)}`);
844
911
  const subActionParams = subArgTypes.length > 0 ? subArgTypes.join(", ") + ", options: any" : "options: any";
845
912
  const handler = engineHandler ? engineHandler.handler : `console.log('${name} ${subName}: not yet implemented via engine');`;
913
+ const finalSubActionParams = renameUnusedActionParams(subActionParams, handler);
846
914
  return `
847
915
  cmd
848
916
  .command('${subCmdStr}')
849
917
  .description('${subDesc}')
850
918
  ${subOptionDefs.join("\n")}
851
- .action(async (${subActionParams}) => {
919
+ .action(async (${finalSubActionParams}) => {
852
920
  try {
853
921
  ${handler}
854
922
  } catch (error: any) {
@@ -883,10 +951,14 @@ function mapArgTypeToTS(type) {
883
951
  function capitalize(str) {
884
952
  return str.split("-").map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join("");
885
953
  }
886
- function deduplicateImports(importBlocks) {
954
+ function deduplicateImports(importBlocks, usedIn) {
887
955
  const seen = /* @__PURE__ */ new Map();
888
956
  const typeImports = /* @__PURE__ */ new Map();
889
957
  const rawLines = /* @__PURE__ */ new Set();
958
+ const isUsed = (name) => {
959
+ if (!usedIn) return true;
960
+ return new RegExp(`\\b${name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\b`).test(usedIn);
961
+ };
890
962
  for (const block of importBlocks) {
891
963
  for (const line of block.split("\n").map((l) => l.trim()).filter((l) => l)) {
892
964
  const namedMatch = line.match(/^import\s+\{\s*(.+?)\s*\}\s+from\s+'(.+?)';?$/);
@@ -910,11 +982,14 @@ function deduplicateImports(importBlocks) {
910
982
  }
911
983
  const result = [];
912
984
  for (const [mod, names] of seen.entries()) {
913
- result.push(`import { ${[...names].join(", ")} } from '${mod}';`);
985
+ const used = [...names].filter(isUsed);
986
+ if (used.length > 0) {
987
+ result.push(`import { ${used.join(", ")} } from '${mod}';`);
988
+ }
914
989
  }
915
990
  for (const [mod, names] of typeImports.entries()) {
916
991
  const regularNames = seen.get(mod) || /* @__PURE__ */ new Set();
917
- const typeOnly = [...names].filter((n) => !regularNames.has(n));
992
+ const typeOnly = [...names].filter((n) => !regularNames.has(n)).filter(isUsed);
918
993
  if (typeOnly.length > 0) {
919
994
  result.push(`import type { ${typeOnly.join(", ")} } from '${mod}';`);
920
995
  }