@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.
Files changed (162) hide show
  1. package/README.md +240 -0
  2. package/bin/orka.js +19 -0
  3. package/dist/core/ClaudeOrka.d.ts +111 -0
  4. package/dist/core/ClaudeOrka.d.ts.map +1 -0
  5. package/dist/core/ClaudeOrka.js +160 -0
  6. package/dist/core/ClaudeOrka.js.map +1 -0
  7. package/dist/core/SessionManager.d.ts +82 -0
  8. package/dist/core/SessionManager.d.ts.map +1 -0
  9. package/dist/core/SessionManager.js +519 -0
  10. package/dist/core/SessionManager.js.map +1 -0
  11. package/dist/core/StateManager.d.ts +92 -0
  12. package/dist/core/StateManager.d.ts.map +1 -0
  13. package/dist/core/StateManager.js +307 -0
  14. package/dist/core/StateManager.js.map +1 -0
  15. package/dist/core/index.d.ts +4 -0
  16. package/dist/core/index.d.ts.map +1 -0
  17. package/dist/core/index.js +20 -0
  18. package/dist/core/index.js.map +1 -0
  19. package/dist/electron/main/ipc-handlers.d.ts +5 -0
  20. package/dist/electron/main/ipc-handlers.d.ts.map +1 -0
  21. package/dist/electron/main/ipc-handlers.js +169 -0
  22. package/dist/electron/main/ipc-handlers.js.map +1 -0
  23. package/dist/electron/main/main.d.ts +5 -0
  24. package/dist/electron/main/main.d.ts.map +1 -0
  25. package/dist/electron/main/main.js +66 -0
  26. package/dist/electron/main/main.js.map +1 -0
  27. package/dist/electron/preload/preload.d.ts +25 -0
  28. package/dist/electron/preload/preload.d.ts.map +1 -0
  29. package/dist/electron/preload/preload.js +31 -0
  30. package/dist/electron/preload/preload.js.map +1 -0
  31. package/dist/electron/renderer/app.js +808 -0
  32. package/dist/electron/renderer/index.html +189 -0
  33. package/dist/electron/renderer/styles.css +736 -0
  34. package/dist/index.d.ts +9 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +18 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/models/Fork.d.ts +26 -0
  39. package/dist/models/Fork.d.ts.map +1 -0
  40. package/dist/models/Fork.js +3 -0
  41. package/dist/models/Fork.js.map +1 -0
  42. package/dist/models/Session.d.ts +38 -0
  43. package/dist/models/Session.d.ts.map +1 -0
  44. package/dist/models/Session.js +3 -0
  45. package/dist/models/Session.js.map +1 -0
  46. package/dist/models/State.d.ts +24 -0
  47. package/dist/models/State.d.ts.map +1 -0
  48. package/dist/models/State.js +3 -0
  49. package/dist/models/State.js.map +1 -0
  50. package/dist/models/index.d.ts +4 -0
  51. package/dist/models/index.d.ts.map +1 -0
  52. package/dist/models/index.js +20 -0
  53. package/dist/models/index.js.map +1 -0
  54. package/dist/src/cli/commands/doctor.d.ts +3 -0
  55. package/dist/src/cli/commands/doctor.d.ts.map +1 -0
  56. package/dist/src/cli/commands/doctor.js +266 -0
  57. package/dist/src/cli/commands/doctor.js.map +1 -0
  58. package/dist/src/cli/commands/fork.d.ts +3 -0
  59. package/dist/src/cli/commands/fork.d.ts.map +1 -0
  60. package/dist/src/cli/commands/fork.js +136 -0
  61. package/dist/src/cli/commands/fork.js.map +1 -0
  62. package/dist/src/cli/commands/init.d.ts +3 -0
  63. package/dist/src/cli/commands/init.d.ts.map +1 -0
  64. package/dist/src/cli/commands/init.js +22 -0
  65. package/dist/src/cli/commands/init.js.map +1 -0
  66. package/dist/src/cli/commands/merge.d.ts +3 -0
  67. package/dist/src/cli/commands/merge.d.ts.map +1 -0
  68. package/dist/src/cli/commands/merge.js +84 -0
  69. package/dist/src/cli/commands/merge.js.map +1 -0
  70. package/dist/src/cli/commands/prepare.d.ts +3 -0
  71. package/dist/src/cli/commands/prepare.d.ts.map +1 -0
  72. package/dist/src/cli/commands/prepare.js +154 -0
  73. package/dist/src/cli/commands/prepare.js.map +1 -0
  74. package/dist/src/cli/commands/session.d.ts +3 -0
  75. package/dist/src/cli/commands/session.d.ts.map +1 -0
  76. package/dist/src/cli/commands/session.js +166 -0
  77. package/dist/src/cli/commands/session.js.map +1 -0
  78. package/dist/src/cli/commands/status.d.ts +3 -0
  79. package/dist/src/cli/commands/status.d.ts.map +1 -0
  80. package/dist/src/cli/commands/status.js +28 -0
  81. package/dist/src/cli/commands/status.js.map +1 -0
  82. package/dist/src/cli/index.d.ts +3 -0
  83. package/dist/src/cli/index.d.ts.map +1 -0
  84. package/dist/src/cli/index.js +25 -0
  85. package/dist/src/cli/index.js.map +1 -0
  86. package/dist/src/cli/utils/errors.d.ts +24 -0
  87. package/dist/src/cli/utils/errors.d.ts.map +1 -0
  88. package/dist/src/cli/utils/errors.js +57 -0
  89. package/dist/src/cli/utils/errors.js.map +1 -0
  90. package/dist/src/cli/utils/output.d.ts +59 -0
  91. package/dist/src/cli/utils/output.d.ts.map +1 -0
  92. package/dist/src/cli/utils/output.js +222 -0
  93. package/dist/src/cli/utils/output.js.map +1 -0
  94. package/dist/src/core/ClaudeOrka.d.ts +158 -0
  95. package/dist/src/core/ClaudeOrka.d.ts.map +1 -0
  96. package/dist/src/core/ClaudeOrka.js +264 -0
  97. package/dist/src/core/ClaudeOrka.js.map +1 -0
  98. package/dist/src/core/SessionManager.d.ts +84 -0
  99. package/dist/src/core/SessionManager.d.ts.map +1 -0
  100. package/dist/src/core/SessionManager.js +501 -0
  101. package/dist/src/core/SessionManager.js.map +1 -0
  102. package/dist/src/core/StateManager.d.ts +108 -0
  103. package/dist/src/core/StateManager.d.ts.map +1 -0
  104. package/dist/src/core/StateManager.js +317 -0
  105. package/dist/src/core/StateManager.js.map +1 -0
  106. package/dist/src/core/index.d.ts +4 -0
  107. package/dist/src/core/index.d.ts.map +1 -0
  108. package/dist/src/core/index.js +4 -0
  109. package/dist/src/core/index.js.map +1 -0
  110. package/dist/src/index.d.ts +9 -0
  111. package/dist/src/index.d.ts.map +1 -0
  112. package/dist/src/index.js +10 -0
  113. package/dist/src/index.js.map +1 -0
  114. package/dist/src/models/Fork.d.ts +24 -0
  115. package/dist/src/models/Fork.d.ts.map +1 -0
  116. package/dist/src/models/Fork.js +2 -0
  117. package/dist/src/models/Fork.js.map +1 -0
  118. package/dist/src/models/Session.d.ts +36 -0
  119. package/dist/src/models/Session.d.ts.map +1 -0
  120. package/dist/src/models/Session.js +2 -0
  121. package/dist/src/models/Session.js.map +1 -0
  122. package/dist/src/models/State.d.ts +24 -0
  123. package/dist/src/models/State.d.ts.map +1 -0
  124. package/dist/src/models/State.js +2 -0
  125. package/dist/src/models/State.js.map +1 -0
  126. package/dist/src/models/Summary.d.ts +68 -0
  127. package/dist/src/models/Summary.d.ts.map +1 -0
  128. package/dist/src/models/Summary.js +2 -0
  129. package/dist/src/models/Summary.js.map +1 -0
  130. package/dist/src/models/index.d.ts +5 -0
  131. package/dist/src/models/index.d.ts.map +1 -0
  132. package/dist/src/models/index.js +5 -0
  133. package/dist/src/models/index.js.map +1 -0
  134. package/dist/src/utils/claude-history.d.ts +34 -0
  135. package/dist/src/utils/claude-history.d.ts.map +1 -0
  136. package/dist/src/utils/claude-history.js +82 -0
  137. package/dist/src/utils/claude-history.js.map +1 -0
  138. package/dist/src/utils/index.d.ts +4 -0
  139. package/dist/src/utils/index.d.ts.map +1 -0
  140. package/dist/src/utils/index.js +4 -0
  141. package/dist/src/utils/index.js.map +1 -0
  142. package/dist/src/utils/logger.d.ts +20 -0
  143. package/dist/src/utils/logger.d.ts.map +1 -0
  144. package/dist/src/utils/logger.js +38 -0
  145. package/dist/src/utils/logger.js.map +1 -0
  146. package/dist/src/utils/tmux.d.ts +89 -0
  147. package/dist/src/utils/tmux.d.ts.map +1 -0
  148. package/dist/src/utils/tmux.js +299 -0
  149. package/dist/src/utils/tmux.js.map +1 -0
  150. package/dist/utils/index.d.ts +3 -0
  151. package/dist/utils/index.d.ts.map +1 -0
  152. package/dist/utils/index.js +19 -0
  153. package/dist/utils/index.js.map +1 -0
  154. package/dist/utils/logger.d.ts +20 -0
  155. package/dist/utils/logger.d.ts.map +1 -0
  156. package/dist/utils/logger.js +41 -0
  157. package/dist/utils/logger.js.map +1 -0
  158. package/dist/utils/tmux.d.ts +77 -0
  159. package/dist/utils/tmux.d.ts.map +1 -0
  160. package/dist/utils/tmux.js +270 -0
  161. package/dist/utils/tmux.js.map +1 -0
  162. 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,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function mergeCommand(program: Command): void;
3
+ //# sourceMappingURL=merge.d.ts.map
@@ -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,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function prepareCommand(program: Command): void;
3
+ //# sourceMappingURL=prepare.d.ts.map
@@ -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,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function sessionCommand(program: Command): void;
3
+ //# sourceMappingURL=session.d.ts.map
@@ -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":"AACA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAErF,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAA;IAEhF,iBAAiB;IACjB,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,eAAe,EAAE,6BAA6B,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC9B,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,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAA;YAElD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;YAEnE,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;YAEnC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YAC1B,MAAM,CAAC,OAAO,EAAE,CAAA;YAChB,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;YACnE,MAAM,CAAC,IAAI,CAAC,sCAAsC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAA;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,gBAAgB;IAChB,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,uBAAuB,EAAE,kCAAkC,CAAC;SACnE,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,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;YACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YAEjD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACvB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;gBAC5B,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,cAAc;IACd,OAAO;SACJ,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,qBAAqB,CAAC;SAClC,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;YACjC,mBAAmB,CAAC,WAAW,CAAC,CAAA;YAChC,iBAAiB,CAAC,SAAS,CAAC,CAAA;YAE5B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;YACxC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;YAEvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YAEhD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAA;gBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBAEvB,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;oBAC7B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;wBACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,iBAAiB;IACjB,OAAO;SACJ,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,eAAe,EAAE,6BAA6B,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;YACjC,mBAAmB,CAAC,WAAW,CAAC,CAAA;YAChC,iBAAiB,CAAC,SAAS,CAAC,CAAA;YAE5B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;YACxC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;YAEvB,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAA;YAElD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;YAE5E,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;YAEnC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;YAC9B,MAAM,CAAC,OAAO,EAAE,CAAA;YAChB,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;YAC9D,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAA;YAErE,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAA;gBAC7E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,OAAO,EAAE,CAAA;oBAChB,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;oBACjC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;wBAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,gBAAgB;IAChB,OAAO;SACJ,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;YACjC,mBAAmB,CAAC,WAAW,CAAC,CAAA;YAChC,iBAAiB,CAAC,SAAS,CAAC,CAAA;YAE5B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;YACxC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;YAEvB,MAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAA;YAEjD,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;YAElC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;YAElC,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;YACpE,MAAM,CAAC,IAAI,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAA;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,iBAAiB;IACjB,OAAO;SACJ,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;YACjC,mBAAmB,CAAC,WAAW,CAAC,CAAA;YAChC,iBAAiB,CAAC,SAAS,CAAC,CAAA;YAE5B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;YACxC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;YAEvB,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAA;YAElD,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;YAEnC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;YAEnC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function statusCommand(program: Command): void;
3
+ //# sourceMappingURL=status.d.ts.map
@@ -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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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"}