aicodeman 1.41.1 → 1.43.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 (276) hide show
  1. package/README.md +54 -24
  2. package/dist/claude-session-title.d.ts +6 -4
  3. package/dist/claude-session-title.d.ts.map +1 -1
  4. package/dist/claude-session-title.js +6 -4
  5. package/dist/claude-session-title.js.map +1 -1
  6. package/dist/cli-agent.js +1 -1
  7. package/dist/cli-agent.js.map +1 -1
  8. package/dist/config/cli-registry/patterns.d.ts +1 -1
  9. package/dist/config/cli-registry/patterns.d.ts.map +1 -1
  10. package/dist/config/cli-registry/patterns.js +3 -0
  11. package/dist/config/cli-registry/patterns.js.map +1 -1
  12. package/dist/config/cli-registry/schema.d.ts +3 -0
  13. package/dist/config/cli-registry/schema.d.ts.map +1 -1
  14. package/dist/config/cli-registry/schema.js +19 -3
  15. package/dist/config/cli-registry/schema.js.map +1 -1
  16. package/dist/config/cli-registry/stock.d.ts.map +1 -1
  17. package/dist/config/cli-registry/stock.js +302 -7
  18. package/dist/config/cli-registry/stock.js.map +1 -1
  19. package/dist/config/cli-registry/types.d.ts +37 -3
  20. package/dist/config/cli-registry/types.d.ts.map +1 -1
  21. package/dist/git-worktrees.d.ts +292 -0
  22. package/dist/git-worktrees.d.ts.map +1 -0
  23. package/dist/git-worktrees.js +791 -0
  24. package/dist/git-worktrees.js.map +1 -0
  25. package/dist/hooks-config.d.ts +9 -0
  26. package/dist/hooks-config.d.ts.map +1 -1
  27. package/dist/hooks-config.js +12 -0
  28. package/dist/hooks-config.js.map +1 -1
  29. package/dist/mcp-server.d.ts.map +1 -1
  30. package/dist/mcp-server.js +2 -1
  31. package/dist/mcp-server.js.map +1 -1
  32. package/dist/mcp-sync-targets.d.ts +6 -3
  33. package/dist/mcp-sync-targets.d.ts.map +1 -1
  34. package/dist/mcp-sync-targets.js +6 -3
  35. package/dist/mcp-sync-targets.js.map +1 -1
  36. package/dist/mux-interface.d.ts +7 -3
  37. package/dist/mux-interface.d.ts.map +1 -1
  38. package/dist/services/unified-session-service.d.ts +8 -0
  39. package/dist/services/unified-session-service.d.ts.map +1 -1
  40. package/dist/services/unified-session-service.js +21 -0
  41. package/dist/services/unified-session-service.js.map +1 -1
  42. package/dist/session-activity.d.ts +51 -0
  43. package/dist/session-activity.d.ts.map +1 -1
  44. package/dist/session-activity.js +62 -0
  45. package/dist/session-activity.js.map +1 -1
  46. package/dist/session-cli-registry-bridge.d.ts +2 -1
  47. package/dist/session-cli-registry-bridge.d.ts.map +1 -1
  48. package/dist/session-cli-registry-bridge.js.map +1 -1
  49. package/dist/session-submit-verifier.js +1 -1
  50. package/dist/session.d.ts +84 -9
  51. package/dist/session.d.ts.map +1 -1
  52. package/dist/session.js +232 -18
  53. package/dist/session.js.map +1 -1
  54. package/dist/tmux-manager.d.ts +62 -7
  55. package/dist/tmux-manager.d.ts.map +1 -1
  56. package/dist/tmux-manager.js +98 -20
  57. package/dist/tmux-manager.js.map +1 -1
  58. package/dist/types/session.d.ts +32 -4
  59. package/dist/types/session.d.ts.map +1 -1
  60. package/dist/types/session.js +2 -1
  61. package/dist/types/session.js.map +1 -1
  62. package/dist/utils/cli-installed-probes.d.ts +1 -1
  63. package/dist/utils/cli-installed-probes.d.ts.map +1 -1
  64. package/dist/utils/cli-installed-probes.js +4 -2
  65. package/dist/utils/cli-installed-probes.js.map +1 -1
  66. package/dist/utils/copilot-cli-resolver.d.ts +48 -0
  67. package/dist/utils/copilot-cli-resolver.d.ts.map +1 -0
  68. package/dist/utils/copilot-cli-resolver.js +112 -0
  69. package/dist/utils/copilot-cli-resolver.js.map +1 -0
  70. package/dist/utils/deepseek-cli-resolver.d.ts.map +1 -1
  71. package/dist/utils/deepseek-cli-resolver.js +1 -1
  72. package/dist/utils/deepseek-cli-resolver.js.map +1 -1
  73. package/dist/utils/index.d.ts +1 -0
  74. package/dist/utils/index.d.ts.map +1 -1
  75. package/dist/utils/index.js +1 -0
  76. package/dist/utils/index.js.map +1 -1
  77. package/dist/web/approval-inbox.d.ts +12 -2
  78. package/dist/web/approval-inbox.d.ts.map +1 -1
  79. package/dist/web/approval-inbox.js +7 -2
  80. package/dist/web/approval-inbox.js.map +1 -1
  81. package/dist/web/case-path.d.ts +4 -2
  82. package/dist/web/case-path.d.ts.map +1 -1
  83. package/dist/web/case-path.js +13 -4
  84. package/dist/web/case-path.js.map +1 -1
  85. package/dist/web/public/admin-ui.js.gz +0 -0
  86. package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
  87. package/dist/web/public/app.ae50029a.js +43 -0
  88. package/dist/web/public/app.ae50029a.js.br +0 -0
  89. package/dist/web/public/app.ae50029a.js.gz +0 -0
  90. package/dist/web/public/approvals-ui.js.gz +0 -0
  91. package/dist/web/public/{constants.17d77b65.js → constants.e5e588db.js} +156 -2
  92. package/dist/web/public/constants.e5e588db.js.br +0 -0
  93. package/dist/web/public/constants.e5e588db.js.gz +0 -0
  94. package/dist/web/public/cron-ui.js.gz +0 -0
  95. package/dist/web/public/entrance-animations.js.gz +0 -0
  96. package/dist/web/public/git-status-ui.js.gz +0 -0
  97. package/dist/web/public/home-sessions.js.gz +0 -0
  98. package/dist/web/public/host-wake-ui.js.gz +0 -0
  99. package/dist/web/public/i18n.8f291f06.js +2 -0
  100. package/dist/web/public/i18n.8f291f06.js.br +0 -0
  101. package/dist/web/public/i18n.8f291f06.js.gz +0 -0
  102. package/dist/web/public/{image-input.9ed1d0d2.js → image-input.941386e7.js} +41 -22
  103. package/dist/web/public/image-input.941386e7.js.br +0 -0
  104. package/dist/web/public/image-input.941386e7.js.gz +0 -0
  105. package/dist/web/public/index.html +88 -16
  106. package/dist/web/public/index.html.br +0 -0
  107. package/dist/web/public/index.html.gz +0 -0
  108. package/dist/web/public/input-cjk.8bc46081.js.gz +0 -0
  109. package/dist/web/public/{keyboard-accessory.c458eea8.js → keyboard-accessory.c283e827.js} +40 -29
  110. package/dist/web/public/keyboard-accessory.c283e827.js.br +0 -0
  111. package/dist/web/public/keyboard-accessory.c283e827.js.gz +0 -0
  112. package/dist/web/public/mobile-handlers.0ef9c311.js.gz +0 -0
  113. package/dist/web/public/mobile-ime-preview.2dbaf262.js.gz +0 -0
  114. package/dist/web/public/mobile-overview.js +1 -0
  115. package/dist/web/public/mobile-overview.js.br +0 -0
  116. package/dist/web/public/mobile-overview.js.gz +0 -0
  117. package/dist/web/public/mobile.13514863.css +1 -0
  118. package/dist/web/public/mobile.13514863.css.br +0 -0
  119. package/dist/web/public/mobile.13514863.css.gz +0 -0
  120. package/dist/web/public/notification-manager.feb82c04.js.gz +0 -0
  121. package/dist/web/public/orchestrator-panel.js.gz +0 -0
  122. package/dist/web/public/{panels-ui.73ec0137.js → panels-ui.b7bfb9da.js} +6 -6
  123. package/dist/web/public/panels-ui.b7bfb9da.js.br +0 -0
  124. package/dist/web/public/panels-ui.b7bfb9da.js.gz +0 -0
  125. package/dist/web/public/ralph-panel.b350e2ef.js.gz +0 -0
  126. package/dist/web/public/ralph-wizard.b6c0dd19.js.gz +0 -0
  127. package/dist/web/public/readmymind-ui.js.gz +0 -0
  128. package/dist/web/public/reboot-restore-ui.js.gz +0 -0
  129. package/dist/web/public/{respawn-ui.ff0dae4c.js → respawn-ui.d7adcf6a.js} +1 -1
  130. package/dist/web/public/respawn-ui.d7adcf6a.js.br +0 -0
  131. package/dist/web/public/respawn-ui.d7adcf6a.js.gz +0 -0
  132. package/dist/web/public/sanitize-html.e7147e76.js.gz +0 -0
  133. package/dist/web/public/security-notices.json +21 -0
  134. package/dist/web/public/session-lineage.js.gz +0 -0
  135. package/dist/web/public/session-ui.be076c88.js +100 -0
  136. package/dist/web/public/session-ui.be076c88.js.br +0 -0
  137. package/dist/web/public/session-ui.be076c88.js.gz +0 -0
  138. package/dist/web/public/settings-ui.fc4cc50a.js +97 -0
  139. package/dist/web/public/settings-ui.fc4cc50a.js.br +0 -0
  140. package/dist/web/public/settings-ui.fc4cc50a.js.gz +0 -0
  141. package/dist/web/public/spreadsheet-preview-worker.js.gz +0 -0
  142. package/dist/web/public/spreadsheet-preview.75c751de.js.gz +0 -0
  143. package/dist/web/public/spreadsheet-xlsx-core.js.gz +0 -0
  144. package/dist/web/public/styles.dcfa907f.css +1 -0
  145. package/dist/web/public/styles.dcfa907f.css.br +0 -0
  146. package/dist/web/public/styles.dcfa907f.css.gz +0 -0
  147. package/dist/web/public/subagent-windows.07277a58.js.gz +0 -0
  148. package/dist/web/public/sw.js +2 -2
  149. package/dist/web/public/sw.js.br +0 -0
  150. package/dist/web/public/sw.js.gz +0 -0
  151. package/dist/web/public/tab-layout-browser.2d6189f7.js.gz +0 -0
  152. package/dist/web/public/tab-rail-resize.7157e0bd.js.gz +0 -0
  153. package/dist/web/public/terminal-keycode229-recovery.af09f99a.js.gz +0 -0
  154. package/dist/web/public/terminal-split.js.gz +0 -0
  155. package/dist/web/public/terminal-tile.js +1 -0
  156. package/dist/web/public/terminal-tile.js.br +0 -0
  157. package/dist/web/public/terminal-tile.js.gz +0 -0
  158. package/dist/web/public/terminal-ui.ae01a7d1.js +2 -0
  159. package/dist/web/public/terminal-ui.ae01a7d1.js.br +0 -0
  160. package/dist/web/public/terminal-ui.ae01a7d1.js.gz +0 -0
  161. package/dist/web/public/tile-grid.js +3 -6
  162. package/dist/web/public/tile-grid.js.br +0 -0
  163. package/dist/web/public/tile-grid.js.gz +0 -0
  164. package/dist/web/public/ultracode-panel.js.gz +0 -0
  165. package/dist/web/public/ultracode-windows.js.gz +0 -0
  166. package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
  167. package/dist/web/public/vendor/exceljs.min.js.gz +0 -0
  168. package/dist/web/public/vendor/fflate.min.js.gz +0 -0
  169. package/dist/web/public/vendor/marked.min.js.gz +0 -0
  170. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  171. package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
  172. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  173. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  174. package/dist/web/public/vendor/xterm-predictive-echo.ae5e3d5d.js.gz +0 -0
  175. package/dist/web/public/vendor/xterm-zerolag-input.0b69623c.js.gz +0 -0
  176. package/dist/web/public/vendor/xterm.css.gz +0 -0
  177. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  178. package/dist/web/public/voice-input.2342c37b.js.gz +0 -0
  179. package/dist/web/public/voice-pcm-worklet.js.gz +0 -0
  180. package/dist/web/public/webview-tabs.js.gz +0 -0
  181. package/dist/web/public/whats-new.json +13 -0
  182. package/dist/web/response-viewer-transcript.d.ts +6 -0
  183. package/dist/web/response-viewer-transcript.d.ts.map +1 -1
  184. package/dist/web/response-viewer-transcript.js +134 -1
  185. package/dist/web/response-viewer-transcript.js.map +1 -1
  186. package/dist/web/routes/approval-routes.d.ts.map +1 -1
  187. package/dist/web/routes/approval-routes.js +12 -8
  188. package/dist/web/routes/approval-routes.js.map +1 -1
  189. package/dist/web/routes/case-routes.d.ts.map +1 -1
  190. package/dist/web/routes/case-routes.js +9 -2
  191. package/dist/web/routes/case-routes.js.map +1 -1
  192. package/dist/web/routes/index.d.ts +1 -0
  193. package/dist/web/routes/index.d.ts.map +1 -1
  194. package/dist/web/routes/index.js +1 -0
  195. package/dist/web/routes/index.js.map +1 -1
  196. package/dist/web/routes/mcp-sync-routes.d.ts +4 -4
  197. package/dist/web/routes/mcp-sync-routes.js +4 -4
  198. package/dist/web/routes/ralph-routes.d.ts.map +1 -1
  199. package/dist/web/routes/ralph-routes.js +19 -14
  200. package/dist/web/routes/ralph-routes.js.map +1 -1
  201. package/dist/web/routes/session-routes.d.ts +19 -7
  202. package/dist/web/routes/session-routes.d.ts.map +1 -1
  203. package/dist/web/routes/session-routes.js +227 -66
  204. package/dist/web/routes/session-routes.js.map +1 -1
  205. package/dist/web/routes/status-telemetry-routes.d.ts.map +1 -1
  206. package/dist/web/routes/status-telemetry-routes.js +9 -5
  207. package/dist/web/routes/status-telemetry-routes.js.map +1 -1
  208. package/dist/web/routes/system-routes.d.ts +9 -0
  209. package/dist/web/routes/system-routes.d.ts.map +1 -1
  210. package/dist/web/routes/system-routes.js +102 -12
  211. package/dist/web/routes/system-routes.js.map +1 -1
  212. package/dist/web/routes/worktree-routes.d.ts +52 -0
  213. package/dist/web/routes/worktree-routes.d.ts.map +1 -0
  214. package/dist/web/routes/worktree-routes.js +220 -0
  215. package/dist/web/routes/worktree-routes.js.map +1 -0
  216. package/dist/web/schemas.d.ts +30 -1
  217. package/dist/web/schemas.d.ts.map +1 -1
  218. package/dist/web/schemas.js +74 -3
  219. package/dist/web/schemas.js.map +1 -1
  220. package/dist/web/screen-blocked.d.ts +80 -0
  221. package/dist/web/screen-blocked.d.ts.map +1 -0
  222. package/dist/web/screen-blocked.js +106 -0
  223. package/dist/web/screen-blocked.js.map +1 -0
  224. package/dist/web/server.d.ts.map +1 -1
  225. package/dist/web/server.js +23 -2
  226. package/dist/web/server.js.map +1 -1
  227. package/dist/web/session-listener-wiring.d.ts +1 -0
  228. package/dist/web/session-listener-wiring.d.ts.map +1 -1
  229. package/dist/web/session-listener-wiring.js +20 -0
  230. package/dist/web/session-listener-wiring.js.map +1 -1
  231. package/dist/web/session-wait-registry.d.ts +27 -9
  232. package/dist/web/session-wait-registry.d.ts.map +1 -1
  233. package/dist/web/session-wait-registry.js +36 -13
  234. package/dist/web/session-wait-registry.js.map +1 -1
  235. package/dist/web/sse-events.d.ts +7 -2
  236. package/dist/web/sse-events.d.ts.map +1 -1
  237. package/dist/web/sse-events.js +7 -2
  238. package/dist/web/sse-events.js.map +1 -1
  239. package/package.json +2 -2
  240. package/skills/codeman/SKILL.md +21 -17
  241. package/skills/codeman/preamble.sh +14 -11
  242. package/skills/codeman/reference/endpoints.md +8 -8
  243. package/skills/codeman/reference/messaging.md +5 -5
  244. package/skills/codeman/reference/recipes.md +13 -10
  245. package/skills/codeman/reference/verbs.md +7 -5
  246. package/dist/web/public/app.24689381.js +0 -43
  247. package/dist/web/public/app.24689381.js.br +0 -0
  248. package/dist/web/public/app.24689381.js.gz +0 -0
  249. package/dist/web/public/constants.17d77b65.js.br +0 -0
  250. package/dist/web/public/constants.17d77b65.js.gz +0 -0
  251. package/dist/web/public/i18n.9afd8e4d.js +0 -2
  252. package/dist/web/public/i18n.9afd8e4d.js.br +0 -0
  253. package/dist/web/public/i18n.9afd8e4d.js.gz +0 -0
  254. package/dist/web/public/image-input.9ed1d0d2.js.br +0 -0
  255. package/dist/web/public/image-input.9ed1d0d2.js.gz +0 -0
  256. package/dist/web/public/keyboard-accessory.c458eea8.js.br +0 -0
  257. package/dist/web/public/keyboard-accessory.c458eea8.js.gz +0 -0
  258. package/dist/web/public/mobile.2dff1580.css +0 -1
  259. package/dist/web/public/mobile.2dff1580.css.br +0 -0
  260. package/dist/web/public/mobile.2dff1580.css.gz +0 -0
  261. package/dist/web/public/panels-ui.73ec0137.js.br +0 -0
  262. package/dist/web/public/panels-ui.73ec0137.js.gz +0 -0
  263. package/dist/web/public/respawn-ui.ff0dae4c.js.br +0 -0
  264. package/dist/web/public/respawn-ui.ff0dae4c.js.gz +0 -0
  265. package/dist/web/public/session-ui.dbc6819b.js +0 -100
  266. package/dist/web/public/session-ui.dbc6819b.js.br +0 -0
  267. package/dist/web/public/session-ui.dbc6819b.js.gz +0 -0
  268. package/dist/web/public/settings-ui.81ac264e.js +0 -97
  269. package/dist/web/public/settings-ui.81ac264e.js.br +0 -0
  270. package/dist/web/public/settings-ui.81ac264e.js.gz +0 -0
  271. package/dist/web/public/styles.900a28e4.css +0 -1
  272. package/dist/web/public/styles.900a28e4.css.br +0 -0
  273. package/dist/web/public/styles.900a28e4.css.gz +0 -0
  274. package/dist/web/public/terminal-ui.858f5da5.js +0 -2
  275. package/dist/web/public/terminal-ui.858f5da5.js.br +0 -0
  276. package/dist/web/public/terminal-ui.858f5da5.js.gz +0 -0
@@ -7,13 +7,13 @@
7
7
  * - **Persistence**: Sessions survive server restarts and disconnects
8
8
  * - **Ghost recovery**: Orphaned sessions are discovered and reattached on startup
9
9
  * - **Resource tracking**: Memory, CPU, and child process stats per session
10
- * - **Reliable input**: `send-keys -l` sends literal text in a single command
10
+ * - **Reliable input**: a submitted prompt goes in as one bracketed paste, then a separate Enter
11
11
  * - **Teammate support**: Immutable pane IDs enable targeting individual teammates
12
12
  *
13
13
  * tmux sessions are named `codeman-{sessionId}` and stored in ~/.codeman/mux-sessions.json.
14
14
  *
15
15
  * Key features:
16
- * - `send-keys 'text' Enter` sends literal text in a single command
16
+ * - `paste-buffer -p` + a separate `send-keys Enter` submits a prompt (see sendInput)
17
17
  * - `list-sessions -F` provides structured queries
18
18
  * - `display-message -p '#{pane_pid}'` for reliable PID discovery
19
19
  * - Single server architecture
@@ -21,7 +21,7 @@
21
21
  * @module tmux-manager
22
22
  */
23
23
  import { EventEmitter } from 'node:events';
24
- import { ProcessStats, PersistedRespawnConfig, type PaneInfo, type ClaudeMode, type SessionMode, type OpenCodeConfig, type CodexConfig, type EffortLevel, type GeminiConfig, type AntigravityConfig, type PiConfig, type GrokConfig, type DeepSeekConfig, type OmpConfig, type SessionRemote, type SessionDocker, type PaneExit } from './types.js';
24
+ import { ProcessStats, PersistedRespawnConfig, type PaneInfo, type ClaudeMode, type SessionMode, type OpenCodeConfig, type CodexConfig, type EffortLevel, type GeminiConfig, type AntigravityConfig, type PiConfig, type GrokConfig, type CopilotConfig, type DeepSeekConfig, type OmpConfig, type SessionRemote, type SessionDocker, type PaneExit } from './types.js';
25
25
  import { type DockerCreateContext, type DockerSeedCopy } from './docker-hosts.js';
26
26
  import type { TerminalMultiplexer, MuxSession, MuxSessionWithStats, CreateSessionOptions, RespawnPaneOptions, PaneCaptureOptions } from './mux-interface.js';
27
27
  /** Claude Code native macOS recommendation for avoiding low nofile startup failures. */
@@ -118,6 +118,58 @@ export declare function hasObservablePaneSession(sessions: Iterable<MuxSession>)
118
118
  * Prefers the active pane and falls back to the first valid pane.
119
119
  */
120
120
  export declare function resolveTmuxPaneTarget(muxName: string, paneTarget?: string): string | null;
121
+ /** The tmux commands of one bracketed paste, see buildPasteTextCommands(). */
122
+ export interface PasteTextCommands {
123
+ /** Fills a buffer of its own with the text. */
124
+ set: string;
125
+ /** Pastes that buffer into the target, bracketed, and deletes it (`-d`). */
126
+ paste: string;
127
+ /** Deletes the buffer when `paste` failed; `-d` only runs on a successful paste. */
128
+ discard: string;
129
+ }
130
+ /**
131
+ * Escape a final `;` for tmux. tmux splits commands on an argument that ENDS in
132
+ * `;` (`set-buffer -- 'a;'` stores `a`, `send-keys -l 'a;'` types `a`, a lone `;`
133
+ * is no argument at all); a final `\;` is its escape for a literal `;`. A `;`
134
+ * anywhere else in the argument is literal already. Exported for unit testing.
135
+ */
136
+ export declare function escapeTmuxTrailingSemicolon(text: string): string;
137
+ /**
138
+ * Whether a text+Enter submit types `text` as keys instead of pasting it: true for
139
+ * a single character. Claude Code's and Codex's selection dialogs ignore a bracketed
140
+ * paste, so a pasted `3` + Enter confirms the highlighted option instead of option 3;
141
+ * a typed `3` selects it. One character cannot form the burst Codex reads as a paste,
142
+ * so typing it is safe there. Exported for unit testing.
143
+ */
144
+ export declare function submitsAsKeys(text: string): boolean;
145
+ /**
146
+ * tmux commands that type `text` into `target` as ONE bracketed paste, ahead of a
147
+ * separately sent `Enter` that submits it. Exported for unit testing.
148
+ *
149
+ * Why a paste and not `send-keys -l`: Codex detects a paste that arrives WITHOUT
150
+ * bracketed-paste markers heuristically, from characters arriving in a fast burst,
151
+ * and folds an Enter that lands inside that burst window into the paste as a
152
+ * newline. `send-keys -l` types exactly such an unmarked burst, so a text+Enter
153
+ * pair sat in Codex's composer unsubmitted: always for long text (Codex shows it as
154
+ * `[Pasted Content N chars]`, which SubmitVerifier cannot match against the prompt,
155
+ * so nothing re-presses Enter), intermittently for short text at the 50 ms gap.
156
+ * `paste-buffer -p` wraps the text in the markers (only when the pane asked for
157
+ * them, so an app without bracketed paste sees the same bytes as before) and the
158
+ * Enter after it is unambiguous.
159
+ *
160
+ * Each call gets its own named buffer so concurrent sends cannot paste each other's
161
+ * text. tmux keeps a named buffer until something deletes it (`buffer-limit` trims
162
+ * only automatic ones), hence `discard` for a paste that fails.
163
+ *
164
+ * A single character is typed instead (submitsAsKeys), so a dialog answer selects.
165
+ * A final `;` is escaped (escapeTmuxTrailingSemicolon).
166
+ */
167
+ export declare function buildPasteTextCommands(tmux: string, target: string, text: string): PasteTextCommands;
168
+ /**
169
+ * Run a bracketed paste. A failed paste (the pane or the server is gone) deletes
170
+ * the buffer before the paste's own error propagates; a failing delete is ignored.
171
+ */
172
+ export declare function pasteText(run: (cmd: string) => Promise<unknown>, cmds: PasteTextCommands): Promise<void>;
121
173
  /**
122
174
  * Pick the active pane id from `tmux list-panes -F '#{pane_id}:#{pane_active}'`
123
175
  * output (lines like `%0:1`). Returns the pane id whose active flag is 1.
@@ -245,6 +297,7 @@ export declare function buildSpawnCommand(options: {
245
297
  antigravityConfig?: AntigravityConfig;
246
298
  piConfig?: PiConfig;
247
299
  grokConfig?: GrokConfig;
300
+ copilotConfig?: CopilotConfig;
248
301
  deepSeekConfig?: DeepSeekConfig;
249
302
  ompConfig?: OmpConfig;
250
303
  resumeSessionId?: string;
@@ -253,7 +306,7 @@ export declare function buildSpawnCommand(options: {
253
306
  advisorModel?: string;
254
307
  /** Resolved by resolveStatusLineCliCommand (hooks-config.ts) — undefined skips the exporter. Claude only. */
255
308
  statusLineCommand?: string;
256
- /** Name pinned on claude as `--name` (version-gated, sanitized; local spawns only). Only a user-chosen name: see `Session.cliPinnedName`. */
309
+ /** Name pinned on claude as `--name` (version-gated, sanitized; local spawns only). By default only a user-chosen name; `pinCliSessionName` pins every tab name: see `Session.cliPinnedName`. */
257
310
  sessionName?: string;
258
311
  /**
259
312
  * Claude CLI version for the `--name` gate. Omitted = probe the local CLI
@@ -835,10 +888,12 @@ export declare class TmuxManager extends EventEmitter implements TerminalMultipl
835
888
  */
836
889
  setHistoryLimit(limit: number): Promise<void>;
837
890
  /**
838
- * Send input directly to a tmux session using `send-keys`.
891
+ * Send input directly to a tmux session.
839
892
  *
840
- * Uses tmux send-keys for reliable input delivery:
841
- * - `-l` flag sends literal text (no key interpretation)
893
+ * - Text followed by `\r` goes in as ONE bracketed paste (buildPasteTextCommands),
894
+ * so Codex cannot fold the Enter into a paste burst; a single character is typed
895
+ * with `send-keys -l` instead, so a dialog answer selects (submitsAsKeys)
896
+ * - Text without `\r` is typed literally with `send-keys -l` (no key interpretation)
842
897
  * - `Enter` key is sent as a SEPARATE tmux invocation after a small delay
843
898
  * - Ink (Claude CLI) needs text and Enter split to avoid treating Enter as a newline
844
899
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tmux-manager.d.ts","sourceRoot":"","sources":["../src/tmux-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tmux-manager.d.ts","sourceRoot":"","sources":["../src/tmux-manager.ts"],"names":[],"mappings":"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"}
@@ -7,13 +7,13 @@
7
7
  * - **Persistence**: Sessions survive server restarts and disconnects
8
8
  * - **Ghost recovery**: Orphaned sessions are discovered and reattached on startup
9
9
  * - **Resource tracking**: Memory, CPU, and child process stats per session
10
- * - **Reliable input**: `send-keys -l` sends literal text in a single command
10
+ * - **Reliable input**: a submitted prompt goes in as one bracketed paste, then a separate Enter
11
11
  * - **Teammate support**: Immutable pane IDs enable targeting individual teammates
12
12
  *
13
13
  * tmux sessions are named `codeman-{sessionId}` and stored in ~/.codeman/mux-sessions.json.
14
14
  *
15
15
  * Key features:
16
- * - `send-keys 'text' Enter` sends literal text in a single command
16
+ * - `paste-buffer -p` + a separate `send-keys Enter` submits a prompt (see sendInput)
17
17
  * - `list-sessions -F` provides structured queries
18
18
  * - `display-message -p '#{pane_pid}'` for reliable PID discovery
19
19
  * - Single server architecture
@@ -292,6 +292,70 @@ export function resolveTmuxPaneTarget(muxName, paneTarget) {
292
292
  }
293
293
  return `${muxName}.${paneTarget}`;
294
294
  }
295
+ let submitBufferSeq = 0;
296
+ /**
297
+ * Escape a final `;` for tmux. tmux splits commands on an argument that ENDS in
298
+ * `;` (`set-buffer -- 'a;'` stores `a`, `send-keys -l 'a;'` types `a`, a lone `;`
299
+ * is no argument at all); a final `\;` is its escape for a literal `;`. A `;`
300
+ * anywhere else in the argument is literal already. Exported for unit testing.
301
+ */
302
+ export function escapeTmuxTrailingSemicolon(text) {
303
+ return text.endsWith(';') ? `${text.slice(0, -1)}\\;` : text;
304
+ }
305
+ /**
306
+ * Whether a text+Enter submit types `text` as keys instead of pasting it: true for
307
+ * a single character. Claude Code's and Codex's selection dialogs ignore a bracketed
308
+ * paste, so a pasted `3` + Enter confirms the highlighted option instead of option 3;
309
+ * a typed `3` selects it. One character cannot form the burst Codex reads as a paste,
310
+ * so typing it is safe there. Exported for unit testing.
311
+ */
312
+ export function submitsAsKeys(text) {
313
+ return [...text].length === 1;
314
+ }
315
+ /**
316
+ * tmux commands that type `text` into `target` as ONE bracketed paste, ahead of a
317
+ * separately sent `Enter` that submits it. Exported for unit testing.
318
+ *
319
+ * Why a paste and not `send-keys -l`: Codex detects a paste that arrives WITHOUT
320
+ * bracketed-paste markers heuristically, from characters arriving in a fast burst,
321
+ * and folds an Enter that lands inside that burst window into the paste as a
322
+ * newline. `send-keys -l` types exactly such an unmarked burst, so a text+Enter
323
+ * pair sat in Codex's composer unsubmitted: always for long text (Codex shows it as
324
+ * `[Pasted Content N chars]`, which SubmitVerifier cannot match against the prompt,
325
+ * so nothing re-presses Enter), intermittently for short text at the 50 ms gap.
326
+ * `paste-buffer -p` wraps the text in the markers (only when the pane asked for
327
+ * them, so an app without bracketed paste sees the same bytes as before) and the
328
+ * Enter after it is unambiguous.
329
+ *
330
+ * Each call gets its own named buffer so concurrent sends cannot paste each other's
331
+ * text. tmux keeps a named buffer until something deletes it (`buffer-limit` trims
332
+ * only automatic ones), hence `discard` for a paste that fails.
333
+ *
334
+ * A single character is typed instead (submitsAsKeys), so a dialog answer selects.
335
+ * A final `;` is escaped (escapeTmuxTrailingSemicolon).
336
+ */
337
+ export function buildPasteTextCommands(tmux, target, text) {
338
+ const buffer = `codeman-submit-${process.pid}-${++submitBufferSeq}`;
339
+ return {
340
+ set: `${tmux} set-buffer -b ${buffer} -- ${shellescape(escapeTmuxTrailingSemicolon(text))}`,
341
+ paste: `${tmux} paste-buffer -p -d -b ${buffer} -t ${shellescape(target)}`,
342
+ discard: `${tmux} delete-buffer -b ${buffer}`,
343
+ };
344
+ }
345
+ /**
346
+ * Run a bracketed paste. A failed paste (the pane or the server is gone) deletes
347
+ * the buffer before the paste's own error propagates; a failing delete is ignored.
348
+ */
349
+ export async function pasteText(run, cmds) {
350
+ await run(cmds.set);
351
+ try {
352
+ await run(cmds.paste);
353
+ }
354
+ catch (err) {
355
+ await run(cmds.discard).catch(() => undefined);
356
+ throw err;
357
+ }
358
+ }
295
359
  /**
296
360
  * Pick the active pane id from `tmux list-panes -F '#{pane_id}:#{pane_active}'`
297
361
  * output (lines like `%0:1`). Returns the pane id whose active flag is 1.
@@ -1907,7 +1971,7 @@ export class TmuxManager extends EventEmitter {
1907
1971
  * In test mode: creates an in-memory session only (no real tmux session).
1908
1972
  */
1909
1973
  async createSession(options) {
1910
- const { sessionId, workingDir, mode, name, cliName, niceConfig, model, claudeMode, allowedTools, openCodeConfig, codexConfig, geminiConfig, antigravityConfig, piConfig, grokConfig, deepSeekConfig, ompConfig, resumeSessionId, envOverrides, effort, advisorModel, historyLimit = DEFAULT_TMUX_HISTORY_LIMIT, remote, docker, owner, } = options;
1974
+ const { sessionId, workingDir, mode, name, cliName, niceConfig, model, claudeMode, allowedTools, openCodeConfig, codexConfig, geminiConfig, antigravityConfig, piConfig, grokConfig, copilotConfig, deepSeekConfig, ompConfig, resumeSessionId, envOverrides, effort, advisorModel, historyLimit = DEFAULT_TMUX_HISTORY_LIMIT, remote, docker, owner, } = options;
1911
1975
  const muxName = `codeman-${sessionId.slice(0, 8)}`;
1912
1976
  if (!isValidMuxName(muxName)) {
1913
1977
  throw new Error('Invalid session name: contains unsafe characters');
@@ -1974,6 +2038,7 @@ export class TmuxManager extends EventEmitter {
1974
2038
  antigravityConfig,
1975
2039
  piConfig,
1976
2040
  grokConfig,
2041
+ copilotConfig,
1977
2042
  deepSeekConfig,
1978
2043
  ompConfig,
1979
2044
  resumeSessionId,
@@ -2185,7 +2250,7 @@ export class TmuxManager extends EventEmitter {
2185
2250
  * preserving the session and its scrollback buffer.
2186
2251
  */
2187
2252
  async respawnPane(options) {
2188
- const { sessionId, workingDir, mode, niceConfig, model, claudeMode, allowedTools, openCodeConfig, codexConfig, geminiConfig, antigravityConfig, piConfig, grokConfig, deepSeekConfig, ompConfig, resumeSessionId, envOverrides, unsetEnvKeys, effort, advisorModel, remote, docker, cliName, } = options;
2253
+ const { sessionId, workingDir, mode, niceConfig, model, claudeMode, allowedTools, openCodeConfig, codexConfig, geminiConfig, antigravityConfig, piConfig, grokConfig, copilotConfig, deepSeekConfig, ompConfig, resumeSessionId, envOverrides, unsetEnvKeys, effort, advisorModel, remote, docker, cliName, } = options;
2189
2254
  const session = this.sessions.get(sessionId);
2190
2255
  if (!session)
2191
2256
  return null;
@@ -2209,6 +2274,7 @@ export class TmuxManager extends EventEmitter {
2209
2274
  antigravityConfig,
2210
2275
  piConfig,
2211
2276
  grokConfig,
2277
+ copilotConfig,
2212
2278
  deepSeekConfig,
2213
2279
  ompConfig,
2214
2280
  resumeSessionId,
@@ -3264,10 +3330,12 @@ export class TmuxManager extends EventEmitter {
3264
3330
  });
3265
3331
  }
3266
3332
  /**
3267
- * Send input directly to a tmux session using `send-keys`.
3333
+ * Send input directly to a tmux session.
3268
3334
  *
3269
- * Uses tmux send-keys for reliable input delivery:
3270
- * - `-l` flag sends literal text (no key interpretation)
3335
+ * - Text followed by `\r` goes in as ONE bracketed paste (buildPasteTextCommands),
3336
+ * so Codex cannot fold the Enter into a paste burst; a single character is typed
3337
+ * with `send-keys -l` instead, so a dialog answer selects (submitsAsKeys)
3338
+ * - Text without `\r` is typed literally with `send-keys -l` (no key interpretation)
3271
3339
  * - `Enter` key is sent as a SEPARATE tmux invocation after a small delay
3272
3340
  * - Ink (Claude CLI) needs text and Enter split to avoid treating Enter as a newline
3273
3341
  */
@@ -3293,10 +3361,17 @@ export class TmuxManager extends EventEmitter {
3293
3361
  // Send text first, then Enter as a SEPARATE tmux command after a short delay.
3294
3362
  // Ink (Claude CLI's terminal framework) needs them split — sending both in a
3295
3363
  // single tmux invocation (via \;) causes Ink to interpret Enter as a newline
3296
- // character in the input buffer rather than as form submission.
3297
- await execAsync(`${this.tmux()} send-keys -t "${session.muxName}" -l ${shellescape(textPart)}`, {
3298
- timeout: EXEC_TIMEOUT_MS,
3299
- });
3364
+ // character in the input buffer rather than as form submission. The text goes
3365
+ // in as a bracketed paste so Codex cannot fold the Enter into it either
3366
+ // (see buildPasteTextCommands). A single character is typed, because a
3367
+ // selection dialog ignores a pasted `3` and Enter then confirms the
3368
+ // highlighted option (see submitsAsKeys).
3369
+ if (submitsAsKeys(textPart)) {
3370
+ await execAsync(`${this.tmux()} send-keys -t "${session.muxName}" -l ${shellescape(escapeTmuxTrailingSemicolon(textPart))}`, { timeout: EXEC_TIMEOUT_MS });
3371
+ }
3372
+ else {
3373
+ await pasteText((cmd) => execAsync(cmd, { timeout: EXEC_TIMEOUT_MS }), buildPasteTextCommands(this.tmux(), session.muxName, textPart));
3374
+ }
3300
3375
  await new Promise((resolve) => setTimeout(resolve, 50));
3301
3376
  await execAsync(`${this.tmux()} send-keys -t "${session.muxName}" Enter`, {
3302
3377
  timeout: EXEC_TIMEOUT_MS,
@@ -3304,9 +3379,7 @@ export class TmuxManager extends EventEmitter {
3304
3379
  }
3305
3380
  else if (textPart) {
3306
3381
  // Text only, no Enter
3307
- await execAsync(`${this.tmux()} send-keys -t "${session.muxName}" -l ${shellescape(textPart)}`, {
3308
- timeout: EXEC_TIMEOUT_MS,
3309
- });
3382
+ await execAsync(`${this.tmux()} send-keys -t "${session.muxName}" -l ${shellescape(escapeTmuxTrailingSemicolon(textPart))}`, { timeout: EXEC_TIMEOUT_MS });
3310
3383
  }
3311
3384
  else if (hasCarriageReturn) {
3312
3385
  // Enter only
@@ -3440,7 +3513,7 @@ export class TmuxManager extends EventEmitter {
3440
3513
  const hasCarriageReturn = input.includes('\r');
3441
3514
  const textPart = input.replace(/\r/g, '').replace(/\n/g, '').trimEnd();
3442
3515
  if (textPart && hasCarriageReturn) {
3443
- execSync(`${tmux} send-keys -t ${shellescape(target)} -l ${shellescape(textPart)}`, {
3516
+ execSync(`${tmux} send-keys -t ${shellescape(target)} -l ${shellescape(escapeTmuxTrailingSemicolon(textPart))}`, {
3444
3517
  encoding: 'utf-8',
3445
3518
  timeout: EXEC_TIMEOUT_MS,
3446
3519
  });
@@ -3450,7 +3523,7 @@ export class TmuxManager extends EventEmitter {
3450
3523
  });
3451
3524
  }
3452
3525
  else if (textPart) {
3453
- execSync(`${tmux} send-keys -t ${shellescape(target)} -l ${shellescape(textPart)}`, {
3526
+ execSync(`${tmux} send-keys -t ${shellescape(target)} -l ${shellescape(escapeTmuxTrailingSemicolon(textPart))}`, {
3454
3527
  encoding: 'utf-8',
3455
3528
  timeout: EXEC_TIMEOUT_MS,
3456
3529
  });
@@ -3580,8 +3653,10 @@ export class TmuxManager extends EventEmitter {
3580
3653
  // Without geometry there is no cursor move, so fall back to the old trim.
3581
3654
  // Keeping the blank rows here would park the caret at the bottom of the
3582
3655
  // pane with nothing to correct it — worse than not trying at all.
3583
- if (!geometry)
3584
- return normalizeScrollbackEol(rawCapture.replace(/\n+$/g, ''));
3656
+ if (!geometry) {
3657
+ const trimmed = rawCapture.replace(/\n+$/g, '');
3658
+ return trimmed ? `${normalizeScrollbackEol(trimmed)}\x1b[0m` : '';
3659
+ }
3585
3660
  // Take the line terminator off and nothing else. The trailing blank rows
3586
3661
  // that remain are the real bottom of the screen, and the cursor move
3587
3662
  // below counts up from it. tmux joins rows with a bare `\n`; normalize to
@@ -3596,7 +3671,10 @@ export class TmuxManager extends EventEmitter {
3596
3671
  // side where that guard cannot see it.
3597
3672
  if (!hasVisibleContent(trimmed))
3598
3673
  return '';
3599
- return `${normalizeScrollbackEol(trimmed)}${formatCursorRestore(geometry)}`;
3674
+ // capture-pane -e can leave the last row's SGR active (e.g. a nested
3675
+ // tmux status bar). Hand live output the same default style as a visible
3676
+ // snapshot, resetting before the cursor move so its position is kept.
3677
+ return `${normalizeScrollbackEol(trimmed)}\x1b[0m${formatCursorRestore(geometry)}`;
3600
3678
  }
3601
3679
  const buffer = rawCapture.replace(/\n+$/g, '');
3602
3680
  if (geometry)
@@ -3605,7 +3683,7 @@ export class TmuxManager extends EventEmitter {
3605
3683
  // positioned snapshot repaint and fall back to the raw capture. Normalize
3606
3684
  // its bare `\n` line endings to `\r\n` so the replay doesn't staircase
3607
3685
  // diagonally in a fresh xterm (COD-138, same reason as the fullHistory path).
3608
- return normalizeScrollbackEol(buffer);
3686
+ return buffer ? `${normalizeScrollbackEol(buffer)}\x1b[0m` : '';
3609
3687
  }
3610
3688
  catch (err) {
3611
3689
  // ENOBUFS carries the truncated multi-MB stdout on the error object —