dmux 3.2.0 → 3.3.1

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 (655) hide show
  1. package/dist/DmuxApp.d.ts.map +1 -1
  2. package/dist/DmuxApp.js +270 -1606
  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 +201 -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 +123 -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 +184 -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/{FooterHelp.d.ts → ui/FooterHelp.d.ts} +4 -0
  208. package/dist/components/ui/FooterHelp.d.ts.map +1 -0
  209. package/dist/components/{FooterHelp.js → ui/FooterHelp.js} +45 -1
  210. package/dist/components/ui/FooterHelp.js.map +1 -0
  211. package/dist/components/ui/QRCode.d.ts.map +1 -0
  212. package/dist/components/ui/QRCode.js.map +1 -0
  213. package/dist/components/ui/ToastNotification.d.ts +13 -0
  214. package/dist/components/ui/ToastNotification.d.ts.map +1 -0
  215. package/dist/components/ui/ToastNotification.js +22 -0
  216. package/dist/components/ui/ToastNotification.js.map +1 -0
  217. package/dist/components/ui/index.d.ts +4 -0
  218. package/dist/components/ui/index.d.ts.map +1 -0
  219. package/dist/components/ui/index.js +4 -0
  220. package/dist/components/ui/index.js.map +1 -0
  221. package/dist/constants/timing.d.ts +22 -0
  222. package/dist/constants/timing.d.ts.map +1 -0
  223. package/dist/constants/timing.js +26 -0
  224. package/dist/constants/timing.js.map +1 -0
  225. package/dist/dashboard.js +2 -2
  226. package/dist/hooks/useActionSystem.d.ts +5 -4
  227. package/dist/hooks/useActionSystem.d.ts.map +1 -1
  228. package/dist/hooks/useActionSystem.js +105 -114
  229. package/dist/hooks/useActionSystem.js.map +1 -1
  230. package/dist/hooks/useDebugInfo.d.ts +11 -0
  231. package/dist/hooks/useDebugInfo.d.ts.map +1 -0
  232. package/dist/hooks/useDebugInfo.js +34 -0
  233. package/dist/hooks/useDebugInfo.js.map +1 -0
  234. package/dist/hooks/useDialogState.d.ts +22 -0
  235. package/dist/hooks/useDialogState.d.ts.map +1 -0
  236. package/dist/hooks/useDialogState.js +62 -0
  237. package/dist/hooks/useDialogState.js.map +1 -0
  238. package/dist/hooks/useInputHandling.d.ts +60 -0
  239. package/dist/hooks/useInputHandling.d.ts.map +1 -0
  240. package/dist/hooks/useInputHandling.js +294 -0
  241. package/dist/hooks/useInputHandling.js.map +1 -0
  242. package/dist/hooks/useLayoutManagement.d.ts +12 -0
  243. package/dist/hooks/useLayoutManagement.d.ts.map +1 -0
  244. package/dist/hooks/useLayoutManagement.js +63 -0
  245. package/dist/hooks/useLayoutManagement.js.map +1 -0
  246. package/dist/hooks/usePaneCreation.d.ts.map +1 -1
  247. package/dist/hooks/usePaneCreation.js +4 -9
  248. package/dist/hooks/usePaneCreation.js.map +1 -1
  249. package/dist/hooks/usePaneLoading.d.ts +45 -0
  250. package/dist/hooks/usePaneLoading.d.ts.map +1 -0
  251. package/dist/hooks/usePaneLoading.js +208 -0
  252. package/dist/hooks/usePaneLoading.js.map +1 -0
  253. package/dist/hooks/usePaneRunner.d.ts.map +1 -1
  254. package/dist/hooks/usePaneRunner.js +9 -6
  255. package/dist/hooks/usePaneRunner.js.map +1 -1
  256. package/dist/hooks/usePaneSync.d.ts +34 -0
  257. package/dist/hooks/usePaneSync.d.ts.map +1 -0
  258. package/dist/hooks/usePaneSync.js +186 -0
  259. package/dist/hooks/usePaneSync.js.map +1 -0
  260. package/dist/hooks/usePanes.d.ts.map +1 -1
  261. package/dist/hooks/usePanes.js +68 -406
  262. package/dist/hooks/usePanes.js.map +1 -1
  263. package/dist/hooks/useServices.d.ts +24 -0
  264. package/dist/hooks/useServices.d.ts.map +1 -0
  265. package/dist/hooks/useServices.js +39 -0
  266. package/dist/hooks/useServices.js.map +1 -0
  267. package/dist/hooks/useShellDetection.d.ts +10 -0
  268. package/dist/hooks/useShellDetection.d.ts.map +1 -0
  269. package/dist/hooks/useShellDetection.js +67 -0
  270. package/dist/hooks/useShellDetection.js.map +1 -0
  271. package/dist/hooks/useStatusMessages.d.ts +11 -0
  272. package/dist/hooks/useStatusMessages.d.ts.map +1 -0
  273. package/dist/hooks/useStatusMessages.js +32 -0
  274. package/dist/hooks/useStatusMessages.js.map +1 -0
  275. package/dist/hooks/useTemporaryStatus.d.ts +13 -0
  276. package/dist/hooks/useTemporaryStatus.d.ts.map +1 -0
  277. package/dist/hooks/useTemporaryStatus.js +30 -0
  278. package/dist/hooks/useTemporaryStatus.js.map +1 -0
  279. package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
  280. package/dist/hooks/useTerminalWidth.js +7 -12
  281. package/dist/hooks/useTerminalWidth.js.map +1 -1
  282. package/dist/hooks/useTunnelManagement.d.ts +18 -0
  283. package/dist/hooks/useTunnelManagement.d.ts.map +1 -0
  284. package/dist/hooks/useTunnelManagement.js +55 -0
  285. package/dist/hooks/useTunnelManagement.js.map +1 -0
  286. package/dist/hooks/useWorktreeActions.d.ts.map +1 -1
  287. package/dist/hooks/useWorktreeActions.js +18 -13
  288. package/dist/hooks/useWorktreeActions.js.map +1 -1
  289. package/dist/index.js +124 -94
  290. package/dist/index.js.map +1 -1
  291. package/dist/layout/LayoutCalculator.d.ts +62 -0
  292. package/dist/layout/LayoutCalculator.d.ts.map +1 -0
  293. package/dist/layout/LayoutCalculator.js +140 -0
  294. package/dist/layout/LayoutCalculator.js.map +1 -0
  295. package/dist/layout/SpacerManager.d.ts +64 -0
  296. package/dist/layout/SpacerManager.d.ts.map +1 -0
  297. package/dist/layout/SpacerManager.js +156 -0
  298. package/dist/layout/SpacerManager.js.map +1 -0
  299. package/dist/layout/TmuxLayoutApplier.d.ts +62 -0
  300. package/dist/layout/TmuxLayoutApplier.d.ts.map +1 -0
  301. package/dist/layout/TmuxLayoutApplier.js +147 -0
  302. package/dist/layout/TmuxLayoutApplier.js.map +1 -0
  303. package/dist/panes/decorative-pane.d.ts.map +1 -0
  304. package/dist/{decorative-pane.js → panes/decorative-pane.js} +1 -1
  305. package/dist/panes/decorative-pane.js.map +1 -0
  306. package/dist/panes/spacer-pane.d.ts.map +1 -0
  307. package/dist/panes/spacer-pane.js.map +1 -0
  308. package/dist/server/embedded-assets.d.ts.map +1 -1
  309. package/dist/server/embedded-assets.js +727 -5677
  310. package/dist/server/embedded-assets.js.map +1 -1
  311. package/dist/server/routes/actionsRoutes.d.ts +2 -0
  312. package/dist/server/routes/actionsRoutes.d.ts.map +1 -0
  313. package/dist/server/routes/actionsRoutes.js +110 -0
  314. package/dist/server/routes/actionsRoutes.js.map +1 -0
  315. package/dist/server/routes/healthRoutes.d.ts +13 -0
  316. package/dist/server/routes/healthRoutes.d.ts.map +1 -0
  317. package/dist/server/routes/healthRoutes.js +70 -0
  318. package/dist/server/routes/healthRoutes.js.map +1 -0
  319. package/dist/server/routes/index.d.ts +8 -0
  320. package/dist/server/routes/index.d.ts.map +1 -0
  321. package/dist/server/routes/index.js +67 -0
  322. package/dist/server/routes/index.js.map +1 -0
  323. package/dist/server/routes/keysRoutes.d.ts +33 -0
  324. package/dist/server/routes/keysRoutes.d.ts.map +1 -0
  325. package/dist/server/routes/keysRoutes.js +128 -0
  326. package/dist/server/routes/keysRoutes.js.map +1 -0
  327. package/dist/server/routes/panesRoutes.d.ts +2 -0
  328. package/dist/server/routes/panesRoutes.d.ts.map +1 -0
  329. package/dist/server/routes/panesRoutes.js +373 -0
  330. package/dist/server/routes/panesRoutes.js.map +1 -0
  331. package/dist/server/routes/settingsRoutes.d.ts +94 -0
  332. package/dist/server/routes/settingsRoutes.d.ts.map +1 -0
  333. package/dist/server/routes/settingsRoutes.js +159 -0
  334. package/dist/server/routes/settingsRoutes.js.map +1 -0
  335. package/dist/server/routes/streamRoutes.d.ts +18 -0
  336. package/dist/server/routes/streamRoutes.d.ts.map +1 -0
  337. package/dist/server/routes/streamRoutes.js +87 -0
  338. package/dist/server/routes/streamRoutes.js.map +1 -0
  339. package/dist/server/routes/tunnelRoutes.d.ts +11 -0
  340. package/dist/server/routes/tunnelRoutes.d.ts.map +1 -0
  341. package/dist/server/routes/tunnelRoutes.js +28 -0
  342. package/dist/server/routes/tunnelRoutes.js.map +1 -0
  343. package/dist/server/routes.d.ts +16 -2
  344. package/dist/server/routes.d.ts.map +1 -1
  345. package/dist/server/routes.js +16 -878
  346. package/dist/server/routes.js.map +1 -1
  347. package/dist/{AutoUpdater.d.ts → services/AutoUpdater.d.ts} +1 -0
  348. package/dist/services/AutoUpdater.d.ts.map +1 -0
  349. package/dist/{AutoUpdater.js → services/AutoUpdater.js} +44 -10
  350. package/dist/services/AutoUpdater.js.map +1 -0
  351. package/dist/services/PaneAnalyzer.d.ts.map +1 -0
  352. package/dist/{PaneAnalyzer.js → services/PaneAnalyzer.js} +1 -1
  353. package/dist/services/PaneAnalyzer.js.map +1 -0
  354. package/dist/services/PaneLifecycleManager.d.ts +60 -0
  355. package/dist/services/PaneLifecycleManager.d.ts.map +1 -0
  356. package/dist/services/PaneLifecycleManager.js +119 -0
  357. package/dist/services/PaneLifecycleManager.js.map +1 -0
  358. package/dist/services/PaneWorkerManager.d.ts.map +1 -1
  359. package/dist/services/PaneWorkerManager.js +6 -3
  360. package/dist/services/PaneWorkerManager.js.map +1 -1
  361. package/dist/services/PopupManager.d.ts +68 -0
  362. package/dist/services/PopupManager.d.ts.map +1 -0
  363. package/dist/services/PopupManager.js +415 -0
  364. package/dist/services/PopupManager.js.map +1 -0
  365. package/dist/services/StatusDetector.d.ts.map +1 -1
  366. package/dist/services/StatusDetector.js +6 -8
  367. package/dist/services/StatusDetector.js.map +1 -1
  368. package/dist/services/TerminalStreamer.d.ts +1 -0
  369. package/dist/services/TerminalStreamer.d.ts.map +1 -1
  370. package/dist/services/TerminalStreamer.js +22 -16
  371. package/dist/services/TerminalStreamer.js.map +1 -1
  372. package/dist/services/TmuxService.d.ts +346 -0
  373. package/dist/services/TmuxService.d.ts.map +1 -0
  374. package/dist/services/TmuxService.js +849 -0
  375. package/dist/services/TmuxService.js.map +1 -0
  376. package/dist/services/ToastService.d.ts +71 -0
  377. package/dist/services/ToastService.d.ts.map +1 -0
  378. package/dist/services/ToastService.js +151 -0
  379. package/dist/services/ToastService.js.map +1 -0
  380. package/dist/services/TunnelService.d.ts.map +1 -1
  381. package/dist/services/TunnelService.js +2 -1
  382. package/dist/services/TunnelService.js.map +1 -1
  383. package/dist/shared/StateManager.d.ts +22 -0
  384. package/dist/shared/StateManager.d.ts.map +1 -1
  385. package/dist/shared/StateManager.js +68 -1
  386. package/dist/shared/StateManager.js.map +1 -1
  387. package/dist/terminal.js +3 -3
  388. package/dist/types.d.ts +7 -0
  389. package/dist/types.d.ts.map +1 -1
  390. package/dist/utils/asciiArt.d.ts.map +1 -1
  391. package/dist/utils/asciiArt.js +9 -22
  392. package/dist/utils/asciiArt.js.map +1 -1
  393. package/dist/utils/atomicWrite.d.ts +33 -0
  394. package/dist/utils/atomicWrite.d.ts.map +1 -0
  395. package/dist/utils/atomicWrite.js +89 -0
  396. package/dist/utils/atomicWrite.js.map +1 -0
  397. package/dist/utils/conflictMonitor.d.ts +20 -0
  398. package/dist/utils/conflictMonitor.d.ts.map +1 -0
  399. package/dist/utils/conflictMonitor.js +113 -0
  400. package/dist/utils/conflictMonitor.js.map +1 -0
  401. package/dist/utils/conflictResolutionPane.d.ts.map +1 -1
  402. package/dist/utils/conflictResolutionPane.js +70 -79
  403. package/dist/utils/conflictResolutionPane.js.map +1 -1
  404. package/dist/utils/errorHandling.d.ts +37 -0
  405. package/dist/utils/errorHandling.d.ts.map +1 -0
  406. package/dist/utils/errorHandling.js +138 -0
  407. package/dist/utils/errorHandling.js.map +1 -0
  408. package/dist/utils/generated-agents-doc.d.ts +1 -1
  409. package/dist/utils/generated-agents-doc.js +1 -1
  410. package/dist/utils/git.d.ts +4 -0
  411. package/dist/utils/git.d.ts.map +1 -1
  412. package/dist/utils/git.js +15 -0
  413. package/dist/utils/git.js.map +1 -1
  414. package/dist/utils/hooksDocs.d.ts +1 -1
  415. package/dist/utils/layoutManager.d.ts +20 -16
  416. package/dist/utils/layoutManager.d.ts.map +1 -1
  417. package/dist/utils/layoutManager.js +159 -380
  418. package/dist/utils/layoutManager.js.map +1 -1
  419. package/dist/utils/mergeExecution.d.ts.map +1 -1
  420. package/dist/utils/mergeExecution.js +8 -1
  421. package/dist/utils/mergeExecution.js.map +1 -1
  422. package/dist/utils/mergeValidation.d.ts.map +1 -1
  423. package/dist/utils/mergeValidation.js +46 -13
  424. package/dist/utils/mergeValidation.js.map +1 -1
  425. package/dist/utils/paneCreation.d.ts.map +1 -1
  426. package/dist/utils/paneCreation.js +115 -106
  427. package/dist/utils/paneCreation.js.map +1 -1
  428. package/dist/utils/paneRebinding.d.ts +14 -0
  429. package/dist/utils/paneRebinding.d.ts.map +1 -0
  430. package/dist/utils/paneRebinding.js +30 -0
  431. package/dist/utils/paneRebinding.js.map +1 -0
  432. package/dist/utils/popup.d.ts.map +1 -1
  433. package/dist/utils/popup.js +11 -17
  434. package/dist/utils/popup.js.map +1 -1
  435. package/dist/utils/postPaneCleanup.d.ts.map +1 -1
  436. package/dist/utils/postPaneCleanup.js +5 -14
  437. package/dist/utils/postPaneCleanup.js.map +1 -1
  438. package/dist/utils/shellPaneDetection.d.ts +3 -3
  439. package/dist/utils/shellPaneDetection.d.ts.map +1 -1
  440. package/dist/utils/shellPaneDetection.js +43 -29
  441. package/dist/utils/shellPaneDetection.js.map +1 -1
  442. package/dist/utils/systemCheck.d.ts +19 -0
  443. package/dist/utils/systemCheck.d.ts.map +1 -0
  444. package/dist/utils/systemCheck.js +160 -0
  445. package/dist/utils/systemCheck.js.map +1 -0
  446. package/dist/utils/tmux.d.ts +26 -7
  447. package/dist/utils/tmux.d.ts.map +1 -1
  448. package/dist/utils/tmux.js +84 -76
  449. package/dist/utils/tmux.js.map +1 -1
  450. package/dist/utils/welcomePane.d.ts +2 -2
  451. package/dist/utils/welcomePane.d.ts.map +1 -1
  452. package/dist/utils/welcomePane.js +19 -33
  453. package/dist/utils/welcomePane.js.map +1 -1
  454. package/dist/utils/welcomePaneManager.d.ts.map +1 -1
  455. package/dist/utils/welcomePaneManager.js +11 -25
  456. package/dist/utils/welcomePaneManager.js.map +1 -1
  457. package/dist/workers/PaneWorker.js +7 -9
  458. package/dist/workers/PaneWorker.js.map +1 -1
  459. package/dist/workers/updateChecker.js +1 -1
  460. package/dist/workers/updateChecker.js.map +1 -1
  461. package/package.json +3 -1
  462. package/dist/AutoUpdater.d.ts.map +0 -1
  463. package/dist/AutoUpdater.js.map +0 -1
  464. package/dist/BetterTextInput.d.ts +0 -10
  465. package/dist/BetterTextInput.d.ts.map +0 -1
  466. package/dist/BetterTextInput.js +0 -177
  467. package/dist/BetterTextInput.js.map +0 -1
  468. package/dist/CleanTextInput.d.ts.map +0 -1
  469. package/dist/CleanTextInput.js.map +0 -1
  470. package/dist/EnhancedTextInput.d.ts +0 -13
  471. package/dist/EnhancedTextInput.d.ts.map +0 -1
  472. package/dist/EnhancedTextInput.js +0 -443
  473. package/dist/EnhancedTextInput.js.map +0 -1
  474. package/dist/GeminiTextInput.d.ts +0 -12
  475. package/dist/GeminiTextInput.d.ts.map +0 -1
  476. package/dist/GeminiTextInput.js +0 -210
  477. package/dist/GeminiTextInput.js.map +0 -1
  478. package/dist/MergePane.d.ts.map +0 -1
  479. package/dist/MergePane.js.map +0 -1
  480. package/dist/MultilineTextInput.d.ts +0 -10
  481. package/dist/MultilineTextInput.d.ts.map +0 -1
  482. package/dist/MultilineTextInput.js +0 -184
  483. package/dist/MultilineTextInput.js.map +0 -1
  484. package/dist/PaneAnalyzer.d.ts.map +0 -1
  485. package/dist/PaneAnalyzer.js.map +0 -1
  486. package/dist/SimpleEnhancedInput.d.ts +0 -13
  487. package/dist/SimpleEnhancedInput.d.ts.map +0 -1
  488. package/dist/SimpleEnhancedInput.js +0 -639
  489. package/dist/SimpleEnhancedInput.js.map +0 -1
  490. package/dist/SimpleGeminiInput.d.ts +0 -12
  491. package/dist/SimpleGeminiInput.d.ts.map +0 -1
  492. package/dist/SimpleGeminiInput.js +0 -223
  493. package/dist/SimpleGeminiInput.js.map +0 -1
  494. package/dist/StyledTextInput.d.ts.map +0 -1
  495. package/dist/StyledTextInput.js.map +0 -1
  496. package/dist/components/ActionChoiceDialog.d.ts.map +0 -1
  497. package/dist/components/ActionChoiceDialog.js.map +0 -1
  498. package/dist/components/ActionConfirmDialog.d.ts.map +0 -1
  499. package/dist/components/ActionConfirmDialog.js.map +0 -1
  500. package/dist/components/ActionInputDialog.d.ts.map +0 -1
  501. package/dist/components/ActionInputDialog.js.map +0 -1
  502. package/dist/components/ActionProgressDialog.d.ts.map +0 -1
  503. package/dist/components/ActionProgressDialog.js.map +0 -1
  504. package/dist/components/AgentChoiceDialog.d.ts.map +0 -1
  505. package/dist/components/AgentChoiceDialog.js.map +0 -1
  506. package/dist/components/CloseOptionsDialog.d.ts.map +0 -1
  507. package/dist/components/CloseOptionsDialog.js.map +0 -1
  508. package/dist/components/CommandPromptDialog.d.ts.map +0 -1
  509. package/dist/components/CommandPromptDialog.js.map +0 -1
  510. package/dist/components/CreatingIndicator.d.ts.map +0 -1
  511. package/dist/components/CreatingIndicator.js.map +0 -1
  512. package/dist/components/DialogBox.d.ts.map +0 -1
  513. package/dist/components/DialogBox.js.map +0 -1
  514. package/dist/components/FileCopyPrompt.d.ts.map +0 -1
  515. package/dist/components/FileCopyPrompt.js.map +0 -1
  516. package/dist/components/FooterHelp.d.ts.map +0 -1
  517. package/dist/components/FooterHelp.js.map +0 -1
  518. package/dist/components/HooksDialog.d.ts.map +0 -1
  519. package/dist/components/HooksDialog.js.map +0 -1
  520. package/dist/components/KebabMenu.d.ts.map +0 -1
  521. package/dist/components/KebabMenu.js.map +0 -1
  522. package/dist/components/LoadingIndicator.d.ts.map +0 -1
  523. package/dist/components/LoadingIndicator.js.map +0 -1
  524. package/dist/components/MergeConfirmationDialog.d.ts.map +0 -1
  525. package/dist/components/MergeConfirmationDialog.js.map +0 -1
  526. package/dist/components/PaneCard.d.ts.map +0 -1
  527. package/dist/components/PaneCard.js.map +0 -1
  528. package/dist/components/PanesGrid.d.ts.map +0 -1
  529. package/dist/components/PanesGrid.js.map +0 -1
  530. package/dist/components/QRCode.d.ts.map +0 -1
  531. package/dist/components/QRCode.js.map +0 -1
  532. package/dist/components/RunningIndicator.d.ts.map +0 -1
  533. package/dist/components/RunningIndicator.js.map +0 -1
  534. package/dist/components/SettingsDialog.d.ts.map +0 -1
  535. package/dist/components/SettingsDialog.js.map +0 -1
  536. package/dist/components/Spinner.d.ts.map +0 -1
  537. package/dist/components/Spinner.js.map +0 -1
  538. package/dist/components/UpdateDialog.d.ts.map +0 -1
  539. package/dist/components/UpdateDialog.js.map +0 -1
  540. package/dist/components/UpdatingIndicator.d.ts.map +0 -1
  541. package/dist/components/UpdatingIndicator.js.map +0 -1
  542. package/dist/decorative-pane.d.ts.map +0 -1
  543. package/dist/decorative-pane.js.map +0 -1
  544. package/dist/popups/agentChoicePopup.d.ts.map +0 -1
  545. package/dist/popups/agentChoicePopup.js.map +0 -1
  546. package/dist/popups/choicePopup.d.ts.map +0 -1
  547. package/dist/popups/choicePopup.js.map +0 -1
  548. package/dist/popups/components/FileList.d.ts.map +0 -1
  549. package/dist/popups/components/FileList.js.map +0 -1
  550. package/dist/popups/components/PopupContainer.d.ts.map +0 -1
  551. package/dist/popups/components/PopupContainer.js.map +0 -1
  552. package/dist/popups/components/PopupInputBox.d.ts.map +0 -1
  553. package/dist/popups/components/PopupInputBox.js.map +0 -1
  554. package/dist/popups/components/PopupWrapper.d.ts.map +0 -1
  555. package/dist/popups/components/PopupWrapper.js.map +0 -1
  556. package/dist/popups/components/index.d.ts.map +0 -1
  557. package/dist/popups/components/index.js.map +0 -1
  558. package/dist/popups/config.d.ts.map +0 -1
  559. package/dist/popups/config.js.map +0 -1
  560. package/dist/popups/confirmPopup.d.ts.map +0 -1
  561. package/dist/popups/confirmPopup.js.map +0 -1
  562. package/dist/popups/hooksPopup.d.ts.map +0 -1
  563. package/dist/popups/hooksPopup.js.map +0 -1
  564. package/dist/popups/inputPopup.d.ts.map +0 -1
  565. package/dist/popups/inputPopup.js.map +0 -1
  566. package/dist/popups/kebabMenuPopup.d.ts.map +0 -1
  567. package/dist/popups/kebabMenuPopup.js.map +0 -1
  568. package/dist/popups/logsPopup.d.ts.map +0 -1
  569. package/dist/popups/logsPopup.js.map +0 -1
  570. package/dist/popups/mergePopup.d.ts.map +0 -1
  571. package/dist/popups/mergePopup.js.map +0 -1
  572. package/dist/popups/newPanePopup.d.ts.map +0 -1
  573. package/dist/popups/newPanePopup.js.map +0 -1
  574. package/dist/popups/progressPopup.d.ts.map +0 -1
  575. package/dist/popups/progressPopup.js.map +0 -1
  576. package/dist/popups/remotePopup.d.ts.map +0 -1
  577. package/dist/popups/remotePopup.js.map +0 -1
  578. package/dist/popups/settingsPopup.d.ts.map +0 -1
  579. package/dist/popups/settingsPopup.js.map +0 -1
  580. package/dist/popups/shortcutsPopup.d.ts.map +0 -1
  581. package/dist/popups/shortcutsPopup.js.map +0 -1
  582. package/dist/popups/templates/SimpleInputPopup.d.ts.map +0 -1
  583. package/dist/popups/templates/SimpleInputPopup.js.map +0 -1
  584. package/dist/server/static.d.ts +0 -6
  585. package/dist/server/static.d.ts.map +0 -1
  586. package/dist/server/static.js +0 -3040
  587. package/dist/server/static.js.map +0 -1
  588. package/dist/spacer-pane.d.ts.map +0 -1
  589. package/dist/spacer-pane.js.map +0 -1
  590. /package/dist/components/{ActionChoiceDialog.js → dialogs/ActionChoiceDialog.js} +0 -0
  591. /package/dist/components/{ActionConfirmDialog.d.ts → dialogs/ActionConfirmDialog.d.ts} +0 -0
  592. /package/dist/components/{ActionConfirmDialog.js → dialogs/ActionConfirmDialog.js} +0 -0
  593. /package/dist/components/{ActionInputDialog.d.ts → dialogs/ActionInputDialog.d.ts} +0 -0
  594. /package/dist/components/{ActionProgressDialog.d.ts → dialogs/ActionProgressDialog.d.ts} +0 -0
  595. /package/dist/components/{ActionProgressDialog.js → dialogs/ActionProgressDialog.js} +0 -0
  596. /package/dist/components/{AgentChoiceDialog.d.ts → dialogs/AgentChoiceDialog.d.ts} +0 -0
  597. /package/dist/components/{AgentChoiceDialog.js → dialogs/AgentChoiceDialog.js} +0 -0
  598. /package/dist/components/{CloseOptionsDialog.js → dialogs/CloseOptionsDialog.js} +0 -0
  599. /package/dist/components/{CommandPromptDialog.d.ts → dialogs/CommandPromptDialog.d.ts} +0 -0
  600. /package/dist/components/{DialogBox.d.ts → dialogs/DialogBox.d.ts} +0 -0
  601. /package/dist/components/{DialogBox.js → dialogs/DialogBox.js} +0 -0
  602. /package/dist/components/{HooksDialog.d.ts → dialogs/HooksDialog.d.ts} +0 -0
  603. /package/dist/components/{HooksDialog.js → dialogs/HooksDialog.js} +0 -0
  604. /package/dist/components/{MergeConfirmationDialog.js → dialogs/MergeConfirmationDialog.js} +0 -0
  605. /package/dist/components/{SettingsDialog.js → dialogs/SettingsDialog.js} +0 -0
  606. /package/dist/components/{UpdateDialog.d.ts → dialogs/UpdateDialog.d.ts} +0 -0
  607. /package/dist/components/{UpdateDialog.js → dialogs/UpdateDialog.js} +0 -0
  608. /package/dist/components/{CreatingIndicator.d.ts → indicators/CreatingIndicator.d.ts} +0 -0
  609. /package/dist/components/{CreatingIndicator.js → indicators/CreatingIndicator.js} +0 -0
  610. /package/dist/components/{LoadingIndicator.d.ts → indicators/LoadingIndicator.d.ts} +0 -0
  611. /package/dist/components/{LoadingIndicator.js → indicators/LoadingIndicator.js} +0 -0
  612. /package/dist/components/{RunningIndicator.d.ts → indicators/RunningIndicator.d.ts} +0 -0
  613. /package/dist/components/{RunningIndicator.js → indicators/RunningIndicator.js} +0 -0
  614. /package/dist/components/{Spinner.d.ts → indicators/Spinner.d.ts} +0 -0
  615. /package/dist/components/{Spinner.js → indicators/Spinner.js} +0 -0
  616. /package/dist/components/{UpdatingIndicator.d.ts → indicators/UpdatingIndicator.d.ts} +0 -0
  617. /package/dist/components/{UpdatingIndicator.js → indicators/UpdatingIndicator.js} +0 -0
  618. /package/dist/{CleanTextInput.d.ts → components/inputs/CleanTextInput.d.ts} +0 -0
  619. /package/dist/{StyledTextInput.d.ts → components/inputs/StyledTextInput.d.ts} +0 -0
  620. /package/dist/{StyledTextInput.js → components/inputs/StyledTextInput.js} +0 -0
  621. /package/dist/components/{KebabMenu.js → panes/KebabMenu.js} +0 -0
  622. /package/dist/{MergePane.d.ts → components/panes/MergePane.d.ts} +0 -0
  623. /package/dist/{popups → components/popups}/agentChoicePopup.d.ts +0 -0
  624. /package/dist/{popups → components/popups}/choicePopup.d.ts +0 -0
  625. /package/dist/{popups → components/popups}/config.d.ts +0 -0
  626. /package/dist/{popups → components/popups}/confirmPopup.d.ts +0 -0
  627. /package/dist/{popups → components/popups}/hooksPopup.d.ts +0 -0
  628. /package/dist/{popups → components/popups}/inputPopup.d.ts +0 -0
  629. /package/dist/{popups → components/popups}/kebabMenuPopup.d.ts +0 -0
  630. /package/dist/{popups → components/popups}/logsPopup.d.ts +0 -0
  631. /package/dist/{popups → components/popups}/mergePopup.d.ts +0 -0
  632. /package/dist/{popups → components/popups}/newPanePopup.d.ts +0 -0
  633. /package/dist/{popups → components/popups}/progressPopup.d.ts +0 -0
  634. /package/dist/{popups → components/popups}/remotePopup.d.ts +0 -0
  635. /package/dist/{popups → components/popups}/settingsPopup.d.ts +0 -0
  636. /package/dist/{popups/components → components/popups/shared}/FileList.d.ts +0 -0
  637. /package/dist/{popups/components → components/popups/shared}/FileList.js +0 -0
  638. /package/dist/{popups/components → components/popups/shared}/PopupContainer.d.ts +0 -0
  639. /package/dist/{popups/components → components/popups/shared}/PopupContainer.js +0 -0
  640. /package/dist/{popups/components → components/popups/shared}/PopupInputBox.d.ts +0 -0
  641. /package/dist/{popups/components → components/popups/shared}/PopupInputBox.js +0 -0
  642. /package/dist/{popups/components → components/popups/shared}/PopupWrapper.d.ts +0 -0
  643. /package/dist/{popups/components → components/popups/shared}/PopupWrapper.js +0 -0
  644. /package/dist/{popups/components → components/popups/shared}/index.d.ts +0 -0
  645. /package/dist/{popups/components → components/popups/shared}/index.js +0 -0
  646. /package/dist/{popups → components/popups}/shortcutsPopup.d.ts +0 -0
  647. /package/dist/{popups → components/popups}/templates/SimpleInputPopup.d.ts +0 -0
  648. /package/dist/components/{FileCopyPrompt.d.ts → ui/FileCopyPrompt.d.ts} +0 -0
  649. /package/dist/components/{FileCopyPrompt.js → ui/FileCopyPrompt.js} +0 -0
  650. /package/dist/components/{QRCode.d.ts → ui/QRCode.d.ts} +0 -0
  651. /package/dist/components/{QRCode.js → ui/QRCode.js} +0 -0
  652. /package/dist/{decorative-pane.d.ts → panes/decorative-pane.d.ts} +0 -0
  653. /package/dist/{spacer-pane.d.ts → panes/spacer-pane.d.ts} +0 -0
  654. /package/dist/{spacer-pane.js → panes/spacer-pane.js} +0 -0
  655. /package/dist/{PaneAnalyzer.d.ts → services/PaneAnalyzer.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
- import { execSync } from 'child_process';
2
1
  import { LogService } from '../services/LogService.js';
2
+ import { TmuxService } from '../services/TmuxService.js';
3
3
  import { recalculateAndApplyLayout } from './layoutManager.js';
4
4
  // Layout configuration - adjust these to change layout behavior
5
5
  export const SIDEBAR_WIDTH = 40;
@@ -22,75 +22,58 @@ function calculateLayoutChecksum(layout) {
22
22
  }
23
23
  /**
24
24
  * Gets current window dimensions
25
+ * @deprecated Use TmuxService.getInstance().getWindowDimensionsSync() instead
25
26
  */
26
27
  export const getWindowDimensions = () => {
27
- try {
28
- const output = execSync('tmux display-message -p "#{window_width} #{window_height}"', { encoding: 'utf-8', stdio: 'pipe' }).trim();
29
- const [width, height] = output.split(' ').map(n => parseInt(n));
30
- return { width, height };
31
- }
32
- catch {
33
- return { width: 120, height: 40 }; // Fallback dimensions
34
- }
28
+ return TmuxService.getInstance().getWindowDimensionsSync();
35
29
  };
36
30
  /**
37
31
  * Gets current terminal (client) dimensions
38
32
  * This is the actual terminal size, not the tmux window size
33
+ * @deprecated Use TmuxService.getInstance().getTerminalDimensionsSync() instead
39
34
  */
40
35
  export const getTerminalDimensions = () => {
41
- try {
42
- const output = execSync('tmux display-message -p "#{client_width} #{client_height}"', { encoding: 'utf-8', stdio: 'pipe' }).trim();
43
- const [width, height] = output.split(' ').map(n => parseInt(n));
44
- return { width, height };
45
- }
46
- catch {
47
- return { width: 120, height: 40 }; // Fallback dimensions
48
- }
36
+ return TmuxService.getInstance().getTerminalDimensionsSync();
49
37
  };
38
+ /**
39
+ * Get pane positions for all panes
40
+ * @deprecated Use TmuxService.getInstance().getPanePositionsSync() instead
41
+ */
50
42
  export const getPanePositions = () => {
51
- try {
52
- const output = execSync(`tmux list-panes -F '#{pane_id} #{pane_left} #{pane_top} #{pane_width} #{pane_height}'`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
53
- return output.split('\n').map(line => {
54
- const [paneId, left, top, width, height] = line.split(' ');
55
- return {
56
- paneId,
57
- left: parseInt(left),
58
- top: parseInt(top),
59
- width: parseInt(width),
60
- height: parseInt(height)
61
- };
62
- });
63
- }
64
- catch {
65
- return [];
66
- }
43
+ return TmuxService.getInstance().getPanePositionsSync();
44
+ };
45
+ /**
46
+ * Creates a new tmux pane by splitting horizontally
47
+ * @param options - Split pane options
48
+ * @param options.targetPane - Pane to split from (optional)
49
+ * @param options.cwd - Working directory for new pane (optional)
50
+ * @param options.command - Command to run in new pane (optional)
51
+ * @returns The new pane ID
52
+ * @deprecated Use TmuxService.getInstance().splitPaneSync() instead
53
+ */
54
+ export const splitPane = (options = {}) => {
55
+ return TmuxService.getInstance().splitPaneSync(options);
67
56
  };
68
57
  /**
69
58
  * Gets all pane IDs in current window
59
+ * @deprecated Use TmuxService.getInstance().getAllPaneIdsSync() instead
70
60
  */
71
61
  export const getAllPaneIds = () => {
72
- try {
73
- const output = execSync('tmux list-panes -F "#{pane_id}"', {
74
- encoding: 'utf-8',
75
- stdio: 'pipe',
76
- }).trim();
77
- return output.split('\n').filter(id => id.trim());
78
- }
79
- catch {
80
- return [];
81
- }
62
+ return TmuxService.getInstance().getAllPaneIdsSync();
82
63
  };
83
64
  /**
84
65
  * Gets content pane IDs (excludes control pane and spacer pane)
66
+ * This uses synchronous operations to maintain compatibility with existing code
85
67
  */
86
68
  export const getContentPaneIds = (controlPaneId) => {
87
- const allPanes = getAllPaneIds();
69
+ const tmuxService = TmuxService.getInstance();
70
+ const allPanes = tmuxService.getAllPaneIdsSync();
88
71
  return allPanes.filter(id => {
89
72
  if (id === controlPaneId)
90
73
  return false;
91
74
  // Filter out spacer pane
92
75
  try {
93
- const title = execSync(`tmux display-message -t '${id}' -p '#{pane_title}'`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
76
+ const title = tmuxService.getPaneTitleSync(id);
94
77
  return title !== 'dmux-spacer';
95
78
  }
96
79
  catch {
@@ -105,14 +88,34 @@ export const getContentPaneIds = (controlPaneId) => {
105
88
  */
106
89
  export const setupSidebarLayout = (controlPaneId) => {
107
90
  try {
91
+ const tmuxService = TmuxService.getInstance();
92
+ // Defensive check: verify the control pane still exists before splitting
93
+ try {
94
+ // Try to get the pane title - this will throw if the pane doesn't exist
95
+ tmuxService.getPaneTitleSync(controlPaneId);
96
+ }
97
+ catch (error) {
98
+ throw new Error(`Control pane ${controlPaneId} does not exist. Cannot create sidebar layout.`);
99
+ }
108
100
  // Split horizontally (left-right) from control pane
109
- const newPaneId = execSync(`tmux split-window -h -t '${controlPaneId}' -P -F '#{pane_id}'`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
101
+ const newPaneId = tmuxService.splitPaneSync({
102
+ targetPane: controlPaneId,
103
+ });
110
104
  // Wait for split to settle
111
- execSync('sleep 0.1', { stdio: 'pipe' });
112
- // Resize control pane to fixed width
113
- enforceControlPaneSize(controlPaneId, SIDEBAR_WIDTH);
105
+ const waitMs = 100;
106
+ const startTime = Date.now();
107
+ while (Date.now() - startTime < waitMs) {
108
+ // Busy wait
109
+ }
110
+ // Resize control pane to fixed width (sync version for initial setup)
111
+ try {
112
+ tmuxService.resizePaneSync(controlPaneId, { width: SIDEBAR_WIDTH });
113
+ }
114
+ catch {
115
+ // Ignore resize errors during initial setup
116
+ }
114
117
  // Refresh to ensure panes are painted correctly after layout
115
- execSync('tmux refresh-client', { stdio: 'pipe' });
118
+ tmuxService.refreshClientSync();
116
119
  return newPaneId;
117
120
  }
118
121
  catch (error) {
@@ -139,10 +142,11 @@ export const generateSidebarGridLayout = (controlPaneId, contentPanes, sidebarWi
139
142
  const availableWidth = contentWidth - bordersWidth;
140
143
  const paneWidth = Math.floor(availableWidth / cols);
141
144
  // Check if last pane is a spacer
145
+ const tmuxService = TmuxService.getInstance();
142
146
  const lastPaneIsSpacer = contentPanes.length > 0 && (() => {
143
147
  try {
144
148
  const lastPaneId = contentPanes[contentPanes.length - 1];
145
- const title = execSync(`tmux display-message -t '${lastPaneId}' -p '#{pane_title}'`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
149
+ const title = tmuxService.getPaneTitleSync(lastPaneId);
146
150
  return title === 'dmux-spacer';
147
151
  }
148
152
  catch {
@@ -156,10 +160,10 @@ export const generateSidebarGridLayout = (controlPaneId, contentPanes, sidebarWi
156
160
  const paneHeight = Math.floor(availableHeight / rows);
157
161
  // Extract numeric ID from controlPaneId (e.g., %1 -> 1)
158
162
  const sidebarId = controlPaneId.replace('%', '');
159
- // Debug logging
160
- LogService.getInstance().debug(`generateSidebarGridLayout: ${numContentPanes} panes, ${cols} cols x ${rows} rows`, 'Layout');
161
- LogService.getInstance().debug(`Window: ${windowWidth}x${windowHeight}, Content: ${contentWidth}x${windowHeight} starting at X=${contentStartX}`, 'Layout');
162
- LogService.getInstance().debug(`Pane width: ${paneWidth}, borders: ${bordersWidth}`, 'Layout');
163
+ // Debug logging (commented out to reduce log noise)
164
+ // LogService.getInstance().debug(`generateSidebarGridLayout: ${numContentPanes} panes, ${cols} cols x ${rows} rows`, 'Layout');
165
+ // LogService.getInstance().debug(`Window: ${windowWidth}x${windowHeight}, Content: ${contentWidth}x${windowHeight} starting at X=${contentStartX}`, 'Layout');
166
+ // LogService.getInstance().debug(`Pane width: ${paneWidth}, borders: ${bordersWidth}`, 'Layout');
163
167
  // Build grid rows (vertical splits within content area)
164
168
  // Use ABSOLUTE coordinates everywhere (tmux requirement - yes, even inside containers!)
165
169
  const gridRows = [];
@@ -196,9 +200,12 @@ export const generateSidebarGridLayout = (controlPaneId, contentPanes, sidebarWi
196
200
  const bordersInRow = panesInThisRow.length - 1; // borders between ALL panes in row
197
201
  const totalContentWidth = numContentPanesInRow * contentPaneWidth;
198
202
  const remainingWidth = contentWidth - totalContentWidth - bordersInRow;
199
- LogService.getInstance().debug(`Row ${row} with spacer: ${numContentPanesInRow} content panes @ ${contentPaneWidth} = ${totalContentWidth}, borders=${bordersInRow}, spacer=${remainingWidth}`, 'Layout');
203
+ // LogService.getInstance().debug(
204
+ // `Row ${row} with spacer: ${numContentPanesInRow} content panes @ ${contentPaneWidth} = ${totalContentWidth}, borders=${bordersInRow}, spacer=${remainingWidth}`,
205
+ // 'Layout'
206
+ // );
200
207
  if (remainingWidth < 0) {
201
- LogService.getInstance().debug(`WARNING: Negative spacer width! contentWidth=${contentWidth}, totalContent=${totalContentWidth}, borders=${bordersInRow}`, 'Layout');
208
+ LogService.getInstance().warn(`Negative spacer width! contentWidth=${contentWidth}, totalContent=${totalContentWidth}, borders=${bordersInRow}`, 'Layout');
202
209
  }
203
210
  contentPaneWidths = Array(numContentPanesInRow).fill(contentPaneWidth);
204
211
  spacerWidth = remainingWidth;
@@ -232,7 +239,7 @@ export const generateSidebarGridLayout = (controlPaneId, contentPanes, sidebarWi
232
239
  // Horizontal split = use curly braces {}
233
240
  // Row container also uses ABSOLUTE coordinates
234
241
  const rowString = `${contentWidth}x${rowHeight},${contentStartX},${currentY}{${rowPanes.join(',')}}`;
235
- LogService.getInstance().debug(`Row ${row}: ${rowPanes.length} panes → ${rowString}`, 'Layout');
242
+ // LogService.getInstance().debug(`Row ${row}: ${rowPanes.length} panes → ${rowString}`, 'Layout');
236
243
  gridRows.push(rowString);
237
244
  }
238
245
  else if (rowPanes.length === 1) {
@@ -242,7 +249,7 @@ export const generateSidebarGridLayout = (controlPaneId, contentPanes, sidebarWi
242
249
  parts[1] = contentStartX.toString(); // X absolute
243
250
  parts[2] = currentY.toString(); // Y absolute
244
251
  const singlePaneString = parts.join(',');
245
- LogService.getInstance().debug(`Row ${row}: 1 pane → ${singlePaneString}`, 'Layout');
252
+ // LogService.getInstance().debug(`Row ${row}: 1 pane → ${singlePaneString}`, 'Layout');
246
253
  gridRows.push(singlePaneString);
247
254
  }
248
255
  // Move Y position down by pane height + 1 for border (except on last row)
@@ -265,7 +272,7 @@ export const generateSidebarGridLayout = (controlPaneId, contentPanes, sidebarWi
265
272
  // Adjust the container's X position from 0 to contentStartX
266
273
  const contentArea = row.replace(/^(\d+x\d+),0,/, `$1,${contentStartX},`);
267
274
  layoutWithoutChecksum = `${windowWidth}x${windowHeight},0,0{${sidebar},${contentArea}}`;
268
- LogService.getInstance().debug(`Single row layout: {sidebar, content}`, 'Layout');
275
+ // LogService.getInstance().debug(`Single row layout: {sidebar, content}`, 'Layout');
269
276
  }
270
277
  else {
271
278
  // No content panes
@@ -274,7 +281,7 @@ export const generateSidebarGridLayout = (controlPaneId, contentPanes, sidebarWi
274
281
  // Calculate checksum and prepend to layout string
275
282
  const checksum = calculateLayoutChecksum(layoutWithoutChecksum);
276
283
  const finalLayout = `${checksum},${layoutWithoutChecksum}`;
277
- LogService.getInstance().debug(`Generated layout string: ${finalLayout}`, 'Layout');
284
+ // LogService.getInstance().debug(`Generated layout string: ${finalLayout}`, 'Layout');
278
285
  return finalLayout;
279
286
  };
280
287
  /**
@@ -331,16 +338,17 @@ export const calculateOptimalColumns = (numPanes, contentWidth, contentHeight) =
331
338
  * @deprecated This function now delegates to the centralized layout manager.
332
339
  * Consider using recalculateAndApplyLayout() directly from layoutManager.ts
333
340
  */
334
- export const enforceControlPaneSize = (controlPaneId, width) => {
341
+ export const enforceControlPaneSize = async (controlPaneId, width) => {
335
342
  const logService = LogService.getInstance();
343
+ const tmuxService = TmuxService.getInstance();
336
344
  try {
337
345
  const contentPanes = getContentPaneIds(controlPaneId);
338
- logService.debug(`enforceControlPaneSize called: ${contentPanes.length} content panes`, 'Layout');
346
+ // logService.debug(`enforceControlPaneSize called: ${contentPanes.length} content panes`, 'Layout');
339
347
  // If we only have the control pane, nothing to enforce
340
348
  if (contentPanes.length === 0) {
341
349
  // Just resize the sidebar
342
350
  try {
343
- execSync(`tmux resize-pane -t '${controlPaneId}' -x ${width}`, { stdio: 'pipe' });
351
+ await tmuxService.resizePane(controlPaneId, { width });
344
352
  }
345
353
  catch {
346
354
  // Ignore errors
@@ -350,21 +358,21 @@ export const enforceControlPaneSize = (controlPaneId, width) => {
350
358
  // Check if we have only the welcome pane (should not be width-constrained)
351
359
  if (contentPanes.length === 1) {
352
360
  try {
353
- const title = execSync(`tmux display-message -t '${contentPanes[0]}' -p '#{pane_title}'`, {
354
- encoding: 'utf-8',
355
- stdio: 'pipe'
356
- }).trim();
361
+ const title = tmuxService.getPaneTitleSync(contentPanes[0]);
357
362
  if (title === 'Welcome') {
358
363
  // Welcome pane should use full terminal width, not be constrained
359
364
  // Get terminal dimensions and let window follow terminal
360
365
  const termDims = getTerminalDimensions();
366
+ // Calculate window height accounting for status bar to prevent scroll
367
+ const statusBarHeight = tmuxService.getStatusBarHeightSync();
368
+ const windowHeight = termDims.height - statusBarHeight;
361
369
  // Set window size to match terminal (manual mode but always tracking terminal)
362
- execSync(`tmux set-window-option window-size manual`, { stdio: 'pipe' });
363
- execSync(`tmux resize-window -x ${termDims.width} -y ${termDims.height}`, { stdio: 'pipe' });
370
+ tmuxService.setWindowOptionSync('window-size', 'manual');
371
+ await tmuxService.resizeWindow({ width: termDims.width, height: windowHeight });
364
372
  // Apply main-vertical layout with fixed sidebar width
365
- execSync(`tmux set-window-option main-pane-width ${width}`, { stdio: 'pipe' });
366
- execSync('tmux select-layout main-vertical', { stdio: 'pipe' });
367
- execSync('tmux refresh-client', { stdio: 'pipe' });
373
+ tmuxService.setWindowOptionSync('main-pane-width', String(width));
374
+ await tmuxService.selectLayout('main-vertical');
375
+ await tmuxService.refreshClient();
368
376
  return;
369
377
  }
370
378
  }
@@ -375,10 +383,10 @@ export const enforceControlPaneSize = (controlPaneId, width) => {
375
383
  // Use the new layout manager for regular content panes
376
384
  // Read terminal dimensions (not window dimensions which may be stale in manual mode)
377
385
  const dimensions = getTerminalDimensions();
378
- logService.debug(`Terminal dimensions: ${dimensions.width}x${dimensions.height}`, 'Layout');
379
- recalculateAndApplyLayout(controlPaneId, contentPanes, dimensions.width, dimensions.height);
386
+ // logService.debug(`Terminal dimensions: ${dimensions.width}x${dimensions.height}`, 'Layout');
387
+ await recalculateAndApplyLayout(controlPaneId, contentPanes, dimensions.width, dimensions.height);
380
388
  // Refresh to apply changes (but don't select the pane - don't steal focus!)
381
- execSync('tmux refresh-client', { stdio: 'pipe' });
389
+ await tmuxService.refreshClient();
382
390
  }
383
391
  catch (error) {
384
392
  // Log error for debugging but don't crash
@@ -1 +1 @@
1
- {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/utils/tmux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/utils/tmux.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAG/D,gEAAgE;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC,CAAE,6CAA6C;AACvF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC,CAAC,4CAA4C;AACtF,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC,CAAC,6CAA6C;AAEvF;;;GAGG;AACH,SAAS,uBAAuB,CAAC,MAAc;IAC7C,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,QAAQ,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjC,QAAQ,IAAI,MAAM,CAAC,CAAC,8BAA8B;IACpD,CAAC;IAED,+DAA+D;IAC/D,OAAO,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC;AAKD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,OAAO,WAAW,CAAC,WAAW,EAAE,CAAC,uBAAuB,EAAE,CAAC;AAC7D,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,OAAO,WAAW,CAAC,WAAW,EAAE,CAAC,yBAAyB,EAAE,CAAC;AAC/D,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAmB,EAAE;IACnD,OAAO,WAAW,CAAC,WAAW,EAAE,CAAC,oBAAoB,EAAE,CAAC;AAC1D,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAItB,EAAE,EAAU,EAAE;IAChB,OAAO,WAAW,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAa,EAAE;IAC1C,OAAO,WAAW,CAAC,WAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC;AACvD,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAAqB,EAAY,EAAE;IACnE,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,EAAE,CAAC;IAEjD,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;QAC1B,IAAI,EAAE,KAAK,aAAa;YAAE,OAAO,KAAK,CAAC;QAEvC,yBAAyB;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YAC/C,OAAO,KAAK,KAAK,aAAa,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,CAAC,qCAAqC;QACpD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,aAAqB,EAAU,EAAE;IAClE,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QAE9C,yEAAyE;QACzE,IAAI,CAAC;YACH,wEAAwE;YACxE,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,gBAAgB,aAAa,gDAAgD,CAAC,CAAC;QACjG,CAAC;QAED,oDAAoD;QACpD,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC;YAC1C,UAAU,EAAE,aAAa;SAC1B,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,MAAM,GAAG,GAAG,CAAC;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC;YACvC,YAAY;QACd,CAAC;QAED,sEAAsE;QACtE,IAAI,CAAC;YACH,WAAW,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;QAC9C,CAAC;QAED,6DAA6D;QAC7D,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAEhC,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,aAAqB,EACrB,YAAsB,EACtB,YAAoB,EACpB,WAAmB,EACnB,YAAoB,EACpB,OAAe,EACf,sBAA8B,qBAAqB,EAC3C,EAAE;IACV,8CAA8C;IAC9C,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC;IAE5C,4BAA4B;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC;IACrB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAE/C,0BAA0B;IAC1B,wFAAwF;IACxF,MAAM,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,4CAA4C;IACjG,MAAM,aAAa,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,2BAA2B;IAEnE,iDAAiD;IACjD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC;IAC9B,MAAM,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAEpD,iCAAiC;IACjC,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;QACxD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACzD,MAAM,KAAK,GAAG,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACvD,OAAO,KAAK,KAAK,aAAa,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,+CAA+C;IAC/C,mFAAmF;IACnF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,iCAAiC;IACjE,MAAM,eAAe,GAAG,YAAY,GAAG,aAAa,CAAC;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAEtD,wDAAwD;IACxD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAEjD,oDAAoD;IACpD,gIAAgI;IAChI,+JAA+J;IAC/J,kGAAkG;IAElG,wDAAwD;IACxD,wFAAwF;IACxF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,2DAA2D;IAE7E,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,SAAS,GAAG,aAAa,CAAC,CAAC,kDAAkD;QAEjF,gCAAgC;QAChC,kDAAkD;QAClD,IAAI,SAAiB,CAAC;QACtB,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC;YACrB,qCAAqC;YACrC,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,UAAU,CAAC;QACzB,CAAC;QAED,8BAA8B;QAC9B,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,IAAI,SAAS,GAAG,GAAG,GAAG,eAAe,EAAE,GAAG,EAAE,EAAE,CAAC;YACzE,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,uDAAuD;QACvD,MAAM,YAAY,GAAG,gBAAgB,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;YACpF,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,YAAY,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QAElF,MAAM,oBAAoB,GAAG,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC;QAE9F,gCAAgC;QAChC,IAAI,iBAA2B,CAAC;QAChC,IAAI,WAAW,GAAkB,IAAI,CAAC;QAEtC,IAAI,YAAY,EAAE,CAAC;YACjB,gGAAgG;YAChG,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;YAC7C,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,mCAAmC;YACnF,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,gBAAgB,CAAC;YAClE,MAAM,cAAc,GAAG,YAAY,GAAG,iBAAiB,GAAG,YAAY,CAAC;YAEvE,kCAAkC;YAClC,qKAAqK;YACrK,aAAa;YACb,KAAK;YAEL,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACvB,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,CAC3B,uCAAuC,YAAY,kBAAkB,iBAAiB,aAAa,YAAY,EAAE,EACjH,QAAQ,CACT,CAAC;YACJ,CAAC;YAED,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACvE,WAAW,GAAG,cAAc,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,0CAA0C;YAC1C,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/C,MAAM,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACrE,MAAM,SAAS,GAAG,cAAc,GAAG,CAAC,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAEvE,gGAAgG;YAChG,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjE,iBAAiB,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,uCAAuC;QAC5E,CAAC;QAED,oEAAoE;QACpE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACpD,MAAM,YAAY,GAAG,YAAY,IAAI,GAAG,KAAK,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAEvE,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,WAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAEtE,mEAAmE;YACnE,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC;YAE7E,+CAA+C;YAC/C,SAAS,IAAI,QAAQ,CAAC;YACtB,IAAI,GAAG,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,SAAS,IAAI,CAAC,CAAC,CAAC,aAAa;YAC/B,CAAC;QACH,CAAC;QAED,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC;QAEnC,2EAA2E;QAC3E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,yCAAyC;YACzC,+CAA+C;YAC/C,MAAM,SAAS,GAAG,GAAG,YAAY,IAAI,SAAS,IAAI,aAAa,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YACrG,mGAAmG;YACnG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,8DAA8D;YAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,aAAa;YAClD,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,aAAa;YAC7C,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzC,wFAAwF;YACxF,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClC,CAAC;QAED,0EAA0E;QAC1E,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;YACnB,QAAQ,IAAI,UAAU,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM,OAAO,GAAG,GAAG,YAAY,IAAI,YAAY,QAAQ,SAAS,EAAE,CAAC;IACnE,IAAI,qBAA6B,CAAC;IAElC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,kDAAkD;QAClD,MAAM,WAAW,GAAG,GAAG,YAAY,IAAI,YAAY,IAAI,aAAa,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAChG,qBAAqB,GAAG,GAAG,WAAW,IAAI,YAAY,QAAQ,OAAO,IAAI,WAAW,GAAG,CAAC;IAC1F,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,qEAAqE;QACrE,mFAAmF;QACnF,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAExB,4DAA4D;QAC5D,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,aAAa,GAAG,CAAC,CAAC;QACzE,qBAAqB,GAAG,GAAG,WAAW,IAAI,YAAY,QAAQ,OAAO,IAAI,WAAW,GAAG,CAAC;QAExF,qFAAqF;IACvF,CAAC;SAAM,CAAC;QACN,mBAAmB;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,kDAAkD;IAClD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,qBAAqB,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,GAAG,QAAQ,IAAI,qBAAqB,EAAE,CAAC;IAE3D,uFAAuF;IAEvF,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,QAAgB,EAChB,YAAoB,EACpB,aAAqB,EACb,EAAE;IACV,0DAA0D;IAC1D,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IAEnB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAC5C,wCAAwC;QACxC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;QAEnE,yCAAyC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QACxC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;QAEtE,uCAAuC;QACvC,IAAI,SAAS,GAAG,qBAAqB,IAAI,UAAU,GAAG,sBAAsB,EAAE,CAAC;YAC7E,SAAS;QACX,CAAC;QAED,qDAAqD;QACrD,uDAAuD;QACvD,MAAM,UAAU,GAAG,SAAS,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAChE,MAAM,WAAW,GAAG,UAAU,IAAI,sBAAsB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACzE,MAAM,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;QAEvC,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACtB,SAAS,GAAG,KAAK,CAAC;YAClB,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,4EAA4E;QAC5E,KAAK,IAAI,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC;YAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;YAEnE,IAAI,SAAS,IAAI,qBAAqB,GAAG,GAAG,EAAE,CAAC,CAAC,0BAA0B;gBACxE,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,aAAqB,EACrB,KAAa,EACE,EAAE;IACjB,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACtD,qGAAqG;QAErG,uDAAuD;QACvD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,0BAA0B;YAC1B,IAAI,CAAC;gBACH,MAAM,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACP,gBAAgB;YAClB,CAAC;YACD,OAAO;QACT,CAAC;QAED,2EAA2E;QAC3E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,WAAW,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE5D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,kEAAkE;oBAClE,yDAAyD;oBACzD,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;oBAEzC,sEAAsE;oBACtE,MAAM,eAAe,GAAG,WAAW,CAAC,sBAAsB,EAAE,CAAC;oBAC7D,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC;oBAEvD,+EAA+E;oBAC/E,WAAW,CAAC,mBAAmB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;oBACzD,MAAM,WAAW,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;oBAEhF,sDAAsD;oBACtD,WAAW,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClE,MAAM,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;oBAChD,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;oBAClC,OAAO;gBACT,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,2DAA2D;YAC7D,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,qFAAqF;QACrF,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAC3C,+FAA+F;QAE/F,MAAM,yBAAyB,CAC7B,aAAa,EACb,YAAY,EACZ,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,MAAM,CAClB,CAAC;QAEF,4EAA4E;QAC5E,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0CAA0C;QAC1C,MAAM,GAAG,GAAG,2BAA2B,CAAC;QACxC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrG,CAAC;AACH,CAAC,CAAC"}
@@ -11,12 +11,12 @@ export declare function createWelcomePane(controlPaneId: string): Promise<string
11
11
  *
12
12
  * @param welcomePaneId - The pane ID of the welcome pane to destroy
13
13
  */
14
- export declare function destroyWelcomePane(welcomePaneId: string | undefined): void;
14
+ export declare function destroyWelcomePane(welcomePaneId: string | undefined): Promise<void>;
15
15
  /**
16
16
  * Checks if a welcome pane exists and is still alive
17
17
  *
18
18
  * @param welcomePaneId - The pane ID to check
19
19
  * @returns true if the pane exists, false otherwise
20
20
  */
21
- export declare function welcomePaneExists(welcomePaneId: string | undefined): boolean;
21
+ export declare function welcomePaneExists(welcomePaneId: string | undefined): Promise<boolean>;
22
22
  //# sourceMappingURL=welcomePane.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"welcomePane.d.ts","sourceRoot":"","sources":["../../src/utils/welcomePane.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoE1F;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAwB1E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAkB5E"}
1
+ {"version":3,"file":"welcomePane.d.ts","sourceRoot":"","sources":["../../src/utils/welcomePane.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA8D1F;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBzF;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3F"}
@@ -1,7 +1,6 @@
1
- import { execSync } from 'child_process';
2
1
  import { renderAsciiArt } from './asciiArt.js';
3
2
  import { LogService } from '../services/LogService.js';
4
- import { getTerminalDimensions } from './tmux.js';
3
+ import { TmuxService } from '../services/TmuxService.js';
5
4
  import { SIDEBAR_WIDTH } from './layoutManager.js';
6
5
  /**
7
6
  * Creates a welcome pane in the tmux session
@@ -12,19 +11,18 @@ import { SIDEBAR_WIDTH } from './layoutManager.js';
12
11
  */
13
12
  export async function createWelcomePane(controlPaneId) {
14
13
  const logService = LogService.getInstance();
14
+ const tmuxService = TmuxService.getInstance();
15
15
  try {
16
16
  // Split horizontally to the right of the control pane
17
17
  // This creates a new pane that takes up the rest of the horizontal space
18
- const result = execSync(`tmux split-window -h -t '${controlPaneId}' -P -F '#{pane_id}'`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
19
- const welcomePaneId = result;
18
+ const welcomePaneId = await tmuxService.splitPane({ targetPane: controlPaneId });
20
19
  if (!welcomePaneId) {
21
20
  logService.error('Failed to create welcome pane: no pane ID returned', 'WelcomePane');
22
21
  return undefined;
23
22
  }
24
- logService.debug(`Created welcome pane: ${welcomePaneId}`, 'WelcomePane');
25
23
  // Set pane title
26
24
  try {
27
- execSync(`tmux select-pane -t '${welcomePaneId}' -T "Welcome"`, { stdio: 'pipe' });
25
+ await tmuxService.setPaneTitle(welcomePaneId, "Welcome");
28
26
  }
29
27
  catch {
30
28
  // Ignore title errors
@@ -41,19 +39,20 @@ export async function createWelcomePane(controlPaneId) {
41
39
  // Welcome pane uses full terminal dimensions
42
40
  // CRITICAL: Use main-vertical layout to lock sidebar at fixed width
43
41
  try {
44
- const dimensions = getTerminalDimensions();
42
+ const dimensions = await tmuxService.getTerminalDimensions();
45
43
  // Apply main-vertical layout FIRST (this locks sidebar width)
44
+ const { execSync } = await import('child_process');
46
45
  execSync(`tmux set-window-option main-pane-width ${SIDEBAR_WIDTH}`, { stdio: 'pipe' });
47
46
  execSync(`tmux select-layout main-vertical`, { stdio: 'pipe' });
48
47
  // Refresh to apply layout changes
49
- execSync(`tmux refresh-client`, { stdio: 'pipe' });
50
- logService.debug(`Set welcome pane layout: sidebar=${SIDEBAR_WIDTH}, window=${dimensions.width}x${dimensions.height}`, 'WelcomePane');
48
+ await tmuxService.refreshClient();
51
49
  }
52
50
  catch (error) {
53
- logService.debug('Failed to set welcome pane layout', 'WelcomePane');
51
+ // Silently ignore layout errors
54
52
  }
55
53
  // Switch focus back to the control pane (dmux sidebar)
56
54
  try {
55
+ const { execSync } = await import('child_process');
57
56
  execSync(`tmux select-pane -t '${controlPaneId}'`, { stdio: 'pipe' });
58
57
  }
59
58
  catch {
@@ -71,25 +70,23 @@ export async function createWelcomePane(controlPaneId) {
71
70
  *
72
71
  * @param welcomePaneId - The pane ID of the welcome pane to destroy
73
72
  */
74
- export function destroyWelcomePane(welcomePaneId) {
73
+ export async function destroyWelcomePane(welcomePaneId) {
75
74
  if (!welcomePaneId) {
76
75
  return;
77
76
  }
78
77
  const logService = LogService.getInstance();
78
+ const tmuxService = TmuxService.getInstance();
79
79
  try {
80
80
  // Check if the pane still exists before trying to kill it
81
- const paneExists = execSync(`tmux display-message -t '${welcomePaneId}' -p '#{pane_id}'`, {
82
- stdio: 'pipe',
83
- encoding: 'utf-8'
84
- }).trim();
85
- logService.debug(`Found welcome pane ${paneExists}, destroying it`, 'WelcomePane');
81
+ const paneExists = await tmuxService.paneExists(welcomePaneId);
82
+ if (!paneExists) {
83
+ return;
84
+ }
86
85
  // Kill the pane
87
- execSync(`tmux kill-pane -t '${welcomePaneId}'`, { stdio: 'pipe' });
88
- logService.debug(`Destroyed welcome pane: ${welcomePaneId}`, 'WelcomePane');
86
+ await tmuxService.killPane(welcomePaneId);
89
87
  }
90
88
  catch (error) {
91
89
  // Pane doesn't exist or already killed - that's fine
92
- logService.debug(`Welcome pane ${welcomePaneId} already gone or couldn't be destroyed`, 'WelcomePane');
93
90
  }
94
91
  }
95
92
  /**
@@ -98,22 +95,11 @@ export function destroyWelcomePane(welcomePaneId) {
98
95
  * @param welcomePaneId - The pane ID to check
99
96
  * @returns true if the pane exists, false otherwise
100
97
  */
101
- export function welcomePaneExists(welcomePaneId) {
98
+ export async function welcomePaneExists(welcomePaneId) {
102
99
  if (!welcomePaneId) {
103
100
  return false;
104
101
  }
105
- try {
106
- // Use list-panes to check if the pane actually exists
107
- // This is more reliable than display-message which sometimes succeeds for non-existent panes
108
- const paneList = execSync('tmux list-panes -a -F "#{pane_id}"', {
109
- encoding: 'utf-8',
110
- stdio: 'pipe'
111
- }).trim();
112
- const panes = paneList.split('\n');
113
- return panes.includes(welcomePaneId);
114
- }
115
- catch {
116
- return false;
117
- }
102
+ const tmuxService = TmuxService.getInstance();
103
+ return await tmuxService.paneExists(welcomePaneId);
118
104
  }
119
105
  //# sourceMappingURL=welcomePane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"welcomePane.js","sourceRoot":"","sources":["../../src/utils/welcomePane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"welcomePane.js","sourceRoot":"","sources":["../../src/utils/welcomePane.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"welcomePaneManager.d.ts","sourceRoot":"","sources":["../../src/utils/welcomePaneManager.ts"],"names":[],"mappings":"AA0CA;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAiD1E;AAED;;;;;;;;GAQG;AACH,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC,CAiDlB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAaf"}
1
+ {"version":3,"file":"welcomePaneManager.d.ts","sourceRoot":"","sources":["../../src/utils/welcomePaneManager.ts"],"names":[],"mappings":"AAyCA;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAkC1E;AAED;;;;;;;;GAQG;AACH,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC,CA2ClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAaf"}
@@ -2,8 +2,7 @@ import fs from 'fs';
2
2
  import path from 'path';
3
3
  import { createWelcomePane, welcomePaneExists, destroyWelcomePane } from './welcomePane.js';
4
4
  import { LogService } from '../services/LogService.js';
5
- import { recalculateAndApplyLayout } from './layoutManager.js';
6
- import { getTerminalDimensions } from './tmux.js';
5
+ import { atomicWriteJsonSync } from './atomicWrite.js';
7
6
  // Global lock to prevent concurrent welcome pane operations
8
7
  let creationLock = false;
9
8
  let lastCreationTime = 0;
@@ -50,26 +49,17 @@ export function destroyWelcomePaneCoordinated(projectRoot) {
50
49
  const configContent = fs.readFileSync(configPath, 'utf-8');
51
50
  const config = JSON.parse(configContent);
52
51
  if (config.welcomePaneId) {
53
- logService.debug(`Destroying welcome pane: ${config.welcomePaneId}`, 'WelcomePaneManager');
54
52
  // Destroy the pane
55
53
  destroyWelcomePane(config.welcomePaneId);
56
- // Clear from config
54
+ // Clear from config (use atomic write to prevent race conditions)
57
55
  delete config.welcomePaneId;
58
56
  config.lastUpdated = new Date().toISOString();
59
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
60
- logService.debug('Welcome pane destroyed and cleared from config', 'WelcomePaneManager');
61
- // Recalculate layout for remaining content panes (if any)
62
- if (config.panes && config.panes.length > 0 && config.controlPaneId) {
63
- try {
64
- const dimensions = getTerminalDimensions();
65
- const contentPaneIds = config.panes.map(p => p.paneId);
66
- recalculateAndApplyLayout(config.controlPaneId, contentPaneIds, dimensions.width, dimensions.height);
67
- logService.debug(`Recalculated layout for ${contentPaneIds.length} content panes`, 'WelcomePaneManager');
68
- }
69
- catch (error) {
70
- logService.debug('Failed to recalculate layout after welcome pane destruction', 'WelcomePaneManager');
71
- }
72
- }
57
+ atomicWriteJsonSync(configPath, config);
58
+ // DO NOT recalculate layout here - layout was already calculated in paneCreation.ts
59
+ // before this function was called. Recalculating now would cause a mismatch because
60
+ // tmux still has 3 panes (sidebar, welcome being destroyed, new content) but we'd
61
+ // calculate for 2 panes (sidebar, new content).
62
+ // The layout application in paneCreation.ts already accounts for the correct final state.
73
63
  }
74
64
  return true;
75
65
  }
@@ -103,23 +93,19 @@ export async function createWelcomePaneCoordinated(projectRoot, controlPaneId) {
103
93
  const configContent = fs.readFileSync(configPath, 'utf-8');
104
94
  const config = JSON.parse(configContent);
105
95
  // Check if we already have a valid welcome pane
106
- if (config.welcomePaneId && welcomePaneExists(config.welcomePaneId)) {
107
- logService.debug(`Welcome pane ${config.welcomePaneId} already exists`, 'WelcomePaneManager');
96
+ if (config.welcomePaneId && await welcomePaneExists(config.welcomePaneId)) {
108
97
  return true; // Already exists, that's fine
109
98
  }
110
- logService.debug('Creating new welcome pane', 'WelcomePaneManager');
111
99
  // Create the welcome pane
112
100
  const welcomePaneId = await createWelcomePane(controlPaneId);
113
101
  if (welcomePaneId) {
114
- // Update config with new welcome pane ID
102
+ // Update config with new welcome pane ID (use atomic write)
115
103
  config.welcomePaneId = welcomePaneId;
116
104
  config.lastUpdated = new Date().toISOString();
117
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
118
- logService.debug(`Created welcome pane: ${welcomePaneId}`, 'WelcomePaneManager');
105
+ atomicWriteJsonSync(configPath, config);
119
106
  return true;
120
107
  }
121
108
  else {
122
- logService.debug('createWelcomePane returned undefined', 'WelcomePaneManager');
123
109
  return false;
124
110
  }
125
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"welcomePaneManager.js","sourceRoot":"","sources":["../../src/utils/welcomePaneManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"welcomePaneManager.js","sourceRoot":"","sources":["../../src/utils/welcomePaneManager.ts"],"names":[],"mappings":"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"}