imhcode 3.0.7 → 3.0.8

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
@@ -1310,11 +1310,35 @@ async function setupModelRouting(engines, foundEngines, isInteractive) {
1310
1310
  for (const [cat, cfg] of Object.entries(categories)) {
1311
1311
  const best = selectBestModel(cfg.ranks, engines);
1312
1312
  if (best) {
1313
- recommended[cat] = best;
1313
+ recommended[cat] = {
1314
+ engine: best.engine,
1315
+ model: best.model,
1316
+ fallbacks: []
1317
+ };
1318
+ // Find all subsequent matches from ranks to act as fallback chain
1319
+ let bestFound = false;
1320
+ for (const [preferredEngine, modelSubstring] of cfg.ranks) {
1321
+ const engData = engines[preferredEngine];
1322
+ if (!engData?.path || !engData.models?.length) continue;
1323
+ const match = engData.models.find(m => normalizeForMatch(m).includes(normalizeForMatch(modelSubstring)));
1324
+ if (match) {
1325
+ if (!bestFound) {
1326
+ bestFound = true;
1327
+ } else {
1328
+ const exists = recommended[cat].fallbacks.some(f => f.engine === preferredEngine && f.model === match);
1329
+ if (!exists) {
1330
+ recommended[cat].fallbacks.push({ engine: preferredEngine, model: match });
1331
+ }
1332
+ }
1333
+ }
1334
+ }
1314
1335
  } else if (foundEngines.length > 0) {
1315
- // Fallback: primary engine first model
1316
1336
  const fe = foundEngines[0];
1317
- recommended[cat] = { engine: fe, model: engines[fe].models[0] || 'default' };
1337
+ recommended[cat] = {
1338
+ engine: fe,
1339
+ model: engines[fe].models[0] || 'default',
1340
+ fallbacks: []
1341
+ };
1318
1342
  }
1319
1343
  }
1320
1344
 
@@ -1366,20 +1390,81 @@ async function setupModelRouting(engines, foundEngines, isInteractive) {
1366
1390
  console.log(` [${i + 1}] ${item.model} (${item.engine})${isRec ? ' ← Recommended ✅' : ''}`);
1367
1391
  });
1368
1392
 
1369
- let selectedIdx = allModels.findIndex(m => {
1393
+ let primaryIdx = allModels.findIndex(m => {
1370
1394
  const rec = recommended[cat];
1371
1395
  return rec && m.engine === rec.engine && m.model === rec.model;
1372
1396
  });
1373
- if (selectedIdx < 0) selectedIdx = 0;
1397
+ if (primaryIdx < 0) primaryIdx = 0;
1374
1398
 
1399
+ let primaryModel;
1375
1400
  while (true) {
1376
- const ans = await askQuestion(` Select model for ${cat} [1-${allModels.length}] (default: ${selectedIdx + 1}): `);
1377
- if (ans === '') { routing[cat] = allModels[selectedIdx]; break; }
1401
+ const ans = await askQuestion(` Select PRIMARY model for ${cat} [1-${allModels.length}] (default: ${primaryIdx + 1}): `);
1402
+ if (ans === '') { primaryModel = allModels[primaryIdx]; break; }
1378
1403
  const p = parseInt(ans, 10);
1379
- if (p >= 1 && p <= allModels.length) { routing[cat] = allModels[p - 1]; break; }
1404
+ if (p >= 1 && p <= allModels.length) { primaryModel = allModels[p - 1]; break; }
1380
1405
  console.log(` ❌ Invalid. Enter 1–${allModels.length}.`);
1381
1406
  }
1382
- console.log(` ✅ ${cat}: ${routing[cat].model} (${routing[cat].engine})`);
1407
+ console.log(` ✅ Primary: ${primaryModel.model} (${primaryModel.engine})`);
1408
+
1409
+ routing[cat] = {
1410
+ engine: primaryModel.engine,
1411
+ model: primaryModel.model,
1412
+ fallbacks: []
1413
+ };
1414
+
1415
+ // Select Fallback #1
1416
+ const fallbackChoices = allModels.filter(m => m.engine !== primaryModel.engine || m.model !== primaryModel.model);
1417
+ if (fallbackChoices.length > 0) {
1418
+ console.log(`\n Select Fallback #1 model for [${cat}] (optional):`);
1419
+ fallbackChoices.forEach((item, i) => {
1420
+ const isRec = recommended[cat]?.fallbacks?.[0] && recommended[cat].fallbacks[0].engine === item.engine && recommended[cat].fallbacks[0].model === item.model;
1421
+ console.log(` [${i + 1}] ${item.model} (${item.engine})${isRec ? ' ← Recommended Fallback #1 🔄' : ''}`);
1422
+ });
1423
+
1424
+ let fb1Idx = fallbackChoices.findIndex(item => {
1425
+ const recFb1 = recommended[cat]?.fallbacks?.[0];
1426
+ return recFb1 && item.engine === recFb1.engine && item.model === recFb1.model;
1427
+ });
1428
+ if (fb1Idx < 0) fb1Idx = 0;
1429
+
1430
+ let fb1Model = null;
1431
+ while (true) {
1432
+ const ans = await askQuestion(` Select FALLBACK #1 model for ${cat} [1-${fallbackChoices.length}] (skip: press Enter): `);
1433
+ if (ans === '') { break; }
1434
+ const p = parseInt(ans, 10);
1435
+ if (p >= 1 && p <= fallbackChoices.length) { fb1Model = fallbackChoices[p - 1]; break; }
1436
+ console.log(` ❌ Invalid. Enter 1–${fallbackChoices.length} or press Enter to skip.`);
1437
+ }
1438
+
1439
+ if (fb1Model) {
1440
+ console.log(` ✅ Fallback #1: ${fb1Model.model} (${fb1Model.engine})`);
1441
+ routing[cat].fallbacks.push({ engine: fb1Model.engine, model: fb1Model.model });
1442
+
1443
+ // Select Fallback #2
1444
+ const fallbackChoices2 = fallbackChoices.filter(m => m.engine !== fb1Model.engine || m.model !== fb1Model.model);
1445
+ if (fallbackChoices2.length > 0) {
1446
+ console.log(`\n Select Fallback #2 model for [${cat}] (optional):`);
1447
+ fallbackChoices2.forEach((item, i) => {
1448
+ const isRec = recommended[cat]?.fallbacks?.[1] && recommended[cat].fallbacks[1].engine === item.engine && recommended[cat].fallbacks[1].model === item.model;
1449
+ console.log(` [${i + 1}] ${item.model} (${item.engine})${isRec ? ' ← Recommended Fallback #2 🔄' : ''}`);
1450
+ });
1451
+
1452
+ let fb2Model = null;
1453
+ while (true) {
1454
+ const ans = await askQuestion(` Select FALLBACK #2 model for ${cat} [1-${fallbackChoices2.length}] (skip: press Enter): `);
1455
+ if (ans === '') { break; }
1456
+ const p = parseInt(ans, 10);
1457
+ if (p >= 1 && p <= fallbackChoices2.length) { fb2Model = fallbackChoices2[p - 1]; break; }
1458
+ console.log(` ❌ Invalid. Enter 1–${fallbackChoices2.length} or press Enter to skip.`);
1459
+ }
1460
+
1461
+ if (fb2Model) {
1462
+ console.log(` ✅ Fallback #2: ${fb2Model.model} (${fb2Model.engine})`);
1463
+ routing[cat].fallbacks.push({ engine: fb2Model.engine, model: fb2Model.model });
1464
+ }
1465
+ }
1466
+ }
1467
+ }
1383
1468
  }
1384
1469
  } else {
1385
1470
  Object.assign(routing, recommended);
@@ -3531,12 +3616,18 @@ async function runTuiCommand() {
3531
3616
  const lines = [];
3532
3617
  const rlInput = readline.createInterface({ input: process.stdin, output: process.stdout });
3533
3618
 
3619
+ let pasteTimeout = null;
3534
3620
  let isDone = false;
3535
3621
 
3536
3622
  await new Promise(resolve => {
3537
3623
  rlInput.on('line', (line) => {
3538
3624
  if (isDone) return;
3539
3625
 
3626
+ if (pasteTimeout) {
3627
+ clearTimeout(pasteTimeout);
3628
+ pasteTimeout = null;
3629
+ }
3630
+
3540
3631
  const trimmed = line.trim();
3541
3632
  if (trimmed === '/submit' || trimmed === '.') {
3542
3633
  isDone = true;
@@ -3544,10 +3635,20 @@ async function runTuiCommand() {
3544
3635
  return;
3545
3636
  }
3546
3637
 
3638
+ if (trimmed === '') {
3639
+ if (lines.length > 0) {
3640
+ pasteTimeout = setTimeout(() => {
3641
+ isDone = true;
3642
+ resolve();
3643
+ }, 100);
3644
+ }
3645
+ }
3646
+
3547
3647
  lines.push(line);
3548
3648
  });
3549
3649
 
3550
3650
  rlInput.on('close', () => {
3651
+ if (pasteTimeout) clearTimeout(pasteTimeout);
3551
3652
  if (!isDone) {
3552
3653
  isDone = true;
3553
3654
  resolve();
@@ -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,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"}
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,CAmIlB;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"}
@@ -513,6 +513,24 @@ function getFailoverQueue(agent, config, initialEngine, initialModel, category)
513
513
  queue.push({ engine: cleanEng, model });
514
514
  }
515
515
  };
516
+ // 0. Add user-configured fallbacks first
517
+ const userRouting = config?.model_routing?.[category];
518
+ if (userRouting?.fallbacks && Array.isArray(userRouting.fallbacks)) {
519
+ for (const fb of userRouting.fallbacks) {
520
+ if (fb?.engine && fb?.model) {
521
+ const engineData = config?.available_engines?.[fb.engine];
522
+ if (engineData?.models?.length > 0) {
523
+ const exactMatch = engineData.models.find((m) => m.toLowerCase().replace(/[-._\s]/g, "").includes(fb.model.toLowerCase().replace(/[-._\s]/g, "")));
524
+ if (exactMatch) {
525
+ addToQueue(fb.engine, exactMatch);
526
+ }
527
+ else {
528
+ addToQueue(fb.engine, fb.model);
529
+ }
530
+ }
531
+ }
532
+ }
533
+ }
516
534
  // 1. Add preferred engines/models from category DEFAULT_MODEL_PREFERENCES
517
535
  const prefs = DEFAULT_MODEL_PREFERENCES[category];
518
536
  if (prefs) {
@@ -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.7",
3
+ "version": "3.0.8",
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": {
@@ -546,6 +546,26 @@ export function getFailoverQueue(
546
546
  }
547
547
  };
548
548
 
549
+ // 0. Add user-configured fallbacks first
550
+ const userRouting = config?.model_routing?.[category];
551
+ if (userRouting?.fallbacks && Array.isArray(userRouting.fallbacks)) {
552
+ for (const fb of userRouting.fallbacks) {
553
+ if (fb?.engine && fb?.model) {
554
+ const engineData = config?.available_engines?.[fb.engine];
555
+ if (engineData?.models?.length > 0) {
556
+ const exactMatch = engineData.models.find((m: string) =>
557
+ m.toLowerCase().replace(/[-._\s]/g, "").includes(fb.model.toLowerCase().replace(/[-._\s]/g, ""))
558
+ );
559
+ if (exactMatch) {
560
+ addToQueue(fb.engine, exactMatch);
561
+ } else {
562
+ addToQueue(fb.engine, fb.model);
563
+ }
564
+ }
565
+ }
566
+ }
567
+ }
568
+
549
569
  // 1. Add preferred engines/models from category DEFAULT_MODEL_PREFERENCES
550
570
  const prefs = DEFAULT_MODEL_PREFERENCES[category];
551
571
  if (prefs) {