@enruana/claude-orka 0.1.0
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/README.md +240 -0
- package/bin/orka.js +19 -0
- package/dist/core/ClaudeOrka.d.ts +111 -0
- package/dist/core/ClaudeOrka.d.ts.map +1 -0
- package/dist/core/ClaudeOrka.js +160 -0
- package/dist/core/ClaudeOrka.js.map +1 -0
- package/dist/core/SessionManager.d.ts +82 -0
- package/dist/core/SessionManager.d.ts.map +1 -0
- package/dist/core/SessionManager.js +519 -0
- package/dist/core/SessionManager.js.map +1 -0
- package/dist/core/StateManager.d.ts +92 -0
- package/dist/core/StateManager.d.ts.map +1 -0
- package/dist/core/StateManager.js +307 -0
- package/dist/core/StateManager.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +20 -0
- package/dist/core/index.js.map +1 -0
- package/dist/electron/main/ipc-handlers.d.ts +5 -0
- package/dist/electron/main/ipc-handlers.d.ts.map +1 -0
- package/dist/electron/main/ipc-handlers.js +169 -0
- package/dist/electron/main/ipc-handlers.js.map +1 -0
- package/dist/electron/main/main.d.ts +5 -0
- package/dist/electron/main/main.d.ts.map +1 -0
- package/dist/electron/main/main.js +66 -0
- package/dist/electron/main/main.js.map +1 -0
- package/dist/electron/preload/preload.d.ts +25 -0
- package/dist/electron/preload/preload.d.ts.map +1 -0
- package/dist/electron/preload/preload.js +31 -0
- package/dist/electron/preload/preload.js.map +1 -0
- package/dist/electron/renderer/app.js +808 -0
- package/dist/electron/renderer/index.html +189 -0
- package/dist/electron/renderer/styles.css +736 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/models/Fork.d.ts +26 -0
- package/dist/models/Fork.d.ts.map +1 -0
- package/dist/models/Fork.js +3 -0
- package/dist/models/Fork.js.map +1 -0
- package/dist/models/Session.d.ts +38 -0
- package/dist/models/Session.d.ts.map +1 -0
- package/dist/models/Session.js +3 -0
- package/dist/models/Session.js.map +1 -0
- package/dist/models/State.d.ts +24 -0
- package/dist/models/State.d.ts.map +1 -0
- package/dist/models/State.js +3 -0
- package/dist/models/State.js.map +1 -0
- package/dist/models/index.d.ts +4 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +20 -0
- package/dist/models/index.js.map +1 -0
- package/dist/src/cli/commands/doctor.d.ts +3 -0
- package/dist/src/cli/commands/doctor.d.ts.map +1 -0
- package/dist/src/cli/commands/doctor.js +266 -0
- package/dist/src/cli/commands/doctor.js.map +1 -0
- package/dist/src/cli/commands/fork.d.ts +3 -0
- package/dist/src/cli/commands/fork.d.ts.map +1 -0
- package/dist/src/cli/commands/fork.js +136 -0
- package/dist/src/cli/commands/fork.js.map +1 -0
- package/dist/src/cli/commands/init.d.ts +3 -0
- package/dist/src/cli/commands/init.d.ts.map +1 -0
- package/dist/src/cli/commands/init.js +22 -0
- package/dist/src/cli/commands/init.js.map +1 -0
- package/dist/src/cli/commands/merge.d.ts +3 -0
- package/dist/src/cli/commands/merge.d.ts.map +1 -0
- package/dist/src/cli/commands/merge.js +84 -0
- package/dist/src/cli/commands/merge.js.map +1 -0
- package/dist/src/cli/commands/prepare.d.ts +3 -0
- package/dist/src/cli/commands/prepare.d.ts.map +1 -0
- package/dist/src/cli/commands/prepare.js +154 -0
- package/dist/src/cli/commands/prepare.js.map +1 -0
- package/dist/src/cli/commands/session.d.ts +3 -0
- package/dist/src/cli/commands/session.d.ts.map +1 -0
- package/dist/src/cli/commands/session.js +166 -0
- package/dist/src/cli/commands/session.js.map +1 -0
- package/dist/src/cli/commands/status.d.ts +3 -0
- package/dist/src/cli/commands/status.d.ts.map +1 -0
- package/dist/src/cli/commands/status.js +28 -0
- package/dist/src/cli/commands/status.js.map +1 -0
- package/dist/src/cli/index.d.ts +3 -0
- package/dist/src/cli/index.d.ts.map +1 -0
- package/dist/src/cli/index.js +25 -0
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cli/utils/errors.d.ts +24 -0
- package/dist/src/cli/utils/errors.d.ts.map +1 -0
- package/dist/src/cli/utils/errors.js +57 -0
- package/dist/src/cli/utils/errors.js.map +1 -0
- package/dist/src/cli/utils/output.d.ts +59 -0
- package/dist/src/cli/utils/output.d.ts.map +1 -0
- package/dist/src/cli/utils/output.js +222 -0
- package/dist/src/cli/utils/output.js.map +1 -0
- package/dist/src/core/ClaudeOrka.d.ts +158 -0
- package/dist/src/core/ClaudeOrka.d.ts.map +1 -0
- package/dist/src/core/ClaudeOrka.js +264 -0
- package/dist/src/core/ClaudeOrka.js.map +1 -0
- package/dist/src/core/SessionManager.d.ts +84 -0
- package/dist/src/core/SessionManager.d.ts.map +1 -0
- package/dist/src/core/SessionManager.js +501 -0
- package/dist/src/core/SessionManager.js.map +1 -0
- package/dist/src/core/StateManager.d.ts +108 -0
- package/dist/src/core/StateManager.d.ts.map +1 -0
- package/dist/src/core/StateManager.js +317 -0
- package/dist/src/core/StateManager.js.map +1 -0
- package/dist/src/core/index.d.ts +4 -0
- package/dist/src/core/index.d.ts.map +1 -0
- package/dist/src/core/index.js +4 -0
- package/dist/src/core/index.js.map +1 -0
- package/dist/src/index.d.ts +9 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +10 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/models/Fork.d.ts +24 -0
- package/dist/src/models/Fork.d.ts.map +1 -0
- package/dist/src/models/Fork.js +2 -0
- package/dist/src/models/Fork.js.map +1 -0
- package/dist/src/models/Session.d.ts +36 -0
- package/dist/src/models/Session.d.ts.map +1 -0
- package/dist/src/models/Session.js +2 -0
- package/dist/src/models/Session.js.map +1 -0
- package/dist/src/models/State.d.ts +24 -0
- package/dist/src/models/State.d.ts.map +1 -0
- package/dist/src/models/State.js +2 -0
- package/dist/src/models/State.js.map +1 -0
- package/dist/src/models/Summary.d.ts +68 -0
- package/dist/src/models/Summary.d.ts.map +1 -0
- package/dist/src/models/Summary.js +2 -0
- package/dist/src/models/Summary.js.map +1 -0
- package/dist/src/models/index.d.ts +5 -0
- package/dist/src/models/index.d.ts.map +1 -0
- package/dist/src/models/index.js +5 -0
- package/dist/src/models/index.js.map +1 -0
- package/dist/src/utils/claude-history.d.ts +34 -0
- package/dist/src/utils/claude-history.d.ts.map +1 -0
- package/dist/src/utils/claude-history.js +82 -0
- package/dist/src/utils/claude-history.js.map +1 -0
- package/dist/src/utils/index.d.ts +4 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +4 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/logger.d.ts +20 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +38 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/tmux.d.ts +89 -0
- package/dist/src/utils/tmux.d.ts.map +1 -0
- package/dist/src/utils/tmux.js +299 -0
- package/dist/src/utils/tmux.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +19 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +20 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +41 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/tmux.d.ts +77 -0
- package/dist/utils/tmux.d.ts.map +1 -0
- package/dist/utils/tmux.js +270 -0
- package/dist/utils/tmux.js.map +1 -0
- package/package.json +110 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ClaudeOrka } from '../../core/ClaudeOrka';
|
|
2
|
+
import { Output } from '../utils/output';
|
|
3
|
+
import { handleError } from '../utils/errors';
|
|
4
|
+
export function initCommand(program) {
|
|
5
|
+
program
|
|
6
|
+
.command('init')
|
|
7
|
+
.description('Initialize Claude-Orka in the current project')
|
|
8
|
+
.action(async () => {
|
|
9
|
+
try {
|
|
10
|
+
const projectPath = process.cwd();
|
|
11
|
+
Output.info(`Initializing Claude-Orka in: ${projectPath}`);
|
|
12
|
+
const orka = new ClaudeOrka(projectPath);
|
|
13
|
+
await orka.initialize();
|
|
14
|
+
Output.success('Claude-Orka initialized successfully!');
|
|
15
|
+
Output.info('You can now create sessions with: orka session create');
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
handleError(error);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/cli/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;YAEjC,MAAM,CAAC,IAAI,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAA;YAE1D,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;YACxC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;YAEvB,MAAM,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAA;YACvD,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,QA8F5C"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import ora from 'ora';
|
|
2
|
+
import { ClaudeOrka } from '../../core/ClaudeOrka';
|
|
3
|
+
import { Output } from '../utils/output';
|
|
4
|
+
import { handleError, validateInitialized, validateSessionId, validateForkId } from '../utils/errors';
|
|
5
|
+
export function mergeCommand(program) {
|
|
6
|
+
const merge = program.command('merge').description('Merge and export operations');
|
|
7
|
+
// Generate export
|
|
8
|
+
merge
|
|
9
|
+
.command('export <session-id> <fork-id>')
|
|
10
|
+
.description('Generate export summary for a fork')
|
|
11
|
+
.action(async (sessionId, forkId) => {
|
|
12
|
+
try {
|
|
13
|
+
const projectPath = process.cwd();
|
|
14
|
+
validateInitialized(projectPath);
|
|
15
|
+
validateSessionId(sessionId);
|
|
16
|
+
validateForkId(forkId);
|
|
17
|
+
const orka = new ClaudeOrka(projectPath);
|
|
18
|
+
await orka.initialize();
|
|
19
|
+
Output.info('Generating export summary...');
|
|
20
|
+
Output.warn('This will send a prompt to Claude to generate a summary.');
|
|
21
|
+
Output.warn('Wait for Claude to finish before running the merge command.');
|
|
22
|
+
const exportPath = await orka.generateForkExport(sessionId, forkId);
|
|
23
|
+
Output.success('Export prompt sent to Claude!');
|
|
24
|
+
Output.info(`Export will be saved to: ${exportPath}`);
|
|
25
|
+
Output.newline();
|
|
26
|
+
Output.info('Next steps:');
|
|
27
|
+
Output.info(' 1. Wait for Claude to generate and save the summary (~15-30 seconds)');
|
|
28
|
+
Output.info(' 2. Run: orka merge do ' + sessionId + ' ' + forkId);
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
handleError(error);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
// Merge fork to main
|
|
35
|
+
merge
|
|
36
|
+
.command('do <session-id> <fork-id>')
|
|
37
|
+
.description('Merge a fork to main (requires export first)')
|
|
38
|
+
.action(async (sessionId, forkId) => {
|
|
39
|
+
try {
|
|
40
|
+
const projectPath = process.cwd();
|
|
41
|
+
validateInitialized(projectPath);
|
|
42
|
+
validateSessionId(sessionId);
|
|
43
|
+
validateForkId(forkId);
|
|
44
|
+
const orka = new ClaudeOrka(projectPath);
|
|
45
|
+
await orka.initialize();
|
|
46
|
+
const spinner = ora('Merging fork to main...').start();
|
|
47
|
+
await orka.merge(sessionId, forkId);
|
|
48
|
+
spinner.succeed('Fork merged to main!');
|
|
49
|
+
Output.info('The fork context has been sent to the main conversation.');
|
|
50
|
+
Output.info('Claude in main now has access to the fork exploration.');
|
|
51
|
+
Output.warn('Fork has been closed and marked as merged.');
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
handleError(error);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
// Generate export and merge (combined)
|
|
58
|
+
merge
|
|
59
|
+
.command('auto <session-id> <fork-id>')
|
|
60
|
+
.description('Generate export and merge automatically')
|
|
61
|
+
.option('-w, --wait <ms>', 'Wait time in milliseconds for Claude to complete export', '15000')
|
|
62
|
+
.action(async (sessionId, forkId, options) => {
|
|
63
|
+
try {
|
|
64
|
+
const projectPath = process.cwd();
|
|
65
|
+
validateInitialized(projectPath);
|
|
66
|
+
validateSessionId(sessionId);
|
|
67
|
+
validateForkId(forkId);
|
|
68
|
+
const orka = new ClaudeOrka(projectPath);
|
|
69
|
+
await orka.initialize();
|
|
70
|
+
const waitTime = parseInt(options.wait);
|
|
71
|
+
Output.info('Starting automatic export and merge...');
|
|
72
|
+
const spinner = ora('Generating export summary...').start();
|
|
73
|
+
await orka.generateExportAndMerge(sessionId, forkId, waitTime);
|
|
74
|
+
spinner.succeed('Fork merged to main!');
|
|
75
|
+
Output.info('The fork context has been sent to the main conversation.');
|
|
76
|
+
Output.info('Claude in main now has access to the fork exploration.');
|
|
77
|
+
Output.warn('Fork has been closed and marked as merged.');
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
handleError(error);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../../src/cli/commands/merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/prepare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAenC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QA8C9C"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import execa from 'execa';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import { Output } from '../utils/output';
|
|
5
|
+
import { handleError } from '../utils/errors';
|
|
6
|
+
export function prepareCommand(program) {
|
|
7
|
+
program
|
|
8
|
+
.command('prepare')
|
|
9
|
+
.description('Install and configure system dependencies')
|
|
10
|
+
.option('-y, --yes', 'Skip confirmation prompts')
|
|
11
|
+
.action(async (options) => {
|
|
12
|
+
try {
|
|
13
|
+
console.log(chalk.bold.cyan('\n🔧 Claude-Orka Preparation\n'));
|
|
14
|
+
console.log('This will help you install required dependencies:\n');
|
|
15
|
+
console.log(' • tmux (terminal multiplexer)');
|
|
16
|
+
console.log(' • Claude CLI (if needed)\n');
|
|
17
|
+
if (!options.yes) {
|
|
18
|
+
const readline = require('readline').createInterface({
|
|
19
|
+
input: process.stdin,
|
|
20
|
+
output: process.stdout,
|
|
21
|
+
});
|
|
22
|
+
const answer = await new Promise((resolve) => {
|
|
23
|
+
readline.question('Continue? (y/n): ', resolve);
|
|
24
|
+
});
|
|
25
|
+
readline.close();
|
|
26
|
+
if (answer.toLowerCase() !== 'y') {
|
|
27
|
+
Output.warn('Installation cancelled');
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Detect system
|
|
32
|
+
const system = await detectSystem();
|
|
33
|
+
console.log(chalk.gray(`\nDetected: ${system.platform}`));
|
|
34
|
+
// Install tmux
|
|
35
|
+
await installTmux(system);
|
|
36
|
+
// Check Claude CLI
|
|
37
|
+
await checkClaudeCLI();
|
|
38
|
+
// Final verification
|
|
39
|
+
console.log(chalk.bold.green('\n✓ Preparation complete!\n'));
|
|
40
|
+
console.log('Run ' + chalk.cyan('orka doctor') + ' to verify everything is working.');
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
handleError(error);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
async function detectSystem() {
|
|
48
|
+
const platform = process.platform;
|
|
49
|
+
const info = { platform };
|
|
50
|
+
if (platform === 'darwin') {
|
|
51
|
+
// macOS - check for Homebrew
|
|
52
|
+
try {
|
|
53
|
+
await execa('which', ['brew']);
|
|
54
|
+
info.hasHomebrew = true;
|
|
55
|
+
info.packageManager = 'brew';
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
info.hasHomebrew = false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else if (platform === 'linux') {
|
|
62
|
+
// Linux - check for apt or yum
|
|
63
|
+
try {
|
|
64
|
+
await execa('which', ['apt-get']);
|
|
65
|
+
info.hasApt = true;
|
|
66
|
+
info.packageManager = 'apt';
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
try {
|
|
70
|
+
await execa('which', ['yum']);
|
|
71
|
+
info.hasYum = true;
|
|
72
|
+
info.packageManager = 'yum';
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// No known package manager
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return info;
|
|
80
|
+
}
|
|
81
|
+
async function installTmux(system) {
|
|
82
|
+
console.log(chalk.bold('\n📦 Installing tmux...\n'));
|
|
83
|
+
// Check if already installed
|
|
84
|
+
try {
|
|
85
|
+
await execa('which', ['tmux']);
|
|
86
|
+
const { stdout } = await execa('tmux', ['-V']);
|
|
87
|
+
Output.success(`tmux is already installed: ${stdout}`);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// Not installed, continue
|
|
92
|
+
}
|
|
93
|
+
const spinner = ora('Installing tmux...').start();
|
|
94
|
+
try {
|
|
95
|
+
if (system.platform === 'darwin') {
|
|
96
|
+
if (!system.hasHomebrew) {
|
|
97
|
+
spinner.fail('Homebrew is not installed');
|
|
98
|
+
console.log(chalk.yellow('\nPlease install Homebrew first:'));
|
|
99
|
+
console.log(chalk.cyan('/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"'));
|
|
100
|
+
console.log('\nThen run: ' + chalk.cyan('brew install tmux'));
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
await execa('brew', ['install', 'tmux']);
|
|
104
|
+
spinner.succeed('tmux installed via Homebrew');
|
|
105
|
+
}
|
|
106
|
+
else if (system.platform === 'linux') {
|
|
107
|
+
if (system.hasApt) {
|
|
108
|
+
// Debian/Ubuntu
|
|
109
|
+
await execa('sudo', ['apt-get', 'update']);
|
|
110
|
+
await execa('sudo', ['apt-get', 'install', '-y', 'tmux']);
|
|
111
|
+
spinner.succeed('tmux installed via apt');
|
|
112
|
+
}
|
|
113
|
+
else if (system.hasYum) {
|
|
114
|
+
// RedHat/CentOS
|
|
115
|
+
await execa('sudo', ['yum', 'install', '-y', 'tmux']);
|
|
116
|
+
spinner.succeed('tmux installed via yum');
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
spinner.fail('Unknown package manager');
|
|
120
|
+
console.log(chalk.yellow('\nPlease install tmux manually:'));
|
|
121
|
+
console.log(chalk.cyan(' https://github.com/tmux/tmux/wiki/Installing'));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
spinner.fail(`Unsupported platform: ${system.platform}`);
|
|
126
|
+
console.log(chalk.yellow('\nPlease install tmux manually:'));
|
|
127
|
+
console.log(chalk.cyan(' https://github.com/tmux/tmux/wiki/Installing'));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
spinner.fail('Failed to install tmux');
|
|
132
|
+
console.log(chalk.red(`\nError: ${error.message}`));
|
|
133
|
+
console.log(chalk.yellow('\nPlease install tmux manually:'));
|
|
134
|
+
console.log(chalk.cyan(' macOS: brew install tmux'));
|
|
135
|
+
console.log(chalk.cyan(' Ubuntu: sudo apt-get install tmux'));
|
|
136
|
+
console.log(chalk.cyan(' CentOS: sudo yum install tmux'));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
async function checkClaudeCLI() {
|
|
140
|
+
console.log(chalk.bold('\n🤖 Checking Claude CLI...\n'));
|
|
141
|
+
try {
|
|
142
|
+
const { stdout } = await execa('claude', ['--version']);
|
|
143
|
+
Output.success(`Claude CLI is installed: ${stdout}`);
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
Output.warn('Claude CLI is not installed');
|
|
147
|
+
console.log(chalk.yellow('\nClaude CLI is required for Claude-Orka to work.'));
|
|
148
|
+
console.log(chalk.cyan('\nInstallation options:'));
|
|
149
|
+
console.log(' 1. Visit: https://claude.ai/download');
|
|
150
|
+
console.log(' 2. Or use npm: npm install -g @anthropic-ai/claude-cli');
|
|
151
|
+
console.log(chalk.gray('\nNote: You may need to restart your terminal after installation.'));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=prepare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../../src/cli/commands/prepare.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QA2L9C"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import ora from 'ora';
|
|
2
|
+
import { ClaudeOrka } from '../../core/ClaudeOrka';
|
|
3
|
+
import { Output } from '../utils/output';
|
|
4
|
+
import { handleError, validateInitialized, validateSessionId } from '../utils/errors';
|
|
5
|
+
export function sessionCommand(program) {
|
|
6
|
+
const session = program.command('session').description('Manage Claude sessions');
|
|
7
|
+
// Create session
|
|
8
|
+
session
|
|
9
|
+
.command('create [name]')
|
|
10
|
+
.description('Create a new Claude session')
|
|
11
|
+
.option('--no-terminal', 'Do not open terminal window')
|
|
12
|
+
.action(async (name, options) => {
|
|
13
|
+
try {
|
|
14
|
+
const projectPath = process.cwd();
|
|
15
|
+
validateInitialized(projectPath);
|
|
16
|
+
const orka = new ClaudeOrka(projectPath);
|
|
17
|
+
await orka.initialize();
|
|
18
|
+
const spinner = ora('Creating session...').start();
|
|
19
|
+
const newSession = await orka.createSession(name, options.terminal);
|
|
20
|
+
spinner.succeed('Session created!');
|
|
21
|
+
Output.session(newSession);
|
|
22
|
+
Output.newline();
|
|
23
|
+
Output.info(`You can now interact with Claude in the tmux window.`);
|
|
24
|
+
Output.info(`To create a fork: orka fork create ${newSession.id}`);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
handleError(error);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
// List sessions
|
|
31
|
+
session
|
|
32
|
+
.command('list')
|
|
33
|
+
.description('List all sessions')
|
|
34
|
+
.option('-s, --status <status>', 'Filter by status (active, saved)')
|
|
35
|
+
.option('-j, --json', 'Output as JSON')
|
|
36
|
+
.action(async (options) => {
|
|
37
|
+
try {
|
|
38
|
+
const projectPath = process.cwd();
|
|
39
|
+
validateInitialized(projectPath);
|
|
40
|
+
const orka = new ClaudeOrka(projectPath);
|
|
41
|
+
await orka.initialize();
|
|
42
|
+
const filters = options.status ? { status: options.status } : undefined;
|
|
43
|
+
const sessions = await orka.listSessions(filters);
|
|
44
|
+
if (options.json) {
|
|
45
|
+
Output.json(sessions);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
Output.header('📋 Sessions');
|
|
49
|
+
Output.sessionsTable(sessions);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
handleError(error);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
// Get session
|
|
57
|
+
session
|
|
58
|
+
.command('get <session-id>')
|
|
59
|
+
.description('Get session details')
|
|
60
|
+
.option('-j, --json', 'Output as JSON')
|
|
61
|
+
.action(async (sessionId, options) => {
|
|
62
|
+
try {
|
|
63
|
+
const projectPath = process.cwd();
|
|
64
|
+
validateInitialized(projectPath);
|
|
65
|
+
validateSessionId(sessionId);
|
|
66
|
+
const orka = new ClaudeOrka(projectPath);
|
|
67
|
+
await orka.initialize();
|
|
68
|
+
const session = await orka.getSession(sessionId);
|
|
69
|
+
if (!session) {
|
|
70
|
+
Output.error(`Session not found: ${sessionId}`);
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
if (options.json) {
|
|
74
|
+
Output.json(session);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
Output.session(session);
|
|
78
|
+
if (session.forks.length > 0) {
|
|
79
|
+
Output.section('\n🌿 Forks:');
|
|
80
|
+
for (const fork of session.forks) {
|
|
81
|
+
Output.fork(fork);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
handleError(error);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
// Resume session
|
|
91
|
+
session
|
|
92
|
+
.command('resume <session-id>')
|
|
93
|
+
.description('Resume a saved session')
|
|
94
|
+
.option('--no-terminal', 'Do not open terminal window')
|
|
95
|
+
.action(async (sessionId, options) => {
|
|
96
|
+
try {
|
|
97
|
+
const projectPath = process.cwd();
|
|
98
|
+
validateInitialized(projectPath);
|
|
99
|
+
validateSessionId(sessionId);
|
|
100
|
+
const orka = new ClaudeOrka(projectPath);
|
|
101
|
+
await orka.initialize();
|
|
102
|
+
const spinner = ora('Resuming session...').start();
|
|
103
|
+
const resumedSession = await orka.resumeSession(sessionId, options.terminal);
|
|
104
|
+
spinner.succeed('Session resumed!');
|
|
105
|
+
Output.session(resumedSession);
|
|
106
|
+
Output.newline();
|
|
107
|
+
Output.info('Session and all saved forks have been restored.');
|
|
108
|
+
Output.info('Claude will remember the context of all conversations.');
|
|
109
|
+
if (resumedSession.forks.length > 0) {
|
|
110
|
+
const activeForks = resumedSession.forks.filter((f) => f.status === 'active');
|
|
111
|
+
if (activeForks.length > 0) {
|
|
112
|
+
Output.newline();
|
|
113
|
+
Output.section('Restored forks:');
|
|
114
|
+
for (const fork of activeForks) {
|
|
115
|
+
Output.fork(fork);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
handleError(error);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
// Close session
|
|
125
|
+
session
|
|
126
|
+
.command('close <session-id>')
|
|
127
|
+
.description('Close a session (saves it for later)')
|
|
128
|
+
.action(async (sessionId) => {
|
|
129
|
+
try {
|
|
130
|
+
const projectPath = process.cwd();
|
|
131
|
+
validateInitialized(projectPath);
|
|
132
|
+
validateSessionId(sessionId);
|
|
133
|
+
const orka = new ClaudeOrka(projectPath);
|
|
134
|
+
await orka.initialize();
|
|
135
|
+
const spinner = ora('Closing session...').start();
|
|
136
|
+
await orka.closeSession(sessionId);
|
|
137
|
+
spinner.succeed('Session closed!');
|
|
138
|
+
Output.info('Session has been saved. You can resume it later with:');
|
|
139
|
+
Output.info(` orka session resume ${sessionId}`);
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
handleError(error);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
// Delete session
|
|
146
|
+
session
|
|
147
|
+
.command('delete <session-id>')
|
|
148
|
+
.description('Permanently delete a session')
|
|
149
|
+
.action(async (sessionId) => {
|
|
150
|
+
try {
|
|
151
|
+
const projectPath = process.cwd();
|
|
152
|
+
validateInitialized(projectPath);
|
|
153
|
+
validateSessionId(sessionId);
|
|
154
|
+
const orka = new ClaudeOrka(projectPath);
|
|
155
|
+
await orka.initialize();
|
|
156
|
+
const spinner = ora('Deleting session...').start();
|
|
157
|
+
await orka.deleteSession(sessionId);
|
|
158
|
+
spinner.succeed('Session deleted!');
|
|
159
|
+
Output.warn('Session has been permanently deleted.');
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
handleError(error);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/cli/commands/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,QAwB7C"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ClaudeOrka } from '../../core/ClaudeOrka';
|
|
2
|
+
import { Output } from '../utils/output';
|
|
3
|
+
import { handleError, validateInitialized } from '../utils/errors';
|
|
4
|
+
export function statusCommand(program) {
|
|
5
|
+
program
|
|
6
|
+
.command('status')
|
|
7
|
+
.description('Show project status and all sessions')
|
|
8
|
+
.option('-j, --json', 'Output as JSON')
|
|
9
|
+
.action(async (options) => {
|
|
10
|
+
try {
|
|
11
|
+
const projectPath = process.cwd();
|
|
12
|
+
validateInitialized(projectPath);
|
|
13
|
+
const orka = new ClaudeOrka(projectPath);
|
|
14
|
+
await orka.initialize();
|
|
15
|
+
const summary = await orka.getProjectSummary();
|
|
16
|
+
if (options.json) {
|
|
17
|
+
Output.json(summary);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
Output.projectSummary(summary);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
handleError(error);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/cli/commands/status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAElE,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;YACjC,mBAAmB,CAAC,WAAW,CAAC,CAAA;YAEhC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;YACxC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;YAEvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;YAE9C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import { initCommand } from './commands/init';
|
|
4
|
+
import { statusCommand } from './commands/status';
|
|
5
|
+
import { sessionCommand } from './commands/session';
|
|
6
|
+
import { forkCommand } from './commands/fork';
|
|
7
|
+
import { mergeCommand } from './commands/merge';
|
|
8
|
+
import { doctorCommand } from './commands/doctor';
|
|
9
|
+
import { prepareCommand } from './commands/prepare';
|
|
10
|
+
const program = new Command();
|
|
11
|
+
program
|
|
12
|
+
.name('orka')
|
|
13
|
+
.description('Claude-Orka: Orchestrate Claude Code sessions with tmux')
|
|
14
|
+
.version('1.0.0');
|
|
15
|
+
// Register commands
|
|
16
|
+
prepareCommand(program);
|
|
17
|
+
initCommand(program);
|
|
18
|
+
doctorCommand(program);
|
|
19
|
+
statusCommand(program);
|
|
20
|
+
sessionCommand(program);
|
|
21
|
+
forkCommand(program);
|
|
22
|
+
mergeCommand(program);
|
|
23
|
+
// Parse arguments
|
|
24
|
+
program.parse();
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,yDAAyD,CAAC;KACtE,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,oBAAoB;AACpB,cAAc,CAAC,OAAO,CAAC,CAAA;AACvB,WAAW,CAAC,OAAO,CAAC,CAAA;AACpB,aAAa,CAAC,OAAO,CAAC,CAAA;AACtB,aAAa,CAAC,OAAO,CAAC,CAAA;AACtB,cAAc,CAAC,OAAO,CAAC,CAAA;AACvB,WAAW,CAAC,OAAO,CAAC,CAAA;AACpB,YAAY,CAAC,OAAO,CAAC,CAAA;AAErB,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Error Handler
|
|
3
|
+
*/
|
|
4
|
+
export declare class CLIError extends Error {
|
|
5
|
+
exitCode: number;
|
|
6
|
+
constructor(message: string, exitCode?: number);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Handle CLI errors
|
|
10
|
+
*/
|
|
11
|
+
export declare function handleError(error: unknown): never;
|
|
12
|
+
/**
|
|
13
|
+
* Validate session ID format
|
|
14
|
+
*/
|
|
15
|
+
export declare function validateSessionId(sessionId: string): void;
|
|
16
|
+
/**
|
|
17
|
+
* Validate fork ID format
|
|
18
|
+
*/
|
|
19
|
+
export declare function validateForkId(forkId: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Validate project is initialized
|
|
22
|
+
*/
|
|
23
|
+
export declare function validateInitialized(projectPath: string): void;
|
|
24
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/cli/utils/errors.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAGxB,QAAQ,EAAE,MAAM;gBADvB,OAAO,EAAE,MAAM,EACR,QAAQ,GAAE,MAAU;CAK9B;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAcjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAIzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAInD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAS7D"}
|