dmux 3.1.1 → 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 +2 -2
  2. package/dist/DmuxApp.d.ts.map +1 -1
  3. package/dist/DmuxApp.js +405 -1134
  4. package/dist/DmuxApp.js.map +1 -1
  5. package/dist/actions/implementations/closeAction.d.ts +10 -0
  6. package/dist/actions/implementations/closeAction.d.ts.map +1 -0
  7. package/dist/actions/implementations/closeAction.js +197 -0
  8. package/dist/actions/implementations/closeAction.js.map +1 -0
  9. package/dist/actions/implementations/copyPathAction.d.ts +10 -0
  10. package/dist/actions/implementations/copyPathAction.d.ts.map +1 -0
  11. package/dist/actions/implementations/copyPathAction.js +34 -0
  12. package/dist/actions/implementations/copyPathAction.js.map +1 -0
  13. package/dist/actions/implementations/duplicateAction.d.ts +10 -0
  14. package/dist/actions/implementations/duplicateAction.d.ts.map +1 -0
  15. package/dist/actions/implementations/duplicateAction.js +25 -0
  16. package/dist/actions/implementations/duplicateAction.js.map +1 -0
  17. package/dist/actions/implementations/index.d.ts +14 -0
  18. package/dist/actions/implementations/index.d.ts.map +1 -0
  19. package/dist/actions/implementations/index.js +14 -0
  20. package/dist/actions/implementations/index.js.map +1 -0
  21. package/dist/actions/implementations/mergeAction.d.ts +14 -0
  22. package/dist/actions/implementations/mergeAction.d.ts.map +1 -0
  23. package/dist/actions/implementations/mergeAction.js +84 -0
  24. package/dist/actions/implementations/mergeAction.js.map +1 -0
  25. package/dist/actions/implementations/openInEditorAction.d.ts +12 -0
  26. package/dist/actions/implementations/openInEditorAction.d.ts.map +1 -0
  27. package/dist/actions/implementations/openInEditorAction.js +33 -0
  28. package/dist/actions/implementations/openInEditorAction.js.map +1 -0
  29. package/dist/actions/implementations/renameAction.d.ts +13 -0
  30. package/dist/actions/implementations/renameAction.d.ts.map +1 -0
  31. package/dist/actions/implementations/renameAction.js +18 -0
  32. package/dist/actions/implementations/renameAction.js.map +1 -0
  33. package/dist/actions/implementations/toggleAutopilotAction.d.ts +10 -0
  34. package/dist/actions/implementations/toggleAutopilotAction.d.ts.map +1 -0
  35. package/dist/actions/implementations/toggleAutopilotAction.js +33 -0
  36. package/dist/actions/implementations/toggleAutopilotAction.js.map +1 -0
  37. package/dist/actions/implementations/viewAction.d.ts +10 -0
  38. package/dist/actions/implementations/viewAction.d.ts.map +1 -0
  39. package/dist/actions/implementations/viewAction.js +26 -0
  40. package/dist/actions/implementations/viewAction.js.map +1 -0
  41. package/dist/actions/merge/commitMessageHandler.d.ts +27 -0
  42. package/dist/actions/merge/commitMessageHandler.d.ts.map +1 -0
  43. package/dist/actions/merge/commitMessageHandler.js +131 -0
  44. package/dist/actions/merge/commitMessageHandler.js.map +1 -0
  45. package/dist/actions/merge/conflictResolution.d.ts +13 -0
  46. package/dist/actions/merge/conflictResolution.d.ts.map +1 -0
  47. package/dist/actions/merge/conflictResolution.js +134 -0
  48. package/dist/actions/merge/conflictResolution.js.map +1 -0
  49. package/dist/actions/merge/issueHandlers/index.d.ts +11 -0
  50. package/dist/actions/merge/issueHandlers/index.d.ts.map +1 -0
  51. package/dist/actions/merge/issueHandlers/index.js +8 -0
  52. package/dist/actions/merge/issueHandlers/index.js.map +1 -0
  53. package/dist/actions/merge/issueHandlers/mainDirtyHandler.d.ts +13 -0
  54. package/dist/actions/merge/issueHandlers/mainDirtyHandler.d.ts.map +1 -0
  55. package/dist/actions/merge/issueHandlers/mainDirtyHandler.js +72 -0
  56. package/dist/actions/merge/issueHandlers/mainDirtyHandler.js.map +1 -0
  57. package/dist/actions/merge/issueHandlers/mergeConflictHandler.d.ts +13 -0
  58. package/dist/actions/merge/issueHandlers/mergeConflictHandler.d.ts.map +1 -0
  59. package/dist/actions/merge/issueHandlers/mergeConflictHandler.js +52 -0
  60. package/dist/actions/merge/issueHandlers/mergeConflictHandler.js.map +1 -0
  61. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.d.ts +7 -0
  62. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.d.ts.map +1 -0
  63. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.js +12 -0
  64. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.js.map +1 -0
  65. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.d.ts +13 -0
  66. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.d.ts.map +1 -0
  67. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.js +49 -0
  68. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.js.map +1 -0
  69. package/dist/actions/merge/mergeExecution.d.ts +22 -0
  70. package/dist/actions/merge/mergeExecution.d.ts.map +1 -0
  71. package/dist/actions/merge/mergeExecution.js +180 -0
  72. package/dist/actions/merge/mergeExecution.js.map +1 -0
  73. package/dist/actions/paneActions.d.ts +3 -40
  74. package/dist/actions/paneActions.d.ts.map +1 -1
  75. package/dist/actions/paneActions.js +4 -981
  76. package/dist/actions/paneActions.js.map +1 -1
  77. package/dist/actions/types.d.ts +2 -0
  78. package/dist/actions/types.d.ts.map +1 -1
  79. package/dist/actions/types.js +1 -0
  80. package/dist/actions/types.js.map +1 -1
  81. package/dist/components/{ActionChoiceDialog.d.ts → dialogs/ActionChoiceDialog.d.ts} +1 -1
  82. package/dist/components/dialogs/ActionChoiceDialog.d.ts.map +1 -0
  83. package/dist/components/dialogs/ActionChoiceDialog.js.map +1 -0
  84. package/dist/components/dialogs/ActionConfirmDialog.d.ts.map +1 -0
  85. package/dist/components/dialogs/ActionConfirmDialog.js.map +1 -0
  86. package/dist/components/dialogs/ActionInputDialog.d.ts.map +1 -0
  87. package/dist/components/{ActionInputDialog.js → dialogs/ActionInputDialog.js} +4 -3
  88. package/dist/components/dialogs/ActionInputDialog.js.map +1 -0
  89. package/dist/components/dialogs/ActionProgressDialog.d.ts.map +1 -0
  90. package/dist/components/dialogs/ActionProgressDialog.js.map +1 -0
  91. package/dist/components/dialogs/AgentChoiceDialog.d.ts.map +1 -0
  92. package/dist/components/dialogs/AgentChoiceDialog.js.map +1 -0
  93. package/dist/components/{CloseOptionsDialog.d.ts → dialogs/CloseOptionsDialog.d.ts} +1 -1
  94. package/dist/components/dialogs/CloseOptionsDialog.d.ts.map +1 -0
  95. package/dist/components/dialogs/CloseOptionsDialog.js.map +1 -0
  96. package/dist/components/dialogs/CommandPromptDialog.d.ts.map +1 -0
  97. package/dist/components/{CommandPromptDialog.js → dialogs/CommandPromptDialog.js} +1 -1
  98. package/dist/components/dialogs/CommandPromptDialog.js.map +1 -0
  99. package/dist/components/dialogs/DialogBox.d.ts +16 -0
  100. package/dist/components/dialogs/DialogBox.d.ts.map +1 -0
  101. package/dist/components/dialogs/DialogBox.js +12 -0
  102. package/dist/components/dialogs/DialogBox.js.map +1 -0
  103. package/dist/components/dialogs/HooksDialog.d.ts.map +1 -0
  104. package/dist/components/dialogs/HooksDialog.js.map +1 -0
  105. package/dist/components/{MergeConfirmationDialog.d.ts → dialogs/MergeConfirmationDialog.d.ts} +1 -1
  106. package/dist/components/dialogs/MergeConfirmationDialog.d.ts.map +1 -0
  107. package/dist/components/dialogs/MergeConfirmationDialog.js.map +1 -0
  108. package/dist/components/{SettingsDialog.d.ts → dialogs/SettingsDialog.d.ts} +1 -1
  109. package/dist/components/dialogs/SettingsDialog.d.ts.map +1 -0
  110. package/dist/components/dialogs/SettingsDialog.js.map +1 -0
  111. package/dist/components/dialogs/UpdateDialog.d.ts.map +1 -0
  112. package/dist/components/dialogs/UpdateDialog.js.map +1 -0
  113. package/dist/components/indicators/CreatingIndicator.d.ts.map +1 -0
  114. package/dist/components/indicators/CreatingIndicator.js.map +1 -0
  115. package/dist/components/indicators/LoadingIndicator.d.ts.map +1 -0
  116. package/dist/components/indicators/LoadingIndicator.js.map +1 -0
  117. package/dist/components/indicators/RunningIndicator.d.ts.map +1 -0
  118. package/dist/components/indicators/RunningIndicator.js.map +1 -0
  119. package/dist/components/indicators/Spinner.d.ts.map +1 -0
  120. package/dist/components/indicators/Spinner.js.map +1 -0
  121. package/dist/components/indicators/UpdatingIndicator.d.ts.map +1 -0
  122. package/dist/components/indicators/UpdatingIndicator.js.map +1 -0
  123. package/dist/components/indicators/index.d.ts +6 -0
  124. package/dist/components/indicators/index.d.ts.map +1 -0
  125. package/dist/components/indicators/index.js +6 -0
  126. package/dist/components/indicators/index.js.map +1 -0
  127. package/dist/components/inputs/CleanTextInput.d.ts +19 -0
  128. package/dist/components/inputs/CleanTextInput.d.ts.map +1 -0
  129. package/dist/{CleanTextInput.js → components/inputs/CleanTextInput.js} +98 -160
  130. package/dist/components/inputs/CleanTextInput.js.map +1 -0
  131. package/dist/components/inputs/StyledTextInput.d.ts.map +1 -0
  132. package/dist/components/inputs/StyledTextInput.js.map +1 -0
  133. package/dist/components/inputs/index.d.ts +3 -0
  134. package/dist/components/inputs/index.d.ts.map +1 -0
  135. package/dist/components/inputs/index.js +3 -0
  136. package/dist/components/inputs/index.js.map +1 -0
  137. package/dist/components/{KebabMenu.d.ts → panes/KebabMenu.d.ts} +1 -1
  138. package/dist/components/panes/KebabMenu.d.ts.map +1 -0
  139. package/dist/components/panes/KebabMenu.js.map +1 -0
  140. package/dist/components/panes/MergePane.d.ts.map +1 -0
  141. package/dist/{MergePane.js → components/panes/MergePane.js} +1 -1
  142. package/dist/components/panes/MergePane.js.map +1 -0
  143. package/dist/components/{PaneCard.d.ts → panes/PaneCard.d.ts} +4 -2
  144. package/dist/components/panes/PaneCard.d.ts.map +1 -0
  145. package/dist/components/panes/PaneCard.js +55 -0
  146. package/dist/components/panes/PaneCard.js.map +1 -0
  147. package/dist/components/panes/PanesGrid.d.ts +12 -0
  148. package/dist/components/panes/PanesGrid.d.ts.map +1 -0
  149. package/dist/components/panes/PanesGrid.js +49 -0
  150. package/dist/components/panes/PanesGrid.js.map +1 -0
  151. package/dist/components/panes/index.d.ts +5 -0
  152. package/dist/components/panes/index.d.ts.map +1 -0
  153. package/dist/components/panes/index.js +5 -0
  154. package/dist/components/panes/index.js.map +1 -0
  155. package/dist/components/popups/agentChoicePopup.d.ts +7 -0
  156. package/dist/components/popups/agentChoicePopup.d.ts.map +1 -0
  157. package/dist/components/popups/agentChoicePopup.js +74 -0
  158. package/dist/components/popups/agentChoicePopup.js.map +1 -0
  159. package/dist/components/popups/choicePopup.d.ts +7 -0
  160. package/dist/components/popups/choicePopup.d.ts.map +1 -0
  161. package/dist/components/popups/choicePopup.js +64 -0
  162. package/dist/components/popups/choicePopup.js.map +1 -0
  163. package/dist/components/popups/config.d.ts +40 -0
  164. package/dist/components/popups/config.d.ts.map +1 -0
  165. package/dist/components/popups/config.js +40 -0
  166. package/dist/components/popups/config.js.map +1 -0
  167. package/dist/components/popups/confirmPopup.d.ts +7 -0
  168. package/dist/components/popups/confirmPopup.d.ts.map +1 -0
  169. package/dist/components/popups/confirmPopup.js +71 -0
  170. package/dist/components/popups/confirmPopup.js.map +1 -0
  171. package/dist/components/popups/hooksPopup.d.ts +7 -0
  172. package/dist/components/popups/hooksPopup.d.ts.map +1 -0
  173. package/dist/components/popups/hooksPopup.js +71 -0
  174. package/dist/components/popups/hooksPopup.js.map +1 -0
  175. package/dist/components/popups/inputPopup.d.ts +7 -0
  176. package/dist/components/popups/inputPopup.d.ts.map +1 -0
  177. package/dist/components/popups/inputPopup.js +47 -0
  178. package/dist/components/popups/inputPopup.js.map +1 -0
  179. package/dist/components/popups/kebabMenuPopup.d.ts +7 -0
  180. package/dist/components/popups/kebabMenuPopup.d.ts.map +1 -0
  181. package/dist/components/popups/kebabMenuPopup.js +52 -0
  182. package/dist/components/popups/kebabMenuPopup.js.map +1 -0
  183. package/dist/components/popups/logsPopup.d.ts +12 -0
  184. package/dist/components/popups/logsPopup.d.ts.map +1 -0
  185. package/dist/components/popups/logsPopup.js +372 -0
  186. package/dist/components/popups/logsPopup.js.map +1 -0
  187. package/dist/components/popups/mergePopup.d.ts +7 -0
  188. package/dist/components/popups/mergePopup.d.ts.map +1 -0
  189. package/dist/components/popups/mergePopup.js +310 -0
  190. package/dist/components/popups/mergePopup.js.map +1 -0
  191. package/dist/components/popups/newPanePopup.d.ts +7 -0
  192. package/dist/components/popups/newPanePopup.d.ts.map +1 -0
  193. package/dist/components/popups/newPanePopup.js +234 -0
  194. package/dist/components/popups/newPanePopup.js.map +1 -0
  195. package/dist/components/popups/progressPopup.d.ts +8 -0
  196. package/dist/components/popups/progressPopup.d.ts.map +1 -0
  197. package/dist/components/popups/progressPopup.js +53 -0
  198. package/dist/components/popups/progressPopup.js.map +1 -0
  199. package/dist/components/popups/remotePopup.d.ts +6 -0
  200. package/dist/components/popups/remotePopup.d.ts.map +1 -0
  201. package/dist/components/popups/remotePopup.js +166 -0
  202. package/dist/components/popups/remotePopup.js.map +1 -0
  203. package/dist/components/popups/settingsPopup.d.ts +7 -0
  204. package/dist/components/popups/settingsPopup.d.ts.map +1 -0
  205. package/dist/components/popups/settingsPopup.js +212 -0
  206. package/dist/components/popups/settingsPopup.js.map +1 -0
  207. package/dist/components/popups/shared/FileList.d.ts +13 -0
  208. package/dist/components/popups/shared/FileList.d.ts.map +1 -0
  209. package/dist/components/popups/shared/FileList.js +61 -0
  210. package/dist/components/popups/shared/FileList.js.map +1 -0
  211. package/dist/components/popups/shared/PopupContainer.d.ts +14 -0
  212. package/dist/components/popups/shared/PopupContainer.d.ts.map +1 -0
  213. package/dist/components/popups/shared/PopupContainer.js +15 -0
  214. package/dist/components/popups/shared/PopupContainer.js.map +1 -0
  215. package/dist/components/popups/shared/PopupInputBox.d.ts +11 -0
  216. package/dist/components/popups/shared/PopupInputBox.d.ts.map +1 -0
  217. package/dist/components/popups/shared/PopupInputBox.js +10 -0
  218. package/dist/components/popups/shared/PopupInputBox.js.map +1 -0
  219. package/dist/components/popups/shared/PopupWrapper.d.ts +37 -0
  220. package/dist/components/popups/shared/PopupWrapper.d.ts.map +1 -0
  221. package/dist/components/popups/shared/PopupWrapper.js +88 -0
  222. package/dist/components/popups/shared/PopupWrapper.js.map +1 -0
  223. package/dist/components/popups/shared/index.d.ts +8 -0
  224. package/dist/components/popups/shared/index.d.ts.map +1 -0
  225. package/dist/components/popups/shared/index.js +8 -0
  226. package/dist/components/popups/shared/index.js.map +1 -0
  227. package/dist/components/popups/shortcutsPopup.d.ts +6 -0
  228. package/dist/components/popups/shortcutsPopup.d.ts.map +1 -0
  229. package/dist/components/popups/shortcutsPopup.js +74 -0
  230. package/dist/components/popups/shortcutsPopup.js.map +1 -0
  231. package/dist/components/popups/templates/SimpleInputPopup.d.ts +15 -0
  232. package/dist/components/popups/templates/SimpleInputPopup.d.ts.map +1 -0
  233. package/dist/components/popups/templates/SimpleInputPopup.js +28 -0
  234. package/dist/components/popups/templates/SimpleInputPopup.js.map +1 -0
  235. package/dist/components/ui/FileCopyPrompt.d.ts.map +1 -0
  236. package/dist/components/ui/FileCopyPrompt.js.map +1 -0
  237. package/dist/components/ui/FooterHelp.d.ts +19 -0
  238. package/dist/components/ui/FooterHelp.d.ts.map +1 -0
  239. package/dist/components/ui/FooterHelp.js +55 -0
  240. package/dist/components/ui/FooterHelp.js.map +1 -0
  241. package/dist/components/ui/QRCode.d.ts.map +1 -0
  242. package/dist/components/ui/QRCode.js.map +1 -0
  243. package/dist/components/ui/index.d.ts +4 -0
  244. package/dist/components/ui/index.d.ts.map +1 -0
  245. package/dist/components/ui/index.js +4 -0
  246. package/dist/components/ui/index.js.map +1 -0
  247. package/dist/constants/timing.d.ts +22 -0
  248. package/dist/constants/timing.d.ts.map +1 -0
  249. package/dist/constants/timing.js +26 -0
  250. package/dist/constants/timing.js.map +1 -0
  251. package/dist/dashboard.js +1 -1
  252. package/dist/hooks/useActionSystem.d.ts +18 -4
  253. package/dist/hooks/useActionSystem.d.ts.map +1 -1
  254. package/dist/hooks/useActionSystem.js +125 -30
  255. package/dist/hooks/useActionSystem.js.map +1 -1
  256. package/dist/hooks/useDebugInfo.d.ts +11 -0
  257. package/dist/hooks/useDebugInfo.d.ts.map +1 -0
  258. package/dist/hooks/useDebugInfo.js +34 -0
  259. package/dist/hooks/useDebugInfo.js.map +1 -0
  260. package/dist/hooks/useDialogState.d.ts +22 -0
  261. package/dist/hooks/useDialogState.d.ts.map +1 -0
  262. package/dist/hooks/useDialogState.js +62 -0
  263. package/dist/hooks/useDialogState.js.map +1 -0
  264. package/dist/hooks/useInputHandling.d.ts +60 -0
  265. package/dist/hooks/useInputHandling.d.ts.map +1 -0
  266. package/dist/hooks/useInputHandling.js +280 -0
  267. package/dist/hooks/useInputHandling.js.map +1 -0
  268. package/dist/hooks/useLayoutManagement.d.ts +12 -0
  269. package/dist/hooks/useLayoutManagement.d.ts.map +1 -0
  270. package/dist/hooks/useLayoutManagement.js +58 -0
  271. package/dist/hooks/useLayoutManagement.js.map +1 -0
  272. package/dist/hooks/useNavigation.js +1 -1
  273. package/dist/hooks/useNavigation.js.map +1 -1
  274. package/dist/hooks/usePaneCreation.d.ts +1 -2
  275. package/dist/hooks/usePaneCreation.d.ts.map +1 -1
  276. package/dist/hooks/usePaneCreation.js +17 -36
  277. package/dist/hooks/usePaneCreation.js.map +1 -1
  278. package/dist/hooks/usePaneLoading.d.ts +45 -0
  279. package/dist/hooks/usePaneLoading.d.ts.map +1 -0
  280. package/dist/hooks/usePaneLoading.js +188 -0
  281. package/dist/hooks/usePaneLoading.js.map +1 -0
  282. package/dist/hooks/usePaneRunner.d.ts.map +1 -1
  283. package/dist/hooks/usePaneRunner.js +16 -8
  284. package/dist/hooks/usePaneRunner.js.map +1 -1
  285. package/dist/hooks/usePaneSync.d.ts +34 -0
  286. package/dist/hooks/usePaneSync.d.ts.map +1 -0
  287. package/dist/hooks/usePaneSync.js +182 -0
  288. package/dist/hooks/usePaneSync.js.map +1 -0
  289. package/dist/hooks/usePanes.d.ts.map +1 -1
  290. package/dist/hooks/usePanes.js +81 -258
  291. package/dist/hooks/usePanes.js.map +1 -1
  292. package/dist/hooks/useServices.d.ts +24 -0
  293. package/dist/hooks/useServices.d.ts.map +1 -0
  294. package/dist/hooks/useServices.js +39 -0
  295. package/dist/hooks/useServices.js.map +1 -0
  296. package/dist/hooks/useShellDetection.d.ts +10 -0
  297. package/dist/hooks/useShellDetection.d.ts.map +1 -0
  298. package/dist/hooks/useShellDetection.js +53 -0
  299. package/dist/hooks/useShellDetection.js.map +1 -0
  300. package/dist/hooks/useStatusMessages.d.ts +11 -0
  301. package/dist/hooks/useStatusMessages.d.ts.map +1 -0
  302. package/dist/hooks/useStatusMessages.js +32 -0
  303. package/dist/hooks/useStatusMessages.js.map +1 -0
  304. package/dist/hooks/useTemporaryStatus.d.ts +13 -0
  305. package/dist/hooks/useTemporaryStatus.d.ts.map +1 -0
  306. package/dist/hooks/useTemporaryStatus.js +30 -0
  307. package/dist/hooks/useTemporaryStatus.js.map +1 -0
  308. package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
  309. package/dist/hooks/useTerminalWidth.js +7 -12
  310. package/dist/hooks/useTerminalWidth.js.map +1 -1
  311. package/dist/hooks/useTunnelManagement.d.ts +18 -0
  312. package/dist/hooks/useTunnelManagement.d.ts.map +1 -0
  313. package/dist/hooks/useTunnelManagement.js +55 -0
  314. package/dist/hooks/useTunnelManagement.js.map +1 -0
  315. package/dist/hooks/useWorktreeActions.d.ts.map +1 -1
  316. package/dist/hooks/useWorktreeActions.js +23 -24
  317. package/dist/hooks/useWorktreeActions.js.map +1 -1
  318. package/dist/index.js +279 -73
  319. package/dist/index.js.map +1 -1
  320. package/dist/layout/LayoutCalculator.d.ts +62 -0
  321. package/dist/layout/LayoutCalculator.d.ts.map +1 -0
  322. package/dist/layout/LayoutCalculator.js +143 -0
  323. package/dist/layout/LayoutCalculator.js.map +1 -0
  324. package/dist/layout/SpacerManager.d.ts +64 -0
  325. package/dist/layout/SpacerManager.d.ts.map +1 -0
  326. package/dist/layout/SpacerManager.js +148 -0
  327. package/dist/layout/SpacerManager.js.map +1 -0
  328. package/dist/layout/TmuxLayoutApplier.d.ts +59 -0
  329. package/dist/layout/TmuxLayoutApplier.d.ts.map +1 -0
  330. package/dist/layout/TmuxLayoutApplier.js +135 -0
  331. package/dist/layout/TmuxLayoutApplier.js.map +1 -0
  332. package/dist/panes/decorative-pane.d.ts +3 -0
  333. package/dist/panes/decorative-pane.d.ts.map +1 -0
  334. package/dist/panes/decorative-pane.js +136 -0
  335. package/dist/panes/decorative-pane.js.map +1 -0
  336. package/dist/panes/spacer-pane.d.ts +8 -0
  337. package/dist/panes/spacer-pane.d.ts.map +1 -0
  338. package/dist/panes/spacer-pane.js +40 -0
  339. package/dist/panes/spacer-pane.js.map +1 -0
  340. package/dist/server/embedded-assets.d.ts.map +1 -1
  341. package/dist/server/embedded-assets.js +849 -4752
  342. package/dist/server/embedded-assets.js.map +1 -1
  343. package/dist/server/index.js +1 -1
  344. package/dist/server/index.js.map +1 -1
  345. package/dist/server/routes/actionsRoutes.d.ts +2 -0
  346. package/dist/server/routes/actionsRoutes.d.ts.map +1 -0
  347. package/dist/server/routes/actionsRoutes.js +110 -0
  348. package/dist/server/routes/actionsRoutes.js.map +1 -0
  349. package/dist/server/routes/healthRoutes.d.ts +13 -0
  350. package/dist/server/routes/healthRoutes.d.ts.map +1 -0
  351. package/dist/server/routes/healthRoutes.js +70 -0
  352. package/dist/server/routes/healthRoutes.js.map +1 -0
  353. package/dist/server/routes/index.d.ts +8 -0
  354. package/dist/server/routes/index.d.ts.map +1 -0
  355. package/dist/server/routes/index.js +67 -0
  356. package/dist/server/routes/index.js.map +1 -0
  357. package/dist/server/routes/keysRoutes.d.ts +20 -0
  358. package/dist/server/routes/keysRoutes.d.ts.map +1 -0
  359. package/dist/server/routes/keysRoutes.js +111 -0
  360. package/dist/server/routes/keysRoutes.js.map +1 -0
  361. package/dist/server/routes/panesRoutes.d.ts +2 -0
  362. package/dist/server/routes/panesRoutes.d.ts.map +1 -0
  363. package/dist/server/routes/panesRoutes.js +373 -0
  364. package/dist/server/routes/panesRoutes.js.map +1 -0
  365. package/dist/server/routes/settingsRoutes.d.ts +94 -0
  366. package/dist/server/routes/settingsRoutes.d.ts.map +1 -0
  367. package/dist/server/routes/settingsRoutes.js +159 -0
  368. package/dist/server/routes/settingsRoutes.js.map +1 -0
  369. package/dist/server/routes/streamRoutes.d.ts +18 -0
  370. package/dist/server/routes/streamRoutes.d.ts.map +1 -0
  371. package/dist/server/routes/streamRoutes.js +87 -0
  372. package/dist/server/routes/streamRoutes.js.map +1 -0
  373. package/dist/server/routes/tunnelRoutes.d.ts +11 -0
  374. package/dist/server/routes/tunnelRoutes.d.ts.map +1 -0
  375. package/dist/server/routes/tunnelRoutes.js +28 -0
  376. package/dist/server/routes/tunnelRoutes.js.map +1 -0
  377. package/dist/server/routes.d.ts +16 -2
  378. package/dist/server/routes.d.ts.map +1 -1
  379. package/dist/server/routes.js +16 -811
  380. package/dist/server/routes.js.map +1 -1
  381. package/dist/{AutoUpdater.d.ts → services/AutoUpdater.d.ts} +1 -0
  382. package/dist/services/AutoUpdater.d.ts.map +1 -0
  383. package/dist/{AutoUpdater.js → services/AutoUpdater.js} +42 -9
  384. package/dist/services/AutoUpdater.js.map +1 -0
  385. package/dist/services/ConfigWatcher.d.ts.map +1 -1
  386. package/dist/services/ConfigWatcher.js +10 -3
  387. package/dist/services/ConfigWatcher.js.map +1 -1
  388. package/dist/services/LogService.d.ts +112 -0
  389. package/dist/services/LogService.d.ts.map +1 -0
  390. package/dist/services/LogService.js +252 -0
  391. package/dist/services/LogService.js.map +1 -0
  392. package/dist/services/PaneAnalyzer.d.ts.map +1 -0
  393. package/dist/{PaneAnalyzer.js → services/PaneAnalyzer.js} +1 -1
  394. package/dist/services/PaneAnalyzer.js.map +1 -0
  395. package/dist/services/PaneLifecycleManager.d.ts +60 -0
  396. package/dist/services/PaneLifecycleManager.d.ts.map +1 -0
  397. package/dist/services/PaneLifecycleManager.js +119 -0
  398. package/dist/services/PaneLifecycleManager.js.map +1 -0
  399. package/dist/services/PaneWorkerManager.d.ts.map +1 -1
  400. package/dist/services/PaneWorkerManager.js +41 -12
  401. package/dist/services/PaneWorkerManager.js.map +1 -1
  402. package/dist/services/PopupManager.d.ts +68 -0
  403. package/dist/services/PopupManager.d.ts.map +1 -0
  404. package/dist/services/PopupManager.js +415 -0
  405. package/dist/services/PopupManager.js.map +1 -0
  406. package/dist/services/StatusDetector.js +1 -1
  407. package/dist/services/StatusDetector.js.map +1 -1
  408. package/dist/services/TerminalStreamer.d.ts +1 -0
  409. package/dist/services/TerminalStreamer.d.ts.map +1 -1
  410. package/dist/services/TerminalStreamer.js +22 -16
  411. package/dist/services/TerminalStreamer.js.map +1 -1
  412. package/dist/services/TmuxService.d.ts +298 -0
  413. package/dist/services/TmuxService.d.ts.map +1 -0
  414. package/dist/services/TmuxService.js +768 -0
  415. package/dist/services/TmuxService.js.map +1 -0
  416. package/dist/services/TunnelService.d.ts +1 -0
  417. package/dist/services/TunnelService.d.ts.map +1 -1
  418. package/dist/services/TunnelService.js +57 -15
  419. package/dist/services/TunnelService.js.map +1 -1
  420. package/dist/shared/StateManager.d.ts +49 -1
  421. package/dist/shared/StateManager.d.ts.map +1 -1
  422. package/dist/shared/StateManager.js +97 -2
  423. package/dist/shared/StateManager.js.map +1 -1
  424. package/dist/theme/colors.d.ts +25 -0
  425. package/dist/theme/colors.d.ts.map +1 -0
  426. package/dist/theme/colors.js +33 -0
  427. package/dist/theme/colors.js.map +1 -0
  428. package/dist/types.d.ts +18 -0
  429. package/dist/types.d.ts.map +1 -1
  430. package/dist/utils/asciiArt.d.ts +26 -0
  431. package/dist/utils/asciiArt.d.ts.map +1 -0
  432. package/dist/utils/asciiArt.js +75 -0
  433. package/dist/utils/asciiArt.js.map +1 -0
  434. package/dist/utils/conflictMonitor.d.ts +20 -0
  435. package/dist/utils/conflictMonitor.d.ts.map +1 -0
  436. package/dist/utils/conflictMonitor.js +113 -0
  437. package/dist/utils/conflictMonitor.js.map +1 -0
  438. package/dist/utils/conflictResolutionPane.d.ts.map +1 -1
  439. package/dist/utils/conflictResolutionPane.js +75 -80
  440. package/dist/utils/conflictResolutionPane.js.map +1 -1
  441. package/dist/utils/errorHandling.d.ts +37 -0
  442. package/dist/utils/errorHandling.d.ts.map +1 -0
  443. package/dist/utils/errorHandling.js +112 -0
  444. package/dist/utils/errorHandling.js.map +1 -0
  445. package/dist/utils/fileScanner.d.ts +23 -0
  446. package/dist/utils/fileScanner.d.ts.map +1 -0
  447. package/dist/utils/fileScanner.js +123 -0
  448. package/dist/utils/fileScanner.js.map +1 -0
  449. package/dist/utils/generated-agents-doc.d.ts +1 -1
  450. package/dist/utils/generated-agents-doc.js +1 -1
  451. package/dist/utils/git.d.ts +4 -0
  452. package/dist/utils/git.d.ts.map +1 -1
  453. package/dist/utils/git.js +15 -0
  454. package/dist/utils/git.js.map +1 -1
  455. package/dist/utils/hooks.d.ts.map +1 -1
  456. package/dist/utils/hooks.js +65 -36
  457. package/dist/utils/hooks.js.map +1 -1
  458. package/dist/utils/hooksDocs.d.ts +1 -1
  459. package/dist/utils/layoutManager.d.ts +49 -0
  460. package/dist/utils/layoutManager.d.ts.map +1 -0
  461. package/dist/utils/layoutManager.js +249 -0
  462. package/dist/utils/layoutManager.js.map +1 -0
  463. package/dist/utils/mergeExecution.d.ts.map +1 -1
  464. package/dist/utils/mergeExecution.js +8 -1
  465. package/dist/utils/mergeExecution.js.map +1 -1
  466. package/dist/utils/mergeValidation.d.ts.map +1 -1
  467. package/dist/utils/mergeValidation.js +42 -13
  468. package/dist/utils/mergeValidation.js.map +1 -1
  469. package/dist/utils/paneCreation.d.ts.map +1 -1
  470. package/dist/utils/paneCreation.js +210 -88
  471. package/dist/utils/paneCreation.js.map +1 -1
  472. package/dist/utils/paneRebinding.d.ts +14 -0
  473. package/dist/utils/paneRebinding.d.ts.map +1 -0
  474. package/dist/utils/paneRebinding.js +28 -0
  475. package/dist/utils/paneRebinding.js.map +1 -0
  476. package/dist/utils/popup.d.ts +97 -0
  477. package/dist/utils/popup.d.ts.map +1 -0
  478. package/dist/utils/popup.js +503 -0
  479. package/dist/utils/popup.js.map +1 -0
  480. package/dist/utils/postPaneCleanup.d.ts +12 -0
  481. package/dist/utils/postPaneCleanup.d.ts.map +1 -0
  482. package/dist/utils/postPaneCleanup.js +54 -0
  483. package/dist/utils/postPaneCleanup.js.map +1 -0
  484. package/dist/utils/shellPaneDetection.d.ts +44 -0
  485. package/dist/utils/shellPaneDetection.d.ts.map +1 -0
  486. package/dist/utils/shellPaneDetection.js +179 -0
  487. package/dist/utils/shellPaneDetection.js.map +1 -0
  488. package/dist/utils/systemCheck.d.ts +19 -0
  489. package/dist/utils/systemCheck.d.ts.map +1 -0
  490. package/dist/utils/systemCheck.js +160 -0
  491. package/dist/utils/systemCheck.js.map +1 -0
  492. package/dist/utils/tmux.d.ts +72 -1
  493. package/dist/utils/tmux.d.ts.map +1 -1
  494. package/dist/utils/tmux.js +369 -99
  495. package/dist/utils/tmux.js.map +1 -1
  496. package/dist/utils/welcomePane.d.ts +22 -0
  497. package/dist/utils/welcomePane.d.ts.map +1 -0
  498. package/dist/utils/welcomePane.js +111 -0
  499. package/dist/utils/welcomePane.js.map +1 -0
  500. package/dist/utils/welcomePaneManager.d.ts +36 -0
  501. package/dist/utils/welcomePaneManager.d.ts.map +1 -0
  502. package/dist/utils/welcomePaneManager.js +160 -0
  503. package/dist/utils/welcomePaneManager.js.map +1 -0
  504. package/dist/workers/PaneWorker.js +8 -8
  505. package/dist/workers/PaneWorker.js.map +1 -1
  506. package/dist/workers/updateChecker.js +1 -1
  507. package/dist/workers/updateChecker.js.map +1 -1
  508. package/package.json +7 -2
  509. package/dist/AutoUpdater.d.ts.map +0 -1
  510. package/dist/AutoUpdater.js.map +0 -1
  511. package/dist/BetterTextInput.d.ts +0 -10
  512. package/dist/BetterTextInput.d.ts.map +0 -1
  513. package/dist/BetterTextInput.js +0 -177
  514. package/dist/BetterTextInput.js.map +0 -1
  515. package/dist/CleanTextInput.d.ts +0 -10
  516. package/dist/CleanTextInput.d.ts.map +0 -1
  517. package/dist/CleanTextInput.js.map +0 -1
  518. package/dist/EnhancedTextInput.d.ts +0 -13
  519. package/dist/EnhancedTextInput.d.ts.map +0 -1
  520. package/dist/EnhancedTextInput.js +0 -443
  521. package/dist/EnhancedTextInput.js.map +0 -1
  522. package/dist/GeminiTextInput.d.ts +0 -12
  523. package/dist/GeminiTextInput.d.ts.map +0 -1
  524. package/dist/GeminiTextInput.js +0 -210
  525. package/dist/GeminiTextInput.js.map +0 -1
  526. package/dist/MergePane.d.ts.map +0 -1
  527. package/dist/MergePane.js.map +0 -1
  528. package/dist/MultilineTextInput.d.ts +0 -10
  529. package/dist/MultilineTextInput.d.ts.map +0 -1
  530. package/dist/MultilineTextInput.js +0 -184
  531. package/dist/MultilineTextInput.js.map +0 -1
  532. package/dist/PaneAnalyzer.d.ts.map +0 -1
  533. package/dist/PaneAnalyzer.js.map +0 -1
  534. package/dist/SimpleEnhancedInput.d.ts +0 -13
  535. package/dist/SimpleEnhancedInput.d.ts.map +0 -1
  536. package/dist/SimpleEnhancedInput.js +0 -639
  537. package/dist/SimpleEnhancedInput.js.map +0 -1
  538. package/dist/SimpleGeminiInput.d.ts +0 -12
  539. package/dist/SimpleGeminiInput.d.ts.map +0 -1
  540. package/dist/SimpleGeminiInput.js +0 -223
  541. package/dist/SimpleGeminiInput.js.map +0 -1
  542. package/dist/StyledTextInput.d.ts.map +0 -1
  543. package/dist/StyledTextInput.js.map +0 -1
  544. package/dist/components/ActionChoiceDialog.d.ts.map +0 -1
  545. package/dist/components/ActionChoiceDialog.js.map +0 -1
  546. package/dist/components/ActionConfirmDialog.d.ts.map +0 -1
  547. package/dist/components/ActionConfirmDialog.js.map +0 -1
  548. package/dist/components/ActionInputDialog.d.ts.map +0 -1
  549. package/dist/components/ActionInputDialog.js.map +0 -1
  550. package/dist/components/ActionProgressDialog.d.ts.map +0 -1
  551. package/dist/components/ActionProgressDialog.js.map +0 -1
  552. package/dist/components/AgentChoiceDialog.d.ts.map +0 -1
  553. package/dist/components/AgentChoiceDialog.js.map +0 -1
  554. package/dist/components/CloseOptionsDialog.d.ts.map +0 -1
  555. package/dist/components/CloseOptionsDialog.js.map +0 -1
  556. package/dist/components/CommandPromptDialog.d.ts.map +0 -1
  557. package/dist/components/CommandPromptDialog.js.map +0 -1
  558. package/dist/components/CreatingIndicator.d.ts.map +0 -1
  559. package/dist/components/CreatingIndicator.js.map +0 -1
  560. package/dist/components/FileCopyPrompt.d.ts.map +0 -1
  561. package/dist/components/FileCopyPrompt.js.map +0 -1
  562. package/dist/components/FooterHelp.d.ts +0 -10
  563. package/dist/components/FooterHelp.d.ts.map +0 -1
  564. package/dist/components/FooterHelp.js +0 -19
  565. package/dist/components/FooterHelp.js.map +0 -1
  566. package/dist/components/HooksDialog.d.ts.map +0 -1
  567. package/dist/components/HooksDialog.js.map +0 -1
  568. package/dist/components/KebabMenu.d.ts.map +0 -1
  569. package/dist/components/KebabMenu.js.map +0 -1
  570. package/dist/components/LoadingIndicator.d.ts.map +0 -1
  571. package/dist/components/LoadingIndicator.js.map +0 -1
  572. package/dist/components/MergeConfirmationDialog.d.ts.map +0 -1
  573. package/dist/components/MergeConfirmationDialog.js.map +0 -1
  574. package/dist/components/NewPaneDialog.d.ts +0 -9
  575. package/dist/components/NewPaneDialog.d.ts.map +0 -1
  576. package/dist/components/NewPaneDialog.js +0 -11
  577. package/dist/components/NewPaneDialog.js.map +0 -1
  578. package/dist/components/PaneCard.d.ts.map +0 -1
  579. package/dist/components/PaneCard.js +0 -38
  580. package/dist/components/PaneCard.js.map +0 -1
  581. package/dist/components/PanesGrid.d.ts +0 -14
  582. package/dist/components/PanesGrid.d.ts.map +0 -1
  583. package/dist/components/PanesGrid.js +0 -19
  584. package/dist/components/PanesGrid.js.map +0 -1
  585. package/dist/components/QRCode.d.ts.map +0 -1
  586. package/dist/components/QRCode.js.map +0 -1
  587. package/dist/components/RunningIndicator.d.ts.map +0 -1
  588. package/dist/components/RunningIndicator.js.map +0 -1
  589. package/dist/components/SettingsDialog.d.ts.map +0 -1
  590. package/dist/components/SettingsDialog.js.map +0 -1
  591. package/dist/components/Spinner.d.ts.map +0 -1
  592. package/dist/components/Spinner.js.map +0 -1
  593. package/dist/components/UpdateDialog.d.ts.map +0 -1
  594. package/dist/components/UpdateDialog.js.map +0 -1
  595. package/dist/components/UpdatingIndicator.d.ts.map +0 -1
  596. package/dist/components/UpdatingIndicator.js.map +0 -1
  597. package/dist/server/static.d.ts +0 -6
  598. package/dist/server/static.d.ts.map +0 -1
  599. package/dist/server/static.js +0 -3040
  600. package/dist/server/static.js.map +0 -1
  601. /package/dist/components/{ActionChoiceDialog.js → dialogs/ActionChoiceDialog.js} +0 -0
  602. /package/dist/components/{ActionConfirmDialog.d.ts → dialogs/ActionConfirmDialog.d.ts} +0 -0
  603. /package/dist/components/{ActionConfirmDialog.js → dialogs/ActionConfirmDialog.js} +0 -0
  604. /package/dist/components/{ActionInputDialog.d.ts → dialogs/ActionInputDialog.d.ts} +0 -0
  605. /package/dist/components/{ActionProgressDialog.d.ts → dialogs/ActionProgressDialog.d.ts} +0 -0
  606. /package/dist/components/{ActionProgressDialog.js → dialogs/ActionProgressDialog.js} +0 -0
  607. /package/dist/components/{AgentChoiceDialog.d.ts → dialogs/AgentChoiceDialog.d.ts} +0 -0
  608. /package/dist/components/{AgentChoiceDialog.js → dialogs/AgentChoiceDialog.js} +0 -0
  609. /package/dist/components/{CloseOptionsDialog.js → dialogs/CloseOptionsDialog.js} +0 -0
  610. /package/dist/components/{CommandPromptDialog.d.ts → dialogs/CommandPromptDialog.d.ts} +0 -0
  611. /package/dist/components/{HooksDialog.d.ts → dialogs/HooksDialog.d.ts} +0 -0
  612. /package/dist/components/{HooksDialog.js → dialogs/HooksDialog.js} +0 -0
  613. /package/dist/components/{MergeConfirmationDialog.js → dialogs/MergeConfirmationDialog.js} +0 -0
  614. /package/dist/components/{SettingsDialog.js → dialogs/SettingsDialog.js} +0 -0
  615. /package/dist/components/{UpdateDialog.d.ts → dialogs/UpdateDialog.d.ts} +0 -0
  616. /package/dist/components/{UpdateDialog.js → dialogs/UpdateDialog.js} +0 -0
  617. /package/dist/components/{CreatingIndicator.d.ts → indicators/CreatingIndicator.d.ts} +0 -0
  618. /package/dist/components/{CreatingIndicator.js → indicators/CreatingIndicator.js} +0 -0
  619. /package/dist/components/{LoadingIndicator.d.ts → indicators/LoadingIndicator.d.ts} +0 -0
  620. /package/dist/components/{LoadingIndicator.js → indicators/LoadingIndicator.js} +0 -0
  621. /package/dist/components/{RunningIndicator.d.ts → indicators/RunningIndicator.d.ts} +0 -0
  622. /package/dist/components/{RunningIndicator.js → indicators/RunningIndicator.js} +0 -0
  623. /package/dist/components/{Spinner.d.ts → indicators/Spinner.d.ts} +0 -0
  624. /package/dist/components/{Spinner.js → indicators/Spinner.js} +0 -0
  625. /package/dist/components/{UpdatingIndicator.d.ts → indicators/UpdatingIndicator.d.ts} +0 -0
  626. /package/dist/components/{UpdatingIndicator.js → indicators/UpdatingIndicator.js} +0 -0
  627. /package/dist/{StyledTextInput.d.ts → components/inputs/StyledTextInput.d.ts} +0 -0
  628. /package/dist/{StyledTextInput.js → components/inputs/StyledTextInput.js} +0 -0
  629. /package/dist/components/{KebabMenu.js → panes/KebabMenu.js} +0 -0
  630. /package/dist/{MergePane.d.ts → components/panes/MergePane.d.ts} +0 -0
  631. /package/dist/components/{FileCopyPrompt.d.ts → ui/FileCopyPrompt.d.ts} +0 -0
  632. /package/dist/components/{FileCopyPrompt.js → ui/FileCopyPrompt.js} +0 -0
  633. /package/dist/components/{QRCode.d.ts → ui/QRCode.d.ts} +0 -0
  634. /package/dist/components/{QRCode.js → ui/QRCode.js} +0 -0
  635. /package/dist/{PaneAnalyzer.d.ts → services/PaneAnalyzer.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../src/utils/popup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IAEX,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AA8CD;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAkH9B;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,CAAC,GAAG,GAAG,EAC3C,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAezB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,WAAW,CAAC,MAAM,CAAC,CAoIrB;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,GAAG,GAAG,EAChD,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,YAAiB,GACzB,WAAW,CAAC,CAAC,CAAC,CA6IhB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAczD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAexC;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;;OAGG;2BACoB,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQrD;;;OAGG;sCAC+B,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAOhE;;;OAGG;qBACc,OAAO,CAAC,YAAY,CAAC;IAMtC;;;OAGG;wBACiB,MAAM,iBAAiB,MAAM,kBAAkB,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CASlG,CAAC"}
@@ -0,0 +1,503 @@
1
+ /**
2
+ * Utility for launching tmux popup modals
3
+ * Requires tmux 3.2+
4
+ */
5
+ import { spawn } from 'child_process';
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+ import * as os from 'os';
9
+ import { POPUP_CONFIG } from '../components/popups/config.js';
10
+ import { TmuxService } from '../services/TmuxService.js';
11
+ /**
12
+ * Calculate actual popup bounds based on tmux terminal dimensions
13
+ */
14
+ function calculatePopupBounds(options) {
15
+ const { width = 80, height = 20, centered = true, x, y, leftOffset = 0, topOffset = 0, } = options;
16
+ try {
17
+ // Get tmux client dimensions using TmuxService
18
+ const tmuxService = TmuxService.getInstance();
19
+ const { width: clientWidth, height: clientHeight } = tmuxService.getTerminalDimensionsSync();
20
+ let posX;
21
+ let posY;
22
+ if (!centered && (leftOffset > 0 || topOffset > 0)) {
23
+ posX = leftOffset;
24
+ posY = topOffset;
25
+ }
26
+ else if (!centered && x !== undefined && y !== undefined) {
27
+ posX = x;
28
+ posY = y;
29
+ }
30
+ else if (centered && leftOffset > 0) {
31
+ posX = Math.floor((clientWidth - width) / 2) + leftOffset;
32
+ posY = Math.floor((clientHeight - height) / 2) + topOffset;
33
+ }
34
+ else {
35
+ // Fully centered
36
+ posX = Math.floor((clientWidth - width) / 2);
37
+ posY = Math.floor((clientHeight - height) / 2);
38
+ }
39
+ return { x: posX, y: posY, width, height };
40
+ }
41
+ catch {
42
+ // Fallback to defaults if we can't get tmux dimensions
43
+ return { x: leftOffset || 0, y: topOffset || 0, width, height };
44
+ }
45
+ }
46
+ /**
47
+ * Launch a tmux popup modal
48
+ * @param command - Command to run in the popup
49
+ * @param options - Popup display options
50
+ * @returns Promise that resolves when popup closes
51
+ */
52
+ export async function launchPopup(command, options = {}) {
53
+ const { width = 80, height = 20, title, centered = true, x, y, cwd = process.cwd(), borderStyle = 'double', leftOffset = 0, topOffset = 0, } = options;
54
+ // Create a temp file for the result
55
+ const resultFile = path.join(os.tmpdir(), `dmux-popup-${Date.now()}.json`);
56
+ // Build tmux popup command
57
+ const args = [
58
+ 'display-popup',
59
+ '-E', // Close on command exit
60
+ '-w', width.toString(),
61
+ '-h', height.toString(),
62
+ '-d', `"${cwd}"`,
63
+ ];
64
+ // Add border style if supported (tmux 3.2+)
65
+ // Skip if borderStyle is 'none' (we want no tmux border)
66
+ if (borderStyle && borderStyle !== 'none') {
67
+ args.push('-b', borderStyle);
68
+ }
69
+ // Add popup border color (foreground only - respects user's terminal background)
70
+ args.push('-s', `'border-fg=colour${POPUP_CONFIG.tmuxBorderColor}'`);
71
+ // Position: centered or custom
72
+ if (!centered && (leftOffset > 0 || topOffset > 0)) {
73
+ // Absolute positioning with leftOffset/topOffset
74
+ args.push('-x', leftOffset.toString());
75
+ args.push('-y', topOffset.toString());
76
+ }
77
+ else if (!centered && x !== undefined && y !== undefined) {
78
+ // Absolute positioning with x/y
79
+ args.push('-x', x.toString());
80
+ args.push('-y', y.toString());
81
+ }
82
+ else if (centered && leftOffset > 0) {
83
+ // Centered with sidebar offset
84
+ args.push('-x', leftOffset.toString());
85
+ args.push('-y', topOffset.toString());
86
+ }
87
+ else {
88
+ // Fully centered
89
+ args.push('-x', 'C');
90
+ args.push('-y', 'C');
91
+ }
92
+ // Title
93
+ if (title) {
94
+ args.push('-T', `"${title}"`);
95
+ }
96
+ // Escape the command for tmux
97
+ const escapedCommand = command.replace(/'/g, "'\\''");
98
+ const fullCommand = `tmux ${args.join(' ')} '${escapedCommand}'`;
99
+ return new Promise((resolve) => {
100
+ // Launch popup with spawn (non-blocking)
101
+ const child = spawn('sh', ['-c', fullCommand], {
102
+ stdio: 'inherit',
103
+ });
104
+ child.on('close', () => {
105
+ // Read result from temp file
106
+ if (fs.existsSync(resultFile)) {
107
+ try {
108
+ const resultData = fs.readFileSync(resultFile, 'utf-8');
109
+ fs.unlinkSync(resultFile); // Clean up
110
+ try {
111
+ const result = JSON.parse(resultData);
112
+ resolve(result);
113
+ }
114
+ catch {
115
+ // Not JSON, treat as plain text
116
+ resolve({
117
+ success: true,
118
+ data: resultData,
119
+ });
120
+ }
121
+ }
122
+ catch (error) {
123
+ resolve({
124
+ success: false,
125
+ error: error.message,
126
+ });
127
+ }
128
+ }
129
+ else {
130
+ // No result file = cancelled
131
+ resolve({
132
+ success: false,
133
+ cancelled: true,
134
+ });
135
+ }
136
+ });
137
+ child.on('error', (error) => {
138
+ // Clean up temp file if it exists
139
+ if (fs.existsSync(resultFile)) {
140
+ fs.unlinkSync(resultFile);
141
+ }
142
+ resolve({
143
+ success: false,
144
+ error: error.message,
145
+ });
146
+ });
147
+ });
148
+ }
149
+ /**
150
+ * Launch a popup that runs a Node.js script
151
+ * @param scriptPath - Path to the compiled JS script
152
+ * @param args - Arguments to pass to the script
153
+ * @param options - Popup display options
154
+ */
155
+ export async function launchNodePopup(scriptPath, args = [], options = {}) {
156
+ // Get the result file path that the script will write to
157
+ const resultFile = path.join(os.tmpdir(), `dmux-popup-${Date.now()}.json`);
158
+ // Build node command with proper escaping
159
+ // Escape each argument for shell: replace backslashes, then single quotes
160
+ const escapedArgs = [scriptPath, resultFile, ...args].map(arg => {
161
+ // Escape for shell: replace ' with '\''
162
+ const escaped = arg.replace(/\\/g, '\\\\').replace(/'/g, "'\\''");
163
+ return `'${escaped}'`;
164
+ });
165
+ const command = `node ${escapedArgs.join(' ')}`;
166
+ return launchPopup(command, options);
167
+ }
168
+ /**
169
+ * Launch a popup non-blocking (returns handle immediately)
170
+ * @param command - Command to run in the popup
171
+ * @param options - Popup display options
172
+ * @returns Handle with PID, bounds, and result promise
173
+ */
174
+ export function launchPopupNonBlocking(command, options = {}) {
175
+ const { width = 80, height = 20, title, centered = true, x, y, cwd = process.cwd(), borderStyle = 'double', leftOffset = 0, topOffset = 0, } = options;
176
+ // Calculate popup bounds
177
+ const bounds = calculatePopupBounds(options);
178
+ // Create a temp file for the result
179
+ const resultFile = path.join(os.tmpdir(), `dmux-popup-${Date.now()}.json`);
180
+ // Build tmux popup command
181
+ const args = [
182
+ 'display-popup',
183
+ '-E', // Close on command exit
184
+ '-w', width.toString(),
185
+ '-h', height.toString(),
186
+ '-d', `"${cwd}"`,
187
+ ];
188
+ // Add border style if supported (tmux 3.2+)
189
+ if (borderStyle && borderStyle !== 'none') {
190
+ args.push('-b', borderStyle);
191
+ }
192
+ // Add popup border color (foreground only - respects user's terminal background)
193
+ args.push('-s', `'border-fg=colour${POPUP_CONFIG.tmuxBorderColor}'`);
194
+ // Position: centered or custom
195
+ if (!centered && (leftOffset > 0 || topOffset > 0)) {
196
+ args.push('-x', leftOffset.toString());
197
+ args.push('-y', topOffset.toString());
198
+ }
199
+ else if (!centered && x !== undefined && y !== undefined) {
200
+ args.push('-x', x.toString());
201
+ args.push('-y', y.toString());
202
+ }
203
+ else if (centered && leftOffset > 0) {
204
+ args.push('-x', leftOffset.toString());
205
+ args.push('-y', topOffset.toString());
206
+ }
207
+ else {
208
+ args.push('-x', 'C');
209
+ args.push('-y', 'C');
210
+ }
211
+ // Title
212
+ if (title) {
213
+ args.push('-T', `"${title}"`);
214
+ }
215
+ // Escape the command for tmux
216
+ const escapedCommand = command.replace(/'/g, "'\\''");
217
+ const fullCommand = `tmux ${args.join(' ')} '${escapedCommand}'`;
218
+ // Launch popup with spawn (non-blocking)
219
+ const child = spawn('sh', ['-c', fullCommand], {
220
+ stdio: 'inherit',
221
+ });
222
+ const resultPromise = new Promise((resolve) => {
223
+ child.on('close', () => {
224
+ // Small delay to ensure file is written
225
+ setTimeout(() => {
226
+ // Read result from temp file
227
+ if (fs.existsSync(resultFile)) {
228
+ try {
229
+ const resultData = fs.readFileSync(resultFile, 'utf-8');
230
+ fs.unlinkSync(resultFile); // Clean up
231
+ try {
232
+ const result = JSON.parse(resultData);
233
+ resolve(result);
234
+ }
235
+ catch {
236
+ // Not JSON, treat as plain text
237
+ resolve({
238
+ success: true,
239
+ data: resultData,
240
+ });
241
+ }
242
+ }
243
+ catch (error) {
244
+ resolve({
245
+ success: false,
246
+ error: error.message,
247
+ });
248
+ }
249
+ }
250
+ else {
251
+ // No result file = cancelled
252
+ console.error(`[popup] Result file not found: ${resultFile}`);
253
+ resolve({
254
+ success: false,
255
+ cancelled: true,
256
+ });
257
+ }
258
+ }, 100); // Wait 100ms for file to be written
259
+ });
260
+ child.on('error', (error) => {
261
+ // Clean up temp file if it exists
262
+ if (fs.existsSync(resultFile)) {
263
+ fs.unlinkSync(resultFile);
264
+ }
265
+ resolve({
266
+ success: false,
267
+ error: error.message,
268
+ });
269
+ });
270
+ });
271
+ return {
272
+ pid: child.pid,
273
+ bounds,
274
+ resultPromise,
275
+ kill: () => {
276
+ try {
277
+ child.kill('SIGTERM');
278
+ // Clean up temp file
279
+ if (fs.existsSync(resultFile)) {
280
+ fs.unlinkSync(resultFile);
281
+ }
282
+ }
283
+ catch {
284
+ // Ignore errors if process already dead
285
+ }
286
+ },
287
+ };
288
+ }
289
+ /**
290
+ * Launch a Node.js popup non-blocking (returns handle immediately)
291
+ * @param scriptPath - Path to the compiled JS script
292
+ * @param args - Arguments to pass to the script
293
+ * @param options - Popup display options
294
+ * @returns Handle with PID, bounds, and result promise
295
+ */
296
+ export function launchNodePopupNonBlocking(scriptPath, args = [], options = {}) {
297
+ const { width = 80, height = 20, title, centered = true, x, y, cwd = process.cwd(), borderStyle = 'double', leftOffset = 0, topOffset = 0, } = options;
298
+ // Calculate popup bounds
299
+ const bounds = calculatePopupBounds(options);
300
+ // Get the result file path that the script will write to
301
+ // IMPORTANT: Only create this ONCE - do NOT create it again in child.on('close')
302
+ const resultFile = path.join(os.tmpdir(), `dmux-popup-${Date.now()}.json`);
303
+ // Build node command with proper escaping
304
+ const escapedArgs = [scriptPath, resultFile, ...args].map(arg => {
305
+ const escaped = arg.replace(/\\/g, '\\\\').replace(/'/g, "'\\''");
306
+ return `'${escaped}'`;
307
+ });
308
+ const command = `node ${escapedArgs.join(' ')}`;
309
+ // Build tmux popup command
310
+ const tmuxArgs = [
311
+ 'display-popup',
312
+ '-E', // Close on command exit
313
+ '-w', width.toString(),
314
+ '-h', height.toString(),
315
+ '-d', `"${cwd}"`,
316
+ ];
317
+ // Add border style if supported (tmux 3.2+)
318
+ if (borderStyle && borderStyle !== 'none') {
319
+ tmuxArgs.push('-b', borderStyle);
320
+ }
321
+ // Add popup border color (foreground only - respects user's terminal background)
322
+ tmuxArgs.push('-s', `'border-fg=colour${POPUP_CONFIG.tmuxBorderColor}'`);
323
+ // Position: centered or custom
324
+ if (!centered && (leftOffset > 0 || topOffset > 0)) {
325
+ tmuxArgs.push('-x', leftOffset.toString());
326
+ tmuxArgs.push('-y', topOffset.toString());
327
+ }
328
+ else if (!centered && x !== undefined && y !== undefined) {
329
+ tmuxArgs.push('-x', x.toString());
330
+ tmuxArgs.push('-y', y.toString());
331
+ }
332
+ else if (centered && leftOffset > 0) {
333
+ tmuxArgs.push('-x', leftOffset.toString());
334
+ tmuxArgs.push('-y', topOffset.toString());
335
+ }
336
+ else {
337
+ tmuxArgs.push('-x', 'C');
338
+ tmuxArgs.push('-y', 'C');
339
+ }
340
+ // Title
341
+ if (title) {
342
+ tmuxArgs.push('-T', `"${title}"`);
343
+ }
344
+ // Escape the command for tmux
345
+ const escapedCommand = command.replace(/'/g, "'\\''");
346
+ const fullCommand = `tmux ${tmuxArgs.join(' ')} '${escapedCommand}'`;
347
+ // Launch popup with spawn (non-blocking)
348
+ const child = spawn('sh', ['-c', fullCommand], {
349
+ stdio: 'inherit',
350
+ });
351
+ const resultPromise = new Promise((resolve) => {
352
+ child.on('close', () => {
353
+ // Small delay to ensure file is written
354
+ setTimeout(() => {
355
+ // Read result from temp file using the SAME resultFile path we passed to the script
356
+ if (fs.existsSync(resultFile)) {
357
+ try {
358
+ const resultData = fs.readFileSync(resultFile, 'utf-8');
359
+ fs.unlinkSync(resultFile); // Clean up
360
+ try {
361
+ const result = JSON.parse(resultData);
362
+ resolve(result);
363
+ }
364
+ catch {
365
+ // Not JSON, treat as plain text
366
+ resolve({
367
+ success: true,
368
+ data: resultData,
369
+ });
370
+ }
371
+ }
372
+ catch (error) {
373
+ resolve({
374
+ success: false,
375
+ error: error.message,
376
+ });
377
+ }
378
+ }
379
+ else {
380
+ // No result file = cancelled
381
+ console.error(`[popup] Result file not found: ${resultFile}`);
382
+ resolve({
383
+ success: false,
384
+ cancelled: true,
385
+ });
386
+ }
387
+ }, 100); // Wait 100ms for file to be written
388
+ });
389
+ child.on('error', (error) => {
390
+ // Clean up temp file if it exists
391
+ if (fs.existsSync(resultFile)) {
392
+ fs.unlinkSync(resultFile);
393
+ }
394
+ resolve({
395
+ success: false,
396
+ error: error.message,
397
+ });
398
+ });
399
+ });
400
+ return {
401
+ pid: child.pid,
402
+ bounds,
403
+ resultPromise,
404
+ kill: () => {
405
+ try {
406
+ child.kill('SIGTERM');
407
+ // Clean up temp file
408
+ if (fs.existsSync(resultFile)) {
409
+ fs.unlinkSync(resultFile);
410
+ }
411
+ }
412
+ catch {
413
+ // Ignore errors if process already dead
414
+ }
415
+ },
416
+ };
417
+ }
418
+ /**
419
+ * Enable tmux mouse mode for click-outside-to-close popup behavior (session-specific)
420
+ * @param sessionName - The tmux session name to enable mouse mode for
421
+ */
422
+ export function ensureMouseMode(sessionName) {
423
+ try {
424
+ const tmuxService = TmuxService.getInstance();
425
+ // Check if mouse mode is already enabled for this session
426
+ const mouseStatus = tmuxService.getSessionOptionSync(sessionName, 'mouse');
427
+ // If mouse is off, enable it for this session only (not global)
428
+ if (mouseStatus.includes('off')) {
429
+ tmuxService.setSessionOptionSync(sessionName, 'mouse', 'on');
430
+ }
431
+ }
432
+ catch {
433
+ // Ignore errors - might not be in tmux session or session doesn't exist yet
434
+ }
435
+ }
436
+ /**
437
+ * Check if tmux supports popups (3.2+)
438
+ */
439
+ export function supportsPopups() {
440
+ try {
441
+ const tmuxService = TmuxService.getInstance();
442
+ const version = tmuxService.getVersionSync();
443
+ // Extract version number (e.g., "tmux 3.2" -> "3.2")
444
+ const match = version.match(/tmux (\d+\.\d+)/);
445
+ if (match) {
446
+ const versionNum = parseFloat(match[1]);
447
+ return versionNum >= 3.2;
448
+ }
449
+ return false;
450
+ }
451
+ catch {
452
+ return false;
453
+ }
454
+ }
455
+ /**
456
+ * Standard popup positioning presets for consistent UX
457
+ */
458
+ export const POPUP_POSITIONING = {
459
+ /**
460
+ * Standard position: top-left corner, offset from sidebar
461
+ * Use this for most popups (menus, dialogs, forms)
462
+ */
463
+ standard(sidebarWidth) {
464
+ return {
465
+ centered: false,
466
+ leftOffset: sidebarWidth + 1,
467
+ topOffset: 0,
468
+ };
469
+ },
470
+ /**
471
+ * Centered with sidebar offset
472
+ * Use for important dialogs like new pane creation
473
+ */
474
+ centeredWithSidebar(sidebarWidth) {
475
+ return {
476
+ centered: true,
477
+ leftOffset: sidebarWidth,
478
+ };
479
+ },
480
+ /**
481
+ * Fully centered (no sidebar consideration)
482
+ * Use only when sidebar doesn't exist or doesn't matter
483
+ */
484
+ fullyCentered() {
485
+ return {
486
+ centered: true,
487
+ };
488
+ },
489
+ /**
490
+ * Large popup that takes up most of the available space
491
+ * Use for logs viewer and other content-heavy popups
492
+ */
493
+ large(sidebarWidth, terminalWidth, terminalHeight) {
494
+ return {
495
+ centered: false,
496
+ leftOffset: sidebarWidth + 1,
497
+ topOffset: 0,
498
+ width: Math.min(terminalWidth - sidebarWidth - 2, 100),
499
+ height: Math.floor(terminalHeight * 0.9),
500
+ };
501
+ },
502
+ };
503
+ //# sourceMappingURL=popup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popup.js","sourceRoot":"","sources":["../../src/utils/popup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAuCzD;;GAEG;AACH,SAAS,oBAAoB,CAAC,OAAqB;IACjD,MAAM,EACJ,KAAK,GAAG,EAAE,EACV,MAAM,GAAG,EAAE,EACX,QAAQ,GAAG,IAAI,EACf,CAAC,EACD,CAAC,EACD,UAAU,GAAG,CAAC,EACd,SAAS,GAAG,CAAC,GACd,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC;QACH,+CAA+C;QAC/C,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC,yBAAyB,EAAE,CAAC;QAE7F,IAAI,IAAY,CAAC;QACjB,IAAI,IAAY,CAAC;QAEjB,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YACnD,IAAI,GAAG,UAAU,CAAC;YAClB,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;aAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3D,IAAI,GAAG,CAAC,CAAC;YACT,IAAI,GAAG,CAAC,CAAC;QACX,CAAC;aAAM,IAAI,QAAQ,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACtC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;YAC1D,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,iBAAiB;YACjB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;QACvD,OAAO,EAAE,CAAC,EAAE,UAAU,IAAI,CAAC,EAAE,CAAC,EAAE,SAAS,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,UAAwB,EAAE;IAE1B,MAAM,EACJ,KAAK,GAAG,EAAE,EACV,MAAM,GAAG,EAAE,EACX,KAAK,EACL,QAAQ,GAAG,IAAI,EACf,CAAC,EACD,CAAC,EACD,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,WAAW,GAAG,QAAQ,EACtB,UAAU,GAAG,CAAC,EACd,SAAS,GAAG,CAAC,GACd,GAAG,OAAO,CAAC;IAEZ,oCAAoC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAE3E,2BAA2B;IAC3B,MAAM,IAAI,GAAa;QACrB,eAAe;QACf,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE;QACvB,IAAI,EAAE,IAAI,GAAG,GAAG;KACjB,CAAC;IAEF,4CAA4C;IAC5C,yDAAyD;IACzD,IAAI,WAAW,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,iFAAiF;IACjF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,YAAY,CAAC,eAAe,GAAG,CAAC,CAAC;IAErE,+BAA+B;IAC/B,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QACnD,iDAAiD;QACjD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAC3D,gCAAgC;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChC,CAAC;SAAM,IAAI,QAAQ,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACtC,+BAA+B;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,iBAAiB;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,QAAQ;IACR,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,8BAA8B;IAC9B,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,cAAc,GAAG,CAAC;IAEjE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,yCAAyC;QACzC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;YAC7C,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,6BAA6B;YAC7B,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBACxD,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;oBAEtC,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBACtC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClB,CAAC;oBAAC,MAAM,CAAC;wBACP,gCAAgC;wBAChC,OAAO,CAAC;4BACN,OAAO,EAAE,IAAI;4BACb,IAAI,EAAE,UAAU;yBACjB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,OAAO,CAAC;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,CAAC,OAAO;qBACrB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,6BAA6B;gBAC7B,OAAO,CAAC;oBACN,OAAO,EAAE,KAAK;oBACd,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,kCAAkC;YAClC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;YAED,OAAO,CAAC;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,OAAiB,EAAE,EACnB,UAAwB,EAAE;IAE1B,yDAAyD;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAE3E,0CAA0C;IAC1C,0EAA0E;IAC1E,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC9D,wCAAwC;QACxC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,IAAI,OAAO,GAAG,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,QAAQ,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAEhD,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAA4B,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,UAAwB,EAAE;IAE1B,MAAM,EACJ,KAAK,GAAG,EAAE,EACV,MAAM,GAAG,EAAE,EACX,KAAK,EACL,QAAQ,GAAG,IAAI,EACf,CAAC,EACD,CAAC,EACD,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,WAAW,GAAG,QAAQ,EACtB,UAAU,GAAG,CAAC,EACd,SAAS,GAAG,CAAC,GACd,GAAG,OAAO,CAAC;IAEZ,yBAAyB;IACzB,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE7C,oCAAoC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAE3E,2BAA2B;IAC3B,MAAM,IAAI,GAAa;QACrB,eAAe;QACf,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE;QACvB,IAAI,EAAE,IAAI,GAAG,GAAG;KACjB,CAAC;IAEF,4CAA4C;IAC5C,IAAI,WAAW,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,iFAAiF;IACjF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,YAAY,CAAC,eAAe,GAAG,CAAC,CAAC;IAErE,+BAA+B;IAC/B,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChC,CAAC;SAAM,IAAI,QAAQ,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,QAAQ;IACR,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,8BAA8B;IAC9B,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,cAAc,GAAG,CAAC;IAEjE,yCAAyC;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;QAC7C,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,EAAE;QACjE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,wCAAwC;YACxC,UAAU,CAAC,GAAG,EAAE;gBACd,6BAA6B;gBAC7B,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC;wBACH,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;wBACxD,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;wBAEtC,IAAI,CAAC;4BACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;4BACtC,OAAO,CAAC,MAAM,CAAC,CAAC;wBAClB,CAAC;wBAAC,MAAM,CAAC;4BACP,gCAAgC;4BAChC,OAAO,CAAC;gCACN,OAAO,EAAE,IAAI;gCACb,IAAI,EAAE,UAAU;6BACjB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBACpB,OAAO,CAAC;4BACN,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,KAAK,CAAC,OAAO;yBACrB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,6BAA6B;oBAC7B,OAAO,CAAC,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;oBAC9D,OAAO,CAAC;wBACN,OAAO,EAAE,KAAK;wBACd,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,oCAAoC;QAC/C,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,kCAAkC;YAClC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;YAED,OAAO,CAAC;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,EAAE,KAAK,CAAC,GAAI;QACf,MAAM;QACN,aAAa;QACb,IAAI,EAAE,GAAG,EAAE;YACT,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,qBAAqB;gBACrB,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9B,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,wCAAwC;YAC1C,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,UAAkB,EAClB,OAAiB,EAAE,EACnB,UAAwB,EAAE;IAE1B,MAAM,EACJ,KAAK,GAAG,EAAE,EACV,MAAM,GAAG,EAAE,EACX,KAAK,EACL,QAAQ,GAAG,IAAI,EACf,CAAC,EACD,CAAC,EACD,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,WAAW,GAAG,QAAQ,EACtB,UAAU,GAAG,CAAC,EACd,SAAS,GAAG,CAAC,GACd,GAAG,OAAO,CAAC;IAEZ,yBAAyB;IACzB,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE7C,yDAAyD;IACzD,iFAAiF;IACjF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAE3E,0CAA0C;IAC1C,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,IAAI,OAAO,GAAG,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,QAAQ,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAEhD,2BAA2B;IAC3B,MAAM,QAAQ,GAAa;QACzB,eAAe;QACf,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE;QACvB,IAAI,EAAE,IAAI,GAAG,GAAG;KACjB,CAAC;IAEF,4CAA4C;IAC5C,IAAI,WAAW,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC1C,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,iFAAiF;IACjF,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,YAAY,CAAC,eAAe,GAAG,CAAC,CAAC;IAEzE,+BAA+B;IAC/B,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;SAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAC3D,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpC,CAAC;SAAM,IAAI,QAAQ,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ;IACR,IAAI,KAAK,EAAE,CAAC;QACV,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,8BAA8B;IAC9B,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,QAAQ,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,cAAc,GAAG,CAAC;IAErE,yCAAyC;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;QAC7C,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,EAAE;QAC5D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,wCAAwC;YACxC,UAAU,CAAC,GAAG,EAAE;gBACd,oFAAoF;gBACpF,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC;wBACH,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;wBACxD,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;wBAEtC,IAAI,CAAC;4BACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;4BACtC,OAAO,CAAC,MAAM,CAAC,CAAC;wBAClB,CAAC;wBAAC,MAAM,CAAC;4BACP,gCAAgC;4BAChC,OAAO,CAAC;gCACN,OAAO,EAAE,IAAI;gCACb,IAAI,EAAE,UAAU;6BACV,CAAC,CAAC;wBACZ,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBACpB,OAAO,CAAC;4BACN,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,KAAK,CAAC,OAAO;yBACrB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,6BAA6B;oBAC7B,OAAO,CAAC,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;oBAC9D,OAAO,CAAC;wBACN,OAAO,EAAE,KAAK;wBACd,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,oCAAoC;QAC/C,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,kCAAkC;YAClC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;YAED,OAAO,CAAC;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,EAAE,KAAK,CAAC,GAAI;QACf,MAAM;QACN,aAAa;QACb,IAAI,EAAE,GAAG,EAAE;YACT,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,qBAAqB;gBACrB,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9B,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,wCAAwC;YAC1C,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QAE9C,0DAA0D;QAC1D,MAAM,WAAW,GAAG,WAAW,CAAC,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE3E,gEAAgE;QAChE,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,WAAW,CAAC,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;IAC9E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;QAE7C,qDAAqD;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,UAAU,IAAI,GAAG,CAAC;QAC3B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B;;;OAGG;IACH,QAAQ,CAAC,YAAoB;QAC3B,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,YAAY,GAAG,CAAC;YAC5B,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,YAAoB;QACtC,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,YAAY;SACzB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO;YACL,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAoB,EAAE,aAAqB,EAAE,cAAsB;QACvE,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,YAAY,GAAG,CAAC;YAC5B,SAAS,EAAE,CAAC;YACZ,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,YAAY,GAAG,CAAC,EAAE,GAAG,CAAC;YACtD,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC;SACzC,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shared utility for post-pane cleanup operations
3
+ * Handles welcome pane recreation and layout recalculation when last pane is removed
4
+ */
5
+ /**
6
+ * Recreate welcome pane and recalculate layout after the last pane is removed
7
+ * This should be called whenever panes.length transitions from >0 to 0
8
+ *
9
+ * @param projectRoot - The project root directory
10
+ */
11
+ export declare function handleLastPaneRemoved(projectRoot: string): Promise<void>;
12
+ //# sourceMappingURL=postPaneCleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postPaneCleanup.d.ts","sourceRoot":"","sources":["../../src/utils/postPaneCleanup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyD9E"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Shared utility for post-pane cleanup operations
3
+ * Handles welcome pane recreation and layout recalculation when last pane is removed
4
+ */
5
+ import { LogService } from '../services/LogService.js';
6
+ import { TmuxService } from '../services/TmuxService.js';
7
+ /**
8
+ * Recreate welcome pane and recalculate layout after the last pane is removed
9
+ * This should be called whenever panes.length transitions from >0 to 0
10
+ *
11
+ * @param projectRoot - The project root directory
12
+ */
13
+ export async function handleLastPaneRemoved(projectRoot) {
14
+ const tmuxService = TmuxService.getInstance();
15
+ try {
16
+ // Get the ACTUAL current control pane ID from tmux (don't trust config)
17
+ let controlPaneId;
18
+ try {
19
+ const { execSync } = await import('child_process');
20
+ controlPaneId = execSync('tmux display-message -p "#{pane_id}"', {
21
+ encoding: 'utf-8',
22
+ stdio: 'pipe'
23
+ }).trim();
24
+ }
25
+ catch (error) {
26
+ LogService.getInstance().debug('Failed to get current pane ID from tmux', 'postPaneCleanup');
27
+ return;
28
+ }
29
+ if (!controlPaneId) {
30
+ LogService.getInstance().debug('No controlPaneId from tmux, skipping welcome pane recreation', 'postPaneCleanup');
31
+ return;
32
+ }
33
+ LogService.getInstance().debug(`Last pane removed, recreating welcome pane and recalculating layout (controlPaneId: ${controlPaneId})`, 'postPaneCleanup');
34
+ // Recreate welcome pane
35
+ const { createWelcomePaneCoordinated } = await import('./welcomePaneManager.js');
36
+ const created = await createWelcomePaneCoordinated(projectRoot, controlPaneId);
37
+ if (created) {
38
+ LogService.getInstance().debug('Recreated welcome pane after last pane removed', 'postPaneCleanup');
39
+ }
40
+ else {
41
+ LogService.getInstance().debug('Failed to recreate welcome pane', 'postPaneCleanup');
42
+ }
43
+ // Recalculate layout to fix sidebar size
44
+ const { recalculateAndApplyLayout } = await import('./layoutManager.js');
45
+ const dimensions = await tmuxService.getTerminalDimensions();
46
+ recalculateAndApplyLayout(controlPaneId, [], // No content panes
47
+ dimensions.width, dimensions.height);
48
+ LogService.getInstance().debug('Recalculated layout after last pane removed', 'postPaneCleanup');
49
+ }
50
+ catch (error) {
51
+ LogService.getInstance().error('Failed to handle last pane removal', 'postPaneCleanup', undefined, error instanceof Error ? error : undefined);
52
+ }
53
+ }
54
+ //# sourceMappingURL=postPaneCleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postPaneCleanup.js","sourceRoot":"","sources":["../../src/utils/postPaneCleanup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,WAAmB;IAC7D,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAE9C,IAAI,CAAC;QACH,wEAAwE;QACxE,IAAI,aAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YACnD,aAAa,GAAG,QAAQ,CAAC,sCAAsC,EAAE;gBAC/D,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,MAAM;aACd,CAAC,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,yCAAyC,EAAE,iBAAiB,CAAC,CAAC;YAC7F,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,8DAA8D,EAAE,iBAAiB,CAAC,CAAC;YAClH,OAAO;QACT,CAAC;QAED,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAC5B,uFAAuF,aAAa,GAAG,EACvG,iBAAiB,CAClB,CAAC;QAEF,wBAAwB;QACxB,MAAM,EAAE,4BAA4B,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,MAAM,4BAA4B,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAE/E,IAAI,OAAO,EAAE,CAAC;YACZ,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,gDAAgD,EAAE,iBAAiB,CAAC,CAAC;QACtG,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,iCAAiC,EAAE,iBAAiB,CAAC,CAAC;QACvF,CAAC;QAED,yCAAyC;QACzC,MAAM,EAAE,yBAAyB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,qBAAqB,EAAE,CAAC;QAE7D,yBAAyB,CACvB,aAAa,EACb,EAAE,EAAE,mBAAmB;QACvB,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,MAAM,CAClB,CAAC;QAEF,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,6CAA6C,EAAE,iBAAiB,CAAC,CAAC;IACnG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAC5B,oCAAoC,EACpC,iBAAiB,EACjB,SAAS,EACT,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Shell Pane Detection Utility
3
+ *
4
+ * Detects manually-created tmux panes and determines their shell type.
5
+ */
6
+ import type { DmuxPane } from '../types.js';
7
+ /**
8
+ * Detects the shell type running in a tmux pane
9
+ * @param paneId The tmux pane ID (e.g., %1)
10
+ * @returns Shell type (bash, zsh, fish, etc) or 'shell' as fallback
11
+ */
12
+ export declare function detectShellType(paneId: string): Promise<string>;
13
+ /**
14
+ * Information about an untracked pane
15
+ */
16
+ export interface UntrackedPaneInfo {
17
+ paneId: string;
18
+ title: string;
19
+ command: string;
20
+ }
21
+ /**
22
+ * Gets all untracked tmux panes (panes not in dmux config)
23
+ * @param sessionName The tmux session name
24
+ * @param trackedPaneIds Array of pane IDs already tracked by dmux
25
+ * @param controlPaneId Optional control pane ID to exclude
26
+ * @param welcomePaneId Optional welcome pane ID to exclude
27
+ * @returns Array of untracked pane information
28
+ */
29
+ export declare function getUntrackedPanes(sessionName: string, trackedPaneIds: string[], controlPaneId?: string, welcomePaneId?: string): Promise<UntrackedPaneInfo[]>;
30
+ /**
31
+ * Creates a DmuxPane object for a shell pane
32
+ * @param paneId The tmux pane ID
33
+ * @param nextId The next available dmux ID number
34
+ * @param existingTitle Optional existing title to preserve
35
+ * @returns DmuxPane object for the shell pane
36
+ */
37
+ export declare function createShellPane(paneId: string, nextId: number, existingTitle?: string): Promise<DmuxPane>;
38
+ /**
39
+ * Gets the next available dmux ID number
40
+ * @param existingPanes Array of existing panes
41
+ * @returns Next available ID number
42
+ */
43
+ export declare function getNextDmuxId(existingPanes: DmuxPane[]): number;
44
+ //# sourceMappingURL=shellPaneDetection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shellPaneDetection.d.ts","sourceRoot":"","sources":["../../src/utils/shellPaneDetection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6DrE;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EAAE,EACxB,aAAa,CAAC,EAAE,MAAM,EACtB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAgE9B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiC/G;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,CAc/D"}