@enruana/claude-orka 0.2.2 → 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.
- package/dist/cli.js +41 -2
- package/dist/electron/main/main.d.ts +1 -4
- package/dist/electron/main/main.d.ts.map +1 -1
- package/dist/electron/main/main.js +148 -43
- package/dist/electron/main/main.js.map +1 -1
- package/dist/electron/preload/preload.d.ts +0 -23
- package/dist/electron/preload/preload.d.ts.map +1 -1
- package/dist/electron/preload/preload.js +13 -29
- package/dist/electron/preload/preload.js.map +1 -1
- package/dist/src/cli/index.js +0 -0
- package/dist/src/core/SessionManager.d.ts +4 -0
- package/dist/src/core/SessionManager.d.ts.map +1 -1
- package/dist/src/core/SessionManager.js +44 -0
- package/dist/src/core/SessionManager.js.map +1 -1
- package/package.json +16 -5
- package/dist/core/ClaudeOrka.d.ts +0 -111
- package/dist/core/ClaudeOrka.d.ts.map +0 -1
- package/dist/core/ClaudeOrka.js +0 -160
- package/dist/core/ClaudeOrka.js.map +0 -1
- package/dist/core/SessionManager.d.ts +0 -82
- package/dist/core/SessionManager.d.ts.map +0 -1
- package/dist/core/SessionManager.js +0 -519
- package/dist/core/SessionManager.js.map +0 -1
- package/dist/core/StateManager.d.ts +0 -92
- package/dist/core/StateManager.d.ts.map +0 -1
- package/dist/core/StateManager.js +0 -307
- package/dist/core/StateManager.js.map +0 -1
- package/dist/core/index.d.ts +0 -4
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -20
- package/dist/core/index.js.map +0 -1
- package/dist/electron/main/ipc-handlers.d.ts +0 -5
- package/dist/electron/main/ipc-handlers.d.ts.map +0 -1
- package/dist/electron/main/ipc-handlers.js +0 -169
- package/dist/electron/main/ipc-handlers.js.map +0 -1
- package/dist/electron/renderer/app.js +0 -808
- package/dist/electron/renderer/index.html +0 -189
- package/dist/electron/renderer/styles.css +0 -736
- package/dist/index.d.ts +0 -9
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -18
- package/dist/index.js.map +0 -1
- package/dist/models/Fork.d.ts +0 -26
- package/dist/models/Fork.d.ts.map +0 -1
- package/dist/models/Fork.js +0 -3
- package/dist/models/Fork.js.map +0 -1
- package/dist/models/Session.d.ts +0 -38
- package/dist/models/Session.d.ts.map +0 -1
- package/dist/models/Session.js +0 -3
- package/dist/models/Session.js.map +0 -1
- package/dist/models/State.d.ts +0 -24
- package/dist/models/State.d.ts.map +0 -1
- package/dist/models/State.js +0 -3
- package/dist/models/State.js.map +0 -1
- package/dist/models/index.d.ts +0 -4
- package/dist/models/index.d.ts.map +0 -1
- package/dist/models/index.js +0 -20
- package/dist/models/index.js.map +0 -1
- package/dist/utils/index.d.ts +0 -3
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -19
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -20
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -41
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/tmux.d.ts +0 -77
- package/dist/utils/tmux.d.ts.map +0 -1
- package/dist/utils/tmux.js +0 -270
- 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAA+B;AAC/B,2CAA4B;AAC5B,6CAA8B;AAE9B,iDAA6C;AAC7C,oCAA+C;AAY/C;;GAEG;AACH,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAE7E;;GAEG;AACH,MAAa,cAAc;IACjB,YAAY,CAAc;IAC1B,WAAW,CAAQ;IAE3B,YAAY,WAAmB;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAC5C,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,cAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;QAC1C,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAA;IACtC,CAAC;IAED,mBAAmB;IAEnB;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,IAAa,EAAE,eAAwB,IAAI;QAC7D,cAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QAEnC,4BAA4B;QAC5B,IAAI,CAAC,CAAC,MAAM,oBAAY,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QACtE,CAAC;QAED,cAAc;QACd,MAAM,SAAS,GAAG,WAAW,IAAA,eAAM,EAAC,CAAC,CAAC,EAAE,CAAA;QACxC,MAAM,QAAQ,GAAG,gBAAgB,SAAS,EAAE,CAAA;QAC5C,MAAM,WAAW,GAAG,IAAI,IAAI,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;QAEnD,cAAM,CAAC,KAAK,CAAC,eAAe,SAAS,gBAAgB,QAAQ,EAAE,CAAC,CAAA;QAEhE,qCAAqC;QACrC,MAAM,oBAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAE5D,mBAAmB;QACnB,MAAM,MAAM,GAAG,MAAM,oBAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QACzD,MAAM,QAAQ,GAAG,MAAM,oBAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAE7D,gCAAgC;QAChC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QAEtD,2CAA2C;QAC3C,IAAI,YAAY,EAAE,CAAC;YACjB,cAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;YACrD,IAAI,CAAC;gBACH,MAAM,oBAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;YACjD,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,cAAM,CAAC,IAAI,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC/D,cAAM,CAAC,IAAI,CAAC,gDAAgD,QAAQ,EAAE,CAAC,CAAA;YACzE,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,MAAM,OAAO,GAAY;YACvB,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,WAAW;YACjB,eAAe,EAAE,QAAQ;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE;gBACJ,UAAU,EAAE,MAAM;gBAClB,YAAY,EAAE,QAAQ;gBACtB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACvC;YACD,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAA;QAED,oBAAoB;QACpB,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAE3C,cAAM,CAAC,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAA;QAC5C,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,eAAwB,IAAI;QACjE,cAAM,CAAC,IAAI,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAA;QAE7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,wCAAwC;YACxC,MAAM,MAAM,GAAG,MAAM,oBAAY,CAAC,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;YACxE,IAAI,MAAM,EAAE,CAAC;gBACX,cAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;gBACrC,gCAAgC;gBAChC,IAAI,YAAY,EAAE,CAAC;oBACjB,IAAI,CAAC;wBACH,MAAM,oBAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;oBAChE,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBACpB,cAAM,CAAC,IAAI,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;oBACjE,CAAC;gBACH,CAAC;gBACD,OAAO,OAAO,CAAA;YAChB,CAAC;iBAAM,CAAC;gBACN,cAAM,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAA;YACnF,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,oBAAY,CAAC,aAAa,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAE3E,mBAAmB;QACnB,MAAM,MAAM,GAAG,MAAM,oBAAY,CAAC,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,MAAM,oBAAY,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QAE5E,mDAAmD;QACnD,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAClC,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW;YACvC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;SACtC,CAAC,CAAA;QAEF,2CAA2C;QAC3C,IAAI,YAAY,EAAE,CAAC;YACjB,cAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;YAC7D,IAAI,CAAC;gBACH,MAAM,oBAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;YAChE,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,cAAM,CAAC,IAAI,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC/D,cAAM,CAAC,IAAI,CAAC,gDAAgD,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;YACxF,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE;YAC/C,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE;gBACJ,GAAG,OAAO,CAAC,IAAI;gBACf,UAAU,EAAE,MAAM;gBAClB,YAAY,EAAE,QAAQ;gBACtB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACvC;SACF,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QACpE,cAAM,CAAC,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAA;QAC5C,OAAO,cAAe,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,OAAwB;QACzC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,cAAuB,IAAI;QAC/D,cAAM,CAAC,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAA;QAE5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,mCAAmC;YACnC,IAAI,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC3C,cAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;gBACvD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;gBACtE,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;gBAChE,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,cAAM,CAAC,IAAI,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC3D,CAAC;YACH,CAAC;YAED,iCAAiC;YACjC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;YACvD,CAAC;YAED,qBAAqB;YACrB,IAAI,CAAC;gBACH,MAAM,oBAAY,CAAC,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;YACzD,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,cAAM,CAAC,IAAI,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YAC9D,CAAC;YAED,oBAAoB;YACpB,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE;gBAC/C,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE;oBACJ,GAAG,OAAO,CAAC,IAAI;oBACf,UAAU,EAAE,SAAS;oBACrB,YAAY,EAAE,SAAS;oBACvB,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW;iBACzG;aACF,CAAC,CAAA;QACJ,CAAC;QAED,cAAM,CAAC,IAAI,CAAC,mBAAmB,SAAS,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,cAAM,CAAC,IAAI,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAA;QAE7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAA;QACpD,CAAC;QAED,0DAA0D;QAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAC3C,CAAC;QAED,sBAAsB;QACtB,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAEhD,cAAM,CAAC,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,gBAAgB;IAEhB;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,IAAa,EAAE,WAAoB,KAAK;QAC1E,cAAM,CAAC,IAAI,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAA;QAErD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC3D,CAAC;QAED,cAAc;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAA,eAAM,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAA,eAAM,EAAC,CAAC,CAAC,EAAE,CAAA;QACvE,MAAM,QAAQ,GAAG,IAAI,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;QAE7C,cAAM,CAAC,KAAK,CAAC,YAAY,MAAM,WAAW,QAAQ,EAAE,CAAC,CAAA;QAErD,aAAa;QACb,MAAM,MAAM,GAAG,MAAM,oBAAY,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;QAE9E,gCAAgC;QAChC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAClC,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAA;QAEF,oBAAoB;QACpB,MAAM,IAAI,GAAS;YACjB,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAA;QAED,oBAAoB;QACpB,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAEhD,cAAM,CAAC,IAAI,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAA;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,MAAc;QAChD,cAAM,CAAC,IAAI,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAA;QAEvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC3D,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,cAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;YAClC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,aAAa;QACb,MAAM,MAAM,GAAG,MAAM,oBAAY,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QAEpE,kCAAkC;QAClC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAClC,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAA;QAEF,kBAAkB;QAClB,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE;YACpD,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAA;QAEF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QACtE,cAAM,CAAC,IAAI,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAA;QACtC,OAAO,WAAY,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,MAAc,EAAE,cAAuB,IAAI;QAC5E,cAAM,CAAC,IAAI,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAA;QAEtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChD,mCAAmC;YACnC,IAAI,WAAW,EAAE,CAAC;gBAChB,cAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;gBACvD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;gBAChE,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;gBACxD,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,cAAM,CAAC,IAAI,CAAC,kCAAkC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBAChE,CAAC;YACH,CAAC;YAED,cAAc;YACd,IAAI,CAAC;gBACH,MAAM,oBAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC9C,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,cAAM,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YACtD,CAAC;YAED,kBAAkB;YAClB,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE;gBACpD,UAAU,EAAE,SAAS;gBACrB,MAAM,EAAE,OAAO;gBACf,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW;aAC3F,CAAC,CAAA;QACJ,CAAC;QAED,cAAM,CAAC,IAAI,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,mBAAmB;IAEnB;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,OAAe;QACjD,cAAM,CAAC,IAAI,CAAC,uCAAuC,SAAS,EAAE,CAAC,CAAA;QAE/D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC7D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,oBAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAC7D,MAAM,oBAAY,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAErD,cAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,MAAc,EAAE,OAAe;QACjE,cAAM,CAAC,IAAI,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAA;QAEjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC/D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACvC,CAAC;QAED,MAAM,oBAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACrD,MAAM,oBAAY,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAE7C,cAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACtC,CAAC;IAED,yBAAyB;IAEzB;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,MAAc,EAAE,UAAmB;QACrE,cAAM,CAAC,IAAI,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;QAExC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACvC,CAAC;QAED,MAAM,UAAU,GAAG,UAAU;YAC3B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC;YACrD,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAEhD,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QAErD,yCAAyC;QACzC,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;QAExE,cAAM,CAAC,IAAI,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAA;QAC3C,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,MAAc;QAC/C,cAAM,CAAC,IAAI,CAAC,gBAAgB,MAAM,UAAU,CAAC,CAAA;QAE7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC7D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;QACnE,CAAC;QAED,yBAAyB;QACzB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAEzE,gBAAgB;QAChB,MAAM,YAAY,GAAG,qBAAqB,IAAI,CAAC,IAAI,SAAS,WAAW,EAAE,CAAA;QAEzE,MAAM,oBAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;QAClE,MAAM,oBAAY,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAErD,0BAA0B;QAC1B,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE;YACpD,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC,CAAA;QAEF,cAAM,CAAC,IAAI,CAAC,QAAQ,MAAM,iBAAiB,CAAC,CAAA;IAC9C,CAAC;IAED,2BAA2B;IAE3B;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,UAAkB;QAC5D,cAAM,CAAC,KAAK,CAAC,+BAA+B,MAAM,OAAO,UAAU,EAAE,CAAC,CAAA;QAEtE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;QAExD,8BAA8B;QAC9B,MAAM,oBAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QACnD,MAAM,oBAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAEpC,+BAA+B;QAC/B,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;QAEjB,8BAA8B;QAC9B,MAAM,MAAM,GAAG,MAAM,oBAAY,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAA;QAE3D,qBAAqB;QACrB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC1C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAE7C,cAAM,CAAC,IAAI,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,WAAmB;QAC3D,cAAM,CAAC,KAAK,CAAC,wBAAwB,WAAW,cAAc,MAAM,EAAE,CAAC,CAAA;QAEvE,iCAAiC;QACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;QAEhE,8BAA8B;QAC9B,MAAM,MAAM,GAAG,+CAA+C,OAAO,EAAE,CAAA;QAEvE,MAAM,oBAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC3C,MAAM,oBAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAEpC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;QAEjB,cAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC/B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,OAAoB;QACjE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;QAE9D,cAAM,CAAC,KAAK,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAA;QAErD,oBAAoB;QACpB,MAAM,oBAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAC7D,MAAM,oBAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QACpC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhB,oBAAoB;QACpB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,oBAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;QAC1D,CAAC;aAAM,CAAC;YACN,MAAM,oBAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC/C,CAAC;QACD,MAAM,oBAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QACpC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;QAEjB,+BAA+B;QAC/B,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QAC7C,CAAC;QAED,2BAA2B;QAC3B,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;YACvB,MAAM,oBAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,4BAA4B,QAAQ,wBAAwB,CAAC,CAAA;YACjG,MAAM,oBAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YACpC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC;QAED,cAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IACnC,CAAC;CACF;AAzjBD,wCAyjBC"}
|
|
@@ -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"}
|