aicodeman 1.48.0 → 1.49.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 (269) hide show
  1. package/README.md +12 -3
  2. package/dist/config/cli-registry/schema.d.ts +1 -0
  3. package/dist/config/cli-registry/schema.d.ts.map +1 -1
  4. package/dist/config/cli-registry/schema.js +5 -1
  5. package/dist/config/cli-registry/schema.js.map +1 -1
  6. package/dist/config/cli-registry/stock.d.ts.map +1 -1
  7. package/dist/config/cli-registry/stock.js +71 -5
  8. package/dist/config/cli-registry/stock.js.map +1 -1
  9. package/dist/config/cli-registry/types.d.ts +4 -4
  10. package/dist/config/cli-registry/types.d.ts.map +1 -1
  11. package/dist/config/foreign-tmux.d.ts +48 -0
  12. package/dist/config/foreign-tmux.d.ts.map +1 -0
  13. package/dist/config/foreign-tmux.js +48 -0
  14. package/dist/config/foreign-tmux.js.map +1 -0
  15. package/dist/custom-model-injection-apply.d.ts +4 -2
  16. package/dist/custom-model-injection-apply.d.ts.map +1 -1
  17. package/dist/custom-model-injection-apply.js +35 -21
  18. package/dist/custom-model-injection-apply.js.map +1 -1
  19. package/dist/docker-hosts.d.ts +8 -1
  20. package/dist/docker-hosts.d.ts.map +1 -1
  21. package/dist/docker-hosts.js +5 -5
  22. package/dist/docker-hosts.js.map +1 -1
  23. package/dist/foreign-tmux-discovery.d.ts +140 -0
  24. package/dist/foreign-tmux-discovery.d.ts.map +1 -0
  25. package/dist/foreign-tmux-discovery.js +366 -0
  26. package/dist/foreign-tmux-discovery.js.map +1 -0
  27. package/dist/foreign-tmux.d.ts +381 -0
  28. package/dist/foreign-tmux.d.ts.map +1 -0
  29. package/dist/foreign-tmux.js +775 -0
  30. package/dist/foreign-tmux.js.map +1 -0
  31. package/dist/git-fetch-scheduler.d.ts +2 -0
  32. package/dist/git-fetch-scheduler.d.ts.map +1 -1
  33. package/dist/git-fetch-scheduler.js +1 -1
  34. package/dist/git-fetch-scheduler.js.map +1 -1
  35. package/dist/git-fetch.d.ts +1 -1
  36. package/dist/git-fetch.d.ts.map +1 -1
  37. package/dist/git-workspace-status.d.ts +2 -2
  38. package/dist/git-workspace-status.d.ts.map +1 -1
  39. package/dist/hooks-config.d.ts +2 -1
  40. package/dist/hooks-config.d.ts.map +1 -1
  41. package/dist/hooks-config.js +2 -1
  42. package/dist/hooks-config.js.map +1 -1
  43. package/dist/live-worktree.d.ts +53 -0
  44. package/dist/live-worktree.d.ts.map +1 -0
  45. package/dist/live-worktree.js +97 -0
  46. package/dist/live-worktree.js.map +1 -0
  47. package/dist/mux-interface.d.ts +12 -1
  48. package/dist/mux-interface.d.ts.map +1 -1
  49. package/dist/reboot-restore.d.ts +1 -1
  50. package/dist/reboot-restore.d.ts.map +1 -1
  51. package/dist/reboot-restore.js +9 -0
  52. package/dist/reboot-restore.js.map +1 -1
  53. package/dist/remote-files.d.ts +150 -5
  54. package/dist/remote-files.d.ts.map +1 -1
  55. package/dist/remote-files.js +505 -7
  56. package/dist/remote-files.js.map +1 -1
  57. package/dist/remote-hosts.d.ts +15 -9
  58. package/dist/remote-hosts.d.ts.map +1 -1
  59. package/dist/remote-hosts.js +42 -20
  60. package/dist/remote-hosts.js.map +1 -1
  61. package/dist/session-cli-registry-bridge.d.ts.map +1 -1
  62. package/dist/session-cli-registry-bridge.js +19 -8
  63. package/dist/session-cli-registry-bridge.js.map +1 -1
  64. package/dist/session-env-clamp.d.ts +1 -1
  65. package/dist/session-env-clamp.d.ts.map +1 -1
  66. package/dist/session-env-clamp.js +4 -3
  67. package/dist/session-env-clamp.js.map +1 -1
  68. package/dist/session.d.ts +91 -21
  69. package/dist/session.d.ts.map +1 -1
  70. package/dist/session.js +190 -33
  71. package/dist/session.js.map +1 -1
  72. package/dist/tmux-manager.d.ts +74 -12
  73. package/dist/tmux-manager.d.ts.map +1 -1
  74. package/dist/tmux-manager.js +256 -41
  75. package/dist/tmux-manager.js.map +1 -1
  76. package/dist/types/foreign-tmux.d.ts +101 -0
  77. package/dist/types/foreign-tmux.d.ts.map +1 -0
  78. package/dist/types/foreign-tmux.js +27 -0
  79. package/dist/types/foreign-tmux.js.map +1 -0
  80. package/dist/types/index.d.ts +1 -0
  81. package/dist/types/index.d.ts.map +1 -1
  82. package/dist/types/index.js +1 -0
  83. package/dist/types/index.js.map +1 -1
  84. package/dist/types/session.d.ts +106 -2
  85. package/dist/types/session.d.ts.map +1 -1
  86. package/dist/types/session.js.map +1 -1
  87. package/dist/types/update.d.ts +4 -1
  88. package/dist/types/update.d.ts.map +1 -1
  89. package/dist/web/edit-history-sync.d.ts +27 -7
  90. package/dist/web/edit-history-sync.d.ts.map +1 -1
  91. package/dist/web/edit-history-sync.js +35 -19
  92. package/dist/web/edit-history-sync.js.map +1 -1
  93. package/dist/web/launch-defaults.d.ts +1 -1
  94. package/dist/web/launch-defaults.js +2 -2
  95. package/dist/web/launch-defaults.js.map +1 -1
  96. package/dist/web/linked-cases-writer.d.ts +43 -0
  97. package/dist/web/linked-cases-writer.d.ts.map +1 -0
  98. package/dist/web/linked-cases-writer.js +107 -0
  99. package/dist/web/linked-cases-writer.js.map +1 -0
  100. package/dist/web/paste-image-gc.d.ts +4 -1
  101. package/dist/web/paste-image-gc.d.ts.map +1 -1
  102. package/dist/web/paste-image-gc.js +4 -2
  103. package/dist/web/paste-image-gc.js.map +1 -1
  104. package/dist/web/public/admin-ui.js.gz +0 -0
  105. package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
  106. package/dist/web/public/{app.963b5ba8.js → app.9ea37070.js} +6 -6
  107. package/dist/web/public/app.9ea37070.js.br +0 -0
  108. package/dist/web/public/app.9ea37070.js.gz +0 -0
  109. package/dist/web/public/approvals-ui.js.gz +0 -0
  110. package/dist/web/public/constants.782170e1.js.gz +0 -0
  111. package/dist/web/public/cron-ui.js.gz +0 -0
  112. package/dist/web/public/edit-history-ui.js +27 -14
  113. package/dist/web/public/edit-history-ui.js.br +0 -0
  114. package/dist/web/public/edit-history-ui.js.gz +0 -0
  115. package/dist/web/public/entrance-animations.js.gz +0 -0
  116. package/dist/web/public/foreign-sessions.js +476 -0
  117. package/dist/web/public/foreign-sessions.js.br +0 -0
  118. package/dist/web/public/foreign-sessions.js.gz +0 -0
  119. package/dist/web/public/git-status-ui.js +5 -3
  120. package/dist/web/public/git-status-ui.js.br +0 -0
  121. package/dist/web/public/git-status-ui.js.gz +0 -0
  122. package/dist/web/public/header-divider.eb2d2463.js.gz +0 -0
  123. package/dist/web/public/home-sessions.js.gz +0 -0
  124. package/dist/web/public/host-wake-ui.js.gz +0 -0
  125. package/dist/web/public/i18n.a5e82c95.js +2 -0
  126. package/dist/web/public/i18n.a5e82c95.js.br +0 -0
  127. package/dist/web/public/i18n.a5e82c95.js.gz +0 -0
  128. package/dist/web/public/image-input.a5d0f8f3.js.gz +0 -0
  129. package/dist/web/public/index.html +36 -17
  130. package/dist/web/public/index.html.br +0 -0
  131. package/dist/web/public/index.html.gz +0 -0
  132. package/dist/web/public/input-cjk.8bc46081.js.gz +0 -0
  133. package/dist/web/public/{keyboard-accessory.d4ec5957.js → keyboard-accessory.b941676c.js} +3 -1
  134. package/dist/web/public/keyboard-accessory.b941676c.js.br +0 -0
  135. package/dist/web/public/{keyboard-accessory.d4ec5957.js.gz → keyboard-accessory.b941676c.js.gz} +0 -0
  136. package/dist/web/public/mobile-handlers.f7c3f692.js.gz +0 -0
  137. package/dist/web/public/mobile-ime-preview.2dbaf262.js.gz +0 -0
  138. package/dist/web/public/mobile-overview.js +10 -0
  139. package/dist/web/public/mobile-overview.js.br +0 -0
  140. package/dist/web/public/mobile-overview.js.gz +0 -0
  141. package/dist/web/public/{mobile.5ef2ce85.css → mobile.67c8eb5b.css} +1 -1
  142. package/dist/web/public/mobile.67c8eb5b.css.br +0 -0
  143. package/dist/web/public/{mobile.5ef2ce85.css.gz → mobile.67c8eb5b.css.gz} +0 -0
  144. package/dist/web/public/notification-manager.feb82c04.js.gz +0 -0
  145. package/dist/web/public/orchestrator-panel.js.gz +0 -0
  146. package/dist/web/public/{panels-ui.b100727d.js → panels-ui.8bcd4473.js} +4 -4
  147. package/dist/web/public/panels-ui.8bcd4473.js.br +0 -0
  148. package/dist/web/public/panels-ui.8bcd4473.js.gz +0 -0
  149. package/dist/web/public/ralph-panel.b350e2ef.js.gz +0 -0
  150. package/dist/web/public/ralph-wizard.b6c0dd19.js.gz +0 -0
  151. package/dist/web/public/readmymind-ui.js.gz +0 -0
  152. package/dist/web/public/reboot-restore-ui.js.gz +0 -0
  153. package/dist/web/public/respawn-ui.304ba0d4.js.gz +0 -0
  154. package/dist/web/public/sanitize-html.e7147e76.js.gz +0 -0
  155. package/dist/web/public/session-lineage.js.gz +0 -0
  156. package/dist/web/public/{session-ui.5ac82f2c.js → session-ui.a7c8c095.js} +11 -11
  157. package/dist/web/public/session-ui.a7c8c095.js.br +0 -0
  158. package/dist/web/public/session-ui.a7c8c095.js.gz +0 -0
  159. package/dist/web/public/{settings-ui.d1d4fb99.js → settings-ui.18f92052.js} +3 -3
  160. package/dist/web/public/settings-ui.18f92052.js.br +0 -0
  161. package/dist/web/public/settings-ui.18f92052.js.gz +0 -0
  162. package/dist/web/public/spreadsheet-preview-worker.js.gz +0 -0
  163. package/dist/web/public/spreadsheet-preview.75c751de.js.gz +0 -0
  164. package/dist/web/public/spreadsheet-xlsx-core.js.gz +0 -0
  165. package/dist/web/public/{styles.77dc538f.css → styles.6a718331.css} +1 -1
  166. package/dist/web/public/styles.6a718331.css.br +0 -0
  167. package/dist/web/public/{styles.77dc538f.css.gz → styles.6a718331.css.gz} +0 -0
  168. package/dist/web/public/subagent-windows.07277a58.js.gz +0 -0
  169. package/dist/web/public/sw.js +2 -2
  170. package/dist/web/public/sw.js.br +0 -0
  171. package/dist/web/public/sw.js.gz +0 -0
  172. package/dist/web/public/tab-layout-browser.2d6189f7.js.gz +0 -0
  173. package/dist/web/public/tab-rail-resize.b5cdceaf.js.gz +0 -0
  174. package/dist/web/public/terminal-keycode229-recovery.98843069.js.gz +0 -0
  175. package/dist/web/public/terminal-split.js.gz +0 -0
  176. package/dist/web/public/terminal-tile.js +2 -2
  177. package/dist/web/public/terminal-tile.js.br +0 -0
  178. package/dist/web/public/terminal-tile.js.gz +0 -0
  179. package/dist/web/public/{terminal-ui.d7c75ce8.js → terminal-ui.a7883640.js} +2 -2
  180. package/dist/web/public/terminal-ui.a7883640.js.br +0 -0
  181. package/dist/web/public/terminal-ui.a7883640.js.gz +0 -0
  182. package/dist/web/public/tile-grid.js.gz +0 -0
  183. package/dist/web/public/ultracode-panel.js.gz +0 -0
  184. package/dist/web/public/ultracode-windows.js.gz +0 -0
  185. package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
  186. package/dist/web/public/vendor/exceljs.min.js.gz +0 -0
  187. package/dist/web/public/vendor/fflate.min.js.gz +0 -0
  188. package/dist/web/public/vendor/marked.min.js.gz +0 -0
  189. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  190. package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
  191. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  192. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  193. package/dist/web/public/vendor/xterm-predictive-echo.276b11d9.js.gz +0 -0
  194. package/dist/web/public/vendor/xterm-zerolag-input.1be42307.js.gz +0 -0
  195. package/dist/web/public/vendor/xterm.css.gz +0 -0
  196. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  197. package/dist/web/public/voice-input.2342c37b.js.gz +0 -0
  198. package/dist/web/public/voice-pcm-worklet.js.gz +0 -0
  199. package/dist/web/public/webview-tabs.js.gz +0 -0
  200. package/dist/web/public/whats-new.json +9 -9
  201. package/dist/web/routes/case-routes.d.ts.map +1 -1
  202. package/dist/web/routes/case-routes.js +72 -53
  203. package/dist/web/routes/case-routes.js.map +1 -1
  204. package/dist/web/routes/discord-routes.js +1 -1
  205. package/dist/web/routes/discord-routes.js.map +1 -1
  206. package/dist/web/routes/edit-history-routes.d.ts +2 -2
  207. package/dist/web/routes/edit-history-routes.d.ts.map +1 -1
  208. package/dist/web/routes/edit-history-routes.js +4 -3
  209. package/dist/web/routes/edit-history-routes.js.map +1 -1
  210. package/dist/web/routes/file-routes.d.ts.map +1 -1
  211. package/dist/web/routes/file-routes.js +213 -102
  212. package/dist/web/routes/file-routes.js.map +1 -1
  213. package/dist/web/routes/git-status-routes.d.ts.map +1 -1
  214. package/dist/web/routes/git-status-routes.js +7 -2
  215. package/dist/web/routes/git-status-routes.js.map +1 -1
  216. package/dist/web/routes/mux-routes.d.ts +10 -3
  217. package/dist/web/routes/mux-routes.d.ts.map +1 -1
  218. package/dist/web/routes/mux-routes.js +59 -1
  219. package/dist/web/routes/mux-routes.js.map +1 -1
  220. package/dist/web/routes/ralph-routes.d.ts.map +1 -1
  221. package/dist/web/routes/ralph-routes.js +22 -0
  222. package/dist/web/routes/ralph-routes.js.map +1 -1
  223. package/dist/web/routes/readmymind-routes.d.ts.map +1 -1
  224. package/dist/web/routes/readmymind-routes.js +3 -2
  225. package/dist/web/routes/readmymind-routes.js.map +1 -1
  226. package/dist/web/routes/respawn-routes.d.ts.map +1 -1
  227. package/dist/web/routes/respawn-routes.js +24 -0
  228. package/dist/web/routes/respawn-routes.js.map +1 -1
  229. package/dist/web/routes/session-routes.d.ts +11 -8
  230. package/dist/web/routes/session-routes.d.ts.map +1 -1
  231. package/dist/web/routes/session-routes.js +262 -29
  232. package/dist/web/routes/session-routes.js.map +1 -1
  233. package/dist/web/routes/system-routes.d.ts.map +1 -1
  234. package/dist/web/routes/system-routes.js +3 -2
  235. package/dist/web/routes/system-routes.js.map +1 -1
  236. package/dist/web/schemas.d.ts +24 -1
  237. package/dist/web/schemas.d.ts.map +1 -1
  238. package/dist/web/schemas.js +34 -9
  239. package/dist/web/schemas.js.map +1 -1
  240. package/dist/web/self-update.d.ts +9 -0
  241. package/dist/web/self-update.d.ts.map +1 -1
  242. package/dist/web/self-update.js +19 -3
  243. package/dist/web/self-update.js.map +1 -1
  244. package/dist/web/server.d.ts +16 -3
  245. package/dist/web/server.d.ts.map +1 -1
  246. package/dist/web/server.js +84 -24
  247. package/dist/web/server.js.map +1 -1
  248. package/dist/web/session-wait-registry.d.ts +13 -0
  249. package/dist/web/session-wait-registry.d.ts.map +1 -1
  250. package/dist/web/session-wait-registry.js +16 -8
  251. package/dist/web/session-wait-registry.js.map +1 -1
  252. package/package.json +2 -2
  253. package/skills/codeman/SKILL.md +20 -4
  254. package/dist/web/public/app.963b5ba8.js.br +0 -0
  255. package/dist/web/public/app.963b5ba8.js.gz +0 -0
  256. package/dist/web/public/i18n.33f930d7.js +0 -2
  257. package/dist/web/public/i18n.33f930d7.js.br +0 -0
  258. package/dist/web/public/i18n.33f930d7.js.gz +0 -0
  259. package/dist/web/public/keyboard-accessory.d4ec5957.js.br +0 -0
  260. package/dist/web/public/mobile.5ef2ce85.css.br +0 -0
  261. package/dist/web/public/panels-ui.b100727d.js.br +0 -0
  262. package/dist/web/public/panels-ui.b100727d.js.gz +0 -0
  263. package/dist/web/public/session-ui.5ac82f2c.js.br +0 -0
  264. package/dist/web/public/session-ui.5ac82f2c.js.gz +0 -0
  265. package/dist/web/public/settings-ui.d1d4fb99.js.br +0 -0
  266. package/dist/web/public/settings-ui.d1d4fb99.js.gz +0 -0
  267. package/dist/web/public/styles.77dc538f.css.br +0 -0
  268. package/dist/web/public/terminal-ui.d7c75ce8.js.br +0 -0
  269. package/dist/web/public/terminal-ui.d7c75ce8.js.gz +0 -0
@@ -12,10 +12,12 @@ export declare function writeRemoteCases(configDir: string, cases: RemoteCase[])
12
12
  * so a bare `exec claude` sees only sshd's minimal default PATH and dies with
13
13
  * "command not found" (exit 127).
14
14
  *
15
- * Shells that take neither flag (nushell, elvish, …) cannot be detected from here
16
- * the way `loginShellArgs()` detects them locally, since the shell is whatever the
17
- * REMOTE passwd says. A host like that is what the per-host `commands.*` override
18
- * is for.
15
+ * ⚠️ POSIX text, like `REMOTE_LOGIN_SHELL`: only `/bin/sh -c` may parse it.
16
+ *
17
+ * Other shells that take neither flag are what the per-host `commands.*` override is
18
+ * for. It only goes so far: the PATH bootstrap below runs in the login shell first, so
19
+ * a shell that cannot parse `export` at all (nushell, elvish) cannot be rescued by an
20
+ * override.
19
21
  */
20
22
  export declare function remoteLoginShellCommand(command: string): string;
21
23
  /**
@@ -33,8 +35,9 @@ export declare function withRemoteTmuxPath(command: string): string;
33
35
  * user's interactive-login shell startup files (~/.zshrc etc.). ssh's remote-command
34
36
  * execution is neither interactive nor login, so a bare `exec claude` sees only sshd's
35
37
  * minimal default PATH and fails with "command not found" (exit 127) — confirmed via
36
- * `tmux capture-pane` on the remain-on-exit-preserved dead pane. Route through
37
- * `$SHELL -i -l -c`, the same fix shell mode uses, so PATH is fully resolved first.
38
+ * `tmux capture-pane` on the remain-on-exit-preserved dead pane. Route through the
39
+ * login shell (`remoteLoginShellCommand`), the same fix shell mode uses, so PATH is fully
40
+ * resolved first.
38
41
  *
39
42
  * ⚠️ The per-CLI half is now READ FROM THE REGISTRY (`overlays.remote`), not from a
40
43
  * hardcoded `Record<RemoteCommandMode, string>`. The table it replaces duplicated the
@@ -114,13 +117,16 @@ export interface RemoteTmuxCheckResult {
114
117
  export declare function checkRemoteTmuxAvailable(host: Pick<RemoteHost, 'username' | 'host' | 'port'> & RemoteSshOptions): Promise<RemoteTmuxCheckResult>;
115
118
  /**
116
119
  * Build the SSH command that reads the remote CLI's version (`claude --version`
117
- * on the remote host). The version query is routed through
118
- * `remoteLoginShellCommand` (the SAME `$SHELL -i -l -c` wrapper the real
119
- * launch uses), because agent CLIs live on PATH only after the remote user's
120
+ * on the remote host). The version query runs under `$SHELL -i -l -c` like the real
121
+ * launch, because agent CLIs live on PATH only after the remote user's
120
122
  * interactive-login startup files run (see defaultRemoteCommandForMode); a bare
121
123
  * `claude --version` over ssh exits 127. Connection options come from the
122
124
  * shared `buildSshConnectionArgs`, so the probe reaches exactly the hosts the
123
125
  * launch can reach. Returns null for modes with no CLI (shell).
126
+ *
127
+ * ⚠️ One statement, never `remoteLoginShellCommand`: nothing hands this text to `/bin/sh`,
128
+ * the login shell parses it itself. fish and tcsh refuse the `${…}` either way, so such a
129
+ * host reports no version, the same as a failed probe, and its launch is not affected.
124
130
  */
125
131
  export declare function buildRemoteCliVersionProbeCommand(host: Pick<RemoteHost, 'username' | 'host' | 'port'> & RemoteSshOptions, mode: SessionMode): string | null;
126
132
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"remote-hosts.d.ts","sourceRoot":"","sources":["../src/remote-hosts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-hosts.d.ts","sourceRoot":"","sources":["../src/remote-hosts.ts"],"names":[],"mappings":"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"}
@@ -49,12 +49,26 @@ export async function writeRemoteCases(configDir, cases) {
49
49
  * arrival, the #208 failure all over again (verified: `sh -c 'exec $SHELL -i -l'`
50
50
  * with SHELL unset prints `exec: -i: not found`). In practice tmux always exports
51
51
  * SHELL into a pane from its own `default-shell` option, so the command as USED
52
- * here is safe either way (also verified). The default matters because these
53
- * strings are the seed values a per-host `commands.*` override is edited from, and
54
- * nothing constrains where an edited one ends up running. Quoted for a shell path
55
- * containing spaces. `/bin/sh` exists on every POSIX host.
52
+ * here is safe either way (also verified). Quoted for a shell path containing
53
+ * spaces. `/bin/sh` exists on every POSIX host.
54
+ *
55
+ * ⚠️ This is POSIX text. fish refuses `${…}` (status 127), so a launch hands it to
56
+ * `/bin/sh -c`, never to the remote default-shell (`buildRemoteLaunchCommand`).
56
57
  */
57
58
  const REMOTE_LOGIN_SHELL = '"${SHELL:-/bin/sh}"';
59
+ /**
60
+ * The remote login shell with the flags that make it one, as ONE compound command, so
61
+ * `cd <path> && <this>` keeps its short-circuit (a failed `cd` must not start a shell in
62
+ * the wrong folder). `args` follows the flags verbatim.
63
+ *
64
+ * The flags are chosen on the far end: the shell is whatever the REMOTE passwd says, so
65
+ * this is `loginShellArgs()` run where the answer is known. tcsh honors `-l` only as its
66
+ * ONLY flag and exits on `-i -l -c`, `-l -c` and `-i -l` (measured on tcsh 6.24), and
67
+ * `-c` needs no login flag to read `.tcshrc`, so csh and tcsh get neither flag.
68
+ */
69
+ function remoteLoginShell(args) {
70
+ return `{ set -- -i -l; case \${SHELL##*/} in csh|tcsh) set --;; esac; exec ${REMOTE_LOGIN_SHELL} "$@"${args}; }`;
71
+ }
58
72
  /**
59
73
  * Run `command` through the remote user's interactive login shell, so per-user
60
74
  * PATH entries (~/.local/bin, ~/.opencode/bin, …) are resolved before the CLI name
@@ -62,13 +76,15 @@ const REMOTE_LOGIN_SHELL = '"${SHELL:-/bin/sh}"';
62
76
  * so a bare `exec claude` sees only sshd's minimal default PATH and dies with
63
77
  * "command not found" (exit 127).
64
78
  *
65
- * Shells that take neither flag (nushell, elvish, …) cannot be detected from here
66
- * the way `loginShellArgs()` detects them locally, since the shell is whatever the
67
- * REMOTE passwd says. A host like that is what the per-host `commands.*` override
68
- * is for.
79
+ * ⚠️ POSIX text, like `REMOTE_LOGIN_SHELL`: only `/bin/sh -c` may parse it.
80
+ *
81
+ * Other shells that take neither flag are what the per-host `commands.*` override is
82
+ * for. It only goes so far: the PATH bootstrap below runs in the login shell first, so
83
+ * a shell that cannot parse `export` at all (nushell, elvish) cannot be rescued by an
84
+ * override.
69
85
  */
70
86
  export function remoteLoginShellCommand(command) {
71
- return `exec ${REMOTE_LOGIN_SHELL} -i -l -c ${shellescape(command)}`;
87
+ return remoteLoginShell(` -c ${shellescape(command)}`);
72
88
  }
73
89
  /**
74
90
  * Remote tmux runs in sshd's non-interactive shell, which may omit Homebrew and
@@ -106,8 +122,9 @@ function overlayCliCommand(mode, location) {
106
122
  * user's interactive-login shell startup files (~/.zshrc etc.). ssh's remote-command
107
123
  * execution is neither interactive nor login, so a bare `exec claude` sees only sshd's
108
124
  * minimal default PATH and fails with "command not found" (exit 127) — confirmed via
109
- * `tmux capture-pane` on the remain-on-exit-preserved dead pane. Route through
110
- * `$SHELL -i -l -c`, the same fix shell mode uses, so PATH is fully resolved first.
125
+ * `tmux capture-pane` on the remain-on-exit-preserved dead pane. Route through the
126
+ * login shell (`remoteLoginShellCommand`), the same fix shell mode uses, so PATH is fully
127
+ * resolved first.
111
128
  *
112
129
  * ⚠️ The per-CLI half is now READ FROM THE REGISTRY (`overlays.remote`), not from a
113
130
  * hardcoded `Record<RemoteCommandMode, string>`. The table it replaces duplicated the
@@ -122,11 +139,13 @@ function overlayCliCommand(mode, location) {
122
139
  * The per-host `commands.*` override remains the escape hatch for every mode.
123
140
  */
124
141
  export function defaultRemoteCommandForMode(mode) {
125
- // $SHELL, not a hardcoded bash: sshd sets it from the remote user's /etc/passwd entry, so
126
- // this launches their actual login shell (zsh, fish, …). `-i -l` so it sources rc files,
127
- // matching the local shell-mode launch. Not templatable as overlay data: the shell is
128
- // whatever the REMOTE passwd says, which is why `shell` is the one arm still written here.
129
- const shellCommand = `exec ${REMOTE_LOGIN_SHELL} -i -l`;
142
+ // $SHELL, not a hardcoded bash: sshd sets it from the remote user's /etc/passwd entry, and
143
+ // tmux exports its default-shell as SHELL into the pane, so this launches their actual
144
+ // login shell, or the default-shell their tmux.conf picks (zsh, fish, …). `-i -l` where it
145
+ // takes them, so it sources rc files, matching the local shell-mode launch. Not templatable
146
+ // as overlay data: the shell is whatever the REMOTE passwd says, which is why `shell` is the
147
+ // one arm still written here.
148
+ const shellCommand = remoteLoginShell('');
130
149
  const cli = overlayCliCommand(mode, 'remote');
131
150
  return cli === null ? shellCommand : remoteLoginShellCommand(cli);
132
151
  }
@@ -288,13 +307,16 @@ function remoteCliBin(mode) {
288
307
  }
289
308
  /**
290
309
  * Build the SSH command that reads the remote CLI's version (`claude --version`
291
- * on the remote host). The version query is routed through
292
- * `remoteLoginShellCommand` (the SAME `$SHELL -i -l -c` wrapper the real
293
- * launch uses), because agent CLIs live on PATH only after the remote user's
310
+ * on the remote host). The version query runs under `$SHELL -i -l -c` like the real
311
+ * launch, because agent CLIs live on PATH only after the remote user's
294
312
  * interactive-login startup files run (see defaultRemoteCommandForMode); a bare
295
313
  * `claude --version` over ssh exits 127. Connection options come from the
296
314
  * shared `buildSshConnectionArgs`, so the probe reaches exactly the hosts the
297
315
  * launch can reach. Returns null for modes with no CLI (shell).
316
+ *
317
+ * ⚠️ One statement, never `remoteLoginShellCommand`: nothing hands this text to `/bin/sh`,
318
+ * the login shell parses it itself. fish and tcsh refuse the `${…}` either way, so such a
319
+ * host reports no version, the same as a failed probe, and its launch is not affected.
298
320
  */
299
321
  export function buildRemoteCliVersionProbeCommand(host, mode) {
300
322
  const bin = remoteCliBin(mode);
@@ -303,7 +325,7 @@ export function buildRemoteCliVersionProbeCommand(host, mode) {
303
325
  return [
304
326
  ...buildSshConnectionArgs(host),
305
327
  remoteSshTarget(host),
306
- shellescape(remoteLoginShellCommand(`${bin} --version`)),
328
+ shellescape(`exec ${REMOTE_LOGIN_SHELL} -i -l -c ${shellescape(`${bin} --version`)}`),
307
329
  ].join(' ');
308
330
  }
309
331
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"remote-hosts.js","sourceRoot":"","sources":["../src/remote-hosts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-hosts.js","sourceRoot":"","sources":["../src/remote-hosts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-cli-registry-bridge.d.ts","sourceRoot":"","sources":["../src/session-cli-registry-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAQ/D,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,EACZ,UAAU,EACV,aAAa,EACb,SAAS,EACT,cAAc,EACd,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sGAAsG;IACtG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAYD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAIrC;AA0BD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC7C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AAmBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAMtG;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAqE9G"}
1
+ {"version":3,"file":"session-cli-registry-bridge.d.ts","sourceRoot":"","sources":["../src/session-cli-registry-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAQ/D,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,EACZ,UAAU,EACV,aAAa,EACb,SAAS,EACT,cAAc,EACd,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sGAAsG;IACtG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAYD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAIrC;AA0BD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC7C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AAmBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAItG;AAcD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAmE9G"}
@@ -21,7 +21,7 @@ import { renderLaunch } from './config/cli-registry/argv.js';
21
21
  import { matchesPattern } from './config/cli-registry/patterns.js';
22
22
  import { buildAdvisorSettings, buildEffortCliArgs, sanitizeCliSessionName } from './session-cli-builder.js';
23
23
  import { compareVersions } from './utils/dependency-checker.js';
24
- import { getClaudeCliVersion } from './utils/claude-cli-resolver.js';
24
+ import { resolveSessionCliVersion } from './utils/cli-resolver.js';
25
25
  import { launcherDefaultTarget } from './utils/cli-launcher.js';
26
26
  import { getCli } from './config/cli-registry/registry.js';
27
27
  /**
@@ -134,7 +134,18 @@ export function launchGatePasses(mode, gate, claudeCliVersion) {
134
134
  const entry = getCli(mode);
135
135
  if (!entry?.capabilities.gates[gate])
136
136
  return false;
137
- return resolveGatesPassed(entry, () => claudeCliVersion !== undefined ? claudeCliVersion : getClaudeCliVersion()).has(gate);
137
+ return resolveGatesPassed(entry, () => gateVersion(entry, claudeCliVersion)).has(gate);
138
+ }
139
+ /**
140
+ * The version a gate of `entry` is measured against: the caller's explicit value (tests, or
141
+ * null for "known unknown"), else THIS entry's own local CLI via resolveSessionCliVersion.
142
+ * ⚠️ Never `getClaudeCliVersion()` for every entry, which is what this used to do: codex's
143
+ * `noDaemonFlag` gate (0.162.0) would then have passed on any claude 2.x and handed an older
144
+ * codex a flag it exits on. resolveSessionCliVersion still routes claude to its own probe
145
+ * policy (`retryOnTransientFailure`), so a claude launch is unchanged.
146
+ */
147
+ function gateVersion(entry, explicit) {
148
+ return explicit !== undefined ? explicit : resolveSessionCliVersion(entry.id);
138
149
  }
139
150
  /**
140
151
  * Render the spawn command for `entry` from the legacy option bag. Returns `undefined` for a
@@ -193,12 +204,12 @@ export function buildSpawnCommandFromRegistry(entry, options) {
193
204
  // The Discord bridge's startup hint: undefined (so the flag is omitted) unless the bridge and its
194
205
  // `startupHint` setting are on. Claude-only in practice, like the settings object above.
195
206
  engineValues.appendSystemPrompt = getDiscordStartupHint();
196
- // Preserves buildSpawnCommand's original fallback exactly: an EXPLICIT `undefined` probes
197
- // the local claude CLI (getClaudeCliVersion, null under vitest); an explicit `null` means
198
- // "known to be unresolvable" and must not probe. The probe only ever runs from
199
- // resolveGatesPassed, and only for an entry that actually declares a gate, so this stays
200
- // generic without spawning a stray `claude --version` for every other CLI's launch.
201
- const gatesPassed = resolveGatesPassed(entry, () => options.claudeCliVersion !== undefined ? options.claudeCliVersion : getClaudeCliVersion());
207
+ // Preserves buildSpawnCommand's original fallback: an EXPLICIT `undefined` probes the
208
+ // entry's own local CLI (gateVersion: claude's probe for claude, the registry resolver for
209
+ // the rest, both null under vitest); an explicit `null` means "known to be unresolvable"
210
+ // and must not probe. The probe only ever runs from resolveGatesPassed, and only for an
211
+ // entry that actually declares a gate, so a CLI with none never spawns a `--version`.
212
+ const gatesPassed = resolveGatesPassed(entry, () => gateVersion(entry, options.claudeCliVersion));
202
213
  return renderLaunch(entry.launch, params, engineValues, gatesPassed);
203
214
  }
204
215
  //# sourceMappingURL=session-cli-registry-bridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-cli-registry-bridge.js","sourceRoot":"","sources":["../src/session-cli-registry-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-cli-registry-bridge.js","sourceRoot":"","sources":["../src/session-cli-registry-bridge.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@
26
26
  * re-resolves the grant at the moment it builds a session, for the same reason.
27
27
  *
28
28
  * @dependencies user-store (canUsernameRunPrivilegedCommands), config/cli-registry
29
- * @consumedby web/routes/session-routes, web/routes/reboot-restore-routes
29
+ * @consumedby web/routes/session-routes, web/routes/reboot-restore-routes, web/server
30
30
  *
31
31
  * @module session-env-clamp
32
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"session-env-clamp.d.ts","sourceRoot":"","sources":["../src/session-env-clamp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAKH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC/C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAQ7C"}
1
+ {"version":3,"file":"session-env-clamp.d.ts","sourceRoot":"","sources":["../src/session-env-clamp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAKH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAG9C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC/C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAQ7C"}
@@ -26,12 +26,12 @@
26
26
  * re-resolves the grant at the moment it builds a session, for the same reason.
27
27
  *
28
28
  * @dependencies user-store (canUsernameRunPrivilegedCommands), config/cli-registry
29
- * @consumedby web/routes/session-routes, web/routes/reboot-restore-routes
29
+ * @consumedby web/routes/session-routes, web/routes/reboot-restore-routes, web/server
30
30
  *
31
31
  * @module session-env-clamp
32
32
  */
33
33
  import { canUsernameRunPrivilegedCommands } from './user-store.js';
34
- import { enabledClis } from './config/cli-registry/registry.js';
34
+ import { listClis } from './config/cli-registry/registry.js';
35
35
  /**
36
36
  * Env-var keys a non-granted owner must not be able to set, because each one
37
37
  * hands back privilege `clampExternalCliBypassForOwner()` just removed, or redirects a
@@ -66,7 +66,8 @@ import { enabledClis } from './config/cli-registry/registry.js';
66
66
  * already allowlisted for pi and not addressed here — see resolveOmpHome()).
67
67
  */
68
68
  export function ownerClampedEnvKeys() {
69
- return enabledClis().flatMap((entry) => entry.capabilities.privilegedEnvKeys);
69
+ // Every CLI, enabled or not: a session can outlive the switch that disabled its CLI.
70
+ return listClis().flatMap((entry) => entry.capabilities.privilegedEnvKeys);
70
71
  }
71
72
  /**
72
73
  * Env-var half of the multi-user bypass clamp.
@@ -1 +1 @@
1
- {"version":3,"file":"session-env-clamp.js","sourceRoot":"","sources":["../src/session-env-clamp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,KAAyB,EACzB,YAAgD;IAEhD,IAAI,CAAC,YAAY;QAAE,OAAO,YAAY,CAAC;IACvC,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,YAAY,CAAC;QAAE,OAAO,YAAY,CAAC;IAClE,IAAI,MAAM,gCAAgC,CAAC,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC;IACvE,MAAM,OAAO,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"session-env-clamp.js","sourceRoot":"","sources":["../src/session-env-clamp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,mBAAmB;IACjC,qFAAqF;IACrF,OAAO,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,KAAyB,EACzB,YAAgD;IAEhD,IAAI,CAAC,YAAY;QAAE,OAAO,YAAY,CAAC;IACvC,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,YAAY,CAAC;QAAE,OAAO,YAAY,CAAC;IAClE,IAAI,MAAM,gCAAgC,CAAC,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC;IACvE,MAAM,OAAO,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/session.d.ts CHANGED
@@ -28,8 +28,9 @@
28
28
  * @module session
29
29
  */
30
30
  import { EventEmitter } from 'node:events';
31
- import { SessionState, SessionStatus, SessionConfig, RalphTrackerState, RalphTodoItem, ActiveBashTool, NiceConfig, type ClaudeMode, type SessionMode, type OpenCodeConfig, type CodexConfig, type EffortLevel, type CustomModelBookkeeping, type CustomModelSelection, type GeminiConfig, type AntigravityConfig, type PiConfig, type GrokConfig, type CopilotConfig, type DeepSeekConfig, type OmpConfig, type SessionRemote, type SessionDocker, type SessionNameSource, type SessionWriteOptions, type PaneExit, type PromptCacheStatus, type StatusLineExporter, type KeepWarmStatus } from './types.js';
31
+ import { SessionState, SessionStatus, SessionConfig, RalphTrackerState, RalphTodoItem, ActiveBashTool, NiceConfig, type ClaudeMode, type SessionMode, type OpenCodeConfig, type CodexConfig, type EffortLevel, type CustomModelBookkeeping, type CustomModelSelection, type GeminiConfig, type AntigravityConfig, type PiConfig, type GrokConfig, type CopilotConfig, type DeepSeekConfig, type OmpConfig, type SessionRemote, type SessionDocker, type SessionNameSource, type SessionWriteOptions, type PaneExit, type SessionAdopt, type PromptCacheStatus, type StatusLineExporter, type KeepWarmStatus } from './types.js';
32
32
  import type { GitFetchStatus } from './git-fetch.js';
33
+ import type { LiveWorktree } from './live-worktree.js';
33
34
  import type { TerminalMultiplexer, MuxSession } from './mux-interface.js';
34
35
  import { TaskTracker, type BackgroundTask } from './task-tracker.js';
35
36
  import { RalphTracker } from './ralph-tracker.js';
@@ -74,23 +75,21 @@ export declare function cliTakesSessionModel(mode: SessionMode): boolean;
74
75
  * Codex, Claude Code, and Gemini are known, controlled (Ink/React) TUIs that
75
76
  * repaint via cursor positioning, so dropping the alt-screen switch is safe —
76
77
  * content stays in the normal buffer. Excluded: `shell` (arbitrary programs like
77
- * vim/less/htop legitimately need the alt screen), `opencode` (its own MIDDLE strip,
78
- * isMuxMouseStripMode), `pi` (below) and `grok` (a fullscreen alt-screen TUI with
78
+ * vim/less/htop legitimately need the alt screen), `opencode`, `copilot` and `pi` (their own
79
+ * MIDDLE strip, isMuxMouseStripMode) and `grok` (a fullscreen alt-screen TUI with
79
80
  * mouse support). Keep parity with the replay-side strip (`stripReplayBuffer` in
80
81
  * session-routes.ts); the table in `CliCapabilities.altScreen` is pinned for every
81
82
  * stock CLI in test/claude-scrollback-strip.test.ts.
82
83
  *
83
84
  * ⚠️ Being excluded here does NOT preserve the alt screen. Every excluded mode
84
- * falls through to isMuxAltScreenOnlyStripMode(), which strips the alt-screen
85
- * toggles too whenever the session is tmux-backed, and pi/opencode ALWAYS are
86
- * (both refuse the direct-PTY fallback). What exclusion actually buys is the rest
87
- * of the full strip: `\x1b[3J` and the mouse-tracking DECSETs survive. That is the
88
- * real reason pi is out: its default TUI renders into the MAIN screen with
89
- * terminal-owned scrollback and is mouse-aware, so it is a `3J`/mouse consumer in
90
- * a way an Ink TUI repainting in place is not. Consequence to know before
91
- * debugging it: pi's runtime-switchable fullscreen TUI (`/settings`, 0.84.0+)
92
- * still gets its `?1049h` stripped and paints into the main buffer, exactly like
93
- * vim inside a tmux `shell` session.
85
+ * falls through to isMuxMouseStripMode() or isMuxAltScreenOnlyStripMode(), which
86
+ * strip the alt-screen toggles too whenever the session is tmux-backed, and
87
+ * pi/opencode ALWAYS are (both refuse the direct-PTY fallback). What exclusion
88
+ * actually buys is the rest of the full strip: `\x1b[3J` survives, and for the
89
+ * narrow strip the mouse-tracking DECSETs too. pi (fullscreen by default since
90
+ * 1.0.0) is a mouse-aware TUI like opencode and copilot, so it takes the mouse
91
+ * strip (isMuxMouseStripMode): a drag selects locally and `cliMouseTracking`
92
+ * keeps the wheel working across a buffer replay.
94
93
  */
95
94
  export declare function isAltScreenStripMode(mode: SessionMode): boolean;
96
95
  /**
@@ -164,7 +163,7 @@ export declare function queryTmuxWindowSize(muxName: string, socket: string): {
164
163
  cols: number;
165
164
  rows: number;
166
165
  };
167
- export declare function resolveMuxAttachCwd(workingDir: string, remote?: SessionRemote, docker?: SessionDocker): string;
166
+ export declare function resolveMuxAttachCwd(workingDir: string, remote?: SessionRemote, docker?: SessionDocker, adopt?: SessionAdopt): string;
168
167
  /**
169
168
  * Represents a JSON message from Claude CLI's stream-json output format.
170
169
  * Messages are newline-delimited JSON objects parsed from PTY output.
@@ -421,6 +420,8 @@ export declare class Session extends EventEmitter {
421
420
  * serialized by toState() but never restored by the constructor.
422
421
  */
423
422
  private _paneCwd;
423
+ /** See {@link liveWorktree}. */
424
+ private _liveWorktree;
424
425
  /**
425
426
  * `workingDir` with symlinks resolved, so a pane reading (tmux reads the
426
427
  * process cwd, always the resolved path) can be put back into `workingDir`'s
@@ -480,6 +481,7 @@ export declare class Session extends EventEmitter {
480
481
  private readonly _tmuxHistoryLimit;
481
482
  private readonly _remote?;
482
483
  private readonly _docker?;
484
+ private readonly _adopt?;
483
485
  private _owner?;
484
486
  private readonly _parentSessionId?;
485
487
  private _color;
@@ -569,6 +571,8 @@ export declare class Session extends EventEmitter {
569
571
  remote?: SessionRemote;
570
572
  /** Docker execution metadata for sessions launched inside a container via local tmux. */
571
573
  docker?: SessionDocker;
574
+ /** Adoption metadata for a wrapper around a human-started tmux session. */
575
+ adopt?: SessionAdopt;
572
576
  /** Owning username (multi-user mode); undefined in single-user. */
573
577
  owner?: string;
574
578
  /** Session that spawned this one — tab lineage decoration, resolved by the caller. */
@@ -602,6 +606,19 @@ export declare class Session extends EventEmitter {
602
606
  get docker(): SessionDocker | undefined;
603
607
  /** Remote-SSH metadata when this session runs on a remote host, else undefined. */
604
608
  get remote(): SessionRemote | undefined;
609
+ /** Adoption metadata when this session wraps a human-started tmux session. */
610
+ get adopt(): SessionAdopt | undefined;
611
+ /**
612
+ * Is this a wrapper around a tmux session Codeman did not start?
613
+ *
614
+ * ⚠️ Deliberately NOT folded into `isExternalCliMode()`. That predicate answers
615
+ * "does this CLI render its own TUI", which is about the PROTOCOL. This one
616
+ * answers "did we launch the process", which is about AUTHORITY: an adopted
617
+ * session can be `mode: 'claude'` and still have no hooks installed, no
618
+ * `envOverrides`, no effort and no `--session-id` we chose. Conflating the two
619
+ * would silently grant claude-shaped automation over a process we do not own.
620
+ */
621
+ get isAdopted(): boolean;
605
622
  /**
606
623
  * `deepSeekConfig.statusReporting` verbatim: `undefined` when the caller sent
607
624
  * none (i.e. ON), `false` when the user disarmed the status bridge for this
@@ -630,6 +647,12 @@ export declare class Session extends EventEmitter {
630
647
  * map can hold provider credentials and stays off the public `SessionState`.
631
648
  */
632
649
  envOverrideValue(key: string): string | undefined;
650
+ /**
651
+ * What the SESSION itself set for `key`, same single-key rule. `envOverrideValue()` answers
652
+ * with whatever the map holds, which under a selection is the injected value: a re-apply
653
+ * resolving the CLI's real home must read the session's own home, or none.
654
+ */
655
+ ownEnvValue(key: string): string | undefined;
633
656
  /** Owning username in multi-user mode, else undefined. */
634
657
  get owner(): string | undefined;
635
658
  /** The session that spawned this one (tab lineage decoration), else undefined. */
@@ -651,13 +674,20 @@ export declare class Session extends EventEmitter {
651
674
  /**
652
675
  * True when a tmux pane's death would mean THIS session's agent has exited.
653
676
  *
654
- * Four shapes fail the test, and each would otherwise publish a death that is
677
+ * Five shapes fail the test, and each would otherwise publish a death that is
655
678
  * not the agent's. A direct-PTY session owns no pane at all. A remote SSH
656
679
  * session's local pane holds the ssh client, whose death means a transport
657
680
  * drop OR an exit, which is the ambiguity PR #355 was about. A docker case's
658
681
  * local pane holds a `docker exec` into the container's own tmux.
659
682
  *
660
- * The fourth is a session rebuilt from the socket. Absent `remote`/`docker`
683
+ * ⚠️ An ADOPTED session is the same shape for a different reason: its pane runs
684
+ * `tmux attach` to a session a human started, never the agent. That attach exiting
685
+ * with 0 says the connection ended or its owner closed the foreign session; neither
686
+ * means this session finished, and neither is Codeman's to clear the tab for. Without
687
+ * this, the clean-exit sweep (`pane-exit-sweep.ts`) would close someone else's live
688
+ * session's tab the moment they detached from it themselves.
689
+ *
690
+ * The fifth is a session rebuilt from the socket. Absent `remote`/`docker`/`adopt`
661
691
  * normally means "this is local", but on a discovered record it only means
662
692
  * "Codeman never found the metadata": the synthetic `restored-<fragment>` id
663
693
  * matches no `state.json` entry, so a remote session rediscovered after
@@ -728,6 +758,15 @@ export declare class Session extends EventEmitter {
728
758
  * lexically inside `workingDir` is accepted.
729
759
  */
730
760
  setPaneCwd(next: string | undefined): boolean;
761
+ /**
762
+ * The linked git worktree inside `workingDir` that {@link paneCwd} is in, when there is one
763
+ * (`live-worktree.ts`). The Files panel lists it instead of the main checkout. Runtime-only and
764
+ * never a confinement root, like `paneCwd`: it is judged lexically when the pane moves, and the
765
+ * listing route re-checks the real folder on every request.
766
+ */
767
+ get liveWorktree(): LiveWorktree | undefined;
768
+ /** Record the result of a worktree lookup. Returns whether it CHANGED, so the caller broadcasts only then. */
769
+ setLiveWorktree(next: LiveWorktree | undefined): boolean;
731
770
  /** `workingDir` without a trailing separator (the root stays `/`). */
732
771
  private _workspaceSpelling;
733
772
  /**
@@ -894,18 +933,27 @@ export declare class Session extends EventEmitter {
894
933
  get customModel(): CustomModelSelection | undefined;
895
934
  /**
896
935
  * The full selection incl. bookkeeping, for state.json ONLY (`__customModel`, the
897
- * same disk-only convention as `getEnvOverridesForPersist()`). Carries no env values,
898
- * so nothing secret lands on disk; recovery re-derives them from the endpoint store.
936
+ * same disk-only convention as `getEnvOverridesForPersist()`). Carries no injected env
937
+ * values, so nothing secret lands on disk; recovery re-derives them from the endpoint store.
899
938
  * Without this a Codeman restart left the pane on the custom endpoint (tmux keeps
900
939
  * its `setenv`s) while `customModel` came back undefined, so the state was wrong and
901
940
  * clearing had nothing to unset. Must NOT be included in any API-bound serializer.
941
+ *
942
+ * The one value it does carry is the session's own home directory (`ownEnv`, narrowed to
943
+ * `homeEnvVar`), a path like `configDir` beside it: the selection overwrote the tmux
944
+ * `setenv` that held it, so without this a clear after a restart would lose it. Any other
945
+ * entry of `ownEnv` may be a credential and stays in memory, and so does a `homeEnvVar`
946
+ * value that is not an absolute path: the registry types that name as any env var, so a
947
+ * `clis.json` override can point it at a credential.
902
948
  */
903
949
  getCustomModelForPersist(): CustomModelBookkeeping | undefined;
904
950
  /**
905
951
  * Update this session's custom-model selection and merge the endpoint's injected env
906
952
  * vars into `_envOverrides` — first UNDOING whatever the previous selection injected
907
- * (removing exactly those env keys), so switching endpoints, or clearing back to the
908
- * harness's native cloud default, never leaves a stale key behind. Synchronous and
953
+ * (removing exactly those env keys, and putting back a value the session had set under
954
+ * one itself), so switching endpoints, or clearing back to the harness's native cloud
955
+ * default, never leaves a stale key behind and never loses the session's own `DSH_HOME`
956
+ * or `CLAUDE_CONFIG_DIR`. Synchronous and
909
957
  * side-effect-free beyond mutating state, matching `setNice`/`setColor` above — this
910
958
  * class does no file IO, so it reports the PREVIOUS `configDir` (if any) for the
911
959
  * caller to clean up on disk (custom-model-injection.ts's configDir kind).
@@ -915,7 +963,12 @@ export declare class Session extends EventEmitter {
915
963
  * `_buildRespawnPaneOptions().unsetEnvKeys`): the tmux session inherits every
916
964
  * `setenv` into `respawn-pane`, so dropping them from the map alone would relaunch
917
965
  * the CLI still pointed at the old endpoint — and for the `configDir` kinds, at a
918
- * `HOME`/`CODEX_HOME`/`GROK_HOME` the caller has just deleted.
966
+ * `HOME`/`CODEX_HOME`/`GROK_HOME` the caller has just deleted. A key put back stays out
967
+ * of that queue: `applyEnvOverrides()` writes its value over the injected one.
968
+ *
969
+ * `next.ownEnv` is for recovery, which states the session's own values itself: after a
970
+ * restart `_envOverrides` holds what the previous run injected (`CLAUDE_CONFIG_DIR` is
971
+ * persisted), and reading those as the session's own would pin it to a deleted directory.
919
972
  */
920
973
  setCustomModel(next: CustomModelBookkeeping | undefined, envOverrides?: Record<string, string>): {
921
974
  removedEnvKeys: string[];
@@ -1068,8 +1121,10 @@ export declare class Session extends EventEmitter {
1068
1121
  status: SessionStatus;
1069
1122
  workingDir: string;
1070
1123
  paneCwd?: string;
1124
+ liveWorktree?: LiveWorktree;
1071
1125
  remote?: SessionRemote;
1072
1126
  docker?: SessionDocker;
1127
+ adopt?: SessionAdopt;
1073
1128
  owner?: string;
1074
1129
  parentSessionId?: string;
1075
1130
  currentTaskId: string | null;
@@ -1190,8 +1245,10 @@ export declare class Session extends EventEmitter {
1190
1245
  status: SessionStatus;
1191
1246
  workingDir: string;
1192
1247
  paneCwd?: string;
1248
+ liveWorktree?: LiveWorktree;
1193
1249
  remote?: SessionRemote;
1194
1250
  docker?: SessionDocker;
1251
+ adopt?: SessionAdopt;
1195
1252
  owner?: string;
1196
1253
  parentSessionId?: string;
1197
1254
  currentTaskId: string | null;
@@ -1442,6 +1499,19 @@ export declare class Session extends EventEmitter {
1442
1499
  /** Emit only on a real transition: a TUI re-emitting its enable on every repaint costs nothing. */
1443
1500
  private _syncCliMouseTracking;
1444
1501
  private _handleTerminalOutput;
1502
+ /**
1503
+ * End a start that cannot reach an adopted session's wrapper.
1504
+ *
1505
+ * ⚠️ Never the direct-PTY fallback. What that starts is a NEW process on THIS host
1506
+ * (`claude --dangerously-skip-permissions`, or a server-account shell) in the neutral
1507
+ * `/tmp`, under a tab still carrying the foreign session's name, so someone who opened an
1508
+ * ssh or container session would end up typing into this machine. `_useMux` stays on, so
1509
+ * the next start, which is what selecting the tab sends, tries the wrapper again.
1510
+ *
1511
+ * The `error` event is what the tab shows: the browser's re-attach does not read the
1512
+ * route's answer.
1513
+ */
1514
+ private _failAdoptedStart;
1445
1515
  startInteractive(): Promise<void>;
1446
1516
  /**
1447
1517
  * Clear the interactive-PTY exit circuit breaker (COD-118).