dmux 5.6.3 → 5.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/README.ja.md +93 -0
  2. package/README.md +16 -1
  3. package/dist/DmuxApp.d.ts.map +1 -1
  4. package/dist/DmuxApp.js +282 -43
  5. package/dist/DmuxApp.js.map +1 -1
  6. package/dist/actions/implementations/closeAction.d.ts.map +1 -1
  7. package/dist/actions/implementations/closeAction.js +85 -70
  8. package/dist/actions/implementations/closeAction.js.map +1 -1
  9. package/dist/actions/implementations/createPullRequestAction.d.ts +4 -0
  10. package/dist/actions/implementations/createPullRequestAction.d.ts.map +1 -0
  11. package/dist/actions/implementations/createPullRequestAction.js +218 -0
  12. package/dist/actions/implementations/createPullRequestAction.js.map +1 -0
  13. package/dist/actions/implementations/index.d.ts +1 -0
  14. package/dist/actions/implementations/index.d.ts.map +1 -1
  15. package/dist/actions/implementations/index.js +1 -0
  16. package/dist/actions/implementations/index.js.map +1 -1
  17. package/dist/actions/implementations/mergeAction.js +8 -3
  18. package/dist/actions/implementations/mergeAction.js.map +1 -1
  19. package/dist/actions/index.d.ts.map +1 -1
  20. package/dist/actions/index.js +2 -0
  21. package/dist/actions/index.js.map +1 -1
  22. package/dist/actions/paneActions.d.ts +1 -1
  23. package/dist/actions/paneActions.d.ts.map +1 -1
  24. package/dist/actions/paneActions.js +1 -1
  25. package/dist/actions/paneActions.js.map +1 -1
  26. package/dist/actions/types.d.ts +11 -2
  27. package/dist/actions/types.d.ts.map +1 -1
  28. package/dist/actions/types.js +9 -0
  29. package/dist/actions/types.js.map +1 -1
  30. package/dist/components/inputs/CleanTextInput.d.ts +1 -0
  31. package/dist/components/inputs/CleanTextInput.d.ts.map +1 -1
  32. package/dist/components/inputs/CleanTextInput.js +40 -42
  33. package/dist/components/inputs/CleanTextInput.js.map +1 -1
  34. package/dist/components/inputs/InlineCursorInput.d.ts +10 -0
  35. package/dist/components/inputs/InlineCursorInput.d.ts.map +1 -0
  36. package/dist/components/inputs/InlineCursorInput.js +101 -0
  37. package/dist/components/inputs/InlineCursorInput.js.map +1 -0
  38. package/dist/components/panes/PaneCard.d.ts +3 -1
  39. package/dist/components/panes/PaneCard.d.ts.map +1 -1
  40. package/dist/components/panes/PaneCard.js +14 -4
  41. package/dist/components/panes/PaneCard.js.map +1 -1
  42. package/dist/components/panes/PanesGrid.d.ts +4 -1
  43. package/dist/components/panes/PanesGrid.d.ts.map +1 -1
  44. package/dist/components/panes/PanesGrid.js +27 -15
  45. package/dist/components/panes/PanesGrid.js.map +1 -1
  46. package/dist/components/popups/config.d.ts +4 -4
  47. package/dist/components/popups/config.js +6 -6
  48. package/dist/components/popups/config.js.map +1 -1
  49. package/dist/components/popups/inputPopup.js +3 -3
  50. package/dist/components/popups/inputPopup.js.map +1 -1
  51. package/dist/components/popups/newPaneFieldNavigation.d.ts +9 -0
  52. package/dist/components/popups/newPaneFieldNavigation.d.ts.map +1 -0
  53. package/dist/components/popups/newPaneFieldNavigation.js +20 -0
  54. package/dist/components/popups/newPaneFieldNavigation.js.map +1 -0
  55. package/dist/components/popups/newPaneGitOptions.d.ts +23 -0
  56. package/dist/components/popups/newPaneGitOptions.d.ts.map +1 -0
  57. package/dist/components/popups/newPaneGitOptions.js +91 -0
  58. package/dist/components/popups/newPaneGitOptions.js.map +1 -0
  59. package/dist/components/popups/newPanePopup.d.ts +7 -2
  60. package/dist/components/popups/newPanePopup.d.ts.map +1 -1
  61. package/dist/components/popups/newPanePopup.js +256 -19
  62. package/dist/components/popups/newPanePopup.js.map +1 -1
  63. package/dist/components/popups/prReviewPopup.d.ts +12 -0
  64. package/dist/components/popups/prReviewPopup.d.ts.map +1 -0
  65. package/dist/components/popups/prReviewPopup.js +278 -0
  66. package/dist/components/popups/prReviewPopup.js.map +1 -0
  67. package/dist/components/popups/reopenWorktreePopup.js +1 -1
  68. package/dist/components/popups/reopenWorktreePopup.js.map +1 -1
  69. package/dist/components/popups/settingsPopup.js +72 -6
  70. package/dist/components/popups/settingsPopup.js.map +1 -1
  71. package/dist/components/ui/FooterHelp.d.ts.map +1 -1
  72. package/dist/components/ui/FooterHelp.js +5 -4
  73. package/dist/components/ui/FooterHelp.js.map +1 -1
  74. package/dist/hooks/useActionSystem.d.ts +12 -2
  75. package/dist/hooks/useActionSystem.d.ts.map +1 -1
  76. package/dist/hooks/useActionSystem.js +19 -1
  77. package/dist/hooks/useActionSystem.js.map +1 -1
  78. package/dist/hooks/useInputHandling.d.ts +5 -3
  79. package/dist/hooks/useInputHandling.d.ts.map +1 -1
  80. package/dist/hooks/useInputHandling.js +93 -32
  81. package/dist/hooks/useInputHandling.js.map +1 -1
  82. package/dist/hooks/usePaneCreation.d.ts +5 -3
  83. package/dist/hooks/usePaneCreation.d.ts.map +1 -1
  84. package/dist/hooks/usePaneCreation.js +16 -3
  85. package/dist/hooks/usePaneCreation.js.map +1 -1
  86. package/dist/hooks/usePaneLoading.d.ts.map +1 -1
  87. package/dist/hooks/usePaneLoading.js +28 -3
  88. package/dist/hooks/usePaneLoading.js.map +1 -1
  89. package/dist/hooks/usePaneSync.d.ts.map +1 -1
  90. package/dist/hooks/usePaneSync.js +8 -5
  91. package/dist/hooks/usePaneSync.js.map +1 -1
  92. package/dist/hooks/usePanes.d.ts.map +1 -1
  93. package/dist/hooks/usePanes.js +8 -1
  94. package/dist/hooks/usePanes.js.map +1 -1
  95. package/dist/hooks/useShellDetection.d.ts.map +1 -1
  96. package/dist/hooks/useShellDetection.js +7 -1
  97. package/dist/hooks/useShellDetection.js.map +1 -1
  98. package/dist/index.js +49 -22
  99. package/dist/index.js.map +1 -1
  100. package/dist/panes/decorative-pane.js +57 -27
  101. package/dist/panes/decorative-pane.js.map +1 -1
  102. package/dist/server/embedded-assets.d.ts.map +1 -1
  103. package/dist/server/embedded-assets.js +4 -12
  104. package/dist/server/embedded-assets.js.map +1 -1
  105. package/dist/services/DmuxFocusService.d.ts.map +1 -1
  106. package/dist/services/DmuxFocusService.js +19 -14
  107. package/dist/services/DmuxFocusService.js.map +1 -1
  108. package/dist/services/PaneEventService.d.ts +11 -0
  109. package/dist/services/PaneEventService.d.ts.map +1 -1
  110. package/dist/services/PaneEventService.js +31 -3
  111. package/dist/services/PaneEventService.js.map +1 -1
  112. package/dist/services/PaneWorkerManager.d.ts.map +1 -1
  113. package/dist/services/PaneWorkerManager.js +1 -0
  114. package/dist/services/PaneWorkerManager.js.map +1 -1
  115. package/dist/services/PopupManager.d.ts +23 -6
  116. package/dist/services/PopupManager.d.ts.map +1 -1
  117. package/dist/services/PopupManager.js +170 -33
  118. package/dist/services/PopupManager.js.map +1 -1
  119. package/dist/services/StatusDetector.d.ts +1 -0
  120. package/dist/services/StatusDetector.d.ts.map +1 -1
  121. package/dist/services/StatusDetector.js +44 -0
  122. package/dist/services/StatusDetector.js.map +1 -1
  123. package/dist/services/TmuxHookManager.d.ts.map +1 -1
  124. package/dist/services/TmuxHookManager.js +3 -2
  125. package/dist/services/TmuxHookManager.js.map +1 -1
  126. package/dist/services/TmuxService.d.ts +7 -0
  127. package/dist/services/TmuxService.d.ts.map +1 -1
  128. package/dist/services/TmuxService.js +15 -1
  129. package/dist/services/TmuxService.js.map +1 -1
  130. package/dist/theme/colors.d.ts +24 -10
  131. package/dist/theme/colors.d.ts.map +1 -1
  132. package/dist/theme/colors.js +143 -19
  133. package/dist/theme/colors.js.map +1 -1
  134. package/dist/theme/themePalette.d.ts +6 -0
  135. package/dist/theme/themePalette.d.ts.map +1 -0
  136. package/dist/theme/themePalette.js +18 -0
  137. package/dist/theme/themePalette.js.map +1 -0
  138. package/dist/types.d.ts +13 -0
  139. package/dist/types.d.ts.map +1 -1
  140. package/dist/utils/agentLaunch.d.ts +2 -0
  141. package/dist/utils/agentLaunch.d.ts.map +1 -1
  142. package/dist/utils/agentLaunch.js +10 -9
  143. package/dist/utils/agentLaunch.js.map +1 -1
  144. package/dist/utils/aiMerge.d.ts +4 -0
  145. package/dist/utils/aiMerge.d.ts.map +1 -1
  146. package/dist/utils/aiMerge.js +7 -4
  147. package/dist/utils/aiMerge.js.map +1 -1
  148. package/dist/utils/asciiArt.d.ts.map +1 -1
  149. package/dist/utils/asciiArt.js +2 -1
  150. package/dist/utils/asciiArt.js.map +1 -1
  151. package/dist/utils/attachAgent.d.ts.map +1 -1
  152. package/dist/utils/attachAgent.js +20 -1
  153. package/dist/utils/attachAgent.js.map +1 -1
  154. package/dist/utils/codexHooks.d.ts +25 -0
  155. package/dist/utils/codexHooks.d.ts.map +1 -0
  156. package/dist/utils/codexHooks.js +131 -0
  157. package/dist/utils/codexHooks.js.map +1 -0
  158. package/dist/utils/conflictResolutionPane.d.ts.map +1 -1
  159. package/dist/utils/conflictResolutionPane.js +4 -0
  160. package/dist/utils/conflictResolutionPane.js.map +1 -1
  161. package/dist/utils/devWatchCommand.d.ts.map +1 -1
  162. package/dist/utils/devWatchCommand.js +6 -2
  163. package/dist/utils/devWatchCommand.js.map +1 -1
  164. package/dist/utils/dmuxCommand.d.ts +4 -3
  165. package/dist/utils/dmuxCommand.d.ts.map +1 -1
  166. package/dist/utils/dmuxCommand.js +15 -14
  167. package/dist/utils/dmuxCommand.js.map +1 -1
  168. package/dist/utils/generated-agents-doc.d.ts +1 -1
  169. package/dist/utils/generated-agents-doc.d.ts.map +1 -1
  170. package/dist/utils/generated-agents-doc.js +46 -11
  171. package/dist/utils/generated-agents-doc.js.map +1 -1
  172. package/dist/utils/git.d.ts +8 -0
  173. package/dist/utils/git.d.ts.map +1 -1
  174. package/dist/utils/git.js +26 -0
  175. package/dist/utils/git.js.map +1 -1
  176. package/dist/utils/githubPullRequest.d.ts +18 -0
  177. package/dist/utils/githubPullRequest.d.ts.map +1 -0
  178. package/dist/utils/githubPullRequest.js +196 -0
  179. package/dist/utils/githubPullRequest.js.map +1 -0
  180. package/dist/utils/hooks.d.ts +15 -0
  181. package/dist/utils/hooks.d.ts.map +1 -1
  182. package/dist/utils/hooks.js +105 -0
  183. package/dist/utils/hooks.js.map +1 -1
  184. package/dist/utils/hooksDocs.d.ts +1 -1
  185. package/dist/utils/hooksDocs.d.ts.map +1 -1
  186. package/dist/utils/hooksDocs.js +21 -11
  187. package/dist/utils/hooksDocs.js.map +1 -1
  188. package/dist/utils/input.d.ts +7 -6
  189. package/dist/utils/input.d.ts.map +1 -1
  190. package/dist/utils/input.js +47 -24
  191. package/dist/utils/input.js.map +1 -1
  192. package/dist/utils/paneBootstrapConfig.d.ts +27 -0
  193. package/dist/utils/paneBootstrapConfig.d.ts.map +1 -0
  194. package/dist/utils/paneBootstrapConfig.js +2 -0
  195. package/dist/utils/paneBootstrapConfig.js.map +1 -0
  196. package/dist/utils/paneBootstrapRunner.d.ts +3 -0
  197. package/dist/utils/paneBootstrapRunner.d.ts.map +1 -0
  198. package/dist/utils/paneBootstrapRunner.js +517 -0
  199. package/dist/utils/paneBootstrapRunner.js.map +1 -0
  200. package/dist/utils/paneColors.d.ts +7 -0
  201. package/dist/utils/paneColors.d.ts.map +1 -0
  202. package/dist/utils/paneColors.js +42 -0
  203. package/dist/utils/paneColors.js.map +1 -0
  204. package/dist/utils/paneCreation.d.ts +3 -1
  205. package/dist/utils/paneCreation.d.ts.map +1 -1
  206. package/dist/utils/paneCreation.js +165 -225
  207. package/dist/utils/paneCreation.js.map +1 -1
  208. package/dist/utils/paneNaming.d.ts +16 -0
  209. package/dist/utils/paneNaming.d.ts.map +1 -0
  210. package/dist/utils/paneNaming.js +47 -0
  211. package/dist/utils/paneNaming.js.map +1 -0
  212. package/dist/utils/paneTitle.d.ts +1 -0
  213. package/dist/utils/paneTitle.d.ts.map +1 -1
  214. package/dist/utils/paneTitle.js +5 -1
  215. package/dist/utils/paneTitle.js.map +1 -1
  216. package/dist/utils/paneTitlePrefix.d.ts +8 -0
  217. package/dist/utils/paneTitlePrefix.d.ts.map +1 -0
  218. package/dist/utils/paneTitlePrefix.js +20 -0
  219. package/dist/utils/paneTitlePrefix.js.map +1 -0
  220. package/dist/utils/pathEnvironment.d.ts +6 -0
  221. package/dist/utils/pathEnvironment.d.ts.map +1 -0
  222. package/dist/utils/pathEnvironment.js +59 -0
  223. package/dist/utils/pathEnvironment.js.map +1 -0
  224. package/dist/utils/popup.d.ts +1 -0
  225. package/dist/utils/popup.d.ts.map +1 -1
  226. package/dist/utils/popup.js +9 -2
  227. package/dist/utils/popup.js.map +1 -1
  228. package/dist/utils/prSummary.d.ts +34 -0
  229. package/dist/utils/prSummary.d.ts.map +1 -0
  230. package/dist/utils/prSummary.js +130 -0
  231. package/dist/utils/prSummary.js.map +1 -0
  232. package/dist/utils/projectActions.d.ts +6 -0
  233. package/dist/utils/projectActions.d.ts.map +1 -1
  234. package/dist/utils/projectActions.js +46 -0
  235. package/dist/utils/projectActions.js.map +1 -1
  236. package/dist/utils/reopenWorktree.d.ts.map +1 -1
  237. package/dist/utils/reopenWorktree.js +37 -5
  238. package/dist/utils/reopenWorktree.js.map +1 -1
  239. package/dist/utils/resumeBranches.d.ts.map +1 -1
  240. package/dist/utils/resumeBranches.js +9 -3
  241. package/dist/utils/resumeBranches.js.map +1 -1
  242. package/dist/utils/settingsManager.d.ts +11 -3
  243. package/dist/utils/settingsManager.d.ts.map +1 -1
  244. package/dist/utils/settingsManager.js +106 -21
  245. package/dist/utils/settingsManager.js.map +1 -1
  246. package/dist/utils/shellPaneDetection.d.ts.map +1 -1
  247. package/dist/utils/shellPaneDetection.js +4 -0
  248. package/dist/utils/shellPaneDetection.js.map +1 -1
  249. package/dist/utils/sidebarProjects.d.ts +10 -3
  250. package/dist/utils/sidebarProjects.d.ts.map +1 -1
  251. package/dist/utils/sidebarProjects.js +125 -10
  252. package/dist/utils/sidebarProjects.js.map +1 -1
  253. package/dist/utils/tmuxHookCommands.d.ts +6 -0
  254. package/dist/utils/tmuxHookCommands.d.ts.map +1 -1
  255. package/dist/utils/tmuxHookCommands.js +12 -0
  256. package/dist/utils/tmuxHookCommands.js.map +1 -1
  257. package/dist/utils/tmuxSendKeys.d.ts +2 -0
  258. package/dist/utils/tmuxSendKeys.d.ts.map +1 -0
  259. package/dist/utils/tmuxSendKeys.js +8 -0
  260. package/dist/utils/tmuxSendKeys.js.map +1 -0
  261. package/dist/utils/toastLayout.d.ts +10 -0
  262. package/dist/utils/toastLayout.d.ts.map +1 -0
  263. package/dist/utils/toastLayout.js +24 -0
  264. package/dist/utils/toastLayout.js.map +1 -0
  265. package/dist/utils/welcomePane.d.ts +5 -1
  266. package/dist/utils/welcomePane.d.ts.map +1 -1
  267. package/dist/utils/welcomePane.js +33 -3
  268. package/dist/utils/welcomePane.js.map +1 -1
  269. package/dist/utils/welcomePaneManager.d.ts +3 -1
  270. package/dist/utils/welcomePaneManager.d.ts.map +1 -1
  271. package/dist/utils/welcomePaneManager.js +40 -2
  272. package/dist/utils/welcomePaneManager.js.map +1 -1
  273. package/dist/workers/PaneWorker.js +77 -0
  274. package/dist/workers/PaneWorker.js.map +1 -1
  275. package/dist/workers/WorkerMessages.d.ts +9 -1
  276. package/dist/workers/WorkerMessages.d.ts.map +1 -1
  277. package/dist/workers/WorkerMessages.js.map +1 -1
  278. package/dist/workers/panePollingWorker.js +33 -2
  279. package/dist/workers/panePollingWorker.js.map +1 -1
  280. package/package.json +1 -1
@@ -25,6 +25,10 @@ export interface HookEnvironment {
25
25
  DMUX_TARGET_BRANCH?: string;
26
26
  [key: string]: string | undefined;
27
27
  }
28
+ export interface HookProgressEvent {
29
+ stream: 'stdout' | 'stderr';
30
+ line: string;
31
+ }
28
32
  /**
29
33
  * Find a hook script with priority resolution:
30
34
  * 1. .dmux-hooks/ (version controlled, team hooks)
@@ -54,6 +58,17 @@ export declare function triggerHookSync(hookName: HookType, projectRoot: string,
54
58
  output?: string;
55
59
  error?: string;
56
60
  }>;
61
+ /**
62
+ * Execute a blocking hook with streamed output.
63
+ *
64
+ * This is for lifecycle gates that must complete before dmux can continue,
65
+ * while still letting the caller surface live progress in a pane-local UI.
66
+ */
67
+ export declare function triggerHookWithProgress(hookName: HookType, projectRoot: string, pane?: DmuxPane, extraData?: Record<string, string>, onProgress?: (event: HookProgressEvent) => void, timeoutMs?: number): Promise<{
68
+ success: boolean;
69
+ output?: string;
70
+ error?: string;
71
+ }>;
57
72
  /**
58
73
  * Check if a hook exists for a given hook type
59
74
  */
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/utils/hooks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,oBAAoB,GACpB,cAAc,GACd,kBAAkB,GAClB,mBAAmB,GACnB,aAAa,GACb,wBAAwB,GACxB,kBAAkB,GAClB,WAAW,GACX,YAAY,GACZ,UAAU,GACV,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,eAAe;IAE9B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAuB/E;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,QAAQ,EACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,OAAO,CAAC,eAAe,CAAC,CAiC1B;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,QAAQ,EACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC,CAsDf;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,QAAQ,EACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,SAAS,GAAE,MAAc,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqChE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAExE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,EAAE,CAgBlE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAuGlE"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/utils/hooks.ts"],"names":[],"mappings":"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"}
@@ -166,6 +166,111 @@ export async function triggerHookSync(hookName, projectRoot, pane, extraData, ti
166
166
  };
167
167
  }
168
168
  }
169
+ /**
170
+ * Execute a blocking hook with streamed output.
171
+ *
172
+ * This is for lifecycle gates that must complete before dmux can continue,
173
+ * while still letting the caller surface live progress in a pane-local UI.
174
+ */
175
+ export async function triggerHookWithProgress(hookName, projectRoot, pane, extraData, onProgress, timeoutMs = 30000) {
176
+ const hookPath = findHook(projectRoot, hookName);
177
+ if (!hookPath) {
178
+ return { success: true };
179
+ }
180
+ const env = await buildHookEnvironment(projectRoot, pane, extraData);
181
+ const startMsg = `Executing ${hookName} hook (streaming): ${hookPath}`;
182
+ LogService.getInstance().debug(startMsg, 'hooks');
183
+ return new Promise((resolve) => {
184
+ let stdout = '';
185
+ let stderr = '';
186
+ let stdoutRemainder = '';
187
+ let stderrRemainder = '';
188
+ let settled = false;
189
+ const flushLines = (stream, chunk, remainder) => {
190
+ const content = remainder + chunk;
191
+ const lines = content.split(/\r?\n/);
192
+ const nextRemainder = lines.pop() || '';
193
+ for (const rawLine of lines) {
194
+ const line = rawLine.trim();
195
+ if (line) {
196
+ onProgress?.({ stream, line });
197
+ }
198
+ }
199
+ return nextRemainder;
200
+ };
201
+ const finish = (result) => {
202
+ if (settled)
203
+ return;
204
+ settled = true;
205
+ if (stdoutRemainder.trim()) {
206
+ onProgress?.({ stream: 'stdout', line: stdoutRemainder.trim() });
207
+ }
208
+ if (stderrRemainder.trim()) {
209
+ onProgress?.({ stream: 'stderr', line: stderrRemainder.trim() });
210
+ }
211
+ resolve(result);
212
+ };
213
+ let child;
214
+ try {
215
+ child = spawn(hookPath, [], {
216
+ env: env,
217
+ cwd: projectRoot,
218
+ stdio: ['ignore', 'pipe', 'pipe'],
219
+ });
220
+ }
221
+ catch (error) {
222
+ const errorMsg = error instanceof Error ? error.message : String(error);
223
+ LogService.getInstance().error(`${hookName} failed to start: ${errorMsg}`, 'hooks', undefined, error instanceof Error ? error : undefined);
224
+ finish({ success: false, error: errorMsg, output: '' });
225
+ return;
226
+ }
227
+ const timeout = timeoutMs > 0
228
+ ? setTimeout(() => {
229
+ child.kill('SIGTERM');
230
+ finish({
231
+ success: false,
232
+ error: `${hookName} timed out after ${timeoutMs}ms`,
233
+ output: stdout,
234
+ });
235
+ }, timeoutMs)
236
+ : null;
237
+ child.stdout?.on('data', (data) => {
238
+ const chunk = data.toString();
239
+ stdout += chunk;
240
+ stdoutRemainder = flushLines('stdout', chunk, stdoutRemainder);
241
+ });
242
+ child.stderr?.on('data', (data) => {
243
+ const chunk = data.toString();
244
+ stderr += chunk;
245
+ stderrRemainder = flushLines('stderr', chunk, stderrRemainder);
246
+ });
247
+ child.on('error', (error) => {
248
+ if (timeout)
249
+ clearTimeout(timeout);
250
+ const errorMsg = error.message || String(error);
251
+ LogService.getInstance().error(`${hookName} failed: ${errorMsg}`, 'hooks', undefined, error instanceof Error ? error : undefined);
252
+ finish({ success: false, error: errorMsg, output: stdout });
253
+ });
254
+ child.on('close', (code) => {
255
+ if (timeout)
256
+ clearTimeout(timeout);
257
+ if (settled)
258
+ return;
259
+ if (code === 0) {
260
+ LogService.getInstance().debug(`${hookName} completed successfully`, 'hooks');
261
+ finish({ success: true, output: stdout });
262
+ return;
263
+ }
264
+ const errorMsg = stderr.trim() || `${hookName} exited with code ${code}`;
265
+ LogService.getInstance().error(`${hookName} failed: ${errorMsg}`, 'hooks');
266
+ finish({
267
+ success: false,
268
+ error: errorMsg,
269
+ output: stdout,
270
+ });
271
+ });
272
+ });
273
+ }
169
274
  /**
170
275
  * Check if a hook exists for a given hook type
171
276
  */
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/utils/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/utils/hooks.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export declare const HOOKS_README = "# dmux Hooks\n\nThis directory contains hoo
10
10
  /**
11
11
  * Example: worktree_created hook
12
12
  */
13
- export declare const EXAMPLE_WORKTREE_CREATED = "#!/bin/bash\n# Example: worktree_created hook\n#\n# This hook runs after a new worktree is created and the agent is launched.\n# Use it to set up the worktree environment (install deps, copy configs, etc.)\n\nset -e # Exit on error\n\necho \"[Hook] Setting up worktree: $DMUX_SLUG\"\n\ncd \"$DMUX_WORKTREE_PATH\"\n\n# Install dependencies in background (don't block dmux)\nif [ -f \"pnpm-lock.yaml\" ]; then\n echo \"[Hook] Installing dependencies with pnpm...\"\n pnpm install --prefer-offline &\nelif [ -f \"package-lock.json\" ]; then\n echo \"[Hook] Installing dependencies with npm...\"\n npm install &\nelif [ -f \"yarn.lock\" ]; then\n echo \"[Hook] Installing dependencies with yarn...\"\n yarn install &\nfi\n\n# Copy environment file if it exists\nif [ -f \"$DMUX_ROOT/.env.local\" ]; then\n echo \"[Hook] Copying .env.local\"\n cp \"$DMUX_ROOT/.env.local\" \"$DMUX_WORKTREE_PATH/.env.local\"\nfi\n\n# Keep existing git author identity.\n# Do not set git user.name/user.email in this hook.\n\n# Create a log entry\necho \"[$(date)] Created worktree: $DMUX_SLUG | Agent: $DMUX_AGENT | Prompt: $DMUX_PROMPT\" \\\n >> \"$DMUX_ROOT/.dmux/worktree_history.log\"\n\necho \"[Hook] Worktree setup complete!\"\n";
13
+ export declare const EXAMPLE_WORKTREE_CREATED = "#!/bin/bash\n# Example: worktree_created hook\n#\n# This hook runs after a new worktree is created and before the agent launches.\n# Use it to set up the worktree environment (install deps, copy configs, etc.)\n# Stdout/stderr is streamed into the new pane's setup UI while this hook runs.\n# dmux waits for this hook without a fixed timeout.\n\nset -e # Exit on error\n\nstatus() {\n if [ \"${DMUX_PROGRESS:-0}\" = \"1\" ]; then\n echo \"${DMUX_STATUS_PREFIX:-DMUX_STATUS:} $*\"\n else\n echo \"[Hook] $*\"\n fi\n}\n\nstatus \"Setting up worktree: $DMUX_SLUG\"\n\ncd \"$DMUX_WORKTREE_PATH\"\n\n# Install dependencies before the agent launches.\nif [ -f \"pnpm-lock.yaml\" ]; then\n status \"Installing dependencies with pnpm\"\n pnpm install --prefer-offline\nelif [ -f \"package-lock.json\" ]; then\n status \"Installing dependencies with npm\"\n npm install\nelif [ -f \"yarn.lock\" ]; then\n status \"Installing dependencies with yarn\"\n yarn install\nfi\n\n# Copy environment file if it exists\nif [ -f \"$DMUX_ROOT/.env.local\" ]; then\n status \"Copying .env.local\"\n cp \"$DMUX_ROOT/.env.local\" \"$DMUX_WORKTREE_PATH/.env.local\"\nfi\n\n# Keep existing git author identity.\n# Do not set git user.name/user.email in this hook.\n\n# Create a log entry\necho \"[$(date)] Created worktree: $DMUX_SLUG | Agent: $DMUX_AGENT | Prompt: $DMUX_PROMPT\" \\\n >> \"$DMUX_ROOT/.dmux/worktree_history.log\"\n\nstatus \"Worktree setup complete\"\n";
14
14
  /**
15
15
  * Example: run_dev hook
16
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"hooksDocs.d.ts","sourceRoot":"","sources":["../../src/utils/hooksDocs.ts"],"names":[],"mappings":"AA+BA;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAY,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,YAAY,03CAqDxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,2sCAsCpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,2+DA8D3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,86CA6D5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,yvEAkE9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;CAKzB,CAAC"}
1
+ {"version":3,"file":"hooksDocs.d.ts","sourceRoot":"","sources":["../../src/utils/hooksDocs.ts"],"names":[],"mappings":"AA+BA;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAY,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,YAAY,03CAqDxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,47CAgDpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,2+DA8D3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,86CA6D5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,yvEAkE9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;CAKzB,CAAC"}
@@ -96,30 +96,40 @@ This directory is **version controlled**. Hooks you create here will be shared w
96
96
  export const EXAMPLE_WORKTREE_CREATED = `#!/bin/bash
97
97
  # Example: worktree_created hook
98
98
  #
99
- # This hook runs after a new worktree is created and the agent is launched.
99
+ # This hook runs after a new worktree is created and before the agent launches.
100
100
  # Use it to set up the worktree environment (install deps, copy configs, etc.)
101
+ # Stdout/stderr is streamed into the new pane's setup UI while this hook runs.
102
+ # dmux waits for this hook without a fixed timeout.
101
103
 
102
104
  set -e # Exit on error
103
105
 
104
- echo "[Hook] Setting up worktree: $DMUX_SLUG"
106
+ status() {
107
+ if [ "\${DMUX_PROGRESS:-0}" = "1" ]; then
108
+ echo "\${DMUX_STATUS_PREFIX:-DMUX_STATUS:} $*"
109
+ else
110
+ echo "[Hook] $*"
111
+ fi
112
+ }
113
+
114
+ status "Setting up worktree: $DMUX_SLUG"
105
115
 
106
116
  cd "$DMUX_WORKTREE_PATH"
107
117
 
108
- # Install dependencies in background (don't block dmux)
118
+ # Install dependencies before the agent launches.
109
119
  if [ -f "pnpm-lock.yaml" ]; then
110
- echo "[Hook] Installing dependencies with pnpm..."
111
- pnpm install --prefer-offline &
120
+ status "Installing dependencies with pnpm"
121
+ pnpm install --prefer-offline
112
122
  elif [ -f "package-lock.json" ]; then
113
- echo "[Hook] Installing dependencies with npm..."
114
- npm install &
123
+ status "Installing dependencies with npm"
124
+ npm install
115
125
  elif [ -f "yarn.lock" ]; then
116
- echo "[Hook] Installing dependencies with yarn..."
117
- yarn install &
126
+ status "Installing dependencies with yarn"
127
+ yarn install
118
128
  fi
119
129
 
120
130
  # Copy environment file if it exists
121
131
  if [ -f "$DMUX_ROOT/.env.local" ]; then
122
- echo "[Hook] Copying .env.local"
132
+ status "Copying .env.local"
123
133
  cp "$DMUX_ROOT/.env.local" "$DMUX_WORKTREE_PATH/.env.local"
124
134
  fi
125
135
 
@@ -130,7 +140,7 @@ fi
130
140
  echo "[\$(date)] Created worktree: $DMUX_SLUG | Agent: $DMUX_AGENT | Prompt: $DMUX_PROMPT" \\
131
141
  >> "$DMUX_ROOT/.dmux/worktree_history.log"
132
142
 
133
- echo "[Hook] Worktree setup complete!"
143
+ status "Worktree setup complete"
134
144
  `;
135
145
  /**
136
146
  * Example: run_dev hook
@@ -1 +1 @@
1
- {"version":3,"file":"hooksDocs.js","sourceRoot":"","sources":["../../src/utils/hooksDocs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG;;;;;;;;;;;CAW1B,CAAC;AAEF,IAAI,SAAiB,CAAC;AACtB,MAAM,2BAA2B,GAAG,wBAAwB,GAAG,KAAK,CAAC;AACrE,IAAI,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAC7D,SAAS,GAAG,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ;QAClD,CAAC,CAAC,UAAU,CAAC,SAAS;QACtB,CAAC,CAAC,kBAAkB,CAAC;AACzB,CAAC;AAAC,MAAM,CAAC;IACP,SAAS,GAAG,kBAAkB,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqD3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCvC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8D9B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6D/B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEjC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,0BAA0B,EAAE,wBAAwB;IACpD,iBAAiB,EAAE,eAAe;IAClC,kBAAkB,EAAE,gBAAgB;IACpC,oBAAoB,EAAE,kBAAkB;CACzC,CAAC"}
1
+ {"version":3,"file":"hooksDocs.js","sourceRoot":"","sources":["../../src/utils/hooksDocs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG;;;;;;;;;;;CAW1B,CAAC;AAEF,IAAI,SAAiB,CAAC;AACtB,MAAM,2BAA2B,GAAG,wBAAwB,GAAG,KAAK,CAAC;AACrE,IAAI,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAC7D,SAAS,GAAG,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ;QAClD,CAAC,CAAC,UAAU,CAAC,SAAS;QACtB,CAAC,CAAC,kBAAkB,CAAC;AACzB,CAAC;AAAC,MAAM,CAAC;IACP,SAAS,GAAG,kBAAkB,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqD3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDvC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8D9B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6D/B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEjC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,0BAA0B,EAAE,wBAAwB;IACpD,iBAAiB,EAAE,eAAe;IAClC,kBAAkB,EAAE,gBAAgB;IACpC,oBAAoB,EAAE,kBAAkB;CACzC,CAAC"}
@@ -1,12 +1,13 @@
1
+ export declare const findCharIndexAtWidth: (str: string, targetWidth: number) => number;
1
2
  export declare const preprocessPastedContent: (input: string) => string;
2
- export declare const wrapText: (text: string, width: number) => {
3
+ export interface WrappedLine {
3
4
  line: string;
4
5
  isHardBreak: boolean;
5
- }[];
6
- export declare const findCursorInWrappedLines: (wrappedLines: {
7
- line: string;
8
- isHardBreak: boolean;
9
- }[], absoluteCursor: number) => {
6
+ /** Number of characters consumed at the break that don't belong to either line (0 or 1). */
7
+ gapSize: number;
8
+ }
9
+ export declare const wrapText: (text: string, width: number) => WrappedLine[];
10
+ export declare const findCursorInWrappedLines: (wrappedLines: WrappedLine[], absoluteCursor: number) => {
10
11
  line: number;
11
12
  col: number;
12
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/utils/input.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,GAAI,OAAO,MAAM,KAAG,MA+BvD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,EAiC5F,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,cAAc;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,EAAE,EACtD,gBAAgB,MAAM;;;CAsBvB,CAAC"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/utils/input.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,oBAAoB,GAAI,KAAK,MAAM,EAAE,aAAa,MAAM,KAAG,MAUvE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,OAAO,MAAM,KAAG,MA+BvD,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,WAAW,EAsCjE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,cAAc,WAAW,EAAE,EAC3B,gBAAgB,MAAM;;;CAsBvB,CAAC"}
@@ -1,3 +1,24 @@
1
+ import stringWidth from 'string-width';
2
+ const graphemeSegmenter = typeof Intl !== 'undefined' && 'Segmenter' in Intl
3
+ ? new Intl.Segmenter(undefined, { granularity: 'grapheme' })
4
+ : null;
5
+ const getGraphemes = (str) => (graphemeSegmenter
6
+ ? Array.from(graphemeSegmenter.segment(str), ({ segment }) => segment)
7
+ : Array.from(str));
8
+ // Find the UTF-16 string index where cumulative display width would exceed targetWidth.
9
+ // Returns the string index for the last whole grapheme that fits within targetWidth columns.
10
+ export const findCharIndexAtWidth = (str, targetWidth) => {
11
+ let width = 0;
12
+ let stringIndex = 0;
13
+ for (const grapheme of getGraphemes(str)) {
14
+ const cw = stringWidth(grapheme);
15
+ if (width + cw > targetWidth)
16
+ return stringIndex;
17
+ width += cw;
18
+ stringIndex += grapheme.length;
19
+ }
20
+ return str.length;
21
+ };
1
22
  export const preprocessPastedContent = (input) => {
2
23
  let cleaned = input.replace(/\x1b\[[0-9;]*m/g, '');
3
24
  cleaned = cleaned.replace(/\x1b\[[\d;]*[A-Za-z]/g, '');
@@ -32,37 +53,42 @@ export const preprocessPastedContent = (input) => {
32
53
  };
33
54
  export const wrapText = (text, width) => {
34
55
  if (!text)
35
- return [{ line: '', isHardBreak: false }];
56
+ return [{ line: '', isHardBreak: false, gapSize: 0 }];
36
57
  const hardLines = text.split('\n');
37
58
  const wrappedLines = [];
38
59
  for (let i = 0; i < hardLines.length; i++) {
39
60
  const hardLine = hardLines[i];
40
61
  const isLastHardLine = i === hardLines.length - 1;
41
- if (hardLine.length <= width) {
42
- wrappedLines.push({ line: hardLine, isHardBreak: !isLastHardLine });
62
+ if (stringWidth(hardLine) <= width) {
63
+ wrappedLines.push({ line: hardLine, isHardBreak: !isLastHardLine, gapSize: !isLastHardLine ? 1 : 0 });
43
64
  }
44
65
  else {
45
66
  let remaining = hardLine;
46
67
  while (remaining.length > 0) {
47
- if (remaining.length <= width) {
48
- wrappedLines.push({ line: remaining, isHardBreak: !isLastHardLine });
68
+ if (stringWidth(remaining) <= width) {
69
+ wrappedLines.push({ line: remaining, isHardBreak: !isLastHardLine, gapSize: !isLastHardLine ? 1 : 0 });
49
70
  break;
50
71
  }
51
- let breakPoint = width;
52
- let lastSpace = remaining.lastIndexOf(' ', width - 1);
53
- if (lastSpace > 0)
72
+ // Find how many characters fit within the display width
73
+ const maxCharIdx = findCharIndexAtWidth(remaining, width);
74
+ // Try to break at a space within the fitting range
75
+ let breakPoint = maxCharIdx;
76
+ const lastSpace = remaining.lastIndexOf(' ', maxCharIdx - 1);
77
+ if (lastSpace > 0) {
54
78
  breakPoint = lastSpace;
79
+ }
55
80
  else {
56
81
  const firstSpace = remaining.indexOf(' ');
57
- if (firstSpace > 0 && firstSpace < width)
82
+ if (firstSpace > 0 && firstSpace < maxCharIdx)
58
83
  breakPoint = firstSpace;
59
84
  else
60
- breakPoint = Math.min(width, remaining.length);
85
+ breakPoint = Math.max(1, maxCharIdx); // ensure at least 1 char progress
61
86
  }
62
87
  const segment = remaining.slice(0, breakPoint);
63
- wrappedLines.push({ line: segment.trimEnd(), isHardBreak: false });
64
88
  const nextChar = remaining[breakPoint];
65
- if (nextChar === ' ')
89
+ const spaceBreak = nextChar === ' ';
90
+ wrappedLines.push({ line: segment.trimEnd(), isHardBreak: false, gapSize: spaceBreak ? 1 : 0 });
91
+ if (spaceBreak)
66
92
  remaining = remaining.slice(breakPoint + 1);
67
93
  else
68
94
  remaining = remaining.slice(breakPoint);
@@ -78,21 +104,18 @@ export const findCursorInWrappedLines = (wrappedLines, absoluteCursor) => {
78
104
  for (let lineIndex = 0; lineIndex < wrappedLines.length; lineIndex++) {
79
105
  const wrappedLine = wrappedLines[lineIndex];
80
106
  const lineLength = wrappedLine.line.length;
81
- if (absoluteCursor <= currentPos + lineLength) {
107
+ const isLastLine = lineIndex === wrappedLines.length - 1;
108
+ // For forced breaks (gapSize=0, not last line), cursor at the boundary
109
+ // belongs to the NEXT line since no gap character was consumed.
110
+ // For gap breaks (gapSize>0) or last line, cursor at boundary stays here.
111
+ const endInclusive = wrappedLine.gapSize > 0 || isLastLine;
112
+ if (endInclusive
113
+ ? absoluteCursor <= currentPos + lineLength
114
+ : absoluteCursor < currentPos + lineLength) {
82
115
  const colInLine = absoluteCursor - currentPos;
83
116
  return { line: lineIndex, col: Math.max(0, Math.min(colInLine, lineLength)) };
84
117
  }
85
- currentPos += lineLength;
86
- if (wrappedLine.isHardBreak) {
87
- currentPos++;
88
- if (absoluteCursor === currentPos - 1)
89
- return { line: lineIndex, col: lineLength };
90
- }
91
- else if (lineIndex < wrappedLines.length - 1) {
92
- currentPos++;
93
- if (absoluteCursor === currentPos - 1)
94
- return { line: lineIndex, col: lineLength };
95
- }
118
+ currentPos += lineLength + wrappedLine.gapSize;
96
119
  }
97
120
  const lastLine = wrappedLines[wrappedLines.length - 1];
98
121
  return { line: wrappedLines.length - 1, col: lastLine ? lastLine.line.length : 0 };
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/utils/input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/utils/input.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { DmuxPane } from '../types.js';
2
+ import type { AgentName, PermissionMode } from './agentLaunch.js';
3
+ export declare const DMUX_BOOTSTRAP_PANE_TITLE_PREFIX = "dmux-bootstrap:";
4
+ export interface PaneBootstrapConfig {
5
+ version: 1;
6
+ projectRoot: string;
7
+ worktreePath: string;
8
+ branchName: string;
9
+ slug: string;
10
+ prompt: string;
11
+ agent?: AgentName;
12
+ permissionMode?: PermissionMode;
13
+ pane: DmuxPane;
14
+ tmuxTitle: string;
15
+ existingWorktree: boolean;
16
+ resolvedStartPoint?: string;
17
+ isHooksEditingSession: boolean;
18
+ metadata: {
19
+ agent?: AgentName;
20
+ permissionMode?: PermissionMode;
21
+ displayName?: string;
22
+ branchName?: string;
23
+ mergeTargetChain?: DmuxPane['mergeTargetChain'];
24
+ };
25
+ hookExtraEnv?: Record<string, string>;
26
+ }
27
+ //# sourceMappingURL=paneBootstrapConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paneBootstrapConfig.d.ts","sourceRoot":"","sources":["../../src/utils/paneBootstrapConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElE,eAAO,MAAM,gCAAgC,oBAAoB,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,QAAQ,EAAE;QACR,KAAK,CAAC,EAAE,SAAS,CAAC;QAClB,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,gBAAgB,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;KACjD,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC"}
@@ -0,0 +1,2 @@
1
+ export const DMUX_BOOTSTRAP_PANE_TITLE_PREFIX = 'dmux-bootstrap:';
2
+ //# sourceMappingURL=paneBootstrapConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paneBootstrapConfig.js","sourceRoot":"","sources":["../../src/utils/paneBootstrapConfig.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gCAAgC,GAAG,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=paneBootstrapRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paneBootstrapRunner.d.ts","sourceRoot":"","sources":["../../src/utils/paneBootstrapRunner.ts"],"names":[],"mappings":""}