@enruana/claude-orka 0.3.0 → 0.3.1

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 (88) hide show
  1. package/dist/cli.js +1 -1
  2. package/dist/src/cli/index.js +0 -0
  3. package/dist/src/core/SessionManager.js +1 -1
  4. package/dist/src/core/SessionManager.js.map +1 -1
  5. package/package.json +1 -1
  6. package/dist/core/ClaudeOrka.d.ts +0 -111
  7. package/dist/core/ClaudeOrka.d.ts.map +0 -1
  8. package/dist/core/ClaudeOrka.js +0 -160
  9. package/dist/core/ClaudeOrka.js.map +0 -1
  10. package/dist/core/SessionManager.d.ts +0 -82
  11. package/dist/core/SessionManager.d.ts.map +0 -1
  12. package/dist/core/SessionManager.js +0 -519
  13. package/dist/core/SessionManager.js.map +0 -1
  14. package/dist/core/StateManager.d.ts +0 -92
  15. package/dist/core/StateManager.d.ts.map +0 -1
  16. package/dist/core/StateManager.js +0 -307
  17. package/dist/core/StateManager.js.map +0 -1
  18. package/dist/core/index.d.ts +0 -4
  19. package/dist/core/index.d.ts.map +0 -1
  20. package/dist/core/index.js +0 -20
  21. package/dist/core/index.js.map +0 -1
  22. package/dist/electron/main/ipc-handlers.d.ts +0 -5
  23. package/dist/electron/main/ipc-handlers.d.ts.map +0 -1
  24. package/dist/electron/main/ipc-handlers.js +0 -169
  25. package/dist/electron/main/ipc-handlers.js.map +0 -1
  26. package/dist/electron/renderer/app.js +0 -808
  27. package/dist/electron/renderer/index.html +0 -189
  28. package/dist/electron/renderer/src/App.d.ts +0 -3
  29. package/dist/electron/renderer/src/App.d.ts.map +0 -1
  30. package/dist/electron/renderer/src/App.js +0 -74
  31. package/dist/electron/renderer/src/App.js.map +0 -1
  32. package/dist/electron/renderer/src/components/ActionPanel.d.ts +0 -9
  33. package/dist/electron/renderer/src/components/ActionPanel.d.ts.map +0 -1
  34. package/dist/electron/renderer/src/components/ActionPanel.js +0 -29
  35. package/dist/electron/renderer/src/components/ActionPanel.js.map +0 -1
  36. package/dist/electron/renderer/src/components/NodeCard.d.ts +0 -11
  37. package/dist/electron/renderer/src/components/NodeCard.d.ts.map +0 -1
  38. package/dist/electron/renderer/src/components/NodeCard.js +0 -45
  39. package/dist/electron/renderer/src/components/NodeCard.js.map +0 -1
  40. package/dist/electron/renderer/src/components/SessionInfo.d.ts +0 -7
  41. package/dist/electron/renderer/src/components/SessionInfo.d.ts.map +0 -1
  42. package/dist/electron/renderer/src/components/SessionInfo.js +0 -49
  43. package/dist/electron/renderer/src/components/SessionInfo.js.map +0 -1
  44. package/dist/electron/renderer/src/components/SessionTree.d.ts +0 -10
  45. package/dist/electron/renderer/src/components/SessionTree.d.ts.map +0 -1
  46. package/dist/electron/renderer/src/components/SessionTree.js +0 -57
  47. package/dist/electron/renderer/src/components/SessionTree.js.map +0 -1
  48. package/dist/electron/renderer/src/main.d.ts +0 -2
  49. package/dist/electron/renderer/src/main.d.ts.map +0 -1
  50. package/dist/electron/renderer/src/main.js +0 -7
  51. package/dist/electron/renderer/src/main.js.map +0 -1
  52. package/dist/electron/renderer/styles.css +0 -736
  53. package/dist/electron/renderer/vite.config.d.ts +0 -3
  54. package/dist/electron/renderer/vite.config.d.ts.map +0 -1
  55. package/dist/electron/renderer/vite.config.js +0 -20
  56. package/dist/electron/renderer/vite.config.js.map +0 -1
  57. package/dist/index.d.ts +0 -9
  58. package/dist/index.d.ts.map +0 -1
  59. package/dist/index.js +0 -18
  60. package/dist/index.js.map +0 -1
  61. package/dist/models/Fork.d.ts +0 -26
  62. package/dist/models/Fork.d.ts.map +0 -1
  63. package/dist/models/Fork.js +0 -3
  64. package/dist/models/Fork.js.map +0 -1
  65. package/dist/models/Session.d.ts +0 -38
  66. package/dist/models/Session.d.ts.map +0 -1
  67. package/dist/models/Session.js +0 -3
  68. package/dist/models/Session.js.map +0 -1
  69. package/dist/models/State.d.ts +0 -24
  70. package/dist/models/State.d.ts.map +0 -1
  71. package/dist/models/State.js +0 -3
  72. package/dist/models/State.js.map +0 -1
  73. package/dist/models/index.d.ts +0 -4
  74. package/dist/models/index.d.ts.map +0 -1
  75. package/dist/models/index.js +0 -20
  76. package/dist/models/index.js.map +0 -1
  77. package/dist/utils/index.d.ts +0 -3
  78. package/dist/utils/index.d.ts.map +0 -1
  79. package/dist/utils/index.js +0 -19
  80. package/dist/utils/index.js.map +0 -1
  81. package/dist/utils/logger.d.ts +0 -20
  82. package/dist/utils/logger.d.ts.map +0 -1
  83. package/dist/utils/logger.js +0 -41
  84. package/dist/utils/logger.js.map +0 -1
  85. package/dist/utils/tmux.d.ts +0 -77
  86. package/dist/utils/tmux.d.ts.map +0 -1
  87. package/dist/utils/tmux.js +0 -270
  88. package/dist/utils/tmux.js.map +0 -1
@@ -1,519 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.SessionManager = void 0;
37
- const nanoid_1 = require("nanoid");
38
- const path = __importStar(require("path"));
39
- const fs = __importStar(require("fs-extra"));
40
- const StateManager_1 = require("./StateManager");
41
- const utils_1 = require("../utils");
42
- /**
43
- * Helper para esperar (sleep)
44
- */
45
- const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
46
- /**
47
- * Gestiona sesiones, forks, comandos y contextos
48
- */
49
- class SessionManager {
50
- stateManager;
51
- projectPath;
52
- constructor(projectPath) {
53
- this.projectPath = path.resolve(projectPath);
54
- this.stateManager = new StateManager_1.StateManager(this.projectPath);
55
- }
56
- /**
57
- * Inicializar el SessionManager
58
- */
59
- async initialize() {
60
- utils_1.logger.info('Initializing SessionManager');
61
- await this.stateManager.initialize();
62
- }
63
- // --- SESIONES ---
64
- /**
65
- * Crear una nueva sesión
66
- * @param name Nombre opcional de la sesión
67
- * @param openTerminal Si debe abrir una ventana de terminal (default: true)
68
- */
69
- async createSession(name, openTerminal = true) {
70
- utils_1.logger.info('Creating new session');
71
- // Verificar tmux disponible
72
- if (!(await utils_1.TmuxCommands.isAvailable())) {
73
- throw new Error('tmux is not available. Please install tmux first.');
74
- }
75
- // Generar IDs
76
- const sessionId = `session-${(0, nanoid_1.nanoid)(8)}`;
77
- const tmuxName = `orchestrator-${sessionId}`;
78
- const sessionName = name || `session-${Date.now()}`;
79
- utils_1.logger.debug(`Session ID: ${sessionId}, tmux name: ${tmuxName}`);
80
- // Crear sesión tmux en modo detached
81
- await utils_1.TmuxCommands.createSession(tmuxName, this.projectPath);
82
- // Obtener pane IDs
83
- const paneId = await utils_1.TmuxCommands.getMainPaneId(tmuxName);
84
- const windowId = await utils_1.TmuxCommands.getMainWindowId(tmuxName);
85
- // Inicializar Claude en el pane
86
- await this.initializeClaude(paneId, { isFork: false });
87
- // Abrir ventana de terminal si se solicita
88
- if (openTerminal) {
89
- utils_1.logger.info('Opening terminal window for session...');
90
- try {
91
- await utils_1.TmuxCommands.openTerminalWindow(tmuxName);
92
- }
93
- catch (error) {
94
- utils_1.logger.warn(`Failed to open terminal window: ${error.message}`);
95
- utils_1.logger.info(`You can manually attach with: tmux attach -t ${tmuxName}`);
96
- }
97
- }
98
- // Crear objeto Session
99
- const session = {
100
- id: sessionId,
101
- name: sessionName,
102
- tmuxSessionName: tmuxName,
103
- projectPath: this.projectPath,
104
- createdAt: new Date().toISOString(),
105
- status: 'active',
106
- main: {
107
- tmuxPaneId: paneId,
108
- tmuxWindowId: windowId,
109
- lastActivity: new Date().toISOString(),
110
- },
111
- forks: [],
112
- lastActivity: new Date().toISOString(),
113
- };
114
- // Guardar en estado
115
- await this.stateManager.addSession(session);
116
- utils_1.logger.info(`Session created: ${sessionId}`);
117
- return session;
118
- }
119
- /**
120
- * Restaurar una sesión guardada
121
- * @param sessionId ID de la sesión
122
- * @param openTerminal Si debe abrir una ventana de terminal (default: true)
123
- */
124
- async resumeSession(sessionId, openTerminal = true) {
125
- utils_1.logger.info(`Resuming session: ${sessionId}`);
126
- const session = await this.stateManager.getSession(sessionId);
127
- if (!session) {
128
- throw new Error(`Session not found: ${sessionId}`);
129
- }
130
- if (session.status === 'active') {
131
- // Verificar si realmente existe en tmux
132
- const exists = await utils_1.TmuxCommands.sessionExists(session.tmuxSessionName);
133
- if (exists) {
134
- utils_1.logger.info('Session already active');
135
- // Abrir terminal si se solicita
136
- if (openTerminal) {
137
- try {
138
- await utils_1.TmuxCommands.openTerminalWindow(session.tmuxSessionName);
139
- }
140
- catch (error) {
141
- utils_1.logger.warn(`Failed to open terminal window: ${error.message}`);
142
- }
143
- }
144
- return session;
145
- }
146
- else {
147
- utils_1.logger.warn('Session marked as active but tmux session not found, recreating...');
148
- }
149
- }
150
- // Crear nueva sesión tmux
151
- await utils_1.TmuxCommands.createSession(session.tmuxSessionName, this.projectPath);
152
- // Obtener pane IDs
153
- const paneId = await utils_1.TmuxCommands.getMainPaneId(session.tmuxSessionName);
154
- const windowId = await utils_1.TmuxCommands.getMainWindowId(session.tmuxSessionName);
155
- // Inicializar Claude con contexto previo si existe
156
- await this.initializeClaude(paneId, {
157
- isFork: false,
158
- loadContext: !!session.main.contextPath,
159
- contextPath: session.main.contextPath,
160
- });
161
- // Abrir ventana de terminal si se solicita
162
- if (openTerminal) {
163
- utils_1.logger.info('Opening terminal window for resumed session...');
164
- try {
165
- await utils_1.TmuxCommands.openTerminalWindow(session.tmuxSessionName);
166
- }
167
- catch (error) {
168
- utils_1.logger.warn(`Failed to open terminal window: ${error.message}`);
169
- utils_1.logger.info(`You can manually attach with: tmux attach -t ${session.tmuxSessionName}`);
170
- }
171
- }
172
- // Actualizar sesión
173
- await this.stateManager.updateSession(sessionId, {
174
- status: 'active',
175
- main: {
176
- ...session.main,
177
- tmuxPaneId: paneId,
178
- tmuxWindowId: windowId,
179
- lastActivity: new Date().toISOString(),
180
- },
181
- });
182
- const updatedSession = await this.stateManager.getSession(sessionId);
183
- utils_1.logger.info(`Session resumed: ${sessionId}`);
184
- return updatedSession;
185
- }
186
- /**
187
- * Obtener una sesión
188
- */
189
- async getSession(sessionId) {
190
- return await this.stateManager.getSession(sessionId);
191
- }
192
- /**
193
- * Listar sesiones
194
- */
195
- async listSessions(filters) {
196
- return await this.stateManager.getAllSessions(filters);
197
- }
198
- /**
199
- * Cerrar una sesión (con auto-export opcional)
200
- */
201
- async closeSession(sessionId, saveContext = true) {
202
- utils_1.logger.info(`Closing session: ${sessionId}`);
203
- const session = await this.stateManager.getSession(sessionId);
204
- if (!session) {
205
- throw new Error(`Session not found: ${sessionId}`);
206
- }
207
- if (session.status === 'active') {
208
- // Exportar contexto si se solicita
209
- if (saveContext && session.main.tmuxPaneId) {
210
- utils_1.logger.info('Exporting main context before closing...');
211
- const contextPath = this.stateManager.getSessionContextPath(sessionId);
212
- try {
213
- await this.exportContext(session.main.tmuxPaneId, contextPath);
214
- }
215
- catch (error) {
216
- utils_1.logger.warn(`Failed to export context: ${error.message}`);
217
- }
218
- }
219
- // Cerrar todos los forks activos
220
- for (const fork of session.forks.filter(f => f.status === 'active')) {
221
- await this.closeFork(sessionId, fork.id, saveContext);
222
- }
223
- // Cerrar sesión tmux
224
- try {
225
- await utils_1.TmuxCommands.killSession(session.tmuxSessionName);
226
- }
227
- catch (error) {
228
- utils_1.logger.warn(`Failed to kill tmux session: ${error.message}`);
229
- }
230
- // Actualizar estado
231
- await this.stateManager.updateSession(sessionId, {
232
- status: 'saved',
233
- main: {
234
- ...session.main,
235
- tmuxPaneId: undefined,
236
- tmuxWindowId: undefined,
237
- contextPath: saveContext ? this.stateManager.getSessionContextPath(sessionId) : session.main.contextPath,
238
- },
239
- });
240
- }
241
- utils_1.logger.info(`Session closed: ${sessionId}`);
242
- }
243
- /**
244
- * Eliminar una sesión permanentemente
245
- */
246
- async deleteSession(sessionId) {
247
- utils_1.logger.info(`Deleting session: ${sessionId}`);
248
- const session = await this.stateManager.getSession(sessionId);
249
- if (!session) {
250
- throw new Error(`Session not found: ${sessionId}`);
251
- }
252
- // Si está activa, cerrarla primero (sin guardar contexto)
253
- if (session.status === 'active') {
254
- await this.closeSession(sessionId, false);
255
- }
256
- // Eliminar del estado
257
- await this.stateManager.deleteSession(sessionId);
258
- utils_1.logger.info(`Session deleted: ${sessionId}`);
259
- }
260
- // --- FORKS ---
261
- /**
262
- * Crear un fork
263
- */
264
- async createFork(sessionId, name, vertical = false) {
265
- utils_1.logger.info(`Creating fork in session: ${sessionId}`);
266
- const session = await this.stateManager.getSession(sessionId);
267
- if (!session) {
268
- throw new Error(`Session not found: ${sessionId}`);
269
- }
270
- if (session.status !== 'active') {
271
- throw new Error('Cannot create fork in inactive session');
272
- }
273
- // Generar IDs
274
- const forkId = name ? `fork-${name}-${(0, nanoid_1.nanoid)(8)}` : `fork-${(0, nanoid_1.nanoid)(8)}`;
275
- const forkName = name || `fork-${Date.now()}`;
276
- utils_1.logger.debug(`Fork ID: ${forkId}, name: ${forkName}`);
277
- // Split pane
278
- const paneId = await utils_1.TmuxCommands.splitPane(session.tmuxSessionName, vertical);
279
- // Inicializar Claude en el fork
280
- await this.initializeClaude(paneId, {
281
- isFork: true,
282
- forkName: forkName,
283
- });
284
- // Crear objeto Fork
285
- const fork = {
286
- id: forkId,
287
- name: forkName,
288
- tmuxPaneId: paneId,
289
- parentId: 'main',
290
- createdAt: new Date().toISOString(),
291
- status: 'active',
292
- lastActivity: new Date().toISOString(),
293
- };
294
- // Guardar en estado
295
- await this.stateManager.addFork(sessionId, fork);
296
- utils_1.logger.info(`Fork created: ${forkId}`);
297
- return fork;
298
- }
299
- /**
300
- * Restaurar un fork guardado
301
- */
302
- async resumeFork(sessionId, forkId) {
303
- utils_1.logger.info(`Resuming fork: ${forkId}`);
304
- const session = await this.stateManager.getSession(sessionId);
305
- if (!session) {
306
- throw new Error(`Session not found: ${sessionId}`);
307
- }
308
- if (session.status !== 'active') {
309
- throw new Error('Cannot resume fork in inactive session');
310
- }
311
- const fork = session.forks.find(f => f.id === forkId);
312
- if (!fork) {
313
- throw new Error(`Fork not found: ${forkId}`);
314
- }
315
- if (fork.status === 'active') {
316
- utils_1.logger.info('Fork already active');
317
- return fork;
318
- }
319
- // Split pane
320
- const paneId = await utils_1.TmuxCommands.splitPane(session.tmuxSessionName);
321
- // Inicializar Claude con contexto
322
- await this.initializeClaude(paneId, {
323
- isFork: true,
324
- forkName: fork.name,
325
- loadContext: !!fork.contextPath,
326
- contextPath: fork.contextPath,
327
- });
328
- // Actualizar fork
329
- await this.stateManager.updateFork(sessionId, forkId, {
330
- tmuxPaneId: paneId,
331
- status: 'active',
332
- });
333
- const updatedFork = await this.stateManager.getFork(sessionId, forkId);
334
- utils_1.logger.info(`Fork resumed: ${forkId}`);
335
- return updatedFork;
336
- }
337
- /**
338
- * Cerrar un fork (con auto-export opcional)
339
- */
340
- async closeFork(sessionId, forkId, saveContext = true) {
341
- utils_1.logger.info(`Closing fork: ${forkId}`);
342
- const fork = await this.stateManager.getFork(sessionId, forkId);
343
- if (!fork) {
344
- throw new Error(`Fork not found: ${forkId}`);
345
- }
346
- if (fork.status === 'active' && fork.tmuxPaneId) {
347
- // Exportar contexto si se solicita
348
- if (saveContext) {
349
- utils_1.logger.info('Exporting fork context before closing...');
350
- const contextPath = this.stateManager.getForkContextPath(forkId);
351
- try {
352
- await this.exportContext(fork.tmuxPaneId, contextPath);
353
- }
354
- catch (error) {
355
- utils_1.logger.warn(`Failed to export fork context: ${error.message}`);
356
- }
357
- }
358
- // Cerrar pane
359
- try {
360
- await utils_1.TmuxCommands.killPane(fork.tmuxPaneId);
361
- }
362
- catch (error) {
363
- utils_1.logger.warn(`Failed to kill pane: ${error.message}`);
364
- }
365
- // Actualizar fork
366
- await this.stateManager.updateFork(sessionId, forkId, {
367
- tmuxPaneId: undefined,
368
- status: 'saved',
369
- contextPath: saveContext ? this.stateManager.getForkContextPath(forkId) : fork.contextPath,
370
- });
371
- }
372
- utils_1.logger.info(`Fork closed: ${forkId}`);
373
- }
374
- // --- COMANDOS ---
375
- /**
376
- * Enviar comando a main
377
- */
378
- async sendToMain(sessionId, command) {
379
- utils_1.logger.info(`Sending command to main in session: ${sessionId}`);
380
- const session = await this.stateManager.getSession(sessionId);
381
- if (!session || session.status !== 'active' || !session.main.tmuxPaneId) {
382
- throw new Error('Session is not active');
383
- }
384
- await utils_1.TmuxCommands.sendKeys(session.main.tmuxPaneId, command);
385
- await utils_1.TmuxCommands.sendEnter(session.main.tmuxPaneId);
386
- utils_1.logger.debug('Command sent to main');
387
- }
388
- /**
389
- * Enviar comando a fork
390
- */
391
- async sendToFork(sessionId, forkId, command) {
392
- utils_1.logger.info(`Sending command to fork: ${forkId}`);
393
- const fork = await this.stateManager.getFork(sessionId, forkId);
394
- if (!fork || fork.status !== 'active' || !fork.tmuxPaneId) {
395
- throw new Error('Fork is not active');
396
- }
397
- await utils_1.TmuxCommands.sendKeys(fork.tmuxPaneId, command);
398
- await utils_1.TmuxCommands.sendEnter(fork.tmuxPaneId);
399
- utils_1.logger.debug('Command sent to fork');
400
- }
401
- // --- EXPORT & MERGE ---
402
- /**
403
- * Exportar un fork manualmente
404
- */
405
- async exportFork(sessionId, forkId, customName) {
406
- utils_1.logger.info(`Exporting fork: ${forkId}`);
407
- const fork = await this.stateManager.getFork(sessionId, forkId);
408
- if (!fork) {
409
- throw new Error(`Fork not found: ${forkId}`);
410
- }
411
- if (fork.status !== 'active' || !fork.tmuxPaneId) {
412
- throw new Error('Fork is not active');
413
- }
414
- const exportPath = customName
415
- ? this.stateManager.getExportPath(forkId, customName)
416
- : this.stateManager.getForkContextPath(forkId);
417
- await this.exportContext(fork.tmuxPaneId, exportPath);
418
- // Actualizar fork con el path del export
419
- await this.stateManager.updateForkContext(sessionId, forkId, exportPath);
420
- utils_1.logger.info(`Fork exported: ${exportPath}`);
421
- return exportPath;
422
- }
423
- /**
424
- * Hacer merge de un fork a main
425
- */
426
- async mergeFork(sessionId, forkId) {
427
- utils_1.logger.info(`Merging fork ${forkId} to main`);
428
- const session = await this.stateManager.getSession(sessionId);
429
- if (!session || session.status !== 'active' || !session.main.tmuxPaneId) {
430
- throw new Error('Session is not active');
431
- }
432
- const fork = await this.stateManager.getFork(sessionId, forkId);
433
- if (!fork) {
434
- throw new Error(`Fork not found: ${forkId}`);
435
- }
436
- if (!fork.contextPath) {
437
- throw new Error('Fork has no context to merge. Export it first.');
438
- }
439
- // Leer contexto del fork
440
- const forkContext = await this.stateManager.readContext(fork.contextPath);
441
- // Enviar a main
442
- const mergeMessage = `MERGE desde fork "${fork.name}":\n\n${forkContext}`;
443
- await utils_1.TmuxCommands.sendKeys(session.main.tmuxPaneId, mergeMessage);
444
- await utils_1.TmuxCommands.sendEnter(session.main.tmuxPaneId);
445
- // Marcar fork como merged
446
- await this.stateManager.updateFork(sessionId, forkId, {
447
- status: 'merged',
448
- mergedToMain: true,
449
- mergedAt: new Date().toISOString(),
450
- });
451
- utils_1.logger.info(`Fork ${forkId} merged to main`);
452
- }
453
- // --- HELPERS PRIVADOS ---
454
- /**
455
- * Exportar contexto usando /fork:export de Claude
456
- */
457
- async exportContext(paneId, outputPath) {
458
- utils_1.logger.debug(`Exporting context from pane ${paneId} to ${outputPath}`);
459
- const fullPath = path.join(this.projectPath, outputPath);
460
- // Enviar comando /fork:export
461
- await utils_1.TmuxCommands.sendKeys(paneId, '/fork:export');
462
- await utils_1.TmuxCommands.sendEnter(paneId);
463
- // Esperar a que Claude procese
464
- await sleep(3000);
465
- // Capturar el output del pane
466
- const output = await utils_1.TmuxCommands.capturePane(paneId, -200);
467
- // Guardar en archivo
468
- await fs.ensureDir(path.dirname(fullPath));
469
- await fs.writeFile(fullPath, output, 'utf-8');
470
- utils_1.logger.info(`Context exported to: ${outputPath}`);
471
- }
472
- /**
473
- * Cargar contexto en un pane
474
- */
475
- async loadContext(paneId, contextPath) {
476
- utils_1.logger.debug(`Loading context from ${contextPath} into pane ${paneId}`);
477
- // Leer el contenido del contexto
478
- const content = await this.stateManager.readContext(contextPath);
479
- // Enviar el contexto a Claude
480
- const prompt = `Restaurando contexto de sesión anterior:\n\n${content}`;
481
- await utils_1.TmuxCommands.sendKeys(paneId, prompt);
482
- await utils_1.TmuxCommands.sendEnter(paneId);
483
- await sleep(2000);
484
- utils_1.logger.info('Context loaded');
485
- }
486
- /**
487
- * Inicializar Claude en un pane
488
- */
489
- async initializeClaude(paneId, options) {
490
- const { isFork, forkName, loadContext, contextPath } = options;
491
- utils_1.logger.debug(`Initializing Claude in pane ${paneId}`);
492
- // 1. cd al proyecto
493
- await utils_1.TmuxCommands.sendKeys(paneId, `cd ${this.projectPath}`);
494
- await utils_1.TmuxCommands.sendEnter(paneId);
495
- await sleep(500);
496
- // 2. Iniciar Claude
497
- if (isFork) {
498
- await utils_1.TmuxCommands.sendKeys(paneId, 'claude --continue');
499
- }
500
- else {
501
- await utils_1.TmuxCommands.sendKeys(paneId, 'claude');
502
- }
503
- await utils_1.TmuxCommands.sendEnter(paneId);
504
- await sleep(2000);
505
- // 3. Cargar contexto si existe
506
- if (loadContext && contextPath) {
507
- await this.loadContext(paneId, contextPath);
508
- }
509
- // 4. Si es fork, notificar
510
- if (isFork && forkName) {
511
- await utils_1.TmuxCommands.sendKeys(paneId, `Este es un fork llamado "${forkName}". Ten esto en cuenta.`);
512
- await utils_1.TmuxCommands.sendEnter(paneId);
513
- await sleep(1000);
514
- }
515
- utils_1.logger.info('Claude initialized');
516
- }
517
- }
518
- exports.SessionManager = SessionManager;
519
- //# sourceMappingURL=SessionManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../src/core/SessionManager.ts"],"names":[],"mappings":"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"}
@@ -1,92 +0,0 @@
1
- import { ProjectState, Session, Fork, SessionFilters } from '../models';
2
- /**
3
- * Gestiona la persistencia del estado en .claude-orka/state.json
4
- */
5
- export declare class StateManager {
6
- private projectPath;
7
- private orkaDir;
8
- private statePath;
9
- constructor(projectPath: string);
10
- /**
11
- * Inicializar el StateManager
12
- * Crea las carpetas necesarias si no existen
13
- */
14
- initialize(): Promise<void>;
15
- /**
16
- * Crear estructura de directorios
17
- */
18
- private ensureDirectories;
19
- /**
20
- * Leer el estado actual
21
- */
22
- read(): Promise<ProjectState>;
23
- /**
24
- * Guardar el estado
25
- */
26
- save(state: ProjectState): Promise<void>;
27
- /**
28
- * Agregar una nueva sesión
29
- */
30
- addSession(session: Session): Promise<void>;
31
- /**
32
- * Obtener una sesión por ID
33
- */
34
- getSession(sessionId: string): Promise<Session | null>;
35
- /**
36
- * Obtener todas las sesiones con filtros opcionales
37
- */
38
- getAllSessions(filters?: SessionFilters): Promise<Session[]>;
39
- /**
40
- * Actualizar el estado de una sesión
41
- */
42
- updateSessionStatus(sessionId: string, status: Session['status']): Promise<void>;
43
- /**
44
- * Actualizar una sesión completa
45
- */
46
- updateSession(sessionId: string, updates: Partial<Session>): Promise<void>;
47
- /**
48
- * Eliminar una sesión permanentemente
49
- */
50
- deleteSession(sessionId: string): Promise<void>;
51
- /**
52
- * Agregar un fork a una sesión
53
- */
54
- addFork(sessionId: string, fork: Fork): Promise<void>;
55
- /**
56
- * Obtener un fork específico
57
- */
58
- getFork(sessionId: string, forkId: string): Promise<Fork | null>;
59
- /**
60
- * Actualizar el estado de un fork
61
- */
62
- updateForkStatus(sessionId: string, forkId: string, status: Fork['status']): Promise<void>;
63
- /**
64
- * Actualizar el path del contexto de un fork
65
- */
66
- updateForkContext(sessionId: string, forkId: string, contextPath: string): Promise<void>;
67
- /**
68
- * Actualizar un fork completo
69
- */
70
- updateFork(sessionId: string, forkId: string, updates: Partial<Fork>): Promise<void>;
71
- /**
72
- * Guardar un contexto en archivo
73
- */
74
- saveContext(type: 'session' | 'fork', id: string, content: string): Promise<string>;
75
- /**
76
- * Leer un contexto desde archivo
77
- */
78
- readContext(contextPath: string): Promise<string>;
79
- /**
80
- * Obtener el path para el contexto de una sesión
81
- */
82
- getSessionContextPath(sessionId: string): string;
83
- /**
84
- * Obtener el path para el contexto de un fork
85
- */
86
- getForkContextPath(forkId: string): string;
87
- /**
88
- * Obtener el path para un export manual
89
- */
90
- getExportPath(forkId: string, name: string): string;
91
- }
92
- //# sourceMappingURL=StateManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StateManager.d.ts","sourceRoot":"","sources":["../../src/core/StateManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAGvE;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,SAAS,CAAQ;gBAEb,WAAW,EAAE,MAAM;IAM/B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBjC;;OAEG;YACW,iBAAiB;IAQ/B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAUnC;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAa9C;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAK5D;;OAEG;IACG,cAAc,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAelE;;OAEG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IActF;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBhF;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASrD;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3D;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAMtE;;OAEG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GACrB,OAAO,CAAC,IAAI,CAAC;IAqBhB;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB9F;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B1F;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYzF;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYvD;;OAEG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIhD;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI1C;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;CAGpD"}