multi-agents-cli 1.0.60 → 1.0.61
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/core/workflow/agent.js +15 -76
- package/package.json +1 -1
package/core/workflow/agent.js
CHANGED
|
@@ -170,12 +170,13 @@ const openIDE = (worktreePath) => {
|
|
|
170
170
|
};
|
|
171
171
|
|
|
172
172
|
|
|
173
|
-
|
|
173
|
+
|
|
174
|
+
// ── Open new OS terminal with Claude Code CLI ───────────────────────────────
|
|
174
175
|
|
|
175
176
|
const openTerminal = (worktreePath) => {
|
|
176
177
|
try {
|
|
177
178
|
if (process.platform === 'darwin') {
|
|
178
|
-
execSync(`osascript -e 'tell app "Terminal" to do script "cd
|
|
179
|
+
execSync(`osascript -e 'tell app "Terminal" to do script "cd \"${worktreePath}\" && claude"'`, { stdio: 'pipe' });
|
|
179
180
|
} else if (process.platform === 'win32') {
|
|
180
181
|
execSync(`start cmd /k "cd /d "${worktreePath}" && claude"`, { stdio: 'pipe' });
|
|
181
182
|
} else {
|
|
@@ -185,8 +186,7 @@ const openTerminal = (worktreePath) => {
|
|
|
185
186
|
} catch { return false; }
|
|
186
187
|
};
|
|
187
188
|
|
|
188
|
-
|
|
189
|
-
// ── Workspace tree display ────────────────────────────────────────────────────
|
|
189
|
+
// ── Workspace tree display ──────────────────────────────────────────────────
|
|
190
190
|
|
|
191
191
|
const displayWorkspaceTree = (worktreeName, worktreePath, project, agent, framework) => {
|
|
192
192
|
const fwFile = framework ? framework.toLowerCase().replace(/[^a-z0-9]/g, '-') + '.md' : null;
|
|
@@ -1228,15 +1228,6 @@ Mark each step complete. Only proceed to the task below when all are checked.
|
|
|
1228
1228
|
);
|
|
1229
1229
|
console.log(` ${green('✓')} .claude-scope written`);
|
|
1230
1230
|
|
|
1231
|
-
// ── Write scope.json ─────────────────────────────────────────────────────────
|
|
1232
|
-
|
|
1233
|
-
fs.writeFileSync(
|
|
1234
|
-
path.join(worktreePath, 'scope.json'),
|
|
1235
|
-
JSON.stringify({ agent, scope: project, branch: branchName, policy: project }, null, 2),
|
|
1236
|
-
'utf8'
|
|
1237
|
-
);
|
|
1238
|
-
console.log(` ${green('✓')} scope.json written`);
|
|
1239
|
-
|
|
1240
1231
|
// ── Generate IDE settings ─────────────────────────────────────────────────────
|
|
1241
1232
|
|
|
1242
1233
|
const excludedFolders = {
|
|
@@ -1389,7 +1380,7 @@ ${excludedUrls}
|
|
|
1389
1380
|
}
|
|
1390
1381
|
}
|
|
1391
1382
|
|
|
1392
|
-
// ── Session start selection
|
|
1383
|
+
// ── Session start selection ─────────────────────────────────────────────────
|
|
1393
1384
|
|
|
1394
1385
|
separator();
|
|
1395
1386
|
console.log(`\n${bold(' Workspace is set up and ready.')}\n`);
|
|
@@ -1398,7 +1389,7 @@ ${excludedUrls}
|
|
|
1398
1389
|
{ label: `${green('→')} IDE + new terminal ${dim('(Claude Code CLI)')} ${dim('← recommended')}` },
|
|
1399
1390
|
{ label: `${green('→')} IDE only` },
|
|
1400
1391
|
{ label: `${green('→')} Claude Code CLI only ${dim('(new terminal)')}` },
|
|
1401
|
-
{ label: `${dim('?')} I
|
|
1392
|
+
{ label: `${dim('?')} I'll continue from here, where do I start?` },
|
|
1402
1393
|
], rl);
|
|
1403
1394
|
|
|
1404
1395
|
if (sessionIdx === 0) {
|
|
@@ -1443,10 +1434,16 @@ ${excludedUrls}
|
|
|
1443
1434
|
console.log(dim(' Do NOT reuse a previous session.\n'));
|
|
1444
1435
|
console.log(` ${bold('3.')} Let the agent run autonomously\n`);
|
|
1445
1436
|
console.log(` ${bold('4.')} When done, run: ${cyan('npm run complete')} to merge into main\n`);
|
|
1437
|
+
separator();
|
|
1438
|
+
console.log('');
|
|
1439
|
+
await arrowSelect('Press enter to continue', [{ label: 'OK, got it' }], rl);
|
|
1446
1440
|
|
|
1447
1441
|
} else if (subIdx === 1) {
|
|
1448
1442
|
const framework = config.client?.framework || config.backend?.framework || '';
|
|
1449
1443
|
displayWorkspaceTree(worktreeName, worktreePath, project, agent, framework);
|
|
1444
|
+
separator();
|
|
1445
|
+
console.log('');
|
|
1446
|
+
await arrowSelect('Press enter to continue', [{ label: 'OK, got it' }], rl);
|
|
1450
1447
|
|
|
1451
1448
|
} else {
|
|
1452
1449
|
const allAgents = AGENTS[project] || [];
|
|
@@ -1461,73 +1458,15 @@ ${excludedUrls}
|
|
|
1461
1458
|
console.log(` ${icon} ${label}`);
|
|
1462
1459
|
});
|
|
1463
1460
|
console.log('');
|
|
1461
|
+
separator();
|
|
1462
|
+
console.log('');
|
|
1463
|
+
await arrowSelect('Press enter to continue', [{ label: 'OK, got it' }], rl);
|
|
1464
1464
|
}
|
|
1465
1465
|
}
|
|
1466
1466
|
|
|
1467
1467
|
separator();
|
|
1468
1468
|
console.log('');
|
|
1469
1469
|
rl.close();
|
|
1470
|
-
// ── Ready to open workspace? ──────────────────────────────────────────────────
|
|
1471
|
-
|
|
1472
|
-
separator();
|
|
1473
|
-
console.log(`\n${bold(' Workspace is set up and ready.')}`);
|
|
1474
|
-
console.log(dim(` Worktree: worktrees/${worktreeName}\n`));
|
|
1475
|
-
console.log(` ${yellow('⚠')} ${bold('Once your IDE opens and is ready, open a NEW session in Claude Code CLI or Claude Code Extension - and type go or start to initiate')}`);
|
|
1476
|
-
console.log(dim(' Do NOT reuse a previous session - the agent needs a clean context.'));
|
|
1477
|
-
|
|
1478
|
-
const openNow = await arrowConfirm('Open workspace now?', rl);
|
|
1479
|
-
|
|
1480
|
-
if (!openNow) {
|
|
1481
|
-
console.clear();
|
|
1482
|
-
separator();
|
|
1483
|
-
console.log(`\n${bold(yellow(' Workspace saved - resume when ready:'))}\n`);
|
|
1484
|
-
console.log(` ${bold('1.')} Open your IDE at:`);
|
|
1485
|
-
console.log(` ${cyan(worktreePath)}\n`);
|
|
1486
|
-
console.log(` ${bold('2.')} Open a ${bold('NEW')} session in Claude Code CLI or Claude Code Extension - and type go or start to initiate`);
|
|
1487
|
-
console.log(dim(' Do NOT reuse a previous session.\n'));
|
|
1488
|
-
console.log(` ${bold('3.')} Start the session and let the agent run.\n`);
|
|
1489
|
-
separator();
|
|
1490
|
-
console.log('');
|
|
1491
|
-
rl.close();
|
|
1492
|
-
return;
|
|
1493
|
-
}
|
|
1494
|
-
|
|
1495
|
-
// ── Open IDE ──────────────────────────────────────────────────────────────────
|
|
1496
|
-
|
|
1497
|
-
const openedIDE = openIDE(worktreePath);
|
|
1498
|
-
if (openedIDE) {
|
|
1499
|
-
console.log(` ${green('✓')} ${openedIDE} opened at worktrees/${worktreeName}`);
|
|
1500
|
-
} else {
|
|
1501
|
-
console.log(` ${yellow('!')} Could not open IDE automatically.`);
|
|
1502
|
-
console.log(dim(` Open manually at: ${worktreePath}`));
|
|
1503
|
-
}
|
|
1504
|
-
|
|
1505
|
-
// ── Launch Claude Code CLI ──────────────────────────────────────────────────
|
|
1506
|
-
|
|
1507
|
-
let claudeLaunched = false;
|
|
1508
|
-
try {
|
|
1509
|
-
const { spawn: sp } = require('child_process');
|
|
1510
|
-
const claudeProc = sp('claude', [], { cwd: worktreePath, stdio: 'inherit', detached: false });
|
|
1511
|
-
claudeProc.on('error', () => {});
|
|
1512
|
-
claudeLaunched = true;
|
|
1513
|
-
} catch {}
|
|
1514
|
-
|
|
1515
|
-
if (claudeLaunched) { rl.close(); return; }
|
|
1516
|
-
|
|
1517
|
-
// ── Next steps ────────────────────────────────────────────────────────────────
|
|
1518
|
-
|
|
1519
|
-
separator();
|
|
1520
|
-
console.log(`\n${bold(green(' Workspace ready!'))}\n`);
|
|
1521
|
-
console.log(` ${bold('1.')} Your IDE should be open at: ${cyan(`worktrees/${worktreeName}`)}`);
|
|
1522
|
-
console.log(dim(' If not, open it manually at the path above.\n'));
|
|
1523
|
-
console.log(` ${bold('2.')} ${bold(yellow('Open a NEW session in Claude Code CLI or Claude Code Extension - and type go or start to initiate'))}`);
|
|
1524
|
-
console.log(dim(' Do NOT reuse a previous session.\n'));
|
|
1525
|
-
console.log(` ${bold('3.')} Start the session and let the agent run.\n`);
|
|
1526
|
-
console.log(` ${bold('4.')} When the agent is done, run: ${cyan('npm run complete')} to merge the task into main.\n`);
|
|
1527
|
-
separator();
|
|
1528
|
-
console.log('');
|
|
1529
|
-
|
|
1530
|
-
rl.close();
|
|
1531
1470
|
};
|
|
1532
1471
|
|
|
1533
1472
|
main().catch((err) => {
|
package/package.json
CHANGED