imhcode 3.0.1 ā 3.0.3
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 +276 -165
- package/dist/orchestrator/executor.d.ts.map +1 -1
- package/dist/orchestrator/executor.js +27 -0
- package/dist/orchestrator/executor.js.map +1 -1
- package/dist/orchestrator/index.d.ts +3 -3
- package/dist/orchestrator/index.d.ts.map +1 -1
- package/dist/orchestrator/index.js +115 -33
- 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/executor.ts +29 -0
- package/src/orchestrator/index.ts +129 -37
- 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,12 +1174,16 @@ async function runInit() {
|
|
|
1298
1174
|
console.log(`ā
Default model: ${defaultModel}`);
|
|
1299
1175
|
}
|
|
1300
1176
|
|
|
1177
|
+
// Call setupModelRouting
|
|
1178
|
+
const modelRouting = await setupModelRouting(engines, foundEngines, isInteractive);
|
|
1179
|
+
|
|
1301
1180
|
// Write config
|
|
1302
1181
|
const configPath = path.join(cwd, CONFIG_FILE);
|
|
1303
1182
|
const configData = {
|
|
1304
1183
|
primary_engine: primaryEngine,
|
|
1305
1184
|
default_model: defaultModel || undefined,
|
|
1306
1185
|
testing_mode: 'fast',
|
|
1186
|
+
model_routing: modelRouting,
|
|
1307
1187
|
available_engines: {},
|
|
1308
1188
|
};
|
|
1309
1189
|
|
|
@@ -1317,36 +1197,198 @@ async function runInit() {
|
|
|
1317
1197
|
fs.writeFileSync(configPath, JSON.stringify(configData, null, 2), 'utf8');
|
|
1318
1198
|
console.log(`\nš¾ Configuration saved: ${configPath}`);
|
|
1319
1199
|
|
|
1320
|
-
// Save to global config defaults as well
|
|
1321
|
-
const globalConfigData = {
|
|
1322
|
-
...configData,
|
|
1323
|
-
skills_configured: true,
|
|
1324
|
-
};
|
|
1325
|
-
try {
|
|
1326
|
-
fs.writeFileSync(globalConfigPath, JSON.stringify(globalConfigData, null, 2), 'utf8');
|
|
1327
|
-
console.log(`š¾ Global defaults saved: ${globalConfigPath}`);
|
|
1328
|
-
} catch (e) {
|
|
1329
|
-
console.warn(`ā ļø Could not save global default configuration: ${e.message}`);
|
|
1330
|
-
}
|
|
1331
|
-
|
|
1332
1200
|
// Print final guide
|
|
1333
1201
|
console.log(`\nā
${PLATFORM_NAME} initialized successfully!`);
|
|
1334
1202
|
console.log(`ā`.repeat(60));
|
|
1335
1203
|
console.log(`\nš HOW TO BUILD WITH IMH-CODE:\n`);
|
|
1336
1204
|
console.log(` 1. Open docs/start.md ā Answer scope questions + write your description`);
|
|
1337
1205
|
console.log(` 2. Run: imhcode plan`);
|
|
1338
|
-
console.log(` ā Your planning AI generates brainstorming.md`);
|
|
1206
|
+
console.log(` ā Your planning AI (${modelRouting?.planning?.model || 'configured model'}) generates brainstorming.md`);
|
|
1339
1207
|
console.log(` 3. Open docs/brainstorming.md ā Review/edit AI-recommended answers`);
|
|
1340
1208
|
console.log(` 4. Run: imhcode plan`);
|
|
1341
1209
|
console.log(` ā Your planning AI generates sprint plans with correct agent routing`);
|
|
1342
|
-
console.log(` 5. Run: imhcode execute 1 ā Sprint 1 (frontend tasks)`);
|
|
1343
|
-
console.log(` 6. Run: imhcode execute 2 ā Sprint 2 (backend tasks)`);
|
|
1210
|
+
console.log(` 5. Run: imhcode execute 1 ā Sprint 1 (frontend tasks ā ${modelRouting?.frontend?.model || 'frontend model'})`);
|
|
1211
|
+
console.log(` 6. Run: imhcode execute 2 ā Sprint 2 (backend tasks ā ${modelRouting?.backend?.model || 'backend model'})`);
|
|
1344
1212
|
console.log(` 7. Run: imhcode test ā Final testing + security + SEO`);
|
|
1345
1213
|
console.log(` 8. Run: imhcode report ā Generate PROJECT_REPORT.md`);
|
|
1346
1214
|
console.log(`\n Run "imhcode --help" for all commands.`);
|
|
1347
1215
|
console.log(`ā`.repeat(60));
|
|
1348
1216
|
console.log('');
|
|
1349
1217
|
}
|
|
1218
|
+
|
|
1219
|
+
// āāā Fix 4: Model Routing Setup Wizard (Ranked Scoring Algorithm) āāāāāāāāāāāāā
|
|
1220
|
+
|
|
1221
|
+
/**
|
|
1222
|
+
* Normalize a model/engine string for fuzzy matching:
|
|
1223
|
+
* lowercase, remove hyphens, dots, underscores, spaces.
|
|
1224
|
+
*/
|
|
1225
|
+
function normalizeForMatch(s) {
|
|
1226
|
+
return (s || '').toLowerCase().replace(/[-._\s]/g, '');
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1229
|
+
/**
|
|
1230
|
+
* Select the best model for a category from available engines using ranked scoring.
|
|
1231
|
+
* Returns { engine, model } or null if nothing found.
|
|
1232
|
+
*/
|
|
1233
|
+
function selectBestModel(ranks, engines) {
|
|
1234
|
+
for (const [preferredEngine, modelSubstring] of ranks) {
|
|
1235
|
+
const engData = engines[preferredEngine];
|
|
1236
|
+
if (!engData?.path || !engData.models?.length) continue;
|
|
1237
|
+
const match = engData.models.find(m => normalizeForMatch(m).includes(normalizeForMatch(modelSubstring)));
|
|
1238
|
+
if (match) return { engine: preferredEngine, model: match };
|
|
1239
|
+
}
|
|
1240
|
+
return null;
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1243
|
+
async function setupModelRouting(engines, foundEngines, isInteractive) {
|
|
1244
|
+
const categories = {
|
|
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
|
+
}
|
|
1303
|
+
};
|
|
1304
|
+
|
|
1305
|
+
const recommended = {};
|
|
1306
|
+
for (const [cat, cfg] of Object.entries(categories)) {
|
|
1307
|
+
const best = selectBestModel(cfg.ranks, engines);
|
|
1308
|
+
if (best) {
|
|
1309
|
+
recommended[cat] = best;
|
|
1310
|
+
} else if (foundEngines.length > 0) {
|
|
1311
|
+
// Fallback: primary engine first model
|
|
1312
|
+
const fe = foundEngines[0];
|
|
1313
|
+
recommended[cat] = { engine: fe, model: engines[fe].models[0] || 'default' };
|
|
1314
|
+
}
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1317
|
+
// Show recommended routing table
|
|
1318
|
+
console.log('\n' + 'ā'.repeat(70));
|
|
1319
|
+
console.log('š§ Recommended Model Routing (ranked by priority for each category):\n');
|
|
1320
|
+
console.log(' Category ā Engine ā Model');
|
|
1321
|
+
console.log(' āāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā');
|
|
1322
|
+
for (const [cat, rec] of Object.entries(recommended)) {
|
|
1323
|
+
const catLabel = cat.padEnd(12);
|
|
1324
|
+
const eng = (rec.engine || '?').padEnd(13);
|
|
1325
|
+
const mdl = rec.model || '?';
|
|
1326
|
+
console.log(` ${catLabel} ā ${eng} ā ${mdl}`);
|
|
1327
|
+
}
|
|
1328
|
+
console.log(' ' + 'ā'.repeat(67));
|
|
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`);
|
|
1336
|
+
|
|
1337
|
+
const routing = {};
|
|
1338
|
+
|
|
1339
|
+
if (isInteractive) {
|
|
1340
|
+
const answer = await askQuestion('\nAccept recommended routing? [Y/n] ');
|
|
1341
|
+
if (answer.toLowerCase() === 'n' || answer.toLowerCase() === 'no') {
|
|
1342
|
+
// Let user customize each category
|
|
1343
|
+
for (const [cat, cfg] of Object.entries(categories)) {
|
|
1344
|
+
console.log(`\n Configure model for [${cat}] ā ${cfg.label}`);
|
|
1345
|
+
console.log(` Priority: ${cfg.note}`);
|
|
1346
|
+
|
|
1347
|
+
const allModels = [];
|
|
1348
|
+
for (const eng of foundEngines) {
|
|
1349
|
+
for (const m of engines[eng].models) {
|
|
1350
|
+
allModels.push({ engine: eng, model: m });
|
|
1351
|
+
}
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
if (allModels.length === 0) {
|
|
1355
|
+
routing[cat] = recommended[cat];
|
|
1356
|
+
continue;
|
|
1357
|
+
}
|
|
1358
|
+
|
|
1359
|
+
allModels.forEach((item, i) => {
|
|
1360
|
+
const rec = recommended[cat];
|
|
1361
|
+
const isRec = rec && rec.engine === item.engine && rec.model === item.model;
|
|
1362
|
+
console.log(` [${i + 1}] ${item.model} (${item.engine})${isRec ? ' ā Recommended ā
' : ''}`);
|
|
1363
|
+
});
|
|
1364
|
+
|
|
1365
|
+
let selectedIdx = allModels.findIndex(m => {
|
|
1366
|
+
const rec = recommended[cat];
|
|
1367
|
+
return rec && m.engine === rec.engine && m.model === rec.model;
|
|
1368
|
+
});
|
|
1369
|
+
if (selectedIdx < 0) selectedIdx = 0;
|
|
1370
|
+
|
|
1371
|
+
while (true) {
|
|
1372
|
+
const ans = await askQuestion(` Select model for ${cat} [1-${allModels.length}] (default: ${selectedIdx + 1}): `);
|
|
1373
|
+
if (ans === '') { routing[cat] = allModels[selectedIdx]; break; }
|
|
1374
|
+
const p = parseInt(ans, 10);
|
|
1375
|
+
if (p >= 1 && p <= allModels.length) { routing[cat] = allModels[p - 1]; break; }
|
|
1376
|
+
console.log(` ā Invalid. Enter 1ā${allModels.length}.`);
|
|
1377
|
+
}
|
|
1378
|
+
console.log(` ā
${cat}: ${routing[cat].model} (${routing[cat].engine})`);
|
|
1379
|
+
}
|
|
1380
|
+
} else {
|
|
1381
|
+
Object.assign(routing, recommended);
|
|
1382
|
+
console.log('\nā
Recommended routing accepted.');
|
|
1383
|
+
}
|
|
1384
|
+
} else {
|
|
1385
|
+
Object.assign(routing, recommended);
|
|
1386
|
+
console.log('\nā
Recommended routing applied automatically.');
|
|
1387
|
+
}
|
|
1388
|
+
|
|
1389
|
+
return routing;
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1350
1392
|
// āāā Fix 0: LLM-Powered Planning āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
1351
1393
|
|
|
1352
1394
|
/**
|
|
@@ -1512,28 +1554,40 @@ Output ONLY the Markdown content. Start with:
|
|
|
1512
1554
|
|
|
1513
1555
|
Do NOT include any preamble, explanation, or commentary outside the Markdown document.`;
|
|
1514
1556
|
|
|
1557
|
+
const brainstormPath = path.join(cwd, BRAINSTORM_MD);
|
|
1558
|
+
const mtimeBefore = fs.existsSync(brainstormPath) ? fs.statSync(brainstormPath).mtimeMs : 0;
|
|
1559
|
+
|
|
1515
1560
|
// Try LLM first (Fix 0)
|
|
1516
1561
|
const llmOutput = await invokePlanningLLM(llmPrompt, config, cwd);
|
|
1517
1562
|
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
content += `\n*When ready, run \`imhcode plan\` to generate sprint plans from your answers.*\n`;
|
|
1527
|
-
console.log(`\n ā
Brainstorming document generated by planning AI (${config?.model_routing?.planning?.model || 'LLM'})`);
|
|
1563
|
+
const fileCreatedOrModified = (() => {
|
|
1564
|
+
if (!fs.existsSync(brainstormPath)) return false;
|
|
1565
|
+
const mtimeAfter = fs.statSync(brainstormPath).mtimeMs;
|
|
1566
|
+
return mtimeAfter > mtimeBefore;
|
|
1567
|
+
})();
|
|
1568
|
+
|
|
1569
|
+
if (fileCreatedOrModified) {
|
|
1570
|
+
console.log(`\n ā
Brainstorming document created/modified directly by the planning agent.`);
|
|
1528
1571
|
} else {
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1572
|
+
let content;
|
|
1573
|
+
if (llmOutput && llmOutput.trim().length > 200) {
|
|
1574
|
+
// Ensure it starts correctly
|
|
1575
|
+
content = llmOutput.trim();
|
|
1576
|
+
if (!content.startsWith('#')) {
|
|
1577
|
+
content = `# š§ IMH-Code ā Project Brainstorming\n\n` + content;
|
|
1578
|
+
}
|
|
1579
|
+
content += `\n\n---\n\n*Generated by ${PLATFORM_NAME} planning AI ā ${new Date().toLocaleDateString()}*\n`;
|
|
1580
|
+
content += `\n*When ready, run \`imhcode plan\` to generate sprint plans from your answers.*\n`;
|
|
1581
|
+
console.log(`\n ā
Brainstorming document generated by planning AI (${config?.model_routing?.planning?.model || 'LLM'})`);
|
|
1582
|
+
} else {
|
|
1583
|
+
// Fix 3: Professional static fallback with design questions
|
|
1584
|
+
content = generateStaticBrainstorming(userPrompt, scopeHints);
|
|
1585
|
+
console.log(`\n š Brainstorming document generated (static template)`);
|
|
1586
|
+
}
|
|
1533
1587
|
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1588
|
+
fs.mkdirSync(path.join(cwd, DOCS_DIR), { recursive: true });
|
|
1589
|
+
fs.writeFileSync(brainstormPath, content, 'utf8');
|
|
1590
|
+
}
|
|
1537
1591
|
}
|
|
1538
1592
|
|
|
1539
1593
|
/**
|
|
@@ -1940,7 +1994,34 @@ Return ONLY this JSON structure (no markdown, no explanation):
|
|
|
1940
1994
|
13. If any shared assets or references are listed under "Shared Assets & References" (such as a backend folder, frontend theme components, config files, or stylesheets), you MUST generate sprint tasks that explicitly guide the agents to review, copy, integrate, or take implementation experience from these reference assets to build the new frontend/backend.
|
|
1941
1995
|
14. When designing tasks for backend/frontend scaffolding, instruct the agents to use the LATEST stable dependencies, commands, and coding styles, starting by running the official command-line initializers (like npx create-next-app@latest or composer create-project laravel/laravel) directly in the target directories to build a clean architecture structure.`;
|
|
1942
1996
|
|
|
1997
|
+
const sprintDirsBefore = fs.existsSync(path.join(cwd, DOCS_DIR))
|
|
1998
|
+
? fs.readdirSync(path.join(cwd, DOCS_DIR)).filter(f => f.startsWith('sprint-'))
|
|
1999
|
+
: [];
|
|
2000
|
+
const projectBriefMtimeBefore = fs.existsSync(path.join(cwd, 'PROJECT_BRIEF.md'))
|
|
2001
|
+
? fs.statSync(path.join(cwd, 'PROJECT_BRIEF.md')).mtimeMs
|
|
2002
|
+
: 0;
|
|
2003
|
+
|
|
1943
2004
|
const llmOutput = await invokePlanningLLM(llmPrompt, config, cwd);
|
|
2005
|
+
|
|
2006
|
+
const sprintsCreated = (() => {
|
|
2007
|
+
if (!fs.existsSync(path.join(cwd, DOCS_DIR))) return false;
|
|
2008
|
+
const dirsAfter = fs.readdirSync(path.join(cwd, DOCS_DIR)).filter(f => f.startsWith('sprint-'));
|
|
2009
|
+
if (dirsAfter.length > sprintDirsBefore.length) return true;
|
|
2010
|
+
|
|
2011
|
+
// Check PROJECT_BRIEF.md
|
|
2012
|
+
if (fs.existsSync(path.join(cwd, 'PROJECT_BRIEF.md'))) {
|
|
2013
|
+
const briefMtimeAfter = fs.statSync(path.join(cwd, 'PROJECT_BRIEF.md')).mtimeMs;
|
|
2014
|
+
if (briefMtimeAfter > projectBriefMtimeBefore) return true;
|
|
2015
|
+
}
|
|
2016
|
+
return false;
|
|
2017
|
+
})();
|
|
2018
|
+
|
|
2019
|
+
if (sprintsCreated) {
|
|
2020
|
+
const sprintCount = fs.readdirSync(path.join(cwd, DOCS_DIR)).filter(f => f.startsWith('sprint-')).length;
|
|
2021
|
+
console.log(`\n ā
Sprint plans created/modified directly by the planning agent.`);
|
|
2022
|
+
return { sprintCount };
|
|
2023
|
+
}
|
|
2024
|
+
|
|
1944
2025
|
if (!llmOutput) return null;
|
|
1945
2026
|
|
|
1946
2027
|
// Parse JSON from LLM output
|
|
@@ -3440,14 +3521,44 @@ async function runTuiCommand() {
|
|
|
3440
3521
|
const lines = [];
|
|
3441
3522
|
const rlInput = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
3442
3523
|
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3524
|
+
let pasteTimeout = null;
|
|
3525
|
+
let isDone = false;
|
|
3526
|
+
|
|
3527
|
+
await new Promise(resolve => {
|
|
3528
|
+
rlInput.on('line', (line) => {
|
|
3529
|
+
if (isDone) return;
|
|
3530
|
+
|
|
3531
|
+
const trimmed = line.trim();
|
|
3532
|
+
if (trimmed === '/submit' || trimmed === '.') {
|
|
3533
|
+
if (pasteTimeout) clearTimeout(pasteTimeout);
|
|
3534
|
+
isDone = true;
|
|
3535
|
+
resolve();
|
|
3536
|
+
return;
|
|
3537
|
+
}
|
|
3538
|
+
|
|
3539
|
+
if (trimmed === '') {
|
|
3540
|
+
if (pasteTimeout) clearTimeout(pasteTimeout);
|
|
3541
|
+
pasteTimeout = setTimeout(() => {
|
|
3542
|
+
isDone = true;
|
|
3543
|
+
resolve();
|
|
3544
|
+
}, 100);
|
|
3545
|
+
} else {
|
|
3546
|
+
if (pasteTimeout) {
|
|
3547
|
+
clearTimeout(pasteTimeout);
|
|
3548
|
+
pasteTimeout = null;
|
|
3549
|
+
}
|
|
3550
|
+
}
|
|
3551
|
+
|
|
3552
|
+
lines.push(line);
|
|
3553
|
+
});
|
|
3554
|
+
|
|
3555
|
+
rlInput.on('close', () => {
|
|
3556
|
+
if (!isDone) {
|
|
3557
|
+
isDone = true;
|
|
3558
|
+
resolve();
|
|
3559
|
+
}
|
|
3560
|
+
});
|
|
3561
|
+
});
|
|
3451
3562
|
|
|
3452
3563
|
const desc = lines.join('\n');
|
|
3453
3564
|
rlInput.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/orchestrator/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/orchestrator/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAiH7C,qBAAa,aAAc,YAAW,aAAa;IACjD,QAAQ,CAAC,IAAI,aAAa;IAEpB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAe3D;AAID,qBAAa,oBAAqB,YAAW,aAAa;IACxD,QAAQ,CAAC,IAAI,YAAY;IAEnB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAkB1D;AAID,qBAAa,kBAAmB,YAAW,aAAa;IACtD,QAAQ,CAAC,IAAI,cAAc;IAErB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAwB1D;AAID,qBAAa,eAAgB,YAAW,aAAa;IACnD,QAAQ,CAAC,IAAI,WAAW;IAElB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAmC1D;AAID,qBAAa,mBAAoB,YAAW,aAAa;IACvD,QAAQ,CAAC,IAAI,gBAAgB;IAEvB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAoC1D;AAOD,qBAAa,aAAc,YAAW,aAAa;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,GAAE,MAAc;IAI1B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAkB1D;AAOD,qBAAa,kBAAmB,YAAW,aAAa;IACtD,QAAQ,CAAC,IAAI,UAAU;IAEjB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAe1D;AAQD,qBAAa,kBAAmB,YAAW,aAAa;IACtD,QAAQ,CAAC,IAAI,UAAU;IAEjB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAgB1D;AAID,wBAAgB,UAAU,CACxB,IAAI,EAAE,OAAO,EACb,eAAe,CAAC,EAAE,MAAM,GACvB,aAAa,CAkGf"}
|
|
@@ -85,18 +85,45 @@ function runCliWithStdin(binaryPath, args, stdinInput, cliName) {
|
|
|
85
85
|
const child = (0, child_process_1.spawn)(binaryPath, args, { stdio: ["pipe", "pipe", "pipe"] });
|
|
86
86
|
let stdout = "";
|
|
87
87
|
let stderr = "";
|
|
88
|
+
let hasReceivedData = false;
|
|
89
|
+
const isTTY = process.stdout.isTTY;
|
|
90
|
+
let interval = null;
|
|
91
|
+
if (isTTY) {
|
|
92
|
+
const spinnerChars = ["ā ", "ā ", "ā ¹", "ā ø", "ā ¼", "ā “", "ā ¦", "ā §", "ā ", "ā "];
|
|
93
|
+
let spinnerIdx = 0;
|
|
94
|
+
interval = setInterval(() => {
|
|
95
|
+
if (!hasReceivedData) {
|
|
96
|
+
process.stdout.write(`\r \x1b[36m${spinnerChars[spinnerIdx]}\x1b[0m ${cliName} is processing/thinking...`);
|
|
97
|
+
spinnerIdx = (spinnerIdx + 1) % spinnerChars.length;
|
|
98
|
+
}
|
|
99
|
+
}, 100);
|
|
100
|
+
}
|
|
101
|
+
const clearSpinner = () => {
|
|
102
|
+
if (interval) {
|
|
103
|
+
clearInterval(interval);
|
|
104
|
+
interval = null;
|
|
105
|
+
}
|
|
106
|
+
if (!hasReceivedData && isTTY) {
|
|
107
|
+
process.stdout.write("\r\x1b[K"); // Clear the line
|
|
108
|
+
}
|
|
109
|
+
hasReceivedData = true;
|
|
110
|
+
};
|
|
88
111
|
child.stdout.on("data", (chunk) => {
|
|
112
|
+
clearSpinner();
|
|
89
113
|
stdout += chunk.toString();
|
|
90
114
|
process.stdout.write(chunk);
|
|
91
115
|
});
|
|
92
116
|
child.stderr.on("data", (chunk) => {
|
|
117
|
+
clearSpinner();
|
|
93
118
|
stderr += chunk.toString();
|
|
94
119
|
process.stderr.write(chunk);
|
|
95
120
|
});
|
|
96
121
|
child.on("error", (err) => {
|
|
122
|
+
clearSpinner();
|
|
97
123
|
reject(new Error(`Failed to start child process ${binaryPath}: ${err.message}`));
|
|
98
124
|
});
|
|
99
125
|
child.on("close", (code) => {
|
|
126
|
+
clearSpinner();
|
|
100
127
|
console.log(`\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā`);
|
|
101
128
|
if (code !== 0) {
|
|
102
129
|
reject(new Error(`CLI process exited with code ${code}.\n` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/orchestrator/executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/orchestrator/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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.
|
|
@@ -203,7 +233,25 @@ function resolveModelForTask(agent, task, cwd, engine) {
|
|
|
203
233
|
model: routing.model || agent.manifest.default_model,
|
|
204
234
|
};
|
|
205
235
|
}
|
|
206
|
-
// 2.
|
|
236
|
+
// 2. Find best available model from installed engines using priority ranks
|
|
237
|
+
const prefs = DEFAULT_MODEL_PREFERENCES[effectiveCategory];
|
|
238
|
+
if (prefs && config?.available_engines) {
|
|
239
|
+
for (let i = 0; i < prefs.engines.length; i++) {
|
|
240
|
+
const preferredEngine = prefs.engines[i];
|
|
241
|
+
const preferredModel = prefs.models[i];
|
|
242
|
+
const engineData = config.available_engines[preferredEngine];
|
|
243
|
+
if (engineData?.models?.length > 0) {
|
|
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, "")));
|
|
246
|
+
if (exactMatch) {
|
|
247
|
+
return { engine: preferredEngine, model: exactMatch };
|
|
248
|
+
}
|
|
249
|
+
// Use first available model if it's the only one
|
|
250
|
+
return { engine: preferredEngine, model: engineData.models[0] };
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
// 3. Fallback: use primary engine + default model
|
|
207
255
|
const primaryEngine = config?.primary_engine || engine;
|
|
208
256
|
const defaultModel = config?.default_model || agent.manifest.default_model;
|
|
209
257
|
return { engine: primaryEngine, model: defaultModel };
|
|
@@ -264,7 +312,7 @@ async function runAgent(agent, task, options = {}, acceptanceCriteria) {
|
|
|
264
312
|
const complexity = detectTaskComplexity(task);
|
|
265
313
|
const effectiveCategory = complexity === "light" ? "fast" : category;
|
|
266
314
|
// 4. Build the failover queue of engines to try
|
|
267
|
-
const failoverQueue = getFailoverQueue(agent, config, resolvedEngine, effectiveCategory);
|
|
315
|
+
const failoverQueue = getFailoverQueue(agent, config, resolvedEngine, resolvedModel, effectiveCategory);
|
|
268
316
|
let currentEngineIndex = 0;
|
|
269
317
|
let currentEngine = resolvedEngine;
|
|
270
318
|
let currentModel = resolvedModel;
|
|
@@ -273,13 +321,9 @@ async function runAgent(agent, task, options = {}, acceptanceCriteria) {
|
|
|
273
321
|
let limitExhausted = false;
|
|
274
322
|
// 5. Failover Execution Loop
|
|
275
323
|
while (currentEngineIndex < failoverQueue.length) {
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
}
|
|
280
|
-
else {
|
|
281
|
-
currentModel = resolvedModel;
|
|
282
|
-
}
|
|
324
|
+
const target = failoverQueue[currentEngineIndex];
|
|
325
|
+
currentEngine = target.engine;
|
|
326
|
+
currentModel = target.model;
|
|
283
327
|
if (dryRun) {
|
|
284
328
|
// Dry-run mode: execute only the first engine without hitting a real LLM
|
|
285
329
|
const adapter = (0, executor_2.getAdapter)(false, currentEngine);
|
|
@@ -321,7 +365,7 @@ async function runAgent(agent, task, options = {}, acceptanceCriteria) {
|
|
|
321
365
|
}
|
|
322
366
|
else {
|
|
323
367
|
limitExhausted = true;
|
|
324
|
-
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.`);
|
|
325
369
|
cumulativeOutput += "\n\n[Execution aborted: all available engines hit limits]";
|
|
326
370
|
}
|
|
327
371
|
}
|
|
@@ -414,44 +458,82 @@ function getInstalledEngines(config) {
|
|
|
414
458
|
/**
|
|
415
459
|
* Builds the ordered array of fallback engines to attempt during execution.
|
|
416
460
|
*/
|
|
417
|
-
function getFailoverQueue(agent, config, initialEngine, category) {
|
|
461
|
+
function getFailoverQueue(agent, config, initialEngine, initialModel, category) {
|
|
418
462
|
const installed = getInstalledEngines(config);
|
|
419
|
-
const queue = [initialEngine];
|
|
420
|
-
|
|
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
|
|
475
|
+
const prefs = DEFAULT_MODEL_PREFERENCES[category];
|
|
476
|
+
if (prefs) {
|
|
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
|
+
}
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
// 2. Add preferred engines from manifest
|
|
421
494
|
if (agent.manifest.preferred_engines) {
|
|
422
495
|
for (const eng of agent.manifest.preferred_engines) {
|
|
423
|
-
const
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
}
|
|
496
|
+
const engineData = config?.available_engines?.[eng];
|
|
497
|
+
const model = engineData?.models?.[0] || agent.manifest.default_model;
|
|
498
|
+
addToQueue(eng, model);
|
|
427
499
|
}
|
|
428
500
|
}
|
|
429
|
-
//
|
|
501
|
+
// 3. Add fallback engines from manifest
|
|
430
502
|
if (agent.manifest.fallback_engines) {
|
|
431
503
|
for (const eng of agent.manifest.fallback_engines) {
|
|
432
|
-
const
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
}
|
|
504
|
+
const engineData = config?.available_engines?.[eng];
|
|
505
|
+
const model = engineData?.models?.[0] || agent.manifest.default_model;
|
|
506
|
+
addToQueue(eng, model);
|
|
436
507
|
}
|
|
437
508
|
}
|
|
438
|
-
//
|
|
509
|
+
// 4. Add any other installed engines as a last resort
|
|
439
510
|
for (const eng of installed) {
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
511
|
+
const engineData = config?.available_engines?.[eng];
|
|
512
|
+
const model = engineData?.models?.[0] || "default";
|
|
513
|
+
addToQueue(eng, model);
|
|
443
514
|
}
|
|
444
|
-
//
|
|
515
|
+
// 5. Expand agy to include agy2, agy3, agy4... etc. right after agy
|
|
445
516
|
const expandedQueue = [];
|
|
446
|
-
for (const
|
|
447
|
-
if (!expandedQueue.
|
|
448
|
-
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);
|
|
449
520
|
}
|
|
450
|
-
if (
|
|
521
|
+
if (target.engine === "agy" || target.engine === "antigravity") {
|
|
451
522
|
for (let i = 2; i <= 10; i++) {
|
|
452
523
|
const key = `agy${i}`;
|
|
453
|
-
if (installed.includes(key)
|
|
454
|
-
|
|
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
|
+
}
|
|
455
537
|
}
|
|
456
538
|
}
|
|
457
539
|
}
|
|
@@ -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.3",
|
|
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": {
|
|
@@ -62,22 +62,51 @@ function runCliWithStdin(
|
|
|
62
62
|
|
|
63
63
|
let stdout = "";
|
|
64
64
|
let stderr = "";
|
|
65
|
+
let hasReceivedData = false;
|
|
66
|
+
const isTTY = process.stdout.isTTY;
|
|
67
|
+
let interval: NodeJS.Timeout | null = null;
|
|
68
|
+
|
|
69
|
+
if (isTTY) {
|
|
70
|
+
const spinnerChars = ["ā ", "ā ", "ā ¹", "ā ø", "ā ¼", "ā “", "ā ¦", "ā §", "ā ", "ā "];
|
|
71
|
+
let spinnerIdx = 0;
|
|
72
|
+
interval = setInterval(() => {
|
|
73
|
+
if (!hasReceivedData) {
|
|
74
|
+
process.stdout.write(`\r \x1b[36m${spinnerChars[spinnerIdx]}\x1b[0m ${cliName} is processing/thinking...`);
|
|
75
|
+
spinnerIdx = (spinnerIdx + 1) % spinnerChars.length;
|
|
76
|
+
}
|
|
77
|
+
}, 100);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const clearSpinner = () => {
|
|
81
|
+
if (interval) {
|
|
82
|
+
clearInterval(interval);
|
|
83
|
+
interval = null;
|
|
84
|
+
}
|
|
85
|
+
if (!hasReceivedData && isTTY) {
|
|
86
|
+
process.stdout.write("\r\x1b[K"); // Clear the line
|
|
87
|
+
}
|
|
88
|
+
hasReceivedData = true;
|
|
89
|
+
};
|
|
65
90
|
|
|
66
91
|
child.stdout.on("data", (chunk) => {
|
|
92
|
+
clearSpinner();
|
|
67
93
|
stdout += chunk.toString();
|
|
68
94
|
process.stdout.write(chunk);
|
|
69
95
|
});
|
|
70
96
|
|
|
71
97
|
child.stderr.on("data", (chunk) => {
|
|
98
|
+
clearSpinner();
|
|
72
99
|
stderr += chunk.toString();
|
|
73
100
|
process.stderr.write(chunk);
|
|
74
101
|
});
|
|
75
102
|
|
|
76
103
|
child.on("error", (err) => {
|
|
104
|
+
clearSpinner();
|
|
77
105
|
reject(new Error(`Failed to start child process ${binaryPath}: ${err.message}`));
|
|
78
106
|
});
|
|
79
107
|
|
|
80
108
|
child.on("close", (code) => {
|
|
109
|
+
clearSpinner();
|
|
81
110
|
console.log(`\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā`);
|
|
82
111
|
if (code !== 0) {
|
|
83
112
|
reject(
|
|
@@ -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
|
|
|
@@ -190,7 +220,29 @@ function resolveModelForTask(
|
|
|
190
220
|
};
|
|
191
221
|
}
|
|
192
222
|
|
|
193
|
-
// 2.
|
|
223
|
+
// 2. Find best available model from installed engines using priority ranks
|
|
224
|
+
const prefs = DEFAULT_MODEL_PREFERENCES[effectiveCategory];
|
|
225
|
+
if (prefs && config?.available_engines) {
|
|
226
|
+
for (let i = 0; i < prefs.engines.length; i++) {
|
|
227
|
+
const preferredEngine = prefs.engines[i];
|
|
228
|
+
const preferredModel = prefs.models[i];
|
|
229
|
+
const engineData = config.available_engines[preferredEngine];
|
|
230
|
+
|
|
231
|
+
if (engineData?.models?.length > 0) {
|
|
232
|
+
// Check if preferred model is available (case-insensitive fuzzy match)
|
|
233
|
+
const exactMatch = engineData.models.find((m: string) =>
|
|
234
|
+
m.toLowerCase().replace(/[-._\s]/g, "").includes(preferredModel.toLowerCase().replace(/[-._\s]/g, ""))
|
|
235
|
+
);
|
|
236
|
+
if (exactMatch) {
|
|
237
|
+
return { engine: preferredEngine, model: exactMatch };
|
|
238
|
+
}
|
|
239
|
+
// Use first available model if it's the only one
|
|
240
|
+
return { engine: preferredEngine, model: engineData.models[0] };
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// 3. Fallback: use primary engine + default model
|
|
194
246
|
const primaryEngine = config?.primary_engine || engine;
|
|
195
247
|
const defaultModel = config?.default_model || agent.manifest.default_model;
|
|
196
248
|
return { engine: primaryEngine, model: defaultModel };
|
|
@@ -261,7 +313,7 @@ export async function runAgent(
|
|
|
261
313
|
const effectiveCategory = complexity === "light" ? "fast" : category;
|
|
262
314
|
|
|
263
315
|
// 4. Build the failover queue of engines to try
|
|
264
|
-
const failoverQueue = getFailoverQueue(agent, config, resolvedEngine, effectiveCategory);
|
|
316
|
+
const failoverQueue = getFailoverQueue(agent, config, resolvedEngine, resolvedModel, effectiveCategory);
|
|
265
317
|
|
|
266
318
|
let currentEngineIndex = 0;
|
|
267
319
|
let currentEngine = resolvedEngine;
|
|
@@ -272,12 +324,9 @@ export async function runAgent(
|
|
|
272
324
|
|
|
273
325
|
// 5. Failover Execution Loop
|
|
274
326
|
while (currentEngineIndex < failoverQueue.length) {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
} else {
|
|
279
|
-
currentModel = resolvedModel;
|
|
280
|
-
}
|
|
327
|
+
const target = failoverQueue[currentEngineIndex];
|
|
328
|
+
currentEngine = target.engine;
|
|
329
|
+
currentModel = target.model;
|
|
281
330
|
|
|
282
331
|
if (dryRun) {
|
|
283
332
|
// Dry-run mode: execute only the first engine without hitting a real LLM
|
|
@@ -326,7 +375,7 @@ export async function runAgent(
|
|
|
326
375
|
currentPrompt = finalPrompt + "\n" + failoverResumeContext;
|
|
327
376
|
} else {
|
|
328
377
|
limitExhausted = true;
|
|
329
|
-
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.`);
|
|
330
379
|
cumulativeOutput += "\n\n[Execution aborted: all available engines hit limits]";
|
|
331
380
|
}
|
|
332
381
|
} else {
|
|
@@ -433,49 +482,92 @@ export function getFailoverQueue(
|
|
|
433
482
|
agent: LoadedAgent,
|
|
434
483
|
config: any,
|
|
435
484
|
initialEngine: string,
|
|
436
|
-
|
|
437
|
-
|
|
485
|
+
initialModel: string,
|
|
486
|
+
category: string
|
|
487
|
+
): FailoverTarget[] {
|
|
438
488
|
const installed = getInstalledEngines(config);
|
|
439
|
-
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
|
+
};
|
|
440
501
|
|
|
441
|
-
// 1. Add preferred engines from
|
|
502
|
+
// 1. Add preferred engines/models from category DEFAULT_MODEL_PREFERENCES
|
|
503
|
+
const prefs = DEFAULT_MODEL_PREFERENCES[category];
|
|
504
|
+
if (prefs) {
|
|
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
|
+
}
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
// 2. Add preferred engines from manifest
|
|
442
525
|
if (agent.manifest.preferred_engines) {
|
|
443
526
|
for (const eng of agent.manifest.preferred_engines) {
|
|
444
|
-
const
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
}
|
|
527
|
+
const engineData = config?.available_engines?.[eng];
|
|
528
|
+
const model = engineData?.models?.[0] || agent.manifest.default_model;
|
|
529
|
+
addToQueue(eng, model);
|
|
448
530
|
}
|
|
449
531
|
}
|
|
450
532
|
|
|
451
|
-
//
|
|
533
|
+
// 3. Add fallback engines from manifest
|
|
452
534
|
if (agent.manifest.fallback_engines) {
|
|
453
535
|
for (const eng of agent.manifest.fallback_engines) {
|
|
454
|
-
const
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
}
|
|
536
|
+
const engineData = config?.available_engines?.[eng];
|
|
537
|
+
const model = engineData?.models?.[0] || agent.manifest.default_model;
|
|
538
|
+
addToQueue(eng, model);
|
|
458
539
|
}
|
|
459
540
|
}
|
|
460
541
|
|
|
461
|
-
//
|
|
542
|
+
// 4. Add any other installed engines as a last resort
|
|
462
543
|
for (const eng of installed) {
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
544
|
+
const engineData = config?.available_engines?.[eng];
|
|
545
|
+
const model = engineData?.models?.[0] || "default";
|
|
546
|
+
addToQueue(eng, model);
|
|
466
547
|
}
|
|
467
548
|
|
|
468
|
-
//
|
|
469
|
-
const expandedQueue:
|
|
470
|
-
for (const
|
|
471
|
-
if (!expandedQueue.
|
|
472
|
-
expandedQueue.push(
|
|
549
|
+
// 5. Expand agy to include agy2, agy3, agy4... etc. right after agy
|
|
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);
|
|
473
554
|
}
|
|
474
|
-
if (
|
|
555
|
+
if (target.engine === "agy" || target.engine === "antigravity") {
|
|
475
556
|
for (let i = 2; i <= 10; i++) {
|
|
476
557
|
const key = `agy${i}`;
|
|
477
|
-
if (installed.includes(key)
|
|
478
|
-
|
|
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
|
+
}
|
|
479
571
|
}
|
|
480
572
|
}
|
|
481
573
|
}
|