imhcode 3.0.7 → 3.0.9
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 +118 -15
- package/dist/orchestrator/index.d.ts.map +1 -1
- package/dist/orchestrator/index.js +41 -13
- package/dist/orchestrator/index.js.map +1 -1
- package/package.json +1 -1
- package/src/orchestrator/index.ts +44 -14
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] =
|
|
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] = {
|
|
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
|
|
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 (
|
|
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: ${
|
|
1377
|
-
if (ans === '') {
|
|
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) {
|
|
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(` ✅
|
|
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);
|
|
@@ -1408,8 +1493,7 @@ async function invokePlanningLLM(promptText, config, cwd) {
|
|
|
1408
1493
|
// Check if orchestrator is built
|
|
1409
1494
|
const distPath = path.join(__dirname, '..', 'dist', 'orchestrator', 'index.js');
|
|
1410
1495
|
if (!fs.existsSync(distPath)) {
|
|
1411
|
-
console.warn(' ⚠️ Orchestrator not built
|
|
1412
|
-
console.warn(' Run "npm run build" in the imhcode package to enable LLM-powered planning.');
|
|
1496
|
+
console.warn(' ⚠️ Orchestrator not built. Run "npm run build" in the imhcode package.');
|
|
1413
1497
|
return null;
|
|
1414
1498
|
}
|
|
1415
1499
|
|
|
@@ -1417,7 +1501,7 @@ async function invokePlanningLLM(promptText, config, cwd) {
|
|
|
1417
1501
|
const planningModel = config?.model_routing?.planning?.model;
|
|
1418
1502
|
|
|
1419
1503
|
if (!planningEngine || !planningModel) {
|
|
1420
|
-
console.warn(' ⚠️ No planning model configured
|
|
1504
|
+
console.warn(' ⚠️ No planning model configured.');
|
|
1421
1505
|
console.warn(' Run "imhcode" to set up model routing.');
|
|
1422
1506
|
return null;
|
|
1423
1507
|
}
|
|
@@ -1435,7 +1519,7 @@ async function invokePlanningLLM(promptText, config, cwd) {
|
|
|
1435
1519
|
})();
|
|
1436
1520
|
|
|
1437
1521
|
if (!agentsDir) {
|
|
1438
|
-
console.warn(' ⚠️ No agents directory found
|
|
1522
|
+
console.warn(' ⚠️ No agents directory found.');
|
|
1439
1523
|
return null;
|
|
1440
1524
|
}
|
|
1441
1525
|
|
|
@@ -1457,8 +1541,12 @@ async function invokePlanningLLM(promptText, config, cwd) {
|
|
|
1457
1541
|
);
|
|
1458
1542
|
|
|
1459
1543
|
if (result.errors.length > 0) {
|
|
1460
|
-
console.warn(` ⚠️ Planning LLM returned errors
|
|
1544
|
+
console.warn(` ⚠️ Planning LLM returned errors:`);
|
|
1461
1545
|
result.errors.forEach(e => console.warn(` ${e}`));
|
|
1546
|
+
// Still return any partial output that was accumulated during failover attempts
|
|
1547
|
+
if (result.output && result.output.trim().length > 100) {
|
|
1548
|
+
return result.output;
|
|
1549
|
+
}
|
|
1462
1550
|
return null;
|
|
1463
1551
|
}
|
|
1464
1552
|
|
|
@@ -1466,7 +1554,6 @@ async function invokePlanningLLM(promptText, config, cwd) {
|
|
|
1466
1554
|
|
|
1467
1555
|
} catch (err) {
|
|
1468
1556
|
console.warn(` ⚠️ Planning LLM invocation failed: ${err.message}`);
|
|
1469
|
-
console.warn(' Falling back to static template.');
|
|
1470
1557
|
return null;
|
|
1471
1558
|
}
|
|
1472
1559
|
}
|
|
@@ -3531,12 +3618,18 @@ async function runTuiCommand() {
|
|
|
3531
3618
|
const lines = [];
|
|
3532
3619
|
const rlInput = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
3533
3620
|
|
|
3621
|
+
let pasteTimeout = null;
|
|
3534
3622
|
let isDone = false;
|
|
3535
3623
|
|
|
3536
3624
|
await new Promise(resolve => {
|
|
3537
3625
|
rlInput.on('line', (line) => {
|
|
3538
3626
|
if (isDone) return;
|
|
3539
3627
|
|
|
3628
|
+
if (pasteTimeout) {
|
|
3629
|
+
clearTimeout(pasteTimeout);
|
|
3630
|
+
pasteTimeout = null;
|
|
3631
|
+
}
|
|
3632
|
+
|
|
3540
3633
|
const trimmed = line.trim();
|
|
3541
3634
|
if (trimmed === '/submit' || trimmed === '.') {
|
|
3542
3635
|
isDone = true;
|
|
@@ -3544,10 +3637,20 @@ async function runTuiCommand() {
|
|
|
3544
3637
|
return;
|
|
3545
3638
|
}
|
|
3546
3639
|
|
|
3640
|
+
if (trimmed === '') {
|
|
3641
|
+
if (lines.length > 0) {
|
|
3642
|
+
pasteTimeout = setTimeout(() => {
|
|
3643
|
+
isDone = true;
|
|
3644
|
+
resolve();
|
|
3645
|
+
}, 100);
|
|
3646
|
+
}
|
|
3647
|
+
}
|
|
3648
|
+
|
|
3547
3649
|
lines.push(line);
|
|
3548
3650
|
});
|
|
3549
3651
|
|
|
3550
3652
|
rlInput.on('close', () => {
|
|
3653
|
+
if (pasteTimeout) clearTimeout(pasteTimeout);
|
|
3551
3654
|
if (!isDone) {
|
|
3552
3655
|
isDone = true;
|
|
3553
3656
|
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,
|
|
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,CAyL1B;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"}
|
|
@@ -355,9 +355,16 @@ async function runAgent(agent, task, options = {}, acceptanceCriteria) {
|
|
|
355
355
|
}
|
|
356
356
|
// Check if limits (tokens/quota/rate) or command errors occurred
|
|
357
357
|
const check = detectLimitCondition(output, error);
|
|
358
|
-
|
|
358
|
+
// Also treat empty/trivially-short output (< 50 chars) as a failure
|
|
359
|
+
// This catches cases where the engine exits cleanly but produces no content
|
|
360
|
+
const outputEmpty = !error && (!output || output.trim().length < 50);
|
|
361
|
+
const executionFailed = check.limitReached || error !== null || outputEmpty;
|
|
359
362
|
if (executionFailed) {
|
|
360
|
-
const reason = check.limitReached
|
|
363
|
+
const reason = check.limitReached
|
|
364
|
+
? check.reason
|
|
365
|
+
: outputEmpty
|
|
366
|
+
? "Engine returned empty or insufficient output"
|
|
367
|
+
: (error.message || String(error));
|
|
361
368
|
console.log(`\n⚠️ [IMH-Code] Engine "${currentEngine}" execution failed: ${reason}`);
|
|
362
369
|
if (check.partialOutput || (output && !error)) {
|
|
363
370
|
cumulativeOutput += (cumulativeOutput ? "\n" : "") + (check.partialOutput || output);
|
|
@@ -366,17 +373,20 @@ async function runAgent(agent, task, options = {}, acceptanceCriteria) {
|
|
|
366
373
|
if (currentEngineIndex < failoverQueue.length) {
|
|
367
374
|
const nextEng = failoverQueue[currentEngineIndex];
|
|
368
375
|
console.log(`🔄 [IMH-Code] Failing over to next best available engine "${nextEng.engine}" using model "${nextEng.model}"...`);
|
|
369
|
-
// Build failover resume prompt
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
376
|
+
// Build failover resume prompt — only include resume context if there's meaningful partial output
|
|
377
|
+
if (cumulativeOutput.trim().length > 50) {
|
|
378
|
+
const failoverResumeContext = [
|
|
379
|
+
`\n# ⚠️ FAILOVER RESUME CONTEXT`,
|
|
380
|
+
`The previous engine execution (using ${currentEngine} with model ${currentModel}) encountered a failure and was interrupted mid-task.`,
|
|
381
|
+
`Here is the partial output produced by the previous run before it stopped:`,
|
|
382
|
+
`\n---`,
|
|
383
|
+
cumulativeOutput.trim(),
|
|
384
|
+
`---\n`,
|
|
385
|
+
`Please resume from exactly where the process was interrupted. Review what was already created or modified, and complete the remaining parts of the original task. Do NOT restart the entire task from scratch.`
|
|
386
|
+
].join("\n");
|
|
387
|
+
currentPrompt = finalPrompt + "\n" + failoverResumeContext;
|
|
388
|
+
}
|
|
389
|
+
// If no meaningful partial output, just use the original prompt (fresh start)
|
|
380
390
|
}
|
|
381
391
|
else {
|
|
382
392
|
limitExhausted = true;
|
|
@@ -513,6 +523,24 @@ function getFailoverQueue(agent, config, initialEngine, initialModel, category)
|
|
|
513
523
|
queue.push({ engine: cleanEng, model });
|
|
514
524
|
}
|
|
515
525
|
};
|
|
526
|
+
// 0. Add user-configured fallbacks first
|
|
527
|
+
const userRouting = config?.model_routing?.[category];
|
|
528
|
+
if (userRouting?.fallbacks && Array.isArray(userRouting.fallbacks)) {
|
|
529
|
+
for (const fb of userRouting.fallbacks) {
|
|
530
|
+
if (fb?.engine && fb?.model) {
|
|
531
|
+
const engineData = config?.available_engines?.[fb.engine];
|
|
532
|
+
if (engineData?.models?.length > 0) {
|
|
533
|
+
const exactMatch = engineData.models.find((m) => m.toLowerCase().replace(/[-._\s]/g, "").includes(fb.model.toLowerCase().replace(/[-._\s]/g, "")));
|
|
534
|
+
if (exactMatch) {
|
|
535
|
+
addToQueue(fb.engine, exactMatch);
|
|
536
|
+
}
|
|
537
|
+
else {
|
|
538
|
+
addToQueue(fb.engine, fb.model);
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
}
|
|
516
544
|
// 1. Add preferred engines/models from category DEFAULT_MODEL_PREFERENCES
|
|
517
545
|
const prefs = DEFAULT_MODEL_PREFERENCES[category];
|
|
518
546
|
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.
|
|
3
|
+
"version": "3.0.9",
|
|
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": {
|
|
@@ -362,10 +362,17 @@ export async function runAgent(
|
|
|
362
362
|
|
|
363
363
|
// Check if limits (tokens/quota/rate) or command errors occurred
|
|
364
364
|
const check = detectLimitCondition(output, error);
|
|
365
|
-
|
|
365
|
+
// Also treat empty/trivially-short output (< 50 chars) as a failure
|
|
366
|
+
// This catches cases where the engine exits cleanly but produces no content
|
|
367
|
+
const outputEmpty = !error && (!output || output.trim().length < 50);
|
|
368
|
+
const executionFailed = check.limitReached || error !== null || outputEmpty;
|
|
366
369
|
|
|
367
370
|
if (executionFailed) {
|
|
368
|
-
const reason = check.limitReached
|
|
371
|
+
const reason = check.limitReached
|
|
372
|
+
? check.reason
|
|
373
|
+
: outputEmpty
|
|
374
|
+
? "Engine returned empty or insufficient output"
|
|
375
|
+
: (error.message || String(error));
|
|
369
376
|
console.log(`\n⚠️ [IMH-Code] Engine "${currentEngine}" execution failed: ${reason}`);
|
|
370
377
|
|
|
371
378
|
if (check.partialOutput || (output && !error)) {
|
|
@@ -377,18 +384,21 @@ export async function runAgent(
|
|
|
377
384
|
const nextEng = failoverQueue[currentEngineIndex];
|
|
378
385
|
console.log(`🔄 [IMH-Code] Failing over to next best available engine "${nextEng.engine}" using model "${nextEng.model}"...`);
|
|
379
386
|
|
|
380
|
-
// Build failover resume prompt
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
387
|
+
// Build failover resume prompt — only include resume context if there's meaningful partial output
|
|
388
|
+
if (cumulativeOutput.trim().length > 50) {
|
|
389
|
+
const failoverResumeContext = [
|
|
390
|
+
`\n# ⚠️ FAILOVER RESUME CONTEXT`,
|
|
391
|
+
`The previous engine execution (using ${currentEngine} with model ${currentModel}) encountered a failure and was interrupted mid-task.`,
|
|
392
|
+
`Here is the partial output produced by the previous run before it stopped:`,
|
|
393
|
+
`\n---`,
|
|
394
|
+
cumulativeOutput.trim(),
|
|
395
|
+
`---\n`,
|
|
396
|
+
`Please resume from exactly where the process was interrupted. Review what was already created or modified, and complete the remaining parts of the original task. Do NOT restart the entire task from scratch.`
|
|
397
|
+
].join("\n");
|
|
398
|
+
|
|
399
|
+
currentPrompt = finalPrompt + "\n" + failoverResumeContext;
|
|
400
|
+
}
|
|
401
|
+
// If no meaningful partial output, just use the original prompt (fresh start)
|
|
392
402
|
} else {
|
|
393
403
|
limitExhausted = true;
|
|
394
404
|
errors.push(`All available engines (${failoverQueue.map(t => `${t.engine} (${t.model})`).join(", ")}) failed and were exhausted.`);
|
|
@@ -546,6 +556,26 @@ export function getFailoverQueue(
|
|
|
546
556
|
}
|
|
547
557
|
};
|
|
548
558
|
|
|
559
|
+
// 0. Add user-configured fallbacks first
|
|
560
|
+
const userRouting = config?.model_routing?.[category];
|
|
561
|
+
if (userRouting?.fallbacks && Array.isArray(userRouting.fallbacks)) {
|
|
562
|
+
for (const fb of userRouting.fallbacks) {
|
|
563
|
+
if (fb?.engine && fb?.model) {
|
|
564
|
+
const engineData = config?.available_engines?.[fb.engine];
|
|
565
|
+
if (engineData?.models?.length > 0) {
|
|
566
|
+
const exactMatch = engineData.models.find((m: string) =>
|
|
567
|
+
m.toLowerCase().replace(/[-._\s]/g, "").includes(fb.model.toLowerCase().replace(/[-._\s]/g, ""))
|
|
568
|
+
);
|
|
569
|
+
if (exactMatch) {
|
|
570
|
+
addToQueue(fb.engine, exactMatch);
|
|
571
|
+
} else {
|
|
572
|
+
addToQueue(fb.engine, fb.model);
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
|
|
549
579
|
// 1. Add preferred engines/models from category DEFAULT_MODEL_PREFERENCES
|
|
550
580
|
const prefs = DEFAULT_MODEL_PREFERENCES[category];
|
|
551
581
|
if (prefs) {
|