dmux 5.1.0 → 5.3.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 (319) hide show
  1. package/README.md +46 -143
  2. package/dist/DmuxApp.d.ts.map +1 -1
  3. package/dist/DmuxApp.js +99 -56
  4. package/dist/DmuxApp.js.map +1 -1
  5. package/dist/actions/implementations/closeAction.d.ts.map +1 -1
  6. package/dist/actions/implementations/closeAction.js +55 -21
  7. package/dist/actions/implementations/closeAction.js.map +1 -1
  8. package/dist/actions/implementations/index.d.ts +1 -0
  9. package/dist/actions/implementations/index.d.ts.map +1 -1
  10. package/dist/actions/implementations/index.js +3 -0
  11. package/dist/actions/implementations/index.js.map +1 -1
  12. package/dist/actions/implementations/mergeAction.d.ts.map +1 -1
  13. package/dist/actions/implementations/mergeAction.js +61 -20
  14. package/dist/actions/implementations/mergeAction.js.map +1 -1
  15. package/dist/actions/index.d.ts.map +1 -1
  16. package/dist/actions/index.js +6 -0
  17. package/dist/actions/index.js.map +1 -1
  18. package/dist/actions/merge/conflictResolution.d.ts.map +1 -1
  19. package/dist/actions/merge/conflictResolution.js +19 -13
  20. package/dist/actions/merge/conflictResolution.js.map +1 -1
  21. package/dist/actions/merge/issueHandlers/mainDirtyHandler.d.ts.map +1 -1
  22. package/dist/actions/merge/issueHandlers/mainDirtyHandler.js +8 -6
  23. package/dist/actions/merge/issueHandlers/mainDirtyHandler.js.map +1 -1
  24. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.d.ts +1 -1
  25. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.d.ts.map +1 -1
  26. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.js +9 -2
  27. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.js.map +1 -1
  28. package/dist/actions/merge/mergeExecution.d.ts.map +1 -1
  29. package/dist/actions/merge/mergeExecution.js +2 -1
  30. package/dist/actions/merge/mergeExecution.js.map +1 -1
  31. package/dist/actions/merge/multiMergeOrchestrator.d.ts.map +1 -1
  32. package/dist/actions/merge/multiMergeOrchestrator.js +33 -14
  33. package/dist/actions/merge/multiMergeOrchestrator.js.map +1 -1
  34. package/dist/actions/types.d.ts +4 -2
  35. package/dist/actions/types.d.ts.map +1 -1
  36. package/dist/actions/types.js +19 -1
  37. package/dist/actions/types.js.map +1 -1
  38. package/dist/components/dialogs/AgentChoiceDialog.d.ts +2 -1
  39. package/dist/components/dialogs/AgentChoiceDialog.d.ts.map +1 -1
  40. package/dist/components/dialogs/AgentChoiceDialog.js +4 -5
  41. package/dist/components/dialogs/AgentChoiceDialog.js.map +1 -1
  42. package/dist/components/dialogs/SettingsDialog.d.ts.map +1 -1
  43. package/dist/components/dialogs/SettingsDialog.js +3 -1
  44. package/dist/components/dialogs/SettingsDialog.js.map +1 -1
  45. package/dist/components/panes/MergePane.d.ts +1 -0
  46. package/dist/components/panes/MergePane.d.ts.map +1 -1
  47. package/dist/components/panes/MergePane.js +14 -3
  48. package/dist/components/panes/MergePane.js.map +1 -1
  49. package/dist/components/panes/PaneCard.d.ts +1 -3
  50. package/dist/components/panes/PaneCard.d.ts.map +1 -1
  51. package/dist/components/panes/PaneCard.js +54 -37
  52. package/dist/components/panes/PaneCard.js.map +1 -1
  53. package/dist/components/panes/PanesGrid.d.ts +1 -0
  54. package/dist/components/panes/PanesGrid.d.ts.map +1 -1
  55. package/dist/components/panes/PanesGrid.js +60 -78
  56. package/dist/components/panes/PanesGrid.js.map +1 -1
  57. package/dist/components/popups/agentChoicePopup.d.ts +2 -2
  58. package/dist/components/popups/agentChoicePopup.js +85 -56
  59. package/dist/components/popups/agentChoicePopup.js.map +1 -1
  60. package/dist/components/popups/diffPeekPopup.d.ts +7 -0
  61. package/dist/components/popups/diffPeekPopup.d.ts.map +1 -0
  62. package/dist/components/popups/diffPeekPopup.js +99 -0
  63. package/dist/components/popups/diffPeekPopup.js.map +1 -0
  64. package/dist/components/popups/enabledAgentsPopup.d.ts +7 -0
  65. package/dist/components/popups/enabledAgentsPopup.d.ts.map +1 -0
  66. package/dist/components/popups/enabledAgentsPopup.js +196 -0
  67. package/dist/components/popups/enabledAgentsPopup.js.map +1 -0
  68. package/dist/components/popups/kebabMenuPopup.js +2 -2
  69. package/dist/components/popups/kebabMenuPopup.js.map +1 -1
  70. package/dist/components/popups/mergeUncommittedChoicePopup.d.ts +7 -0
  71. package/dist/components/popups/mergeUncommittedChoicePopup.d.ts.map +1 -0
  72. package/dist/components/popups/mergeUncommittedChoicePopup.js +289 -0
  73. package/dist/components/popups/mergeUncommittedChoicePopup.js.map +1 -0
  74. package/dist/components/popups/newPanePopup.js +8 -0
  75. package/dist/components/popups/newPanePopup.js.map +1 -1
  76. package/dist/components/popups/projectSelectPopup.d.ts +7 -0
  77. package/dist/components/popups/projectSelectPopup.d.ts.map +1 -0
  78. package/dist/components/popups/projectSelectPopup.js +124 -0
  79. package/dist/components/popups/projectSelectPopup.js.map +1 -0
  80. package/dist/components/popups/reopenWorktreePopup.js +33 -3
  81. package/dist/components/popups/reopenWorktreePopup.js.map +1 -1
  82. package/dist/components/popups/settingsPopup.js +25 -8
  83. package/dist/components/popups/settingsPopup.js.map +1 -1
  84. package/dist/components/popups/shared/DirectoryList.d.ts +14 -0
  85. package/dist/components/popups/shared/DirectoryList.d.ts.map +1 -0
  86. package/dist/components/popups/shared/DirectoryList.js +46 -0
  87. package/dist/components/popups/shared/DirectoryList.js.map +1 -0
  88. package/dist/components/popups/shared/index.d.ts +1 -0
  89. package/dist/components/popups/shared/index.d.ts.map +1 -1
  90. package/dist/components/popups/shared/index.js +1 -0
  91. package/dist/components/popups/shared/index.js.map +1 -1
  92. package/dist/components/popups/shortcutsPopup.js +15 -12
  93. package/dist/components/popups/shortcutsPopup.js.map +1 -1
  94. package/dist/components/popups/singleAgentChoicePopup.d.ts +7 -0
  95. package/dist/components/popups/singleAgentChoicePopup.d.ts.map +1 -0
  96. package/dist/components/popups/singleAgentChoicePopup.js +95 -0
  97. package/dist/components/popups/singleAgentChoicePopup.js.map +1 -0
  98. package/dist/components/ui/FooterHelp.js +1 -1
  99. package/dist/components/ui/FooterHelp.js.map +1 -1
  100. package/dist/hooks/useActionSystem.d.ts +1 -1
  101. package/dist/hooks/useActionSystem.d.ts.map +1 -1
  102. package/dist/hooks/useActionSystem.js +1 -1
  103. package/dist/hooks/useActionSystem.js.map +1 -1
  104. package/dist/hooks/useAgentDetection.d.ts +2 -2
  105. package/dist/hooks/useAgentDetection.d.ts.map +1 -1
  106. package/dist/hooks/useAgentDetection.js +18 -88
  107. package/dist/hooks/useAgentDetection.js.map +1 -1
  108. package/dist/hooks/useAutoUpdater.d.ts.map +1 -1
  109. package/dist/hooks/useAutoUpdater.js +43 -26
  110. package/dist/hooks/useAutoUpdater.js.map +1 -1
  111. package/dist/hooks/useInputHandling.d.ts +5 -0
  112. package/dist/hooks/useInputHandling.d.ts.map +1 -1
  113. package/dist/hooks/useInputHandling.js +89 -16
  114. package/dist/hooks/useInputHandling.js.map +1 -1
  115. package/dist/hooks/useNavigation.d.ts +1 -1
  116. package/dist/hooks/useNavigation.d.ts.map +1 -1
  117. package/dist/hooks/useNavigation.js +26 -4
  118. package/dist/hooks/useNavigation.js.map +1 -1
  119. package/dist/hooks/usePaneCreation.d.ts +5 -2
  120. package/dist/hooks/usePaneCreation.d.ts.map +1 -1
  121. package/dist/hooks/usePaneCreation.js +123 -23
  122. package/dist/hooks/usePaneCreation.js.map +1 -1
  123. package/dist/hooks/usePaneSync.d.ts +1 -1
  124. package/dist/hooks/usePaneSync.d.ts.map +1 -1
  125. package/dist/hooks/usePaneSync.js +14 -1
  126. package/dist/hooks/usePaneSync.js.map +1 -1
  127. package/dist/hooks/usePanes.js +1 -1
  128. package/dist/hooks/usePanes.js.map +1 -1
  129. package/dist/hooks/useServices.d.ts +1 -1
  130. package/dist/hooks/useServices.d.ts.map +1 -1
  131. package/dist/hooks/useServices.js +2 -2
  132. package/dist/hooks/useServices.js.map +1 -1
  133. package/dist/hooks/useWorktreeActions.d.ts.map +1 -1
  134. package/dist/hooks/useWorktreeActions.js +16 -8
  135. package/dist/hooks/useWorktreeActions.js.map +1 -1
  136. package/dist/index.js +199 -18
  137. package/dist/index.js.map +1 -1
  138. package/dist/layout/SpacerManager.d.ts.map +1 -1
  139. package/dist/layout/SpacerManager.js +2 -1
  140. package/dist/layout/SpacerManager.js.map +1 -1
  141. package/dist/server/embedded-assets.d.ts.map +1 -1
  142. package/dist/server/embedded-assets.js +37 -26
  143. package/dist/server/embedded-assets.js.map +1 -1
  144. package/dist/services/AutoUpdater.d.ts +4 -0
  145. package/dist/services/AutoUpdater.d.ts.map +1 -1
  146. package/dist/services/AutoUpdater.js +23 -0
  147. package/dist/services/AutoUpdater.js.map +1 -1
  148. package/dist/services/PaneEventService.d.ts.map +1 -1
  149. package/dist/services/PaneEventService.js +2 -5
  150. package/dist/services/PaneEventService.js.map +1 -1
  151. package/dist/services/PaneWorkerManager.d.ts.map +1 -1
  152. package/dist/services/PaneWorkerManager.js +2 -14
  153. package/dist/services/PaneWorkerManager.js.map +1 -1
  154. package/dist/services/PopupManager.d.ts +8 -2
  155. package/dist/services/PopupManager.d.ts.map +1 -1
  156. package/dist/services/PopupManager.js +149 -27
  157. package/dist/services/PopupManager.js.map +1 -1
  158. package/dist/services/TmuxService.d.ts +15 -1
  159. package/dist/services/TmuxService.d.ts.map +1 -1
  160. package/dist/services/TmuxService.js +29 -3
  161. package/dist/services/TmuxService.js.map +1 -1
  162. package/dist/services/WorktreeCleanupService.d.ts +22 -0
  163. package/dist/services/WorktreeCleanupService.d.ts.map +1 -0
  164. package/dist/services/WorktreeCleanupService.js +80 -0
  165. package/dist/services/WorktreeCleanupService.js.map +1 -0
  166. package/dist/types.d.ts +9 -3
  167. package/dist/types.d.ts.map +1 -1
  168. package/dist/utils/agentDetection.d.ts +15 -8
  169. package/dist/utils/agentDetection.d.ts.map +1 -1
  170. package/dist/utils/agentDetection.js +49 -73
  171. package/dist/utils/agentDetection.js.map +1 -1
  172. package/dist/utils/agentLaunch.d.ts +63 -1
  173. package/dist/utils/agentLaunch.d.ts.map +1 -1
  174. package/dist/utils/agentLaunch.js +497 -24
  175. package/dist/utils/agentLaunch.js.map +1 -1
  176. package/dist/utils/agentPromptDispatch.d.ts +33 -0
  177. package/dist/utils/agentPromptDispatch.d.ts.map +1 -0
  178. package/dist/utils/agentPromptDispatch.js +99 -0
  179. package/dist/utils/agentPromptDispatch.js.map +1 -0
  180. package/dist/utils/asciiArt.d.ts.map +1 -1
  181. package/dist/utils/asciiArt.js +6 -7
  182. package/dist/utils/asciiArt.js.map +1 -1
  183. package/dist/utils/attachAgent.d.ts +21 -0
  184. package/dist/utils/attachAgent.d.ts.map +1 -0
  185. package/dist/utils/attachAgent.js +128 -0
  186. package/dist/utils/attachAgent.js.map +1 -0
  187. package/dist/utils/conflictResolutionPane.d.ts +2 -1
  188. package/dist/utils/conflictResolutionPane.d.ts.map +1 -1
  189. package/dist/utils/conflictResolutionPane.js +69 -36
  190. package/dist/utils/conflictResolutionPane.js.map +1 -1
  191. package/dist/utils/devSource.d.ts +7 -0
  192. package/dist/utils/devSource.d.ts.map +1 -0
  193. package/dist/utils/devSource.js +19 -0
  194. package/dist/utils/devSource.js.map +1 -0
  195. package/dist/utils/devWatchCommand.d.ts +8 -0
  196. package/dist/utils/devWatchCommand.d.ts.map +1 -0
  197. package/dist/utils/devWatchCommand.js +14 -0
  198. package/dist/utils/devWatchCommand.js.map +1 -0
  199. package/dist/utils/dirScanner.d.ts +30 -0
  200. package/dist/utils/dirScanner.d.ts.map +1 -0
  201. package/dist/utils/dirScanner.js +99 -0
  202. package/dist/utils/dirScanner.js.map +1 -0
  203. package/dist/utils/geminiTrust.d.ts +8 -0
  204. package/dist/utils/geminiTrust.d.ts.map +1 -0
  205. package/dist/utils/geminiTrust.js +67 -0
  206. package/dist/utils/geminiTrust.js.map +1 -0
  207. package/dist/utils/generated-agents-doc.d.ts +1 -1
  208. package/dist/utils/generated-agents-doc.js +3 -3
  209. package/dist/utils/git.d.ts +13 -0
  210. package/dist/utils/git.d.ts.map +1 -1
  211. package/dist/utils/git.js +20 -0
  212. package/dist/utils/git.js.map +1 -1
  213. package/dist/utils/hooks.js +1 -1
  214. package/dist/utils/hooks.js.map +1 -1
  215. package/dist/utils/hooksDocs.d.ts +2 -9
  216. package/dist/utils/hooksDocs.d.ts.map +1 -1
  217. package/dist/utils/hooksDocs.js +26 -6
  218. package/dist/utils/hooksDocs.js.map +1 -1
  219. package/dist/utils/mergeExecution.d.ts.map +1 -1
  220. package/dist/utils/mergeExecution.js +6 -3
  221. package/dist/utils/mergeExecution.js.map +1 -1
  222. package/dist/utils/paneCreation.d.ts +8 -2
  223. package/dist/utils/paneCreation.d.ts.map +1 -1
  224. package/dist/utils/paneCreation.js +129 -80
  225. package/dist/utils/paneCreation.js.map +1 -1
  226. package/dist/utils/paneGrouping.d.ts.map +1 -1
  227. package/dist/utils/paneGrouping.js +30 -0
  228. package/dist/utils/paneGrouping.js.map +1 -1
  229. package/dist/utils/projectActions.d.ts +5 -0
  230. package/dist/utils/projectActions.d.ts.map +1 -1
  231. package/dist/utils/projectActions.js +15 -4
  232. package/dist/utils/projectActions.js.map +1 -1
  233. package/dist/utils/promptStore.d.ts +7 -0
  234. package/dist/utils/promptStore.d.ts.map +1 -0
  235. package/dist/utils/promptStore.js +75 -0
  236. package/dist/utils/promptStore.js.map +1 -0
  237. package/dist/utils/reopenWorktree.d.ts +1 -1
  238. package/dist/utils/reopenWorktree.d.ts.map +1 -1
  239. package/dist/utils/reopenWorktree.js +26 -27
  240. package/dist/utils/reopenWorktree.js.map +1 -1
  241. package/dist/utils/runtimePaths.d.ts +2 -0
  242. package/dist/utils/runtimePaths.d.ts.map +1 -0
  243. package/dist/utils/runtimePaths.js +8 -0
  244. package/dist/utils/runtimePaths.js.map +1 -0
  245. package/dist/utils/settingsManager.d.ts.map +1 -1
  246. package/dist/utils/settingsManager.js +96 -4
  247. package/dist/utils/settingsManager.js.map +1 -1
  248. package/dist/utils/systemCheck.d.ts.map +1 -1
  249. package/dist/utils/systemCheck.js +0 -13
  250. package/dist/utils/systemCheck.js.map +1 -1
  251. package/dist/utils/welcomePane.d.ts +2 -1
  252. package/dist/utils/welcomePane.d.ts.map +1 -1
  253. package/dist/utils/welcomePane.js +3 -2
  254. package/dist/utils/welcomePane.js.map +1 -1
  255. package/dist/utils/welcomePaneManager.js +1 -1
  256. package/dist/utils/welcomePaneManager.js.map +1 -1
  257. package/dist/workers/PaneWorker.js.map +1 -1
  258. package/dist/workers/WorkerMessages.d.ts +2 -1
  259. package/dist/workers/WorkerMessages.d.ts.map +1 -1
  260. package/dist/workers/WorkerMessages.js.map +1 -1
  261. package/dist/workers/updateChecker.js +21 -6
  262. package/dist/workers/updateChecker.js.map +1 -1
  263. package/package.json +14 -12
  264. package/dist/components/popups/remotePopup.d.ts +0 -6
  265. package/dist/components/popups/remotePopup.d.ts.map +0 -1
  266. package/dist/components/popups/remotePopup.js +0 -166
  267. package/dist/components/popups/remotePopup.js.map +0 -1
  268. package/dist/hooks/useTunnelManagement.d.ts +0 -18
  269. package/dist/hooks/useTunnelManagement.d.ts.map +0 -1
  270. package/dist/hooks/useTunnelManagement.js +0 -55
  271. package/dist/hooks/useTunnelManagement.js.map +0 -1
  272. package/dist/server/actionsApi.d.ts +0 -37
  273. package/dist/server/actionsApi.d.ts.map +0 -1
  274. package/dist/server/actionsApi.js +0 -256
  275. package/dist/server/actionsApi.js.map +0 -1
  276. package/dist/server/index.d.ts +0 -21
  277. package/dist/server/index.d.ts.map +0 -1
  278. package/dist/server/index.js +0 -100
  279. package/dist/server/index.js.map +0 -1
  280. package/dist/server/routes/actionsRoutes.d.ts +0 -2
  281. package/dist/server/routes/actionsRoutes.d.ts.map +0 -1
  282. package/dist/server/routes/actionsRoutes.js +0 -110
  283. package/dist/server/routes/actionsRoutes.js.map +0 -1
  284. package/dist/server/routes/healthRoutes.d.ts +0 -13
  285. package/dist/server/routes/healthRoutes.d.ts.map +0 -1
  286. package/dist/server/routes/healthRoutes.js +0 -70
  287. package/dist/server/routes/healthRoutes.js.map +0 -1
  288. package/dist/server/routes/index.d.ts +0 -8
  289. package/dist/server/routes/index.d.ts.map +0 -1
  290. package/dist/server/routes/index.js +0 -67
  291. package/dist/server/routes/index.js.map +0 -1
  292. package/dist/server/routes/keysRoutes.d.ts +0 -33
  293. package/dist/server/routes/keysRoutes.d.ts.map +0 -1
  294. package/dist/server/routes/keysRoutes.js +0 -128
  295. package/dist/server/routes/keysRoutes.js.map +0 -1
  296. package/dist/server/routes/panesRoutes.d.ts +0 -2
  297. package/dist/server/routes/panesRoutes.d.ts.map +0 -1
  298. package/dist/server/routes/panesRoutes.js +0 -414
  299. package/dist/server/routes/panesRoutes.js.map +0 -1
  300. package/dist/server/routes/settingsRoutes.d.ts +0 -94
  301. package/dist/server/routes/settingsRoutes.d.ts.map +0 -1
  302. package/dist/server/routes/settingsRoutes.js +0 -159
  303. package/dist/server/routes/settingsRoutes.js.map +0 -1
  304. package/dist/server/routes/streamRoutes.d.ts +0 -18
  305. package/dist/server/routes/streamRoutes.d.ts.map +0 -1
  306. package/dist/server/routes/streamRoutes.js +0 -87
  307. package/dist/server/routes/streamRoutes.js.map +0 -1
  308. package/dist/server/routes/tunnelRoutes.d.ts +0 -11
  309. package/dist/server/routes/tunnelRoutes.d.ts.map +0 -1
  310. package/dist/server/routes/tunnelRoutes.js +0 -28
  311. package/dist/server/routes/tunnelRoutes.js.map +0 -1
  312. package/dist/server/routes.d.ts +0 -17
  313. package/dist/server/routes.d.ts.map +0 -1
  314. package/dist/server/routes.js +0 -17
  315. package/dist/server/routes.js.map +0 -1
  316. package/dist/services/TunnelService.d.ts +0 -10
  317. package/dist/services/TunnelService.d.ts.map +0 -1
  318. package/dist/services/TunnelService.js +0 -98
  319. package/dist/services/TunnelService.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ import type { AgentName } from '../utils/agentLaunch.js';
1
2
  export interface WorkerMessage {
2
3
  id: string;
3
4
  type: string;
@@ -14,7 +15,7 @@ export interface OutboundMessage extends WorkerMessage {
14
15
  export interface WorkerConfig {
15
16
  paneId: string;
16
17
  tmuxPaneId: string;
17
- agent?: 'claude' | 'opencode' | 'codex';
18
+ agent?: AgentName;
18
19
  pollInterval?: number;
19
20
  }
20
21
  export interface StatusChangePayload {
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerMessages.d.ts","sourceRoot":"","sources":["../../src/workers/WorkerMessages.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAGD,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,kBAAkB,GAAG,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC;CACpG;AAGD,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,IAAI,EAAE,OAAO,GAAG,eAAe,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,OAAO,GAAG,mBAAmB,GAAG,cAAc,CAAC;IACxH,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAGD,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAAC;CAC/C;AAGD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;CACtB;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,cAAc,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,eAAe,CAElE"}
1
+ {"version":3,"file":"WorkerMessages.d.ts","sourceRoot":"","sources":["../../src/workers/WorkerMessages.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAGD,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,kBAAkB,GAAG,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC;CACpG;AAGD,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,IAAI,EAAE,OAAO,GAAG,eAAe,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,OAAO,GAAG,mBAAmB,GAAG,cAAc,CAAC;IACxH,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAGD,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAAC;CAC/C;AAGD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;CACtB;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,cAAc,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,eAAe,CAElE"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerMessages.js","sourceRoot":"","sources":["../../src/workers/WorkerMessages.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAgD5C,cAAc;AACd,MAAM,UAAU,gBAAgB,CAAC,GAAQ;IACvC,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAQ;IACxC,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"WorkerMessages.js","sourceRoot":"","sources":["../../src/workers/WorkerMessages.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAkD5C,cAAc;AACd,MAAM,UAAU,gBAAgB,CAAC,GAAQ;IACvC,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAQ;IACxC,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC/E,CAAC"}
@@ -1,12 +1,27 @@
1
- import { parentPort } from 'worker_threads';
1
+ import { parentPort, workerData } from 'worker_threads';
2
2
  import { AutoUpdater } from '../services/AutoUpdater.js';
3
- import os from 'os';
4
- import path from 'path';
5
3
  async function checkForUpdates() {
6
4
  try {
7
- const dmuxDir = path.join(os.homedir(), '.dmux');
8
- const autoUpdater = new AutoUpdater(dmuxDir);
9
- const updateInfo = await autoUpdater.checkForUpdates();
5
+ const { configFile } = workerData;
6
+ if (!configFile) {
7
+ throw new Error('Missing config file path for update checker worker');
8
+ }
9
+ const autoUpdater = new AutoUpdater(configFile);
10
+ const shouldCheck = await autoUpdater.shouldCheckForUpdates();
11
+ let updateInfo = shouldCheck
12
+ ? await autoUpdater.checkForUpdates()
13
+ : await autoUpdater.getCachedUpdateInfo();
14
+ // Keep showing a known update if today's check couldn't reach npm.
15
+ if (shouldCheck && updateInfo && updateInfo.latestVersion === 'unknown') {
16
+ const cachedUpdateInfo = await autoUpdater.getCachedUpdateInfo();
17
+ if (cachedUpdateInfo) {
18
+ updateInfo = cachedUpdateInfo;
19
+ }
20
+ }
21
+ // No cache yet: run an initial check even if interval says "not yet".
22
+ if (!updateInfo) {
23
+ updateInfo = await autoUpdater.checkForUpdates();
24
+ }
10
25
  const shouldShow = await autoUpdater.shouldShowUpdateNotification(updateInfo);
11
26
  if (shouldShow && updateInfo.hasUpdate) {
12
27
  parentPort?.postMessage({
@@ -1 +1 @@
1
- {"version":3,"file":"updateChecker.js","sourceRoot":"","sources":["../../src/workers/updateChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAE7C,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,eAAe,EAAE,CAAC;QACvD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAE9E,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACvC,UAAU,EAAE,WAAW,CAAC;gBACtB,IAAI,EAAE,kBAAkB;gBACxB,UAAU;aACX,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,UAAU,EAAE,WAAW,CAAC;gBACtB,IAAI,EAAE,WAAW;gBACjB,UAAU;aACX,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,EAAE,WAAW,CAAC;YACtB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,kBAAkB;AAClB,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"updateChecker.js","sourceRoot":"","sources":["../../src/workers/updateChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAMzD,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,GAAG,UAAqC,CAAC;QAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,qBAAqB,EAAE,CAAC;QAC9D,IAAI,UAAU,GAAG,WAAW;YAC1B,CAAC,CAAC,MAAM,WAAW,CAAC,eAAe,EAAE;YACrC,CAAC,CAAC,MAAM,WAAW,CAAC,mBAAmB,EAAE,CAAC;QAE5C,mEAAmE;QACnE,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACxE,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,mBAAmB,EAAE,CAAC;YACjE,IAAI,gBAAgB,EAAE,CAAC;gBACrB,UAAU,GAAG,gBAAgB,CAAC;YAChC,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,MAAM,WAAW,CAAC,eAAe,EAAE,CAAC;QACnD,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAE9E,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACvC,UAAU,EAAE,WAAW,CAAC;gBACtB,IAAI,EAAE,kBAAkB;gBACxB,UAAU;aACX,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,UAAU,EAAE,WAAW,CAAC;gBACtB,IAAI,EAAE,WAAW;gBACjB,UAAU;aACX,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,EAAE,WAAW,CAAC;YACtB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,kBAAkB;AAClB,eAAe,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dmux",
3
- "version": "5.1.0",
3
+ "version": "5.3.0",
4
4
  "description": "Tmux pane manager with AI agent integration for parallel development workflows",
5
5
  "type": "module",
6
6
  "author": "Justin Schroeder",
@@ -8,7 +8,7 @@
8
8
  "homepage": "https://github.com/formkit/dmux#readme",
9
9
  "repository": {
10
10
  "type": "git",
11
- "url": "git+https://github.com/formkit/dmux.git"
11
+ "url": "git+https://github.com/standardagents/dmux.git"
12
12
  },
13
13
  "bugs": {
14
14
  "url": "https://github.com/formkit/dmux/issues"
@@ -46,14 +46,12 @@
46
46
  "dependencies": {
47
47
  "chalk": "^5.3.0",
48
48
  "chokidar": "^4.0.3",
49
- "h3": "^1.15.4",
50
49
  "ink": "^5.0.1",
51
50
  "ink-text-input": "^6.0.0",
52
51
  "p-queue": "^9.0.0",
53
52
  "qrcode-terminal": "^0.12.0",
54
53
  "react": "^18.2.0",
55
54
  "string-width": "^7.2.0",
56
- "untun": "^0.1.3",
57
55
  "vue": "^3.5.22"
58
56
  },
59
57
  "devDependencies": {
@@ -73,22 +71,26 @@
73
71
  "vitest": "^1.6.1"
74
72
  },
75
73
  "scripts": {
76
- "build": "pnpm run generate:hooks-docs && pnpm run build:frontend && pnpm run embed:assets && tsc",
74
+ "build": "pnpm run generate:hooks-docs && pnpm run build:frontend && tsc",
77
75
  "build:frontend": "pnpm --filter dmux-frontend run build",
78
76
  "build:docs": "pnpm --filter dmux-docs run build",
79
- "embed:assets": "node scripts/embed-assets.js",
80
77
  "generate:hooks-docs": "node scripts/generate-hooks-docs.js",
81
- "clean": "rm -rf dist src/server/embedded-assets.ts src/utils/generated-agents-doc.ts",
82
- "dev": "tsc && DMUX_DEV=true tsx src/index.ts",
83
- "dev:watch": "run-p dev:watch:compile dev:watch:run",
78
+ "hooks:install-local": "bash scripts/install-local-hooks.sh",
79
+ "dev:bootstrap": "pnpm run generate:hooks-docs && pnpm run hooks:install-local",
80
+ "clean": "rm -rf dist src/utils/generated-agents-doc.ts",
81
+ "dev": "pnpm run dev:bootstrap && tsc && DMUX_DEV=true DMUX_DEV_WATCH=false node dist/index.js",
82
+ "dev:watch": "pnpm run generate:hooks-docs && run-p --race dev:watch:compile dev:watch:run",
84
83
  "dev:watch:compile": "tsc --watch --preserveWatchOutput --pretty false > /dev/null 2>&1",
85
- "dev:watch:run": "DMUX_DEV=true tsx --watch src/index.ts",
84
+ "dev:watch:run": "node scripts/dev-watch-run.js",
85
+ "dev:guard-runtime": "node scripts/guard-runtime-parity.js",
86
+ "dev:doctor": "node scripts/dev-doctor.js",
86
87
  "dev:frontend": "pnpm --filter dmux-frontend run dev",
87
88
  "dev:docs": "pnpm --filter dmux-docs run dev",
88
89
  "start": "node dist/index.js",
89
- "typecheck": "tsc --noEmit",
90
+ "typecheck": "pnpm run dev:guard-runtime && pnpm run generate:hooks-docs && tsc --noEmit",
91
+ "smoke:pack": "node scripts/smoke-pack-install.js",
90
92
  "test": "vitest --run",
91
- "prerelease": "run-s clean build typecheck",
93
+ "prerelease": "run-s clean build typecheck smoke:pack",
92
94
  "release": "bumpp --commit --push --tag",
93
95
  "release:minor": "bumpp minor --commit --push --tag",
94
96
  "release:major": "bumpp major --commit --push --tag"
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Remote Access Popup - Displays tunnel URL and QR code for remote access
4
- */
5
- export {};
6
- //# sourceMappingURL=remotePopup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remotePopup.d.ts","sourceRoot":"","sources":["../../../src/components/popups/remotePopup.tsx"],"names":[],"mappings":";AACA;;GAEG"}
@@ -1,166 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Remote Access Popup - Displays tunnel URL and QR code for remote access
4
- */
5
- import React, { useState, useEffect, useMemo } from 'react';
6
- import { render, Box, Text, useInput, useApp } from 'ink';
7
- import * as fs from 'fs';
8
- import { execSync } from 'child_process';
9
- // @ts-ignore - No types available for qrcode-terminal
10
- import qrcode from 'qrcode-terminal';
11
- import { PopupWrapper } from './shared/index.js';
12
- import { POPUP_CONFIG } from './config.js';
13
- const RemotePopupApp = ({ resultFile, serverPort, statusFile }) => {
14
- const { exit } = useApp();
15
- const [tunnelUrl, setTunnelUrl] = useState(null);
16
- const [error, setError] = useState(null);
17
- const [isCreating, setIsCreating] = useState(true);
18
- const [spinnerFrame, setSpinnerFrame] = useState(0);
19
- const [copied, setCopied] = useState(false);
20
- const closePopup = (wasCopied) => {
21
- try {
22
- fs.writeFileSync(resultFile, JSON.stringify({ closed: true, copied: wasCopied }));
23
- }
24
- catch (error) {
25
- console.error('[remotePopup] Failed to write result file:', error);
26
- }
27
- exit();
28
- };
29
- useInput((input, key) => {
30
- if (key.escape || input === 'q') {
31
- closePopup(false);
32
- }
33
- else if (input === 'c' && tunnelUrl) {
34
- // Copy URL to clipboard
35
- try {
36
- // Try pbcopy (macOS)
37
- execSync(`pbcopy`, { input: tunnelUrl, stdio: 'pipe' });
38
- }
39
- catch {
40
- try {
41
- // Try xclip (Linux)
42
- execSync(`xclip -selection clipboard`, { input: tunnelUrl, stdio: 'pipe' });
43
- }
44
- catch {
45
- // Clipboard not available
46
- }
47
- }
48
- // Close popup after copying, mark as copied
49
- closePopup(true);
50
- }
51
- });
52
- // Spinner animation
53
- useEffect(() => {
54
- if (!isCreating)
55
- return;
56
- const spinnerInterval = setInterval(() => {
57
- setSpinnerFrame((prev) => (prev + 1) % 10);
58
- }, 80); // Update every 80ms
59
- return () => clearInterval(spinnerInterval);
60
- }, [isCreating]);
61
- // Poll status file for tunnel creation result
62
- useEffect(() => {
63
- const pollInterval = setInterval(() => {
64
- try {
65
- if (fs.existsSync(statusFile)) {
66
- const data = JSON.parse(fs.readFileSync(statusFile, 'utf-8'));
67
- if (data.url) {
68
- setTunnelUrl(data.url);
69
- setIsCreating(false);
70
- clearInterval(pollInterval);
71
- }
72
- else if (data.error) {
73
- setError(data.error);
74
- setIsCreating(false);
75
- clearInterval(pollInterval);
76
- }
77
- }
78
- }
79
- catch (err) {
80
- // File might not exist yet or be incomplete, keep polling
81
- }
82
- }, 100); // Poll every 100ms
83
- // Cleanup
84
- return () => clearInterval(pollInterval);
85
- }, [statusFile]);
86
- // Generate QR code
87
- const qrString = useMemo(() => {
88
- if (!tunnelUrl)
89
- return '';
90
- let output = '';
91
- qrcode.generate(tunnelUrl, { small: true }, (qr) => {
92
- output = qr;
93
- });
94
- return output;
95
- }, [tunnelUrl]);
96
- // Spinner frames
97
- const spinnerFrames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
98
- const currentSpinner = spinnerFrames[spinnerFrame];
99
- if (isCreating) {
100
- return (React.createElement(PopupWrapper, { resultFile: resultFile, allowEscapeToCancel: false },
101
- React.createElement(Box, { flexDirection: "column", padding: 1 },
102
- React.createElement(Box, { marginBottom: 1 },
103
- React.createElement(Text, { bold: true, color: POPUP_CONFIG.titleColor }, "Remote Access")),
104
- React.createElement(Box, { marginBottom: 1 },
105
- React.createElement(Text, { color: "yellow" },
106
- currentSpinner,
107
- " Creating tunnel...")),
108
- React.createElement(Box, { marginBottom: 1 },
109
- React.createElement(Text, { dimColor: true }, "This may take up to 30 seconds")),
110
- React.createElement(Box, { marginTop: 1 },
111
- React.createElement(Text, { dimColor: true }, "Press Esc to close")))));
112
- }
113
- if (error) {
114
- return (React.createElement(PopupWrapper, { resultFile: resultFile, allowEscapeToCancel: false },
115
- React.createElement(Box, { flexDirection: "column", padding: 1 },
116
- React.createElement(Box, { marginBottom: 1 },
117
- React.createElement(Text, { bold: true, color: POPUP_CONFIG.titleColor }, "Remote Access")),
118
- React.createElement(Text, { color: "red" }, error),
119
- React.createElement(Box, { marginTop: 1 },
120
- React.createElement(Text, { dimColor: true }, "Press Esc to close")))));
121
- }
122
- if (!tunnelUrl) {
123
- return (React.createElement(PopupWrapper, { resultFile: resultFile, allowEscapeToCancel: false },
124
- React.createElement(Box, { flexDirection: "column", padding: 1 },
125
- React.createElement(Box, { marginBottom: 1 },
126
- React.createElement(Text, { bold: true, color: POPUP_CONFIG.titleColor }, "Remote Access")),
127
- React.createElement(Text, { color: "red" }, "No tunnel URL available"),
128
- React.createElement(Box, { marginTop: 1 },
129
- React.createElement(Text, { dimColor: true }, "Press Esc to close")))));
130
- }
131
- return (React.createElement(PopupWrapper, { resultFile: resultFile, allowEscapeToCancel: false },
132
- React.createElement(Box, { flexDirection: "column", padding: 1 },
133
- React.createElement(Box, { marginBottom: 1 },
134
- React.createElement(Text, { bold: true, color: POPUP_CONFIG.titleColor }, "Remote Access")),
135
- React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
136
- React.createElement(Text, { dimColor: true }, "Scan to access dashboard:"),
137
- React.createElement(Text, null, qrString),
138
- React.createElement(Text, { dimColor: true }, tunnelUrl)),
139
- copied && (React.createElement(Box, { marginTop: 1, marginBottom: 1 },
140
- React.createElement(Text, { color: "green" }, "\u2713 Copied to clipboard!"))),
141
- React.createElement(Box, { marginTop: 1 },
142
- React.createElement(Text, { dimColor: true }, "Press [c] to copy URL \u2022 [Esc] to close")))));
143
- };
144
- // Main entry point
145
- const main = async () => {
146
- const resultFile = process.argv[2];
147
- if (!resultFile) {
148
- console.error('Error: Result file path required');
149
- process.exit(1);
150
- }
151
- const dataFile = process.argv[3];
152
- if (!dataFile) {
153
- console.error('Error: Data file path required');
154
- process.exit(1);
155
- }
156
- try {
157
- const data = JSON.parse(fs.readFileSync(dataFile, 'utf-8'));
158
- render(React.createElement(RemotePopupApp, { resultFile: resultFile, serverPort: data.serverPort, statusFile: data.statusFile }));
159
- }
160
- catch (error) {
161
- console.error('Failed to read data file:', error);
162
- process.exit(1);
163
- }
164
- };
165
- main();
166
- //# sourceMappingURL=remotePopup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remotePopup.js","sourceRoot":"","sources":["../../../src/components/popups/remotePopup.tsx"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Hook to manage tunnel/network state in DmuxApp
3
- * Handles: tunnel URL, creation status, spinner animation, copy feedback, local IP
4
- */
5
- export declare function useTunnelManagement(): {
6
- tunnelUrl: string | null;
7
- setTunnelUrl: import("react").Dispatch<import("react").SetStateAction<string | null>>;
8
- tunnelCreating: boolean;
9
- setTunnelCreating: import("react").Dispatch<import("react").SetStateAction<boolean>>;
10
- tunnelSpinnerFrame: number;
11
- setTunnelSpinnerFrame: import("react").Dispatch<import("react").SetStateAction<number>>;
12
- tunnelCopied: boolean;
13
- setTunnelCopied: import("react").Dispatch<import("react").SetStateAction<boolean>>;
14
- localIp: string;
15
- setLocalIp: import("react").Dispatch<import("react").SetStateAction<string>>;
16
- getSpinnerChar: () => string;
17
- };
18
- //# sourceMappingURL=useTunnelManagement.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTunnelManagement.d.ts","sourceRoot":"","sources":["../../src/hooks/useTunnelManagement.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,mBAAmB;;;;;;;;;;;;EAqDlC"}
@@ -1,55 +0,0 @@
1
- import { useState, useEffect } from "react";
2
- /**
3
- * Hook to manage tunnel/network state in DmuxApp
4
- * Handles: tunnel URL, creation status, spinner animation, copy feedback, local IP
5
- */
6
- export function useTunnelManagement() {
7
- const [tunnelUrl, setTunnelUrl] = useState(null);
8
- const [tunnelCreating, setTunnelCreating] = useState(false);
9
- const [tunnelSpinnerFrame, setTunnelSpinnerFrame] = useState(0);
10
- const [tunnelCopied, setTunnelCopied] = useState(false);
11
- const [localIp, setLocalIp] = useState("127.0.0.1");
12
- // Spinner animation for tunnel creation
13
- useEffect(() => {
14
- if (!tunnelCreating)
15
- return;
16
- const spinnerInterval = setInterval(() => {
17
- setTunnelSpinnerFrame((prev) => (prev + 1) % 10);
18
- }, 80); // Update every 80ms
19
- return () => clearInterval(spinnerInterval);
20
- }, [tunnelCreating]);
21
- /**
22
- * Get the current spinner frame character
23
- */
24
- const getSpinnerChar = () => {
25
- const spinnerFrames = [
26
- "⠋",
27
- "⠙",
28
- "⠹",
29
- "⠸",
30
- "⠼",
31
- "⠴",
32
- "⠦",
33
- "⠧",
34
- "⠇",
35
- "⠏",
36
- ];
37
- return spinnerFrames[tunnelSpinnerFrame];
38
- };
39
- return {
40
- // State
41
- tunnelUrl,
42
- setTunnelUrl,
43
- tunnelCreating,
44
- setTunnelCreating,
45
- tunnelSpinnerFrame,
46
- setTunnelSpinnerFrame,
47
- tunnelCopied,
48
- setTunnelCopied,
49
- localIp,
50
- setLocalIp,
51
- // Helper functions
52
- getSpinnerChar,
53
- };
54
- }
55
- //# sourceMappingURL=useTunnelManagement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTunnelManagement.js","sourceRoot":"","sources":["../../src/hooks/useTunnelManagement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE3C;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAC/D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC/D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAS,WAAW,CAAC,CAAA;IAE3D,wCAAwC;IACxC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,cAAc;YAAE,OAAM;QAE3B,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACvC,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QAClD,CAAC,EAAE,EAAE,CAAC,CAAA,CAAC,oBAAoB;QAE3B,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;IAC7C,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;IAEpB;;OAEG;IACH,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,MAAM,aAAa,GAAG;YACpB,GAAG;YACH,GAAG;YACH,GAAG;YACH,GAAG;YACH,GAAG;YACH,GAAG;YACH,GAAG;YACH,GAAG;YACH,GAAG;YACH,GAAG;SACJ,CAAA;QACD,OAAO,aAAa,CAAC,kBAAkB,CAAC,CAAA;IAC1C,CAAC,CAAA;IAED,OAAO;QACL,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,cAAc;QACd,iBAAiB;QACjB,kBAAkB;QAClB,qBAAqB;QACrB,YAAY;QACZ,eAAe;QACf,OAAO;QACP,UAAU;QAEV,mBAAmB;QACnB,cAAc;KACf,CAAA;AACH,CAAC"}
@@ -1,37 +0,0 @@
1
- /**
2
- * REST API for Pane Actions
3
- *
4
- * Provides HTTP endpoints for executing standardized pane actions.
5
- */
6
- import type { IncomingMessage, ServerResponse } from 'http';
7
- /**
8
- * Handle GET /api/actions
9
- * List all available actions with metadata
10
- */
11
- export declare function handleListActions(req: IncomingMessage, res: ServerResponse): Promise<void>;
12
- /**
13
- * Handle GET /api/panes/:paneId/actions
14
- * Get available actions for a specific pane
15
- */
16
- export declare function handleGetPaneActions(req: IncomingMessage, res: ServerResponse, paneId: string): Promise<void>;
17
- /**
18
- * Handle POST /api/panes/:paneId/actions/:actionId
19
- * Execute an action on a pane
20
- */
21
- export declare function handleExecuteAction(req: IncomingMessage, res: ServerResponse, paneId: string, actionId: string): Promise<void>;
22
- /**
23
- * Handle POST /api/callbacks/confirm/:callbackId
24
- * Respond to a confirm dialog
25
- */
26
- export declare function handleConfirmCallback(req: IncomingMessage, res: ServerResponse, callbackId: string): Promise<void>;
27
- /**
28
- * Handle POST /api/callbacks/choice/:callbackId
29
- * Respond to a choice dialog
30
- */
31
- export declare function handleChoiceCallback(req: IncomingMessage, res: ServerResponse, callbackId: string): Promise<void>;
32
- /**
33
- * Handle POST /api/callbacks/input/:callbackId
34
- * Respond to an input dialog
35
- */
36
- export declare function handleInputCallback(req: IncomingMessage, res: ServerResponse, callbackId: string): Promise<void>;
37
- //# sourceMappingURL=actionsApi.d.ts.map
@@ -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"}