dmux 5.2.0 → 5.4.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 (240) hide show
  1. package/README.md +9 -5
  2. package/dist/DmuxApp.d.ts.map +1 -1
  3. package/dist/DmuxApp.js +100 -56
  4. package/dist/DmuxApp.js.map +1 -1
  5. package/dist/actions/implementations/closeAction.d.ts.map +1 -1
  6. package/dist/actions/implementations/closeAction.js +84 -13
  7. package/dist/actions/implementations/closeAction.js.map +1 -1
  8. package/dist/actions/implementations/index.d.ts +1 -0
  9. package/dist/actions/implementations/index.d.ts.map +1 -1
  10. package/dist/actions/implementations/index.js +3 -0
  11. package/dist/actions/implementations/index.js.map +1 -1
  12. package/dist/actions/implementations/mergeAction.d.ts.map +1 -1
  13. package/dist/actions/implementations/mergeAction.js +59 -19
  14. package/dist/actions/implementations/mergeAction.js.map +1 -1
  15. package/dist/actions/index.d.ts.map +1 -1
  16. package/dist/actions/index.js +18 -0
  17. package/dist/actions/index.js.map +1 -1
  18. package/dist/actions/merge/conflictResolution.d.ts.map +1 -1
  19. package/dist/actions/merge/conflictResolution.js +17 -12
  20. package/dist/actions/merge/conflictResolution.js.map +1 -1
  21. package/dist/actions/merge/issueHandlers/mainDirtyHandler.d.ts.map +1 -1
  22. package/dist/actions/merge/issueHandlers/mainDirtyHandler.js +8 -6
  23. package/dist/actions/merge/issueHandlers/mainDirtyHandler.js.map +1 -1
  24. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.d.ts +1 -1
  25. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.d.ts.map +1 -1
  26. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.js +9 -2
  27. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.js.map +1 -1
  28. package/dist/actions/merge/multiMergeOrchestrator.d.ts.map +1 -1
  29. package/dist/actions/merge/multiMergeOrchestrator.js +33 -14
  30. package/dist/actions/merge/multiMergeOrchestrator.js.map +1 -1
  31. package/dist/actions/types.d.ts +5 -2
  32. package/dist/actions/types.d.ts.map +1 -1
  33. package/dist/actions/types.js +28 -1
  34. package/dist/actions/types.js.map +1 -1
  35. package/dist/components/dialogs/AgentChoiceDialog.d.ts +2 -1
  36. package/dist/components/dialogs/AgentChoiceDialog.d.ts.map +1 -1
  37. package/dist/components/dialogs/AgentChoiceDialog.js +4 -5
  38. package/dist/components/dialogs/AgentChoiceDialog.js.map +1 -1
  39. package/dist/components/panes/PaneCard.d.ts +1 -3
  40. package/dist/components/panes/PaneCard.d.ts.map +1 -1
  41. package/dist/components/panes/PaneCard.js +54 -37
  42. package/dist/components/panes/PaneCard.js.map +1 -1
  43. package/dist/components/panes/PanesGrid.d.ts +1 -0
  44. package/dist/components/panes/PanesGrid.d.ts.map +1 -1
  45. package/dist/components/panes/PanesGrid.js +60 -78
  46. package/dist/components/panes/PanesGrid.js.map +1 -1
  47. package/dist/components/popups/agentChoicePopup.d.ts +2 -2
  48. package/dist/components/popups/agentChoicePopup.js +90 -56
  49. package/dist/components/popups/agentChoicePopup.js.map +1 -1
  50. package/dist/components/popups/agentChoiceSelection.d.ts +8 -0
  51. package/dist/components/popups/agentChoiceSelection.d.ts.map +1 -0
  52. package/dist/components/popups/agentChoiceSelection.js +14 -0
  53. package/dist/components/popups/agentChoiceSelection.js.map +1 -0
  54. package/dist/components/popups/diffPeekPopup.d.ts +7 -0
  55. package/dist/components/popups/diffPeekPopup.d.ts.map +1 -0
  56. package/dist/components/popups/diffPeekPopup.js +99 -0
  57. package/dist/components/popups/diffPeekPopup.js.map +1 -0
  58. package/dist/components/popups/enabledAgentsPopup.d.ts +7 -0
  59. package/dist/components/popups/enabledAgentsPopup.d.ts.map +1 -0
  60. package/dist/components/popups/enabledAgentsPopup.js +196 -0
  61. package/dist/components/popups/enabledAgentsPopup.js.map +1 -0
  62. package/dist/components/popups/kebabMenuPopup.js +2 -2
  63. package/dist/components/popups/kebabMenuPopup.js.map +1 -1
  64. package/dist/components/popups/mergeUncommittedChoicePopup.d.ts +7 -0
  65. package/dist/components/popups/mergeUncommittedChoicePopup.d.ts.map +1 -0
  66. package/dist/components/popups/mergeUncommittedChoicePopup.js +289 -0
  67. package/dist/components/popups/mergeUncommittedChoicePopup.js.map +1 -0
  68. package/dist/components/popups/newPanePopup.js +8 -0
  69. package/dist/components/popups/newPanePopup.js.map +1 -1
  70. package/dist/components/popups/reopenWorktreePopup.js +33 -3
  71. package/dist/components/popups/reopenWorktreePopup.js.map +1 -1
  72. package/dist/components/popups/settingsPopup.js +346 -25
  73. package/dist/components/popups/settingsPopup.js.map +1 -1
  74. package/dist/components/popups/shortcutsPopup.js +17 -13
  75. package/dist/components/popups/shortcutsPopup.js.map +1 -1
  76. package/dist/components/popups/singleAgentChoicePopup.d.ts +7 -0
  77. package/dist/components/popups/singleAgentChoicePopup.d.ts.map +1 -0
  78. package/dist/components/popups/singleAgentChoicePopup.js +95 -0
  79. package/dist/components/popups/singleAgentChoicePopup.js.map +1 -0
  80. package/dist/components/ui/FooterHelp.js +1 -1
  81. package/dist/components/ui/FooterHelp.js.map +1 -1
  82. package/dist/constants/layout.d.ts +9 -0
  83. package/dist/constants/layout.d.ts.map +1 -0
  84. package/dist/constants/layout.js +9 -0
  85. package/dist/constants/layout.js.map +1 -0
  86. package/dist/hooks/useActionSystem.d.ts +1 -1
  87. package/dist/hooks/useActionSystem.d.ts.map +1 -1
  88. package/dist/hooks/useActionSystem.js +1 -1
  89. package/dist/hooks/useActionSystem.js.map +1 -1
  90. package/dist/hooks/useAgentDetection.d.ts +2 -2
  91. package/dist/hooks/useAgentDetection.d.ts.map +1 -1
  92. package/dist/hooks/useAgentDetection.js +18 -88
  93. package/dist/hooks/useAgentDetection.js.map +1 -1
  94. package/dist/hooks/useAutoUpdater.d.ts.map +1 -1
  95. package/dist/hooks/useAutoUpdater.js +2 -4
  96. package/dist/hooks/useAutoUpdater.js.map +1 -1
  97. package/dist/hooks/useInputHandling.d.ts +5 -0
  98. package/dist/hooks/useInputHandling.d.ts.map +1 -1
  99. package/dist/hooks/useInputHandling.js +230 -22
  100. package/dist/hooks/useInputHandling.js.map +1 -1
  101. package/dist/hooks/useNavigation.d.ts +1 -1
  102. package/dist/hooks/useNavigation.d.ts.map +1 -1
  103. package/dist/hooks/useNavigation.js +26 -4
  104. package/dist/hooks/useNavigation.js.map +1 -1
  105. package/dist/hooks/usePaneCreation.d.ts +5 -2
  106. package/dist/hooks/usePaneCreation.d.ts.map +1 -1
  107. package/dist/hooks/usePaneCreation.js +123 -23
  108. package/dist/hooks/usePaneCreation.js.map +1 -1
  109. package/dist/hooks/usePaneSync.d.ts +1 -1
  110. package/dist/hooks/usePaneSync.d.ts.map +1 -1
  111. package/dist/hooks/usePaneSync.js +14 -1
  112. package/dist/hooks/usePaneSync.js.map +1 -1
  113. package/dist/hooks/usePanes.d.ts.map +1 -1
  114. package/dist/hooks/usePanes.js +19 -5
  115. package/dist/hooks/usePanes.js.map +1 -1
  116. package/dist/hooks/useServices.d.ts +2 -1
  117. package/dist/hooks/useServices.d.ts.map +1 -1
  118. package/dist/hooks/useServices.js +4 -2
  119. package/dist/hooks/useServices.js.map +1 -1
  120. package/dist/index.js +200 -21
  121. package/dist/index.js.map +1 -1
  122. package/dist/layout/LayoutCalculator.d.ts.map +1 -1
  123. package/dist/layout/LayoutCalculator.js +4 -1
  124. package/dist/layout/LayoutCalculator.js.map +1 -1
  125. package/dist/layout/SpacerManager.d.ts.map +1 -1
  126. package/dist/layout/SpacerManager.js +2 -1
  127. package/dist/layout/SpacerManager.js.map +1 -1
  128. package/dist/services/PaneEventService.d.ts.map +1 -1
  129. package/dist/services/PaneEventService.js +2 -5
  130. package/dist/services/PaneEventService.js.map +1 -1
  131. package/dist/services/PaneWorkerManager.d.ts.map +1 -1
  132. package/dist/services/PaneWorkerManager.js +2 -14
  133. package/dist/services/PaneWorkerManager.js.map +1 -1
  134. package/dist/services/PopupManager.d.ts +14 -2
  135. package/dist/services/PopupManager.d.ts.map +1 -1
  136. package/dist/services/PopupManager.js +162 -24
  137. package/dist/services/PopupManager.js.map +1 -1
  138. package/dist/services/TmuxHookManager.d.ts.map +1 -1
  139. package/dist/services/TmuxHookManager.js +4 -2
  140. package/dist/services/TmuxHookManager.js.map +1 -1
  141. package/dist/services/TmuxService.d.ts +9 -0
  142. package/dist/services/TmuxService.d.ts.map +1 -1
  143. package/dist/services/TmuxService.js +18 -2
  144. package/dist/services/TmuxService.js.map +1 -1
  145. package/dist/types.d.ts +11 -3
  146. package/dist/types.d.ts.map +1 -1
  147. package/dist/utils/agentDetection.d.ts +15 -8
  148. package/dist/utils/agentDetection.d.ts.map +1 -1
  149. package/dist/utils/agentDetection.js +49 -73
  150. package/dist/utils/agentDetection.js.map +1 -1
  151. package/dist/utils/agentLaunch.d.ts +60 -2
  152. package/dist/utils/agentLaunch.d.ts.map +1 -1
  153. package/dist/utils/agentLaunch.js +490 -41
  154. package/dist/utils/agentLaunch.js.map +1 -1
  155. package/dist/utils/agentPromptDispatch.d.ts +33 -0
  156. package/dist/utils/agentPromptDispatch.d.ts.map +1 -0
  157. package/dist/utils/agentPromptDispatch.js +99 -0
  158. package/dist/utils/agentPromptDispatch.js.map +1 -0
  159. package/dist/utils/asciiArt.d.ts.map +1 -1
  160. package/dist/utils/asciiArt.js +6 -7
  161. package/dist/utils/asciiArt.js.map +1 -1
  162. package/dist/utils/attachAgent.d.ts +25 -0
  163. package/dist/utils/attachAgent.d.ts.map +1 -0
  164. package/dist/utils/attachAgent.js +139 -0
  165. package/dist/utils/attachAgent.js.map +1 -0
  166. package/dist/utils/conflictResolutionPane.d.ts +2 -1
  167. package/dist/utils/conflictResolutionPane.d.ts.map +1 -1
  168. package/dist/utils/conflictResolutionPane.js +48 -53
  169. package/dist/utils/conflictResolutionPane.js.map +1 -1
  170. package/dist/utils/controlPaneRecovery.d.ts +2 -0
  171. package/dist/utils/controlPaneRecovery.d.ts.map +1 -0
  172. package/dist/utils/controlPaneRecovery.js +156 -0
  173. package/dist/utils/controlPaneRecovery.js.map +1 -0
  174. package/dist/utils/devSource.d.ts +7 -0
  175. package/dist/utils/devSource.d.ts.map +1 -0
  176. package/dist/utils/devSource.js +19 -0
  177. package/dist/utils/devSource.js.map +1 -0
  178. package/dist/utils/devWatchCommand.d.ts +8 -0
  179. package/dist/utils/devWatchCommand.d.ts.map +1 -0
  180. package/dist/utils/devWatchCommand.js +14 -0
  181. package/dist/utils/devWatchCommand.js.map +1 -0
  182. package/dist/utils/geminiTrust.d.ts +8 -0
  183. package/dist/utils/geminiTrust.d.ts.map +1 -0
  184. package/dist/utils/geminiTrust.js +67 -0
  185. package/dist/utils/geminiTrust.js.map +1 -0
  186. package/dist/utils/generated-agents-doc.d.ts +1 -1
  187. package/dist/utils/generated-agents-doc.js +3 -3
  188. package/dist/utils/hooksDocs.d.ts +2 -9
  189. package/dist/utils/hooksDocs.d.ts.map +1 -1
  190. package/dist/utils/hooksDocs.js +26 -6
  191. package/dist/utils/hooksDocs.js.map +1 -1
  192. package/dist/utils/layoutManager.d.ts +5 -1
  193. package/dist/utils/layoutManager.d.ts.map +1 -1
  194. package/dist/utils/layoutManager.js +103 -26
  195. package/dist/utils/layoutManager.js.map +1 -1
  196. package/dist/utils/paneCreation.d.ts +8 -2
  197. package/dist/utils/paneCreation.d.ts.map +1 -1
  198. package/dist/utils/paneCreation.js +82 -105
  199. package/dist/utils/paneCreation.js.map +1 -1
  200. package/dist/utils/paneGrouping.d.ts.map +1 -1
  201. package/dist/utils/paneGrouping.js +30 -0
  202. package/dist/utils/paneGrouping.js.map +1 -1
  203. package/dist/utils/projectActions.d.ts +5 -0
  204. package/dist/utils/projectActions.d.ts.map +1 -1
  205. package/dist/utils/projectActions.js +15 -4
  206. package/dist/utils/projectActions.js.map +1 -1
  207. package/dist/utils/reopenWorktree.d.ts +1 -1
  208. package/dist/utils/reopenWorktree.d.ts.map +1 -1
  209. package/dist/utils/reopenWorktree.js +23 -31
  210. package/dist/utils/reopenWorktree.js.map +1 -1
  211. package/dist/utils/runtimePaths.d.ts +2 -0
  212. package/dist/utils/runtimePaths.d.ts.map +1 -0
  213. package/dist/utils/runtimePaths.js +8 -0
  214. package/dist/utils/runtimePaths.js.map +1 -0
  215. package/dist/utils/settingsManager.d.ts +3 -0
  216. package/dist/utils/settingsManager.d.ts.map +1 -1
  217. package/dist/utils/settingsManager.js +200 -9
  218. package/dist/utils/settingsManager.js.map +1 -1
  219. package/dist/utils/systemCheck.d.ts.map +1 -1
  220. package/dist/utils/systemCheck.js +0 -13
  221. package/dist/utils/systemCheck.js.map +1 -1
  222. package/dist/utils/tmux.d.ts +5 -1
  223. package/dist/utils/tmux.d.ts.map +1 -1
  224. package/dist/utils/tmux.js +23 -5
  225. package/dist/utils/tmux.js.map +1 -1
  226. package/dist/utils/tmuxHookCommands.d.ts +14 -0
  227. package/dist/utils/tmuxHookCommands.d.ts.map +1 -0
  228. package/dist/utils/tmuxHookCommands.js +30 -0
  229. package/dist/utils/tmuxHookCommands.js.map +1 -0
  230. package/dist/utils/welcomePane.d.ts +2 -1
  231. package/dist/utils/welcomePane.d.ts.map +1 -1
  232. package/dist/utils/welcomePane.js +3 -2
  233. package/dist/utils/welcomePane.js.map +1 -1
  234. package/dist/utils/welcomePaneManager.js +1 -1
  235. package/dist/utils/welcomePaneManager.js.map +1 -1
  236. package/dist/workers/PaneWorker.js.map +1 -1
  237. package/dist/workers/WorkerMessages.d.ts +2 -1
  238. package/dist/workers/WorkerMessages.d.ts.map +1 -1
  239. package/dist/workers/WorkerMessages.js.map +1 -1
  240. package/package.json +11 -6
package/README.md CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
  ---
19
19
 
20
- <img src="./dmux.gif" alt="dmux demo" width="100%" />
20
+ <img src="./dmux.webp" alt="dmux demo" width="100%" />
21
21
 
22
22
  ## Install
23
23
 
@@ -32,15 +32,15 @@ cd /path/to/your/project
32
32
  dmux
33
33
  ```
34
34
 
35
- Press `n` to create a new pane, type a prompt, pick an agent, and dmux handles the rest &mdash; worktree, branch, and agent launch.
35
+ Press `n` to create a new pane, type a prompt, pick one or more agents (or none for a plain terminal), and dmux handles the rest &mdash; worktree, branch, and agent launch.
36
36
 
37
37
  ## What it does
38
38
 
39
39
  dmux creates a tmux pane for each task. Every pane gets its own git worktree and branch so agents work in complete isolation. When a task is done, press `m` to merge it back into your main branch.
40
40
 
41
41
  - **Worktree isolation** &mdash; each pane is a full working copy, no conflicts between agents
42
- - **Agent support** &mdash; Claude Code, Codex, and OpenCode
43
- - **A/B launches** &mdash; run two agents on the same prompt side-by-side
42
+ - **Agent support** &mdash; Claude Code, Codex, OpenCode, Cline CLI, Gemini CLI, Qwen CLI, Amp CLI, pi CLI, Cursor CLI, Copilot CLI, and Crush CLI
43
+ - **Multi-select launches** &mdash; choose any combination of enabled agents per prompt
44
44
  - **AI naming** &mdash; branches and commit messages generated automatically
45
45
  - **Smart merging** &mdash; auto-commit, merge, and clean up in one step
46
46
  - **Multi-project** &mdash; add multiple repos to the same session
@@ -64,13 +64,17 @@ dmux creates a tmux pane for each task. Every pane gets its own git worktree and
64
64
  - tmux 3.0+
65
65
  - Node.js 18+
66
66
  - Git 2.20+
67
- - At least one agent: [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [Codex](https://github.com/openai/codex), or [OpenCode](https://github.com/opencode-ai/opencode)
67
+ - At least one supported agent CLI (for example [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [Codex](https://github.com/openai/codex), [OpenCode](https://github.com/opencode-ai/opencode), [Cline CLI](https://docs.cline.bot/cline-cli/getting-started), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [Qwen CLI](https://github.com/QwenLM/qwen-code), [Amp CLI](https://ampcode.com/manual), [pi CLI](https://www.npmjs.com/package/@mariozechner/pi-coding-agent), [Cursor CLI](https://docs.cursor.com/en/cli/overview), [Copilot CLI](https://github.com/github/copilot-cli), [Crush CLI](https://github.com/charmbracelet/crush))
68
68
  - [OpenRouter API key](https://openrouter.ai/) (optional, for AI branch names and commit messages)
69
69
 
70
70
  ## Documentation
71
71
 
72
72
  Full documentation is available at **[dmux.ai](https://dmux.ai)**, including setup guides, configuration, and hooks.
73
73
 
74
+ ## Contributing
75
+
76
+ See **[CONTRIBUTING.md](./CONTRIBUTING.md)** for the recommended local "dmux-on-dmux" development loop, hook setup, and PR workflow.
77
+
74
78
  ## License
75
79
 
76
80
  MIT
@@ -1 +1 @@
1
- {"version":3,"file":"DmuxApp.d.ts","sourceRoot":"","sources":["../src/DmuxApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAiD3D,OAAO,KAAK,EAEV,YAAY,EACb,MAAM,YAAY,CAAA;AAenB,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA41BnC,CAAA;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"DmuxApp.d.ts","sourceRoot":"","sources":["../src/DmuxApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAiD3D,OAAO,KAAK,EAEV,YAAY,EACb,MAAM,YAAY,CAAA;AAiBnB,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAi6BnC,CAAA;AAED,eAAe,OAAO,CAAA"}
package/dist/DmuxApp.js CHANGED
@@ -7,7 +7,6 @@ import useProjectSettings from "./hooks/useProjectSettings.js";
7
7
  import useTerminalWidth from "./hooks/useTerminalWidth.js";
8
8
  import useNavigation from "./hooks/useNavigation.js";
9
9
  import useAutoUpdater from "./hooks/useAutoUpdater.js";
10
- import useAgentDetection from "./hooks/useAgentDetection.js";
11
10
  import useAgentStatus from "./hooks/useAgentStatus.js";
12
11
  import usePaneRunner from "./hooks/usePaneRunner.js";
13
12
  import usePaneCreation from "./hooks/usePaneCreation.js";
@@ -28,9 +27,10 @@ import { useServices } from "./hooks/useServices.js";
28
27
  import { PaneLifecycleManager } from "./services/PaneLifecycleManager.js";
29
28
  import { reopenWorktree } from "./utils/reopenWorktree.js";
30
29
  import { fileURLToPath } from "url";
31
- import { dirname } from "path";
32
- import { getAgentSlugSuffix, } from "./utils/agentLaunch.js";
33
- import { generateSlug } from "./utils/slug.js";
30
+ import { dirname, resolve as resolvePath } from "path";
31
+ import { resolveEnabledAgentsSelection, } from "./utils/agentLaunch.js";
32
+ import { resolveNextDevSourcePath } from "./utils/devSource.js";
33
+ import { buildDevWatchRespawnCommand } from "./utils/devWatchCommand.js";
34
34
  const __filename = fileURLToPath(import.meta.url);
35
35
  const __dirname = dirname(__filename);
36
36
  import PanesGrid from "./components/panes/PanesGrid.js";
@@ -42,10 +42,12 @@ import UpdatingIndicator from "./components/indicators/UpdatingIndicator.js";
42
42
  import FooterHelp from "./components/ui/FooterHelp.js";
43
43
  import TmuxHooksPromptDialog from "./components/dialogs/TmuxHooksPromptDialog.js";
44
44
  import { PaneEventService } from "./services/PaneEventService.js";
45
- import { buildProjectActionLayout, buildVisualNavigationRows, } from "./utils/projectActions.js";
45
+ import { buildProjectActionLayout, buildVisualNavigationRows, buildGroupStartRows, } from "./utils/projectActions.js";
46
+ import { getPaneProjectRoot } from "./utils/paneProject.js";
46
47
  const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoot, autoUpdater, controlPaneId, }) => {
47
48
  const { stdout } = useStdout();
48
49
  const terminalHeight = stdout?.rows || 40;
50
+ const isDevMode = process.env.DMUX_DEV === "true";
49
51
  /* panes state moved to usePanes */
50
52
  const [selectedIndex, setSelectedIndex] = useState(0);
51
53
  const { statusMessage, setStatusMessage } = useStatusMessages();
@@ -63,9 +65,9 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
63
65
  const { exit } = useApp();
64
66
  // Flag to ignore input temporarily after popup closes (prevents buffered keys)
65
67
  const [ignoreInput, setIgnoreInput] = useState(false);
66
- // Agent selection state
67
- const { availableAgents } = useAgentDetection();
68
- const [agentChoice, setAgentChoice] = useState(null);
68
+ // Agent selection is settings-driven.
69
+ // Installation checks are performed lazily in the Enabled Agents settings popup.
70
+ const availableAgents = resolveEnabledAgentsSelection(settingsManager.getSettings().enabledAgents);
69
71
  // Popup support detection
70
72
  const [popupsSupported, setPopupsSupported] = useState(false);
71
73
  // Track terminal dimensions for responsive layout
@@ -150,7 +152,7 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
150
152
  });
151
153
  // Spinner animation and branch detection now handled in hooks
152
154
  // Pane creation
153
- const { createNewPane: createNewPaneHook } = usePaneCreation({
155
+ const { createNewPane: createNewPaneHook, createPanesForAgents: createPanesForAgentsHook, } = usePaneCreation({
154
156
  panes,
155
157
  savePanes,
156
158
  projectName,
@@ -167,10 +169,11 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
167
169
  sidebarWidth: SIDEBAR_WIDTH,
168
170
  projectRoot: projectRoot || process.cwd(),
169
171
  popupsSupported,
172
+ isDevMode,
170
173
  terminalWidth,
171
174
  terminalHeight,
175
+ controlPaneId,
172
176
  availableAgents,
173
- agentChoice,
174
177
  settingsManager,
175
178
  projectSettings,
176
179
  // Callbacks
@@ -281,12 +284,6 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
281
284
  };
282
285
  }, []);
283
286
  // Update checking moved to useAutoUpdater
284
- // Set default agent choice when detection completes
285
- useEffect(() => {
286
- if (agentChoice == null && availableAgents.length > 0) {
287
- setAgentChoice(availableAgents[0] || "claude");
288
- }
289
- }, [availableAgents]);
290
287
  // Welcome pane is now fully event-based:
291
288
  // - Created at startup (in src/index.ts)
292
289
  // - Destroyed when first pane is created (in paneCreation.ts)
@@ -295,12 +292,14 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
295
292
  // loadPanes moved to usePanes
296
293
  // getPanePositions moved to utils/tmux
297
294
  const sessionProjectRoot = projectRoot || process.cwd();
295
+ const activeDevSourcePath = isDevMode ? process.cwd() : undefined;
298
296
  const projectActionLayout = useMemo(() => buildProjectActionLayout(panes, sessionProjectRoot, projectName), [panes, sessionProjectRoot, projectName]);
299
297
  const navigationRows = useMemo(() => isLoading
300
298
  ? projectActionLayout.groups.flatMap((group) => group.panes.map((entry) => [entry.index]))
301
299
  : buildVisualNavigationRows(projectActionLayout), [isLoading, projectActionLayout]);
300
+ const groupStartRows = useMemo(() => isLoading ? [] : buildGroupStartRows(projectActionLayout), [isLoading, projectActionLayout]);
302
301
  // Navigation logic moved to hook
303
- const { getCardGridPosition, findCardInDirection } = useNavigation(navigationRows);
302
+ const { getCardGridPosition, findCardInDirection } = useNavigation(navigationRows, groupStartRows);
304
303
  // findCardInDirection provided by useNavigation
305
304
  // savePanes moved to usePanes
306
305
  // applySmartLayout moved to utils/tmux
@@ -308,45 +307,30 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
308
307
  const handlePaneCreationWithAgent = async (prompt, targetProjectRoot) => {
309
308
  const agents = availableAgents;
310
309
  const createPanesForAgents = async (selectedAgents) => {
311
- const dedupedAgents = selectedAgents.filter((agent, index) => selectedAgents.indexOf(agent) === index);
312
- let panesForCreation = panes;
313
- const isMultiLaunch = dedupedAgents.length > 1;
314
- const slugBase = isMultiLaunch ? await generateSlug(prompt) : undefined;
315
- for (const selectedAgent of dedupedAgents) {
316
- const pane = await createNewPaneHook(prompt, selectedAgent, {
317
- existingPanes: panesForCreation,
318
- slugSuffix: isMultiLaunch
319
- ? getAgentSlugSuffix(selectedAgent)
320
- : undefined,
321
- slugBase,
322
- targetProjectRoot,
323
- });
324
- if (!pane) {
325
- return;
326
- }
327
- panesForCreation = [...panesForCreation, pane];
328
- }
310
+ await createPanesForAgentsHook(prompt, selectedAgents, {
311
+ existingPanes: panes,
312
+ targetProjectRoot,
313
+ });
329
314
  };
330
315
  if (agents.length === 0) {
331
- await createNewPaneHook(prompt, undefined, { targetProjectRoot });
316
+ await createNewPaneHook(prompt, undefined, {
317
+ targetProjectRoot,
318
+ skipAgentSelection: true,
319
+ });
320
+ return;
332
321
  }
333
- else if (agents.length === 1) {
334
- await createPanesForAgents([agents[0]]);
322
+ // Always show the checklist when at least one enabled agent exists.
323
+ // This preserves the "select none for terminal" behavior consistently.
324
+ const selectedAgents = await popupManager.launchAgentChoicePopup();
325
+ if (selectedAgents === null) {
326
+ return;
335
327
  }
336
- else {
337
- // Multiple agents available - check for default agent setting first
338
- const settings = settingsManager.getSettings();
339
- if (settings.defaultAgent && agents.includes(settings.defaultAgent)) {
340
- await createPanesForAgents([settings.defaultAgent]);
341
- }
342
- else {
343
- // Show agent choice popup
344
- const selectedAgents = await popupManager.launchAgentChoicePopup();
345
- if (selectedAgents && selectedAgents.length > 0) {
346
- await createPanesForAgents(selectedAgents);
347
- }
348
- }
328
+ if (selectedAgents.length === 0) {
329
+ setStatusMessage("Select at least one agent");
330
+ setTimeout(() => setStatusMessage(""), STATUS_MESSAGE_DURATION_SHORT);
331
+ return;
349
332
  }
333
+ await createPanesForAgents(selectedAgents);
350
334
  };
351
335
  // Helper function to reopen a closed worktree
352
336
  const handleReopenWorktree = async (slug, worktreePath, targetProjectRoot) => {
@@ -377,6 +361,39 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
377
361
  setIsCreatingPane(false);
378
362
  }
379
363
  };
364
+ const restartDevSessionAtSource = async (sourcePath) => {
365
+ if (!isDevMode)
366
+ return;
367
+ const tmuxService = TmuxService.getInstance();
368
+ const sourcePaneId = controlPaneId || await tmuxService.getCurrentPaneId();
369
+ await tmuxService.respawnPane(sourcePaneId, buildDevWatchRespawnCommand(sourcePath));
370
+ };
371
+ const handleSetDevSourceFromPane = async (pane) => {
372
+ if (!isDevMode) {
373
+ setStatusMessage("Source switching is only available in dev mode");
374
+ setTimeout(() => setStatusMessage(""), STATUS_MESSAGE_DURATION_SHORT);
375
+ return;
376
+ }
377
+ if (!pane.worktreePath) {
378
+ setStatusMessage("Selected pane has no worktree path");
379
+ setTimeout(() => setStatusMessage(""), STATUS_MESSAGE_DURATION_SHORT);
380
+ return;
381
+ }
382
+ const paneProjectRoot = getPaneProjectRoot(pane, sessionProjectRoot);
383
+ if (paneProjectRoot !== sessionProjectRoot) {
384
+ setStatusMessage("Source can only be set from panes in this project");
385
+ setTimeout(() => setStatusMessage(""), STATUS_MESSAGE_DURATION_SHORT);
386
+ return;
387
+ }
388
+ const nextSource = resolveNextDevSourcePath(pane.worktreePath, resolvePath(process.cwd()), resolvePath(sessionProjectRoot));
389
+ if (nextSource.toggledToRoot) {
390
+ setStatusMessage("Switching source to project root...");
391
+ await restartDevSessionAtSource(nextSource.nextSourcePath);
392
+ return;
393
+ }
394
+ setStatusMessage(`Switching source to "${pane.slug}"...`);
395
+ await restartDevSessionAtSource(nextSource.nextSourcePath);
396
+ };
380
397
  // Helper function to handle action results recursively
381
398
  const handleActionResult = async (result) => {
382
399
  // Handle ActionResults from background callbacks (e.g., conflict resolution completion)
@@ -403,7 +420,7 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
403
420
  else if (result.type === "choice") {
404
421
  if (!result.options || !result.onSelect)
405
422
  return;
406
- const selectedId = await popupManager.launchChoicePopup(result.title || "Choose Option", result.message, result.options);
423
+ const selectedId = await popupManager.launchChoicePopup(result.title || "Choose Option", result.message, result.options, result.data);
407
424
  if (selectedId) {
408
425
  const nextResult = await result.onSelect(selectedId);
409
426
  // Recursively handle nested results
@@ -457,11 +474,25 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
457
474
  onPaneRemove: async (paneId) => {
458
475
  // Mark pane as closing to prevent race condition with worker
459
476
  await lifecycleManager.beginClose(paneId, 'user requested');
477
+ // Adjust selectedIndex before removing from list
478
+ const removedIndex = panes.findIndex((p) => p.paneId === paneId);
479
+ if (removedIndex >= 0 && selectedIndex >= panes.length - 1) {
480
+ setSelectedIndex(Math.max(0, panes.length - 2));
481
+ }
460
482
  // Remove from panes list
461
483
  const updatedPanes = panes.filter((p) => p.paneId !== paneId);
462
484
  savePanes(updatedPanes);
463
485
  // Mark close as completed (no more lock needed)
464
486
  await lifecycleManager.completeClose(paneId);
487
+ // Return focus to control pane
488
+ if (controlPaneId) {
489
+ try {
490
+ await TmuxService.getInstance().selectPane(controlPaneId);
491
+ }
492
+ catch {
493
+ // Ignore - control pane might not exist
494
+ }
495
+ }
465
496
  },
466
497
  onActionResult: handleActionResult,
467
498
  popupLaunchers: popupsSupported
@@ -506,6 +537,12 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
506
537
  // Remove it from our tracking
507
538
  const updatedPanes = panes.filter((p) => p.id !== paneId);
508
539
  savePanes(updatedPanes);
540
+ const removedPane = panes.find((p) => p.id === paneId);
541
+ if (isDevMode &&
542
+ removedPane?.worktreePath &&
543
+ removedPane.worktreePath === process.cwd()) {
544
+ void restartDevSessionAtSource(sessionProjectRoot);
545
+ }
509
546
  },
510
547
  });
511
548
  // jumpToPane and runCommand functions removed - now handled by action system and pane runner
@@ -579,6 +616,7 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
579
616
  isUpdating,
580
617
  isLoading,
581
618
  ignoreInput: ignoreInput || showHooksPrompt, // Block other input when hooks prompt is shown
619
+ isDevMode,
582
620
  quitConfirmMode,
583
621
  setQuitConfirmMode,
584
622
  showCommandPrompt,
@@ -600,9 +638,12 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
600
638
  runCommandInternal,
601
639
  handlePaneCreationWithAgent,
602
640
  handleReopenWorktree,
641
+ setDevSourceFromPane: handleSetDevSourceFromPane,
603
642
  savePanes,
604
643
  loadPanes,
605
644
  cleanExit,
645
+ availableAgents,
646
+ panesFile,
606
647
  projectRoot: sessionProjectRoot,
607
648
  projectActionItems: projectActionLayout.actionItems,
608
649
  findCardInDirection,
@@ -639,7 +680,7 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
639
680
  footerLines += 1;
640
681
  }
641
682
  // Add status line
642
- if (updateAvailable || currentBranch || debugMessage) {
683
+ if (isDevMode || updateAvailable || currentBranch || debugMessage) {
643
684
  footerLines += 1;
644
685
  }
645
686
  // Add line for each active status message
@@ -653,7 +694,7 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
653
694
  const contentHeight = Math.max(terminalHeight - footerLines, 10);
654
695
  return (React.createElement(Box, { flexDirection: "column", height: terminalHeight },
655
696
  React.createElement(Box, { flexDirection: "column", height: contentHeight, overflow: "hidden" },
656
- React.createElement(PanesGrid, { panes: panes, selectedIndex: selectedIndex, isLoading: isLoading, agentStatuses: agentStatuses, fallbackProjectRoot: projectRoot || process.cwd(), fallbackProjectName: projectName }),
697
+ React.createElement(PanesGrid, { panes: panes, selectedIndex: selectedIndex, isLoading: isLoading, agentStatuses: agentStatuses, activeDevSourcePath: activeDevSourcePath, fallbackProjectRoot: projectRoot || process.cwd(), fallbackProjectName: projectName }),
657
698
  isLoading && React.createElement(LoadingIndicator, null),
658
699
  showCommandPrompt && (React.createElement(CommandPromptDialog, { type: showCommandPrompt, value: commandInput, onChange: setCommandInput })),
659
700
  showFileCopyPrompt && React.createElement(FileCopyPrompt, null),
@@ -676,12 +717,15 @@ const DmuxApp = ({ panesFile, projectName, sessionName, settingsFile, projectRoo
676
717
  const pos = getCardGridPosition(selectedIndex);
677
718
  return `Grid: ${cols} cols × ${rows} rows | Selected: row ${pos.row}, col ${pos.col} | Terminal: ${terminalWidth}w`;
678
719
  })() }),
679
- (updateAvailable || currentBranch || debugMessage) && (React.createElement(Text, { dimColor: true },
720
+ (isDevMode || updateAvailable || currentBranch || debugMessage) && (React.createElement(Text, { dimColor: true },
721
+ isDevMode && (React.createElement(Text, { color: "yellow", bold: true },
722
+ "DEV MODE",
723
+ " ")),
680
724
  updateAvailable && updateInfo && (React.createElement(Text, { color: "red", bold: true },
681
725
  "Update available: npm i -g dmux@latest",
682
726
  " ")),
683
727
  currentBranch && (React.createElement(Text, { color: "magenta" },
684
- "dev: ",
728
+ "source: ",
685
729
  currentBranch)),
686
730
  debugMessage && React.createElement(Text, { dimColor: true },
687
731
  " \u2022 ",
@@ -1 +1 @@
1
- {"version":3,"file":"DmuxApp.js","sourceRoot":"","sources":["../src/DmuxApp.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DmuxApp.js","sourceRoot":"","sources":["../src/DmuxApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,QAAQ;AACR,OAAO,QAAQ,MAAM,qBAAqB,CAAA;AAC1C,OAAO,kBAAkB,MAAM,+BAA+B,CAAA;AAC9D,OAAO,gBAAgB,MAAM,6BAA6B,CAAA;AAC1D,OAAO,aAAa,MAAM,0BAA0B,CAAA;AACpD,OAAO,cAAc,MAAM,2BAA2B,CAAA;AACtD,OAAO,cAAc,MAAM,2BAA2B,CAAA;AACtD,OAAO,aAAa,MAAM,0BAA0B,CAAA;AACpD,OAAO,eAAe,MAAM,4BAA4B,CAAA;AACxD,OAAO,eAAe,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EACL,6BAA6B,GAC9B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,iBAAiB,GAElB,MAAM,8BAA8B,CAAA;AAIrC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,MAAM,CAAA;AACtD,OAAO,EACL,6BAA6B,GAE9B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAExE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAKrC,OAAO,SAAS,MAAM,iCAAiC,CAAA;AACvD,OAAO,mBAAmB,MAAM,6CAA6C,CAAA;AAC7E,OAAO,cAAc,MAAM,mCAAmC,CAAA;AAC9D,OAAO,gBAAgB,MAAM,6CAA6C,CAAA;AAC1E,OAAO,gBAAgB,MAAM,6CAA6C,CAAA;AAC1E,OAAO,iBAAiB,MAAM,8CAA8C,CAAA;AAC5E,OAAO,UAAU,MAAM,+BAA+B,CAAA;AACtD,OAAO,qBAAqB,MAAM,+CAA+C,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D,MAAM,OAAO,GAA2B,CAAC,EACvC,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,aAAa,GACd,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAC9B,MAAM,cAAc,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,CAAA;IACzC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAA;IAEjD,mCAAmC;IACnC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACrD,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,iBAAiB,EAAE,CAAA;IAC/D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE3D,iBAAiB;IACjB,MAAM,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;IAC1E,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAA;IAE1E,0BAA0B;IAC1B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,EACJ,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,kBAAkB,GACnB,GAAG,WAAW,CAAA;IAEf,yBAAyB;IACzB,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;IAChF,+BAA+B;IAC/B,MAAM,EACJ,UAAU,EACV,UAAU,EACV,eAAe,GAChB,GAAG,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;IACjD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAA;IAEzB,+EAA+E;IAC/E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAErD,sCAAsC;IACtC,iFAAiF;IACjF,MAAM,eAAe,GAAG,6BAA6B,CACnD,eAAe,CAAC,WAAW,EAAE,CAAC,aAAa,CAC5C,CAAA;IAED,0BAA0B;IAC1B,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7D,kDAAkD;IAClD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IAExC,uDAAuD;IACvD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC3D,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAE/D,oBAAoB;IACpB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAM,IAAI,CAAC,CAAA;IAC3D,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC3D,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAEjF,0BAA0B;IAC1B,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7D,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC3D,wEAAwE;IACxE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAsB,SAAS,CAAC,CAAA;IAExE,6EAA6E;IAC7E,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAA;QAE/C,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAA;YACrC,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;YAC9F,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;YACpG,eAAe,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YACvF,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;YAC9F,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACtG,CAAC,CAAA;QAED,gBAAgB;QAChB,WAAW,EAAE,CAAA;QAEb,uBAAuB;QACvB,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAEvD,OAAO,GAAG,EAAE;YACV,WAAW,EAAE,CAAA;QACf,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,8FAA8F;IAC9F,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,QAAQ,CACnE,SAAS,EACT,KAAK,EACL,WAAW,EACX,aAAa,EACb,QAAQ,CACT,CAAA;IAED,6CAA6C;IAC7C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,oBAAoB,GAAG,KAAK,IAAI,EAAE;YACtC,yCAAyC;YACzC,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,EAAE,CAAA;YAE9C,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACxC,2BAA2B;gBAC3B,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;gBAClC,OAAM;YACR,CAAC;YAED,+DAA+D;YAC/D,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAA;YACvD,gBAAgB,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAA;YAE3D,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,CAAA;YAE3D,IAAI,cAAc,EAAE,CAAC;gBACnB,kDAAkD;gBAClD,WAAW,CAAC,IAAI,CAAC,CAAA;gBACjB,sBAAsB;gBACtB,eAAe,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YAC/D,CAAC;iBAAM,CAAC;gBACN,iCAAiC;gBACjC,kBAAkB,CAAC,IAAI,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC,CAAA;QAED,oBAAoB,EAAE,CAAA;IACxB,CAAC,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAA;IAEjD,sEAAsE;IACtE,8DAA8D;IAC9D,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAA;IAEpF,mDAAmD;IACnD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACvC,gBAAgB,CAAC,sBAAsB,EAAE,CAAA;QAC3C,CAAC,EAAE,KAAK,CAAC,CAAA,CAAC,mBAAmB;QAE7B,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;IAC7C,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAEtB,cAAc;IACd,MAAM,EACJ,eAAe,EACf,kBAAkB,GACnB,GAAG,aAAa,CAAC;QAChB,KAAK;QACL,SAAS;QACT,eAAe;QACf,gBAAgB;QAChB,iBAAiB;KAClB,CAAC,CAAA;IAEF,8DAA8D;IAE9D,gBAAgB;IAChB,MAAM,EACJ,aAAa,EAAE,iBAAiB,EAChC,oBAAoB,EAAE,wBAAwB,GAC/C,GAAG,eAAe,CAAC;QAClB,KAAK;QACL,SAAS;QACT,WAAW;QACX,kBAAkB,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE;QAChD,SAAS;QACT,iBAAiB;QACjB,gBAAgB;QAChB,SAAS;QACT,eAAe;KAChB,CAAC,CAAA;IAEF,sBAAsB;IACtB,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;QACnC,sBAAsB;QACtB,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE;QACzC,eAAe;QACf,SAAS;QACT,aAAa;QACb,cAAc;QACd,aAAa;QACb,eAAe;QACf,eAAe;QACf,eAAe;QAEf,YAAY;QACZ,gBAAgB;QAChB,cAAc;KACf,CAAC,CAAA;IAEF,oEAAoE;IACpE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;QAE1C,MAAM,kBAAkB,GAAG,CAAC,KAAwB,EAAE,EAAE;YACtD,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBACrB,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,CAAA;gBACzE,IAAI,SAAS,KAAK,CAAC,CAAC;oBAAE,OAAO,SAAS,CAAA;gBAEtC,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;gBACjC,MAAM,OAAO,GAAa;oBACxB,GAAG,IAAI;oBACP,WAAW,EAAE,KAAK,CAAC,MAAM;iBAC1B,CAAA;gBAED,8EAA8E;gBAC9E,4EAA4E;gBAC5E,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;oBACxC,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAA;gBACjD,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAChC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;gBACjC,CAAC;gBACD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;oBACtC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;gBAC7C,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAChC,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAA;gBACtC,CAAC;gBACD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;oBACtC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;gBAC7C,CAAC;gBAED,wEAAwE;gBACxE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACjE,OAAO,CAAC,eAAe,GAAG,SAAS,CAAA;oBACnC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;oBAC3B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAA;gBACnC,CAAC;gBAED,0DAA0D;gBAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;oBAC3D,OAAO,CAAC,YAAY,GAAG,SAAS,CAAA;gBAClC,CAAC;gBAED,gEAAgE;gBAChE,4CAA4C;gBAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC/B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAA;gBACnC,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACjE,IACE,KAAK,CAAC,aAAa,KAAK,SAAS;wBACjC,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,EACxC,CAAC;wBACD,OAAO,CAAC,aAAa,GAAG,SAAS,CAAA;oBACnC,CAAC;gBACH,CAAC;gBAED,MAAM,SAAS,GACb,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW;oBACxC,IAAI,CAAC,eAAe,KAAK,OAAO,CAAC,eAAe;oBAChD,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;oBAChC,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,aAAa;oBAC5C,IAAI,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY;oBAC1C,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,aAAa,CAAA;gBAE9C,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,SAAS,CAAA;gBAClB,CAAC;gBAED,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAA;gBAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAA;gBACzB,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,cAAc,CAAC,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAA;QAEvD,OAAO,GAAG,EAAE;YACV,cAAc,CAAC,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAA;QAC1D,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,sDAAsD;IACtD,qFAAqF;IACrF,wEAAwE;IAExE,kCAAkC;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAA;QAC/C,YAAY,CAAC,cAAc,CAAC,eAAe,CAAC,CAAA;IAC9C,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAA;IAErB,+CAA+C;IAC/C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAA;QAC/C,YAAY,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAA;QACrD,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAA;QACjD,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,4DAA4D;IAC5D,SAAS,CAAC,GAAG,EAAE;QACb,2DAA2D;QAC3D,MAAM,iBAAiB,GAAG,GAAG,EAAE;YAC7B,SAAS,EAAE,CAAA;QACb,CAAC,CAAA;QACD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;QAExC,wFAAwF;QACxF,MAAM,YAAY,GAAG,cAAc,EAAE,CAAA;QACrC,kBAAkB,CAAC,YAAY,CAAC,CAAA;QAChC,IAAI,YAAY,EAAE,CAAC;YACjB,4DAA4D;QAC9D,CAAC;QAED,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;QACtD,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,0CAA0C;IAE1C,yCAAyC;IACzC,yCAAyC;IACzC,8DAA8D;IAC9D,2DAA2D;IAC3D,qBAAqB;IAErB,8BAA8B;IAE9B,uCAAuC;IAEvC,MAAM,kBAAkB,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACvD,MAAM,mBAAmB,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACjE,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CAAC,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,EAAE,WAAW,CAAC,EACtE,CAAC,KAAK,EAAE,kBAAkB,EAAE,WAAW,CAAC,CACzC,CAAA;IACD,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,SAAS;QACb,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAC1C;QACH,CAAC,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,EAClD,CAAC,SAAS,EAAE,mBAAmB,CAAC,CACjC,CAAA;IACD,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,EAC/D,CAAC,SAAS,EAAE,mBAAmB,CAAC,CACjC,CAAA;IAED,iCAAiC;IACjC,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;IAElG,gDAAgD;IAEhD,8BAA8B;IAE9B,uCAAuC;IAEvC,2DAA2D;IAC3D,MAAM,2BAA2B,GAAG,KAAK,EACvC,MAAc,EACd,iBAA0B,EAC1B,EAAE;QACF,MAAM,MAAM,GAAG,eAAe,CAAA;QAE9B,MAAM,oBAAoB,GAAG,KAAK,EAAE,cAA2B,EAAE,EAAE;YACjE,MAAM,wBAAwB,CAAC,MAAM,EAAE,cAAc,EAAE;gBACrD,aAAa,EAAE,KAAK;gBACpB,iBAAiB;aAClB,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE;gBACzC,iBAAiB;gBACjB,kBAAkB,EAAE,IAAI;aACzB,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,oEAAoE;QACpE,uEAAuE;QACvE,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,sBAAsB,EAAE,CAAA;QAClE,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAM;QACR,CAAC;QACD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,gBAAgB,CAAC,2BAA2B,CAAC,CAAA;YAC7C,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,6BAA6B,CAAC,CAAA;YACrE,OAAM;QACR,CAAC;QAED,MAAM,oBAAoB,CAAC,cAAc,CAAC,CAAA;IAC5C,CAAC,CAAA;IAED,8CAA8C;IAC9C,MAAM,oBAAoB,GAAG,KAAK,EAChC,IAAY,EACZ,YAAoB,EACpB,iBAA0B,EAC1B,EAAE;QACF,IAAI,CAAC;YACH,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACvB,gBAAgB,CAAC,aAAa,IAAI,KAAK,CAAC,CAAA;YAExC,MAAM,iBAAiB,GAAG,iBAAiB,IAAI,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;YAC3E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;gBAClC,IAAI;gBACJ,YAAY;gBACZ,WAAW,EAAE,iBAAiB;gBAC9B,kBAAkB,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE;gBAChD,iBAAiB,EAAE,SAAS;gBAC5B,aAAa,EAAE,KAAK;aACrB,CAAC,CAAA;YAEF,gBAAgB;YAChB,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;YAC5C,MAAM,SAAS,CAAC,YAAY,CAAC,CAAA;YAE7B,MAAM,SAAS,EAAE,CAAA;YAEjB,gBAAgB,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;YACpC,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,6BAA6B,CAAC,CAAA;QACvE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,gBAAgB,CAAC,qBAAqB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YACtD,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QAC9C,CAAC;gBAAS,CAAC;YACT,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC,CAAA;IAED,MAAM,yBAAyB,GAAG,KAAK,EAAE,UAAkB,EAAE,EAAE;QAC7D,IAAI,CAAC,SAAS;YAAE,OAAM;QAEtB,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QAC7C,MAAM,YAAY,GAAG,aAAa,IAAI,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAA;QAC1E,MAAM,WAAW,CAAC,WAAW,CAC3B,YAAY,EACZ,2BAA2B,CAAC,UAAU,CAAC,CACxC,CAAA;IACH,CAAC,CAAA;IAED,MAAM,0BAA0B,GAAG,KAAK,EAAE,IAAc,EAAE,EAAE;QAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,gBAAgB,CAAC,gDAAgD,CAAC,CAAA;YAClE,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,6BAA6B,CAAC,CAAA;YACrE,OAAM;QACR,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,gBAAgB,CAAC,oCAAoC,CAAC,CAAA;YACtD,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,6BAA6B,CAAC,CAAA;YACrE,OAAM;QACR,CAAC;QAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;QACpE,IAAI,eAAe,KAAK,kBAAkB,EAAE,CAAC;YAC3C,gBAAgB,CAAC,mDAAmD,CAAC,CAAA;YACrE,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,6BAA6B,CAAC,CAAA;YACrE,OAAM;QACR,CAAC;QAED,MAAM,UAAU,GAAG,wBAAwB,CACzC,IAAI,CAAC,YAAY,EACjB,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAC1B,WAAW,CAAC,kBAAkB,CAAC,CAChC,CAAA;QAED,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;YAC7B,gBAAgB,CAAC,qCAAqC,CAAC,CAAA;YACvD,MAAM,yBAAyB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;YAC1D,OAAM;QACR,CAAC;QAED,gBAAgB,CAAC,wBAAwB,IAAI,CAAC,IAAI,MAAM,CAAC,CAAA;QACzD,MAAM,yBAAyB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;IAC5D,CAAC,CAAA;IAED,uDAAuD;IACvD,MAAM,kBAAkB,GAAG,KAAK,EAAE,MAAoB,EAAiB,EAAE;QACvE,wFAAwF;QACxF,sEAAsE;QACtE,IAAI,CAAC,eAAe;YAAE,OAAM;QAE5B,qDAAqD;QACrD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,kBAAkB,CACrD,MAAM,CAAC,KAAK,IAAI,SAAS,EACzB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,WAAW,CACnB,CAAA;YACD,IAAI,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAA;gBAC3C,oCAAoC;gBACpC,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACzC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAA;gBAC1C,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAAE,OAAM;YAC/C,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,iBAAiB,CACrD,MAAM,CAAC,KAAK,IAAI,eAAe,EAC/B,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,IAAI,CACZ,CAAA;YACD,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;gBACpD,oCAAoC;gBACpC,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAAE,OAAM;YAC5B,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,gBAAgB,CACpD,MAAM,CAAC,KAAK,IAAI,OAAO,EACvB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,YAAY,CACpB,CAAA;YACD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;gBACpD,oCAAoC;gBACpC,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACxC,uCAAuC;YACvC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,YAAY,CAAC,CAAA;gBAChE,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,CAAC;wBACH,WAAW,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;oBACzD,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;gBACZ,CAAC;YACH,CAAC;YACD,8BAA8B;YAC9B,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,YAAY,CAAC,mBAAmB,CACpC,MAAM,CAAC,OAAO,EACd,MAAM,EACN,IAAI,CACL,CAAA;YACH,CAAC;QACH,CAAC;aAAM,IACL,MAAM,CAAC,IAAI,KAAK,MAAM;YACtB,MAAM,CAAC,IAAI,KAAK,SAAS;YACzB,MAAM,CAAC,IAAI,KAAK,OAAO,EACvB,CAAC;YACD,wDAAwD;YACxD,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAA;YAC1E,YAAY,CAAC,SAAS,CACpB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,IAAoC,CAC5C,CAAA;QACH,CAAC;IACH,CAAC,CAAA;IAED,yDAAyD;IACzD,MAAM,YAAY,GAAG,eAAe,CAAC;QACnC,KAAK;QACL,SAAS;QACT,WAAW;QACX,WAAW;QACX,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC7B,6DAA6D;YAC7D,MAAM,gBAAgB,CAAC,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;YAE3D,iDAAiD;YACjD,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;YAChE,IAAI,YAAY,IAAI,CAAC,IAAI,aAAa,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3D,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;YACjD,CAAC;YAED,yBAAyB;YACzB,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;YAC7D,SAAS,CAAC,YAAY,CAAC,CAAA;YAEvB,gDAAgD;YAChD,MAAM,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;YAE5C,+BAA+B;YAC/B,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;gBAC3D,CAAC;gBAAC,MAAM,CAAC;oBACP,wCAAwC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QACD,cAAc,EAAE,kBAAkB;QAClC,cAAc,EAAE,eAAe;YAC7B,CAAC,CAAC;gBACE,kBAAkB,EAAE,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;gBACtE,iBAAiB,EAAE,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC;gBACpE,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC;gBAClE,mBAAmB,EACjB,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;aACtD;YACH,CAAC,CAAC,SAAS;KACd,CAAC,CAAA;IAEF,oFAAoF;IAEpF,oGAAoG;IACpG,mBAAmB,CAAC;QAClB,aAAa;QACb,eAAe,EACb,YAAY,CAAC,WAAW,CAAC,iBAAiB;YAC1C,YAAY,CAAC,WAAW,CAAC,gBAAgB;YACzC,YAAY,CAAC,WAAW,CAAC,eAAe;YACxC,YAAY,CAAC,WAAW,CAAC,kBAAkB;YAC3C,CAAC,CAAC,iBAAiB;YACnB,kBAAkB;YAClB,cAAc;YACd,cAAc;YACd,UAAU;KACb,CAAC,CAAA;IAEF,yEAAyE;IACzE,MAAM,aAAa,GAAG,cAAc,CAAC;QACnC,KAAK;QACL,OAAO,EACL,YAAY,CAAC,WAAW,CAAC,iBAAiB;YAC1C,YAAY,CAAC,WAAW,CAAC,gBAAgB;YACzC,YAAY,CAAC,WAAW,CAAC,eAAe;YACxC,YAAY,CAAC,WAAW,CAAC,kBAAkB;YAC3C,CAAC,CAAC,iBAAiB;YACnB,kBAAkB;QACpB,aAAa,EAAE,CAAC,MAAc,EAAE,EAAE;YAChC,gEAAgE;YAChE,6DAA6D;YAC7D,IAAI,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,OAAM;YACR,CAAC;YAED,uEAAuE;YACvE,8BAA8B;YAC9B,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;YACzD,SAAS,CAAC,YAAY,CAAC,CAAA;YAEvB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;YACtD,IACE,SAAS;gBACT,WAAW,EAAE,YAAY;gBACzB,WAAW,CAAC,YAAY,KAAK,OAAO,CAAC,GAAG,EAAE,EAC1C,CAAC;gBACD,KAAK,yBAAyB,CAAC,kBAAkB,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;KACF,CAAC,CAAA;IAEF,6FAA6F;IAE7F,0CAA0C;IAE1C,+FAA+F;IAE/F,4BAA4B;IAC5B,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,kCAAkC;QAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAE5C,mDAAmD;QACnD,IAAI,EAAE,CAAA;QAEN,qEAAqE;QACrE,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,0CAA0C;YAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA,CAAC,uCAAuC;YAC7E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA,CAAC,0BAA0B;YAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA,CAAC,uBAAuB;YAEvD,8BAA8B;YAC9B,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;gBAC7C,WAAW,CAAC,gBAAgB,EAAE,CAAA;gBAC9B,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YACvC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAEV,uBAAuB;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;YAErC,6BAA6B;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAA;YAEpE,eAAe;YACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC,EAAE,GAAG,CAAC,CAAA;IACT,CAAC,CAAA;IAED,iCAAiC;IACjC,QAAQ,CACN,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACb,IAAI,CAAC,eAAe;YAAE,OAAM;QAE5B,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACjC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAA;QACxD,CAAC;aAAM,IAAI,GAAG,CAAC,SAAS,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC1C,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAA;QACxD,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACzB,sBAAsB;YACtB,kBAAkB,CAAC,KAAK,CAAC,CAAA;YACzB,WAAW,CAAC,IAAI,CAAC,CAAA;YACjB,eAAe,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC/D,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACzB,mBAAmB;YACnB,kBAAkB,CAAC,KAAK,CAAC,CAAA;YACzB,WAAW,CAAC,KAAK,CAAC,CAAA;YAClB,eAAe,CAAC,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QAChE,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,wBAAwB;YACxB,kBAAkB,CAAC,KAAK,CAAC,CAAA;YACzB,MAAM,QAAQ,GAAG,gBAAgB,KAAK,CAAC,CAAA;YACvC,WAAW,CAAC,QAAQ,CAAC,CAAA;YACrB,eAAe,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACnE,CAAC;IACH,CAAC,EACD,EAAE,QAAQ,EAAE,eAAe,EAAE,CAC9B,CAAA;IAED,+CAA+C;IAC/C,gBAAgB,CAAC;QACf,KAAK;QACL,aAAa;QACb,gBAAgB;QAChB,cAAc;QACd,iBAAiB;QACjB,cAAc;QACd,UAAU;QACV,SAAS;QACT,WAAW,EAAE,WAAW,IAAI,eAAe,EAAE,+CAA+C;QAC5F,SAAS;QACT,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QACjB,oBAAoB;QACpB,YAAY;QACZ,eAAe;QACf,kBAAkB;QAClB,qBAAqB;QACrB,kBAAkB;QAClB,qBAAqB;QACrB,eAAe;QACf,YAAY;QACZ,eAAe;QACf,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,gBAAgB;QAChB,eAAe;QACf,kBAAkB;QAClB,2BAA2B;QAC3B,oBAAoB;QACpB,oBAAoB,EAAE,0BAA0B;QAChD,SAAS;QACT,SAAS;QACT,SAAS;QACT,eAAe;QACf,SAAS;QACT,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,mBAAmB,CAAC,WAAW;QACnD,mBAAmB;KACpB,CAAC,CAAA;IAEF,mGAAmG;IACnG,uCAAuC;IACvC,yDAAyD;IACzD,6BAA6B;IAC7B,gFAAgF;IAChF,4EAA4E;IAC5E,wCAAwC;IACxC,yEAAyE;IACzE,kDAAkD;IAClD,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,IAAI,eAAe,EAAE,CAAC;QACpB,WAAW,GAAG,CAAC,CAAA;IACjB,CAAC;SAAM,CAAC;QACN,+DAA+D;QAC/D,WAAW,GAAG,CAAC,CAAA,CAAC,8CAA8C;QAC9D,4DAA4D;QAC5D,IAAI,YAAY,EAAE,CAAC;YACjB,+CAA+C;YAC/C,6DAA6D;YAC7D,MAAM,kBAAkB,GAAG,CAAC,CAAC;YAC7B,MAAM,eAAe,GAAG,kBAAkB,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;YAEzE,mEAAmE;YACnE,MAAM,cAAc,GAAG,aAAa,GAAG,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,CAAC;YAEjE,WAAW,IAAI,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,6CAA6C;QACpF,CAAC;QACD,iBAAiB;QACjB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YAC3B,WAAW,IAAI,CAAC,CAAA;QAClB,CAAC;QACD,kBAAkB;QAClB,IAAI,SAAS,IAAI,eAAe,IAAI,aAAa,IAAI,YAAY,EAAE,CAAC;YAClE,WAAW,IAAI,CAAC,CAAA;QAClB,CAAC;QACD,0CAA0C;QAC1C,IAAI,aAAa,EAAE,CAAC;YAClB,WAAW,IAAI,CAAC,CAAA;QAClB,CAAC;QACD,IAAI,YAAY,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YAC3C,WAAW,IAAI,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,WAAW,EAAE,EAAE,CAAC,CAAA;IAEhE,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,MAAM,EAAE,cAAc;QAEhD,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAC,QAAQ;YAClE,oBAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,mBAAmB,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,EACjD,mBAAmB,EAAE,WAAW,GAChC;YAGD,SAAS,IAAI,oBAAC,gBAAgB,OAAG;YAEjC,iBAAiB,IAAI,CACpB,oBAAC,mBAAmB,IAClB,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,eAAe,GACzB,CACH;YAEA,kBAAkB,IAAI,oBAAC,cAAc,OAAG;YAExC,cAAc,IAAI,oBAAC,gBAAgB,OAAG;YAEtC,UAAU,IAAI,oBAAC,iBAAiB,OAAG;YAGnC,eAAe,IAAI,CAClB,oBAAC,qBAAqB,IAAC,aAAa,EAAE,gBAAgB,GAAI,CAC3D,CACG;QAGL,aAAa,IAAI,CAChB,oBAAC,GAAG;YACF,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO,IAAE,aAAa,CAAQ,CACtC,CACP;QACA,YAAY,CAAC,WAAW,CAAC,aAAa,IAAI,CACzC,oBAAC,GAAG;YACF,oBAAC,IAAI,IACH,KAAK,EACH,YAAY,CAAC,WAAW,CAAC,UAAU,KAAK,OAAO;oBAC7C,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,KAAK,SAAS;wBACnD,CAAC,CAAC,OAAO;wBACT,CAAC,CAAC,MAAM,IAGX,YAAY,CAAC,WAAW,CAAC,aAAa,CAClC,CACH,CACP;QAGD,oBAAC,UAAU,IACT,IAAI,EAAE,CAAC,iBAAiB,EACxB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,QAAQ,EAAE,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU;oBAAE,OAAO,SAAS,CAAA;gBAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAA;gBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;gBACpE,MAAM,GAAG,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAA;gBAC9C,OAAO,SAAS,IAAI,WAAW,IAAI,yBAAyB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,gBAAgB,aAAa,GAAG,CAAA;YACrH,CAAC,CAAC,EAAE,GACJ;QAGD,CAAC,SAAS,IAAI,eAAe,IAAI,aAAa,IAAI,YAAY,CAAC,IAAI,CAClE,oBAAC,IAAI,IAAC,QAAQ;YACX,SAAS,IAAI,CACZ,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI;;gBACd,GAAG,CACP,CACR;YACA,eAAe,IAAI,UAAU,IAAI,CAChC,oBAAC,IAAI,IAAC,KAAK,EAAC,KAAK,EAAC,IAAI;;gBACmB,GAAG,CACrC,CACR;YACA,aAAa,IAAI,CAChB,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;;gBACV,aAAa,CACjB,CACR;YACA,YAAY,IAAI,oBAAC,IAAI,IAAC,QAAQ;;gBAAK,YAAY,CAAQ,CACnD,CACR,CACG,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"closeAction.d.ts","sourceRoot":"","sources":["../../../src/actions/implementations/closeAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAC;AAW7E;;GAEG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAsCvB"}
1
+ {"version":3,"file":"closeAction.d.ts","sourceRoot":"","sources":["../../../src/actions/implementations/closeAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAC;AAa7E;;GAEG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAgFvB"}
@@ -12,6 +12,8 @@ import { WorktreeCleanupService } from '../../services/WorktreeCleanupService.js
12
12
  import { TMUX_SPLIT_DELAY } from '../../constants/timing.js';
13
13
  import { deriveProjectRootFromWorktreePath, getPaneProjectRoot } from '../../utils/paneProject.js';
14
14
  import { cleanupPromptFilesForSlug } from '../../utils/promptStore.js';
15
+ import { buildDevWatchRespawnCommand } from '../../utils/devWatchCommand.js';
16
+ import { isActiveDevSourcePath } from '../../utils/devSource.js';
15
17
  /**
16
18
  * Close a pane - presents options for how to close
17
19
  */
@@ -20,6 +22,43 @@ export async function closePane(pane, context) {
20
22
  if (pane.type === 'shell' || !pane.worktreePath) {
21
23
  return executeCloseOption(pane, context, 'kill_only');
22
24
  }
25
+ const siblingPanesOnWorktree = context.panes.filter(candidate => candidate.id !== pane.id &&
26
+ isActiveDevSourcePath(candidate.worktreePath, pane.worktreePath));
27
+ if (siblingPanesOnWorktree.length > 0) {
28
+ const siblingLabel = siblingPanesOnWorktree.length === 1
29
+ ? '1 other pane'
30
+ : `${siblingPanesOnWorktree.length} other panes`;
31
+ const MAX_LISTED_SIBLINGS = 5;
32
+ const listedSiblings = siblingPanesOnWorktree
33
+ .slice(0, MAX_LISTED_SIBLINGS)
34
+ .map(sibling => ` - ${sibling.slug}`);
35
+ const remainingSiblings = siblingPanesOnWorktree.length - listedSiblings.length;
36
+ const remainingSiblingLine = remainingSiblings > 0
37
+ ? [` - +${remainingSiblings} more`]
38
+ : [];
39
+ return {
40
+ type: 'choice',
41
+ title: 'Close Pane',
42
+ message: [
43
+ `This worktree is still in use by ${siblingLabel}.`,
44
+ 'Other panes on this worktree:',
45
+ ...listedSiblings,
46
+ ...remainingSiblingLine,
47
+ ].join('\n'),
48
+ options: [
49
+ {
50
+ id: 'kill_only',
51
+ label: 'Just close pane',
52
+ description: 'Keep worktree and branch',
53
+ default: true,
54
+ },
55
+ ],
56
+ onSelect: async (optionId) => {
57
+ return executeCloseOption(pane, context, optionId);
58
+ },
59
+ dismissable: true,
60
+ };
61
+ }
23
62
  // For worktree panes, present options
24
63
  const options = [
25
64
  {
@@ -155,20 +194,29 @@ async function executeCloseOption(pane, context, option) {
155
194
  }
156
195
  // Handle worktree cleanup based on option
157
196
  if (pane.worktreePath && (option === 'kill_and_clean' || option === 'kill_clean_branch')) {
158
- const mainRepoPath = deriveProjectRootFromWorktreePath(pane.worktreePath) || paneProjectRoot;
159
- // Trigger before_worktree_remove hook
160
- await triggerHook('before_worktree_remove', paneProjectRoot, pane);
161
- try {
162
- WorktreeCleanupService.getInstance().enqueueCleanup({
163
- pane,
164
- paneProjectRoot,
165
- mainRepoPath,
166
- deleteBranch: option === 'kill_clean_branch',
167
- });
168
- startedBackgroundCleanup = true;
197
+ // Check if sibling panes still share this worktree
198
+ // updatedPanes already excludes the current pane, so any match = active sibling
199
+ const siblingPanes = updatedPanes.filter(p => p.worktreePath === pane.worktreePath);
200
+ if (siblingPanes.length > 0) {
201
+ // Skip worktree/branch deletion — other panes still using it
202
+ LogService.getInstance().info(`Skipping worktree cleanup for ${pane.slug}: ${siblingPanes.length} sibling(s) still using ${pane.worktreePath}`, 'paneActions', pane.id);
169
203
  }
170
- catch (cleanupError) {
171
- LogService.getInstance().warn(`Failed to start background cleanup for pane ${pane.id}`, 'paneActions', pane.id);
204
+ else {
205
+ const mainRepoPath = deriveProjectRootFromWorktreePath(pane.worktreePath) || paneProjectRoot;
206
+ // Trigger before_worktree_remove hook
207
+ await triggerHook('before_worktree_remove', paneProjectRoot, pane);
208
+ try {
209
+ WorktreeCleanupService.getInstance().enqueueCleanup({
210
+ pane,
211
+ paneProjectRoot,
212
+ mainRepoPath,
213
+ deleteBranch: option === 'kill_clean_branch',
214
+ });
215
+ startedBackgroundCleanup = true;
216
+ }
217
+ catch (cleanupError) {
218
+ LogService.getInstance().warn(`Failed to start background cleanup for pane ${pane.id}`, 'paneActions', pane.id);
219
+ }
172
220
  }
173
221
  }
174
222
  if (context.onPaneRemove) {
@@ -216,6 +264,29 @@ async function executeCloseOption(pane, context, option) {
216
264
  const { handleLastPaneRemoved } = await import('../../utils/postPaneCleanup.js');
217
265
  await handleLastPaneRemoved(sessionProjectRoot);
218
266
  }
267
+ const hasRemainingPaneForWorktree = Boolean(pane.worktreePath &&
268
+ updatedPanes.some(candidate => isActiveDevSourcePath(candidate.worktreePath, pane.worktreePath)));
269
+ // Dev source fallback:
270
+ // If the pane being closed is the current dev source worktree and no
271
+ // sibling panes remain on that worktree, respawn the control pane from
272
+ // the root checkout.
273
+ if (process.env.DMUX_DEV === 'true' &&
274
+ pane.worktreePath &&
275
+ isActiveDevSourcePath(pane.worktreePath, process.cwd()) &&
276
+ !hasRemainingPaneForWorktree) {
277
+ try {
278
+ const fallbackCommand = buildDevWatchRespawnCommand(sessionProjectRoot);
279
+ const quotedCommand = `'${fallbackCommand.replace(/'/g, "'\\''")}'`;
280
+ const configForRespawn = JSON.parse(fs.readFileSync(panesFile, 'utf-8'));
281
+ const targetControlPaneId = configForRespawn.controlPaneId || execSync('tmux display-message -p "#{pane_id}"', { encoding: 'utf-8', stdio: 'pipe', timeout: 5000 }).trim();
282
+ if (targetControlPaneId) {
283
+ execSync(`tmux respawn-pane -k -t '${targetControlPaneId}' ${quotedCommand}`, { stdio: 'pipe', timeout: 5000 });
284
+ }
285
+ }
286
+ catch (respawnError) {
287
+ LogService.getInstance().warn('Failed to respawn dev source at root after closing source pane', 'paneActions', pane.id);
288
+ }
289
+ }
219
290
  return {
220
291
  type: 'success',
221
292
  message: startedBackgroundCleanup