dmux 5.1.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/README.md +44 -145
  2. package/dist/actions/implementations/closeAction.d.ts.map +1 -1
  3. package/dist/actions/implementations/closeAction.js +25 -20
  4. package/dist/actions/implementations/closeAction.js.map +1 -1
  5. package/dist/actions/implementations/mergeAction.d.ts.map +1 -1
  6. package/dist/actions/implementations/mergeAction.js +2 -1
  7. package/dist/actions/implementations/mergeAction.js.map +1 -1
  8. package/dist/actions/merge/conflictResolution.d.ts.map +1 -1
  9. package/dist/actions/merge/conflictResolution.js +2 -1
  10. package/dist/actions/merge/conflictResolution.js.map +1 -1
  11. package/dist/actions/merge/mergeExecution.d.ts.map +1 -1
  12. package/dist/actions/merge/mergeExecution.js +2 -1
  13. package/dist/actions/merge/mergeExecution.js.map +1 -1
  14. package/dist/components/dialogs/SettingsDialog.d.ts.map +1 -1
  15. package/dist/components/dialogs/SettingsDialog.js +3 -1
  16. package/dist/components/dialogs/SettingsDialog.js.map +1 -1
  17. package/dist/components/panes/MergePane.d.ts +1 -0
  18. package/dist/components/panes/MergePane.d.ts.map +1 -1
  19. package/dist/components/panes/MergePane.js +14 -3
  20. package/dist/components/panes/MergePane.js.map +1 -1
  21. package/dist/components/popups/projectSelectPopup.d.ts +7 -0
  22. package/dist/components/popups/projectSelectPopup.d.ts.map +1 -0
  23. package/dist/components/popups/projectSelectPopup.js +124 -0
  24. package/dist/components/popups/projectSelectPopup.js.map +1 -0
  25. package/dist/components/popups/settingsPopup.js +25 -8
  26. package/dist/components/popups/settingsPopup.js.map +1 -1
  27. package/dist/components/popups/shared/DirectoryList.d.ts +14 -0
  28. package/dist/components/popups/shared/DirectoryList.d.ts.map +1 -0
  29. package/dist/components/popups/shared/DirectoryList.js +46 -0
  30. package/dist/components/popups/shared/DirectoryList.js.map +1 -0
  31. package/dist/components/popups/shared/index.d.ts +1 -0
  32. package/dist/components/popups/shared/index.d.ts.map +1 -1
  33. package/dist/components/popups/shared/index.js +1 -0
  34. package/dist/components/popups/shared/index.js.map +1 -1
  35. package/dist/hooks/useAutoUpdater.d.ts.map +1 -1
  36. package/dist/hooks/useAutoUpdater.js +42 -23
  37. package/dist/hooks/useAutoUpdater.js.map +1 -1
  38. package/dist/hooks/useInputHandling.d.ts.map +1 -1
  39. package/dist/hooks/useInputHandling.js +1 -1
  40. package/dist/hooks/useInputHandling.js.map +1 -1
  41. package/dist/hooks/useWorktreeActions.d.ts.map +1 -1
  42. package/dist/hooks/useWorktreeActions.js +16 -8
  43. package/dist/hooks/useWorktreeActions.js.map +1 -1
  44. package/dist/index.js +5 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/server/embedded-assets.d.ts.map +1 -1
  47. package/dist/server/embedded-assets.js +37 -26
  48. package/dist/server/embedded-assets.js.map +1 -1
  49. package/dist/services/AutoUpdater.d.ts +4 -0
  50. package/dist/services/AutoUpdater.d.ts.map +1 -1
  51. package/dist/services/AutoUpdater.js +23 -0
  52. package/dist/services/AutoUpdater.js.map +1 -1
  53. package/dist/services/PopupManager.d.ts +1 -0
  54. package/dist/services/PopupManager.d.ts.map +1 -1
  55. package/dist/services/PopupManager.js +24 -8
  56. package/dist/services/PopupManager.js.map +1 -1
  57. package/dist/services/TmuxService.d.ts +6 -1
  58. package/dist/services/TmuxService.d.ts.map +1 -1
  59. package/dist/services/TmuxService.js +11 -1
  60. package/dist/services/TmuxService.js.map +1 -1
  61. package/dist/services/WorktreeCleanupService.d.ts +22 -0
  62. package/dist/services/WorktreeCleanupService.d.ts.map +1 -0
  63. package/dist/services/WorktreeCleanupService.js +80 -0
  64. package/dist/services/WorktreeCleanupService.js.map +1 -0
  65. package/dist/types.d.ts +5 -1
  66. package/dist/types.d.ts.map +1 -1
  67. package/dist/utils/agentLaunch.d.ts +4 -0
  68. package/dist/utils/agentLaunch.d.ts.map +1 -1
  69. package/dist/utils/agentLaunch.js +24 -0
  70. package/dist/utils/agentLaunch.js.map +1 -1
  71. package/dist/utils/conflictResolutionPane.d.ts.map +1 -1
  72. package/dist/utils/conflictResolutionPane.js +61 -23
  73. package/dist/utils/conflictResolutionPane.js.map +1 -1
  74. package/dist/utils/dirScanner.d.ts +30 -0
  75. package/dist/utils/dirScanner.d.ts.map +1 -0
  76. package/dist/utils/dirScanner.js +99 -0
  77. package/dist/utils/dirScanner.js.map +1 -0
  78. package/dist/utils/generated-agents-doc.d.ts +1 -1
  79. package/dist/utils/generated-agents-doc.js +1 -1
  80. package/dist/utils/git.d.ts +13 -0
  81. package/dist/utils/git.d.ts.map +1 -1
  82. package/dist/utils/git.js +20 -0
  83. package/dist/utils/git.js.map +1 -1
  84. package/dist/utils/hooks.js +1 -1
  85. package/dist/utils/hooks.js.map +1 -1
  86. package/dist/utils/hooksDocs.d.ts +1 -1
  87. package/dist/utils/mergeExecution.d.ts.map +1 -1
  88. package/dist/utils/mergeExecution.js +6 -3
  89. package/dist/utils/mergeExecution.js.map +1 -1
  90. package/dist/utils/paneCreation.d.ts.map +1 -1
  91. package/dist/utils/paneCreation.js +106 -34
  92. package/dist/utils/paneCreation.js.map +1 -1
  93. package/dist/utils/promptStore.d.ts +7 -0
  94. package/dist/utils/promptStore.d.ts.map +1 -0
  95. package/dist/utils/promptStore.js +75 -0
  96. package/dist/utils/promptStore.js.map +1 -0
  97. package/dist/utils/reopenWorktree.d.ts.map +1 -1
  98. package/dist/utils/reopenWorktree.js +10 -3
  99. package/dist/utils/reopenWorktree.js.map +1 -1
  100. package/dist/utils/settingsManager.d.ts.map +1 -1
  101. package/dist/utils/settingsManager.js +59 -0
  102. package/dist/utils/settingsManager.js.map +1 -1
  103. package/dist/workers/updateChecker.js +21 -6
  104. package/dist/workers/updateChecker.js.map +1 -1
  105. package/package.json +5 -8
  106. package/dist/components/popups/remotePopup.d.ts +0 -6
  107. package/dist/components/popups/remotePopup.d.ts.map +0 -1
  108. package/dist/components/popups/remotePopup.js +0 -166
  109. package/dist/components/popups/remotePopup.js.map +0 -1
  110. package/dist/hooks/useTunnelManagement.d.ts +0 -18
  111. package/dist/hooks/useTunnelManagement.d.ts.map +0 -1
  112. package/dist/hooks/useTunnelManagement.js +0 -55
  113. package/dist/hooks/useTunnelManagement.js.map +0 -1
  114. package/dist/server/actionsApi.d.ts +0 -37
  115. package/dist/server/actionsApi.d.ts.map +0 -1
  116. package/dist/server/actionsApi.js +0 -256
  117. package/dist/server/actionsApi.js.map +0 -1
  118. package/dist/server/index.d.ts +0 -21
  119. package/dist/server/index.d.ts.map +0 -1
  120. package/dist/server/index.js +0 -100
  121. package/dist/server/index.js.map +0 -1
  122. package/dist/server/routes/actionsRoutes.d.ts +0 -2
  123. package/dist/server/routes/actionsRoutes.d.ts.map +0 -1
  124. package/dist/server/routes/actionsRoutes.js +0 -110
  125. package/dist/server/routes/actionsRoutes.js.map +0 -1
  126. package/dist/server/routes/healthRoutes.d.ts +0 -13
  127. package/dist/server/routes/healthRoutes.d.ts.map +0 -1
  128. package/dist/server/routes/healthRoutes.js +0 -70
  129. package/dist/server/routes/healthRoutes.js.map +0 -1
  130. package/dist/server/routes/index.d.ts +0 -8
  131. package/dist/server/routes/index.d.ts.map +0 -1
  132. package/dist/server/routes/index.js +0 -67
  133. package/dist/server/routes/index.js.map +0 -1
  134. package/dist/server/routes/keysRoutes.d.ts +0 -33
  135. package/dist/server/routes/keysRoutes.d.ts.map +0 -1
  136. package/dist/server/routes/keysRoutes.js +0 -128
  137. package/dist/server/routes/keysRoutes.js.map +0 -1
  138. package/dist/server/routes/panesRoutes.d.ts +0 -2
  139. package/dist/server/routes/panesRoutes.d.ts.map +0 -1
  140. package/dist/server/routes/panesRoutes.js +0 -414
  141. package/dist/server/routes/panesRoutes.js.map +0 -1
  142. package/dist/server/routes/settingsRoutes.d.ts +0 -94
  143. package/dist/server/routes/settingsRoutes.d.ts.map +0 -1
  144. package/dist/server/routes/settingsRoutes.js +0 -159
  145. package/dist/server/routes/settingsRoutes.js.map +0 -1
  146. package/dist/server/routes/streamRoutes.d.ts +0 -18
  147. package/dist/server/routes/streamRoutes.d.ts.map +0 -1
  148. package/dist/server/routes/streamRoutes.js +0 -87
  149. package/dist/server/routes/streamRoutes.js.map +0 -1
  150. package/dist/server/routes/tunnelRoutes.d.ts +0 -11
  151. package/dist/server/routes/tunnelRoutes.d.ts.map +0 -1
  152. package/dist/server/routes/tunnelRoutes.js +0 -28
  153. package/dist/server/routes/tunnelRoutes.js.map +0 -1
  154. package/dist/server/routes.d.ts +0 -17
  155. package/dist/server/routes.d.ts.map +0 -1
  156. package/dist/server/routes.js +0 -17
  157. package/dist/server/routes.js.map +0 -1
  158. package/dist/services/TunnelService.d.ts +0 -10
  159. package/dist/services/TunnelService.d.ts.map +0 -1
  160. package/dist/services/TunnelService.js +0 -98
  161. package/dist/services/TunnelService.js.map +0 -1
@@ -1,256 +0,0 @@
1
- /**
2
- * REST API for Pane Actions
3
- *
4
- * Provides HTTP endpoints for executing standardized pane actions.
5
- */
6
- import { executeAction, getAvailableActions, ACTION_REGISTRY } from '../actions/index.js';
7
- import { actionResultToAPIResponse, handleConfirmResponse, handleChoiceResponse, handleInputResponse } from '../adapters/apiActionHandler.js';
8
- import { StateManager } from '../shared/StateManager.js';
9
- /**
10
- * Handle GET /api/actions
11
- * List all available actions with metadata
12
- */
13
- export async function handleListActions(req, res) {
14
- res.writeHead(200, { 'Content-Type': 'application/json' });
15
- res.end(JSON.stringify({
16
- success: true,
17
- actions: Object.values(ACTION_REGISTRY),
18
- }));
19
- }
20
- /**
21
- * Handle GET /api/panes/:paneId/actions
22
- * Get available actions for a specific pane
23
- */
24
- export async function handleGetPaneActions(req, res, paneId) {
25
- const stateManager = StateManager.getInstance();
26
- const panes = stateManager.getPanes();
27
- const settings = stateManager.getState().settings;
28
- const pane = panes.find(p => p.id === paneId);
29
- if (!pane) {
30
- res.writeHead(404, { 'Content-Type': 'application/json' });
31
- res.end(JSON.stringify({
32
- success: false,
33
- error: 'Pane not found',
34
- }));
35
- return;
36
- }
37
- const availableActions = getAvailableActions(pane, settings);
38
- res.writeHead(200, { 'Content-Type': 'application/json' });
39
- res.end(JSON.stringify({
40
- success: true,
41
- pane: {
42
- id: pane.id,
43
- slug: pane.slug,
44
- },
45
- actions: availableActions,
46
- }));
47
- }
48
- /**
49
- * Handle POST /api/panes/:paneId/actions/:actionId
50
- * Execute an action on a pane
51
- */
52
- export async function handleExecuteAction(req, res, paneId, actionId) {
53
- const stateManager = StateManager.getInstance();
54
- const panes = stateManager.getPanes();
55
- const pane = panes.find(p => p.id === paneId);
56
- if (!pane) {
57
- res.writeHead(404, { 'Content-Type': 'application/json' });
58
- res.end(JSON.stringify({
59
- success: false,
60
- error: 'Pane not found',
61
- }));
62
- return;
63
- }
64
- // Parse request body for action parameters
65
- let params = {};
66
- if (req.method === 'POST') {
67
- const body = await readRequestBody(req);
68
- try {
69
- params = JSON.parse(body);
70
- }
71
- catch {
72
- // Ignore parse errors, use empty params
73
- }
74
- }
75
- // Create action context
76
- const state = stateManager.getState();
77
- const context = {
78
- panes,
79
- currentPaneId: paneId,
80
- sessionName: state.sessionName || 'dmux',
81
- projectName: state.projectName || 'project',
82
- savePanes: async (updatedPanes) => {
83
- // Persist to disk - ConfigWatcher will update StateManager when file changes
84
- const panesFile = state.panesFile;
85
- if (panesFile) {
86
- try {
87
- const fs = await import('fs/promises');
88
- const path = await import('path');
89
- // Read current config
90
- let config = { panes: [] };
91
- try {
92
- const content = await fs.readFile(panesFile, 'utf-8');
93
- const parsed = JSON.parse(content);
94
- if (!Array.isArray(parsed)) {
95
- config = parsed;
96
- }
97
- }
98
- catch { }
99
- // Update panes in config
100
- config.panes = updatedPanes;
101
- // Write back
102
- await fs.writeFile(panesFile, JSON.stringify(config, null, 2), 'utf-8');
103
- }
104
- catch (error) {
105
- console.error('Failed to persist panes to disk:', error);
106
- }
107
- }
108
- },
109
- onPaneUpdate: (updatedPane) => {
110
- const currentPanes = stateManager.getPanes();
111
- const newPanes = currentPanes.map(p => p.id === updatedPane.id ? updatedPane : p);
112
- // Persist via savePanes - ConfigWatcher will update StateManager
113
- context.savePanes(newPanes);
114
- },
115
- onPaneRemove: (removedPaneId) => {
116
- const currentPanes = stateManager.getPanes();
117
- const newPanes = currentPanes.filter(p => p.id !== removedPaneId);
118
- // Persist via savePanes - ConfigWatcher will update StateManager
119
- context.savePanes(newPanes);
120
- },
121
- };
122
- try {
123
- // Execute the action
124
- const result = await executeAction(actionId, pane, context, params);
125
- // Convert to API response
126
- const apiResponse = actionResultToAPIResponse(result);
127
- res.writeHead(200, { 'Content-Type': 'application/json' });
128
- res.end(JSON.stringify(apiResponse));
129
- }
130
- catch (error) {
131
- res.writeHead(500, { 'Content-Type': 'application/json' });
132
- res.end(JSON.stringify({
133
- success: false,
134
- type: 'error',
135
- message: `Action execution failed: ${error}`,
136
- }));
137
- }
138
- }
139
- /**
140
- * Handle POST /api/callbacks/confirm/:callbackId
141
- * Respond to a confirm dialog
142
- */
143
- export async function handleConfirmCallback(req, res, callbackId) {
144
- const body = await readRequestBody(req);
145
- let confirmed = false;
146
- try {
147
- const data = JSON.parse(body);
148
- confirmed = data.confirmed === true;
149
- }
150
- catch {
151
- res.writeHead(400, { 'Content-Type': 'application/json' });
152
- res.end(JSON.stringify({
153
- success: false,
154
- error: 'Invalid request body',
155
- }));
156
- return;
157
- }
158
- try {
159
- const result = await handleConfirmResponse(callbackId, confirmed);
160
- res.writeHead(200, { 'Content-Type': 'application/json' });
161
- res.end(JSON.stringify(result));
162
- }
163
- catch (error) {
164
- res.writeHead(500, { 'Content-Type': 'application/json' });
165
- res.end(JSON.stringify({
166
- success: false,
167
- type: 'error',
168
- message: `Callback execution failed: ${error}`,
169
- }));
170
- }
171
- }
172
- /**
173
- * Handle POST /api/callbacks/choice/:callbackId
174
- * Respond to a choice dialog
175
- */
176
- export async function handleChoiceCallback(req, res, callbackId) {
177
- const body = await readRequestBody(req);
178
- let optionId;
179
- try {
180
- const data = JSON.parse(body);
181
- optionId = data.optionId;
182
- if (typeof optionId !== 'string') {
183
- throw new Error('Missing optionId');
184
- }
185
- }
186
- catch {
187
- res.writeHead(400, { 'Content-Type': 'application/json' });
188
- res.end(JSON.stringify({
189
- success: false,
190
- error: 'Invalid request body - missing optionId',
191
- }));
192
- return;
193
- }
194
- try {
195
- const result = await handleChoiceResponse(callbackId, optionId);
196
- res.writeHead(200, { 'Content-Type': 'application/json' });
197
- res.end(JSON.stringify(result));
198
- }
199
- catch (error) {
200
- res.writeHead(500, { 'Content-Type': 'application/json' });
201
- res.end(JSON.stringify({
202
- success: false,
203
- type: 'error',
204
- message: `Callback execution failed: ${error}`,
205
- }));
206
- }
207
- }
208
- /**
209
- * Handle POST /api/callbacks/input/:callbackId
210
- * Respond to an input dialog
211
- */
212
- export async function handleInputCallback(req, res, callbackId) {
213
- const body = await readRequestBody(req);
214
- let value;
215
- try {
216
- const data = JSON.parse(body);
217
- value = data.value || '';
218
- }
219
- catch {
220
- res.writeHead(400, { 'Content-Type': 'application/json' });
221
- res.end(JSON.stringify({
222
- success: false,
223
- error: 'Invalid request body',
224
- }));
225
- return;
226
- }
227
- try {
228
- const result = await handleInputResponse(callbackId, value);
229
- res.writeHead(200, { 'Content-Type': 'application/json' });
230
- res.end(JSON.stringify(result));
231
- }
232
- catch (error) {
233
- res.writeHead(500, { 'Content-Type': 'application/json' });
234
- res.end(JSON.stringify({
235
- success: false,
236
- type: 'error',
237
- message: `Callback execution failed: ${error}`,
238
- }));
239
- }
240
- }
241
- /**
242
- * Helper to read request body
243
- */
244
- function readRequestBody(req) {
245
- return new Promise((resolve, reject) => {
246
- let body = '';
247
- req.on('data', chunk => {
248
- body += chunk.toString();
249
- });
250
- req.on('end', () => {
251
- resolve(body);
252
- });
253
- req.on('error', reject);
254
- });
255
- }
256
- //# sourceMappingURL=actionsApi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actionsApi.js","sourceRoot":"","sources":["../../src/server/actionsApi.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- export declare class DmuxServer {
2
- private server;
3
- private port;
4
- private stateManager;
5
- private isShuttingDown;
6
- private app;
7
- private tunnelUrl;
8
- constructor();
9
- start(): Promise<{
10
- port: number;
11
- url: string;
12
- tunnelUrl?: string;
13
- }>;
14
- startTunnel(): Promise<string>;
15
- stop(): Promise<void>;
16
- getPort(): number;
17
- getUrl(): string;
18
- getTunnelUrl(): string | null;
19
- isRunning(): boolean;
20
- }
21
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAOA,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,SAAS,CAAuB;;IAOlC,KAAK,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAoCnE,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAoB9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB3B,OAAO,IAAI,MAAM;IAIjB,MAAM,IAAI,MAAM;IAIhB,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,SAAS,IAAI,OAAO;CAGrB"}
@@ -1,100 +0,0 @@
1
- import { createServer } from 'http';
2
- import { createApp, toNodeListener } from 'h3';
3
- import { StateManager } from '../shared/StateManager.js';
4
- import { findAvailablePort } from '../utils/port.js';
5
- import { setupRoutes } from './routes.js';
6
- import { tunnelService } from '../services/TunnelService.js';
7
- export class DmuxServer {
8
- server = null;
9
- port = 0;
10
- stateManager;
11
- isShuttingDown = false;
12
- app;
13
- tunnelUrl = null;
14
- constructor() {
15
- this.stateManager = StateManager.getInstance();
16
- this.app = createApp();
17
- }
18
- async start() {
19
- try {
20
- // Find an available port
21
- this.port = await findAvailablePort([42000, 42001, 42002, 42003, 42004]);
22
- // Setup routes
23
- setupRoutes(this.app, this);
24
- // Create HTTP server with h3 app
25
- this.server = createServer(toNodeListener(this.app));
26
- return new Promise(async (resolve, reject) => {
27
- if (!this.server) {
28
- reject(new Error('Server not initialized'));
29
- return;
30
- }
31
- this.server.on('error', (err) => {
32
- console.error('Server error:', err);
33
- reject(err);
34
- });
35
- this.server.listen(this.port, '0.0.0.0', async () => {
36
- const serverUrl = `http://127.0.0.1:${this.port}`;
37
- this.stateManager.updateServerInfo(this.port, serverUrl);
38
- // Don't start tunnel automatically - it will be started on demand when "r" is pressed
39
- resolve({ port: this.port, url: serverUrl });
40
- });
41
- });
42
- }
43
- catch (err) {
44
- console.error('Failed to start h3 server:', err);
45
- throw err;
46
- }
47
- }
48
- async startTunnel() {
49
- if (!this.port) {
50
- throw new Error('Server not started');
51
- }
52
- if (this.tunnelUrl) {
53
- return this.tunnelUrl;
54
- }
55
- try {
56
- this.tunnelUrl = await tunnelService.start(this.port);
57
- // Don't update StateManager with tunnel URL - keep local URL as primary
58
- // The tunnel URL is just an alternative access method
59
- return this.tunnelUrl;
60
- }
61
- catch (error) {
62
- console.error('Failed to start tunnel:', error);
63
- throw error;
64
- }
65
- }
66
- async stop() {
67
- if (this.isShuttingDown || !this.server) {
68
- return;
69
- }
70
- this.isShuttingDown = true;
71
- // Stop tunnel first
72
- await tunnelService.stop();
73
- return new Promise((resolve) => {
74
- if (this.server) {
75
- this.server.close(() => {
76
- this.server = null;
77
- this.port = 0;
78
- this.tunnelUrl = null;
79
- resolve();
80
- });
81
- }
82
- else {
83
- resolve();
84
- }
85
- });
86
- }
87
- getPort() {
88
- return this.port;
89
- }
90
- getUrl() {
91
- return this.port ? `http://127.0.0.1:${this.port}` : '';
92
- }
93
- getTunnelUrl() {
94
- return this.tunnelUrl;
95
- }
96
- isRunning() {
97
- return !!this.server && this.port > 0;
98
- }
99
- }
100
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function createActionsRoutes(): import("h3").Router;
2
- //# sourceMappingURL=actionsRoutes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actionsRoutes.d.ts","sourceRoot":"","sources":["../../../src/server/routes/actionsRoutes.ts"],"names":[],"mappings":"AAeA,wBAAgB,mBAAmB,wBA2HlC"}
@@ -1,110 +0,0 @@
1
- import { eventHandler, getRouterParams, setHeader, createRouter, } from 'h3';
2
- import { handleListActions, handleGetPaneActions, handleExecuteAction, handleConfirmCallback, handleChoiceCallback, handleInputCallback } from '../actionsApi.js';
3
- export function createActionsRoutes() {
4
- const router = createRouter();
5
- // GET /api/actions - List all actions
6
- router.get('/api/actions', eventHandler(async (event) => {
7
- return new Promise((resolve, reject) => {
8
- handleListActions(event.node.req, {
9
- writeHead: (code, headers) => {
10
- event.node.res.statusCode = code;
11
- Object.entries(headers).forEach(([k, v]) => setHeader(event, k, v));
12
- },
13
- end: (data) => resolve(JSON.parse(data))
14
- });
15
- });
16
- }));
17
- // GET /api/panes/:id/actions - Get available actions for pane
18
- router.get('/api/panes/:id/actions', eventHandler(async (event) => {
19
- const params = getRouterParams(event);
20
- const paneId = params?.id;
21
- if (!paneId) {
22
- event.node.res.statusCode = 400;
23
- return { error: 'Missing pane ID' };
24
- }
25
- return new Promise((resolve, reject) => {
26
- handleGetPaneActions(event.node.req, {
27
- writeHead: (code, headers) => {
28
- event.node.res.statusCode = code;
29
- Object.entries(headers).forEach(([k, v]) => setHeader(event, k, v));
30
- },
31
- end: (data) => resolve(JSON.parse(data))
32
- }, decodeURIComponent(paneId));
33
- });
34
- }));
35
- // POST /api/panes/:paneId/actions/:actionId - Execute action
36
- router.post('/api/panes/:paneId/actions/:actionId', eventHandler(async (event) => {
37
- const params = getRouterParams(event);
38
- const paneId = params?.paneId;
39
- const actionId = params?.actionId;
40
- if (!paneId || !actionId) {
41
- event.node.res.statusCode = 400;
42
- return { error: 'Missing pane ID or action ID' };
43
- }
44
- return new Promise((resolve, reject) => {
45
- handleExecuteAction(event.node.req, {
46
- writeHead: (code, headers) => {
47
- event.node.res.statusCode = code;
48
- Object.entries(headers).forEach(([k, v]) => setHeader(event, k, v));
49
- },
50
- end: (data) => resolve(JSON.parse(data))
51
- }, decodeURIComponent(paneId), decodeURIComponent(actionId));
52
- });
53
- }));
54
- // POST /api/callbacks/confirm/:callbackId - Respond to confirm dialog
55
- router.post('/api/callbacks/confirm/:callbackId', eventHandler(async (event) => {
56
- const params = getRouterParams(event);
57
- const callbackId = params?.callbackId;
58
- if (!callbackId) {
59
- event.node.res.statusCode = 400;
60
- return { error: 'Missing callback ID' };
61
- }
62
- return new Promise((resolve, reject) => {
63
- handleConfirmCallback(event.node.req, {
64
- writeHead: (code, headers) => {
65
- event.node.res.statusCode = code;
66
- Object.entries(headers).forEach(([k, v]) => setHeader(event, k, v));
67
- },
68
- end: (data) => resolve(JSON.parse(data))
69
- }, decodeURIComponent(callbackId));
70
- });
71
- }));
72
- // POST /api/callbacks/choice/:callbackId - Respond to choice dialog
73
- router.post('/api/callbacks/choice/:callbackId', eventHandler(async (event) => {
74
- const params = getRouterParams(event);
75
- const callbackId = params?.callbackId;
76
- if (!callbackId) {
77
- event.node.res.statusCode = 400;
78
- return { error: 'Missing callback ID' };
79
- }
80
- return new Promise((resolve, reject) => {
81
- handleChoiceCallback(event.node.req, {
82
- writeHead: (code, headers) => {
83
- event.node.res.statusCode = code;
84
- Object.entries(headers).forEach(([k, v]) => setHeader(event, k, v));
85
- },
86
- end: (data) => resolve(JSON.parse(data))
87
- }, decodeURIComponent(callbackId));
88
- });
89
- }));
90
- // POST /api/callbacks/input/:callbackId - Respond to input dialog
91
- router.post('/api/callbacks/input/:callbackId', eventHandler(async (event) => {
92
- const params = getRouterParams(event);
93
- const callbackId = params?.callbackId;
94
- if (!callbackId) {
95
- event.node.res.statusCode = 400;
96
- return { error: 'Missing callback ID' };
97
- }
98
- return new Promise((resolve, reject) => {
99
- handleInputCallback(event.node.req, {
100
- writeHead: (code, headers) => {
101
- event.node.res.statusCode = code;
102
- Object.entries(headers).forEach(([k, v]) => setHeader(event, k, v));
103
- },
104
- end: (data) => resolve(JSON.parse(data))
105
- }, decodeURIComponent(callbackId));
106
- });
107
- }));
108
- return router;
109
- }
110
- //# sourceMappingURL=actionsRoutes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actionsRoutes.js","sourceRoot":"","sources":["../../../src/server/routes/actionsRoutes.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- export declare function createHealthRoutes(): ({
2
- path: string;
3
- handler: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<{
4
- status: string;
5
- timestamp: number;
6
- }>>;
7
- } | {
8
- path: string;
9
- handler: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<string | {
10
- error: string;
11
- }>>;
12
- })[];
13
- //# sourceMappingURL=healthRoutes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"healthRoutes.d.ts","sourceRoot":"","sources":["../../../src/server/routes/healthRoutes.ts"],"names":[],"mappings":"AAWA,wBAAgB,kBAAkB;;;;;;;;;;;KAmEjC"}
@@ -1,70 +0,0 @@
1
- import { eventHandler, setHeader } from 'h3';
2
- import { getEmbeddedAsset } from '../embedded-assets.js';
3
- function serveEmbeddedAsset(filename) {
4
- const asset = getEmbeddedAsset(filename);
5
- if (!asset) {
6
- throw new Error(`Embedded asset not found: ${filename}`);
7
- }
8
- return asset.content;
9
- }
10
- export function createHealthRoutes() {
11
- return [
12
- // GET /api/health - Health check
13
- {
14
- path: '/api/health',
15
- handler: eventHandler(async () => {
16
- return { status: 'ok', timestamp: Date.now() };
17
- })
18
- },
19
- // Static files - Dashboard HTML
20
- // IMPORTANT: This must be last to avoid catching API routes
21
- {
22
- path: '/',
23
- handler: eventHandler(async (event) => {
24
- const path = event.node.req.url || '/';
25
- // Skip API routes - let them 404 naturally
26
- if (path.startsWith('/api/')) {
27
- event.node.res.statusCode = 404;
28
- return { error: 'API endpoint not found' };
29
- }
30
- if (path === '/' || path === '/index.html') {
31
- setHeader(event, 'Content-Type', 'text/html');
32
- return serveEmbeddedAsset('dashboard.html');
33
- }
34
- // Terminal viewer page
35
- if (path.startsWith('/panes/')) {
36
- setHeader(event, 'Content-Type', 'text/html');
37
- return serveEmbeddedAsset('terminal.html');
38
- }
39
- // Serve any CSS file from root of dist/
40
- if (path.endsWith('.css')) {
41
- const filename = path.substring(1); // Remove leading /
42
- const asset = getEmbeddedAsset(filename);
43
- if (asset) {
44
- setHeader(event, 'Content-Type', 'text/css');
45
- return asset.content;
46
- }
47
- }
48
- // Serve any JS file from root of dist/ (not in subdirectories)
49
- if (path.endsWith('.js') && path.lastIndexOf('/') === 0) {
50
- const filename = path.substring(1); // Remove leading /
51
- const asset = getEmbeddedAsset(filename);
52
- if (asset) {
53
- setHeader(event, 'Content-Type', 'application/javascript');
54
- return asset.content;
55
- }
56
- }
57
- // Serve chunk files
58
- if (path.startsWith('/chunks/')) {
59
- setHeader(event, 'Content-Type', 'application/javascript');
60
- const filename = path.substring(1); // Remove leading /
61
- return serveEmbeddedAsset(filename);
62
- }
63
- // 404 for unknown routes
64
- event.node.res.statusCode = 404;
65
- return 'Not Found';
66
- })
67
- }
68
- ];
69
- }
70
- //# sourceMappingURL=healthRoutes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"healthRoutes.js","sourceRoot":"","sources":["../../../src/server/routes/healthRoutes.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { type App } from 'h3';
2
- /**
3
- * Sets up all application routes
4
- * @param app - The h3 app instance
5
- * @param server - Optional server instance for tunnel functionality
6
- */
7
- export declare function setupRoutes(app: App, server?: any): void;
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,GAAG,EAAE,MAAM,IAAI,CAAC;AASvD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,QA6DjD"}