dmux 3.2.0 → 3.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 (635) hide show
  1. package/dist/DmuxApp.d.ts.map +1 -1
  2. package/dist/DmuxApp.js +221 -1596
  3. package/dist/DmuxApp.js.map +1 -1
  4. package/dist/actions/implementations/closeAction.d.ts +10 -0
  5. package/dist/actions/implementations/closeAction.d.ts.map +1 -0
  6. package/dist/actions/implementations/closeAction.js +197 -0
  7. package/dist/actions/implementations/closeAction.js.map +1 -0
  8. package/dist/actions/implementations/copyPathAction.d.ts +10 -0
  9. package/dist/actions/implementations/copyPathAction.d.ts.map +1 -0
  10. package/dist/actions/implementations/copyPathAction.js +34 -0
  11. package/dist/actions/implementations/copyPathAction.js.map +1 -0
  12. package/dist/actions/implementations/duplicateAction.d.ts +10 -0
  13. package/dist/actions/implementations/duplicateAction.d.ts.map +1 -0
  14. package/dist/actions/implementations/duplicateAction.js +25 -0
  15. package/dist/actions/implementations/duplicateAction.js.map +1 -0
  16. package/dist/actions/implementations/index.d.ts +14 -0
  17. package/dist/actions/implementations/index.d.ts.map +1 -0
  18. package/dist/actions/implementations/index.js +14 -0
  19. package/dist/actions/implementations/index.js.map +1 -0
  20. package/dist/actions/implementations/mergeAction.d.ts +14 -0
  21. package/dist/actions/implementations/mergeAction.d.ts.map +1 -0
  22. package/dist/actions/implementations/mergeAction.js +84 -0
  23. package/dist/actions/implementations/mergeAction.js.map +1 -0
  24. package/dist/actions/implementations/openInEditorAction.d.ts +12 -0
  25. package/dist/actions/implementations/openInEditorAction.d.ts.map +1 -0
  26. package/dist/actions/implementations/openInEditorAction.js +33 -0
  27. package/dist/actions/implementations/openInEditorAction.js.map +1 -0
  28. package/dist/actions/implementations/renameAction.d.ts +13 -0
  29. package/dist/actions/implementations/renameAction.d.ts.map +1 -0
  30. package/dist/actions/implementations/renameAction.js +18 -0
  31. package/dist/actions/implementations/renameAction.js.map +1 -0
  32. package/dist/actions/implementations/toggleAutopilotAction.d.ts +10 -0
  33. package/dist/actions/implementations/toggleAutopilotAction.d.ts.map +1 -0
  34. package/dist/actions/implementations/toggleAutopilotAction.js +33 -0
  35. package/dist/actions/implementations/toggleAutopilotAction.js.map +1 -0
  36. package/dist/actions/implementations/viewAction.d.ts +10 -0
  37. package/dist/actions/implementations/viewAction.d.ts.map +1 -0
  38. package/dist/actions/implementations/viewAction.js +26 -0
  39. package/dist/actions/implementations/viewAction.js.map +1 -0
  40. package/dist/actions/merge/commitMessageHandler.d.ts +27 -0
  41. package/dist/actions/merge/commitMessageHandler.d.ts.map +1 -0
  42. package/dist/actions/merge/commitMessageHandler.js +131 -0
  43. package/dist/actions/merge/commitMessageHandler.js.map +1 -0
  44. package/dist/actions/merge/conflictResolution.d.ts +13 -0
  45. package/dist/actions/merge/conflictResolution.d.ts.map +1 -0
  46. package/dist/actions/merge/conflictResolution.js +134 -0
  47. package/dist/actions/merge/conflictResolution.js.map +1 -0
  48. package/dist/actions/merge/issueHandlers/index.d.ts +11 -0
  49. package/dist/actions/merge/issueHandlers/index.d.ts.map +1 -0
  50. package/dist/actions/merge/issueHandlers/index.js +8 -0
  51. package/dist/actions/merge/issueHandlers/index.js.map +1 -0
  52. package/dist/actions/merge/issueHandlers/mainDirtyHandler.d.ts +13 -0
  53. package/dist/actions/merge/issueHandlers/mainDirtyHandler.d.ts.map +1 -0
  54. package/dist/actions/merge/issueHandlers/mainDirtyHandler.js +72 -0
  55. package/dist/actions/merge/issueHandlers/mainDirtyHandler.js.map +1 -0
  56. package/dist/actions/merge/issueHandlers/mergeConflictHandler.d.ts +13 -0
  57. package/dist/actions/merge/issueHandlers/mergeConflictHandler.d.ts.map +1 -0
  58. package/dist/actions/merge/issueHandlers/mergeConflictHandler.js +52 -0
  59. package/dist/actions/merge/issueHandlers/mergeConflictHandler.js.map +1 -0
  60. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.d.ts +7 -0
  61. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.d.ts.map +1 -0
  62. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.js +12 -0
  63. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.js.map +1 -0
  64. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.d.ts +13 -0
  65. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.d.ts.map +1 -0
  66. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.js +49 -0
  67. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.js.map +1 -0
  68. package/dist/actions/merge/mergeExecution.d.ts +22 -0
  69. package/dist/actions/merge/mergeExecution.d.ts.map +1 -0
  70. package/dist/actions/merge/mergeExecution.js +180 -0
  71. package/dist/actions/merge/mergeExecution.js.map +1 -0
  72. package/dist/actions/paneActions.d.ts +3 -40
  73. package/dist/actions/paneActions.d.ts.map +1 -1
  74. package/dist/actions/paneActions.js +4 -1038
  75. package/dist/actions/paneActions.js.map +1 -1
  76. package/dist/actions/types.d.ts +1 -0
  77. package/dist/actions/types.d.ts.map +1 -1
  78. package/dist/actions/types.js.map +1 -1
  79. package/dist/components/{ActionChoiceDialog.d.ts → dialogs/ActionChoiceDialog.d.ts} +1 -1
  80. package/dist/components/dialogs/ActionChoiceDialog.d.ts.map +1 -0
  81. package/dist/components/dialogs/ActionChoiceDialog.js.map +1 -0
  82. package/dist/components/dialogs/ActionConfirmDialog.d.ts.map +1 -0
  83. package/dist/components/dialogs/ActionConfirmDialog.js.map +1 -0
  84. package/dist/components/dialogs/ActionInputDialog.d.ts.map +1 -0
  85. package/dist/components/{ActionInputDialog.js → dialogs/ActionInputDialog.js} +2 -2
  86. package/dist/components/dialogs/ActionInputDialog.js.map +1 -0
  87. package/dist/components/dialogs/ActionProgressDialog.d.ts.map +1 -0
  88. package/dist/components/dialogs/ActionProgressDialog.js.map +1 -0
  89. package/dist/components/dialogs/AgentChoiceDialog.d.ts.map +1 -0
  90. package/dist/components/dialogs/AgentChoiceDialog.js.map +1 -0
  91. package/dist/components/{CloseOptionsDialog.d.ts → dialogs/CloseOptionsDialog.d.ts} +1 -1
  92. package/dist/components/dialogs/CloseOptionsDialog.d.ts.map +1 -0
  93. package/dist/components/dialogs/CloseOptionsDialog.js.map +1 -0
  94. package/dist/components/dialogs/CommandPromptDialog.d.ts.map +1 -0
  95. package/dist/components/{CommandPromptDialog.js → dialogs/CommandPromptDialog.js} +1 -1
  96. package/dist/components/dialogs/CommandPromptDialog.js.map +1 -0
  97. package/dist/components/dialogs/DialogBox.d.ts.map +1 -0
  98. package/dist/components/dialogs/DialogBox.js.map +1 -0
  99. package/dist/components/dialogs/HooksDialog.d.ts.map +1 -0
  100. package/dist/components/dialogs/HooksDialog.js.map +1 -0
  101. package/dist/components/{MergeConfirmationDialog.d.ts → dialogs/MergeConfirmationDialog.d.ts} +1 -1
  102. package/dist/components/dialogs/MergeConfirmationDialog.d.ts.map +1 -0
  103. package/dist/components/dialogs/MergeConfirmationDialog.js.map +1 -0
  104. package/dist/components/{SettingsDialog.d.ts → dialogs/SettingsDialog.d.ts} +1 -1
  105. package/dist/components/dialogs/SettingsDialog.d.ts.map +1 -0
  106. package/dist/components/dialogs/SettingsDialog.js.map +1 -0
  107. package/dist/components/dialogs/UpdateDialog.d.ts.map +1 -0
  108. package/dist/components/dialogs/UpdateDialog.js.map +1 -0
  109. package/dist/components/indicators/CreatingIndicator.d.ts.map +1 -0
  110. package/dist/components/indicators/CreatingIndicator.js.map +1 -0
  111. package/dist/components/indicators/LoadingIndicator.d.ts.map +1 -0
  112. package/dist/components/indicators/LoadingIndicator.js.map +1 -0
  113. package/dist/components/indicators/RunningIndicator.d.ts.map +1 -0
  114. package/dist/components/indicators/RunningIndicator.js.map +1 -0
  115. package/dist/components/indicators/Spinner.d.ts.map +1 -0
  116. package/dist/components/indicators/Spinner.js.map +1 -0
  117. package/dist/components/indicators/UpdatingIndicator.d.ts.map +1 -0
  118. package/dist/components/indicators/UpdatingIndicator.js.map +1 -0
  119. package/dist/components/indicators/index.d.ts +6 -0
  120. package/dist/components/indicators/index.d.ts.map +1 -0
  121. package/dist/components/indicators/index.js +6 -0
  122. package/dist/components/indicators/index.js.map +1 -0
  123. package/dist/components/inputs/CleanTextInput.d.ts.map +1 -0
  124. package/dist/{CleanTextInput.js → components/inputs/CleanTextInput.js} +2 -144
  125. package/dist/components/inputs/CleanTextInput.js.map +1 -0
  126. package/dist/components/inputs/StyledTextInput.d.ts.map +1 -0
  127. package/dist/components/inputs/StyledTextInput.js.map +1 -0
  128. package/dist/components/inputs/index.d.ts +3 -0
  129. package/dist/components/inputs/index.d.ts.map +1 -0
  130. package/dist/components/inputs/index.js +3 -0
  131. package/dist/components/inputs/index.js.map +1 -0
  132. package/dist/components/{KebabMenu.d.ts → panes/KebabMenu.d.ts} +1 -1
  133. package/dist/components/panes/KebabMenu.d.ts.map +1 -0
  134. package/dist/components/panes/KebabMenu.js.map +1 -0
  135. package/dist/components/panes/MergePane.d.ts.map +1 -0
  136. package/dist/{MergePane.js → components/panes/MergePane.js} +1 -1
  137. package/dist/components/panes/MergePane.js.map +1 -0
  138. package/dist/components/{PaneCard.d.ts → panes/PaneCard.d.ts} +1 -1
  139. package/dist/components/panes/PaneCard.d.ts.map +1 -0
  140. package/dist/components/{PaneCard.js → panes/PaneCard.js} +1 -1
  141. package/dist/components/panes/PaneCard.js.map +1 -0
  142. package/dist/components/{PanesGrid.d.ts → panes/PanesGrid.d.ts} +2 -2
  143. package/dist/components/panes/PanesGrid.d.ts.map +1 -0
  144. package/dist/components/{PanesGrid.js → panes/PanesGrid.js} +1 -1
  145. package/dist/components/panes/PanesGrid.js.map +1 -0
  146. package/dist/components/panes/index.d.ts +5 -0
  147. package/dist/components/panes/index.d.ts.map +1 -0
  148. package/dist/components/panes/index.js +5 -0
  149. package/dist/components/panes/index.js.map +1 -0
  150. package/dist/components/popups/agentChoicePopup.d.ts.map +1 -0
  151. package/dist/{popups → components/popups}/agentChoicePopup.js +1 -1
  152. package/dist/components/popups/agentChoicePopup.js.map +1 -0
  153. package/dist/components/popups/choicePopup.d.ts.map +1 -0
  154. package/dist/{popups → components/popups}/choicePopup.js +3 -3
  155. package/dist/components/popups/choicePopup.js.map +1 -0
  156. package/dist/components/popups/config.d.ts.map +1 -0
  157. package/dist/{popups → components/popups}/config.js +1 -1
  158. package/dist/components/popups/config.js.map +1 -0
  159. package/dist/components/popups/confirmPopup.d.ts.map +1 -0
  160. package/dist/{popups → components/popups}/confirmPopup.js +2 -3
  161. package/dist/components/popups/confirmPopup.js.map +1 -0
  162. package/dist/components/popups/hooksPopup.d.ts.map +1 -0
  163. package/dist/{popups → components/popups}/hooksPopup.js +1 -1
  164. package/dist/components/popups/hooksPopup.js.map +1 -0
  165. package/dist/components/popups/inputPopup.d.ts.map +1 -0
  166. package/dist/{popups → components/popups}/inputPopup.js +3 -4
  167. package/dist/components/popups/inputPopup.js.map +1 -0
  168. package/dist/components/popups/kebabMenuPopup.d.ts.map +1 -0
  169. package/dist/{popups → components/popups}/kebabMenuPopup.js +1 -1
  170. package/dist/components/popups/kebabMenuPopup.js.map +1 -0
  171. package/dist/components/popups/logsPopup.d.ts.map +1 -0
  172. package/dist/{popups → components/popups}/logsPopup.js +15 -7
  173. package/dist/components/popups/logsPopup.js.map +1 -0
  174. package/dist/components/popups/mergePopup.d.ts.map +1 -0
  175. package/dist/{popups → components/popups}/mergePopup.js +6 -6
  176. package/dist/components/popups/mergePopup.js.map +1 -0
  177. package/dist/components/popups/newPanePopup.d.ts.map +1 -0
  178. package/dist/{popups → components/popups}/newPanePopup.js +3 -3
  179. package/dist/components/popups/newPanePopup.js.map +1 -0
  180. package/dist/components/popups/progressPopup.d.ts.map +1 -0
  181. package/dist/{popups → components/popups}/progressPopup.js +1 -2
  182. package/dist/components/popups/progressPopup.js.map +1 -0
  183. package/dist/components/popups/remotePopup.d.ts.map +1 -0
  184. package/dist/{popups → components/popups}/remotePopup.js +1 -1
  185. package/dist/components/popups/remotePopup.js.map +1 -0
  186. package/dist/components/popups/settingsPopup.d.ts.map +1 -0
  187. package/dist/{popups → components/popups}/settingsPopup.js +1 -1
  188. package/dist/components/popups/settingsPopup.js.map +1 -0
  189. package/dist/components/popups/shared/FileList.d.ts.map +1 -0
  190. package/dist/components/popups/shared/FileList.js.map +1 -0
  191. package/dist/components/popups/shared/PopupContainer.d.ts.map +1 -0
  192. package/dist/components/popups/shared/PopupContainer.js.map +1 -0
  193. package/dist/components/popups/shared/PopupInputBox.d.ts.map +1 -0
  194. package/dist/components/popups/shared/PopupInputBox.js.map +1 -0
  195. package/dist/components/popups/shared/PopupWrapper.d.ts.map +1 -0
  196. package/dist/components/popups/shared/PopupWrapper.js.map +1 -0
  197. package/dist/components/popups/shared/index.d.ts.map +1 -0
  198. package/dist/components/popups/shared/index.js.map +1 -0
  199. package/dist/components/popups/shortcutsPopup.d.ts.map +1 -0
  200. package/dist/{popups → components/popups}/shortcutsPopup.js +1 -1
  201. package/dist/components/popups/shortcutsPopup.js.map +1 -0
  202. package/dist/components/popups/templates/SimpleInputPopup.d.ts.map +1 -0
  203. package/dist/{popups → components/popups}/templates/SimpleInputPopup.js +2 -2
  204. package/dist/components/popups/templates/SimpleInputPopup.js.map +1 -0
  205. package/dist/components/ui/FileCopyPrompt.d.ts.map +1 -0
  206. package/dist/components/ui/FileCopyPrompt.js.map +1 -0
  207. package/dist/components/ui/FooterHelp.d.ts.map +1 -0
  208. package/dist/components/ui/FooterHelp.js.map +1 -0
  209. package/dist/components/ui/QRCode.d.ts.map +1 -0
  210. package/dist/components/ui/QRCode.js.map +1 -0
  211. package/dist/components/ui/index.d.ts +4 -0
  212. package/dist/components/ui/index.d.ts.map +1 -0
  213. package/dist/components/ui/index.js +4 -0
  214. package/dist/components/ui/index.js.map +1 -0
  215. package/dist/constants/timing.d.ts +22 -0
  216. package/dist/constants/timing.d.ts.map +1 -0
  217. package/dist/constants/timing.js +26 -0
  218. package/dist/constants/timing.js.map +1 -0
  219. package/dist/hooks/useActionSystem.d.ts +5 -4
  220. package/dist/hooks/useActionSystem.d.ts.map +1 -1
  221. package/dist/hooks/useActionSystem.js +120 -114
  222. package/dist/hooks/useActionSystem.js.map +1 -1
  223. package/dist/hooks/useDebugInfo.d.ts +11 -0
  224. package/dist/hooks/useDebugInfo.d.ts.map +1 -0
  225. package/dist/hooks/useDebugInfo.js +34 -0
  226. package/dist/hooks/useDebugInfo.js.map +1 -0
  227. package/dist/hooks/useDialogState.d.ts +22 -0
  228. package/dist/hooks/useDialogState.d.ts.map +1 -0
  229. package/dist/hooks/useDialogState.js +62 -0
  230. package/dist/hooks/useDialogState.js.map +1 -0
  231. package/dist/hooks/useInputHandling.d.ts +60 -0
  232. package/dist/hooks/useInputHandling.d.ts.map +1 -0
  233. package/dist/hooks/useInputHandling.js +280 -0
  234. package/dist/hooks/useInputHandling.js.map +1 -0
  235. package/dist/hooks/useLayoutManagement.d.ts +12 -0
  236. package/dist/hooks/useLayoutManagement.d.ts.map +1 -0
  237. package/dist/hooks/useLayoutManagement.js +58 -0
  238. package/dist/hooks/useLayoutManagement.js.map +1 -0
  239. package/dist/hooks/usePaneCreation.d.ts.map +1 -1
  240. package/dist/hooks/usePaneCreation.js +4 -9
  241. package/dist/hooks/usePaneCreation.js.map +1 -1
  242. package/dist/hooks/usePaneLoading.d.ts +45 -0
  243. package/dist/hooks/usePaneLoading.d.ts.map +1 -0
  244. package/dist/hooks/usePaneLoading.js +188 -0
  245. package/dist/hooks/usePaneLoading.js.map +1 -0
  246. package/dist/hooks/usePaneRunner.d.ts.map +1 -1
  247. package/dist/hooks/usePaneRunner.js +9 -6
  248. package/dist/hooks/usePaneRunner.js.map +1 -1
  249. package/dist/hooks/usePaneSync.d.ts +34 -0
  250. package/dist/hooks/usePaneSync.d.ts.map +1 -0
  251. package/dist/hooks/usePaneSync.js +182 -0
  252. package/dist/hooks/usePaneSync.js.map +1 -0
  253. package/dist/hooks/usePanes.d.ts.map +1 -1
  254. package/dist/hooks/usePanes.js +55 -405
  255. package/dist/hooks/usePanes.js.map +1 -1
  256. package/dist/hooks/useServices.d.ts +24 -0
  257. package/dist/hooks/useServices.d.ts.map +1 -0
  258. package/dist/hooks/useServices.js +39 -0
  259. package/dist/hooks/useServices.js.map +1 -0
  260. package/dist/hooks/useShellDetection.d.ts +10 -0
  261. package/dist/hooks/useShellDetection.d.ts.map +1 -0
  262. package/dist/hooks/useShellDetection.js +53 -0
  263. package/dist/hooks/useShellDetection.js.map +1 -0
  264. package/dist/hooks/useStatusMessages.d.ts +11 -0
  265. package/dist/hooks/useStatusMessages.d.ts.map +1 -0
  266. package/dist/hooks/useStatusMessages.js +32 -0
  267. package/dist/hooks/useStatusMessages.js.map +1 -0
  268. package/dist/hooks/useTemporaryStatus.d.ts +13 -0
  269. package/dist/hooks/useTemporaryStatus.d.ts.map +1 -0
  270. package/dist/hooks/useTemporaryStatus.js +30 -0
  271. package/dist/hooks/useTemporaryStatus.js.map +1 -0
  272. package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
  273. package/dist/hooks/useTerminalWidth.js +7 -12
  274. package/dist/hooks/useTerminalWidth.js.map +1 -1
  275. package/dist/hooks/useTunnelManagement.d.ts +18 -0
  276. package/dist/hooks/useTunnelManagement.d.ts.map +1 -0
  277. package/dist/hooks/useTunnelManagement.js +55 -0
  278. package/dist/hooks/useTunnelManagement.js.map +1 -0
  279. package/dist/hooks/useWorktreeActions.d.ts.map +1 -1
  280. package/dist/hooks/useWorktreeActions.js +18 -13
  281. package/dist/hooks/useWorktreeActions.js.map +1 -1
  282. package/dist/index.js +75 -57
  283. package/dist/index.js.map +1 -1
  284. package/dist/layout/LayoutCalculator.d.ts +62 -0
  285. package/dist/layout/LayoutCalculator.d.ts.map +1 -0
  286. package/dist/layout/LayoutCalculator.js +143 -0
  287. package/dist/layout/LayoutCalculator.js.map +1 -0
  288. package/dist/layout/SpacerManager.d.ts +64 -0
  289. package/dist/layout/SpacerManager.d.ts.map +1 -0
  290. package/dist/layout/SpacerManager.js +148 -0
  291. package/dist/layout/SpacerManager.js.map +1 -0
  292. package/dist/layout/TmuxLayoutApplier.d.ts +59 -0
  293. package/dist/layout/TmuxLayoutApplier.d.ts.map +1 -0
  294. package/dist/layout/TmuxLayoutApplier.js +135 -0
  295. package/dist/layout/TmuxLayoutApplier.js.map +1 -0
  296. package/dist/panes/decorative-pane.d.ts.map +1 -0
  297. package/dist/{decorative-pane.js → panes/decorative-pane.js} +1 -1
  298. package/dist/panes/decorative-pane.js.map +1 -0
  299. package/dist/panes/spacer-pane.d.ts.map +1 -0
  300. package/dist/panes/spacer-pane.js.map +1 -0
  301. package/dist/server/embedded-assets.d.ts.map +1 -1
  302. package/dist/server/embedded-assets.js +636 -5637
  303. package/dist/server/embedded-assets.js.map +1 -1
  304. package/dist/server/routes/actionsRoutes.d.ts +2 -0
  305. package/dist/server/routes/actionsRoutes.d.ts.map +1 -0
  306. package/dist/server/routes/actionsRoutes.js +110 -0
  307. package/dist/server/routes/actionsRoutes.js.map +1 -0
  308. package/dist/server/routes/healthRoutes.d.ts +13 -0
  309. package/dist/server/routes/healthRoutes.d.ts.map +1 -0
  310. package/dist/server/routes/healthRoutes.js +70 -0
  311. package/dist/server/routes/healthRoutes.js.map +1 -0
  312. package/dist/server/routes/index.d.ts +8 -0
  313. package/dist/server/routes/index.d.ts.map +1 -0
  314. package/dist/server/routes/index.js +67 -0
  315. package/dist/server/routes/index.js.map +1 -0
  316. package/dist/server/routes/keysRoutes.d.ts +20 -0
  317. package/dist/server/routes/keysRoutes.d.ts.map +1 -0
  318. package/dist/server/routes/keysRoutes.js +111 -0
  319. package/dist/server/routes/keysRoutes.js.map +1 -0
  320. package/dist/server/routes/panesRoutes.d.ts +2 -0
  321. package/dist/server/routes/panesRoutes.d.ts.map +1 -0
  322. package/dist/server/routes/panesRoutes.js +373 -0
  323. package/dist/server/routes/panesRoutes.js.map +1 -0
  324. package/dist/server/routes/settingsRoutes.d.ts +94 -0
  325. package/dist/server/routes/settingsRoutes.d.ts.map +1 -0
  326. package/dist/server/routes/settingsRoutes.js +159 -0
  327. package/dist/server/routes/settingsRoutes.js.map +1 -0
  328. package/dist/server/routes/streamRoutes.d.ts +18 -0
  329. package/dist/server/routes/streamRoutes.d.ts.map +1 -0
  330. package/dist/server/routes/streamRoutes.js +87 -0
  331. package/dist/server/routes/streamRoutes.js.map +1 -0
  332. package/dist/server/routes/tunnelRoutes.d.ts +11 -0
  333. package/dist/server/routes/tunnelRoutes.d.ts.map +1 -0
  334. package/dist/server/routes/tunnelRoutes.js +28 -0
  335. package/dist/server/routes/tunnelRoutes.js.map +1 -0
  336. package/dist/server/routes.d.ts +16 -2
  337. package/dist/server/routes.d.ts.map +1 -1
  338. package/dist/server/routes.js +16 -878
  339. package/dist/server/routes.js.map +1 -1
  340. package/dist/{AutoUpdater.d.ts → services/AutoUpdater.d.ts} +1 -0
  341. package/dist/services/AutoUpdater.d.ts.map +1 -0
  342. package/dist/{AutoUpdater.js → services/AutoUpdater.js} +42 -9
  343. package/dist/services/AutoUpdater.js.map +1 -0
  344. package/dist/services/PaneAnalyzer.d.ts.map +1 -0
  345. package/dist/{PaneAnalyzer.js → services/PaneAnalyzer.js} +1 -1
  346. package/dist/services/PaneAnalyzer.js.map +1 -0
  347. package/dist/services/PaneLifecycleManager.d.ts +60 -0
  348. package/dist/services/PaneLifecycleManager.d.ts.map +1 -0
  349. package/dist/services/PaneLifecycleManager.js +119 -0
  350. package/dist/services/PaneLifecycleManager.js.map +1 -0
  351. package/dist/services/PaneWorkerManager.d.ts.map +1 -1
  352. package/dist/services/PaneWorkerManager.js +6 -3
  353. package/dist/services/PaneWorkerManager.js.map +1 -1
  354. package/dist/services/PopupManager.d.ts +68 -0
  355. package/dist/services/PopupManager.d.ts.map +1 -0
  356. package/dist/services/PopupManager.js +415 -0
  357. package/dist/services/PopupManager.js.map +1 -0
  358. package/dist/services/StatusDetector.js +1 -1
  359. package/dist/services/StatusDetector.js.map +1 -1
  360. package/dist/services/TerminalStreamer.d.ts +1 -0
  361. package/dist/services/TerminalStreamer.d.ts.map +1 -1
  362. package/dist/services/TerminalStreamer.js +22 -16
  363. package/dist/services/TerminalStreamer.js.map +1 -1
  364. package/dist/services/TmuxService.d.ts +298 -0
  365. package/dist/services/TmuxService.d.ts.map +1 -0
  366. package/dist/services/TmuxService.js +768 -0
  367. package/dist/services/TmuxService.js.map +1 -0
  368. package/dist/services/TunnelService.d.ts.map +1 -1
  369. package/dist/services/TunnelService.js +2 -1
  370. package/dist/services/TunnelService.js.map +1 -1
  371. package/dist/types.d.ts +4 -0
  372. package/dist/types.d.ts.map +1 -1
  373. package/dist/utils/asciiArt.d.ts.map +1 -1
  374. package/dist/utils/asciiArt.js +6 -19
  375. package/dist/utils/asciiArt.js.map +1 -1
  376. package/dist/utils/conflictMonitor.d.ts +20 -0
  377. package/dist/utils/conflictMonitor.d.ts.map +1 -0
  378. package/dist/utils/conflictMonitor.js +113 -0
  379. package/dist/utils/conflictMonitor.js.map +1 -0
  380. package/dist/utils/conflictResolutionPane.d.ts.map +1 -1
  381. package/dist/utils/conflictResolutionPane.js +70 -79
  382. package/dist/utils/conflictResolutionPane.js.map +1 -1
  383. package/dist/utils/errorHandling.d.ts +37 -0
  384. package/dist/utils/errorHandling.d.ts.map +1 -0
  385. package/dist/utils/errorHandling.js +112 -0
  386. package/dist/utils/errorHandling.js.map +1 -0
  387. package/dist/utils/generated-agents-doc.d.ts +1 -1
  388. package/dist/utils/generated-agents-doc.js +1 -1
  389. package/dist/utils/git.d.ts +4 -0
  390. package/dist/utils/git.d.ts.map +1 -1
  391. package/dist/utils/git.js +15 -0
  392. package/dist/utils/git.js.map +1 -1
  393. package/dist/utils/hooksDocs.d.ts +1 -1
  394. package/dist/utils/layoutManager.d.ts +20 -16
  395. package/dist/utils/layoutManager.d.ts.map +1 -1
  396. package/dist/utils/layoutManager.js +116 -367
  397. package/dist/utils/layoutManager.js.map +1 -1
  398. package/dist/utils/mergeExecution.d.ts.map +1 -1
  399. package/dist/utils/mergeExecution.js +8 -1
  400. package/dist/utils/mergeExecution.js.map +1 -1
  401. package/dist/utils/mergeValidation.d.ts.map +1 -1
  402. package/dist/utils/mergeValidation.js +42 -13
  403. package/dist/utils/mergeValidation.js.map +1 -1
  404. package/dist/utils/paneCreation.d.ts.map +1 -1
  405. package/dist/utils/paneCreation.js +111 -103
  406. package/dist/utils/paneCreation.js.map +1 -1
  407. package/dist/utils/paneRebinding.d.ts +14 -0
  408. package/dist/utils/paneRebinding.d.ts.map +1 -0
  409. package/dist/utils/paneRebinding.js +28 -0
  410. package/dist/utils/paneRebinding.js.map +1 -0
  411. package/dist/utils/popup.d.ts.map +1 -1
  412. package/dist/utils/popup.js +11 -17
  413. package/dist/utils/popup.js.map +1 -1
  414. package/dist/utils/postPaneCleanup.d.ts.map +1 -1
  415. package/dist/utils/postPaneCleanup.js +4 -3
  416. package/dist/utils/postPaneCleanup.js.map +1 -1
  417. package/dist/utils/shellPaneDetection.d.ts +3 -3
  418. package/dist/utils/shellPaneDetection.d.ts.map +1 -1
  419. package/dist/utils/shellPaneDetection.js +10 -6
  420. package/dist/utils/shellPaneDetection.js.map +1 -1
  421. package/dist/utils/systemCheck.d.ts +19 -0
  422. package/dist/utils/systemCheck.d.ts.map +1 -0
  423. package/dist/utils/systemCheck.js +160 -0
  424. package/dist/utils/systemCheck.js.map +1 -0
  425. package/dist/utils/tmux.d.ts +26 -7
  426. package/dist/utils/tmux.d.ts.map +1 -1
  427. package/dist/utils/tmux.js +66 -64
  428. package/dist/utils/tmux.js.map +1 -1
  429. package/dist/utils/welcomePane.d.ts +2 -2
  430. package/dist/utils/welcomePane.d.ts.map +1 -1
  431. package/dist/utils/welcomePane.js +20 -28
  432. package/dist/utils/welcomePane.js.map +1 -1
  433. package/dist/utils/welcomePaneManager.js +1 -1
  434. package/dist/utils/welcomePaneManager.js.map +1 -1
  435. package/dist/workers/PaneWorker.js +7 -9
  436. package/dist/workers/PaneWorker.js.map +1 -1
  437. package/dist/workers/updateChecker.js +1 -1
  438. package/dist/workers/updateChecker.js.map +1 -1
  439. package/package.json +3 -1
  440. package/dist/AutoUpdater.d.ts.map +0 -1
  441. package/dist/AutoUpdater.js.map +0 -1
  442. package/dist/BetterTextInput.d.ts +0 -10
  443. package/dist/BetterTextInput.d.ts.map +0 -1
  444. package/dist/BetterTextInput.js +0 -177
  445. package/dist/BetterTextInput.js.map +0 -1
  446. package/dist/CleanTextInput.d.ts.map +0 -1
  447. package/dist/CleanTextInput.js.map +0 -1
  448. package/dist/EnhancedTextInput.d.ts +0 -13
  449. package/dist/EnhancedTextInput.d.ts.map +0 -1
  450. package/dist/EnhancedTextInput.js +0 -443
  451. package/dist/EnhancedTextInput.js.map +0 -1
  452. package/dist/GeminiTextInput.d.ts +0 -12
  453. package/dist/GeminiTextInput.d.ts.map +0 -1
  454. package/dist/GeminiTextInput.js +0 -210
  455. package/dist/GeminiTextInput.js.map +0 -1
  456. package/dist/MergePane.d.ts.map +0 -1
  457. package/dist/MergePane.js.map +0 -1
  458. package/dist/MultilineTextInput.d.ts +0 -10
  459. package/dist/MultilineTextInput.d.ts.map +0 -1
  460. package/dist/MultilineTextInput.js +0 -184
  461. package/dist/MultilineTextInput.js.map +0 -1
  462. package/dist/PaneAnalyzer.d.ts.map +0 -1
  463. package/dist/PaneAnalyzer.js.map +0 -1
  464. package/dist/SimpleEnhancedInput.d.ts +0 -13
  465. package/dist/SimpleEnhancedInput.d.ts.map +0 -1
  466. package/dist/SimpleEnhancedInput.js +0 -639
  467. package/dist/SimpleEnhancedInput.js.map +0 -1
  468. package/dist/SimpleGeminiInput.d.ts +0 -12
  469. package/dist/SimpleGeminiInput.d.ts.map +0 -1
  470. package/dist/SimpleGeminiInput.js +0 -223
  471. package/dist/SimpleGeminiInput.js.map +0 -1
  472. package/dist/StyledTextInput.d.ts.map +0 -1
  473. package/dist/StyledTextInput.js.map +0 -1
  474. package/dist/components/ActionChoiceDialog.d.ts.map +0 -1
  475. package/dist/components/ActionChoiceDialog.js.map +0 -1
  476. package/dist/components/ActionConfirmDialog.d.ts.map +0 -1
  477. package/dist/components/ActionConfirmDialog.js.map +0 -1
  478. package/dist/components/ActionInputDialog.d.ts.map +0 -1
  479. package/dist/components/ActionInputDialog.js.map +0 -1
  480. package/dist/components/ActionProgressDialog.d.ts.map +0 -1
  481. package/dist/components/ActionProgressDialog.js.map +0 -1
  482. package/dist/components/AgentChoiceDialog.d.ts.map +0 -1
  483. package/dist/components/AgentChoiceDialog.js.map +0 -1
  484. package/dist/components/CloseOptionsDialog.d.ts.map +0 -1
  485. package/dist/components/CloseOptionsDialog.js.map +0 -1
  486. package/dist/components/CommandPromptDialog.d.ts.map +0 -1
  487. package/dist/components/CommandPromptDialog.js.map +0 -1
  488. package/dist/components/CreatingIndicator.d.ts.map +0 -1
  489. package/dist/components/CreatingIndicator.js.map +0 -1
  490. package/dist/components/DialogBox.d.ts.map +0 -1
  491. package/dist/components/DialogBox.js.map +0 -1
  492. package/dist/components/FileCopyPrompt.d.ts.map +0 -1
  493. package/dist/components/FileCopyPrompt.js.map +0 -1
  494. package/dist/components/FooterHelp.d.ts.map +0 -1
  495. package/dist/components/FooterHelp.js.map +0 -1
  496. package/dist/components/HooksDialog.d.ts.map +0 -1
  497. package/dist/components/HooksDialog.js.map +0 -1
  498. package/dist/components/KebabMenu.d.ts.map +0 -1
  499. package/dist/components/KebabMenu.js.map +0 -1
  500. package/dist/components/LoadingIndicator.d.ts.map +0 -1
  501. package/dist/components/LoadingIndicator.js.map +0 -1
  502. package/dist/components/MergeConfirmationDialog.d.ts.map +0 -1
  503. package/dist/components/MergeConfirmationDialog.js.map +0 -1
  504. package/dist/components/PaneCard.d.ts.map +0 -1
  505. package/dist/components/PaneCard.js.map +0 -1
  506. package/dist/components/PanesGrid.d.ts.map +0 -1
  507. package/dist/components/PanesGrid.js.map +0 -1
  508. package/dist/components/QRCode.d.ts.map +0 -1
  509. package/dist/components/QRCode.js.map +0 -1
  510. package/dist/components/RunningIndicator.d.ts.map +0 -1
  511. package/dist/components/RunningIndicator.js.map +0 -1
  512. package/dist/components/SettingsDialog.d.ts.map +0 -1
  513. package/dist/components/SettingsDialog.js.map +0 -1
  514. package/dist/components/Spinner.d.ts.map +0 -1
  515. package/dist/components/Spinner.js.map +0 -1
  516. package/dist/components/UpdateDialog.d.ts.map +0 -1
  517. package/dist/components/UpdateDialog.js.map +0 -1
  518. package/dist/components/UpdatingIndicator.d.ts.map +0 -1
  519. package/dist/components/UpdatingIndicator.js.map +0 -1
  520. package/dist/decorative-pane.d.ts.map +0 -1
  521. package/dist/decorative-pane.js.map +0 -1
  522. package/dist/popups/agentChoicePopup.d.ts.map +0 -1
  523. package/dist/popups/agentChoicePopup.js.map +0 -1
  524. package/dist/popups/choicePopup.d.ts.map +0 -1
  525. package/dist/popups/choicePopup.js.map +0 -1
  526. package/dist/popups/components/FileList.d.ts.map +0 -1
  527. package/dist/popups/components/FileList.js.map +0 -1
  528. package/dist/popups/components/PopupContainer.d.ts.map +0 -1
  529. package/dist/popups/components/PopupContainer.js.map +0 -1
  530. package/dist/popups/components/PopupInputBox.d.ts.map +0 -1
  531. package/dist/popups/components/PopupInputBox.js.map +0 -1
  532. package/dist/popups/components/PopupWrapper.d.ts.map +0 -1
  533. package/dist/popups/components/PopupWrapper.js.map +0 -1
  534. package/dist/popups/components/index.d.ts.map +0 -1
  535. package/dist/popups/components/index.js.map +0 -1
  536. package/dist/popups/config.d.ts.map +0 -1
  537. package/dist/popups/config.js.map +0 -1
  538. package/dist/popups/confirmPopup.d.ts.map +0 -1
  539. package/dist/popups/confirmPopup.js.map +0 -1
  540. package/dist/popups/hooksPopup.d.ts.map +0 -1
  541. package/dist/popups/hooksPopup.js.map +0 -1
  542. package/dist/popups/inputPopup.d.ts.map +0 -1
  543. package/dist/popups/inputPopup.js.map +0 -1
  544. package/dist/popups/kebabMenuPopup.d.ts.map +0 -1
  545. package/dist/popups/kebabMenuPopup.js.map +0 -1
  546. package/dist/popups/logsPopup.d.ts.map +0 -1
  547. package/dist/popups/logsPopup.js.map +0 -1
  548. package/dist/popups/mergePopup.d.ts.map +0 -1
  549. package/dist/popups/mergePopup.js.map +0 -1
  550. package/dist/popups/newPanePopup.d.ts.map +0 -1
  551. package/dist/popups/newPanePopup.js.map +0 -1
  552. package/dist/popups/progressPopup.d.ts.map +0 -1
  553. package/dist/popups/progressPopup.js.map +0 -1
  554. package/dist/popups/remotePopup.d.ts.map +0 -1
  555. package/dist/popups/remotePopup.js.map +0 -1
  556. package/dist/popups/settingsPopup.d.ts.map +0 -1
  557. package/dist/popups/settingsPopup.js.map +0 -1
  558. package/dist/popups/shortcutsPopup.d.ts.map +0 -1
  559. package/dist/popups/shortcutsPopup.js.map +0 -1
  560. package/dist/popups/templates/SimpleInputPopup.d.ts.map +0 -1
  561. package/dist/popups/templates/SimpleInputPopup.js.map +0 -1
  562. package/dist/server/static.d.ts +0 -6
  563. package/dist/server/static.d.ts.map +0 -1
  564. package/dist/server/static.js +0 -3040
  565. package/dist/server/static.js.map +0 -1
  566. package/dist/spacer-pane.d.ts.map +0 -1
  567. package/dist/spacer-pane.js.map +0 -1
  568. /package/dist/components/{ActionChoiceDialog.js → dialogs/ActionChoiceDialog.js} +0 -0
  569. /package/dist/components/{ActionConfirmDialog.d.ts → dialogs/ActionConfirmDialog.d.ts} +0 -0
  570. /package/dist/components/{ActionConfirmDialog.js → dialogs/ActionConfirmDialog.js} +0 -0
  571. /package/dist/components/{ActionInputDialog.d.ts → dialogs/ActionInputDialog.d.ts} +0 -0
  572. /package/dist/components/{ActionProgressDialog.d.ts → dialogs/ActionProgressDialog.d.ts} +0 -0
  573. /package/dist/components/{ActionProgressDialog.js → dialogs/ActionProgressDialog.js} +0 -0
  574. /package/dist/components/{AgentChoiceDialog.d.ts → dialogs/AgentChoiceDialog.d.ts} +0 -0
  575. /package/dist/components/{AgentChoiceDialog.js → dialogs/AgentChoiceDialog.js} +0 -0
  576. /package/dist/components/{CloseOptionsDialog.js → dialogs/CloseOptionsDialog.js} +0 -0
  577. /package/dist/components/{CommandPromptDialog.d.ts → dialogs/CommandPromptDialog.d.ts} +0 -0
  578. /package/dist/components/{DialogBox.d.ts → dialogs/DialogBox.d.ts} +0 -0
  579. /package/dist/components/{DialogBox.js → dialogs/DialogBox.js} +0 -0
  580. /package/dist/components/{HooksDialog.d.ts → dialogs/HooksDialog.d.ts} +0 -0
  581. /package/dist/components/{HooksDialog.js → dialogs/HooksDialog.js} +0 -0
  582. /package/dist/components/{MergeConfirmationDialog.js → dialogs/MergeConfirmationDialog.js} +0 -0
  583. /package/dist/components/{SettingsDialog.js → dialogs/SettingsDialog.js} +0 -0
  584. /package/dist/components/{UpdateDialog.d.ts → dialogs/UpdateDialog.d.ts} +0 -0
  585. /package/dist/components/{UpdateDialog.js → dialogs/UpdateDialog.js} +0 -0
  586. /package/dist/components/{CreatingIndicator.d.ts → indicators/CreatingIndicator.d.ts} +0 -0
  587. /package/dist/components/{CreatingIndicator.js → indicators/CreatingIndicator.js} +0 -0
  588. /package/dist/components/{LoadingIndicator.d.ts → indicators/LoadingIndicator.d.ts} +0 -0
  589. /package/dist/components/{LoadingIndicator.js → indicators/LoadingIndicator.js} +0 -0
  590. /package/dist/components/{RunningIndicator.d.ts → indicators/RunningIndicator.d.ts} +0 -0
  591. /package/dist/components/{RunningIndicator.js → indicators/RunningIndicator.js} +0 -0
  592. /package/dist/components/{Spinner.d.ts → indicators/Spinner.d.ts} +0 -0
  593. /package/dist/components/{Spinner.js → indicators/Spinner.js} +0 -0
  594. /package/dist/components/{UpdatingIndicator.d.ts → indicators/UpdatingIndicator.d.ts} +0 -0
  595. /package/dist/components/{UpdatingIndicator.js → indicators/UpdatingIndicator.js} +0 -0
  596. /package/dist/{CleanTextInput.d.ts → components/inputs/CleanTextInput.d.ts} +0 -0
  597. /package/dist/{StyledTextInput.d.ts → components/inputs/StyledTextInput.d.ts} +0 -0
  598. /package/dist/{StyledTextInput.js → components/inputs/StyledTextInput.js} +0 -0
  599. /package/dist/components/{KebabMenu.js → panes/KebabMenu.js} +0 -0
  600. /package/dist/{MergePane.d.ts → components/panes/MergePane.d.ts} +0 -0
  601. /package/dist/{popups → components/popups}/agentChoicePopup.d.ts +0 -0
  602. /package/dist/{popups → components/popups}/choicePopup.d.ts +0 -0
  603. /package/dist/{popups → components/popups}/config.d.ts +0 -0
  604. /package/dist/{popups → components/popups}/confirmPopup.d.ts +0 -0
  605. /package/dist/{popups → components/popups}/hooksPopup.d.ts +0 -0
  606. /package/dist/{popups → components/popups}/inputPopup.d.ts +0 -0
  607. /package/dist/{popups → components/popups}/kebabMenuPopup.d.ts +0 -0
  608. /package/dist/{popups → components/popups}/logsPopup.d.ts +0 -0
  609. /package/dist/{popups → components/popups}/mergePopup.d.ts +0 -0
  610. /package/dist/{popups → components/popups}/newPanePopup.d.ts +0 -0
  611. /package/dist/{popups → components/popups}/progressPopup.d.ts +0 -0
  612. /package/dist/{popups → components/popups}/remotePopup.d.ts +0 -0
  613. /package/dist/{popups → components/popups}/settingsPopup.d.ts +0 -0
  614. /package/dist/{popups/components → components/popups/shared}/FileList.d.ts +0 -0
  615. /package/dist/{popups/components → components/popups/shared}/FileList.js +0 -0
  616. /package/dist/{popups/components → components/popups/shared}/PopupContainer.d.ts +0 -0
  617. /package/dist/{popups/components → components/popups/shared}/PopupContainer.js +0 -0
  618. /package/dist/{popups/components → components/popups/shared}/PopupInputBox.d.ts +0 -0
  619. /package/dist/{popups/components → components/popups/shared}/PopupInputBox.js +0 -0
  620. /package/dist/{popups/components → components/popups/shared}/PopupWrapper.d.ts +0 -0
  621. /package/dist/{popups/components → components/popups/shared}/PopupWrapper.js +0 -0
  622. /package/dist/{popups/components → components/popups/shared}/index.d.ts +0 -0
  623. /package/dist/{popups/components → components/popups/shared}/index.js +0 -0
  624. /package/dist/{popups → components/popups}/shortcutsPopup.d.ts +0 -0
  625. /package/dist/{popups → components/popups}/templates/SimpleInputPopup.d.ts +0 -0
  626. /package/dist/components/{FileCopyPrompt.d.ts → ui/FileCopyPrompt.d.ts} +0 -0
  627. /package/dist/components/{FileCopyPrompt.js → ui/FileCopyPrompt.js} +0 -0
  628. /package/dist/components/{FooterHelp.d.ts → ui/FooterHelp.d.ts} +0 -0
  629. /package/dist/components/{FooterHelp.js → ui/FooterHelp.js} +0 -0
  630. /package/dist/components/{QRCode.d.ts → ui/QRCode.d.ts} +0 -0
  631. /package/dist/components/{QRCode.js → ui/QRCode.js} +0 -0
  632. /package/dist/{decorative-pane.d.ts → panes/decorative-pane.d.ts} +0 -0
  633. /package/dist/{spacer-pane.d.ts → panes/spacer-pane.d.ts} +0 -0
  634. /package/dist/{spacer-pane.js → panes/spacer-pane.js} +0 -0
  635. /package/dist/{PaneAnalyzer.d.ts → services/PaneAnalyzer.d.ts} +0 -0
@@ -0,0 +1,373 @@
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
+ worktreePath: pane.worktreePath,
12
+ agent: pane.agent || 'unknown',
13
+ agentStatus: pane.agentStatus || 'idle',
14
+ testStatus: pane.testStatus,
15
+ testWindowId: pane.testWindowId,
16
+ devStatus: pane.devStatus,
17
+ devUrl: pane.devUrl,
18
+ devWindowId: pane.devWindowId,
19
+ lastAgentCheck: pane.lastAgentCheck,
20
+ optionsQuestion: pane.optionsQuestion,
21
+ options: pane.options,
22
+ potentialHarm: pane.potentialHarm,
23
+ agentSummary: pane.agentSummary
24
+ };
25
+ }
26
+ export function createPanesRoutes() {
27
+ const router = createRouter();
28
+ // GET /api/panes - List all panes
29
+ router.get('/api/panes', eventHandler(async (event) => {
30
+ const state = stateManager.getState();
31
+ return {
32
+ panes: state.panes.map(formatPaneResponse),
33
+ projectName: state.projectName,
34
+ sessionName: state.sessionName,
35
+ timestamp: Date.now()
36
+ };
37
+ }));
38
+ // GET /api/panes/:id - Get specific pane
39
+ router.get('/api/panes/:id', eventHandler(async (event) => {
40
+ const params = getRouterParams(event);
41
+ const paneId = params?.id;
42
+ if (!paneId) {
43
+ event.node.res.statusCode = 400;
44
+ return { error: 'Missing pane ID' };
45
+ }
46
+ const pane = stateManager.getPaneById(decodeURIComponent(paneId));
47
+ if (!pane) {
48
+ event.node.res.statusCode = 404;
49
+ return { error: 'Pane not found' };
50
+ }
51
+ return formatPaneResponse(pane);
52
+ }));
53
+ // POST /api/panes - Create a new pane
54
+ router.post('/api/panes', eventHandler(async (event) => {
55
+ try {
56
+ const body = await readBody(event);
57
+ let { prompt, agent } = body;
58
+ console.error('[API] POST /api/panes called with:', { prompt, agent, body });
59
+ if (!prompt || typeof prompt !== 'string') {
60
+ event.node.res.statusCode = 400;
61
+ return { error: 'Missing or invalid prompt' };
62
+ }
63
+ // Normalize agent to undefined if not provided or empty
64
+ if (!agent || agent === '') {
65
+ agent = undefined;
66
+ }
67
+ console.error('[API] After normalization, agent =', agent);
68
+ if (agent && agent !== 'claude' && agent !== 'opencode') {
69
+ event.node.res.statusCode = 400;
70
+ return { error: 'Invalid agent. Must be "claude" or "opencode"' };
71
+ }
72
+ // Get available agents using robust detection (same as TUI)
73
+ const { execSync } = await import('child_process');
74
+ const fsPromises = await import('fs/promises');
75
+ const availableAgents = [];
76
+ // Check for Claude
77
+ const hasClaude = await (async () => {
78
+ try {
79
+ const userShell = process.env.SHELL || '/bin/bash';
80
+ const result = execSync(`${userShell} -i -c "command -v claude 2>/dev/null || which claude 2>/dev/null"`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
81
+ if (result)
82
+ return true;
83
+ }
84
+ catch { }
85
+ const claudePaths = [
86
+ `${process.env.HOME}/.claude/local/claude`,
87
+ `${process.env.HOME}/.local/bin/claude`,
88
+ '/usr/local/bin/claude',
89
+ '/opt/homebrew/bin/claude',
90
+ '/usr/bin/claude',
91
+ `${process.env.HOME}/bin/claude`,
92
+ ];
93
+ for (const p of claudePaths) {
94
+ try {
95
+ await fsPromises.access(p);
96
+ return true;
97
+ }
98
+ catch { }
99
+ }
100
+ return false;
101
+ })();
102
+ if (hasClaude)
103
+ availableAgents.push('claude');
104
+ // Check for opencode
105
+ const hasOpencode = await (async () => {
106
+ try {
107
+ const userShell = process.env.SHELL || '/bin/bash';
108
+ const result = execSync(`${userShell} -i -c "command -v opencode 2>/dev/null || which opencode 2>/dev/null"`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
109
+ if (result)
110
+ return true;
111
+ }
112
+ catch { }
113
+ const opencodePaths = [
114
+ '/opt/homebrew/bin/opencode',
115
+ '/usr/local/bin/opencode',
116
+ `${process.env.HOME}/.local/bin/opencode`,
117
+ `${process.env.HOME}/bin/opencode`,
118
+ ];
119
+ for (const p of opencodePaths) {
120
+ try {
121
+ await fsPromises.access(p);
122
+ return true;
123
+ }
124
+ catch { }
125
+ }
126
+ return false;
127
+ })();
128
+ if (hasOpencode)
129
+ availableAgents.push('opencode');
130
+ console.error('[API] Available agents:', availableAgents);
131
+ if (availableAgents.length === 0) {
132
+ event.node.res.statusCode = 500;
133
+ return { error: 'No agents available. Install claude or opencode.' };
134
+ }
135
+ // If no agent specified and multiple available, return agent choice needed
136
+ if (!agent && availableAgents.length > 1) {
137
+ console.error('[API] Returning needsAgentChoice');
138
+ return {
139
+ needsAgentChoice: true,
140
+ availableAgents,
141
+ message: 'Please specify an agent (claude or opencode) in the request body',
142
+ };
143
+ }
144
+ console.error('[API] Proceeding to create pane with agent:', agent);
145
+ // Import pane creation utility
146
+ const { createPane } = await import('../../utils/paneCreation.js');
147
+ const state = stateManager.getState();
148
+ // Create the pane
149
+ const result = await createPane({
150
+ prompt,
151
+ agent: agent || (availableAgents.length === 1 ? availableAgents[0] : undefined),
152
+ projectName: state.projectName || 'unknown',
153
+ existingPanes: state.panes,
154
+ }, availableAgents);
155
+ // Check if agent choice is needed
156
+ if (result.needsAgentChoice) {
157
+ return {
158
+ needsAgentChoice: true,
159
+ availableAgents,
160
+ message: 'Please specify an agent (claude or opencode) in the request body',
161
+ };
162
+ }
163
+ // Note: createPane() already saves the pane to config for the first content pane
164
+ // For subsequent panes, we need to check if it's already been saved before adding
165
+ const fs = await import('fs/promises');
166
+ const path = await import('path');
167
+ // Get panes file path from state
168
+ const projectRoot = state.projectRoot || process.cwd();
169
+ const panesFile = path.join(projectRoot, '.dmux', `dmux.config.json`);
170
+ // Read existing panes
171
+ let existingPanes = [];
172
+ try {
173
+ const configContent = await fs.readFile(panesFile, 'utf-8');
174
+ const config = JSON.parse(configContent);
175
+ existingPanes = Array.isArray(config) ? config : config.panes || [];
176
+ }
177
+ catch {
178
+ // File doesn't exist yet, start with empty array
179
+ }
180
+ // Check if the pane was already saved by createPane()
181
+ const paneAlreadyExists = existingPanes.some(p => p.id === result.pane.id);
182
+ if (!paneAlreadyExists) {
183
+ // Add new pane only if it doesn't exist
184
+ const updatedPanes = [...existingPanes, result.pane];
185
+ // Write back to file - ConfigWatcher will update StateManager
186
+ await fs.writeFile(panesFile, JSON.stringify({ panes: updatedPanes }, null, 2));
187
+ }
188
+ return {
189
+ success: true,
190
+ pane: formatPaneResponse(result.pane),
191
+ message: 'Pane created successfully',
192
+ };
193
+ }
194
+ catch (err) {
195
+ const msg = 'Failed to create pane via API';
196
+ console.error(msg, err);
197
+ LogService.getInstance().error(msg, 'routes', undefined, err instanceof Error ? err : undefined);
198
+ event.node.res.statusCode = 500;
199
+ return { error: 'Failed to create pane', details: err.message };
200
+ }
201
+ }));
202
+ // GET /api/panes/:id/snapshot - Get current pane snapshot
203
+ router.get('/api/panes/:id/snapshot', eventHandler(async (event) => {
204
+ const params = getRouterParams(event);
205
+ const paneId = params?.id;
206
+ if (!paneId) {
207
+ event.node.res.statusCode = 400;
208
+ return { error: 'Missing pane ID' };
209
+ }
210
+ const pane = stateManager.getPaneById(decodeURIComponent(paneId));
211
+ if (!pane) {
212
+ event.node.res.statusCode = 404;
213
+ return { error: 'Pane not found' };
214
+ }
215
+ // Capture current pane state from tmux
216
+ const { execSync } = await import('child_process');
217
+ try {
218
+ // Get dimensions
219
+ const dimensionsOutput = execSync(`tmux display-message -p -t ${pane.paneId} -F "#{pane_width},#{pane_height}"`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
220
+ const [width, height] = dimensionsOutput.split(',').map(Number);
221
+ // Get content
222
+ const content = execSync(`tmux capture-pane -epJ -t ${pane.paneId}`, { encoding: 'utf-8', stdio: 'pipe' });
223
+ // Get cursor position
224
+ const cursorOutput = execSync(`tmux display-message -p -t ${pane.paneId} -F "#{cursor_y},#{cursor_x}"`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
225
+ const [cursorRow, cursorCol] = cursorOutput.split(',').map(Number);
226
+ return {
227
+ width: width || 80,
228
+ height: height || 24,
229
+ content,
230
+ cursorRow: cursorRow || 0,
231
+ cursorCol: cursorCol || 0
232
+ };
233
+ }
234
+ catch (error) {
235
+ event.node.res.statusCode = 500;
236
+ return { error: 'Failed to capture pane state' };
237
+ }
238
+ }));
239
+ // PUT /api/panes/:id/test - Update test status (called by run_test hook)
240
+ router.put('/api/panes/:id/test', eventHandler(async (event) => {
241
+ const params = getRouterParams(event);
242
+ const paneId = params?.id;
243
+ if (!paneId) {
244
+ event.node.res.statusCode = 400;
245
+ return { error: 'Missing pane ID' };
246
+ }
247
+ const pane = stateManager.getPaneById(decodeURIComponent(paneId));
248
+ if (!pane) {
249
+ event.node.res.statusCode = 404;
250
+ return { error: 'Pane not found' };
251
+ }
252
+ try {
253
+ const body = await readBody(event);
254
+ const { status, output } = body;
255
+ if (!status || !['running', 'passed', 'failed'].includes(status)) {
256
+ event.node.res.statusCode = 400;
257
+ return { error: 'Invalid or missing status. Must be: running, passed, or failed' };
258
+ }
259
+ // Update pane with test status
260
+ const updatedPane = {
261
+ ...pane,
262
+ testStatus: status,
263
+ testOutput: output || pane.testOutput,
264
+ };
265
+ // Update in StateManager
266
+ const state = stateManager.getState();
267
+ const updatedPanes = state.panes.map(p => p.id === pane.id ? updatedPane : p);
268
+ stateManager.updatePanes(updatedPanes);
269
+ // Persist to config file
270
+ const fs = await import('fs/promises');
271
+ const path = await import('path');
272
+ const projectRoot = state.projectRoot || process.cwd();
273
+ const panesFile = path.join(projectRoot, '.dmux', 'dmux.config.json');
274
+ await fs.writeFile(panesFile, JSON.stringify({ panes: updatedPanes }, null, 2));
275
+ return {
276
+ success: true,
277
+ paneId: pane.id,
278
+ testStatus: status,
279
+ message: `Test status updated to ${status}`,
280
+ };
281
+ }
282
+ catch (err) {
283
+ const msg = 'Failed to update test status';
284
+ console.error(msg, err);
285
+ LogService.getInstance().error(msg, 'routes', pane.id, err instanceof Error ? err : undefined);
286
+ event.node.res.statusCode = 500;
287
+ return { error: 'Failed to update test status', details: err.message };
288
+ }
289
+ }));
290
+ // PUT /api/panes/:id/dev - Update dev server status (called by run_dev hook)
291
+ router.put('/api/panes/:id/dev', eventHandler(async (event) => {
292
+ const params = getRouterParams(event);
293
+ const paneId = params?.id;
294
+ if (!paneId) {
295
+ event.node.res.statusCode = 400;
296
+ return { error: 'Missing pane ID' };
297
+ }
298
+ const pane = stateManager.getPaneById(decodeURIComponent(paneId));
299
+ if (!pane) {
300
+ event.node.res.statusCode = 404;
301
+ return { error: 'Pane not found' };
302
+ }
303
+ try {
304
+ const body = await readBody(event);
305
+ const { url, status } = body;
306
+ if (!status || !['running', 'stopped'].includes(status)) {
307
+ event.node.res.statusCode = 400;
308
+ return { error: 'Invalid or missing status. Must be: running or stopped' };
309
+ }
310
+ // Update pane with dev server info
311
+ const updatedPane = {
312
+ ...pane,
313
+ devStatus: status,
314
+ devUrl: url || pane.devUrl,
315
+ };
316
+ // Update in StateManager
317
+ const state = stateManager.getState();
318
+ const updatedPanes = state.panes.map(p => p.id === pane.id ? updatedPane : p);
319
+ stateManager.updatePanes(updatedPanes);
320
+ // Persist to config file
321
+ const fs = await import('fs/promises');
322
+ const path = await import('path');
323
+ const projectRoot = state.projectRoot || process.cwd();
324
+ const panesFile = path.join(projectRoot, '.dmux', 'dmux.config.json');
325
+ await fs.writeFile(panesFile, JSON.stringify({ panes: updatedPanes }, null, 2));
326
+ return {
327
+ success: true,
328
+ paneId: pane.id,
329
+ devStatus: status,
330
+ devUrl: url,
331
+ message: `Dev server ${status === 'running' ? 'started' : 'stopped'}${url ? ` at ${url}` : ''}`,
332
+ };
333
+ }
334
+ catch (err) {
335
+ const msg = 'Failed to update dev status';
336
+ console.error(msg, err);
337
+ LogService.getInstance().error(msg, 'routes', pane.id, err instanceof Error ? err : undefined);
338
+ event.node.res.statusCode = 500;
339
+ return { error: 'Failed to update dev status', details: err.message };
340
+ }
341
+ }));
342
+ // POST /api/panes/:id/actions - Execute action on pane (legacy endpoint)
343
+ router.post('/api/panes/:id/actions', eventHandler(async (event) => {
344
+ const params = getRouterParams(event);
345
+ const paneId = params?.id;
346
+ if (!paneId) {
347
+ event.node.res.statusCode = 400;
348
+ return { error: 'Missing pane ID' };
349
+ }
350
+ const pane = stateManager.getPaneById(decodeURIComponent(paneId));
351
+ if (!pane) {
352
+ event.node.res.statusCode = 404;
353
+ return { error: 'Pane not found' };
354
+ }
355
+ try {
356
+ const action = await readBody(event);
357
+ // For now, just acknowledge the action
358
+ // Future: Implement actual pane actions (sendKeys, resize, etc.)
359
+ return {
360
+ status: 'acknowledged',
361
+ paneId,
362
+ action,
363
+ message: 'Action endpoints will be implemented in future versions'
364
+ };
365
+ }
366
+ catch (err) {
367
+ event.node.res.statusCode = 400;
368
+ return { error: 'Invalid request body' };
369
+ }
370
+ }));
371
+ return router;
372
+ }
373
+ //# sourceMappingURL=panesRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panesRoutes.js","sourceRoot":"","sources":["../../../src/server/routes/panesRoutes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settingsRoutes.d.ts","sourceRoot":"","sources":["../../../src/server/routes/settingsRoutes.ts"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0KnC"}
@@ -0,0 +1,159 @@
1
+ import { eventHandler, readBody } from 'h3';
2
+ import { StateManager } from '../../shared/StateManager.js';
3
+ import { LogService } from '../../services/LogService.js';
4
+ const stateManager = StateManager.getInstance();
5
+ export function createSettingsRoutes() {
6
+ return [
7
+ // GET /api/session - Get session info
8
+ {
9
+ path: '/api/session',
10
+ handler: eventHandler(async () => {
11
+ const state = stateManager.getState();
12
+ return {
13
+ projectName: state.projectName,
14
+ sessionName: state.sessionName,
15
+ projectRoot: state.projectRoot,
16
+ serverUrl: state.serverUrl,
17
+ settings: state.settings,
18
+ paneCount: state.panes.length,
19
+ timestamp: Date.now()
20
+ };
21
+ })
22
+ },
23
+ // GET /api/settings - Get current settings (merged, global, and project)
24
+ // PATCH /api/settings - Update a setting
25
+ {
26
+ path: '/api/settings',
27
+ handler: eventHandler(async (event) => {
28
+ if (event.node.req.method === 'GET') {
29
+ const { SettingsManager, SETTING_DEFINITIONS } = await import('../../utils/settingsManager.js');
30
+ const state = stateManager.getState();
31
+ const projectRoot = state.projectRoot || process.cwd();
32
+ const manager = new SettingsManager(projectRoot);
33
+ return {
34
+ settings: {
35
+ merged: manager.getSettings(),
36
+ global: manager.getGlobalSettings(),
37
+ project: manager.getProjectSettings()
38
+ },
39
+ definitions: SETTING_DEFINITIONS
40
+ };
41
+ }
42
+ // PATCH /api/settings - Update a setting
43
+ if (event.node.req.method === 'PATCH') {
44
+ try {
45
+ const body = await readBody(event);
46
+ const { key, value, scope } = body;
47
+ if (!key || scope === undefined) {
48
+ event.node.res.statusCode = 400;
49
+ return { error: 'Missing key or scope' };
50
+ }
51
+ if (scope !== 'global' && scope !== 'project') {
52
+ event.node.res.statusCode = 400;
53
+ return { error: 'Invalid scope. Must be "global" or "project"' };
54
+ }
55
+ const { SettingsManager } = await import('../../utils/settingsManager.js');
56
+ const state = stateManager.getState();
57
+ const projectRoot = state.projectRoot || process.cwd();
58
+ const manager = new SettingsManager(projectRoot);
59
+ manager.updateSetting(key, value, scope);
60
+ return {
61
+ success: true,
62
+ message: `Setting "${key}" updated at ${scope} level`
63
+ };
64
+ }
65
+ catch (err) {
66
+ const msg = 'Failed to update setting';
67
+ console.error(msg, err);
68
+ LogService.getInstance().error(msg, 'routes', undefined, err instanceof Error ? err : undefined);
69
+ event.node.res.statusCode = 500;
70
+ return { error: 'Failed to update setting', details: err.message };
71
+ }
72
+ }
73
+ event.node.res.statusCode = 405;
74
+ return { error: 'Method not allowed' };
75
+ })
76
+ },
77
+ // GET /api/hooks - Get hooks status
78
+ {
79
+ path: '/api/hooks',
80
+ handler: eventHandler(async (event) => {
81
+ if (event.node.req.method === 'GET') {
82
+ const { listAvailableHooks, hasHook } = await import('../../utils/hooks.js');
83
+ const state = stateManager.getState();
84
+ const projectRoot = state.projectRoot || process.cwd();
85
+ // All possible hooks
86
+ const allHookTypes = [
87
+ 'before_pane_create',
88
+ 'pane_created',
89
+ 'worktree_created',
90
+ 'before_pane_close',
91
+ 'pane_closed',
92
+ 'before_worktree_remove',
93
+ 'worktree_removed',
94
+ 'pre_merge',
95
+ 'post_merge',
96
+ 'run_test',
97
+ 'run_dev',
98
+ ];
99
+ // Check status of each hook
100
+ const hooks = allHookTypes.map(hookName => ({
101
+ name: hookName,
102
+ active: hasHook(projectRoot, hookName)
103
+ }));
104
+ return {
105
+ hooks,
106
+ activeCount: hooks.filter(h => h.active).length,
107
+ totalCount: hooks.length
108
+ };
109
+ }
110
+ event.node.res.statusCode = 405;
111
+ return { error: 'Method not allowed' };
112
+ })
113
+ },
114
+ // GET /api/logs - Get logs with optional filtering
115
+ {
116
+ path: '/api/logs',
117
+ handler: eventHandler(async (event) => {
118
+ if (event.node.req.method === 'GET') {
119
+ const url = new URL(event.node.req.url || '', `http://${event.node.req.headers.host}`);
120
+ const level = url.searchParams.get('level');
121
+ const source = url.searchParams.get('source');
122
+ const paneId = url.searchParams.get('paneId');
123
+ const unreadOnly = url.searchParams.get('unreadOnly') === 'true';
124
+ const filter = {};
125
+ if (level)
126
+ filter.level = level;
127
+ if (source)
128
+ filter.source = source;
129
+ if (paneId)
130
+ filter.paneId = paneId;
131
+ if (unreadOnly)
132
+ filter.unreadOnly = true;
133
+ const logs = stateManager.getLogs(filter);
134
+ const stats = stateManager.getLogStats();
135
+ return {
136
+ logs,
137
+ stats,
138
+ timestamp: Date.now()
139
+ };
140
+ }
141
+ event.node.res.statusCode = 405;
142
+ return { error: 'Method not allowed' };
143
+ })
144
+ },
145
+ // POST /api/logs/mark-read - Mark all logs as read
146
+ {
147
+ path: '/api/logs/mark-read',
148
+ handler: eventHandler(async (event) => {
149
+ if (event.node.req.method === 'POST') {
150
+ stateManager.markAllLogsAsRead();
151
+ return { success: true, message: 'All logs marked as read' };
152
+ }
153
+ event.node.res.statusCode = 405;
154
+ return { error: 'Method not allowed' };
155
+ })
156
+ }
157
+ ];
158
+ }
159
+ //# sourceMappingURL=settingsRoutes.js.map