@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,270 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TmuxCommands = exports.TmuxError = void 0;
4
- const execa_1 = require("execa");
5
- const logger_1 = require("./logger");
6
- /**
7
- * Error personalizado para comandos tmux
8
- */
9
- class TmuxError extends Error {
10
- command;
11
- originalError;
12
- constructor(message, command, originalError) {
13
- super(message);
14
- this.command = command;
15
- this.originalError = originalError;
16
- this.name = 'TmuxError';
17
- }
18
- }
19
- exports.TmuxError = TmuxError;
20
- /**
21
- * Wrapper de comandos tmux
22
- */
23
- class TmuxCommands {
24
- /**
25
- * Verificar si tmux está disponible
26
- */
27
- static async isAvailable() {
28
- try {
29
- await (0, execa_1.execa)('which', ['tmux']);
30
- return true;
31
- }
32
- catch {
33
- return false;
34
- }
35
- }
36
- /**
37
- * Crear una nueva sesión tmux en modo detached
38
- */
39
- static async createSession(name, projectPath) {
40
- try {
41
- logger_1.logger.debug(`Creating tmux session: ${name} at ${projectPath}`);
42
- await (0, execa_1.execa)('tmux', ['new-session', '-d', '-s', name, '-c', projectPath]);
43
- logger_1.logger.info(`Tmux session created: ${name}`);
44
- }
45
- catch (error) {
46
- throw new TmuxError(`Failed to create tmux session: ${name}`, `tmux new-session -d -s ${name} -c ${projectPath}`, error);
47
- }
48
- }
49
- /**
50
- * Abrir una terminal que se adjunte a una sesión tmux existente
51
- * (Solo macOS por ahora)
52
- */
53
- static async openTerminalWindow(sessionName) {
54
- try {
55
- logger_1.logger.debug(`Opening terminal window for session: ${sessionName}`);
56
- // Detectar sistema operativo
57
- const platform = process.platform;
58
- if (platform === 'darwin') {
59
- // macOS - Usar Terminal.app
60
- const script = `tell application "Terminal"
61
- do script "tmux attach -t ${sessionName}"
62
- activate
63
- end tell`;
64
- await (0, execa_1.execa)('osascript', ['-e', script]);
65
- logger_1.logger.info('Terminal window opened (Terminal.app)');
66
- }
67
- else if (platform === 'linux') {
68
- // Linux - Intentar con gnome-terminal, xterm, etc.
69
- try {
70
- await (0, execa_1.execa)('gnome-terminal', ['--', 'tmux', 'attach', '-t', sessionName]);
71
- logger_1.logger.info('Terminal window opened (gnome-terminal)');
72
- }
73
- catch {
74
- try {
75
- await (0, execa_1.execa)('xterm', ['-e', `tmux attach -t ${sessionName}`]);
76
- logger_1.logger.info('Terminal window opened (xterm)');
77
- }
78
- catch {
79
- logger_1.logger.warn('Could not open terminal window on Linux');
80
- throw new Error('No suitable terminal emulator found');
81
- }
82
- }
83
- }
84
- else {
85
- logger_1.logger.warn(`Platform ${platform} not supported for opening terminal windows`);
86
- throw new Error(`Platform ${platform} not supported`);
87
- }
88
- }
89
- catch (error) {
90
- throw new TmuxError(`Failed to open terminal window for session: ${sessionName}`, `osascript/terminal`, error);
91
- }
92
- }
93
- /**
94
- * Cerrar una sesión tmux
95
- */
96
- static async killSession(sessionName) {
97
- try {
98
- logger_1.logger.debug(`Killing tmux session: ${sessionName}`);
99
- await (0, execa_1.execa)('tmux', ['kill-session', '-t', sessionName]);
100
- logger_1.logger.info(`Tmux session killed: ${sessionName}`);
101
- }
102
- catch (error) {
103
- throw new TmuxError(`Failed to kill tmux session: ${sessionName}`, `tmux kill-session -t ${sessionName}`, error);
104
- }
105
- }
106
- /**
107
- * Verificar si una sesión existe
108
- */
109
- static async sessionExists(sessionName) {
110
- try {
111
- await (0, execa_1.execa)('tmux', ['has-session', '-t', sessionName]);
112
- return true;
113
- }
114
- catch {
115
- return false;
116
- }
117
- }
118
- /**
119
- * Obtener el ID del pane principal de una sesión
120
- */
121
- static async getMainPaneId(sessionName) {
122
- try {
123
- logger_1.logger.debug(`Getting main pane ID for session: ${sessionName}`);
124
- const { stdout } = await (0, execa_1.execa)('tmux', [
125
- 'list-panes',
126
- '-t',
127
- sessionName,
128
- '-F',
129
- '#{pane_id}',
130
- ]);
131
- const paneId = stdout.split('\n')[0];
132
- logger_1.logger.debug(`Main pane ID: ${paneId}`);
133
- return paneId;
134
- }
135
- catch (error) {
136
- throw new TmuxError(`Failed to get main pane ID for session: ${sessionName}`, `tmux list-panes -t ${sessionName} -F '#{pane_id}'`, error);
137
- }
138
- }
139
- /**
140
- * Obtener el ID de la ventana principal de una sesión
141
- */
142
- static async getMainWindowId(sessionName) {
143
- try {
144
- logger_1.logger.debug(`Getting main window ID for session: ${sessionName}`);
145
- const { stdout } = await (0, execa_1.execa)('tmux', [
146
- 'list-windows',
147
- '-t',
148
- sessionName,
149
- '-F',
150
- '#{window_id}',
151
- ]);
152
- const windowId = stdout.split('\n')[0];
153
- logger_1.logger.debug(`Main window ID: ${windowId}`);
154
- return windowId;
155
- }
156
- catch (error) {
157
- throw new TmuxError(`Failed to get main window ID for session: ${sessionName}`, `tmux list-windows -t ${sessionName} -F '#{window_id}'`, error);
158
- }
159
- }
160
- /**
161
- * Dividir un pane (crear fork)
162
- * @param sessionName Nombre de la sesión
163
- * @param vertical Si es true, divide verticalmente (-h), si es false horizontalmente (-v)
164
- * @returns ID del nuevo pane creado
165
- */
166
- static async splitPane(sessionName, vertical = false) {
167
- try {
168
- const direction = vertical ? '-h' : '-v';
169
- logger_1.logger.debug(`Splitting pane in session ${sessionName} (${vertical ? 'vertical' : 'horizontal'})`);
170
- await (0, execa_1.execa)('tmux', ['split-window', '-t', sessionName, direction]);
171
- // Obtener el ID del último pane creado
172
- const { stdout } = await (0, execa_1.execa)('tmux', [
173
- 'list-panes',
174
- '-t',
175
- sessionName,
176
- '-F',
177
- '#{pane_id}',
178
- ]);
179
- const panes = stdout.split('\n');
180
- const newPaneId = panes[panes.length - 1];
181
- logger_1.logger.info(`New pane created: ${newPaneId}`);
182
- return newPaneId;
183
- }
184
- catch (error) {
185
- throw new TmuxError(`Failed to split pane in session: ${sessionName}`, `tmux split-window -t ${sessionName} ${vertical ? '-h' : '-v'}`, error);
186
- }
187
- }
188
- /**
189
- * Cerrar un pane específico
190
- */
191
- static async killPane(paneId) {
192
- try {
193
- logger_1.logger.debug(`Killing pane: ${paneId}`);
194
- await (0, execa_1.execa)('tmux', ['kill-pane', '-t', paneId]);
195
- logger_1.logger.info(`Pane killed: ${paneId}`);
196
- }
197
- catch (error) {
198
- throw new TmuxError(`Failed to kill pane: ${paneId}`, `tmux kill-pane -t ${paneId}`, error);
199
- }
200
- }
201
- /**
202
- * Enviar texto a un pane (SIN Enter)
203
- * IMPORTANTE: No envía Enter, debe llamarse a sendEnter() por separado
204
- */
205
- static async sendKeys(paneId, text) {
206
- try {
207
- logger_1.logger.debug(`Sending keys to pane ${paneId}: ${text.substring(0, 50)}...`);
208
- await (0, execa_1.execa)('tmux', ['send-keys', '-t', paneId, text]);
209
- }
210
- catch (error) {
211
- throw new TmuxError(`Failed to send keys to pane: ${paneId}`, `tmux send-keys -t ${paneId} "${text}"`, error);
212
- }
213
- }
214
- /**
215
- * Enviar SOLO Enter a un pane
216
- */
217
- static async sendEnter(paneId) {
218
- try {
219
- logger_1.logger.debug(`Sending Enter to pane: ${paneId}`);
220
- await (0, execa_1.execa)('tmux', ['send-keys', '-t', paneId, 'Enter']);
221
- }
222
- catch (error) {
223
- throw new TmuxError(`Failed to send Enter to pane: ${paneId}`, `tmux send-keys -t ${paneId} Enter`, error);
224
- }
225
- }
226
- /**
227
- * Capturar el contenido de un pane
228
- * @param paneId ID del pane
229
- * @param startLine Línea desde donde empezar a capturar (negativo = desde el final)
230
- * @returns Contenido del pane
231
- */
232
- static async capturePane(paneId, startLine = -100) {
233
- try {
234
- logger_1.logger.debug(`Capturing pane ${paneId} from line ${startLine}`);
235
- const { stdout } = await (0, execa_1.execa)('tmux', [
236
- 'capture-pane',
237
- '-t',
238
- paneId,
239
- '-p',
240
- '-S',
241
- startLine.toString(),
242
- ]);
243
- return stdout;
244
- }
245
- catch (error) {
246
- throw new TmuxError(`Failed to capture pane: ${paneId}`, `tmux capture-pane -t ${paneId} -p -S ${startLine}`, error);
247
- }
248
- }
249
- /**
250
- * Listar todas las sesiones tmux
251
- */
252
- static async listSessions() {
253
- try {
254
- const { stdout } = await (0, execa_1.execa)('tmux', ['list-sessions', '-F', '#{session_id}:#{session_name}']);
255
- return stdout.split('\n').map(line => {
256
- const [id, name] = line.split(':');
257
- return { id, name };
258
- });
259
- }
260
- catch (error) {
261
- // Si no hay sesiones, tmux devuelve error
262
- if (error.stderr?.includes('no server running')) {
263
- return [];
264
- }
265
- throw new TmuxError('Failed to list tmux sessions', 'tmux list-sessions', error);
266
- }
267
- }
268
- }
269
- exports.TmuxCommands = TmuxCommands;
270
- //# sourceMappingURL=tmux.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/utils/tmux.ts"],"names":[],"mappings":"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"}