aicodeman 1.35.0 → 1.40.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 (246) hide show
  1. package/README.md +8 -0
  2. package/README.zh-CN.md +8 -0
  3. package/dist/attachment-registry.d.ts +6 -0
  4. package/dist/attachment-registry.d.ts.map +1 -1
  5. package/dist/attachment-registry.js +9 -3
  6. package/dist/attachment-registry.js.map +1 -1
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +2 -2
  9. package/dist/cli.js.map +1 -1
  10. package/dist/config/cli-registry/patterns.d.ts +6 -0
  11. package/dist/config/cli-registry/patterns.d.ts.map +1 -1
  12. package/dist/config/cli-registry/patterns.js +13 -0
  13. package/dist/config/cli-registry/patterns.js.map +1 -1
  14. package/dist/config/cli-registry/schema.d.ts +13 -0
  15. package/dist/config/cli-registry/schema.d.ts.map +1 -1
  16. package/dist/config/cli-registry/schema.js +60 -2
  17. package/dist/config/cli-registry/schema.js.map +1 -1
  18. package/dist/config/cli-registry/stock.d.ts.map +1 -1
  19. package/dist/config/cli-registry/stock.js +175 -7
  20. package/dist/config/cli-registry/stock.js.map +1 -1
  21. package/dist/config/cli-registry/types.d.ts +93 -6
  22. package/dist/config/cli-registry/types.d.ts.map +1 -1
  23. package/dist/deepseek-route-config.d.ts +110 -0
  24. package/dist/deepseek-route-config.d.ts.map +1 -0
  25. package/dist/deepseek-route-config.js +477 -0
  26. package/dist/deepseek-route-config.js.map +1 -0
  27. package/dist/git-workspace-status.d.ts +31 -5
  28. package/dist/git-workspace-status.d.ts.map +1 -1
  29. package/dist/git-workspace-status.js +49 -29
  30. package/dist/git-workspace-status.js.map +1 -1
  31. package/dist/model-config-resolvers.d.ts +29 -0
  32. package/dist/model-config-resolvers.d.ts.map +1 -0
  33. package/dist/model-config-resolvers.js +34 -0
  34. package/dist/model-config-resolvers.js.map +1 -0
  35. package/dist/session-display-model.d.ts +110 -0
  36. package/dist/session-display-model.d.ts.map +1 -0
  37. package/dist/session-display-model.js +154 -0
  38. package/dist/session-display-model.js.map +1 -0
  39. package/dist/session.d.ts +145 -8
  40. package/dist/session.d.ts.map +1 -1
  41. package/dist/session.js +280 -35
  42. package/dist/session.js.map +1 -1
  43. package/dist/types/session.d.ts +28 -1
  44. package/dist/types/session.d.ts.map +1 -1
  45. package/dist/types/session.js.map +1 -1
  46. package/dist/types/tools.d.ts +1 -1
  47. package/dist/types/tools.d.ts.map +1 -1
  48. package/dist/utils/deepseek-cli-resolver.d.ts +8 -0
  49. package/dist/utils/deepseek-cli-resolver.d.ts.map +1 -1
  50. package/dist/utils/deepseek-cli-resolver.js +18 -2
  51. package/dist/utils/deepseek-cli-resolver.js.map +1 -1
  52. package/dist/web/launch-defaults.d.ts +22 -0
  53. package/dist/web/launch-defaults.d.ts.map +1 -0
  54. package/dist/web/launch-defaults.js +46 -0
  55. package/dist/web/launch-defaults.js.map +1 -0
  56. package/dist/web/public/admin-ui.js.gz +0 -0
  57. package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
  58. package/dist/web/public/app.abadc970.js +43 -0
  59. package/dist/web/public/app.abadc970.js.br +0 -0
  60. package/dist/web/public/app.abadc970.js.gz +0 -0
  61. package/dist/web/public/approvals-ui.js.gz +0 -0
  62. package/dist/web/public/{constants.d95fade9.js → constants.c0f8f9de.js} +1009 -127
  63. package/dist/web/public/constants.c0f8f9de.js.br +0 -0
  64. package/dist/web/public/constants.c0f8f9de.js.gz +0 -0
  65. package/dist/web/public/cron-ui.js.gz +0 -0
  66. package/dist/web/public/entrance-animations.js +1 -0
  67. package/dist/web/public/entrance-animations.js.br +0 -0
  68. package/dist/web/public/entrance-animations.js.gz +0 -0
  69. package/dist/web/public/git-status-ui.js +55 -9
  70. package/dist/web/public/git-status-ui.js.br +0 -0
  71. package/dist/web/public/git-status-ui.js.gz +0 -0
  72. package/dist/web/public/home-sessions.js +12 -9
  73. package/dist/web/public/home-sessions.js.br +0 -0
  74. package/dist/web/public/home-sessions.js.gz +0 -0
  75. package/dist/web/public/host-wake-ui.js.gz +0 -0
  76. package/dist/web/public/i18n.a31747a9.js +2 -0
  77. package/dist/web/public/i18n.a31747a9.js.br +0 -0
  78. package/dist/web/public/i18n.a31747a9.js.gz +0 -0
  79. package/dist/web/public/{image-input.a216cf9e.js → image-input.898a538b.js} +18 -8
  80. package/dist/web/public/image-input.898a538b.js.br +0 -0
  81. package/dist/web/public/image-input.898a538b.js.gz +0 -0
  82. package/dist/web/public/index.html +133 -37
  83. package/dist/web/public/index.html.br +0 -0
  84. package/dist/web/public/index.html.gz +0 -0
  85. package/dist/web/public/input-cjk.8bc46081.js.gz +0 -0
  86. package/dist/web/public/keyboard-accessory.c1e7c7b7.js.gz +0 -0
  87. package/dist/web/public/{mobile-handlers.23a85db1.js → mobile-handlers.0ef9c311.js} +20 -0
  88. package/dist/web/public/mobile-handlers.0ef9c311.js.br +0 -0
  89. package/dist/web/public/mobile-handlers.0ef9c311.js.gz +0 -0
  90. package/dist/web/public/mobile-ime-preview.2dbaf262.js.gz +0 -0
  91. package/dist/web/public/mobile-overview.js.gz +0 -0
  92. package/dist/web/public/mobile.111b187d.css +1 -0
  93. package/dist/web/public/mobile.111b187d.css.br +0 -0
  94. package/dist/web/public/mobile.111b187d.css.gz +0 -0
  95. package/dist/web/public/notification-manager.50bb87d8.js.gz +0 -0
  96. package/dist/web/public/orchestrator-panel.js.gz +0 -0
  97. package/dist/web/public/{panels-ui.6a5898d9.js → panels-ui.4735dfc2.js} +4 -4
  98. package/dist/web/public/panels-ui.4735dfc2.js.br +0 -0
  99. package/dist/web/public/{panels-ui.6a5898d9.js.gz → panels-ui.4735dfc2.js.gz} +0 -0
  100. package/dist/web/public/ralph-panel.b350e2ef.js.gz +0 -0
  101. package/dist/web/public/ralph-wizard.b6c0dd19.js.gz +0 -0
  102. package/dist/web/public/readmymind-ui.js.gz +0 -0
  103. package/dist/web/public/reboot-restore-ui.js.gz +0 -0
  104. package/dist/web/public/respawn-ui.ff0dae4c.js.gz +0 -0
  105. package/dist/web/public/sanitize-html.e7147e76.js.gz +0 -0
  106. package/dist/web/public/session-lineage.js +229 -86
  107. package/dist/web/public/session-lineage.js.br +0 -0
  108. package/dist/web/public/session-lineage.js.gz +0 -0
  109. package/dist/web/public/session-ui.f731602c.js +100 -0
  110. package/dist/web/public/session-ui.f731602c.js.br +0 -0
  111. package/dist/web/public/session-ui.f731602c.js.gz +0 -0
  112. package/dist/web/public/settings-ui.a97ab16f.js +97 -0
  113. package/dist/web/public/settings-ui.a97ab16f.js.br +0 -0
  114. package/dist/web/public/settings-ui.a97ab16f.js.gz +0 -0
  115. package/dist/web/public/spreadsheet-preview-worker.js +290 -0
  116. package/dist/web/public/spreadsheet-preview-worker.js.br +0 -0
  117. package/dist/web/public/spreadsheet-preview-worker.js.gz +0 -0
  118. package/dist/web/public/spreadsheet-preview.af82fa2f.js +555 -0
  119. package/dist/web/public/spreadsheet-preview.af82fa2f.js.br +0 -0
  120. package/dist/web/public/spreadsheet-preview.af82fa2f.js.gz +0 -0
  121. package/dist/web/public/spreadsheet-xlsx-core.js +1006 -0
  122. package/dist/web/public/spreadsheet-xlsx-core.js.br +0 -0
  123. package/dist/web/public/spreadsheet-xlsx-core.js.gz +0 -0
  124. package/dist/web/public/styles.8ee12666.css +1 -0
  125. package/dist/web/public/styles.8ee12666.css.br +0 -0
  126. package/dist/web/public/styles.8ee12666.css.gz +0 -0
  127. package/dist/web/public/subagent-windows.e6ca799f.js.gz +0 -0
  128. package/dist/web/public/sw.js +2 -2
  129. package/dist/web/public/sw.js.br +0 -0
  130. package/dist/web/public/sw.js.gz +0 -0
  131. package/dist/web/public/tab-layout-browser.065fcba4.js.gz +0 -0
  132. package/dist/web/public/{tab-rail-resize.94cd59f0.js → tab-rail-resize.a5867793.js} +1 -1
  133. package/dist/web/public/tab-rail-resize.a5867793.js.br +0 -0
  134. package/dist/web/public/{tab-rail-resize.94cd59f0.js.gz → tab-rail-resize.a5867793.js.gz} +0 -0
  135. package/dist/web/public/terminal-keycode229-recovery.af09f99a.js +1 -0
  136. package/dist/web/public/terminal-keycode229-recovery.af09f99a.js.br +0 -0
  137. package/dist/web/public/terminal-keycode229-recovery.af09f99a.js.gz +0 -0
  138. package/dist/web/public/terminal-split.js +146 -649
  139. package/dist/web/public/terminal-split.js.br +0 -0
  140. package/dist/web/public/terminal-split.js.gz +0 -0
  141. package/dist/web/public/terminal-tile.js +1611 -0
  142. package/dist/web/public/terminal-tile.js.br +0 -0
  143. package/dist/web/public/terminal-tile.js.gz +0 -0
  144. package/dist/web/public/terminal-ui.5059b30e.js +2 -0
  145. package/dist/web/public/terminal-ui.5059b30e.js.br +0 -0
  146. package/dist/web/public/terminal-ui.5059b30e.js.gz +0 -0
  147. package/dist/web/public/tile-grid.js +2684 -0
  148. package/dist/web/public/tile-grid.js.br +0 -0
  149. package/dist/web/public/tile-grid.js.gz +0 -0
  150. package/dist/web/public/ultracode-panel.js.gz +0 -0
  151. package/dist/web/public/ultracode-windows.js.gz +0 -0
  152. package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
  153. package/dist/web/public/vendor/exceljs.min.js +44 -0
  154. package/dist/web/public/vendor/exceljs.min.js.br +0 -0
  155. package/dist/web/public/vendor/exceljs.min.js.gz +0 -0
  156. package/dist/web/public/vendor/fflate.min.js +1 -0
  157. package/dist/web/public/vendor/fflate.min.js.br +0 -0
  158. package/dist/web/public/vendor/fflate.min.js.gz +0 -0
  159. package/dist/web/public/vendor/marked.min.js.gz +0 -0
  160. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  161. package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
  162. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  163. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  164. package/dist/web/public/vendor/xterm-predictive-echo.ae5e3d5d.js.gz +0 -0
  165. package/dist/web/public/vendor/xterm-zerolag-input.bbb5f84c.js.gz +0 -0
  166. package/dist/web/public/vendor/xterm.css.gz +0 -0
  167. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  168. package/dist/web/public/{voice-input.c4b51eb6.js → voice-input.2342c37b.js} +64 -10
  169. package/dist/web/public/voice-input.2342c37b.js.br +0 -0
  170. package/dist/web/public/voice-input.2342c37b.js.gz +0 -0
  171. package/dist/web/public/voice-pcm-worklet.js.gz +0 -0
  172. package/dist/web/public/webview-tabs.js +9 -1
  173. package/dist/web/public/webview-tabs.js.br +0 -0
  174. package/dist/web/public/webview-tabs.js.gz +0 -0
  175. package/dist/web/routes/cli-registry-routes.d.ts.map +1 -1
  176. package/dist/web/routes/cli-registry-routes.js +3 -1
  177. package/dist/web/routes/cli-registry-routes.js.map +1 -1
  178. package/dist/web/routes/file-routes.d.ts +7 -0
  179. package/dist/web/routes/file-routes.d.ts.map +1 -1
  180. package/dist/web/routes/file-routes.js +34 -4
  181. package/dist/web/routes/file-routes.js.map +1 -1
  182. package/dist/web/routes/git-status-routes.d.ts.map +1 -1
  183. package/dist/web/routes/git-status-routes.js +33 -6
  184. package/dist/web/routes/git-status-routes.js.map +1 -1
  185. package/dist/web/routes/session-routes.d.ts +18 -0
  186. package/dist/web/routes/session-routes.d.ts.map +1 -1
  187. package/dist/web/routes/session-routes.js +86 -34
  188. package/dist/web/routes/session-routes.js.map +1 -1
  189. package/dist/web/routes/status-telemetry-routes.d.ts +3 -0
  190. package/dist/web/routes/status-telemetry-routes.d.ts.map +1 -1
  191. package/dist/web/routes/status-telemetry-routes.js +12 -0
  192. package/dist/web/routes/status-telemetry-routes.js.map +1 -1
  193. package/dist/web/routes/system-routes.d.ts.map +1 -1
  194. package/dist/web/routes/system-routes.js +13 -0
  195. package/dist/web/routes/system-routes.js.map +1 -1
  196. package/dist/web/schemas.d.ts +27 -0
  197. package/dist/web/schemas.d.ts.map +1 -1
  198. package/dist/web/schemas.js +34 -0
  199. package/dist/web/schemas.js.map +1 -1
  200. package/dist/web/server.d.ts +5 -0
  201. package/dist/web/server.d.ts.map +1 -1
  202. package/dist/web/server.js +32 -11
  203. package/dist/web/server.js.map +1 -1
  204. package/dist/web/session-listener-wiring.d.ts +1 -0
  205. package/dist/web/session-listener-wiring.d.ts.map +1 -1
  206. package/dist/web/session-listener-wiring.js +11 -0
  207. package/dist/web/session-listener-wiring.js.map +1 -1
  208. package/package.json +3 -1
  209. package/scripts/postinstall.js +16 -0
  210. package/dist/web/public/app.b9516c7b.js +0 -43
  211. package/dist/web/public/app.b9516c7b.js.br +0 -0
  212. package/dist/web/public/app.b9516c7b.js.gz +0 -0
  213. package/dist/web/public/constants.d95fade9.js.br +0 -0
  214. package/dist/web/public/constants.d95fade9.js.gz +0 -0
  215. package/dist/web/public/i18n.52f5b7cc.js +0 -1
  216. package/dist/web/public/i18n.52f5b7cc.js.br +0 -0
  217. package/dist/web/public/i18n.52f5b7cc.js.gz +0 -0
  218. package/dist/web/public/image-input.a216cf9e.js.br +0 -0
  219. package/dist/web/public/image-input.a216cf9e.js.gz +0 -0
  220. package/dist/web/public/mobile-handlers.23a85db1.js.br +0 -0
  221. package/dist/web/public/mobile-handlers.23a85db1.js.gz +0 -0
  222. package/dist/web/public/mobile.1aa4952d.css +0 -1
  223. package/dist/web/public/mobile.1aa4952d.css.br +0 -0
  224. package/dist/web/public/mobile.1aa4952d.css.gz +0 -0
  225. package/dist/web/public/panels-ui.6a5898d9.js.br +0 -0
  226. package/dist/web/public/session-ui.6bddf916.js +0 -89
  227. package/dist/web/public/session-ui.6bddf916.js.br +0 -0
  228. package/dist/web/public/session-ui.6bddf916.js.gz +0 -0
  229. package/dist/web/public/settings-ui.6e798b7b.js +0 -97
  230. package/dist/web/public/settings-ui.6e798b7b.js.br +0 -0
  231. package/dist/web/public/settings-ui.6e798b7b.js.gz +0 -0
  232. package/dist/web/public/styles.2d175c60.css +0 -1
  233. package/dist/web/public/styles.2d175c60.css.br +0 -0
  234. package/dist/web/public/styles.2d175c60.css.gz +0 -0
  235. package/dist/web/public/tab-rail-resize.94cd59f0.js.br +0 -0
  236. package/dist/web/public/terminal-keycode229-recovery.fb91b25b.js +0 -1
  237. package/dist/web/public/terminal-keycode229-recovery.fb91b25b.js.br +0 -0
  238. package/dist/web/public/terminal-keycode229-recovery.fb91b25b.js.gz +0 -0
  239. package/dist/web/public/terminal-ui.a4535311.js +0 -2
  240. package/dist/web/public/terminal-ui.a4535311.js.br +0 -0
  241. package/dist/web/public/terminal-ui.a4535311.js.gz +0 -0
  242. package/dist/web/public/upload.html +0 -155
  243. package/dist/web/public/upload.html.br +0 -0
  244. package/dist/web/public/upload.html.gz +0 -0
  245. package/dist/web/public/voice-input.c4b51eb6.js.br +0 -0
  246. package/dist/web/public/voice-input.c4b51eb6.js.gz +0 -0
@@ -15,8 +15,8 @@
15
15
  * subfolder reports its whole enclosing repo; a nested repo below it is just an untracked folder
16
16
  * to the outer one, and is not scanned;
17
17
  * - NOT inside one (a folder that holds several projects): every repository found up to two levels
18
- * DOWN (`MAX_REPOS` of them, skipping dot-folders, `node_modules` and the like, never following
19
- * symlinks), each reported separately;
18
+ * DOWN (the caller's `maxRepos` of them, `MAX_REPOS` by default, skipping dot-folders, `node_modules`
19
+ * and the like, never following symlinks), each reported separately;
20
20
  * - a repository that merely sits ABOVE the workspace and is the home folder or higher (a dotfiles
21
21
  * repo in `$HOME`, or `/`) is ignored: its dirty files are not this session's work.
22
22
  *
@@ -49,7 +49,10 @@ import { basename, join, relative, sep } from 'node:path';
49
49
  import { promisify } from 'node:util';
50
50
  import { gitNonInteractiveEnv, redactGitCredentials } from './git-clone.js';
51
51
  const execFileAsync = promisify(execFile);
52
- const GIT_TIMEOUT_MS = 10_000;
52
+ /** How long one git command may run, unless the caller passes `timeoutMs` (a slow network share needs more). */
53
+ export const DEFAULT_GIT_TIMEOUT_MS = 30_000;
54
+ export const MIN_GIT_TIMEOUT_MS = 5_000;
55
+ export const MAX_GIT_TIMEOUT_MS = 120_000;
53
56
  /** `git status` on a huge tree can print a lot; a bound on what we will hold. */
54
57
  const MAX_OUTPUT_BYTES = 8 * 1024 * 1024;
55
58
  /** Max file rows returned. The counts stay exact. */
@@ -174,14 +177,14 @@ export function parseCommitLog(text) {
174
177
  }
175
178
  return out;
176
179
  }
177
- export const runGit = async (cwd, args) => {
180
+ export const runGit = async (cwd, args, opts) => {
178
181
  const { stdout } = await execFileAsync('git',
179
182
  // --no-optional-locks: never touch the index just to look. core.fsmonitor=false: do not start or
180
183
  // consult a filesystem monitor on behalf of a poll. log.showSignature=false: `git log` must not run
181
184
  // a configured gpg.program to verify signatures.
182
185
  ['--no-optional-locks', '-c', 'core.fsmonitor=false', '-c', 'log.showSignature=false', ...args], {
183
186
  cwd,
184
- timeout: GIT_TIMEOUT_MS,
187
+ timeout: opts?.timeoutMs ?? DEFAULT_GIT_TIMEOUT_MS,
185
188
  maxBuffer: MAX_OUTPUT_BYTES,
186
189
  env: { ...gitNonInteractiveEnv(), LC_ALL: 'C', LANG: 'C', GIT_OPTIONAL_LOCKS: '0' },
187
190
  });
@@ -199,17 +202,10 @@ function describeFailure(err) {
199
202
  const text = (stderr || e.message || 'git failed').trim().split('\n')[0];
200
203
  return { notARepo: false, message: redactGitCredentials(text).slice(0, 300) };
201
204
  }
202
- async function collect(cwd, git) {
205
+ async function collect(cwd, git, timeoutMs) {
203
206
  let statusText;
204
207
  try {
205
- statusText = await git(cwd, [
206
- 'status',
207
- '--porcelain=v2',
208
- '--branch',
209
- '-z',
210
- '--untracked-files=normal',
211
- '--ignore-submodules=dirty',
212
- ]);
208
+ statusText = await git(cwd, ['status', '--porcelain=v2', '--branch', '-z', '--untracked-files=normal', '--ignore-submodules=dirty'], { timeoutMs });
213
209
  }
214
210
  catch (err) {
215
211
  const f = describeFailure(err);
@@ -218,7 +214,7 @@ async function collect(cwd, git) {
218
214
  const parsed = parsePorcelainV2(statusText);
219
215
  const safe = async (args) => {
220
216
  try {
221
- return await git(cwd, args);
217
+ return await git(cwd, args, { timeoutMs });
222
218
  }
223
219
  catch {
224
220
  return '';
@@ -313,7 +309,7 @@ async function singleFlight(map, key, opts, compute) {
313
309
  */
314
310
  export async function getGitWorkspaceStatus(cwd, opts = {}) {
315
311
  const git = opts.git ?? runGit;
316
- return singleFlight(cache, cwd, { now: opts.now ?? Date.now, fresh: opts.fresh }, () => collect(cwd, git));
312
+ return singleFlight(cache, cwd, { now: opts.now ?? Date.now, fresh: opts.fresh }, () => collect(cwd, git, opts.timeoutMs));
317
313
  }
318
314
  const toplevelCache = new Map();
319
315
  /** The root of the repository enclosing `cwd` (git walks up), from one cheap `rev-parse`. Cached like the status. */
@@ -321,7 +317,7 @@ function enclosingRepoRoot(cwd, opts) {
321
317
  const git = opts.git ?? runGit;
322
318
  return singleFlight(toplevelCache, cwd, { now: opts.now ?? Date.now, fresh: opts.fresh }, async () => {
323
319
  try {
324
- const root = (await git(cwd, ['rev-parse', '--show-toplevel'])).trim();
320
+ const root = (await git(cwd, ['rev-parse', '--show-toplevel'], { timeoutMs: opts.timeoutMs })).trim();
325
321
  return root ? { state: 'ok', root } : { state: 'not-a-repo' };
326
322
  }
327
323
  catch (err) {
@@ -339,6 +335,16 @@ const DISCOVERY_MAX_DEPTH = 2;
339
335
  const DISCOVERY_MAX_ENTRIES = 300;
340
336
  /** Repositories reported for one workspace. */
341
337
  export const MAX_REPOS = 12;
338
+ /** The most repositories a caller may ask for: each one costs several git processes per poll. */
339
+ export const MAX_REPOS_LIMIT = 50;
340
+ /** `value` as a whole number within [min, max], else `fallback`. For options that arrive as untrusted query strings. */
341
+ export function clampInt(value, min, max, fallback) {
342
+ // An empty string is "not given", not 0 (Number('') is 0, which would clamp to the minimum).
343
+ const n = typeof value === 'number' ? value : typeof value === 'string' && value.trim() !== '' ? Number(value) : NaN;
344
+ if (!Number.isFinite(n))
345
+ return fallback;
346
+ return Math.min(max, Math.max(min, Math.trunc(n)));
347
+ }
342
348
  /** The list of repositories under a folder changes rarely, so it is re-scanned far less often than status. */
343
349
  const DISCOVERY_TTL_MS = 30_000;
344
350
  /** Folders that are never worth descending into when looking for projects. */
@@ -415,7 +421,7 @@ async function readDirBounded(dir) {
415
421
  return out;
416
422
  }
417
423
  /** Repositories up to `DISCOVERY_MAX_DEPTH` levels below `cwd`, nearest and alphabetical first. Never follows symlinks. */
418
- export async function discoverChildRepos(cwd, excludeRealRoots = []) {
424
+ export async function discoverChildRepos(cwd, excludeRealRoots = [], maxRepos = MAX_REPOS) {
419
425
  const found = [];
420
426
  let level = [cwd];
421
427
  for (let depth = 1; depth <= DISCOVERY_MAX_DEPTH && level.length > 0; depth++) {
@@ -442,7 +448,7 @@ export async function discoverChildRepos(cwd, excludeRealRoots = []) {
442
448
  }
443
449
  level = next;
444
450
  }
445
- return { dirs: found.slice(0, MAX_REPOS), truncated: found.length > MAX_REPOS };
451
+ return { dirs: found.slice(0, maxRepos), truncated: found.length > maxRepos };
446
452
  }
447
453
  const discoveryCache = new Map();
448
454
  /** Run `fn` over `items` with at most `limit` in flight, keeping the input order. */
@@ -458,6 +464,13 @@ async function mapLimited(items, limit, fn) {
458
464
  await Promise.all(Array.from({ length: Math.min(limit, items.length) }, worker));
459
465
  return out;
460
466
  }
467
+ /** The repository limit and git timeout an overview was computed with, from untrusted options. */
468
+ export function resolveOverviewLimits(opts) {
469
+ return {
470
+ maxRepos: clampInt(opts.maxRepos, 1, MAX_REPOS_LIMIT, MAX_REPOS),
471
+ timeoutMs: clampInt(opts.timeoutMs, MIN_GIT_TIMEOUT_MS, MAX_GIT_TIMEOUT_MS, DEFAULT_GIT_TIMEOUT_MS),
472
+ };
473
+ }
461
474
  /**
462
475
  * WHICH repositories belong to the workspace (the module header has the rules), without a full
463
476
  * status of any of them: one cached `rev-parse` for the enclosing repository, else the cached scan
@@ -465,6 +478,7 @@ async function mapLimited(items, limit, fn) {
465
478
  */
466
479
  async function resolveWorkspaceRepos(cwd, opts) {
467
480
  const now = opts.now ?? Date.now;
481
+ const { maxRepos, timeoutMs } = resolveOverviewLimits(opts);
468
482
  const dockerRoots = await realAll(opts.dockerWorkspaces ?? []);
469
483
  // Checked BEFORE any git runs: git walks up from cwd, and a repository the container can write to
470
484
  // could carry config (a clean filter) that runs on the host.
@@ -473,7 +487,7 @@ async function resolveWorkspaceRepos(cwd, opts) {
473
487
  // The enclosing repository is identified before its full status runs, so an unrelated one above the
474
488
  // workspace (a dotfiles repo in $HOME) costs one rev-parse, and its status failing cannot hide the
475
489
  // repositories below.
476
- const top = await enclosingRepoRoot(cwd, opts);
490
+ const top = await enclosingRepoRoot(cwd, { ...opts, timeoutMs });
477
491
  if (top.state === 'error')
478
492
  return { kind: 'error', error: top.error };
479
493
  if (top.state === 'ok') {
@@ -483,13 +497,15 @@ async function resolveWorkspaceRepos(cwd, opts) {
483
497
  return { kind: 'enclosing', root: top.root };
484
498
  }
485
499
  // Not inside a repository of this workspace: look below for projects.
486
- const hit = discoveryCache.get(cwd);
500
+ // Keyed by the limit too: a list cut at 12 must not answer a request for 30.
501
+ const discoveryKey = `${cwd}\0${maxRepos}`;
502
+ const hit = discoveryCache.get(discoveryKey);
487
503
  let found;
488
504
  if (!opts.fresh && hit && now() - hit.at < DISCOVERY_TTL_MS)
489
505
  found = hit.value;
490
506
  else {
491
- found = await discoverChildRepos(cwd, dockerRoots);
492
- discoveryCache.set(cwd, { at: now(), value: found });
507
+ found = await discoverChildRepos(cwd, dockerRoots, maxRepos);
508
+ discoveryCache.set(discoveryKey, { at: now(), value: found });
493
509
  if (discoveryCache.size > CACHE_MAX_ENTRIES)
494
510
  discoveryCache.delete(discoveryCache.keys().next().value);
495
511
  }
@@ -498,7 +514,7 @@ async function resolveWorkspaceRepos(cwd, opts) {
498
514
  for (const dir of found.dirs)
499
515
  if (!(await isInsideAny(dir, dockerRoots)))
500
516
  dirs.push(dir);
501
- return { kind: 'children', dirs, truncated: found.truncated };
517
+ return { kind: 'children', dirs, truncated: found.truncated, limit: maxRepos };
502
518
  }
503
519
  /**
504
520
  * Everything git knows about the session's workspace: the enclosing repository when there is one,
@@ -511,7 +527,7 @@ export async function getGitWorkspaceOverview(cwd, opts = {}) {
511
527
  if (where.kind === 'error')
512
528
  return emptyOverview('error', { error: where.error });
513
529
  if (where.kind === 'enclosing') {
514
- const primary = await getGitWorkspaceStatus(cwd, opts);
530
+ const primary = await getGitWorkspaceStatus(cwd, { ...opts, timeoutMs: resolveOverviewLimits(opts).timeoutMs });
515
531
  if (primary.state === 'error')
516
532
  return emptyOverview('error', { error: primary.error });
517
533
  if (primary.state !== 'ok')
@@ -524,16 +540,20 @@ export async function getGitWorkspaceOverview(cwd, opts = {}) {
524
540
  checkedAt: primary.checkedAt,
525
541
  };
526
542
  }
527
- const statuses = await mapLimited(where.dirs, STATUS_CONCURRENCY, (dir) => getGitWorkspaceStatus(dir, opts));
543
+ const timeoutMs = resolveOverviewLimits(opts).timeoutMs;
544
+ const statuses = await mapLimited(where.dirs, STATUS_CONCURRENCY, (dir) => getGitWorkspaceStatus(dir, { ...opts, timeoutMs }));
528
545
  const repos = [];
529
546
  where.dirs.forEach((dir, i) => {
530
547
  const status = statuses[i];
531
- if (status.state === 'ok')
548
+ // A repository git could not read (a timeout on a slow share, a broken worktree) stays in the
549
+ // list with its error, so it is visible that something is not being reported; only a folder
550
+ // that turned out not to be a repository after all is left out.
551
+ if (status.state === 'ok' || status.state === 'error')
532
552
  repos.push({ name: basename(dir), path: relative(cwd, dir), status });
533
553
  });
534
554
  if (!repos.length)
535
555
  return emptyOverview('not-a-repo');
536
- return { state: 'ok', repos, reposTruncated: where.truncated, checkedAt: Date.now() };
556
+ return { state: 'ok', repos, reposTruncated: where.truncated, repoLimit: where.limit, checkedAt: Date.now() };
537
557
  }
538
558
  /**
539
559
  * `repo` when it is the root of one of the repositories the overview reports for `cwd` (the same rules
@@ -581,7 +601,7 @@ export async function getGitFileDiff(repoRoot, file, opts = {}) {
581
601
  let out;
582
602
  let cutShort = false;
583
603
  try {
584
- out = await git(repoRoot, args);
604
+ out = await git(repoRoot, args, { timeoutMs: opts.timeoutMs });
585
605
  }
586
606
  catch (err) {
587
607
  const e = err;
@@ -1 +1 @@
1
- {"version":3,"file":"git-workspace-status.js","sourceRoot":"","sources":["../src/git-workspace-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-workspace-status.js","sourceRoot":"","sources":["../src/git-workspace-status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @fileoverview The config readers a CLI's registry entry may name for the model its
3
+ * session runs (`capabilities.modelDetect.configResolver`): the per-CLI behaviour lives
4
+ * here, keyed by name, so no code branches on a CLI id (like the launcher profiles in
5
+ * config/cli-registry/profiles.ts).
6
+ *
7
+ * A reader answers the model the CLI's own config pins for one session, or null when
8
+ * it pins none or the answer is in any doubt. It must be read-only, bounded (no
9
+ * synchronous filesystem call, nothing that can wait on a dead mount) and must return
10
+ * the model id alone, never another config value.
11
+ *
12
+ * @module model-config-resolvers
13
+ */
14
+ import type { ModelConfigResolverName } from './config/cli-registry/types.js';
15
+ /** What a reader gets to know about the session. */
16
+ export interface ModelConfigContext {
17
+ /** The session's own launch config for its CLI (its `<Mode>Config`), if any. */
18
+ config: Record<string, unknown> | undefined;
19
+ /** The environment the session's CLI runs with (its own overrides, then the server's). */
20
+ env: (key: string) => string | undefined;
21
+ }
22
+ /**
23
+ * The model the named reader resolves for a session, or null.
24
+ *
25
+ * @param name a `configResolver` from the registry (schema-checked at load)
26
+ * @param ctx what the reader may know about the session
27
+ */
28
+ export declare function resolveConfigModel(name: ModelConfigResolverName, ctx: ModelConfigContext): Promise<string | null>;
29
+ //# sourceMappingURL=model-config-resolvers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-config-resolvers.d.ts","sourceRoot":"","sources":["../src/model-config-resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAG9E,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC5C,0FAA0F;IAC1F,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC1C;AAaD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,uBAAuB,EAC7B,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @fileoverview The config readers a CLI's registry entry may name for the model its
3
+ * session runs (`capabilities.modelDetect.configResolver`): the per-CLI behaviour lives
4
+ * here, keyed by name, so no code branches on a CLI id (like the launcher profiles in
5
+ * config/cli-registry/profiles.ts).
6
+ *
7
+ * A reader answers the model the CLI's own config pins for one session, or null when
8
+ * it pins none or the answer is in any doubt. It must be read-only, bounded (no
9
+ * synchronous filesystem call, nothing that can wait on a dead mount) and must return
10
+ * the model id alone, never another config value.
11
+ *
12
+ * @module model-config-resolvers
13
+ */
14
+ import { effectiveDshHome, readDeepSeekRouteModel } from './deepseek-route-config.js';
15
+ const RESOLVERS = {
16
+ // dsh-TUI's route: the session's profile (else the one the launch boots, which the
17
+ // launch names from the server's own dsh home) read under the session's dsh home.
18
+ 'deepseek-route': (ctx) => readDeepSeekRouteModel({
19
+ profile: ctx.config?.profile,
20
+ home: effectiveDshHome(ctx.env),
21
+ serverHome: effectiveDshHome((key) => process.env[key]),
22
+ }),
23
+ };
24
+ /**
25
+ * The model the named reader resolves for a session, or null.
26
+ *
27
+ * @param name a `configResolver` from the registry (schema-checked at load)
28
+ * @param ctx what the reader may know about the session
29
+ */
30
+ export async function resolveConfigModel(name, ctx) {
31
+ const resolver = RESOLVERS[name];
32
+ return resolver ? resolver(ctx) : null;
33
+ }
34
+ //# sourceMappingURL=model-config-resolvers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-config-resolvers.js","sourceRoot":"","sources":["../src/model-config-resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAUtF,MAAM,SAAS,GAAyF;IACtG,mFAAmF;IACnF,kFAAkF;IAClF,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE,CACxB,sBAAsB,CAAC;QACrB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO;QAC5B,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;QAC/B,UAAU,EAAE,gBAAgB,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACxD,CAAC;CACL,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAA6B,EAC7B,GAAuB;IAEvB,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * @fileoverview Which model a session is running, as far as the server can know it
3
+ * (`SessionState.displayModel`, shown in the tile grid's and split pane's headers).
4
+ *
5
+ * Pure: the session feeds it what it has and publishes the answer through `toState()`.
6
+ *
7
+ * ## Sources, strongest first
8
+ *
9
+ * 1. **custom-endpoint**: a session pointed at a Custom Model Endpoint Profile is answered
10
+ * by that endpoint's `modelId`, whatever alias the CLI itself prints.
11
+ * 2. **statusline / screen**: what the running CLI REPORTS, newest report wins. Claude's
12
+ * statusLine exporter posts `model.display_name` on every render (it follows an
13
+ * in-session `/model`); a CLI whose registry entry declares
14
+ * `capabilities.modelDetect` has its footer read off the pane capture the idle/working
15
+ * probe already takes.
16
+ * 3. **config**: the model the CLI's own config pins for this session, read by the
17
+ * reader its registry entry names (`capabilities.modelDetect.configResolver`, e.g. the
18
+ * dsh-TUI route: src/deepseek-route-config.ts), for while the screen names none. Not
19
+ * a report from the running CLI, so any report outranks it.
20
+ * 4. **launch**: the model the session was launched with (claude's `--model` or the
21
+ * app-wide default it was created with; another CLI's `<cli>Config.model`). What was
22
+ * asked for, not what was reported, so it only shows when nothing reported.
23
+ *
24
+ * Nothing known means no field at all: the header shows the harness logo alone, never a
25
+ * placeholder or a guess.
26
+ *
27
+ * ## Untrusted text
28
+ *
29
+ * A screen-read model is pane text, and a statusline payload is a POST body: both are
30
+ * stripped of escape sequences and control characters, whitespace-collapsed and capped
31
+ * here, and the browser renders the result with `textContent`.
32
+ *
33
+ * Tests: `test/session-display-model.test.ts`.
34
+ *
35
+ * @module session-display-model
36
+ */
37
+ import type { DisplayModel, DisplayModelSource } from './types/session.js';
38
+ /** Longest model name published (the header truncates long before this). */
39
+ export declare const MAX_DISPLAY_MODEL_CHARS = 64;
40
+ /** A report from the running CLI itself: the sources a restart may restore. */
41
+ export type ReportedModelSource = Extract<DisplayModelSource, 'statusline' | 'screen'>;
42
+ export interface ReportedModel {
43
+ model: string;
44
+ source: ReportedModelSource;
45
+ }
46
+ /**
47
+ * A model name fit to publish, or undefined when nothing printable is left.
48
+ *
49
+ * @param raw anything; only a string can yield a name
50
+ */
51
+ export declare function sanitizeModelName(raw: unknown): string | undefined;
52
+ /** What a footer field can show that is never the model. */
53
+ export interface ScreenModelRejects {
54
+ /** The CLI's declared non-model words (`capabilities.modelDetect.rejectWords`), lower-cased compare. */
55
+ rejectWords?: readonly string[];
56
+ /** The session's working-directory basename: a footer field equal to it is the folder, exact compare. */
57
+ cwdBasename?: string;
58
+ }
59
+ /**
60
+ * The model a pane's own chrome shows, read with the CLI's `modelDetect` pattern.
61
+ *
62
+ * Only the last `tailRows` non-blank rows are searched (joined with `\n`, so a pattern
63
+ * can anchor on the row above), which keeps the search below the transcript: the
64
+ * pattern itself must still anchor on chrome only that CLI draws.
65
+ *
66
+ * A footer whose model field is switched off shows its NEXT field where the model
67
+ * was, so the captured field is not taken when it is one of the CLI's declared
68
+ * non-model words (an effort level, a mode) or the session's own folder name, which a
69
+ * footer field equal to is the folder, never the model, whatever the CLI. Anything
70
+ * else the pattern captures is read as the model.
71
+ *
72
+ * @param paneText a plain `capture-pane -p` frame, or null when it could not be read
73
+ * @param pattern compiled through `compileVersionRegex()`, capture group 1 = the model
74
+ * @param tailRows how many non-blank rows from the bottom the pattern sees
75
+ * @param rejects fields that are never the model (see {@link ScreenModelRejects})
76
+ * @returns the model, or undefined when the frame shows none
77
+ */
78
+ export declare function readScreenModel(paneText: string | null | undefined, pattern: RegExp, tailRows?: number, rejects?: ScreenModelRejects): string | undefined;
79
+ /**
80
+ * The model a session was launched with, read the way its spawn reads it: where the
81
+ * model param lives is registry data (`capabilities.model` names the param, the entry's
82
+ * `legacyConfigField` the `<Mode>Config` object holding it, or the option bag itself for
83
+ * claude), never a branch on the CLI id. A CLI whose model is not a launch param (shell,
84
+ * dsh) has none.
85
+ *
86
+ * @param mode the session's CLI id
87
+ * @param bag the session's launch option bag (`model`, `codexConfig`, ...)
88
+ */
89
+ export declare function launchModelFor(mode: string, bag: Record<string, unknown>): string | undefined;
90
+ /**
91
+ * The persisted `displayModel` of a previous run, when it was a report from the CLI
92
+ * itself: a restart shows it until the next report replaces it. A custom-endpoint or
93
+ * launch answer is not restored, since the session derives those again by itself.
94
+ */
95
+ export declare function restoredReportedModel(saved: unknown): ReportedModel | undefined;
96
+ /**
97
+ * The model a session header shows, and where it came from.
98
+ *
99
+ * @param input.customModelId the custom endpoint's model, when the session is pointed at one
100
+ * @param input.reported the newest report from the CLI itself
101
+ * @param input.configModel the model the CLI's config pins for the session
102
+ * @param input.launchModel the model the session was launched with
103
+ */
104
+ export declare function resolveDisplayModel(input: {
105
+ customModelId?: string;
106
+ reported?: ReportedModel | null;
107
+ configModel?: string | null;
108
+ launchModel?: string;
109
+ }): DisplayModel | undefined;
110
+ //# sourceMappingURL=session-display-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-display-model.d.ts","sourceRoot":"","sources":["../src/session-display-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAK3E,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,+EAA+E;AAC/E,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,EAAE,YAAY,GAAG,QAAQ,CAAC,CAAC;AAEvF,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAKD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKlE;AAED,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IACjC,wGAAwG;IACxG,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,yGAAyG;IACzG,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAU,EACpB,OAAO,GAAE,kBAAuB,GAC/B,MAAM,GAAG,SAAS,CAgBpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAQ7F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAM/E;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,YAAY,GAAG,SAAS,CAU3B"}