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,414 +0,0 @@
1
- import { eventHandler, getRouterParams, readBody, createRouter, } from 'h3';
2
- import { StateManager } from '../../shared/StateManager.js';
3
- import { LogService } from '../../services/LogService.js';
4
- const stateManager = StateManager.getInstance();
5
- function formatPaneResponse(pane) {
6
- return {
7
- id: pane.id,
8
- slug: pane.slug,
9
- prompt: pane.prompt,
10
- paneId: pane.paneId,
11
- projectRoot: pane.projectRoot,
12
- projectName: pane.projectName,
13
- worktreePath: pane.worktreePath,
14
- agent: pane.agent || 'unknown',
15
- agentStatus: pane.agentStatus || 'idle',
16
- testStatus: pane.testStatus,
17
- testWindowId: pane.testWindowId,
18
- devStatus: pane.devStatus,
19
- devUrl: pane.devUrl,
20
- devWindowId: pane.devWindowId,
21
- lastAgentCheck: pane.lastAgentCheck,
22
- optionsQuestion: pane.optionsQuestion,
23
- options: pane.options,
24
- potentialHarm: pane.potentialHarm,
25
- agentSummary: pane.agentSummary
26
- };
27
- }
28
- export function createPanesRoutes() {
29
- const router = createRouter();
30
- // GET /api/panes - List all panes
31
- router.get('/api/panes', eventHandler(async (event) => {
32
- const state = stateManager.getState();
33
- return {
34
- panes: state.panes.map(formatPaneResponse),
35
- projectName: state.projectName,
36
- sessionName: state.sessionName,
37
- timestamp: Date.now()
38
- };
39
- }));
40
- // GET /api/panes/:id - Get specific pane
41
- router.get('/api/panes/:id', eventHandler(async (event) => {
42
- const params = getRouterParams(event);
43
- const paneId = params?.id;
44
- if (!paneId) {
45
- event.node.res.statusCode = 400;
46
- return { error: 'Missing pane ID' };
47
- }
48
- const pane = stateManager.getPaneById(decodeURIComponent(paneId));
49
- if (!pane) {
50
- event.node.res.statusCode = 404;
51
- return { error: 'Pane not found' };
52
- }
53
- return formatPaneResponse(pane);
54
- }));
55
- // POST /api/panes - Create a new pane
56
- router.post('/api/panes', eventHandler(async (event) => {
57
- try {
58
- const body = await readBody(event);
59
- let { prompt, agent, projectPath } = body;
60
- console.error('[API] POST /api/panes called with:', { prompt, agent, body });
61
- if (!prompt || typeof prompt !== 'string') {
62
- event.node.res.statusCode = 400;
63
- return { error: 'Missing or invalid prompt' };
64
- }
65
- if (projectPath !== undefined && typeof projectPath !== 'string') {
66
- event.node.res.statusCode = 400;
67
- return { error: 'Invalid projectPath. Must be a string path.' };
68
- }
69
- // Normalize agent to undefined if not provided or empty
70
- if (!agent || agent === '') {
71
- agent = undefined;
72
- }
73
- console.error('[API] After normalization, agent =', agent);
74
- if (agent && agent !== 'claude' && agent !== 'opencode' && agent !== 'codex') {
75
- event.node.res.statusCode = 400;
76
- return { error: 'Invalid agent. Must be "claude", "opencode", or "codex"' };
77
- }
78
- // Get available agents using robust detection (same as TUI)
79
- const { execSync } = await import('child_process');
80
- const fsPromises = await import('fs/promises');
81
- const availableAgents = [];
82
- // Check for Claude
83
- const hasClaude = await (async () => {
84
- try {
85
- const userShell = process.env.SHELL || '/bin/bash';
86
- const result = execSync(`${userShell} -i -c "command -v claude 2>/dev/null || which claude 2>/dev/null"`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
87
- if (result)
88
- return true;
89
- }
90
- catch { }
91
- const claudePaths = [
92
- `${process.env.HOME}/.claude/local/claude`,
93
- `${process.env.HOME}/.local/bin/claude`,
94
- '/usr/local/bin/claude',
95
- '/opt/homebrew/bin/claude',
96
- '/usr/bin/claude',
97
- `${process.env.HOME}/bin/claude`,
98
- ];
99
- for (const p of claudePaths) {
100
- try {
101
- await fsPromises.access(p);
102
- return true;
103
- }
104
- catch { }
105
- }
106
- return false;
107
- })();
108
- if (hasClaude)
109
- availableAgents.push('claude');
110
- // Check for opencode
111
- const hasOpencode = await (async () => {
112
- try {
113
- const userShell = process.env.SHELL || '/bin/bash';
114
- const result = execSync(`${userShell} -i -c "command -v opencode 2>/dev/null || which opencode 2>/dev/null"`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
115
- if (result)
116
- return true;
117
- }
118
- catch { }
119
- const opencodePaths = [
120
- '/opt/homebrew/bin/opencode',
121
- '/usr/local/bin/opencode',
122
- `${process.env.HOME}/.local/bin/opencode`,
123
- `${process.env.HOME}/bin/opencode`,
124
- ];
125
- for (const p of opencodePaths) {
126
- try {
127
- await fsPromises.access(p);
128
- return true;
129
- }
130
- catch { }
131
- }
132
- return false;
133
- })();
134
- if (hasOpencode)
135
- availableAgents.push('opencode');
136
- // Check for Codex
137
- const hasCodex = await (async () => {
138
- try {
139
- const userShell = process.env.SHELL || '/bin/bash';
140
- const result = execSync(`${userShell} -i -c "command -v codex 2>/dev/null || which codex 2>/dev/null"`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
141
- if (result)
142
- return true;
143
- }
144
- catch { }
145
- const codexPaths = [
146
- '/usr/local/bin/codex',
147
- '/opt/homebrew/bin/codex',
148
- `${process.env.HOME}/.local/bin/codex`,
149
- `${process.env.HOME}/bin/codex`,
150
- `${process.env.HOME}/.npm-global/bin/codex`,
151
- ];
152
- for (const p of codexPaths) {
153
- try {
154
- await fsPromises.access(p);
155
- return true;
156
- }
157
- catch { }
158
- }
159
- return false;
160
- })();
161
- if (hasCodex)
162
- availableAgents.push('codex');
163
- console.error('[API] Available agents:', availableAgents);
164
- if (availableAgents.length === 0) {
165
- event.node.res.statusCode = 500;
166
- return { error: 'No agents available. Install claude, opencode, or codex.' };
167
- }
168
- // If no agent specified and multiple available, return agent choice needed
169
- if (!agent && availableAgents.length > 1) {
170
- console.error('[API] Returning needsAgentChoice');
171
- return {
172
- needsAgentChoice: true,
173
- availableAgents,
174
- message: 'Please specify an agent (claude, opencode, or codex) in the request body',
175
- };
176
- }
177
- console.error('[API] Proceeding to create pane with agent:', agent);
178
- // Import pane creation utility
179
- const { createPane } = await import('../../utils/paneCreation.js');
180
- const state = stateManager.getState();
181
- let targetProjectRoot;
182
- if (projectPath && projectPath.trim()) {
183
- const { resolveProjectRootFromPath } = await import('../../utils/projectRoot.js');
184
- targetProjectRoot = resolveProjectRootFromPath(projectPath, state.projectRoot || process.cwd()).projectRoot;
185
- }
186
- // Create the pane
187
- const result = await createPane({
188
- prompt,
189
- agent: agent || (availableAgents.length === 1 ? availableAgents[0] : undefined),
190
- projectName: state.projectName || 'unknown',
191
- existingPanes: state.panes,
192
- projectRoot: targetProjectRoot,
193
- sessionProjectRoot: state.projectRoot || process.cwd(),
194
- sessionConfigPath: state.panesFile,
195
- }, availableAgents);
196
- // Check if agent choice is needed
197
- if (result.needsAgentChoice) {
198
- return {
199
- needsAgentChoice: true,
200
- availableAgents,
201
- message: 'Please specify an agent (claude, opencode, or codex) in the request body',
202
- };
203
- }
204
- // Note: createPane() already saves the pane to config for the first content pane
205
- // For subsequent panes, we need to check if it's already been saved before adding
206
- const fs = await import('fs/promises');
207
- const path = await import('path');
208
- // Get panes file path from state
209
- const projectRoot = state.projectRoot || process.cwd();
210
- const panesFile = state.panesFile || path.join(projectRoot, '.dmux', `dmux.config.json`);
211
- // Read existing panes
212
- let existingPanes = [];
213
- try {
214
- const configContent = await fs.readFile(panesFile, 'utf-8');
215
- const config = JSON.parse(configContent);
216
- existingPanes = Array.isArray(config) ? config : config.panes || [];
217
- }
218
- catch {
219
- // File doesn't exist yet, start with empty array
220
- }
221
- // Check if the pane was already saved by createPane()
222
- const paneAlreadyExists = existingPanes.some(p => p.id === result.pane.id);
223
- if (!paneAlreadyExists) {
224
- // Add new pane only if it doesn't exist
225
- const updatedPanes = [...existingPanes, result.pane];
226
- // Write back to file - ConfigWatcher will update StateManager
227
- await fs.writeFile(panesFile, JSON.stringify({ panes: updatedPanes }, null, 2));
228
- }
229
- return {
230
- success: true,
231
- pane: formatPaneResponse(result.pane),
232
- message: 'Pane created successfully',
233
- };
234
- }
235
- catch (err) {
236
- const msg = 'Failed to create pane via API';
237
- console.error(msg, err);
238
- LogService.getInstance().error(msg, 'routes', undefined, err instanceof Error ? err : undefined);
239
- event.node.res.statusCode = 500;
240
- return { error: 'Failed to create pane', details: err.message };
241
- }
242
- }));
243
- // GET /api/panes/:id/snapshot - Get current pane snapshot
244
- router.get('/api/panes/:id/snapshot', eventHandler(async (event) => {
245
- const params = getRouterParams(event);
246
- const paneId = params?.id;
247
- if (!paneId) {
248
- event.node.res.statusCode = 400;
249
- return { error: 'Missing pane ID' };
250
- }
251
- const pane = stateManager.getPaneById(decodeURIComponent(paneId));
252
- if (!pane) {
253
- event.node.res.statusCode = 404;
254
- return { error: 'Pane not found' };
255
- }
256
- // Capture current pane state from tmux
257
- const { execSync } = await import('child_process');
258
- try {
259
- // Get dimensions
260
- const dimensionsOutput = execSync(`tmux display-message -p -t ${pane.paneId} -F "#{pane_width},#{pane_height}"`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
261
- const [width, height] = dimensionsOutput.split(',').map(Number);
262
- // Get content
263
- const content = execSync(`tmux capture-pane -epJ -t ${pane.paneId}`, { encoding: 'utf-8', stdio: 'pipe' });
264
- // Get cursor position
265
- const cursorOutput = execSync(`tmux display-message -p -t ${pane.paneId} -F "#{cursor_y},#{cursor_x}"`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
266
- const [cursorRow, cursorCol] = cursorOutput.split(',').map(Number);
267
- return {
268
- width: width || 80,
269
- height: height || 24,
270
- content,
271
- cursorRow: cursorRow || 0,
272
- cursorCol: cursorCol || 0
273
- };
274
- }
275
- catch (error) {
276
- event.node.res.statusCode = 500;
277
- return { error: 'Failed to capture pane state' };
278
- }
279
- }));
280
- // PUT /api/panes/:id/test - Update test status (called by run_test hook)
281
- router.put('/api/panes/:id/test', eventHandler(async (event) => {
282
- const params = getRouterParams(event);
283
- const paneId = params?.id;
284
- if (!paneId) {
285
- event.node.res.statusCode = 400;
286
- return { error: 'Missing pane ID' };
287
- }
288
- const pane = stateManager.getPaneById(decodeURIComponent(paneId));
289
- if (!pane) {
290
- event.node.res.statusCode = 404;
291
- return { error: 'Pane not found' };
292
- }
293
- try {
294
- const body = await readBody(event);
295
- const { status, output } = body;
296
- if (!status || !['running', 'passed', 'failed'].includes(status)) {
297
- event.node.res.statusCode = 400;
298
- return { error: 'Invalid or missing status. Must be: running, passed, or failed' };
299
- }
300
- // Update pane with test status
301
- const updatedPane = {
302
- ...pane,
303
- testStatus: status,
304
- testOutput: output || pane.testOutput,
305
- };
306
- // Update in StateManager
307
- const state = stateManager.getState();
308
- const updatedPanes = state.panes.map(p => p.id === pane.id ? updatedPane : p);
309
- stateManager.updatePanes(updatedPanes);
310
- // Persist to config file
311
- const fs = await import('fs/promises');
312
- const path = await import('path');
313
- const projectRoot = state.projectRoot || process.cwd();
314
- const panesFile = path.join(projectRoot, '.dmux', 'dmux.config.json');
315
- await fs.writeFile(panesFile, JSON.stringify({ panes: updatedPanes }, null, 2));
316
- return {
317
- success: true,
318
- paneId: pane.id,
319
- testStatus: status,
320
- message: `Test status updated to ${status}`,
321
- };
322
- }
323
- catch (err) {
324
- const msg = 'Failed to update test status';
325
- console.error(msg, err);
326
- LogService.getInstance().error(msg, 'routes', pane.id, err instanceof Error ? err : undefined);
327
- event.node.res.statusCode = 500;
328
- return { error: 'Failed to update test status', details: err.message };
329
- }
330
- }));
331
- // PUT /api/panes/:id/dev - Update dev server status (called by run_dev hook)
332
- router.put('/api/panes/:id/dev', eventHandler(async (event) => {
333
- const params = getRouterParams(event);
334
- const paneId = params?.id;
335
- if (!paneId) {
336
- event.node.res.statusCode = 400;
337
- return { error: 'Missing pane ID' };
338
- }
339
- const pane = stateManager.getPaneById(decodeURIComponent(paneId));
340
- if (!pane) {
341
- event.node.res.statusCode = 404;
342
- return { error: 'Pane not found' };
343
- }
344
- try {
345
- const body = await readBody(event);
346
- const { url, status } = body;
347
- if (!status || !['running', 'stopped'].includes(status)) {
348
- event.node.res.statusCode = 400;
349
- return { error: 'Invalid or missing status. Must be: running or stopped' };
350
- }
351
- // Update pane with dev server info
352
- const updatedPane = {
353
- ...pane,
354
- devStatus: status,
355
- devUrl: url || pane.devUrl,
356
- };
357
- // Update in StateManager
358
- const state = stateManager.getState();
359
- const updatedPanes = state.panes.map(p => p.id === pane.id ? updatedPane : p);
360
- stateManager.updatePanes(updatedPanes);
361
- // Persist to config file
362
- const fs = await import('fs/promises');
363
- const path = await import('path');
364
- const projectRoot = state.projectRoot || process.cwd();
365
- const panesFile = path.join(projectRoot, '.dmux', 'dmux.config.json');
366
- await fs.writeFile(panesFile, JSON.stringify({ panes: updatedPanes }, null, 2));
367
- return {
368
- success: true,
369
- paneId: pane.id,
370
- devStatus: status,
371
- devUrl: url,
372
- message: `Dev server ${status === 'running' ? 'started' : 'stopped'}${url ? ` at ${url}` : ''}`,
373
- };
374
- }
375
- catch (err) {
376
- const msg = 'Failed to update dev status';
377
- console.error(msg, err);
378
- LogService.getInstance().error(msg, 'routes', pane.id, err instanceof Error ? err : undefined);
379
- event.node.res.statusCode = 500;
380
- return { error: 'Failed to update dev status', details: err.message };
381
- }
382
- }));
383
- // POST /api/panes/:id/actions - Execute action on pane (legacy endpoint)
384
- router.post('/api/panes/:id/actions', eventHandler(async (event) => {
385
- const params = getRouterParams(event);
386
- const paneId = params?.id;
387
- if (!paneId) {
388
- event.node.res.statusCode = 400;
389
- return { error: 'Missing pane ID' };
390
- }
391
- const pane = stateManager.getPaneById(decodeURIComponent(paneId));
392
- if (!pane) {
393
- event.node.res.statusCode = 404;
394
- return { error: 'Pane not found' };
395
- }
396
- try {
397
- const action = await readBody(event);
398
- // For now, just acknowledge the action
399
- // Future: Implement actual pane actions (sendKeys, resize, etc.)
400
- return {
401
- status: 'acknowledged',
402
- paneId,
403
- action,
404
- message: 'Action endpoints will be implemented in future versions'
405
- };
406
- }
407
- catch (err) {
408
- event.node.res.statusCode = 400;
409
- return { error: 'Invalid request body' };
410
- }
411
- }));
412
- return router;
413
- }
414
- //# sourceMappingURL=panesRoutes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"panesRoutes.js","sourceRoot":"","sources":["../../../src/server/routes/panesRoutes.ts"],"names":[],"mappings":"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"}
@@ -1,94 +0,0 @@
1
- export declare function createSettingsRoutes(): ({
2
- path: string;
3
- handler: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<{
4
- projectName: string;
5
- sessionName: string;
6
- projectRoot: string;
7
- serverUrl: string | undefined;
8
- settings: import("../../types.js").ProjectSettings;
9
- paneCount: number;
10
- timestamp: number;
11
- }>>;
12
- } | {
13
- path: string;
14
- handler: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<{
15
- settings: {
16
- merged: import("../../types.js").DmuxSettings;
17
- global: import("../../types.js").DmuxSettings;
18
- project: import("../../types.js").DmuxSettings;
19
- };
20
- definitions: import("../../types.js").SettingDefinition[];
21
- error?: undefined;
22
- success?: undefined;
23
- message?: undefined;
24
- details?: undefined;
25
- } | {
26
- error: string;
27
- settings?: undefined;
28
- definitions?: undefined;
29
- success?: undefined;
30
- message?: undefined;
31
- details?: undefined;
32
- } | {
33
- success: boolean;
34
- message: string;
35
- settings?: undefined;
36
- definitions?: undefined;
37
- error?: undefined;
38
- details?: undefined;
39
- } | {
40
- error: string;
41
- details: any;
42
- settings?: undefined;
43
- definitions?: undefined;
44
- success?: undefined;
45
- message?: undefined;
46
- }>>;
47
- } | {
48
- path: string;
49
- handler: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<{
50
- hooks: {
51
- name: "before_pane_create" | "pane_created" | "worktree_created" | "before_pane_close" | "pane_closed" | "before_worktree_remove" | "worktree_removed" | "pre_merge" | "post_merge" | "run_test" | "run_dev";
52
- active: boolean;
53
- }[];
54
- activeCount: number;
55
- totalCount: number;
56
- error?: undefined;
57
- } | {
58
- error: string;
59
- hooks?: undefined;
60
- activeCount?: undefined;
61
- totalCount?: undefined;
62
- }>>;
63
- } | {
64
- path: string;
65
- handler: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<{
66
- logs: import("../../types.js").LogEntry[];
67
- stats: {
68
- total: number;
69
- errors: number;
70
- warnings: number;
71
- unreadErrors: number;
72
- unreadWarnings: number;
73
- };
74
- timestamp: number;
75
- error?: undefined;
76
- } | {
77
- error: string;
78
- logs?: undefined;
79
- stats?: undefined;
80
- timestamp?: undefined;
81
- }>>;
82
- } | {
83
- path: string;
84
- handler: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<{
85
- success: boolean;
86
- message: string;
87
- error?: undefined;
88
- } | {
89
- error: string;
90
- success?: undefined;
91
- message?: undefined;
92
- }>>;
93
- })[];
94
- //# sourceMappingURL=settingsRoutes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settingsRoutes.d.ts","sourceRoot":"","sources":["../../../src/server/routes/settingsRoutes.ts"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0KnC"}