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,84 @@
1
+ /**
2
+ * MERGE Action - Merge a worktree into the main branch with comprehensive pre-checks
3
+ *
4
+ * This is the simplified orchestrator that delegates to specialized modules.
5
+ */
6
+ import { triggerHook } from '../../utils/hooks.js';
7
+ import { executeMerge } from '../merge/mergeExecution.js';
8
+ import { handleNothingToMerge, handleMainDirty, handleWorktreeUncommitted, handleMergeConflict, } from '../merge/issueHandlers/index.js';
9
+ /**
10
+ * Merge a worktree into the main branch with comprehensive pre-checks
11
+ */
12
+ export async function mergePane(pane, context, params) {
13
+ // 1. Validation
14
+ if (!pane.worktreePath) {
15
+ return {
16
+ type: 'error',
17
+ message: 'This pane has no worktree to merge',
18
+ dismissable: true,
19
+ };
20
+ }
21
+ // 2. Pre-merge validation
22
+ const { validateMerge } = await import('../../utils/mergeValidation.js');
23
+ const mainRepoPath = pane.worktreePath.replace(/\/\.dmux\/worktrees\/[^/]+$/, '');
24
+ const validation = validateMerge(mainRepoPath, pane.worktreePath, pane.slug);
25
+ // 3. Handle detected issues
26
+ if (!validation.canMerge) {
27
+ return handleMergeIssues(pane, context, validation, mainRepoPath);
28
+ }
29
+ // 4. No issues detected, proceed with merge confirmation
30
+ return {
31
+ type: 'confirm',
32
+ title: 'Merge Worktree',
33
+ message: `Merge "${pane.slug}" into ${validation.mainBranch}?`,
34
+ confirmLabel: 'Merge',
35
+ cancelLabel: 'Cancel',
36
+ onConfirm: async () => {
37
+ // Trigger pre_merge hook before starting merge
38
+ await triggerHook('pre_merge', mainRepoPath, pane, {
39
+ DMUX_TARGET_BRANCH: validation.mainBranch,
40
+ });
41
+ return executeMerge(pane, context, validation.mainBranch, mainRepoPath);
42
+ },
43
+ onCancel: async () => {
44
+ return {
45
+ type: 'info',
46
+ message: 'Merge cancelled',
47
+ dismissable: true,
48
+ };
49
+ },
50
+ };
51
+ }
52
+ /**
53
+ * Handle detected merge issues by delegating to specialized handlers
54
+ */
55
+ async function handleMergeIssues(pane, context, validation, mainRepoPath) {
56
+ const { issues, mainBranch } = validation;
57
+ // Create retry function that re-runs the merge
58
+ const retryMerge = () => mergePane(pane, context, { mainBranch });
59
+ // Find and handle specific issue types
60
+ const nothingToMerge = issues.find((i) => i.type === 'nothing_to_merge');
61
+ if (nothingToMerge) {
62
+ return handleNothingToMerge();
63
+ }
64
+ const mainDirty = issues.find((i) => i.type === 'main_dirty');
65
+ if (mainDirty) {
66
+ return handleMainDirty(mainDirty, mainBranch, mainRepoPath, pane, context, retryMerge);
67
+ }
68
+ const worktreeUncommitted = issues.find((i) => i.type === 'worktree_uncommitted');
69
+ if (worktreeUncommitted) {
70
+ return handleWorktreeUncommitted(worktreeUncommitted, pane, context, retryMerge);
71
+ }
72
+ const mergeConflict = issues.find((i) => i.type === 'merge_conflict');
73
+ if (mergeConflict) {
74
+ return handleMergeConflict(mergeConflict, mainBranch, mainRepoPath, pane, context);
75
+ }
76
+ // Generic fallback for unknown issues
77
+ return {
78
+ type: 'error',
79
+ title: 'Merge Issues Detected',
80
+ message: issues.map((i) => i.message).join('\n'),
81
+ dismissable: true,
82
+ };
83
+ }
84
+ //# sourceMappingURL=mergeAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeAction.js","sourceRoot":"","sources":["../../../src/actions/implementations/mergeAction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * OPEN_IN_EDITOR Action - Open worktree in external editor
3
+ */
4
+ import type { DmuxPane } from '../../types.js';
5
+ import type { ActionResult, ActionContext } from '../types.js';
6
+ /**
7
+ * Open worktree in external editor
8
+ */
9
+ export declare function openInEditor(pane: DmuxPane, context: ActionContext, params?: {
10
+ editor?: string;
11
+ }): Promise<ActionResult>;
12
+ //# sourceMappingURL=openInEditorAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openInEditorAction.d.ts","sourceRoot":"","sources":["../../../src/actions/implementations/openInEditorAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/D;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,YAAY,CAAC,CA0BvB"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * OPEN_IN_EDITOR Action - Open worktree in external editor
3
+ */
4
+ import { execSync } from 'child_process';
5
+ /**
6
+ * Open worktree in external editor
7
+ */
8
+ export async function openInEditor(pane, context, params) {
9
+ if (!pane.worktreePath) {
10
+ return {
11
+ type: 'error',
12
+ message: 'This pane has no worktree to open',
13
+ dismissable: true,
14
+ };
15
+ }
16
+ const editor = params?.editor || process.env.EDITOR || 'code';
17
+ try {
18
+ execSync(`${editor} "${pane.worktreePath}"`, { stdio: 'pipe' });
19
+ return {
20
+ type: 'success',
21
+ message: `Opened in ${editor}`,
22
+ dismissable: true,
23
+ };
24
+ }
25
+ catch (error) {
26
+ return {
27
+ type: 'error',
28
+ message: `Failed to open in editor: ${error}`,
29
+ dismissable: true,
30
+ };
31
+ }
32
+ }
33
+ //# sourceMappingURL=openInEditorAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openInEditorAction.js","sourceRoot":"","sources":["../../../src/actions/implementations/openInEditorAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAc,EACd,OAAsB,EACtB,MAA4B;IAE5B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,mCAAmC;YAC5C,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC;IAE9D,IAAI,CAAC;QACH,QAAQ,CAAC,GAAG,MAAM,KAAK,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAEhE,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,aAAa,MAAM,EAAE;YAC9B,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,6BAA6B,KAAK,EAAE;YAC7C,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * RENAME Action - Rename a pane
3
+ * NOTE: Renaming is disabled because pane names are tied to git worktree branches.
4
+ * Renaming would require renaming the branch and moving the worktree directory,
5
+ * which is complex and error-prone.
6
+ */
7
+ import type { DmuxPane } from '../../types.js';
8
+ import type { ActionResult, ActionContext } from '../types.js';
9
+ /**
10
+ * Rename a pane (currently disabled - shows info message)
11
+ */
12
+ export declare function renamePane(pane: DmuxPane, context: ActionContext): Promise<ActionResult>;
13
+ //# sourceMappingURL=renameAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renameAction.d.ts","sourceRoot":"","sources":["../../../src/actions/implementations/renameAction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/D;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAOvB"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * RENAME Action - Rename a pane
3
+ * NOTE: Renaming is disabled because pane names are tied to git worktree branches.
4
+ * Renaming would require renaming the branch and moving the worktree directory,
5
+ * which is complex and error-prone.
6
+ */
7
+ /**
8
+ * Rename a pane (currently disabled - shows info message)
9
+ */
10
+ export async function renamePane(pane, context) {
11
+ return {
12
+ type: 'info',
13
+ title: 'Rename Not Supported',
14
+ message: 'Pane names are tied to git worktree branches and cannot be renamed after creation.\n\nThe pane name always matches the worktree directory and git branch name.',
15
+ dismissable: true,
16
+ };
17
+ }
18
+ //# sourceMappingURL=renameAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renameAction.js","sourceRoot":"","sources":["../../../src/actions/implementations/renameAction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAc,EACd,OAAsB;IAEtB,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EAAE,gKAAgK;QACzK,WAAW,EAAE,IAAI;KAClB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * TOGGLE_AUTOPILOT Action - Toggle autopilot mode for a pane
3
+ */
4
+ import type { DmuxPane } from '../../types.js';
5
+ import type { ActionResult, ActionContext } from '../types.js';
6
+ /**
7
+ * Toggle autopilot mode for a pane
8
+ */
9
+ export declare function toggleAutopilot(pane: DmuxPane, context: ActionContext): Promise<ActionResult>;
10
+ //# sourceMappingURL=toggleAutopilotAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggleAutopilotAction.d.ts","sourceRoot":"","sources":["../../../src/actions/implementations/toggleAutopilotAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/D;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CA8BvB"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * TOGGLE_AUTOPILOT Action - Toggle autopilot mode for a pane
3
+ */
4
+ /**
5
+ * Toggle autopilot mode for a pane
6
+ */
7
+ export async function toggleAutopilot(pane, context) {
8
+ try {
9
+ // Toggle the autopilot setting
10
+ const newAutopilotState = !pane.autopilot;
11
+ // Update the pane
12
+ const updatedPanes = context.panes.map(p => p.id === pane.id ? { ...p, autopilot: newAutopilotState } : p);
13
+ // Save the updated panes
14
+ await context.savePanes(updatedPanes);
15
+ // Notify about the update
16
+ if (context.onPaneUpdate) {
17
+ context.onPaneUpdate({ ...pane, autopilot: newAutopilotState });
18
+ }
19
+ return {
20
+ type: 'success',
21
+ message: `Autopilot ${newAutopilotState ? 'enabled' : 'disabled'} for "${pane.slug}"`,
22
+ dismissable: true,
23
+ };
24
+ }
25
+ catch (error) {
26
+ return {
27
+ type: 'error',
28
+ message: `Failed to toggle autopilot: ${error instanceof Error ? error.message : 'Unknown error'}`,
29
+ dismissable: true,
30
+ };
31
+ }
32
+ }
33
+ //# sourceMappingURL=toggleAutopilotAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggleAutopilotAction.js","sourceRoot":"","sources":["../../../src/actions/implementations/toggleAutopilotAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAc,EACd,OAAsB;IAEtB,IAAI,CAAC;QACH,+BAA+B;QAC/B,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QAE1C,kBAAkB;QAClB,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACzC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAC9D,CAAC;QAEF,yBAAyB;QACzB,MAAM,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAEtC,0BAA0B;QAC1B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,OAAO,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,aAAa,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,SAAS,IAAI,CAAC,IAAI,GAAG;YACrF,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;YAClG,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * VIEW Action - Jump to/view a pane
3
+ */
4
+ import type { DmuxPane } from '../../types.js';
5
+ import type { ActionResult, ActionContext } from '../types.js';
6
+ /**
7
+ * View/Jump to a pane
8
+ */
9
+ export declare function viewPane(pane: DmuxPane, context: ActionContext): Promise<ActionResult>;
10
+ //# sourceMappingURL=viewAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewAction.d.ts","sourceRoot":"","sources":["../../../src/actions/implementations/viewAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/D;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAiBvB"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * VIEW Action - Jump to/view a pane
3
+ */
4
+ import { execSync } from 'child_process';
5
+ /**
6
+ * View/Jump to a pane
7
+ */
8
+ export async function viewPane(pane, context) {
9
+ try {
10
+ execSync(`tmux select-pane -t '${pane.paneId}'`, { stdio: 'pipe' });
11
+ return {
12
+ type: 'navigation',
13
+ message: `Jumped to pane: ${pane.slug}`,
14
+ targetPaneId: pane.id,
15
+ dismissable: true,
16
+ };
17
+ }
18
+ catch (error) {
19
+ return {
20
+ type: 'error',
21
+ message: 'Failed to jump to pane - it may have been closed',
22
+ dismissable: true,
23
+ };
24
+ }
25
+ }
26
+ //# sourceMappingURL=viewAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewAction.js","sourceRoot":"","sources":["../../../src/actions/implementations/viewAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAc,EACd,OAAsB;IAEtB,IAAI,CAAC;QACH,QAAQ,CAAC,wBAAwB,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAEpE,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,mBAAmB,IAAI,CAAC,IAAI,EAAE;YACvC,YAAY,EAAE,IAAI,CAAC,EAAE;YACrB,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,kDAAkD;YAC3D,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Commit Message Handler - UI logic for commit message workflows
3
+ *
4
+ * This module handles ActionResult flows for commit message generation,
5
+ * editing, and manual input. It uses domain logic from utils/ but returns
6
+ * ActionResult objects suitable for TUI/Web/API consumption.
7
+ */
8
+ import type { ActionResult } from '../types.js';
9
+ /**
10
+ * Generate commit message with timeout and error handling
11
+ * Returns null if it fails, so caller can fall back to manual input
12
+ */
13
+ export declare function generateCommitMessageSafe(repoPath: string, timeoutMs?: number): Promise<string | null>;
14
+ /**
15
+ * Prompt for commit message with optional AI generation
16
+ * @param repoPath - Path to repository
17
+ * @param mode - 'ai_automatic' | 'ai_editable' | 'manual'
18
+ * @param onCommit - Callback to execute after commit message is obtained
19
+ * @returns ActionResult prompting for commit message
20
+ */
21
+ export declare function promptForCommitMessage(repoPath: string, mode: 'ai_automatic' | 'ai_editable' | 'manual', onCommit: (message: string) => Promise<ActionResult>): Promise<ActionResult>;
22
+ /**
23
+ * Handle commit with the given options (automatic/editable/manual)
24
+ * This DRYs up the common pattern of presenting commit options and executing
25
+ */
26
+ export declare function handleCommitWithOptions(repoPath: string, optionId: 'commit_automatic' | 'commit_ai_editable' | 'commit_manual', onSuccess: () => Promise<ActionResult>): Promise<ActionResult>;
27
+ //# sourceMappingURL=commitMessageHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commitMessageHandler.d.ts","sourceRoot":"","sources":["../../../src/actions/merge/commitMessageHandler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,MAAc,GACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwBxB;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,GAAG,aAAa,GAAG,QAAQ,EAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,GACnD,OAAO,CAAC,YAAY,CAAC,CA8EvB;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,kBAAkB,GAAG,oBAAoB,GAAG,eAAe,EACrE,SAAS,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,GACrC,OAAO,CAAC,YAAY,CAAC,CAevB"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Commit Message Handler - UI logic for commit message workflows
3
+ *
4
+ * This module handles ActionResult flows for commit message generation,
5
+ * editing, and manual input. It uses domain logic from utils/ but returns
6
+ * ActionResult objects suitable for TUI/Web/API consumption.
7
+ */
8
+ import { StateManager } from '../../shared/StateManager.js';
9
+ import { LogService } from '../../services/LogService.js';
10
+ /**
11
+ * Generate commit message with timeout and error handling
12
+ * Returns null if it fails, so caller can fall back to manual input
13
+ */
14
+ export async function generateCommitMessageSafe(repoPath, timeoutMs = 15000) {
15
+ try {
16
+ const { generateCommitMessage } = await import('../../utils/aiMerge.js');
17
+ // Race between generation and timeout
18
+ const result = await Promise.race([
19
+ generateCommitMessage(repoPath),
20
+ new Promise((_, reject) => setTimeout(() => reject(new Error('Timeout')), timeoutMs)),
21
+ ]);
22
+ if (!result) {
23
+ StateManager.getInstance().setDebugMessage('[AI] Commit message generation returned null');
24
+ LogService.getInstance().warn('AI commit message generation returned null', 'aiMerge');
25
+ }
26
+ return result;
27
+ }
28
+ catch (error) {
29
+ const errorMsg = `AI commit message generation error: ${error}`;
30
+ StateManager.getInstance().setDebugMessage(`[AI] ${errorMsg}`);
31
+ LogService.getInstance().error(errorMsg, 'aiMerge', undefined, error instanceof Error ? error : undefined);
32
+ return null;
33
+ }
34
+ }
35
+ /**
36
+ * Prompt for commit message with optional AI generation
37
+ * @param repoPath - Path to repository
38
+ * @param mode - 'ai_automatic' | 'ai_editable' | 'manual'
39
+ * @param onCommit - Callback to execute after commit message is obtained
40
+ * @returns ActionResult prompting for commit message
41
+ */
42
+ export async function promptForCommitMessage(repoPath, mode, onCommit) {
43
+ const { stageAllChanges } = await import('../../utils/mergeValidation.js');
44
+ const { getComprehensiveDiff } = await import('../../utils/aiMerge.js');
45
+ // Stage all changes first
46
+ const stageResult = stageAllChanges(repoPath);
47
+ if (!stageResult.success) {
48
+ return {
49
+ type: 'error',
50
+ message: `Failed to stage changes: ${stageResult.error}`,
51
+ dismissable: true
52
+ };
53
+ }
54
+ // Handle manual mode (no AI)
55
+ if (mode === 'manual') {
56
+ return {
57
+ type: 'input',
58
+ title: 'Enter Commit Message',
59
+ message: 'Write a commit message for the changes:',
60
+ placeholder: 'feat: add new feature',
61
+ onSubmit: async (message) => {
62
+ if (!message || !message.trim()) {
63
+ return { type: 'error', message: 'Commit message cannot be empty', dismissable: true };
64
+ }
65
+ return onCommit(message.trim());
66
+ },
67
+ dismissable: true,
68
+ };
69
+ }
70
+ // AI modes - generate message
71
+ const { diff, summary } = getComprehensiveDiff(repoPath);
72
+ StateManager.getInstance().setDebugMessage('[AI] Generating commit message...');
73
+ const generatedMessage = await generateCommitMessageSafe(repoPath);
74
+ if (generatedMessage) {
75
+ StateManager.getInstance().setDebugMessage(`[AI] Generated message: ${generatedMessage.split('\n')[0]}`);
76
+ }
77
+ // If AI generation failed, fall back to manual with explanation
78
+ if (!generatedMessage) {
79
+ StateManager.getInstance().setDebugMessage('[AI] Generation failed, falling back to manual input');
80
+ return {
81
+ type: 'input',
82
+ title: 'Enter Commit Message',
83
+ message: `⚠️ Auto-generation failed or timed out. Please write a commit message manually.\n\nFiles changed:\n${summary}`,
84
+ placeholder: 'feat: add new feature',
85
+ onSubmit: async (message) => {
86
+ if (!message || !message.trim()) {
87
+ return { type: 'error', message: 'Commit message cannot be empty', dismissable: true };
88
+ }
89
+ return onCommit(message.trim());
90
+ },
91
+ dismissable: true,
92
+ };
93
+ }
94
+ // AI automatic mode - commit immediately
95
+ if (mode === 'ai_automatic') {
96
+ return onCommit(generatedMessage);
97
+ }
98
+ // AI editable mode - let user review and edit
99
+ return {
100
+ type: 'input',
101
+ title: 'Review & Edit Commit Message',
102
+ message: `Files changed:\n${summary}\n\nGenerated message (edit as needed):`,
103
+ placeholder: 'feat: add new feature',
104
+ defaultValue: generatedMessage,
105
+ onSubmit: async (message) => {
106
+ if (!message || !message.trim()) {
107
+ return { type: 'error', message: 'Commit message cannot be empty', dismissable: true };
108
+ }
109
+ return onCommit(message.trim());
110
+ },
111
+ dismissable: true,
112
+ };
113
+ }
114
+ /**
115
+ * Handle commit with the given options (automatic/editable/manual)
116
+ * This DRYs up the common pattern of presenting commit options and executing
117
+ */
118
+ export async function handleCommitWithOptions(repoPath, optionId, onSuccess) {
119
+ const { commitChanges } = await import('../../utils/mergeValidation.js');
120
+ const mode = optionId === 'commit_automatic' ? 'ai_automatic' :
121
+ optionId === 'commit_ai_editable' ? 'ai_editable' :
122
+ 'manual';
123
+ return promptForCommitMessage(repoPath, mode, async (message) => {
124
+ const result = commitChanges(repoPath, message);
125
+ if (!result.success) {
126
+ return { type: 'error', message: `Commit failed: ${result.error}`, dismissable: true };
127
+ }
128
+ return onSuccess();
129
+ });
130
+ }
131
+ //# sourceMappingURL=commitMessageHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commitMessageHandler.js","sourceRoot":"","sources":["../../../src/actions/merge/commitMessageHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Conflict Resolution - UI logic for conflict resolution workflows
3
+ *
4
+ * This module handles ActionResult flows for creating conflict resolution panes
5
+ * with AI agents to help resolve merge conflicts.
6
+ */
7
+ import type { ActionResult, ActionContext } from '../types.js';
8
+ import type { DmuxPane } from '../../types.js';
9
+ /**
10
+ * Create a new pane for AI-assisted conflict resolution
11
+ */
12
+ export declare function createConflictResolutionPaneForMerge(pane: DmuxPane, context: ActionContext, targetBranch: string, targetRepoPath: string): Promise<ActionResult>;
13
+ //# sourceMappingURL=conflictResolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflictResolution.d.ts","sourceRoot":"","sources":["../../../src/actions/merge/conflictResolution.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C;;GAEG;AACH,wBAAsB,oCAAoC,CACxD,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,YAAY,CAAC,CAiDvB"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Conflict Resolution - UI logic for conflict resolution workflows
3
+ *
4
+ * This module handles ActionResult flows for creating conflict resolution panes
5
+ * with AI agents to help resolve merge conflicts.
6
+ */
7
+ import { TmuxService } from '../../services/TmuxService.js';
8
+ /**
9
+ * Create a new pane for AI-assisted conflict resolution
10
+ */
11
+ export async function createConflictResolutionPaneForMerge(pane, context, targetBranch, targetRepoPath) {
12
+ // First, check which agents are available
13
+ const { findClaudeCommand, findOpencodeCommand } = await import('../../utils/agentDetection.js');
14
+ const availableAgents = [];
15
+ if (await findClaudeCommand())
16
+ availableAgents.push('claude');
17
+ if (await findOpencodeCommand())
18
+ availableAgents.push('opencode');
19
+ if (availableAgents.length === 0) {
20
+ return {
21
+ type: 'error',
22
+ message: 'No AI agents available. Please install claude or opencode.',
23
+ dismissable: true,
24
+ };
25
+ }
26
+ // If multiple agents available, ask user to choose
27
+ if (availableAgents.length > 1) {
28
+ return {
29
+ type: 'choice',
30
+ title: 'Choose AI Agent for Conflict Resolution',
31
+ message: 'Which agent would you like to use to resolve merge conflicts?',
32
+ options: availableAgents.map(agent => ({
33
+ id: agent,
34
+ label: agent === 'claude' ? 'Claude Code' : 'OpenCode',
35
+ description: agent === 'claude' ? 'Anthropic Claude' : 'Open-source alternative',
36
+ default: agent === 'claude',
37
+ })),
38
+ onSelect: async (agentId) => {
39
+ return createAndLaunchConflictPane(pane, context, targetBranch, targetRepoPath, agentId);
40
+ },
41
+ dismissable: true,
42
+ };
43
+ }
44
+ // Only one agent available, use it directly
45
+ return createAndLaunchConflictPane(pane, context, targetBranch, targetRepoPath, availableAgents[0]);
46
+ }
47
+ /**
48
+ * Actually create and launch the conflict resolution pane
49
+ */
50
+ async function createAndLaunchConflictPane(pane, context, targetBranch, targetRepoPath, agent) {
51
+ try {
52
+ const { createConflictResolutionPane } = await import('../../utils/conflictResolutionPane.js');
53
+ // Create the new pane
54
+ // NOTE: We pass the WORKTREE path as targetRepoPath because that's where
55
+ // the conflicts exist and need to be resolved (not in main repo)
56
+ const conflictPane = await createConflictResolutionPane({
57
+ sourceBranch: pane.slug,
58
+ targetBranch,
59
+ targetRepoPath: pane.worktreePath, // CRITICAL: Use worktree, not main repo
60
+ agent,
61
+ projectName: context.projectName,
62
+ existingPanes: context.panes,
63
+ });
64
+ // Add the new pane to the panes list
65
+ const updatedPanes = [...context.panes, conflictPane];
66
+ await context.savePanes(updatedPanes);
67
+ // Notify about the new pane
68
+ if (context.onPaneUpdate) {
69
+ context.onPaneUpdate(conflictPane);
70
+ }
71
+ // Start monitoring for conflict resolution completion
72
+ const { startConflictMonitoring } = await import('../../utils/conflictMonitor.js');
73
+ startConflictMonitoring({
74
+ conflictPaneId: conflictPane.paneId,
75
+ repoPath: pane.worktreePath, // Monitor the WORKTREE, not main repo
76
+ onResolved: async () => {
77
+ // Conflicts resolved! Close the conflict pane and trigger cleanup
78
+ try {
79
+ console.error(`[conflictResolution] Conflicts resolved for ${pane.slug}, cleaning up conflict pane ${conflictPane.id}`);
80
+ const tmuxService = TmuxService.getInstance();
81
+ // Kill the conflict pane first
82
+ console.error(`[conflictResolution] Killing conflict pane ${conflictPane.paneId}`);
83
+ await tmuxService.killPane(conflictPane.paneId);
84
+ // CRITICAL: Read FRESH panes from StateManager, not stale context.panes
85
+ // The conflict pane was added to state earlier, and StateManager has the latest list
86
+ const { StateManager } = await import('../../shared/StateManager.js');
87
+ const stateManager = StateManager.getInstance();
88
+ const currentPanes = stateManager.getPanes();
89
+ console.error(`[conflictResolution] Current panes: ${currentPanes.map(p => p.id).join(', ')}`);
90
+ // Remove conflict pane from state
91
+ const panesWithoutConflictPane = currentPanes.filter((p) => p.id !== conflictPane.id);
92
+ console.error(`[conflictResolution] Removing conflict pane ${conflictPane.id}, remaining: ${panesWithoutConflictPane.map(p => p.id).join(', ')}`);
93
+ await context.savePanes(panesWithoutConflictPane);
94
+ // Now trigger the cleanup flow for the original pane
95
+ // We need to execute the merge completion flow
96
+ const { executeMerge } = await import('../merge/mergeExecution.js');
97
+ // Create updated context with current pane list (without conflict pane)
98
+ const updatedContext = {
99
+ ...context,
100
+ panes: panesWithoutConflictPane,
101
+ };
102
+ // Re-run executeMerge which will now succeed (conflicts are resolved)
103
+ // This will return the cleanup confirmation dialog
104
+ // IMPORTANT: Pass skipWorktreeMerge=true because agent already resolved conflicts
105
+ console.error(`[conflictResolution] Executing merge for original pane ${pane.id} (${pane.slug})`);
106
+ const result = await executeMerge(pane, updatedContext, targetBranch, targetRepoPath, true);
107
+ // If we have the onActionResult callback, use it to show the dialog
108
+ if (context.onActionResult) {
109
+ console.error(`[conflictResolution] Showing merge result dialog to user`);
110
+ await context.onActionResult(result);
111
+ }
112
+ }
113
+ catch (error) {
114
+ console.error('[conflictResolution] Error in onResolved:', error);
115
+ }
116
+ },
117
+ });
118
+ return {
119
+ type: 'navigation',
120
+ title: 'Conflict Resolution Pane Created',
121
+ message: `Created pane "${conflictPane.slug}" with ${agent} to help resolve conflicts. Switch to it to see the AI working.`,
122
+ targetPaneId: conflictPane.id,
123
+ dismissable: true,
124
+ };
125
+ }
126
+ catch (error) {
127
+ return {
128
+ type: 'error',
129
+ message: `Failed to create conflict resolution pane: ${error instanceof Error ? error.message : String(error)}`,
130
+ dismissable: true,
131
+ };
132
+ }
133
+ }
134
+ //# sourceMappingURL=conflictResolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflictResolution.js","sourceRoot":"","sources":["../../../src/actions/merge/conflictResolution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Issue Handlers - Barrel export
3
+ */
4
+ export { handleNothingToMerge } from './nothingToMergeHandler.js';
5
+ export { handleMainDirty } from './mainDirtyHandler.js';
6
+ export type { MainDirtyIssue } from './mainDirtyHandler.js';
7
+ export { handleWorktreeUncommitted } from './worktreeUncommittedHandler.js';
8
+ export type { WorktreeUncommittedIssue } from './worktreeUncommittedHandler.js';
9
+ export { handleMergeConflict } from './mergeConflictHandler.js';
10
+ export type { MergeConflictIssue } from './mergeConflictHandler.js';
11
+ //# sourceMappingURL=index.d.ts.map