dmux 5.0.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 (176) hide show
  1. package/README.md +44 -141
  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/components/popups/shortcutsPopup.js +8 -9
  36. package/dist/components/popups/shortcutsPopup.js.map +1 -1
  37. package/dist/hooks/useAutoUpdater.d.ts.map +1 -1
  38. package/dist/hooks/useAutoUpdater.js +42 -23
  39. package/dist/hooks/useAutoUpdater.js.map +1 -1
  40. package/dist/hooks/useInputHandling.d.ts.map +1 -1
  41. package/dist/hooks/useInputHandling.js +25 -5
  42. package/dist/hooks/useInputHandling.js.map +1 -1
  43. package/dist/hooks/useWorktreeActions.d.ts.map +1 -1
  44. package/dist/hooks/useWorktreeActions.js +16 -8
  45. package/dist/hooks/useWorktreeActions.js.map +1 -1
  46. package/dist/index.js +8 -3
  47. package/dist/index.js.map +1 -1
  48. package/dist/server/embedded-assets.d.ts.map +1 -1
  49. package/dist/server/embedded-assets.js +41 -30
  50. package/dist/server/embedded-assets.js.map +1 -1
  51. package/dist/services/AutoUpdater.d.ts +4 -0
  52. package/dist/services/AutoUpdater.d.ts.map +1 -1
  53. package/dist/services/AutoUpdater.js +23 -0
  54. package/dist/services/AutoUpdater.js.map +1 -1
  55. package/dist/services/PopupManager.d.ts +2 -1
  56. package/dist/services/PopupManager.d.ts.map +1 -1
  57. package/dist/services/PopupManager.js +31 -11
  58. package/dist/services/PopupManager.js.map +1 -1
  59. package/dist/services/TmuxService.d.ts +6 -1
  60. package/dist/services/TmuxService.d.ts.map +1 -1
  61. package/dist/services/TmuxService.js +11 -1
  62. package/dist/services/TmuxService.js.map +1 -1
  63. package/dist/services/WorktreeCleanupService.d.ts +22 -0
  64. package/dist/services/WorktreeCleanupService.d.ts.map +1 -0
  65. package/dist/services/WorktreeCleanupService.js +80 -0
  66. package/dist/services/WorktreeCleanupService.js.map +1 -0
  67. package/dist/types.d.ts +5 -1
  68. package/dist/types.d.ts.map +1 -1
  69. package/dist/utils/agentLaunch.d.ts +4 -0
  70. package/dist/utils/agentLaunch.d.ts.map +1 -1
  71. package/dist/utils/agentLaunch.js +24 -0
  72. package/dist/utils/agentLaunch.js.map +1 -1
  73. package/dist/utils/conflictResolutionPane.d.ts.map +1 -1
  74. package/dist/utils/conflictResolutionPane.js +61 -23
  75. package/dist/utils/conflictResolutionPane.js.map +1 -1
  76. package/dist/utils/dirScanner.d.ts +30 -0
  77. package/dist/utils/dirScanner.d.ts.map +1 -0
  78. package/dist/utils/dirScanner.js +99 -0
  79. package/dist/utils/dirScanner.js.map +1 -0
  80. package/dist/utils/generated-agents-doc.d.ts +1 -1
  81. package/dist/utils/generated-agents-doc.js +1 -1
  82. package/dist/utils/git.d.ts +13 -0
  83. package/dist/utils/git.d.ts.map +1 -1
  84. package/dist/utils/git.js +20 -0
  85. package/dist/utils/git.js.map +1 -1
  86. package/dist/utils/hooks.d.ts.map +1 -1
  87. package/dist/utils/hooks.js +51 -19
  88. package/dist/utils/hooks.js.map +1 -1
  89. package/dist/utils/hooksDocs.d.ts +1 -1
  90. package/dist/utils/mergeExecution.d.ts.map +1 -1
  91. package/dist/utils/mergeExecution.js +6 -3
  92. package/dist/utils/mergeExecution.js.map +1 -1
  93. package/dist/utils/onboarding.d.ts +9 -0
  94. package/dist/utils/onboarding.d.ts.map +1 -0
  95. package/dist/utils/onboarding.js +110 -0
  96. package/dist/utils/onboarding.js.map +1 -0
  97. package/dist/utils/openRouterApiKeySetup.d.ts +28 -0
  98. package/dist/utils/openRouterApiKeySetup.d.ts.map +1 -0
  99. package/dist/utils/openRouterApiKeySetup.js +143 -0
  100. package/dist/utils/openRouterApiKeySetup.js.map +1 -0
  101. package/dist/utils/paneCreation.d.ts.map +1 -1
  102. package/dist/utils/paneCreation.js +116 -53
  103. package/dist/utils/paneCreation.js.map +1 -1
  104. package/dist/utils/promptStore.d.ts +7 -0
  105. package/dist/utils/promptStore.d.ts.map +1 -0
  106. package/dist/utils/promptStore.js +75 -0
  107. package/dist/utils/promptStore.js.map +1 -0
  108. package/dist/utils/reopenWorktree.d.ts.map +1 -1
  109. package/dist/utils/reopenWorktree.js +11 -4
  110. package/dist/utils/reopenWorktree.js.map +1 -1
  111. package/dist/utils/settingsManager.d.ts.map +1 -1
  112. package/dist/utils/settingsManager.js +59 -0
  113. package/dist/utils/settingsManager.js.map +1 -1
  114. package/dist/utils/tmux.d.ts +2 -1
  115. package/dist/utils/tmux.d.ts.map +1 -1
  116. package/dist/utils/tmux.js +3 -1
  117. package/dist/utils/tmux.js.map +1 -1
  118. package/dist/workers/updateChecker.js +21 -6
  119. package/dist/workers/updateChecker.js.map +1 -1
  120. package/package.json +5 -8
  121. package/dist/components/popups/remotePopup.d.ts +0 -6
  122. package/dist/components/popups/remotePopup.d.ts.map +0 -1
  123. package/dist/components/popups/remotePopup.js +0 -166
  124. package/dist/components/popups/remotePopup.js.map +0 -1
  125. package/dist/hooks/useTunnelManagement.d.ts +0 -18
  126. package/dist/hooks/useTunnelManagement.d.ts.map +0 -1
  127. package/dist/hooks/useTunnelManagement.js +0 -55
  128. package/dist/hooks/useTunnelManagement.js.map +0 -1
  129. package/dist/server/actionsApi.d.ts +0 -37
  130. package/dist/server/actionsApi.d.ts.map +0 -1
  131. package/dist/server/actionsApi.js +0 -256
  132. package/dist/server/actionsApi.js.map +0 -1
  133. package/dist/server/index.d.ts +0 -21
  134. package/dist/server/index.d.ts.map +0 -1
  135. package/dist/server/index.js +0 -100
  136. package/dist/server/index.js.map +0 -1
  137. package/dist/server/routes/actionsRoutes.d.ts +0 -2
  138. package/dist/server/routes/actionsRoutes.d.ts.map +0 -1
  139. package/dist/server/routes/actionsRoutes.js +0 -110
  140. package/dist/server/routes/actionsRoutes.js.map +0 -1
  141. package/dist/server/routes/healthRoutes.d.ts +0 -13
  142. package/dist/server/routes/healthRoutes.d.ts.map +0 -1
  143. package/dist/server/routes/healthRoutes.js +0 -70
  144. package/dist/server/routes/healthRoutes.js.map +0 -1
  145. package/dist/server/routes/index.d.ts +0 -8
  146. package/dist/server/routes/index.d.ts.map +0 -1
  147. package/dist/server/routes/index.js +0 -67
  148. package/dist/server/routes/index.js.map +0 -1
  149. package/dist/server/routes/keysRoutes.d.ts +0 -33
  150. package/dist/server/routes/keysRoutes.d.ts.map +0 -1
  151. package/dist/server/routes/keysRoutes.js +0 -128
  152. package/dist/server/routes/keysRoutes.js.map +0 -1
  153. package/dist/server/routes/panesRoutes.d.ts +0 -2
  154. package/dist/server/routes/panesRoutes.d.ts.map +0 -1
  155. package/dist/server/routes/panesRoutes.js +0 -414
  156. package/dist/server/routes/panesRoutes.js.map +0 -1
  157. package/dist/server/routes/settingsRoutes.d.ts +0 -94
  158. package/dist/server/routes/settingsRoutes.d.ts.map +0 -1
  159. package/dist/server/routes/settingsRoutes.js +0 -159
  160. package/dist/server/routes/settingsRoutes.js.map +0 -1
  161. package/dist/server/routes/streamRoutes.d.ts +0 -18
  162. package/dist/server/routes/streamRoutes.d.ts.map +0 -1
  163. package/dist/server/routes/streamRoutes.js +0 -87
  164. package/dist/server/routes/streamRoutes.js.map +0 -1
  165. package/dist/server/routes/tunnelRoutes.d.ts +0 -11
  166. package/dist/server/routes/tunnelRoutes.d.ts.map +0 -1
  167. package/dist/server/routes/tunnelRoutes.js +0 -28
  168. package/dist/server/routes/tunnelRoutes.js.map +0 -1
  169. package/dist/server/routes.d.ts +0 -17
  170. package/dist/server/routes.d.ts.map +0 -1
  171. package/dist/server/routes.js +0 -17
  172. package/dist/server/routes.js.map +0 -1
  173. package/dist/services/TunnelService.d.ts +0 -10
  174. package/dist/services/TunnelService.d.ts.map +0 -1
  175. package/dist/services/TunnelService.js +0 -98
  176. package/dist/services/TunnelService.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"actionsApi.d.ts","sourceRoot":"","sources":["../../src/server/actionsApi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAM5D;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA4Ff;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
@@ -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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,MAAM,OAAO,UAAU;IACb,MAAM,GAA2C,IAAI,CAAC;IACtD,IAAI,GAAW,CAAC,CAAC;IACjB,YAAY,CAAe;IAC3B,cAAc,GAAG,KAAK,CAAC;IACvB,GAAG,CAA+B;IAClC,SAAS,GAAkB,IAAI,CAAC;IAExC;QACE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,GAAG,SAAS,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,yBAAyB;YACzB,IAAI,CAAC,IAAI,GAAG,MAAM,iBAAiB,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAEzE,eAAe;YACf,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAE5B,iCAAiC;YACjC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAErD,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;oBAC5C,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC9B,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;oBACpC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;oBAClD,MAAM,SAAS,GAAG,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC;oBAClD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBAEzD,sFAAsF;oBACtF,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC/C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;YACjD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,wEAAwE;YACxE,sDAAsD;YACtD,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAChD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,oBAAoB;QACpB,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAE3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;oBACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,SAAS;QACP,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACxC,CAAC;CACF"}
@@ -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"}