@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
package/README.md
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# Claude-Orka 🎭
|
|
2
|
+
|
|
3
|
+
> SDK and CLI for orchestrating Claude Code sessions with tmux - Branch management for AI conversations
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@enruana/claude-orka)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
## What is Claude-Orka?
|
|
9
|
+
|
|
10
|
+
Claude-Orka is a powerful SDK and CLI tool that enables you to:
|
|
11
|
+
|
|
12
|
+
- 🎯 **Orchestrate multiple Claude Code sessions** using tmux
|
|
13
|
+
- 🌿 **Create conversation forks** to explore different approaches
|
|
14
|
+
- 🔀 **Merge forks back to main** with context preservation
|
|
15
|
+
- 💾 **Save and resume sessions** with full context
|
|
16
|
+
- 📊 **Manage session state** across your projects
|
|
17
|
+
|
|
18
|
+
Perfect for complex development workflows where you need to explore multiple solutions in parallel!
|
|
19
|
+
|
|
20
|
+
## Installation
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install -g @enruana/claude-orka
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Prerequisites
|
|
27
|
+
|
|
28
|
+
- Node.js >= 18.0.0
|
|
29
|
+
- [tmux](https://github.com/tmux/tmux) - Terminal multiplexer
|
|
30
|
+
- [Claude CLI](https://claude.ai/download) - Claude Code CLI
|
|
31
|
+
|
|
32
|
+
**Quick setup (automatic):**
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Install dependencies automatically
|
|
36
|
+
orka prepare
|
|
37
|
+
|
|
38
|
+
# Verify installation
|
|
39
|
+
orka doctor
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Manual setup:**
|
|
43
|
+
- macOS: `brew install tmux`
|
|
44
|
+
- Ubuntu: `sudo apt-get install tmux`
|
|
45
|
+
- Claude CLI: Download from [claude.ai](https://claude.ai/download)
|
|
46
|
+
|
|
47
|
+
## Quick Start
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# 1. Install dependencies (if needed)
|
|
51
|
+
orka prepare
|
|
52
|
+
|
|
53
|
+
# 2. Initialize in your project
|
|
54
|
+
orka init
|
|
55
|
+
|
|
56
|
+
# 3. Create a new session
|
|
57
|
+
orka session create "Implement Feature X"
|
|
58
|
+
|
|
59
|
+
# 4. Create a fork to explore an alternative
|
|
60
|
+
orka fork create <session-id> "Try Alternative Approach"
|
|
61
|
+
|
|
62
|
+
# 5. When done, merge the fork back to main
|
|
63
|
+
orka merge auto <session-id> <fork-id>
|
|
64
|
+
|
|
65
|
+
# 6. Check project status
|
|
66
|
+
orka status
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Features
|
|
70
|
+
|
|
71
|
+
### 🎯 Session Management
|
|
72
|
+
|
|
73
|
+
- Create and manage multiple Claude Code sessions
|
|
74
|
+
- Save sessions for later (preserves Claude context)
|
|
75
|
+
- Resume sessions with full conversation history
|
|
76
|
+
- List and filter sessions by status
|
|
77
|
+
|
|
78
|
+
### 🌿 Fork & Merge Workflow
|
|
79
|
+
|
|
80
|
+
- Create conversation forks to explore alternatives
|
|
81
|
+
- Each fork maintains its own Claude session
|
|
82
|
+
- Generate summaries of fork explorations
|
|
83
|
+
- Merge learnings back to main conversation
|
|
84
|
+
|
|
85
|
+
### 💾 State Persistence
|
|
86
|
+
|
|
87
|
+
- All state stored in `.claude-orka/state.json`
|
|
88
|
+
- Automatic context preservation via Claude's native sessions
|
|
89
|
+
- Export summaries for fork integrations
|
|
90
|
+
|
|
91
|
+
### 🎨 Beautiful CLI
|
|
92
|
+
|
|
93
|
+
- Colored output with chalk
|
|
94
|
+
- Interactive tables with cli-table3
|
|
95
|
+
- Progress spinners with ora
|
|
96
|
+
- JSON output for scripting
|
|
97
|
+
|
|
98
|
+
## Commands
|
|
99
|
+
|
|
100
|
+
### Setup
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
orka prepare # Install system dependencies (tmux, etc.)
|
|
104
|
+
orka doctor # Check system dependencies
|
|
105
|
+
orka init # Initialize Claude-Orka in current project
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Project
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
orka status # Show project status
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Sessions
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
orka session create [name] # Create new session
|
|
118
|
+
orka session list # List all sessions
|
|
119
|
+
orka session get <id> # Get session details
|
|
120
|
+
orka session resume <id> # Resume saved session
|
|
121
|
+
orka session close <id> # Close session (save for later)
|
|
122
|
+
orka session delete <id> # Permanently delete session
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Forks
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
orka fork create <session-id> [name] # Create fork
|
|
129
|
+
orka fork list <session-id> # List forks
|
|
130
|
+
orka fork resume <session-id> <fork-id> # Resume fork
|
|
131
|
+
orka fork close <session-id> <fork-id> # Close fork
|
|
132
|
+
orka fork delete <session-id> <fork-id> # Delete fork
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Merge
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
orka merge export <session-id> <fork-id> # Generate export
|
|
139
|
+
orka merge do <session-id> <fork-id> # Merge to main
|
|
140
|
+
orka merge auto <session-id> <fork-id> # Export + merge (recommended)
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Example Workflow
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
# 1. Start a new session for your feature
|
|
147
|
+
orka session create "OAuth Implementation"
|
|
148
|
+
# → Session ID: abc123...
|
|
149
|
+
|
|
150
|
+
# 2. Work on the main approach...
|
|
151
|
+
# (Claude Code opens in tmux)
|
|
152
|
+
|
|
153
|
+
# 3. Create a fork to try JWT tokens
|
|
154
|
+
orka fork create abc123 "Try JWT Tokens"
|
|
155
|
+
# → Fork ID: def456...
|
|
156
|
+
|
|
157
|
+
# 4. Work on the fork...
|
|
158
|
+
# (Fork opens in new tmux pane)
|
|
159
|
+
|
|
160
|
+
# 5. Merge the successful approach back
|
|
161
|
+
orka merge auto abc123 def456
|
|
162
|
+
|
|
163
|
+
# 6. Check final state
|
|
164
|
+
orka status
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## SDK Usage
|
|
168
|
+
|
|
169
|
+
You can also use Claude-Orka programmatically:
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
import { ClaudeOrka } from '@enruana/claude-orka'
|
|
173
|
+
|
|
174
|
+
const orka = new ClaudeOrka('/path/to/project')
|
|
175
|
+
await orka.initialize()
|
|
176
|
+
|
|
177
|
+
// Create session
|
|
178
|
+
const session = await orka.createSession('My Feature')
|
|
179
|
+
|
|
180
|
+
// Create fork
|
|
181
|
+
const fork = await orka.createFork(session.id, 'Alternative')
|
|
182
|
+
|
|
183
|
+
// Generate export and merge
|
|
184
|
+
await orka.generateExportAndMerge(session.id, fork.id)
|
|
185
|
+
|
|
186
|
+
// Get project summary
|
|
187
|
+
const summary = await orka.getProjectSummary()
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Architecture
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
.claude-orka/
|
|
194
|
+
├── state.json # Project state
|
|
195
|
+
└── exports/ # Fork summaries (created on-demand)
|
|
196
|
+
└── fork-*.md # Generated summaries
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Key Concepts:**
|
|
200
|
+
|
|
201
|
+
- **Session**: A Claude Code conversation with main + forks
|
|
202
|
+
- **Main**: The primary conversation branch
|
|
203
|
+
- **Fork**: A branched conversation to explore alternatives
|
|
204
|
+
- **Export**: A summary of a fork's exploration
|
|
205
|
+
- **Merge**: Integrate fork learnings into main
|
|
206
|
+
|
|
207
|
+
## Configuration
|
|
208
|
+
|
|
209
|
+
Claude-Orka uses native Claude CLI sessions, so no additional configuration is needed. Session IDs are automatically detected from `~/.claude/history.jsonl`.
|
|
210
|
+
|
|
211
|
+
## Troubleshooting
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
# Check if everything is set up correctly
|
|
215
|
+
orka doctor
|
|
216
|
+
|
|
217
|
+
# Common issues:
|
|
218
|
+
# - tmux not installed → brew install tmux
|
|
219
|
+
# - Claude CLI not found → Install from claude.ai
|
|
220
|
+
# - Project not initialized → orka init
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Contributing
|
|
224
|
+
|
|
225
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
226
|
+
|
|
227
|
+
## License
|
|
228
|
+
|
|
229
|
+
MIT © enruana
|
|
230
|
+
|
|
231
|
+
## Links
|
|
232
|
+
|
|
233
|
+
- [GitHub Repository](https://github.com/enruana/claude-orka)
|
|
234
|
+
- [Issue Tracker](https://github.com/enruana/claude-orka/issues)
|
|
235
|
+
- [npm Package](https://www.npmjs.com/package/@enruana/claude-orka)
|
|
236
|
+
- [Claude Code](https://claude.ai/code)
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
Made with ❤️ for the Claude Code community
|
package/bin/orka.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { register } from 'tsx/esm/api'
|
|
4
|
+
import { pathToFileURL } from 'url'
|
|
5
|
+
import { resolve, dirname } from 'path'
|
|
6
|
+
import { fileURLToPath } from 'url'
|
|
7
|
+
|
|
8
|
+
const __filename = fileURLToPath(import.meta.url)
|
|
9
|
+
const __dirname = dirname(__filename)
|
|
10
|
+
|
|
11
|
+
// Register tsx to handle TypeScript files
|
|
12
|
+
const unregister = register()
|
|
13
|
+
|
|
14
|
+
// Import and run the CLI
|
|
15
|
+
const cliPath = resolve(__dirname, '../src/cli/index.ts')
|
|
16
|
+
await import(pathToFileURL(cliPath).href)
|
|
17
|
+
|
|
18
|
+
// Cleanup
|
|
19
|
+
unregister()
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { Session, Fork, SessionFilters } from '../models';
|
|
2
|
+
/**
|
|
3
|
+
* Claude-Orka SDK
|
|
4
|
+
* API pública para orquestar sesiones de Claude Code con tmux
|
|
5
|
+
*/
|
|
6
|
+
export declare class ClaudeOrka {
|
|
7
|
+
private sessionManager;
|
|
8
|
+
/**
|
|
9
|
+
* Crear una instancia de ClaudeOrka
|
|
10
|
+
* @param projectPath Path absoluto del proyecto
|
|
11
|
+
*/
|
|
12
|
+
constructor(projectPath: string);
|
|
13
|
+
/**
|
|
14
|
+
* Inicializar ClaudeOrka
|
|
15
|
+
* Crea la estructura .claude-orka/ si no existe
|
|
16
|
+
*/
|
|
17
|
+
initialize(): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Crear una nueva sesión de Claude Code
|
|
20
|
+
* @param name Nombre opcional para la sesión
|
|
21
|
+
* @param openTerminal Si debe abrir una ventana de terminal (default: true)
|
|
22
|
+
* @returns Sesión creada
|
|
23
|
+
*/
|
|
24
|
+
createSession(name?: string, openTerminal?: boolean): Promise<Session>;
|
|
25
|
+
/**
|
|
26
|
+
* Restaurar una sesión guardada
|
|
27
|
+
* @param sessionId ID de la sesión a restaurar
|
|
28
|
+
* @param openTerminal Si debe abrir una ventana de terminal (default: true)
|
|
29
|
+
* @returns Sesión restaurada
|
|
30
|
+
*/
|
|
31
|
+
resumeSession(sessionId: string, openTerminal?: boolean): Promise<Session>;
|
|
32
|
+
/**
|
|
33
|
+
* Cerrar una sesión
|
|
34
|
+
* @param sessionId ID de la sesión
|
|
35
|
+
* @param saveContext Si debe guardar el contexto antes de cerrar (default: true)
|
|
36
|
+
*/
|
|
37
|
+
closeSession(sessionId: string, saveContext?: boolean): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Eliminar una sesión permanentemente
|
|
40
|
+
* @param sessionId ID de la sesión
|
|
41
|
+
*/
|
|
42
|
+
deleteSession(sessionId: string): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Listar sesiones con filtros opcionales
|
|
45
|
+
* @param filters Filtros opcionales (status, name)
|
|
46
|
+
* @returns Array de sesiones
|
|
47
|
+
*/
|
|
48
|
+
listSessions(filters?: SessionFilters): Promise<Session[]>;
|
|
49
|
+
/**
|
|
50
|
+
* Obtener una sesión por ID
|
|
51
|
+
* @param sessionId ID de la sesión
|
|
52
|
+
* @returns Sesión o null si no existe
|
|
53
|
+
*/
|
|
54
|
+
getSession(sessionId: string): Promise<Session | null>;
|
|
55
|
+
/**
|
|
56
|
+
* Crear un fork (rama de conversación)
|
|
57
|
+
* @param sessionId ID de la sesión
|
|
58
|
+
* @param name Nombre opcional del fork
|
|
59
|
+
* @param vertical Si debe dividir verticalmente (default: false = horizontal)
|
|
60
|
+
* @returns Fork creado
|
|
61
|
+
*/
|
|
62
|
+
createFork(sessionId: string, name?: string, vertical?: boolean): Promise<Fork>;
|
|
63
|
+
/**
|
|
64
|
+
* Cerrar un fork
|
|
65
|
+
* @param sessionId ID de la sesión
|
|
66
|
+
* @param forkId ID del fork
|
|
67
|
+
* @param saveContext Si debe guardar el contexto antes de cerrar (default: true)
|
|
68
|
+
*/
|
|
69
|
+
closeFork(sessionId: string, forkId: string, saveContext?: boolean): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Restaurar un fork guardado
|
|
72
|
+
* @param sessionId ID de la sesión
|
|
73
|
+
* @param forkId ID del fork
|
|
74
|
+
* @returns Fork restaurado
|
|
75
|
+
*/
|
|
76
|
+
resumeFork(sessionId: string, forkId: string): Promise<Fork>;
|
|
77
|
+
/**
|
|
78
|
+
* Enviar comando a una sesión o fork
|
|
79
|
+
* @param sessionId ID de la sesión
|
|
80
|
+
* @param command Comando a enviar
|
|
81
|
+
* @param target ID del fork (opcional, si no se especifica va a main)
|
|
82
|
+
*/
|
|
83
|
+
send(sessionId: string, command: string, target?: string): Promise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* Exportar el contexto de un fork
|
|
86
|
+
* @param sessionId ID de la sesión
|
|
87
|
+
* @param forkId ID del fork
|
|
88
|
+
* @param customName Nombre personalizado para el export (opcional)
|
|
89
|
+
* @returns Path del archivo exportado
|
|
90
|
+
*/
|
|
91
|
+
export(sessionId: string, forkId: string, customName?: string): Promise<string>;
|
|
92
|
+
/**
|
|
93
|
+
* Hacer merge de un fork a main
|
|
94
|
+
* @param sessionId ID de la sesión
|
|
95
|
+
* @param forkId ID del fork
|
|
96
|
+
*/
|
|
97
|
+
merge(sessionId: string, forkId: string): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Exportar y hacer merge de un fork a main
|
|
100
|
+
* @param sessionId ID de la sesión
|
|
101
|
+
* @param forkId ID del fork
|
|
102
|
+
*/
|
|
103
|
+
exportAndMerge(sessionId: string, forkId: string): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Exportar, hacer merge y cerrar un fork
|
|
106
|
+
* @param sessionId ID de la sesión
|
|
107
|
+
* @param forkId ID del fork
|
|
108
|
+
*/
|
|
109
|
+
mergeAndClose(sessionId: string, forkId: string): Promise<void>;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=ClaudeOrka.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClaudeOrka.d.ts","sourceRoot":"","sources":["../../src/core/ClaudeOrka.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAGzD;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,cAAc,CAAgB;IAEtC;;;OAGG;gBACS,WAAW,EAAE,MAAM;IAI/B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;;;;OAKG;IACG,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5E;;;;;OAKG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhF;;;;OAIG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3E;;;OAGG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD;;;;OAIG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIhE;;;;OAIG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAM5D;;;;;;OAMG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrF;;;;;OAKG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxF;;;;;OAKG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlE;;;;;OAKG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9E;;;;;;OAMG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrF;;;;OAIG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D;;;;OAIG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtE;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAItE"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClaudeOrka = void 0;
|
|
4
|
+
const SessionManager_1 = require("./SessionManager");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
/**
|
|
7
|
+
* Claude-Orka SDK
|
|
8
|
+
* API pública para orquestar sesiones de Claude Code con tmux
|
|
9
|
+
*/
|
|
10
|
+
class ClaudeOrka {
|
|
11
|
+
sessionManager;
|
|
12
|
+
/**
|
|
13
|
+
* Crear una instancia de ClaudeOrka
|
|
14
|
+
* @param projectPath Path absoluto del proyecto
|
|
15
|
+
*/
|
|
16
|
+
constructor(projectPath) {
|
|
17
|
+
this.sessionManager = new SessionManager_1.SessionManager(projectPath);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Inicializar ClaudeOrka
|
|
21
|
+
* Crea la estructura .claude-orka/ si no existe
|
|
22
|
+
*/
|
|
23
|
+
async initialize() {
|
|
24
|
+
utils_1.logger.info('Initializing ClaudeOrka');
|
|
25
|
+
await this.sessionManager.initialize();
|
|
26
|
+
}
|
|
27
|
+
// --- SESIONES ---
|
|
28
|
+
/**
|
|
29
|
+
* Crear una nueva sesión de Claude Code
|
|
30
|
+
* @param name Nombre opcional para la sesión
|
|
31
|
+
* @param openTerminal Si debe abrir una ventana de terminal (default: true)
|
|
32
|
+
* @returns Sesión creada
|
|
33
|
+
*/
|
|
34
|
+
async createSession(name, openTerminal) {
|
|
35
|
+
return await this.sessionManager.createSession(name, openTerminal);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Restaurar una sesión guardada
|
|
39
|
+
* @param sessionId ID de la sesión a restaurar
|
|
40
|
+
* @param openTerminal Si debe abrir una ventana de terminal (default: true)
|
|
41
|
+
* @returns Sesión restaurada
|
|
42
|
+
*/
|
|
43
|
+
async resumeSession(sessionId, openTerminal) {
|
|
44
|
+
return await this.sessionManager.resumeSession(sessionId, openTerminal);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Cerrar una sesión
|
|
48
|
+
* @param sessionId ID de la sesión
|
|
49
|
+
* @param saveContext Si debe guardar el contexto antes de cerrar (default: true)
|
|
50
|
+
*/
|
|
51
|
+
async closeSession(sessionId, saveContext) {
|
|
52
|
+
await this.sessionManager.closeSession(sessionId, saveContext);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Eliminar una sesión permanentemente
|
|
56
|
+
* @param sessionId ID de la sesión
|
|
57
|
+
*/
|
|
58
|
+
async deleteSession(sessionId) {
|
|
59
|
+
await this.sessionManager.deleteSession(sessionId);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Listar sesiones con filtros opcionales
|
|
63
|
+
* @param filters Filtros opcionales (status, name)
|
|
64
|
+
* @returns Array de sesiones
|
|
65
|
+
*/
|
|
66
|
+
async listSessions(filters) {
|
|
67
|
+
return await this.sessionManager.listSessions(filters);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Obtener una sesión por ID
|
|
71
|
+
* @param sessionId ID de la sesión
|
|
72
|
+
* @returns Sesión o null si no existe
|
|
73
|
+
*/
|
|
74
|
+
async getSession(sessionId) {
|
|
75
|
+
return await this.sessionManager.getSession(sessionId);
|
|
76
|
+
}
|
|
77
|
+
// --- FORKS ---
|
|
78
|
+
/**
|
|
79
|
+
* Crear un fork (rama de conversación)
|
|
80
|
+
* @param sessionId ID de la sesión
|
|
81
|
+
* @param name Nombre opcional del fork
|
|
82
|
+
* @param vertical Si debe dividir verticalmente (default: false = horizontal)
|
|
83
|
+
* @returns Fork creado
|
|
84
|
+
*/
|
|
85
|
+
async createFork(sessionId, name, vertical) {
|
|
86
|
+
return await this.sessionManager.createFork(sessionId, name, vertical);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Cerrar un fork
|
|
90
|
+
* @param sessionId ID de la sesión
|
|
91
|
+
* @param forkId ID del fork
|
|
92
|
+
* @param saveContext Si debe guardar el contexto antes de cerrar (default: true)
|
|
93
|
+
*/
|
|
94
|
+
async closeFork(sessionId, forkId, saveContext) {
|
|
95
|
+
await this.sessionManager.closeFork(sessionId, forkId, saveContext);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Restaurar un fork guardado
|
|
99
|
+
* @param sessionId ID de la sesión
|
|
100
|
+
* @param forkId ID del fork
|
|
101
|
+
* @returns Fork restaurado
|
|
102
|
+
*/
|
|
103
|
+
async resumeFork(sessionId, forkId) {
|
|
104
|
+
return await this.sessionManager.resumeFork(sessionId, forkId);
|
|
105
|
+
}
|
|
106
|
+
// --- COMANDOS ---
|
|
107
|
+
/**
|
|
108
|
+
* Enviar comando a una sesión o fork
|
|
109
|
+
* @param sessionId ID de la sesión
|
|
110
|
+
* @param command Comando a enviar
|
|
111
|
+
* @param target ID del fork (opcional, si no se especifica va a main)
|
|
112
|
+
*/
|
|
113
|
+
async send(sessionId, command, target) {
|
|
114
|
+
if (target) {
|
|
115
|
+
await this.sessionManager.sendToFork(sessionId, target, command);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
await this.sessionManager.sendToMain(sessionId, command);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// --- EXPORT & MERGE ---
|
|
122
|
+
/**
|
|
123
|
+
* Exportar el contexto de un fork
|
|
124
|
+
* @param sessionId ID de la sesión
|
|
125
|
+
* @param forkId ID del fork
|
|
126
|
+
* @param customName Nombre personalizado para el export (opcional)
|
|
127
|
+
* @returns Path del archivo exportado
|
|
128
|
+
*/
|
|
129
|
+
async export(sessionId, forkId, customName) {
|
|
130
|
+
return await this.sessionManager.exportFork(sessionId, forkId, customName);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Hacer merge de un fork a main
|
|
134
|
+
* @param sessionId ID de la sesión
|
|
135
|
+
* @param forkId ID del fork
|
|
136
|
+
*/
|
|
137
|
+
async merge(sessionId, forkId) {
|
|
138
|
+
await this.sessionManager.mergeFork(sessionId, forkId);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Exportar y hacer merge de un fork a main
|
|
142
|
+
* @param sessionId ID de la sesión
|
|
143
|
+
* @param forkId ID del fork
|
|
144
|
+
*/
|
|
145
|
+
async exportAndMerge(sessionId, forkId) {
|
|
146
|
+
await this.export(sessionId, forkId);
|
|
147
|
+
await this.merge(sessionId, forkId);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Exportar, hacer merge y cerrar un fork
|
|
151
|
+
* @param sessionId ID de la sesión
|
|
152
|
+
* @param forkId ID del fork
|
|
153
|
+
*/
|
|
154
|
+
async mergeAndClose(sessionId, forkId) {
|
|
155
|
+
await this.exportAndMerge(sessionId, forkId);
|
|
156
|
+
await this.closeFork(sessionId, forkId, false); // No guardar de nuevo
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
exports.ClaudeOrka = ClaudeOrka;
|
|
160
|
+
//# sourceMappingURL=ClaudeOrka.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClaudeOrka.js","sourceRoot":"","sources":["../../src/core/ClaudeOrka.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Session, Fork, SessionFilters } from '../models';
|
|
2
|
+
/**
|
|
3
|
+
* Gestiona sesiones, forks, comandos y contextos
|
|
4
|
+
*/
|
|
5
|
+
export declare class SessionManager {
|
|
6
|
+
private stateManager;
|
|
7
|
+
private projectPath;
|
|
8
|
+
constructor(projectPath: string);
|
|
9
|
+
/**
|
|
10
|
+
* Inicializar el SessionManager
|
|
11
|
+
*/
|
|
12
|
+
initialize(): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Crear una nueva sesión
|
|
15
|
+
* @param name Nombre opcional de la sesión
|
|
16
|
+
* @param openTerminal Si debe abrir una ventana de terminal (default: true)
|
|
17
|
+
*/
|
|
18
|
+
createSession(name?: string, openTerminal?: boolean): Promise<Session>;
|
|
19
|
+
/**
|
|
20
|
+
* Restaurar una sesión guardada
|
|
21
|
+
* @param sessionId ID de la sesión
|
|
22
|
+
* @param openTerminal Si debe abrir una ventana de terminal (default: true)
|
|
23
|
+
*/
|
|
24
|
+
resumeSession(sessionId: string, openTerminal?: boolean): Promise<Session>;
|
|
25
|
+
/**
|
|
26
|
+
* Obtener una sesión
|
|
27
|
+
*/
|
|
28
|
+
getSession(sessionId: string): Promise<Session | null>;
|
|
29
|
+
/**
|
|
30
|
+
* Listar sesiones
|
|
31
|
+
*/
|
|
32
|
+
listSessions(filters?: SessionFilters): Promise<Session[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Cerrar una sesión (con auto-export opcional)
|
|
35
|
+
*/
|
|
36
|
+
closeSession(sessionId: string, saveContext?: boolean): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Eliminar una sesión permanentemente
|
|
39
|
+
*/
|
|
40
|
+
deleteSession(sessionId: string): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Crear un fork
|
|
43
|
+
*/
|
|
44
|
+
createFork(sessionId: string, name?: string, vertical?: boolean): Promise<Fork>;
|
|
45
|
+
/**
|
|
46
|
+
* Restaurar un fork guardado
|
|
47
|
+
*/
|
|
48
|
+
resumeFork(sessionId: string, forkId: string): Promise<Fork>;
|
|
49
|
+
/**
|
|
50
|
+
* Cerrar un fork (con auto-export opcional)
|
|
51
|
+
*/
|
|
52
|
+
closeFork(sessionId: string, forkId: string, saveContext?: boolean): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Enviar comando a main
|
|
55
|
+
*/
|
|
56
|
+
sendToMain(sessionId: string, command: string): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Enviar comando a fork
|
|
59
|
+
*/
|
|
60
|
+
sendToFork(sessionId: string, forkId: string, command: string): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Exportar un fork manualmente
|
|
63
|
+
*/
|
|
64
|
+
exportFork(sessionId: string, forkId: string, customName?: string): Promise<string>;
|
|
65
|
+
/**
|
|
66
|
+
* Hacer merge de un fork a main
|
|
67
|
+
*/
|
|
68
|
+
mergeFork(sessionId: string, forkId: string): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Exportar contexto usando /fork:export de Claude
|
|
71
|
+
*/
|
|
72
|
+
private exportContext;
|
|
73
|
+
/**
|
|
74
|
+
* Cargar contexto en un pane
|
|
75
|
+
*/
|
|
76
|
+
private loadContext;
|
|
77
|
+
/**
|
|
78
|
+
* Inicializar Claude en un pane
|
|
79
|
+
*/
|
|
80
|
+
private initializeClaude;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=SessionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../src/core/SessionManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAmBzD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,WAAW,CAAQ;gBAEf,WAAW,EAAE,MAAM;IAK/B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;;;OAIG;IACG,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA4DlF;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAoEtF;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAI5D;;OAEG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIhE;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CjF;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrD;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C5F;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4ClE;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC9F;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnE;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnF;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBzF;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCjE;;OAEG;YACW,aAAa;IAsB3B;;OAEG;YACW,WAAW;IAiBzB;;OAEG;YACW,gBAAgB;CAiC/B"}
|