imhcode 3.0.0 ā 3.0.2
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 +102 -156
- package/dist/orchestrator/index.d.ts +3 -3
- package/dist/orchestrator/index.d.ts.map +1 -1
- package/dist/orchestrator/index.js +92 -79
- package/dist/orchestrator/index.js.map +1 -1
- package/dist/orchestrator/types.d.ts +4 -0
- package/dist/orchestrator/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/orchestrator/index.ts +99 -85
- package/src/orchestrator/types.ts +5 -0
package/bin/imhcode.js
CHANGED
|
@@ -1099,132 +1099,8 @@ async function runInit() {
|
|
|
1099
1099
|
console.log(` Created docs/start.md (write your project here)`);
|
|
1100
1100
|
}
|
|
1101
1101
|
|
|
1102
|
-
const globalConfigPath = path.join(GLOBAL_DIR, 'global.config.json');
|
|
1103
|
-
let useGlobal = false;
|
|
1104
|
-
let globalConfig = null;
|
|
1105
|
-
|
|
1106
|
-
if (fs.existsSync(globalConfigPath)) {
|
|
1107
|
-
try {
|
|
1108
|
-
globalConfig = JSON.parse(fs.readFileSync(globalConfigPath, 'utf8'));
|
|
1109
|
-
} catch {}
|
|
1110
|
-
}
|
|
1111
|
-
|
|
1112
1102
|
const isInteractive = process.stdout.isTTY;
|
|
1113
1103
|
|
|
1114
|
-
if (globalConfig && isInteractive) {
|
|
1115
|
-
console.log(`\nš Found saved global default configuration:`);
|
|
1116
|
-
console.log(` Primary Engine: ${globalConfig.primary_engine} (${globalConfig.default_model || 'auto'})`);
|
|
1117
|
-
console.log(` Testing Route: ${globalConfig.model_routing?.testing?.model || 'auto'} via ${globalConfig.model_routing?.testing?.engine || 'auto'}`);
|
|
1118
|
-
console.log(` Review Route: ${globalConfig.model_routing?.review?.model || 'auto'} via ${globalConfig.model_routing?.review?.engine || 'auto'}`);
|
|
1119
|
-
|
|
1120
|
-
const ans = await askQuestion('\nUse default global engine and model routing? [Y/n] ');
|
|
1121
|
-
if (ans.toLowerCase() !== 'n' && ans.toLowerCase() !== 'no') {
|
|
1122
|
-
useGlobal = true;
|
|
1123
|
-
}
|
|
1124
|
-
} else if (globalConfig) {
|
|
1125
|
-
useGlobal = true;
|
|
1126
|
-
}
|
|
1127
|
-
|
|
1128
|
-
if (useGlobal && globalConfig) {
|
|
1129
|
-
console.log('\nā
Applying global default configuration...');
|
|
1130
|
-
|
|
1131
|
-
const dirsToCreate = [
|
|
1132
|
-
DOCS_DIR,
|
|
1133
|
-
LOCAL_DIR_NAME,
|
|
1134
|
-
path.join(LOCAL_DIR_NAME, 'commands'),
|
|
1135
|
-
path.join(LOCAL_DIR_NAME, 'sessions'),
|
|
1136
|
-
];
|
|
1137
|
-
for (const dir of dirsToCreate) {
|
|
1138
|
-
const dirPath = path.join(cwd, dir);
|
|
1139
|
-
if (!fs.existsSync(dirPath)) {
|
|
1140
|
-
fs.mkdirSync(dirPath, { recursive: true });
|
|
1141
|
-
console.log(` Created local directory: ${dir}`);
|
|
1142
|
-
}
|
|
1143
|
-
}
|
|
1144
|
-
|
|
1145
|
-
const startMdPath = path.join(cwd, START_MD);
|
|
1146
|
-
if (!fs.existsSync(startMdPath)) {
|
|
1147
|
-
const startMdContent = [
|
|
1148
|
-
'# š IMH-Code ā Project Start',
|
|
1149
|
-
'',
|
|
1150
|
-
'> **Imam Hussain Coding Harness Platform**',
|
|
1151
|
-
'> Answer the scope questions below, write your description, then run `imhcode plan`.',
|
|
1152
|
-
'',
|
|
1153
|
-
'---',
|
|
1154
|
-
'',
|
|
1155
|
-
'## ā” Quick Scope Check',
|
|
1156
|
-
'',
|
|
1157
|
-
'**Do you need a backend API / server-side logic?**',
|
|
1158
|
-
'> **Answer:** yes *(change to: yes / no / unsure)*',
|
|
1159
|
-
'',
|
|
1160
|
-
'**Do you need a mobile app (iOS/Android)?**',
|
|
1161
|
-
'> **Answer:** no *(change to: yes / no)*',
|
|
1162
|
-
'',
|
|
1163
|
-
'---',
|
|
1164
|
-
'',
|
|
1165
|
-
'## š Your Project Description',
|
|
1166
|
-
'',
|
|
1167
|
-
'Write your complete project idea below. Be as detailed as possible.',
|
|
1168
|
-
'Include: what you\'re building, who it\'s for, key features, preferred stack,',
|
|
1169
|
-
'design preferences, integrations needed, business constraints.',
|
|
1170
|
-
'',
|
|
1171
|
-
'<!-- WRITE_PROMPT_HERE -->',
|
|
1172
|
-
'I want to build a SaaS dashboard for managing hotel room bookings with real-time availability,',
|
|
1173
|
-
'a Next.js frontend, Laravel API backend, and PostgreSQL database. Target users are hotel managers.',
|
|
1174
|
-
'Key features: room calendar, booking CRUD, guest management, reporting, email notifications.',
|
|
1175
|
-
'<!-- END_PROMPT -->',
|
|
1176
|
-
'',
|
|
1177
|
-
'---',
|
|
1178
|
-
'',
|
|
1179
|
-
'## š Next Step',
|
|
1180
|
-
'',
|
|
1181
|
-
'After filling in the scope and your description, run:',
|
|
1182
|
-
'',
|
|
1183
|
-
'```bash',
|
|
1184
|
-
'imhcode plan',
|
|
1185
|
-
'```',
|
|
1186
|
-
'',
|
|
1187
|
-
'IMH-Code will invoke your configured **planning AI model** (e.g. Claude Opus, GPT-5.5)',
|
|
1188
|
-
'to generate `docs/brainstorming.md` with smart, project-specific questions and answers.',
|
|
1189
|
-
].join('\n');
|
|
1190
|
-
fs.writeFileSync(startMdPath, startMdContent, 'utf8');
|
|
1191
|
-
console.log(` Created docs/start.md (write your project here)`);
|
|
1192
|
-
}
|
|
1193
|
-
|
|
1194
|
-
const localGitignore = path.join(cwd, '.gitignore');
|
|
1195
|
-
if (!fs.existsSync(localGitignore)) {
|
|
1196
|
-
const gitignoreTemplate = path.join(packageRoot, '.gitignore.template');
|
|
1197
|
-
if (fs.existsSync(gitignoreTemplate)) {
|
|
1198
|
-
fs.copyFileSync(gitignoreTemplate, localGitignore);
|
|
1199
|
-
console.log(` Created local .gitignore`);
|
|
1200
|
-
}
|
|
1201
|
-
}
|
|
1202
|
-
|
|
1203
|
-
registerCliGlobally(imhcodeScriptPath);
|
|
1204
|
-
|
|
1205
|
-
const configPath = path.join(cwd, CONFIG_FILE);
|
|
1206
|
-
fs.writeFileSync(configPath, JSON.stringify(globalConfig, null, 2), 'utf8');
|
|
1207
|
-
console.log(`\nš¾ Configuration saved: ${configPath}`);
|
|
1208
|
-
|
|
1209
|
-
console.log(`\nā
${PLATFORM_NAME} initialized successfully!`);
|
|
1210
|
-
console.log(`ā`.repeat(60));
|
|
1211
|
-
console.log(`\nš HOW TO BUILD WITH IMH-CODE:\n`);
|
|
1212
|
-
console.log(` 1. Open docs/start.md ā Answer scope questions + write your description`);
|
|
1213
|
-
console.log(` 2. Run: imhcode plan`);
|
|
1214
|
-
console.log(` ā Your planning AI generates brainstorming.md`);
|
|
1215
|
-
console.log(` 3. Open docs/brainstorming.md ā Review/edit AI-recommended answers`);
|
|
1216
|
-
console.log(` 4. Run: imhcode plan`);
|
|
1217
|
-
console.log(` ā Your planning AI generates sprint plans with correct agent routing`);
|
|
1218
|
-
console.log(` 5. Run: imhcode execute 1 ā Sprint 1 (frontend tasks)`);
|
|
1219
|
-
console.log(` 6. Run: imhcode execute 2 ā Sprint 2 (backend tasks)`);
|
|
1220
|
-
console.log(` 7. Run: imhcode test ā Final testing + security + SEO`);
|
|
1221
|
-
console.log(` 8. Run: imhcode report ā Generate PROJECT_REPORT.md`);
|
|
1222
|
-
console.log(`\n Run "imhcode --help" for all commands.`);
|
|
1223
|
-
console.log(`ā`.repeat(60));
|
|
1224
|
-
console.log('');
|
|
1225
|
-
return;
|
|
1226
|
-
}
|
|
1227
|
-
|
|
1228
1104
|
// Create .gitignore
|
|
1229
1105
|
const localGitignore = path.join(cwd, '.gitignore');
|
|
1230
1106
|
if (!fs.existsSync(localGitignore)) {
|
|
@@ -1236,7 +1112,7 @@ async function runInit() {
|
|
|
1236
1112
|
}
|
|
1237
1113
|
|
|
1238
1114
|
registerCliGlobally(imhcodeScriptPath);
|
|
1239
|
-
ensureCavemanAndGraphify(
|
|
1115
|
+
ensureCavemanAndGraphify(false);
|
|
1240
1116
|
|
|
1241
1117
|
// āā Interactive Engine & Model Setup āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
1242
1118
|
console.log('\nš Scanning for local coding assistant CLIs...');
|
|
@@ -1298,7 +1174,7 @@ async function runInit() {
|
|
|
1298
1174
|
console.log(`ā
Default model: ${defaultModel}`);
|
|
1299
1175
|
}
|
|
1300
1176
|
|
|
1301
|
-
//
|
|
1177
|
+
// Call setupModelRouting
|
|
1302
1178
|
const modelRouting = await setupModelRouting(engines, foundEngines, isInteractive);
|
|
1303
1179
|
|
|
1304
1180
|
// Write config
|
|
@@ -1321,18 +1197,6 @@ async function runInit() {
|
|
|
1321
1197
|
fs.writeFileSync(configPath, JSON.stringify(configData, null, 2), 'utf8');
|
|
1322
1198
|
console.log(`\nš¾ Configuration saved: ${configPath}`);
|
|
1323
1199
|
|
|
1324
|
-
// Save to global config defaults as well
|
|
1325
|
-
const globalConfigData = {
|
|
1326
|
-
...configData,
|
|
1327
|
-
skills_configured: true,
|
|
1328
|
-
};
|
|
1329
|
-
try {
|
|
1330
|
-
fs.writeFileSync(globalConfigPath, JSON.stringify(globalConfigData, null, 2), 'utf8');
|
|
1331
|
-
console.log(`š¾ Global defaults saved: ${globalConfigPath}`);
|
|
1332
|
-
} catch (e) {
|
|
1333
|
-
console.warn(`ā ļø Could not save global default configuration: ${e.message}`);
|
|
1334
|
-
}
|
|
1335
|
-
|
|
1336
1200
|
// Print final guide
|
|
1337
1201
|
console.log(`\nā
${PLATFORM_NAME} initialized successfully!`);
|
|
1338
1202
|
console.log(`ā`.repeat(60));
|
|
@@ -1351,6 +1215,7 @@ async function runInit() {
|
|
|
1351
1215
|
console.log(`ā`.repeat(60));
|
|
1352
1216
|
console.log('');
|
|
1353
1217
|
}
|
|
1218
|
+
|
|
1354
1219
|
// āāā Fix 4: Model Routing Setup Wizard (Ranked Scoring Algorithm) āāāāāāāāāāāāā
|
|
1355
1220
|
|
|
1356
1221
|
/**
|
|
@@ -1365,12 +1230,11 @@ function normalizeForMatch(s) {
|
|
|
1365
1230
|
* Select the best model for a category from available engines using ranked scoring.
|
|
1366
1231
|
* Returns { engine, model } or null if nothing found.
|
|
1367
1232
|
*/
|
|
1368
|
-
function selectBestModel(
|
|
1369
|
-
const ranks = MODEL_PRIORITY_RANKS[category] || [];
|
|
1233
|
+
function selectBestModel(ranks, engines) {
|
|
1370
1234
|
for (const [preferredEngine, modelSubstring] of ranks) {
|
|
1371
1235
|
const engData = engines[preferredEngine];
|
|
1372
1236
|
if (!engData?.path || !engData.models?.length) continue;
|
|
1373
|
-
const match = engData.models.find(m => normalizeForMatch(m).includes(modelSubstring));
|
|
1237
|
+
const match = engData.models.find(m => normalizeForMatch(m).includes(normalizeForMatch(modelSubstring)));
|
|
1374
1238
|
if (match) return { engine: preferredEngine, model: match };
|
|
1375
1239
|
}
|
|
1376
1240
|
return null;
|
|
@@ -1378,17 +1242,69 @@ function selectBestModel(category, engines) {
|
|
|
1378
1242
|
|
|
1379
1243
|
async function setupModelRouting(engines, foundEngines, isInteractive) {
|
|
1380
1244
|
const categories = {
|
|
1381
|
-
frontend: {
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1245
|
+
frontend: {
|
|
1246
|
+
label: 'Frontend (UI/UX, components, animations)',
|
|
1247
|
+
note: 'Mimo v2.5 Pro ā Antigravity OPUS 4.6 ā Deepseek v4 Flash',
|
|
1248
|
+
ranks: [
|
|
1249
|
+
['mimo', 'mimo-vl-v2.5-pro'],
|
|
1250
|
+
['agy', 'Claude Opus 4.6'],
|
|
1251
|
+
['opencode', 'deepseek-v4-flash']
|
|
1252
|
+
]
|
|
1253
|
+
},
|
|
1254
|
+
backend: {
|
|
1255
|
+
label: 'Backend (APIs, database, business logic)',
|
|
1256
|
+
note: 'Deepseek v4 Pro ā Antigravity OPUS 4.6 ā Deepseek v4 Flash',
|
|
1257
|
+
ranks: [
|
|
1258
|
+
['opencode', 'deepseek-v4-pro'],
|
|
1259
|
+
['agy', 'Claude Opus 4.6'],
|
|
1260
|
+
['opencode', 'deepseek-v4-flash']
|
|
1261
|
+
]
|
|
1262
|
+
},
|
|
1263
|
+
planning: {
|
|
1264
|
+
label: 'Planning (brainstorming, sprint planning)',
|
|
1265
|
+
note: 'Claude OPUS 4.8 ā Fugu ā Deepseek v4 Flash',
|
|
1266
|
+
ranks: [
|
|
1267
|
+
['agy', 'Claude Opus 4.8'],
|
|
1268
|
+
['agy', 'Claude Opus 4.6'],
|
|
1269
|
+
['codex-fugu', 'fugu-ultra'],
|
|
1270
|
+
['codex-fugu', 'fugu'],
|
|
1271
|
+
['opencode', 'deepseek-v4-flash']
|
|
1272
|
+
]
|
|
1273
|
+
},
|
|
1274
|
+
testing: {
|
|
1275
|
+
label: 'Testing (QA, security audit, E2E)',
|
|
1276
|
+
note: 'Claude OPUS 4.8 ā Fugu ā Deepseek v4 Flash',
|
|
1277
|
+
ranks: [
|
|
1278
|
+
['agy', 'Claude Opus 4.8'],
|
|
1279
|
+
['agy', 'Claude Opus 4.6'],
|
|
1280
|
+
['codex-fugu', 'fugu-ultra'],
|
|
1281
|
+
['codex-fugu', 'fugu'],
|
|
1282
|
+
['opencode', 'deepseek-v4-flash']
|
|
1283
|
+
]
|
|
1284
|
+
},
|
|
1285
|
+
review: {
|
|
1286
|
+
label: 'Review (SEO, debugging, code review)',
|
|
1287
|
+
note: 'Claude OPUS 4.8 ā Fugu ā Deepseek v4 Flash',
|
|
1288
|
+
ranks: [
|
|
1289
|
+
['agy', 'Claude Opus 4.8'],
|
|
1290
|
+
['agy', 'Claude Opus 4.6'],
|
|
1291
|
+
['codex-fugu', 'fugu-ultra'],
|
|
1292
|
+
['codex-fugu', 'fugu'],
|
|
1293
|
+
['opencode', 'deepseek-v4-flash']
|
|
1294
|
+
]
|
|
1295
|
+
},
|
|
1296
|
+
fast: {
|
|
1297
|
+
label: 'Fast (boilerplate, config, simple tasks)',
|
|
1298
|
+
note: 'Deepseek v4 Flash',
|
|
1299
|
+
ranks: [
|
|
1300
|
+
['opencode', 'deepseek-v4-flash']
|
|
1301
|
+
]
|
|
1302
|
+
}
|
|
1387
1303
|
};
|
|
1388
1304
|
|
|
1389
1305
|
const recommended = {};
|
|
1390
|
-
for (const cat of Object.
|
|
1391
|
-
const best = selectBestModel(
|
|
1306
|
+
for (const [cat, cfg] of Object.entries(categories)) {
|
|
1307
|
+
const best = selectBestModel(cfg.ranks, engines);
|
|
1392
1308
|
if (best) {
|
|
1393
1309
|
recommended[cat] = best;
|
|
1394
1310
|
} else if (foundEngines.length > 0) {
|
|
@@ -1400,19 +1316,23 @@ async function setupModelRouting(engines, foundEngines, isInteractive) {
|
|
|
1400
1316
|
|
|
1401
1317
|
// Show recommended routing table
|
|
1402
1318
|
console.log('\n' + 'ā'.repeat(70));
|
|
1403
|
-
console.log('š§ Recommended Model Routing (ranked by
|
|
1319
|
+
console.log('š§ Recommended Model Routing (ranked by priority for each category):\n');
|
|
1404
1320
|
console.log(' Category ā Engine ā Model');
|
|
1405
1321
|
console.log(' āāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā');
|
|
1406
1322
|
for (const [cat, rec] of Object.entries(recommended)) {
|
|
1407
1323
|
const catLabel = cat.padEnd(12);
|
|
1408
1324
|
const eng = (rec.engine || '?').padEnd(13);
|
|
1409
1325
|
const mdl = rec.model || '?';
|
|
1410
|
-
const note = categories[cat]?.note || '';
|
|
1411
1326
|
console.log(` ${catLabel} ā ${eng} ā ${mdl}`);
|
|
1412
1327
|
}
|
|
1413
1328
|
console.log(' ' + 'ā'.repeat(67));
|
|
1414
|
-
console.log(`\n
|
|
1415
|
-
|
|
1329
|
+
console.log(`\n Routings:\n` +
|
|
1330
|
+
` - frontend: Mimo v2.5 Pro ā Antigravity OPUS 4.6 ā Deepseek v4 Flash\n` +
|
|
1331
|
+
` - backend: Deepseek v4 Pro ā Antigravity OPUS 4.6 ā Deepseek v4 Flash\n` +
|
|
1332
|
+
` - planning: Claude OPUS 4.8 ā Fugu ā Deepseek v4 Flash\n` +
|
|
1333
|
+
` - testing: Claude OPUS 4.8 ā Fugu ā Deepseek v4 Flash\n` +
|
|
1334
|
+
` - review: Claude OPUS 4.8 ā Fugu ā Deepseek v4 Flash\n` +
|
|
1335
|
+
` - fast: Deepseek v4 Flash`);
|
|
1416
1336
|
|
|
1417
1337
|
const routing = {};
|
|
1418
1338
|
|
|
@@ -2798,7 +2718,7 @@ function scanAssistantCLIs() {
|
|
|
2798
2718
|
}
|
|
2799
2719
|
|
|
2800
2720
|
const fallbackModels = {
|
|
2801
|
-
claude: ['claude-
|
|
2721
|
+
claude: ['claude-sonnet-5', 'claude-fable-5', 'claude-opus-4-8', 'opus', 'sonnet', 'haiku'],
|
|
2802
2722
|
opencode: ['mimo-vl-v2.5-pro', 'deepseek-v4-pro', 'deepseek-v4-flash', 'gemini-3.5-flash', 'kimi-k2.7-code', 'qwen-3-coder-480b', 'gpt-oss-120b'],
|
|
2803
2723
|
codex: ['gpt-5.5', 'gpt-5.4-mini', 'gpt-mini'],
|
|
2804
2724
|
'codex-fugu': ['fugu', 'fugu-ultra'],
|
|
@@ -3562,16 +3482,42 @@ async function runTuiCommand() {
|
|
|
3562
3482
|
const lines = [];
|
|
3563
3483
|
const rlInput = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
3564
3484
|
|
|
3485
|
+
let pasteTimeout = null;
|
|
3486
|
+
let isDone = false;
|
|
3487
|
+
|
|
3565
3488
|
await new Promise(resolve => {
|
|
3566
3489
|
rlInput.on('line', (line) => {
|
|
3567
|
-
if (
|
|
3490
|
+
if (isDone) return;
|
|
3491
|
+
|
|
3492
|
+
const trimmed = line.trim();
|
|
3493
|
+
if (trimmed === '/submit' || trimmed === '.') {
|
|
3494
|
+
if (pasteTimeout) clearTimeout(pasteTimeout);
|
|
3495
|
+
isDone = true;
|
|
3568
3496
|
resolve();
|
|
3569
3497
|
return;
|
|
3570
3498
|
}
|
|
3499
|
+
|
|
3500
|
+
if (trimmed === '') {
|
|
3501
|
+
if (pasteTimeout) clearTimeout(pasteTimeout);
|
|
3502
|
+
pasteTimeout = setTimeout(() => {
|
|
3503
|
+
isDone = true;
|
|
3504
|
+
resolve();
|
|
3505
|
+
}, 100);
|
|
3506
|
+
} else {
|
|
3507
|
+
if (pasteTimeout) {
|
|
3508
|
+
clearTimeout(pasteTimeout);
|
|
3509
|
+
pasteTimeout = null;
|
|
3510
|
+
}
|
|
3511
|
+
}
|
|
3512
|
+
|
|
3571
3513
|
lines.push(line);
|
|
3572
3514
|
});
|
|
3515
|
+
|
|
3573
3516
|
rlInput.on('close', () => {
|
|
3574
|
-
|
|
3517
|
+
if (!isDone) {
|
|
3518
|
+
isDone = true;
|
|
3519
|
+
resolve();
|
|
3520
|
+
}
|
|
3575
3521
|
});
|
|
3576
3522
|
});
|
|
3577
3523
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Import from here in CLI code and external integrations.
|
|
6
6
|
*/
|
|
7
|
-
export type { AgentManifest, AgentPermissions, AgentMemory, AgentOutput, LoadedAgent, LoadedSkill, LoadedMemoryFile,
|
|
7
|
+
export type { AgentManifest, AgentPermissions, AgentMemory, AgentOutput, LoadedAgent, LoadedSkill, LoadedMemoryFile, ExecutionResult, EngineAdapter, FailoverTarget, } from "./types";
|
|
8
8
|
export { AgentManifestSchema, validateManifest } from "./schema";
|
|
9
9
|
export { loadYaml, loadMarkdown, resolveAgentPath, loadAgent } from "./loader";
|
|
10
10
|
export { discoverAgents, loadRegistry, getAgent, resolveAgentIdAlias } from "./registry";
|
|
@@ -16,7 +16,7 @@ export { scanProjectContext, buildModificationPrompt, detectBestAgent } from "./
|
|
|
16
16
|
export { runModification } from "./modification-engine";
|
|
17
17
|
export { scanProject } from "./project-scanner";
|
|
18
18
|
export { importProject } from "./import-engine";
|
|
19
|
-
import type { LoadedAgent, ExecutionOptions, ExecutionResult } from "./types";
|
|
19
|
+
import type { LoadedAgent, ExecutionOptions, ExecutionResult, FailoverTarget } from "./types";
|
|
20
20
|
/**
|
|
21
21
|
* Maps agent IDs to task categories for intelligent model routing.
|
|
22
22
|
* Categories determine which model is used from imhcode.config.json model_routing.
|
|
@@ -39,7 +39,7 @@ export declare function runAgent(agent: LoadedAgent, task: string, options?: Exe
|
|
|
39
39
|
/**
|
|
40
40
|
* Builds the ordered array of fallback engines to attempt during execution.
|
|
41
41
|
*/
|
|
42
|
-
export declare function getFailoverQueue(agent: LoadedAgent, config: any, initialEngine: string, category: string):
|
|
42
|
+
export declare function getFailoverQueue(agent: LoadedAgent, config: any, initialEngine: string, initialModel: string, category: string): FailoverTarget[];
|
|
43
43
|
/**
|
|
44
44
|
* Resolves the model to use for a failover engine.
|
|
45
45
|
*/
|
|
@@ -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,
|
|
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;AAmC9F;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6BrD,CAAC;AAuHF;;;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+I1B;AA2DD;;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"}
|
|
@@ -96,6 +96,36 @@ const path = __importStar(require("path"));
|
|
|
96
96
|
const builder_2 = require("./builder");
|
|
97
97
|
const executor_2 = require("./executor");
|
|
98
98
|
const session_2 = require("./session");
|
|
99
|
+
/**
|
|
100
|
+
* Model routing: recommended models per category and engine.
|
|
101
|
+
* Tailored to custom priorities: Mimo/Deepseek, Claude Opus, and Fugu.
|
|
102
|
+
*/
|
|
103
|
+
const DEFAULT_MODEL_PREFERENCES = {
|
|
104
|
+
frontend: {
|
|
105
|
+
engines: ["mimo", "agy", "opencode"],
|
|
106
|
+
models: ["mimo-vl-v2.5-pro", "Claude Opus 4.6", "deepseek-v4-flash"],
|
|
107
|
+
},
|
|
108
|
+
backend: {
|
|
109
|
+
engines: ["opencode", "agy", "opencode"],
|
|
110
|
+
models: ["deepseek-v4-pro", "Claude Opus 4.6", "deepseek-v4-flash"],
|
|
111
|
+
},
|
|
112
|
+
planning: {
|
|
113
|
+
engines: ["agy", "codex-fugu", "opencode"],
|
|
114
|
+
models: ["Claude Opus 4.8", "fugu-ultra", "deepseek-v4-flash"],
|
|
115
|
+
},
|
|
116
|
+
testing: {
|
|
117
|
+
engines: ["agy", "codex-fugu", "opencode"],
|
|
118
|
+
models: ["Claude Opus 4.8", "fugu-ultra", "deepseek-v4-flash"],
|
|
119
|
+
},
|
|
120
|
+
review: {
|
|
121
|
+
engines: ["agy", "codex-fugu", "opencode"],
|
|
122
|
+
models: ["Claude Opus 4.8", "fugu-ultra", "deepseek-v4-flash"],
|
|
123
|
+
},
|
|
124
|
+
fast: {
|
|
125
|
+
engines: ["opencode"],
|
|
126
|
+
models: ["deepseek-v4-flash"],
|
|
127
|
+
},
|
|
128
|
+
};
|
|
99
129
|
// āāā Agent Category Map āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
100
130
|
/**
|
|
101
131
|
* Maps agent IDs to task categories for intelligent model routing.
|
|
@@ -131,34 +161,8 @@ exports.AGENT_CATEGORY_MAP = {
|
|
|
131
161
|
* Model routing: recommended models per category and engine.
|
|
132
162
|
* Preferences: Mimo v2.5 Pro ā frontend, DeepSeek ā backend,
|
|
133
163
|
* GPT ā testing/review, Claude ā planning, DeepSeek Flash ā fast
|
|
134
|
-
*/
|
|
135
|
-
const DEFAULT_MODEL_PREFERENCES = {
|
|
136
|
-
frontend: {
|
|
137
|
-
engines: ["mimo", "codex", "claude", "opencode"],
|
|
138
|
-
models: ["mimo-vl-v2.5-pro", "gpt-5.5", "claude-opus-4-6", "gemini-3.5-flash"],
|
|
139
|
-
},
|
|
140
|
-
backend: {
|
|
141
|
-
engines: ["opencode", "codex", "claude", "qwen"],
|
|
142
|
-
models: ["deepseek-v4-pro", "gpt-5.5", "claude-sonnet-4-5", "qwen3-coder-max"],
|
|
143
|
-
},
|
|
144
|
-
planning: {
|
|
145
|
-
engines: ["claude", "codex", "opencode"],
|
|
146
|
-
models: ["claude-opus-4-6", "gpt-5.5", "deepseek-v4-pro"],
|
|
147
|
-
},
|
|
148
|
-
testing: {
|
|
149
|
-
engines: ["codex-fugu", "codex", "claude", "opencode"],
|
|
150
|
-
models: ["fugu-ultra", "gpt-5.5", "claude-opus-4-6", "deepseek-v4-pro"],
|
|
151
|
-
},
|
|
152
|
-
review: {
|
|
153
|
-
engines: ["codex-fugu", "codex", "claude", "opencode"],
|
|
154
|
-
models: ["fugu-ultra", "gpt-5.5", "claude-sonnet-4-5", "deepseek-v4"],
|
|
155
|
-
},
|
|
156
|
-
fast: {
|
|
157
|
-
engines: ["opencode", "codex", "qwen", "claude"],
|
|
158
|
-
models: ["deepseek-v4-flash", "gpt-5.4-mini", "qwen3-coder-flash", "claude-haiku-3-5"],
|
|
159
|
-
},
|
|
160
|
-
};
|
|
161
164
|
// āāā Config Loader āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
165
|
+
|
|
162
166
|
/**
|
|
163
167
|
* Load imhcode.config.json workspace settings if it exists.
|
|
164
168
|
*/
|
|
@@ -229,7 +233,7 @@ function resolveModelForTask(agent, task, cwd, engine) {
|
|
|
229
233
|
model: routing.model || agent.manifest.default_model,
|
|
230
234
|
};
|
|
231
235
|
}
|
|
232
|
-
// 2. Find best available model from installed engines
|
|
236
|
+
// 2. Find best available model from installed engines using priority ranks
|
|
233
237
|
const prefs = DEFAULT_MODEL_PREFERENCES[effectiveCategory];
|
|
234
238
|
if (prefs && config?.available_engines) {
|
|
235
239
|
for (let i = 0; i < prefs.engines.length; i++) {
|
|
@@ -237,12 +241,12 @@ function resolveModelForTask(agent, task, cwd, engine) {
|
|
|
237
241
|
const preferredModel = prefs.models[i];
|
|
238
242
|
const engineData = config.available_engines[preferredEngine];
|
|
239
243
|
if (engineData?.models?.length > 0) {
|
|
240
|
-
// Check if preferred model is available
|
|
241
|
-
const exactMatch = engineData.models.find((m) => m.toLowerCase().includes(preferredModel.toLowerCase().replace(
|
|
244
|
+
// Check if preferred model is available (case-insensitive fuzzy match)
|
|
245
|
+
const exactMatch = engineData.models.find((m) => m.toLowerCase().replace(/[-._\s]/g, "").includes(preferredModel.toLowerCase().replace(/[-._\s]/g, "")));
|
|
242
246
|
if (exactMatch) {
|
|
243
247
|
return { engine: preferredEngine, model: exactMatch };
|
|
244
248
|
}
|
|
245
|
-
// Use
|
|
249
|
+
// Use first available model if it's the only one
|
|
246
250
|
return { engine: preferredEngine, model: engineData.models[0] };
|
|
247
251
|
}
|
|
248
252
|
}
|
|
@@ -308,7 +312,7 @@ async function runAgent(agent, task, options = {}, acceptanceCriteria) {
|
|
|
308
312
|
const complexity = detectTaskComplexity(task);
|
|
309
313
|
const effectiveCategory = complexity === "light" ? "fast" : category;
|
|
310
314
|
// 4. Build the failover queue of engines to try
|
|
311
|
-
const failoverQueue = getFailoverQueue(agent, config, resolvedEngine, effectiveCategory);
|
|
315
|
+
const failoverQueue = getFailoverQueue(agent, config, resolvedEngine, resolvedModel, effectiveCategory);
|
|
312
316
|
let currentEngineIndex = 0;
|
|
313
317
|
let currentEngine = resolvedEngine;
|
|
314
318
|
let currentModel = resolvedModel;
|
|
@@ -317,13 +321,9 @@ async function runAgent(agent, task, options = {}, acceptanceCriteria) {
|
|
|
317
321
|
let limitExhausted = false;
|
|
318
322
|
// 5. Failover Execution Loop
|
|
319
323
|
while (currentEngineIndex < failoverQueue.length) {
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
}
|
|
324
|
-
else {
|
|
325
|
-
currentModel = resolvedModel;
|
|
326
|
-
}
|
|
324
|
+
const target = failoverQueue[currentEngineIndex];
|
|
325
|
+
currentEngine = target.engine;
|
|
326
|
+
currentModel = target.model;
|
|
327
327
|
if (dryRun) {
|
|
328
328
|
// Dry-run mode: execute only the first engine without hitting a real LLM
|
|
329
329
|
const adapter = (0, executor_2.getAdapter)(false, currentEngine);
|
|
@@ -365,7 +365,7 @@ async function runAgent(agent, task, options = {}, acceptanceCriteria) {
|
|
|
365
365
|
}
|
|
366
366
|
else {
|
|
367
367
|
limitExhausted = true;
|
|
368
|
-
errors.push(`All available engines (${failoverQueue.join(", ")}) hit limits and were exhausted.`);
|
|
368
|
+
errors.push(`All available engines (${failoverQueue.map(t => `${t.engine} (${t.model})`).join(", ")}) hit limits and were exhausted.`);
|
|
369
369
|
cumulativeOutput += "\n\n[Execution aborted: all available engines hit limits]";
|
|
370
370
|
}
|
|
371
371
|
}
|
|
@@ -458,54 +458,82 @@ function getInstalledEngines(config) {
|
|
|
458
458
|
/**
|
|
459
459
|
* Builds the ordered array of fallback engines to attempt during execution.
|
|
460
460
|
*/
|
|
461
|
-
function getFailoverQueue(agent, config, initialEngine, category) {
|
|
461
|
+
function getFailoverQueue(agent, config, initialEngine, initialModel, category) {
|
|
462
462
|
const installed = getInstalledEngines(config);
|
|
463
|
-
const queue = [initialEngine];
|
|
464
|
-
|
|
463
|
+
const queue = [{ engine: initialEngine, model: initialModel }];
|
|
464
|
+
const addToQueue = (engine, model) => {
|
|
465
|
+
const cleanEng = engine.toLowerCase().trim();
|
|
466
|
+
if (!installed.includes(cleanEng))
|
|
467
|
+
return;
|
|
468
|
+
// De-duplicate same engine + model pairs
|
|
469
|
+
const exists = queue.some(t => t.engine === cleanEng && t.model === model);
|
|
470
|
+
if (!exists) {
|
|
471
|
+
queue.push({ engine: cleanEng, model });
|
|
472
|
+
}
|
|
473
|
+
};
|
|
474
|
+
// 1. Add preferred engines/models from category DEFAULT_MODEL_PREFERENCES
|
|
465
475
|
const prefs = DEFAULT_MODEL_PREFERENCES[category];
|
|
466
476
|
if (prefs) {
|
|
467
|
-
for (
|
|
468
|
-
const
|
|
469
|
-
|
|
470
|
-
|
|
477
|
+
for (let i = 0; i < prefs.engines.length; i++) {
|
|
478
|
+
const targetEng = prefs.engines[i];
|
|
479
|
+
const preferredMdl = prefs.models[i];
|
|
480
|
+
// Find the actual model name in the installed engine's models list
|
|
481
|
+
const engineData = config?.available_engines?.[targetEng];
|
|
482
|
+
if (engineData?.models?.length > 0) {
|
|
483
|
+
const exactMatch = engineData.models.find((m) => m.toLowerCase().replace(/[-._\s]/g, "").includes(preferredMdl.toLowerCase().replace(/[-._\s]/g, "")));
|
|
484
|
+
if (exactMatch) {
|
|
485
|
+
addToQueue(targetEng, exactMatch);
|
|
486
|
+
}
|
|
487
|
+
else {
|
|
488
|
+
addToQueue(targetEng, engineData.models[0]);
|
|
489
|
+
}
|
|
471
490
|
}
|
|
472
491
|
}
|
|
473
492
|
}
|
|
474
493
|
// 2. Add preferred engines from manifest
|
|
475
494
|
if (agent.manifest.preferred_engines) {
|
|
476
495
|
for (const eng of agent.manifest.preferred_engines) {
|
|
477
|
-
const
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
}
|
|
496
|
+
const engineData = config?.available_engines?.[eng];
|
|
497
|
+
const model = engineData?.models?.[0] || agent.manifest.default_model;
|
|
498
|
+
addToQueue(eng, model);
|
|
481
499
|
}
|
|
482
500
|
}
|
|
483
501
|
// 3. Add fallback engines from manifest
|
|
484
502
|
if (agent.manifest.fallback_engines) {
|
|
485
503
|
for (const eng of agent.manifest.fallback_engines) {
|
|
486
|
-
const
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
}
|
|
504
|
+
const engineData = config?.available_engines?.[eng];
|
|
505
|
+
const model = engineData?.models?.[0] || agent.manifest.default_model;
|
|
506
|
+
addToQueue(eng, model);
|
|
490
507
|
}
|
|
491
508
|
}
|
|
492
509
|
// 4. Add any other installed engines as a last resort
|
|
493
510
|
for (const eng of installed) {
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
511
|
+
const engineData = config?.available_engines?.[eng];
|
|
512
|
+
const model = engineData?.models?.[0] || "default";
|
|
513
|
+
addToQueue(eng, model);
|
|
497
514
|
}
|
|
498
515
|
// 5. Expand agy to include agy2, agy3, agy4... etc. right after agy
|
|
499
516
|
const expandedQueue = [];
|
|
500
|
-
for (const
|
|
501
|
-
if (!expandedQueue.
|
|
502
|
-
expandedQueue.push(
|
|
517
|
+
for (const target of queue) {
|
|
518
|
+
if (!expandedQueue.some(t => t.engine === target.engine && t.model === target.model)) {
|
|
519
|
+
expandedQueue.push(target);
|
|
503
520
|
}
|
|
504
|
-
if (
|
|
521
|
+
if (target.engine === "agy" || target.engine === "antigravity") {
|
|
505
522
|
for (let i = 2; i <= 10; i++) {
|
|
506
523
|
const key = `agy${i}`;
|
|
507
|
-
if (installed.includes(key)
|
|
508
|
-
|
|
524
|
+
if (installed.includes(key)) {
|
|
525
|
+
const agy2Data = config?.available_engines?.[key];
|
|
526
|
+
let model = target.model;
|
|
527
|
+
if (agy2Data?.models?.length > 0) {
|
|
528
|
+
const match = agy2Data.models.find((m) => m.toLowerCase().replace(/[-._\s]/g, "").includes(target.model.toLowerCase().replace(/[-._\s]/g, "")));
|
|
529
|
+
if (match)
|
|
530
|
+
model = match;
|
|
531
|
+
else
|
|
532
|
+
model = agy2Data.models[0];
|
|
533
|
+
}
|
|
534
|
+
if (!expandedQueue.some(t => t.engine === key && t.model === model)) {
|
|
535
|
+
expandedQueue.push({ engine: key, model });
|
|
536
|
+
}
|
|
509
537
|
}
|
|
510
538
|
}
|
|
511
539
|
}
|
|
@@ -520,21 +548,6 @@ function getModelForEngine(config, engineName, category, agent) {
|
|
|
520
548
|
if (config?.model_routing?.[category]?.engine === engineName) {
|
|
521
549
|
return config.model_routing[category].model;
|
|
522
550
|
}
|
|
523
|
-
// Check if there is a category preferred model for this engine in DEFAULT_MODEL_PREFERENCES
|
|
524
|
-
const lookupEngine = (engineName.startsWith("agy") || engineName === "antigravity") ? "agy" : engineName;
|
|
525
|
-
const prefs = DEFAULT_MODEL_PREFERENCES[category];
|
|
526
|
-
if (prefs) {
|
|
527
|
-
const engineIdx = prefs.engines.indexOf(lookupEngine);
|
|
528
|
-
if (engineIdx >= 0) {
|
|
529
|
-
const preferredMdl = prefs.models[engineIdx];
|
|
530
|
-
const engineData = config?.available_engines?.[engineName];
|
|
531
|
-
if (engineData?.models?.length > 0) {
|
|
532
|
-
const exactMatch = engineData.models.find((m) => m.toLowerCase().includes(preferredMdl.toLowerCase().replace(/-/g, "")));
|
|
533
|
-
if (exactMatch)
|
|
534
|
-
return exactMatch;
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
}
|
|
538
551
|
// Check available models in config for this engine
|
|
539
552
|
const engineData = config?.available_engines?.[engineName];
|
|
540
553
|
if (engineData?.models?.length > 0) {
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/orchestrator/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/orchestrator/types.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.2",
|
|
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": {
|
|
@@ -14,10 +14,9 @@ export type {
|
|
|
14
14
|
LoadedAgent,
|
|
15
15
|
LoadedSkill,
|
|
16
16
|
LoadedMemoryFile,
|
|
17
|
-
ExecutionOptions,
|
|
18
|
-
ExecutionContext,
|
|
19
17
|
ExecutionResult,
|
|
20
18
|
EngineAdapter,
|
|
19
|
+
FailoverTarget,
|
|
21
20
|
} from "./types";
|
|
22
21
|
|
|
23
22
|
// Schema & validation
|
|
@@ -64,7 +63,38 @@ import * as path from "path";
|
|
|
64
63
|
import { buildPrompt } from "./builder";
|
|
65
64
|
import { getAdapter } from "./executor";
|
|
66
65
|
import { saveSession } from "./session";
|
|
67
|
-
import type { LoadedAgent, ExecutionOptions, ExecutionResult } from "./types";
|
|
66
|
+
import type { LoadedAgent, ExecutionOptions, ExecutionResult, FailoverTarget } from "./types";
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Model routing: recommended models per category and engine.
|
|
70
|
+
* Tailored to custom priorities: Mimo/Deepseek, Claude Opus, and Fugu.
|
|
71
|
+
*/
|
|
72
|
+
const DEFAULT_MODEL_PREFERENCES: Record<string, { engines: string[]; models: string[] }> = {
|
|
73
|
+
frontend: {
|
|
74
|
+
engines: ["mimo", "agy", "opencode"],
|
|
75
|
+
models: ["mimo-vl-v2.5-pro", "Claude Opus 4.6", "deepseek-v4-flash"],
|
|
76
|
+
},
|
|
77
|
+
backend: {
|
|
78
|
+
engines: ["opencode", "agy", "opencode"],
|
|
79
|
+
models: ["deepseek-v4-pro", "Claude Opus 4.6", "deepseek-v4-flash"],
|
|
80
|
+
},
|
|
81
|
+
planning: {
|
|
82
|
+
engines: ["agy", "codex-fugu", "opencode"],
|
|
83
|
+
models: ["Claude Opus 4.8", "fugu-ultra", "deepseek-v4-flash"],
|
|
84
|
+
},
|
|
85
|
+
testing: {
|
|
86
|
+
engines: ["agy", "codex-fugu", "opencode"],
|
|
87
|
+
models: ["Claude Opus 4.8", "fugu-ultra", "deepseek-v4-flash"],
|
|
88
|
+
},
|
|
89
|
+
review: {
|
|
90
|
+
engines: ["agy", "codex-fugu", "opencode"],
|
|
91
|
+
models: ["Claude Opus 4.8", "fugu-ultra", "deepseek-v4-flash"],
|
|
92
|
+
},
|
|
93
|
+
fast: {
|
|
94
|
+
engines: ["opencode"],
|
|
95
|
+
models: ["deepseek-v4-flash"],
|
|
96
|
+
},
|
|
97
|
+
};
|
|
68
98
|
|
|
69
99
|
// āāā Agent Category Map āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
70
100
|
|
|
@@ -107,34 +137,6 @@ export const AGENT_CATEGORY_MAP: Record<string, string> = {
|
|
|
107
137
|
* Model routing: recommended models per category and engine.
|
|
108
138
|
* Preferences: Mimo v2.5 Pro ā frontend, DeepSeek ā backend,
|
|
109
139
|
* GPT ā testing/review, Claude ā planning, DeepSeek Flash ā fast
|
|
110
|
-
*/
|
|
111
|
-
const DEFAULT_MODEL_PREFERENCES: Record<string, { engines: string[]; models: string[] }> = {
|
|
112
|
-
frontend: {
|
|
113
|
-
engines: ["mimo", "codex", "claude", "opencode"],
|
|
114
|
-
models: ["mimo-vl-v2.5-pro", "gpt-5.5", "claude-opus-4-6", "gemini-3.5-flash"],
|
|
115
|
-
},
|
|
116
|
-
backend: {
|
|
117
|
-
engines: ["opencode", "codex", "claude", "qwen"],
|
|
118
|
-
models: ["deepseek-v4-pro", "gpt-5.5", "claude-sonnet-4-5", "qwen3-coder-max"],
|
|
119
|
-
},
|
|
120
|
-
planning: {
|
|
121
|
-
engines: ["claude", "codex", "opencode"],
|
|
122
|
-
models: ["claude-opus-4-6", "gpt-5.5", "deepseek-v4-pro"],
|
|
123
|
-
},
|
|
124
|
-
testing: {
|
|
125
|
-
engines: ["codex-fugu", "codex", "claude", "opencode"],
|
|
126
|
-
models: ["fugu-ultra", "gpt-5.5", "claude-opus-4-6", "deepseek-v4-pro"],
|
|
127
|
-
},
|
|
128
|
-
review: {
|
|
129
|
-
engines: ["codex-fugu", "codex", "claude", "opencode"],
|
|
130
|
-
models: ["fugu-ultra", "gpt-5.5", "claude-sonnet-4-5", "deepseek-v4"],
|
|
131
|
-
},
|
|
132
|
-
fast: {
|
|
133
|
-
engines: ["opencode", "codex", "qwen", "claude"],
|
|
134
|
-
models: ["deepseek-v4-flash", "gpt-5.4-mini", "qwen3-coder-flash", "claude-haiku-3-5"],
|
|
135
|
-
},
|
|
136
|
-
};
|
|
137
|
-
|
|
138
140
|
// āāā Config Loader āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
139
141
|
|
|
140
142
|
/**
|
|
@@ -218,7 +220,7 @@ function resolveModelForTask(
|
|
|
218
220
|
};
|
|
219
221
|
}
|
|
220
222
|
|
|
221
|
-
// 2. Find best available model from installed engines
|
|
223
|
+
// 2. Find best available model from installed engines using priority ranks
|
|
222
224
|
const prefs = DEFAULT_MODEL_PREFERENCES[effectiveCategory];
|
|
223
225
|
if (prefs && config?.available_engines) {
|
|
224
226
|
for (let i = 0; i < prefs.engines.length; i++) {
|
|
@@ -227,14 +229,14 @@ function resolveModelForTask(
|
|
|
227
229
|
const engineData = config.available_engines[preferredEngine];
|
|
228
230
|
|
|
229
231
|
if (engineData?.models?.length > 0) {
|
|
230
|
-
// Check if preferred model is available
|
|
232
|
+
// Check if preferred model is available (case-insensitive fuzzy match)
|
|
231
233
|
const exactMatch = engineData.models.find((m: string) =>
|
|
232
|
-
m.toLowerCase().includes(preferredModel.toLowerCase().replace(
|
|
234
|
+
m.toLowerCase().replace(/[-._\s]/g, "").includes(preferredModel.toLowerCase().replace(/[-._\s]/g, ""))
|
|
233
235
|
);
|
|
234
236
|
if (exactMatch) {
|
|
235
237
|
return { engine: preferredEngine, model: exactMatch };
|
|
236
238
|
}
|
|
237
|
-
// Use
|
|
239
|
+
// Use first available model if it's the only one
|
|
238
240
|
return { engine: preferredEngine, model: engineData.models[0] };
|
|
239
241
|
}
|
|
240
242
|
}
|
|
@@ -311,7 +313,7 @@ export async function runAgent(
|
|
|
311
313
|
const effectiveCategory = complexity === "light" ? "fast" : category;
|
|
312
314
|
|
|
313
315
|
// 4. Build the failover queue of engines to try
|
|
314
|
-
const failoverQueue = getFailoverQueue(agent, config, resolvedEngine, effectiveCategory);
|
|
316
|
+
const failoverQueue = getFailoverQueue(agent, config, resolvedEngine, resolvedModel, effectiveCategory);
|
|
315
317
|
|
|
316
318
|
let currentEngineIndex = 0;
|
|
317
319
|
let currentEngine = resolvedEngine;
|
|
@@ -322,12 +324,9 @@ export async function runAgent(
|
|
|
322
324
|
|
|
323
325
|
// 5. Failover Execution Loop
|
|
324
326
|
while (currentEngineIndex < failoverQueue.length) {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
} else {
|
|
329
|
-
currentModel = resolvedModel;
|
|
330
|
-
}
|
|
327
|
+
const target = failoverQueue[currentEngineIndex];
|
|
328
|
+
currentEngine = target.engine;
|
|
329
|
+
currentModel = target.model;
|
|
331
330
|
|
|
332
331
|
if (dryRun) {
|
|
333
332
|
// Dry-run mode: execute only the first engine without hitting a real LLM
|
|
@@ -376,7 +375,7 @@ export async function runAgent(
|
|
|
376
375
|
currentPrompt = finalPrompt + "\n" + failoverResumeContext;
|
|
377
376
|
} else {
|
|
378
377
|
limitExhausted = true;
|
|
379
|
-
errors.push(`All available engines (${failoverQueue.join(", ")}) hit limits and were exhausted.`);
|
|
378
|
+
errors.push(`All available engines (${failoverQueue.map(t => `${t.engine} (${t.model})`).join(", ")}) hit limits and were exhausted.`);
|
|
380
379
|
cumulativeOutput += "\n\n[Execution aborted: all available engines hit limits]";
|
|
381
380
|
}
|
|
382
381
|
} else {
|
|
@@ -483,18 +482,41 @@ export function getFailoverQueue(
|
|
|
483
482
|
agent: LoadedAgent,
|
|
484
483
|
config: any,
|
|
485
484
|
initialEngine: string,
|
|
485
|
+
initialModel: string,
|
|
486
486
|
category: string
|
|
487
|
-
):
|
|
487
|
+
): FailoverTarget[] {
|
|
488
488
|
const installed = getInstalledEngines(config);
|
|
489
|
-
const queue = [initialEngine];
|
|
489
|
+
const queue: FailoverTarget[] = [{ engine: initialEngine, model: initialModel }];
|
|
490
|
+
|
|
491
|
+
const addToQueue = (engine: string, model: string) => {
|
|
492
|
+
const cleanEng = engine.toLowerCase().trim();
|
|
493
|
+
if (!installed.includes(cleanEng)) return;
|
|
494
|
+
|
|
495
|
+
// De-duplicate same engine + model pairs
|
|
496
|
+
const exists = queue.some(t => t.engine === cleanEng && t.model === model);
|
|
497
|
+
if (!exists) {
|
|
498
|
+
queue.push({ engine: cleanEng, model });
|
|
499
|
+
}
|
|
500
|
+
};
|
|
490
501
|
|
|
491
|
-
// 1. Add
|
|
502
|
+
// 1. Add preferred engines/models from category DEFAULT_MODEL_PREFERENCES
|
|
492
503
|
const prefs = DEFAULT_MODEL_PREFERENCES[category];
|
|
493
504
|
if (prefs) {
|
|
494
|
-
for (
|
|
495
|
-
const
|
|
496
|
-
|
|
497
|
-
|
|
505
|
+
for (let i = 0; i < prefs.engines.length; i++) {
|
|
506
|
+
const targetEng = prefs.engines[i];
|
|
507
|
+
const preferredMdl = prefs.models[i];
|
|
508
|
+
|
|
509
|
+
// Find the actual model name in the installed engine's models list
|
|
510
|
+
const engineData = config?.available_engines?.[targetEng];
|
|
511
|
+
if (engineData?.models?.length > 0) {
|
|
512
|
+
const exactMatch = engineData.models.find((m: string) =>
|
|
513
|
+
m.toLowerCase().replace(/[-._\s]/g, "").includes(preferredMdl.toLowerCase().replace(/[-._\s]/g, ""))
|
|
514
|
+
);
|
|
515
|
+
if (exactMatch) {
|
|
516
|
+
addToQueue(targetEng, exactMatch);
|
|
517
|
+
} else {
|
|
518
|
+
addToQueue(targetEng, engineData.models[0]);
|
|
519
|
+
}
|
|
498
520
|
}
|
|
499
521
|
}
|
|
500
522
|
}
|
|
@@ -502,41 +524,50 @@ export function getFailoverQueue(
|
|
|
502
524
|
// 2. Add preferred engines from manifest
|
|
503
525
|
if (agent.manifest.preferred_engines) {
|
|
504
526
|
for (const eng of agent.manifest.preferred_engines) {
|
|
505
|
-
const
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
}
|
|
527
|
+
const engineData = config?.available_engines?.[eng];
|
|
528
|
+
const model = engineData?.models?.[0] || agent.manifest.default_model;
|
|
529
|
+
addToQueue(eng, model);
|
|
509
530
|
}
|
|
510
531
|
}
|
|
511
532
|
|
|
512
533
|
// 3. Add fallback engines from manifest
|
|
513
534
|
if (agent.manifest.fallback_engines) {
|
|
514
535
|
for (const eng of agent.manifest.fallback_engines) {
|
|
515
|
-
const
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
}
|
|
536
|
+
const engineData = config?.available_engines?.[eng];
|
|
537
|
+
const model = engineData?.models?.[0] || agent.manifest.default_model;
|
|
538
|
+
addToQueue(eng, model);
|
|
519
539
|
}
|
|
520
540
|
}
|
|
521
541
|
|
|
522
542
|
// 4. Add any other installed engines as a last resort
|
|
523
543
|
for (const eng of installed) {
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
544
|
+
const engineData = config?.available_engines?.[eng];
|
|
545
|
+
const model = engineData?.models?.[0] || "default";
|
|
546
|
+
addToQueue(eng, model);
|
|
527
547
|
}
|
|
528
548
|
|
|
529
549
|
// 5. Expand agy to include agy2, agy3, agy4... etc. right after agy
|
|
530
|
-
const expandedQueue:
|
|
531
|
-
for (const
|
|
532
|
-
if (!expandedQueue.
|
|
533
|
-
expandedQueue.push(
|
|
550
|
+
const expandedQueue: FailoverTarget[] = [];
|
|
551
|
+
for (const target of queue) {
|
|
552
|
+
if (!expandedQueue.some(t => t.engine === target.engine && t.model === target.model)) {
|
|
553
|
+
expandedQueue.push(target);
|
|
534
554
|
}
|
|
535
|
-
if (
|
|
555
|
+
if (target.engine === "agy" || target.engine === "antigravity") {
|
|
536
556
|
for (let i = 2; i <= 10; i++) {
|
|
537
557
|
const key = `agy${i}`;
|
|
538
|
-
if (installed.includes(key)
|
|
539
|
-
|
|
558
|
+
if (installed.includes(key)) {
|
|
559
|
+
const agy2Data = config?.available_engines?.[key];
|
|
560
|
+
let model = target.model;
|
|
561
|
+
if (agy2Data?.models?.length > 0) {
|
|
562
|
+
const match = agy2Data.models.find((m: string) =>
|
|
563
|
+
m.toLowerCase().replace(/[-._\s]/g, "").includes(target.model.toLowerCase().replace(/[-._\s]/g, ""))
|
|
564
|
+
);
|
|
565
|
+
if (match) model = match;
|
|
566
|
+
else model = agy2Data.models[0];
|
|
567
|
+
}
|
|
568
|
+
if (!expandedQueue.some(t => t.engine === key && t.model === model)) {
|
|
569
|
+
expandedQueue.push({ engine: key, model });
|
|
570
|
+
}
|
|
540
571
|
}
|
|
541
572
|
}
|
|
542
573
|
}
|
|
@@ -559,23 +590,6 @@ export function getModelForEngine(
|
|
|
559
590
|
return config.model_routing[category].model;
|
|
560
591
|
}
|
|
561
592
|
|
|
562
|
-
// Check if there is a category preferred model for this engine in DEFAULT_MODEL_PREFERENCES
|
|
563
|
-
const lookupEngine = (engineName.startsWith("agy") || engineName === "antigravity") ? "agy" : engineName;
|
|
564
|
-
const prefs = DEFAULT_MODEL_PREFERENCES[category];
|
|
565
|
-
if (prefs) {
|
|
566
|
-
const engineIdx = prefs.engines.indexOf(lookupEngine);
|
|
567
|
-
if (engineIdx >= 0) {
|
|
568
|
-
const preferredMdl = prefs.models[engineIdx];
|
|
569
|
-
const engineData = config?.available_engines?.[engineName];
|
|
570
|
-
if (engineData?.models?.length > 0) {
|
|
571
|
-
const exactMatch = engineData.models.find((m: string) =>
|
|
572
|
-
m.toLowerCase().includes(preferredMdl.toLowerCase().replace(/-/g, ""))
|
|
573
|
-
);
|
|
574
|
-
if (exactMatch) return exactMatch;
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
}
|
|
578
|
-
|
|
579
593
|
// Check available models in config for this engine
|
|
580
594
|
const engineData = config?.available_engines?.[engineName];
|
|
581
595
|
if (engineData?.models?.length > 0) {
|