imhcode 3.0.6 → 3.0.7

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.
package/bin/imhcode.js CHANGED
@@ -1587,17 +1587,9 @@ Do NOT include any preamble, explanation, or commentary outside the Markdown doc
1587
1587
  fs.mkdirSync(path.join(cwd, DOCS_DIR), { recursive: true });
1588
1588
  fs.writeFileSync(brainstormPath, content, 'utf8');
1589
1589
  } else {
1590
- console.log('\n⚠️ LLM brainstorming generation failed or returned empty output.');
1591
- const answer = await askQuestion('Would you like to fall back to the static brainstorming template? [y/N]: ');
1592
- if (answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes') {
1593
- content = generateStaticBrainstorming(userPrompt, scopeHints);
1594
- console.log(`\n 📋 Brainstorming document generated (static template)`);
1595
- fs.mkdirSync(path.join(cwd, DOCS_DIR), { recursive: true });
1596
- fs.writeFileSync(brainstormPath, content, 'utf8');
1597
- } else {
1598
- console.log('\n❌ Aborted. Please check your model limits and run "imhcode init" again.');
1599
- process.exit(1);
1600
- }
1590
+ console.error('\n❌ Error: LLM brainstorming document generation failed or returned empty output.');
1591
+ console.error(' Please check your model limits/API keys and re-run "imhcode plan".');
1592
+ process.exit(1);
1601
1593
  }
1602
1594
  }
1603
1595
  }
@@ -1893,19 +1885,9 @@ async function generateSprintPlans(cwd, userPrompt, brainstormContent, config) {
1893
1885
  console.log(` ✅ Sprint plans generated by planning AI`);
1894
1886
  lastSprintNum = llmSprintResult.sprintCount;
1895
1887
  } else {
1896
- console.log('\n⚠️ LLM sprint plans generation failed or returned empty output.');
1897
- const answer = await askQuestion('Would you like to fall back to the static sprint plans template? [y/N]: ');
1898
- if (answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes') {
1899
- // Fix 5: Fallback to smart static generation
1900
- lastSprintNum = await generateStaticSprintPlans(
1901
- cwd,
1902
- { hasFrontend, hasBackend, hasMobile, hasPayments, hasRealtime, designStyle, colorStyle, darkmode, detectedTesting },
1903
- config
1904
- );
1905
- } else {
1906
- console.log('\n❌ Aborted. Please check your model limits and run "imhcode plan" again.');
1907
- process.exit(1);
1908
- }
1888
+ console.error('\n❌ Error: LLM sprint plans generation failed or returned empty output.');
1889
+ console.error(' Please check your model limits/API keys and re-run "imhcode plan".');
1890
+ process.exit(1);
1909
1891
  }
1910
1892
 
1911
1893
  // Auto-generate testing sprint if fast/balanced mode
@@ -3522,7 +3504,7 @@ async function runTuiCommand() {
3522
3504
  case 'init':
3523
3505
  inSubMode = true;
3524
3506
  if (isRaw) process.stdin.setRawMode(false);
3525
- process.stdin.pause();
3507
+ process.stdin.resume();
3526
3508
  process.stdout.write(ANSI.showCursor + '\n');
3527
3509
 
3528
3510
  try {
@@ -3540,7 +3522,7 @@ async function runTuiCommand() {
3540
3522
  case 'write':
3541
3523
  inSubMode = true;
3542
3524
  if (isRaw) process.stdin.setRawMode(false);
3543
- process.stdin.pause();
3525
+ process.stdin.resume();
3544
3526
  process.stdout.write(ANSI.showCursor + '\n');
3545
3527
 
3546
3528
  console.log(ANSI.cyan + '\n🕌 IMH-Code — Write Requirements' + ANSI.reset);
@@ -3549,7 +3531,6 @@ async function runTuiCommand() {
3549
3531
  const lines = [];
3550
3532
  const rlInput = readline.createInterface({ input: process.stdin, output: process.stdout });
3551
3533
 
3552
- let pasteTimeout = null;
3553
3534
  let isDone = false;
3554
3535
 
3555
3536
  await new Promise(resolve => {
@@ -3558,25 +3539,11 @@ async function runTuiCommand() {
3558
3539
 
3559
3540
  const trimmed = line.trim();
3560
3541
  if (trimmed === '/submit' || trimmed === '.') {
3561
- if (pasteTimeout) clearTimeout(pasteTimeout);
3562
3542
  isDone = true;
3563
3543
  resolve();
3564
3544
  return;
3565
3545
  }
3566
3546
 
3567
- if (trimmed === '') {
3568
- if (pasteTimeout) clearTimeout(pasteTimeout);
3569
- pasteTimeout = setTimeout(() => {
3570
- isDone = true;
3571
- resolve();
3572
- }, 100);
3573
- } else {
3574
- if (pasteTimeout) {
3575
- clearTimeout(pasteTimeout);
3576
- pasteTimeout = null;
3577
- }
3578
- }
3579
-
3580
3547
  lines.push(line);
3581
3548
  });
3582
3549
 
@@ -3677,7 +3644,7 @@ async function runTuiCommand() {
3677
3644
  case 'plan':
3678
3645
  inSubMode = true;
3679
3646
  if (isRaw) process.stdin.setRawMode(false);
3680
- process.stdin.pause();
3647
+ process.stdin.resume();
3681
3648
  process.stdout.write(ANSI.showCursor + '\n');
3682
3649
 
3683
3650
  // If sprints already exist, confirm deletion first
@@ -3722,7 +3689,7 @@ async function runTuiCommand() {
3722
3689
  case 'execute':
3723
3690
  inSubMode = true;
3724
3691
  if (isRaw) process.stdin.setRawMode(false);
3725
- process.stdin.pause();
3692
+ process.stdin.resume();
3726
3693
  process.stdout.write(ANSI.showCursor + '\n');
3727
3694
 
3728
3695
  try {
@@ -3737,7 +3704,7 @@ async function runTuiCommand() {
3737
3704
  case 'test':
3738
3705
  inSubMode = true;
3739
3706
  if (isRaw) process.stdin.setRawMode(false);
3740
- process.stdin.pause();
3707
+ process.stdin.resume();
3741
3708
  process.stdout.write(ANSI.showCursor + '\n');
3742
3709
 
3743
3710
  try {
@@ -3752,7 +3719,7 @@ async function runTuiCommand() {
3752
3719
  case 'modify':
3753
3720
  inSubMode = true;
3754
3721
  if (isRaw) process.stdin.setRawMode(false);
3755
- process.stdin.pause();
3722
+ process.stdin.resume();
3756
3723
  process.stdout.write(ANSI.showCursor + '\n');
3757
3724
 
3758
3725
  const rlMod = readline.createInterface({ input: process.stdin, output: process.stdout });
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG/E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACzF,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAShD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA+C9F;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6BrD,CAAC;AAqHF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzE;AAID;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,gBAAqB,EAC9B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,eAAe,CAAC,CAgL1B;AAgED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,GAAG,EACX,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,cAAc,EAAE,CA0FlB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,WAAW,GACjB,MAAM,CAkBR"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG/E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACzF,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAShD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA+C9F;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6BrD,CAAC;AAqHF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzE;AAID;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,gBAAqB,EAC9B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,eAAe,CAAC,CA+K1B;AAgED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,GAAG,EACX,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,cAAc,EAAE,CA+GlB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,WAAW,GACjB,MAAM,CAkBR"}
@@ -353,19 +353,23 @@ async function runAgent(agent, task, options = {}, acceptanceCriteria) {
353
353
  error = err;
354
354
  output = err.message || "";
355
355
  }
356
- // Check if limits (tokens/quota/rate) were reached
356
+ // Check if limits (tokens/quota/rate) or command errors occurred
357
357
  const check = detectLimitCondition(output, error);
358
- if (check.limitReached) {
359
- console.log(`\n⚠️ [IMH-Code] Engine "${currentEngine}" hit a limit: ${check.reason}`);
360
- cumulativeOutput += (cumulativeOutput ? "\n" : "") + check.partialOutput;
358
+ const executionFailed = check.limitReached || error !== null;
359
+ if (executionFailed) {
360
+ const reason = check.limitReached ? check.reason : (error.message || String(error));
361
+ console.log(`\n⚠️ [IMH-Code] Engine "${currentEngine}" execution failed: ${reason}`);
362
+ if (check.partialOutput || (output && !error)) {
363
+ cumulativeOutput += (cumulativeOutput ? "\n" : "") + (check.partialOutput || output);
364
+ }
361
365
  currentEngineIndex++;
362
366
  if (currentEngineIndex < failoverQueue.length) {
363
367
  const nextEng = failoverQueue[currentEngineIndex];
364
- console.log(`🔄 [IMH-Code] Failing over to next best available engine "${nextEng}"...`);
368
+ console.log(`🔄 [IMH-Code] Failing over to next best available engine "${nextEng.engine}" using model "${nextEng.model}"...`);
365
369
  // Build failover resume prompt
366
370
  const failoverResumeContext = [
367
371
  `\n# ⚠️ FAILOVER RESUME CONTEXT`,
368
- `The previous engine execution (using ${currentEngine} with model ${currentModel}) hit a limit and was interrupted mid-task.`,
372
+ `The previous engine execution (using ${currentEngine} with model ${currentModel}) encountered a failure and was interrupted mid-task.`,
369
373
  `Here is the partial output produced by the previous run before it stopped:`,
370
374
  `\n---`,
371
375
  cumulativeOutput.trim(),
@@ -376,21 +380,14 @@ async function runAgent(agent, task, options = {}, acceptanceCriteria) {
376
380
  }
377
381
  else {
378
382
  limitExhausted = true;
379
- errors.push(`All available engines (${failoverQueue.map(t => `${t.engine} (${t.model})`).join(", ")}) hit limits and were exhausted.`);
380
- cumulativeOutput += "\n\n[Execution aborted: all available engines hit limits]";
383
+ errors.push(`All available engines (${failoverQueue.map(t => `${t.engine} (${t.model})`).join(", ")}) failed and were exhausted.`);
384
+ cumulativeOutput += "\n\n[Execution aborted: all available engines failed]";
381
385
  }
382
386
  }
383
387
  else {
384
- if (error) {
385
- // If it failed with a standard error (e.g. syntax, task validation), do NOT failover
386
- errors.push(error.message || String(error));
387
- cumulativeOutput += (cumulativeOutput ? "\n" : "") + output;
388
- }
389
- else {
390
- success = true;
391
- cumulativeOutput += (cumulativeOutput ? "\n" : "") + output;
392
- }
393
- break; // Successfully completed or failed with a non-limit error
388
+ success = true;
389
+ cumulativeOutput += (cumulativeOutput ? "\n" : "") + output;
390
+ break; // Successfully completed
394
391
  }
395
392
  }
396
393
  if (success || !limitExhausted) {
@@ -398,7 +395,7 @@ async function runAgent(agent, task, options = {}, acceptanceCriteria) {
398
395
  }
399
396
  // Interactive retry check
400
397
  if (process.stdout.isTTY) {
401
- console.log(`\n❌ [IMH-Code] All available engines/models hit limits.`);
398
+ console.log(`\n❌ [IMH-Code] All available engines/models failed.`);
402
399
  console.log(` Wait 15 seconds for limits to reset, then press Enter to retry, or type "abort" to exit.`);
403
400
  const readline = require("readline");
404
401
  const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
@@ -583,6 +580,23 @@ function getFailoverQueue(agent, config, initialEngine, initialModel, category)
583
580
  }
584
581
  }
585
582
  }
583
+ // 6. Ensure the fast category model is at the very end of the queue as the ultimate fallback
584
+ const fastPrefs = DEFAULT_MODEL_PREFERENCES["fast"];
585
+ if (fastPrefs && fastPrefs.length > 0) {
586
+ const fastPref = fastPrefs[0];
587
+ const fastEngineData = config?.available_engines?.[fastPref.engine];
588
+ if (fastEngineData?.models?.length > 0) {
589
+ const match = fastEngineData.models.find((m) => m.toLowerCase().replace(/[-._\s]/g, "").includes(fastPref.model.toLowerCase().replace(/[-._\s]/g, "")));
590
+ const finalModel = match || fastEngineData.models[0];
591
+ const cleanFastEng = fastPref.engine.toLowerCase().trim();
592
+ if (installed.includes(cleanFastEng)) {
593
+ const exists = expandedQueue.some(t => t.engine === cleanFastEng && t.model === finalModel);
594
+ if (!exists) {
595
+ expandedQueue.push({ engine: cleanFastEng, model: finalModel });
596
+ }
597
+ }
598
+ }
599
+ }
586
600
  return expandedQueue;
587
601
  }
588
602
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imhcode",
3
- "version": "3.0.6",
3
+ "version": "3.0.7",
4
4
  "description": "IMH-Code — Imam Hussain Coding Harness Platform. A fast-first multi-agent AI coding framework with intelligent model routing. 19 generic role-based agents (planner, nextjs-executor, laravel-executor, etc.), configurable testing strategy, and 7 token-saving optimizations for rapid MVP development.",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -360,22 +360,27 @@ export async function runAgent(
360
360
  output = err.message || "";
361
361
  }
362
362
 
363
- // Check if limits (tokens/quota/rate) were reached
363
+ // Check if limits (tokens/quota/rate) or command errors occurred
364
364
  const check = detectLimitCondition(output, error);
365
-
366
- if (check.limitReached) {
367
- console.log(`\n⚠️ [IMH-Code] Engine "${currentEngine}" hit a limit: ${check.reason}`);
368
- cumulativeOutput += (cumulativeOutput ? "\n" : "") + check.partialOutput;
365
+ const executionFailed = check.limitReached || error !== null;
366
+
367
+ if (executionFailed) {
368
+ const reason = check.limitReached ? check.reason : (error.message || String(error));
369
+ console.log(`\n⚠️ [IMH-Code] Engine "${currentEngine}" execution failed: ${reason}`);
370
+
371
+ if (check.partialOutput || (output && !error)) {
372
+ cumulativeOutput += (cumulativeOutput ? "\n" : "") + (check.partialOutput || output);
373
+ }
369
374
 
370
375
  currentEngineIndex++;
371
376
  if (currentEngineIndex < failoverQueue.length) {
372
377
  const nextEng = failoverQueue[currentEngineIndex];
373
- console.log(`🔄 [IMH-Code] Failing over to next best available engine "${nextEng}"...`);
378
+ console.log(`🔄 [IMH-Code] Failing over to next best available engine "${nextEng.engine}" using model "${nextEng.model}"...`);
374
379
 
375
380
  // Build failover resume prompt
376
381
  const failoverResumeContext = [
377
382
  `\n# ⚠️ FAILOVER RESUME CONTEXT`,
378
- `The previous engine execution (using ${currentEngine} with model ${currentModel}) hit a limit and was interrupted mid-task.`,
383
+ `The previous engine execution (using ${currentEngine} with model ${currentModel}) encountered a failure and was interrupted mid-task.`,
379
384
  `Here is the partial output produced by the previous run before it stopped:`,
380
385
  `\n---`,
381
386
  cumulativeOutput.trim(),
@@ -386,19 +391,13 @@ export async function runAgent(
386
391
  currentPrompt = finalPrompt + "\n" + failoverResumeContext;
387
392
  } else {
388
393
  limitExhausted = true;
389
- errors.push(`All available engines (${failoverQueue.map(t => `${t.engine} (${t.model})`).join(", ")}) hit limits and were exhausted.`);
390
- cumulativeOutput += "\n\n[Execution aborted: all available engines hit limits]";
394
+ errors.push(`All available engines (${failoverQueue.map(t => `${t.engine} (${t.model})`).join(", ")}) failed and were exhausted.`);
395
+ cumulativeOutput += "\n\n[Execution aborted: all available engines failed]";
391
396
  }
392
397
  } else {
393
- if (error) {
394
- // If it failed with a standard error (e.g. syntax, task validation), do NOT failover
395
- errors.push(error.message || String(error));
396
- cumulativeOutput += (cumulativeOutput ? "\n" : "") + output;
397
- } else {
398
- success = true;
399
- cumulativeOutput += (cumulativeOutput ? "\n" : "") + output;
400
- }
401
- break; // Successfully completed or failed with a non-limit error
398
+ success = true;
399
+ cumulativeOutput += (cumulativeOutput ? "\n" : "") + output;
400
+ break; // Successfully completed
402
401
  }
403
402
  }
404
403
 
@@ -408,7 +407,7 @@ export async function runAgent(
408
407
 
409
408
  // Interactive retry check
410
409
  if (process.stdout.isTTY) {
411
- console.log(`\n❌ [IMH-Code] All available engines/models hit limits.`);
410
+ console.log(`\n❌ [IMH-Code] All available engines/models failed.`);
412
411
  console.log(` Wait 15 seconds for limits to reset, then press Enter to retry, or type "abort" to exit.`);
413
412
 
414
413
  const readline = require("readline");
@@ -621,6 +620,27 @@ export function getFailoverQueue(
621
620
  }
622
621
  }
623
622
 
623
+ // 6. Ensure the fast category model is at the very end of the queue as the ultimate fallback
624
+ const fastPrefs = DEFAULT_MODEL_PREFERENCES["fast"];
625
+ if (fastPrefs && fastPrefs.length > 0) {
626
+ const fastPref = fastPrefs[0];
627
+ const fastEngineData = config?.available_engines?.[fastPref.engine];
628
+ if (fastEngineData?.models?.length > 0) {
629
+ const match = fastEngineData.models.find((m: string) =>
630
+ m.toLowerCase().replace(/[-._\s]/g, "").includes(fastPref.model.toLowerCase().replace(/[-._\s]/g, ""))
631
+ );
632
+ const finalModel = match || fastEngineData.models[0];
633
+ const cleanFastEng = fastPref.engine.toLowerCase().trim();
634
+
635
+ if (installed.includes(cleanFastEng)) {
636
+ const exists = expandedQueue.some(t => t.engine === cleanFastEng && t.model === finalModel);
637
+ if (!exists) {
638
+ expandedQueue.push({ engine: cleanFastEng, model: finalModel });
639
+ }
640
+ }
641
+ }
642
+ }
643
+
624
644
  return expandedQueue;
625
645
  }
626
646