dmux 5.1.0 → 5.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 (319) hide show
  1. package/README.md +46 -143
  2. package/dist/DmuxApp.d.ts.map +1 -1
  3. package/dist/DmuxApp.js +99 -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 +55 -21
  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 +61 -20
  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 +6 -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 +19 -13
  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/mergeExecution.d.ts.map +1 -1
  29. package/dist/actions/merge/mergeExecution.js +2 -1
  30. package/dist/actions/merge/mergeExecution.js.map +1 -1
  31. package/dist/actions/merge/multiMergeOrchestrator.d.ts.map +1 -1
  32. package/dist/actions/merge/multiMergeOrchestrator.js +33 -14
  33. package/dist/actions/merge/multiMergeOrchestrator.js.map +1 -1
  34. package/dist/actions/types.d.ts +4 -2
  35. package/dist/actions/types.d.ts.map +1 -1
  36. package/dist/actions/types.js +19 -1
  37. package/dist/actions/types.js.map +1 -1
  38. package/dist/components/dialogs/AgentChoiceDialog.d.ts +2 -1
  39. package/dist/components/dialogs/AgentChoiceDialog.d.ts.map +1 -1
  40. package/dist/components/dialogs/AgentChoiceDialog.js +4 -5
  41. package/dist/components/dialogs/AgentChoiceDialog.js.map +1 -1
  42. package/dist/components/dialogs/SettingsDialog.d.ts.map +1 -1
  43. package/dist/components/dialogs/SettingsDialog.js +3 -1
  44. package/dist/components/dialogs/SettingsDialog.js.map +1 -1
  45. package/dist/components/panes/MergePane.d.ts +1 -0
  46. package/dist/components/panes/MergePane.d.ts.map +1 -1
  47. package/dist/components/panes/MergePane.js +14 -3
  48. package/dist/components/panes/MergePane.js.map +1 -1
  49. package/dist/components/panes/PaneCard.d.ts +1 -3
  50. package/dist/components/panes/PaneCard.d.ts.map +1 -1
  51. package/dist/components/panes/PaneCard.js +54 -37
  52. package/dist/components/panes/PaneCard.js.map +1 -1
  53. package/dist/components/panes/PanesGrid.d.ts +1 -0
  54. package/dist/components/panes/PanesGrid.d.ts.map +1 -1
  55. package/dist/components/panes/PanesGrid.js +60 -78
  56. package/dist/components/panes/PanesGrid.js.map +1 -1
  57. package/dist/components/popups/agentChoicePopup.d.ts +2 -2
  58. package/dist/components/popups/agentChoicePopup.js +85 -56
  59. package/dist/components/popups/agentChoicePopup.js.map +1 -1
  60. package/dist/components/popups/diffPeekPopup.d.ts +7 -0
  61. package/dist/components/popups/diffPeekPopup.d.ts.map +1 -0
  62. package/dist/components/popups/diffPeekPopup.js +99 -0
  63. package/dist/components/popups/diffPeekPopup.js.map +1 -0
  64. package/dist/components/popups/enabledAgentsPopup.d.ts +7 -0
  65. package/dist/components/popups/enabledAgentsPopup.d.ts.map +1 -0
  66. package/dist/components/popups/enabledAgentsPopup.js +196 -0
  67. package/dist/components/popups/enabledAgentsPopup.js.map +1 -0
  68. package/dist/components/popups/kebabMenuPopup.js +2 -2
  69. package/dist/components/popups/kebabMenuPopup.js.map +1 -1
  70. package/dist/components/popups/mergeUncommittedChoicePopup.d.ts +7 -0
  71. package/dist/components/popups/mergeUncommittedChoicePopup.d.ts.map +1 -0
  72. package/dist/components/popups/mergeUncommittedChoicePopup.js +289 -0
  73. package/dist/components/popups/mergeUncommittedChoicePopup.js.map +1 -0
  74. package/dist/components/popups/newPanePopup.js +8 -0
  75. package/dist/components/popups/newPanePopup.js.map +1 -1
  76. package/dist/components/popups/projectSelectPopup.d.ts +7 -0
  77. package/dist/components/popups/projectSelectPopup.d.ts.map +1 -0
  78. package/dist/components/popups/projectSelectPopup.js +124 -0
  79. package/dist/components/popups/projectSelectPopup.js.map +1 -0
  80. package/dist/components/popups/reopenWorktreePopup.js +33 -3
  81. package/dist/components/popups/reopenWorktreePopup.js.map +1 -1
  82. package/dist/components/popups/settingsPopup.js +25 -8
  83. package/dist/components/popups/settingsPopup.js.map +1 -1
  84. package/dist/components/popups/shared/DirectoryList.d.ts +14 -0
  85. package/dist/components/popups/shared/DirectoryList.d.ts.map +1 -0
  86. package/dist/components/popups/shared/DirectoryList.js +46 -0
  87. package/dist/components/popups/shared/DirectoryList.js.map +1 -0
  88. package/dist/components/popups/shared/index.d.ts +1 -0
  89. package/dist/components/popups/shared/index.d.ts.map +1 -1
  90. package/dist/components/popups/shared/index.js +1 -0
  91. package/dist/components/popups/shared/index.js.map +1 -1
  92. package/dist/components/popups/shortcutsPopup.js +15 -12
  93. package/dist/components/popups/shortcutsPopup.js.map +1 -1
  94. package/dist/components/popups/singleAgentChoicePopup.d.ts +7 -0
  95. package/dist/components/popups/singleAgentChoicePopup.d.ts.map +1 -0
  96. package/dist/components/popups/singleAgentChoicePopup.js +95 -0
  97. package/dist/components/popups/singleAgentChoicePopup.js.map +1 -0
  98. package/dist/components/ui/FooterHelp.js +1 -1
  99. package/dist/components/ui/FooterHelp.js.map +1 -1
  100. package/dist/hooks/useActionSystem.d.ts +1 -1
  101. package/dist/hooks/useActionSystem.d.ts.map +1 -1
  102. package/dist/hooks/useActionSystem.js +1 -1
  103. package/dist/hooks/useActionSystem.js.map +1 -1
  104. package/dist/hooks/useAgentDetection.d.ts +2 -2
  105. package/dist/hooks/useAgentDetection.d.ts.map +1 -1
  106. package/dist/hooks/useAgentDetection.js +18 -88
  107. package/dist/hooks/useAgentDetection.js.map +1 -1
  108. package/dist/hooks/useAutoUpdater.d.ts.map +1 -1
  109. package/dist/hooks/useAutoUpdater.js +43 -26
  110. package/dist/hooks/useAutoUpdater.js.map +1 -1
  111. package/dist/hooks/useInputHandling.d.ts +5 -0
  112. package/dist/hooks/useInputHandling.d.ts.map +1 -1
  113. package/dist/hooks/useInputHandling.js +89 -16
  114. package/dist/hooks/useInputHandling.js.map +1 -1
  115. package/dist/hooks/useNavigation.d.ts +1 -1
  116. package/dist/hooks/useNavigation.d.ts.map +1 -1
  117. package/dist/hooks/useNavigation.js +26 -4
  118. package/dist/hooks/useNavigation.js.map +1 -1
  119. package/dist/hooks/usePaneCreation.d.ts +5 -2
  120. package/dist/hooks/usePaneCreation.d.ts.map +1 -1
  121. package/dist/hooks/usePaneCreation.js +123 -23
  122. package/dist/hooks/usePaneCreation.js.map +1 -1
  123. package/dist/hooks/usePaneSync.d.ts +1 -1
  124. package/dist/hooks/usePaneSync.d.ts.map +1 -1
  125. package/dist/hooks/usePaneSync.js +14 -1
  126. package/dist/hooks/usePaneSync.js.map +1 -1
  127. package/dist/hooks/usePanes.js +1 -1
  128. package/dist/hooks/usePanes.js.map +1 -1
  129. package/dist/hooks/useServices.d.ts +1 -1
  130. package/dist/hooks/useServices.d.ts.map +1 -1
  131. package/dist/hooks/useServices.js +2 -2
  132. package/dist/hooks/useServices.js.map +1 -1
  133. package/dist/hooks/useWorktreeActions.d.ts.map +1 -1
  134. package/dist/hooks/useWorktreeActions.js +16 -8
  135. package/dist/hooks/useWorktreeActions.js.map +1 -1
  136. package/dist/index.js +199 -18
  137. package/dist/index.js.map +1 -1
  138. package/dist/layout/SpacerManager.d.ts.map +1 -1
  139. package/dist/layout/SpacerManager.js +2 -1
  140. package/dist/layout/SpacerManager.js.map +1 -1
  141. package/dist/server/embedded-assets.d.ts.map +1 -1
  142. package/dist/server/embedded-assets.js +37 -26
  143. package/dist/server/embedded-assets.js.map +1 -1
  144. package/dist/services/AutoUpdater.d.ts +4 -0
  145. package/dist/services/AutoUpdater.d.ts.map +1 -1
  146. package/dist/services/AutoUpdater.js +23 -0
  147. package/dist/services/AutoUpdater.js.map +1 -1
  148. package/dist/services/PaneEventService.d.ts.map +1 -1
  149. package/dist/services/PaneEventService.js +2 -5
  150. package/dist/services/PaneEventService.js.map +1 -1
  151. package/dist/services/PaneWorkerManager.d.ts.map +1 -1
  152. package/dist/services/PaneWorkerManager.js +2 -14
  153. package/dist/services/PaneWorkerManager.js.map +1 -1
  154. package/dist/services/PopupManager.d.ts +8 -2
  155. package/dist/services/PopupManager.d.ts.map +1 -1
  156. package/dist/services/PopupManager.js +149 -27
  157. package/dist/services/PopupManager.js.map +1 -1
  158. package/dist/services/TmuxService.d.ts +15 -1
  159. package/dist/services/TmuxService.d.ts.map +1 -1
  160. package/dist/services/TmuxService.js +29 -3
  161. package/dist/services/TmuxService.js.map +1 -1
  162. package/dist/services/WorktreeCleanupService.d.ts +22 -0
  163. package/dist/services/WorktreeCleanupService.d.ts.map +1 -0
  164. package/dist/services/WorktreeCleanupService.js +80 -0
  165. package/dist/services/WorktreeCleanupService.js.map +1 -0
  166. package/dist/types.d.ts +9 -3
  167. package/dist/types.d.ts.map +1 -1
  168. package/dist/utils/agentDetection.d.ts +15 -8
  169. package/dist/utils/agentDetection.d.ts.map +1 -1
  170. package/dist/utils/agentDetection.js +49 -73
  171. package/dist/utils/agentDetection.js.map +1 -1
  172. package/dist/utils/agentLaunch.d.ts +63 -1
  173. package/dist/utils/agentLaunch.d.ts.map +1 -1
  174. package/dist/utils/agentLaunch.js +497 -24
  175. package/dist/utils/agentLaunch.js.map +1 -1
  176. package/dist/utils/agentPromptDispatch.d.ts +33 -0
  177. package/dist/utils/agentPromptDispatch.d.ts.map +1 -0
  178. package/dist/utils/agentPromptDispatch.js +99 -0
  179. package/dist/utils/agentPromptDispatch.js.map +1 -0
  180. package/dist/utils/asciiArt.d.ts.map +1 -1
  181. package/dist/utils/asciiArt.js +6 -7
  182. package/dist/utils/asciiArt.js.map +1 -1
  183. package/dist/utils/attachAgent.d.ts +21 -0
  184. package/dist/utils/attachAgent.d.ts.map +1 -0
  185. package/dist/utils/attachAgent.js +128 -0
  186. package/dist/utils/attachAgent.js.map +1 -0
  187. package/dist/utils/conflictResolutionPane.d.ts +2 -1
  188. package/dist/utils/conflictResolutionPane.d.ts.map +1 -1
  189. package/dist/utils/conflictResolutionPane.js +69 -36
  190. package/dist/utils/conflictResolutionPane.js.map +1 -1
  191. package/dist/utils/devSource.d.ts +7 -0
  192. package/dist/utils/devSource.d.ts.map +1 -0
  193. package/dist/utils/devSource.js +19 -0
  194. package/dist/utils/devSource.js.map +1 -0
  195. package/dist/utils/devWatchCommand.d.ts +8 -0
  196. package/dist/utils/devWatchCommand.d.ts.map +1 -0
  197. package/dist/utils/devWatchCommand.js +14 -0
  198. package/dist/utils/devWatchCommand.js.map +1 -0
  199. package/dist/utils/dirScanner.d.ts +30 -0
  200. package/dist/utils/dirScanner.d.ts.map +1 -0
  201. package/dist/utils/dirScanner.js +99 -0
  202. package/dist/utils/dirScanner.js.map +1 -0
  203. package/dist/utils/geminiTrust.d.ts +8 -0
  204. package/dist/utils/geminiTrust.d.ts.map +1 -0
  205. package/dist/utils/geminiTrust.js +67 -0
  206. package/dist/utils/geminiTrust.js.map +1 -0
  207. package/dist/utils/generated-agents-doc.d.ts +1 -1
  208. package/dist/utils/generated-agents-doc.js +3 -3
  209. package/dist/utils/git.d.ts +13 -0
  210. package/dist/utils/git.d.ts.map +1 -1
  211. package/dist/utils/git.js +20 -0
  212. package/dist/utils/git.js.map +1 -1
  213. package/dist/utils/hooks.js +1 -1
  214. package/dist/utils/hooks.js.map +1 -1
  215. package/dist/utils/hooksDocs.d.ts +2 -9
  216. package/dist/utils/hooksDocs.d.ts.map +1 -1
  217. package/dist/utils/hooksDocs.js +26 -6
  218. package/dist/utils/hooksDocs.js.map +1 -1
  219. package/dist/utils/mergeExecution.d.ts.map +1 -1
  220. package/dist/utils/mergeExecution.js +6 -3
  221. package/dist/utils/mergeExecution.js.map +1 -1
  222. package/dist/utils/paneCreation.d.ts +8 -2
  223. package/dist/utils/paneCreation.d.ts.map +1 -1
  224. package/dist/utils/paneCreation.js +129 -80
  225. package/dist/utils/paneCreation.js.map +1 -1
  226. package/dist/utils/paneGrouping.d.ts.map +1 -1
  227. package/dist/utils/paneGrouping.js +30 -0
  228. package/dist/utils/paneGrouping.js.map +1 -1
  229. package/dist/utils/projectActions.d.ts +5 -0
  230. package/dist/utils/projectActions.d.ts.map +1 -1
  231. package/dist/utils/projectActions.js +15 -4
  232. package/dist/utils/projectActions.js.map +1 -1
  233. package/dist/utils/promptStore.d.ts +7 -0
  234. package/dist/utils/promptStore.d.ts.map +1 -0
  235. package/dist/utils/promptStore.js +75 -0
  236. package/dist/utils/promptStore.js.map +1 -0
  237. package/dist/utils/reopenWorktree.d.ts +1 -1
  238. package/dist/utils/reopenWorktree.d.ts.map +1 -1
  239. package/dist/utils/reopenWorktree.js +26 -27
  240. package/dist/utils/reopenWorktree.js.map +1 -1
  241. package/dist/utils/runtimePaths.d.ts +2 -0
  242. package/dist/utils/runtimePaths.d.ts.map +1 -0
  243. package/dist/utils/runtimePaths.js +8 -0
  244. package/dist/utils/runtimePaths.js.map +1 -0
  245. package/dist/utils/settingsManager.d.ts.map +1 -1
  246. package/dist/utils/settingsManager.js +96 -4
  247. package/dist/utils/settingsManager.js.map +1 -1
  248. package/dist/utils/systemCheck.d.ts.map +1 -1
  249. package/dist/utils/systemCheck.js +0 -13
  250. package/dist/utils/systemCheck.js.map +1 -1
  251. package/dist/utils/welcomePane.d.ts +2 -1
  252. package/dist/utils/welcomePane.d.ts.map +1 -1
  253. package/dist/utils/welcomePane.js +3 -2
  254. package/dist/utils/welcomePane.js.map +1 -1
  255. package/dist/utils/welcomePaneManager.js +1 -1
  256. package/dist/utils/welcomePaneManager.js.map +1 -1
  257. package/dist/workers/PaneWorker.js.map +1 -1
  258. package/dist/workers/WorkerMessages.d.ts +2 -1
  259. package/dist/workers/WorkerMessages.d.ts.map +1 -1
  260. package/dist/workers/WorkerMessages.js.map +1 -1
  261. package/dist/workers/updateChecker.js +21 -6
  262. package/dist/workers/updateChecker.js.map +1 -1
  263. package/package.json +14 -12
  264. package/dist/components/popups/remotePopup.d.ts +0 -6
  265. package/dist/components/popups/remotePopup.d.ts.map +0 -1
  266. package/dist/components/popups/remotePopup.js +0 -166
  267. package/dist/components/popups/remotePopup.js.map +0 -1
  268. package/dist/hooks/useTunnelManagement.d.ts +0 -18
  269. package/dist/hooks/useTunnelManagement.d.ts.map +0 -1
  270. package/dist/hooks/useTunnelManagement.js +0 -55
  271. package/dist/hooks/useTunnelManagement.js.map +0 -1
  272. package/dist/server/actionsApi.d.ts +0 -37
  273. package/dist/server/actionsApi.d.ts.map +0 -1
  274. package/dist/server/actionsApi.js +0 -256
  275. package/dist/server/actionsApi.js.map +0 -1
  276. package/dist/server/index.d.ts +0 -21
  277. package/dist/server/index.d.ts.map +0 -1
  278. package/dist/server/index.js +0 -100
  279. package/dist/server/index.js.map +0 -1
  280. package/dist/server/routes/actionsRoutes.d.ts +0 -2
  281. package/dist/server/routes/actionsRoutes.d.ts.map +0 -1
  282. package/dist/server/routes/actionsRoutes.js +0 -110
  283. package/dist/server/routes/actionsRoutes.js.map +0 -1
  284. package/dist/server/routes/healthRoutes.d.ts +0 -13
  285. package/dist/server/routes/healthRoutes.d.ts.map +0 -1
  286. package/dist/server/routes/healthRoutes.js +0 -70
  287. package/dist/server/routes/healthRoutes.js.map +0 -1
  288. package/dist/server/routes/index.d.ts +0 -8
  289. package/dist/server/routes/index.d.ts.map +0 -1
  290. package/dist/server/routes/index.js +0 -67
  291. package/dist/server/routes/index.js.map +0 -1
  292. package/dist/server/routes/keysRoutes.d.ts +0 -33
  293. package/dist/server/routes/keysRoutes.d.ts.map +0 -1
  294. package/dist/server/routes/keysRoutes.js +0 -128
  295. package/dist/server/routes/keysRoutes.js.map +0 -1
  296. package/dist/server/routes/panesRoutes.d.ts +0 -2
  297. package/dist/server/routes/panesRoutes.d.ts.map +0 -1
  298. package/dist/server/routes/panesRoutes.js +0 -414
  299. package/dist/server/routes/panesRoutes.js.map +0 -1
  300. package/dist/server/routes/settingsRoutes.d.ts +0 -94
  301. package/dist/server/routes/settingsRoutes.d.ts.map +0 -1
  302. package/dist/server/routes/settingsRoutes.js +0 -159
  303. package/dist/server/routes/settingsRoutes.js.map +0 -1
  304. package/dist/server/routes/streamRoutes.d.ts +0 -18
  305. package/dist/server/routes/streamRoutes.d.ts.map +0 -1
  306. package/dist/server/routes/streamRoutes.js +0 -87
  307. package/dist/server/routes/streamRoutes.js.map +0 -1
  308. package/dist/server/routes/tunnelRoutes.d.ts +0 -11
  309. package/dist/server/routes/tunnelRoutes.d.ts.map +0 -1
  310. package/dist/server/routes/tunnelRoutes.js +0 -28
  311. package/dist/server/routes/tunnelRoutes.js.map +0 -1
  312. package/dist/server/routes.d.ts +0 -17
  313. package/dist/server/routes.d.ts.map +0 -1
  314. package/dist/server/routes.js +0 -17
  315. package/dist/server/routes.js.map +0 -1
  316. package/dist/services/TunnelService.d.ts +0 -10
  317. package/dist/services/TunnelService.d.ts.map +0 -1
  318. package/dist/services/TunnelService.js +0 -98
  319. package/dist/services/TunnelService.js.map +0 -1
@@ -1,102 +1,78 @@
1
1
  /**
2
2
  * Agent Detection Utilities
3
3
  *
4
- * Utilities to detect available AI agents (claude, opencode)
4
+ * Utilities to detect available AI agents from the registry.
5
5
  */
6
6
  import { execSync } from 'child_process';
7
7
  import fs from 'fs/promises';
8
- /**
9
- * Find Claude Code CLI command
10
- */
11
- export async function findClaudeCommand() {
8
+ import { getAgentDefinition, getAgentDefinitions, resolveEnabledAgentsSelection, } from './agentLaunch.js';
9
+ function resolveViaShell(testCommand) {
12
10
  try {
13
11
  const userShell = process.env.SHELL || '/bin/bash';
14
- const result = execSync(`${userShell} -i -c "command -v claude 2>/dev/null || which claude 2>/dev/null"`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
12
+ const result = execSync(`${userShell} -i -c "${testCommand}"`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
15
13
  if (result)
16
- return result.split('\n')[0];
14
+ return result.split('\n')[0] || null;
17
15
  }
18
- catch { }
19
- const commonPaths = [
20
- `${process.env.HOME}/.claude/local/claude`,
21
- `${process.env.HOME}/.local/bin/claude`,
22
- '/usr/local/bin/claude',
23
- '/opt/homebrew/bin/claude',
24
- '/usr/bin/claude',
25
- `${process.env.HOME}/bin/claude`,
26
- ];
27
- for (const p of commonPaths) {
28
- try {
29
- await fs.access(p);
30
- return p;
31
- }
32
- catch { }
16
+ catch {
17
+ // ignore
33
18
  }
34
19
  return null;
35
20
  }
36
21
  /**
37
- * Find OpenCode CLI command
22
+ * Find an agent command path by registry ID.
38
23
  */
39
- export async function findOpencodeCommand() {
40
- try {
41
- const userShell = process.env.SHELL || '/bin/bash';
42
- const result = execSync(`${userShell} -i -c "command -v opencode 2>/dev/null || which opencode 2>/dev/null"`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
43
- if (result)
44
- return result.split('\n')[0];
45
- }
46
- catch { }
47
- const commonPaths = [
48
- '/opt/homebrew/bin/opencode',
49
- '/usr/local/bin/opencode',
50
- `${process.env.HOME}/.local/bin/opencode`,
51
- `${process.env.HOME}/bin/opencode`,
52
- ];
53
- for (const p of commonPaths) {
24
+ export async function findAgentCommand(agent) {
25
+ const definition = getAgentDefinition(agent);
26
+ const fromPath = resolveViaShell(definition.installTestCommand);
27
+ if (fromPath)
28
+ return fromPath;
29
+ for (const candidate of definition.commonPaths) {
54
30
  try {
55
- await fs.access(p);
56
- return p;
31
+ await fs.access(candidate);
32
+ return candidate;
33
+ }
34
+ catch {
35
+ // continue
57
36
  }
58
- catch { }
59
37
  }
60
38
  return null;
61
39
  }
62
40
  /**
63
- * Find Codex CLI command
41
+ * Backward-compatible helpers used by merge flows and tests.
64
42
  */
43
+ export async function findClaudeCommand() {
44
+ return findAgentCommand('claude');
45
+ }
46
+ export async function findOpencodeCommand() {
47
+ return findAgentCommand('opencode');
48
+ }
65
49
  export async function findCodexCommand() {
66
- try {
67
- const userShell = process.env.SHELL || '/bin/bash';
68
- const result = execSync(`${userShell} -i -c "command -v codex 2>/dev/null || which codex 2>/dev/null"`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
69
- if (result)
70
- return result.split('\n')[0];
71
- }
72
- catch { }
73
- const commonPaths = [
74
- '/usr/local/bin/codex',
75
- '/opt/homebrew/bin/codex',
76
- `${process.env.HOME}/.local/bin/codex`,
77
- `${process.env.HOME}/bin/codex`,
78
- `${process.env.HOME}/.npm-global/bin/codex`,
79
- ];
80
- for (const p of commonPaths) {
81
- try {
82
- await fs.access(p);
83
- return p;
84
- }
85
- catch { }
86
- }
87
- return null;
50
+ return findAgentCommand('codex');
51
+ }
52
+ /**
53
+ * Get all installed agents (enabled + disabled).
54
+ */
55
+ export async function getInstalledAgents() {
56
+ const definitions = getAgentDefinitions();
57
+ const checks = await Promise.all(definitions.map(async (definition) => ({
58
+ id: definition.id,
59
+ command: await findAgentCommand(definition.id),
60
+ })));
61
+ return checks
62
+ .filter((entry) => !!entry.command)
63
+ .map((entry) => entry.id);
64
+ }
65
+ /**
66
+ * Filter installed agents by settings-enabled list.
67
+ */
68
+ export function filterEnabledAgents(installedAgents, enabledAgentsSetting) {
69
+ const enabledAgents = new Set(resolveEnabledAgentsSelection(enabledAgentsSetting));
70
+ return installedAgents.filter((agent) => enabledAgents.has(agent));
88
71
  }
89
72
  /**
90
- * Get all available agents
73
+ * Backward-compatible alias: returns installed agents.
91
74
  */
92
75
  export async function getAvailableAgents() {
93
- const agents = [];
94
- if (await findClaudeCommand())
95
- agents.push('claude');
96
- if (await findOpencodeCommand())
97
- agents.push('opencode');
98
- if (await findCodexCommand())
99
- agents.push('codex');
100
- return agents;
76
+ return getInstalledAgents();
101
77
  }
102
78
  //# sourceMappingURL=agentDetection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agentDetection.js","sourceRoot":"","sources":["../../src/utils/agentDetection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,aAAa,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,WAAW,CAAC;QACnD,MAAM,MAAM,GAAG,QAAQ,CACrB,GAAG,SAAS,oEAAoE,EAChF,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CACrC,CAAC,IAAI,EAAE,CAAC;QACT,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,MAAM,WAAW,GAAG;QAClB,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,uBAAuB;QAC1C,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,oBAAoB;QACvC,uBAAuB;QACvB,0BAA0B;QAC1B,iBAAiB;QACjB,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,aAAa;KACjC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,OAAO,CAAC,CAAC;QACX,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,WAAW,CAAC;QACnD,MAAM,MAAM,GAAG,QAAQ,CACrB,GAAG,SAAS,wEAAwE,EACpF,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CACrC,CAAC,IAAI,EAAE,CAAC;QACT,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,MAAM,WAAW,GAAG;QAClB,4BAA4B;QAC5B,yBAAyB;QACzB,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,sBAAsB;QACzC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,eAAe;KACnC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,OAAO,CAAC,CAAC;QACX,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,WAAW,CAAC;QACnD,MAAM,MAAM,GAAG,QAAQ,CACrB,GAAG,SAAS,kEAAkE,EAC9E,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CACrC,CAAC,IAAI,EAAE,CAAC;QACT,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,MAAM,WAAW,GAAG;QAClB,sBAAsB;QACtB,yBAAyB;QACzB,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,mBAAmB;QACtC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY;QAC/B,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,wBAAwB;KAC5C,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,OAAO,CAAC,CAAC;QACX,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,MAAM,GAA2C,EAAE,CAAC;IAE1D,IAAI,MAAM,iBAAiB,EAAE;QAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,MAAM,mBAAmB,EAAE;QAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,MAAM,gBAAgB,EAAE;QAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEnD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"agentDetection.js","sourceRoot":"","sources":["../../src/utils/agentDetection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAEL,kBAAkB,EAClB,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC;AAE1B,SAAS,eAAe,CAAC,WAAmB;IAC1C,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,WAAW,CAAC;QACnD,MAAM,MAAM,GAAG,QAAQ,CACrB,GAAG,SAAS,WAAW,WAAW,GAAG,EACrC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CACrC,CAAC,IAAI,EAAE,CAAC;QACT,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAgB;IACrD,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAChE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,OAAO,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACrC,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,OAAO,EAAE,MAAM,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;KAC/C,CAAC,CAAC,CACJ,CAAC;IAEF,OAAO,MAAM;SACV,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;SAClC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,eAA4B,EAC5B,oBAAmD;IAEnD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,6BAA6B,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACnF,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,OAAO,kBAAkB,EAAE,CAAC;AAC9B,CAAC"}
@@ -1,12 +1,74 @@
1
- export type AgentName = 'claude' | 'opencode' | 'codex';
1
+ export declare const AGENT_IDS: readonly ["claude", "opencode", "codex", "cline", "gemini", "qwen", "amp", "pi", "cursor", "copilot", "crush"];
2
+ export type AgentName = typeof AGENT_IDS[number];
3
+ export type PermissionMode = '' | 'plan' | 'acceptEdits' | 'bypassPermissions';
4
+ export type PromptTransport = 'positional' | 'option' | 'stdin' | 'send-keys';
2
5
  export interface AgentLaunchOption {
3
6
  id: string;
4
7
  label: string;
5
8
  agents: AgentName[];
6
9
  isPair: boolean;
7
10
  }
11
+ export interface AgentRegistryEntry {
12
+ id: AgentName;
13
+ name: string;
14
+ shortLabel: string;
15
+ description: string;
16
+ slugSuffix: string;
17
+ installTestCommand: string;
18
+ commonPaths: string[];
19
+ promptCommand: string;
20
+ noPromptCommand?: string;
21
+ promptTransport: PromptTransport;
22
+ promptOption?: string;
23
+ sendKeysPrePrompt?: string[];
24
+ sendKeysSubmit?: string[];
25
+ sendKeysPostPasteDelayMs?: number;
26
+ sendKeysReadyDelayMs?: number;
27
+ permissionFlags: Partial<Record<Exclude<PermissionMode, ''>, string>>;
28
+ defaultEnabled: boolean;
29
+ resumeCommandTemplate?: string;
30
+ }
31
+ export declare const AGENT_REGISTRY: Readonly<Record<AgentName, AgentRegistryEntry>>;
32
+ export declare function isAgentName(value: string): value is AgentName;
33
+ export declare function getAgentDefinitions(): AgentRegistryEntry[];
34
+ export declare function getAgentDefinition(agent: AgentName): AgentRegistryEntry;
8
35
  export declare function getAgentLabel(agent: AgentName): string;
36
+ export declare function getAgentShortLabel(agent: AgentName): string;
37
+ export declare function getAgentDescription(agent: AgentName): string;
38
+ export declare function getPromptTransport(agent: AgentName): PromptTransport;
9
39
  export declare function getAgentSlugSuffix(agent: AgentName): string;
40
+ export declare function getAgentProcessName(agent: AgentName): string;
41
+ export declare function getSendKeysSubmit(agent: AgentName): string[];
42
+ export declare function getSendKeysPrePrompt(agent: AgentName): string[];
43
+ export declare function getSendKeysPostPasteDelayMs(agent: AgentName): number;
44
+ export declare function getSendKeysReadyDelayMs(agent: AgentName): number;
45
+ export declare function getDefaultEnabledAgents(): AgentName[];
46
+ /**
47
+ * Resolve enabled agent list from settings.
48
+ * If the user has not configured enabledAgents, fall back to registry defaults.
49
+ */
50
+ export declare function resolveEnabledAgentsSelection(enabledAgents: readonly string[] | undefined): AgentName[];
10
51
  export declare function appendSlugSuffix(baseSlug: string, slugSuffix?: string): string;
11
52
  export declare function buildAgentLaunchOptions(availableAgents: AgentName[]): AgentLaunchOption[];
53
+ /**
54
+ * Resolve CLI permission flags for a given agent and dmux permissionMode.
55
+ */
56
+ export declare function getPermissionFlags(agent: AgentName, permissionMode: PermissionMode | undefined): string;
57
+ export declare function buildAgentCommand(agent: AgentName, permissionMode: PermissionMode | undefined): string;
58
+ export declare function buildInitialPromptCommand(agent: AgentName, promptToken: string, permissionMode: PermissionMode | undefined): string;
59
+ export declare function buildResumeCommand(agent: AgentName, permissionMode: PermissionMode | undefined): string | undefined;
60
+ /**
61
+ * Launch an agent CLI inside an already-existing tmux pane.
62
+ *
63
+ * Shared by `createPane()` (new worktree panes) and `attachAgentToWorktree()`
64
+ * (sibling panes reusing an existing worktree).
65
+ */
66
+ export declare function launchAgentInPane(opts: {
67
+ paneId: string;
68
+ agent: AgentName;
69
+ prompt: string;
70
+ slug: string;
71
+ projectRoot: string;
72
+ permissionMode?: '' | 'plan' | 'acceptEdits' | 'bypassPermissions';
73
+ }): Promise<void>;
12
74
  //# sourceMappingURL=agentLaunch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agentLaunch.d.ts","sourceRoot":"","sources":["../../src/utils/agentLaunch.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAcD,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAEtD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAgB9E;AAED,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,SAAS,EAAE,GAC3B,iBAAiB,EAAE,CA2BrB"}
1
+ {"version":3,"file":"agentLaunch.d.ts","sourceRoot":"","sources":["../../src/utils/agentLaunch.ts"],"names":[],"mappings":"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"}