@prestyj/cli 5.10.0 → 5.11.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 (455) hide show
  1. package/README.md +3 -4
  2. package/dist/app-sidecar-auth-broadcast.test.d.ts +2 -0
  3. package/dist/app-sidecar-auth-broadcast.test.d.ts.map +1 -0
  4. package/dist/app-sidecar-auth-broadcast.test.js +282 -0
  5. package/dist/app-sidecar-auth-broadcast.test.js.map +1 -0
  6. package/dist/app-sidecar-sessions.d.ts +5 -2
  7. package/dist/app-sidecar-sessions.d.ts.map +1 -1
  8. package/dist/app-sidecar-sessions.js +34 -8
  9. package/dist/app-sidecar-sessions.js.map +1 -1
  10. package/dist/app-sidecar-sessions.test.js +95 -0
  11. package/dist/app-sidecar-sessions.test.js.map +1 -1
  12. package/dist/app-sidecar.js +497 -128
  13. package/dist/app-sidecar.js.map +1 -1
  14. package/dist/cli/command-routing.d.ts +1 -1
  15. package/dist/cli/command-routing.d.ts.map +1 -1
  16. package/dist/cli/command-routing.js +1 -0
  17. package/dist/cli/command-routing.js.map +1 -1
  18. package/dist/cli/command-routing.test.js +1 -0
  19. package/dist/cli/command-routing.test.js.map +1 -1
  20. package/dist/cli.d.ts.map +1 -1
  21. package/dist/cli.js +167 -47
  22. package/dist/cli.js.map +1 -1
  23. package/dist/config.d.ts +2 -0
  24. package/dist/config.d.ts.map +1 -1
  25. package/dist/config.js +10 -0
  26. package/dist/config.js.map +1 -1
  27. package/dist/config.test.js +10 -1
  28. package/dist/config.test.js.map +1 -1
  29. package/dist/core/agent-notifications.d.ts +62 -0
  30. package/dist/core/agent-notifications.d.ts.map +1 -0
  31. package/dist/core/agent-notifications.js +92 -0
  32. package/dist/core/agent-notifications.js.map +1 -0
  33. package/dist/core/agent-notifications.test.d.ts +2 -0
  34. package/dist/core/agent-notifications.test.d.ts.map +1 -0
  35. package/dist/core/agent-notifications.test.js +97 -0
  36. package/dist/core/agent-notifications.test.js.map +1 -0
  37. package/dist/core/agent-session-checkpoint-flush.test.d.ts +2 -0
  38. package/dist/core/agent-session-checkpoint-flush.test.d.ts.map +1 -0
  39. package/dist/core/agent-session-checkpoint-flush.test.js +201 -0
  40. package/dist/core/agent-session-checkpoint-flush.test.js.map +1 -0
  41. package/dist/core/agent-session-compaction.test.js +323 -6
  42. package/dist/core/agent-session-compaction.test.js.map +1 -1
  43. package/dist/core/agent-session-crash-durability.test.d.ts +2 -0
  44. package/dist/core/agent-session-crash-durability.test.d.ts.map +1 -0
  45. package/dist/core/agent-session-crash-durability.test.js +102 -0
  46. package/dist/core/agent-session-crash-durability.test.js.map +1 -0
  47. package/dist/core/agent-session-marker-anchors.test.js +181 -2
  48. package/dist/core/agent-session-marker-anchors.test.js.map +1 -1
  49. package/dist/core/agent-session-model-switch.test.d.ts +2 -0
  50. package/dist/core/agent-session-model-switch.test.d.ts.map +1 -0
  51. package/dist/core/agent-session-model-switch.test.js +161 -0
  52. package/dist/core/agent-session-model-switch.test.js.map +1 -0
  53. package/dist/core/agent-session-notifications.test.d.ts +2 -0
  54. package/dist/core/agent-session-notifications.test.d.ts.map +1 -0
  55. package/dist/core/agent-session-notifications.test.js +114 -0
  56. package/dist/core/agent-session-notifications.test.js.map +1 -0
  57. package/dist/core/agent-session-process-gate.test.d.ts +2 -0
  58. package/dist/core/agent-session-process-gate.test.d.ts.map +1 -0
  59. package/dist/core/agent-session-process-gate.test.js +92 -0
  60. package/dist/core/agent-session-process-gate.test.js.map +1 -0
  61. package/dist/core/agent-session-queue.test.js +65 -0
  62. package/dist/core/agent-session-queue.test.js.map +1 -1
  63. package/dist/core/agent-session-review-coverage.test.js +80 -23
  64. package/dist/core/agent-session-review-coverage.test.js.map +1 -1
  65. package/dist/core/agent-session-slash-restore.test.d.ts +2 -0
  66. package/dist/core/agent-session-slash-restore.test.d.ts.map +1 -0
  67. package/dist/core/agent-session-slash-restore.test.js +121 -0
  68. package/dist/core/agent-session-slash-restore.test.js.map +1 -0
  69. package/dist/core/agent-session.d.ts +214 -10
  70. package/dist/core/agent-session.d.ts.map +1 -1
  71. package/dist/core/agent-session.js +978 -212
  72. package/dist/core/agent-session.js.map +1 -1
  73. package/dist/core/compaction/active-context.test.js +21 -0
  74. package/dist/core/compaction/active-context.test.js.map +1 -1
  75. package/dist/core/compaction/compactor.d.ts +108 -8
  76. package/dist/core/compaction/compactor.d.ts.map +1 -1
  77. package/dist/core/compaction/compactor.js +423 -119
  78. package/dist/core/compaction/compactor.js.map +1 -1
  79. package/dist/core/compaction/compactor.test.js +360 -8
  80. package/dist/core/compaction/compactor.test.js.map +1 -1
  81. package/dist/core/compaction/policy.d.ts +17 -0
  82. package/dist/core/compaction/policy.d.ts.map +1 -0
  83. package/dist/core/compaction/policy.js +22 -0
  84. package/dist/core/compaction/policy.js.map +1 -0
  85. package/dist/core/compaction/policy.test.d.ts +2 -0
  86. package/dist/core/compaction/policy.test.d.ts.map +1 -0
  87. package/dist/core/compaction/policy.test.js +35 -0
  88. package/dist/core/compaction/policy.test.js.map +1 -0
  89. package/dist/core/compaction/query-aware-selector.d.ts +33 -0
  90. package/dist/core/compaction/query-aware-selector.d.ts.map +1 -0
  91. package/dist/core/compaction/query-aware-selector.js +202 -0
  92. package/dist/core/compaction/query-aware-selector.js.map +1 -0
  93. package/dist/core/compaction/query-aware-selector.test.d.ts +2 -0
  94. package/dist/core/compaction/query-aware-selector.test.d.ts.map +1 -0
  95. package/dist/core/compaction/query-aware-selector.test.js +96 -0
  96. package/dist/core/compaction/query-aware-selector.test.js.map +1 -0
  97. package/dist/core/compaction/tool-result-pruner.d.ts +24 -11
  98. package/dist/core/compaction/tool-result-pruner.d.ts.map +1 -1
  99. package/dist/core/compaction/tool-result-pruner.js +98 -26
  100. package/dist/core/compaction/tool-result-pruner.js.map +1 -1
  101. package/dist/core/compaction/tool-result-pruner.test.js +178 -6
  102. package/dist/core/compaction/tool-result-pruner.test.js.map +1 -1
  103. package/dist/core/event-bus.d.ts +23 -0
  104. package/dist/core/event-bus.d.ts.map +1 -1
  105. package/dist/core/event-bus.js +10 -0
  106. package/dist/core/event-bus.js.map +1 -1
  107. package/dist/core/extensions/loader.d.ts.map +1 -1
  108. package/dist/core/extensions/loader.js +28 -8
  109. package/dist/core/extensions/loader.js.map +1 -1
  110. package/dist/core/extensions/plugin-bundles.d.ts +23 -0
  111. package/dist/core/extensions/plugin-bundles.d.ts.map +1 -0
  112. package/dist/core/extensions/plugin-bundles.js +228 -0
  113. package/dist/core/extensions/plugin-bundles.js.map +1 -0
  114. package/dist/core/extensions/plugin-bundles.test.d.ts +2 -0
  115. package/dist/core/extensions/plugin-bundles.test.d.ts.map +1 -0
  116. package/dist/core/extensions/plugin-bundles.test.js +110 -0
  117. package/dist/core/extensions/plugin-bundles.test.js.map +1 -0
  118. package/dist/core/foreign-session-import.d.ts +120 -0
  119. package/dist/core/foreign-session-import.d.ts.map +1 -0
  120. package/dist/core/foreign-session-import.js +598 -0
  121. package/dist/core/foreign-session-import.js.map +1 -0
  122. package/dist/core/foreign-session-import.test.d.ts +2 -0
  123. package/dist/core/foreign-session-import.test.d.ts.map +1 -0
  124. package/dist/core/foreign-session-import.test.js +220 -0
  125. package/dist/core/foreign-session-import.test.js.map +1 -0
  126. package/dist/core/foreign-transcript-blocks.d.ts +51 -0
  127. package/dist/core/foreign-transcript-blocks.d.ts.map +1 -0
  128. package/dist/core/foreign-transcript-blocks.js +151 -0
  129. package/dist/core/foreign-transcript-blocks.js.map +1 -0
  130. package/dist/core/ideal-review.d.ts +20 -1
  131. package/dist/core/ideal-review.d.ts.map +1 -1
  132. package/dist/core/ideal-review.js +37 -2
  133. package/dist/core/ideal-review.js.map +1 -1
  134. package/dist/core/ideal-review.test.js +99 -3
  135. package/dist/core/ideal-review.test.js.map +1 -1
  136. package/dist/core/loop-breaker.d.ts.map +1 -1
  137. package/dist/core/loop-breaker.js +1 -0
  138. package/dist/core/loop-breaker.js.map +1 -1
  139. package/dist/core/lsp/client.d.ts +15 -0
  140. package/dist/core/lsp/client.d.ts.map +1 -1
  141. package/dist/core/lsp/client.js +39 -1
  142. package/dist/core/lsp/client.js.map +1 -1
  143. package/dist/core/lsp/manager.d.ts +47 -9
  144. package/dist/core/lsp/manager.d.ts.map +1 -1
  145. package/dist/core/lsp/manager.js +96 -69
  146. package/dist/core/lsp/manager.js.map +1 -1
  147. package/dist/core/lsp/manager.test.js +18 -0
  148. package/dist/core/lsp/manager.test.js.map +1 -1
  149. package/dist/core/lsp/pool.d.ts +113 -0
  150. package/dist/core/lsp/pool.d.ts.map +1 -0
  151. package/dist/core/lsp/pool.js +255 -0
  152. package/dist/core/lsp/pool.js.map +1 -0
  153. package/dist/core/lsp/pool.test.d.ts +2 -0
  154. package/dist/core/lsp/pool.test.d.ts.map +1 -0
  155. package/dist/core/lsp/pool.test.js +286 -0
  156. package/dist/core/lsp/pool.test.js.map +1 -0
  157. package/dist/core/lsp/servers.d.ts.map +1 -1
  158. package/dist/core/lsp/servers.js +43 -3
  159. package/dist/core/lsp/servers.js.map +1 -1
  160. package/dist/core/lsp/servers.test.d.ts +2 -0
  161. package/dist/core/lsp/servers.test.d.ts.map +1 -0
  162. package/dist/core/lsp/servers.test.js +67 -0
  163. package/dist/core/lsp/servers.test.js.map +1 -0
  164. package/dist/core/lsp/windows.test.js +2 -14
  165. package/dist/core/lsp/windows.test.js.map +1 -1
  166. package/dist/core/mcp/catalog-cache.d.ts +63 -0
  167. package/dist/core/mcp/catalog-cache.d.ts.map +1 -0
  168. package/dist/core/mcp/catalog-cache.js +163 -0
  169. package/dist/core/mcp/catalog-cache.js.map +1 -0
  170. package/dist/core/mcp/catalog-cache.test.d.ts +2 -0
  171. package/dist/core/mcp/catalog-cache.test.d.ts.map +1 -0
  172. package/dist/core/mcp/catalog-cache.test.js +99 -0
  173. package/dist/core/mcp/catalog-cache.test.js.map +1 -0
  174. package/dist/core/mcp/client-session-recovery.test.d.ts +2 -0
  175. package/dist/core/mcp/client-session-recovery.test.d.ts.map +1 -0
  176. package/dist/core/mcp/client-session-recovery.test.js +231 -0
  177. package/dist/core/mcp/client-session-recovery.test.js.map +1 -0
  178. package/dist/core/mcp/client.d.ts +158 -0
  179. package/dist/core/mcp/client.d.ts.map +1 -1
  180. package/dist/core/mcp/client.js +476 -35
  181. package/dist/core/mcp/client.js.map +1 -1
  182. package/dist/core/mcp/elicitation-bridge.d.ts +41 -0
  183. package/dist/core/mcp/elicitation-bridge.d.ts.map +1 -0
  184. package/dist/core/mcp/elicitation-bridge.js +52 -0
  185. package/dist/core/mcp/elicitation-bridge.js.map +1 -0
  186. package/dist/core/mcp/elicitation.test.d.ts +2 -0
  187. package/dist/core/mcp/elicitation.test.d.ts.map +1 -0
  188. package/dist/core/mcp/elicitation.test.js +158 -0
  189. package/dist/core/mcp/elicitation.test.js.map +1 -0
  190. package/dist/core/mcp/index.d.ts +5 -1
  191. package/dist/core/mcp/index.d.ts.map +1 -1
  192. package/dist/core/mcp/index.js +2 -0
  193. package/dist/core/mcp/index.js.map +1 -1
  194. package/dist/core/mcp/legacy-negotiation.test.d.ts +2 -0
  195. package/dist/core/mcp/legacy-negotiation.test.d.ts.map +1 -0
  196. package/dist/core/mcp/legacy-negotiation.test.js +80 -0
  197. package/dist/core/mcp/legacy-negotiation.test.js.map +1 -0
  198. package/dist/core/mcp/oauth-provider.d.ts +1 -2
  199. package/dist/core/mcp/oauth-provider.d.ts.map +1 -1
  200. package/dist/core/mcp/oauth-provider.js +6 -2
  201. package/dist/core/mcp/oauth-provider.js.map +1 -1
  202. package/dist/core/mcp/oauth-store.d.ts +1 -1
  203. package/dist/core/mcp/oauth-store.d.ts.map +1 -1
  204. package/dist/core/mcp/oauth-store.js.map +1 -1
  205. package/dist/core/mcp/session-elicitation-wiring.test.d.ts +2 -0
  206. package/dist/core/mcp/session-elicitation-wiring.test.d.ts.map +1 -0
  207. package/dist/core/mcp/session-elicitation-wiring.test.js +138 -0
  208. package/dist/core/mcp/session-elicitation-wiring.test.js.map +1 -0
  209. package/dist/core/mcp/shared-pool.d.ts +158 -0
  210. package/dist/core/mcp/shared-pool.d.ts.map +1 -0
  211. package/dist/core/mcp/shared-pool.js +235 -0
  212. package/dist/core/mcp/shared-pool.js.map +1 -0
  213. package/dist/core/mcp/shared-pool.test.d.ts +2 -0
  214. package/dist/core/mcp/shared-pool.test.d.ts.map +1 -0
  215. package/dist/core/mcp/shared-pool.test.js +425 -0
  216. package/dist/core/mcp/shared-pool.test.js.map +1 -0
  217. package/dist/core/mcp/types.d.ts +12 -0
  218. package/dist/core/mcp/types.d.ts.map +1 -1
  219. package/dist/core/mcp/when-connected.test.d.ts +2 -0
  220. package/dist/core/mcp/when-connected.test.d.ts.map +1 -0
  221. package/dist/core/mcp/when-connected.test.js +46 -0
  222. package/dist/core/mcp/when-connected.test.js.map +1 -0
  223. package/dist/core/nolan-context.d.ts.map +1 -1
  224. package/dist/core/nolan-context.js +8 -0
  225. package/dist/core/nolan-context.js.map +1 -1
  226. package/dist/core/nolan-context.test.js +40 -0
  227. package/dist/core/nolan-context.test.js.map +1 -1
  228. package/dist/core/nolan-prompt.js +3 -0
  229. package/dist/core/nolan-prompt.js.map +1 -1
  230. package/dist/core/nolan-prompt.test.js +5 -0
  231. package/dist/core/nolan-prompt.test.js.map +1 -1
  232. package/dist/core/persistent-shell.d.ts +3 -2
  233. package/dist/core/persistent-shell.d.ts.map +1 -1
  234. package/dist/core/persistent-shell.js +10 -3
  235. package/dist/core/persistent-shell.js.map +1 -1
  236. package/dist/core/process-gate.d.ts +45 -0
  237. package/dist/core/process-gate.d.ts.map +1 -0
  238. package/dist/core/process-gate.js +79 -0
  239. package/dist/core/process-gate.js.map +1 -0
  240. package/dist/core/process-gate.test.d.ts +2 -0
  241. package/dist/core/process-gate.test.d.ts.map +1 -0
  242. package/dist/core/process-gate.test.js +87 -0
  243. package/dist/core/process-gate.test.js.map +1 -0
  244. package/dist/core/process-manager-notifications.test.d.ts +2 -0
  245. package/dist/core/process-manager-notifications.test.d.ts.map +1 -0
  246. package/dist/core/process-manager-notifications.test.js +217 -0
  247. package/dist/core/process-manager-notifications.test.js.map +1 -0
  248. package/dist/core/process-manager.d.ts +50 -1
  249. package/dist/core/process-manager.d.ts.map +1 -1
  250. package/dist/core/process-manager.js +189 -2
  251. package/dist/core/process-manager.js.map +1 -1
  252. package/dist/core/project-discovery.d.ts +31 -6
  253. package/dist/core/project-discovery.d.ts.map +1 -1
  254. package/dist/core/project-discovery.js +287 -31
  255. package/dist/core/project-discovery.js.map +1 -1
  256. package/dist/core/project-discovery.test.js +124 -0
  257. package/dist/core/project-discovery.test.js.map +1 -1
  258. package/dist/core/regrounding.d.ts.map +1 -1
  259. package/dist/core/regrounding.js +1 -0
  260. package/dist/core/regrounding.js.map +1 -1
  261. package/dist/core/run-claim.d.ts +37 -0
  262. package/dist/core/run-claim.d.ts.map +1 -0
  263. package/dist/core/run-claim.js +46 -0
  264. package/dist/core/run-claim.js.map +1 -0
  265. package/dist/core/run-claim.test.d.ts +2 -0
  266. package/dist/core/run-claim.test.d.ts.map +1 -0
  267. package/dist/core/run-claim.test.js +107 -0
  268. package/dist/core/run-claim.test.js.map +1 -0
  269. package/dist/core/run-journal.test.d.ts +2 -0
  270. package/dist/core/run-journal.test.d.ts.map +1 -0
  271. package/dist/core/run-journal.test.js +195 -0
  272. package/dist/core/run-journal.test.js.map +1 -0
  273. package/dist/core/run-lifecycle.d.ts +22 -3
  274. package/dist/core/run-lifecycle.d.ts.map +1 -1
  275. package/dist/core/run-lifecycle.js +12 -3
  276. package/dist/core/run-lifecycle.js.map +1 -1
  277. package/dist/core/sandbox-domains.d.ts +14 -0
  278. package/dist/core/sandbox-domains.d.ts.map +1 -0
  279. package/dist/core/sandbox-domains.js +76 -0
  280. package/dist/core/sandbox-domains.js.map +1 -0
  281. package/dist/core/sandbox-feedback.d.ts +22 -0
  282. package/dist/core/sandbox-feedback.d.ts.map +1 -0
  283. package/dist/core/sandbox-feedback.js +69 -0
  284. package/dist/core/sandbox-feedback.js.map +1 -0
  285. package/dist/core/sandbox-feedback.test.d.ts +2 -0
  286. package/dist/core/sandbox-feedback.test.d.ts.map +1 -0
  287. package/dist/core/sandbox-feedback.test.js +32 -0
  288. package/dist/core/sandbox-feedback.test.js.map +1 -0
  289. package/dist/core/sandbox.d.ts +91 -0
  290. package/dist/core/sandbox.d.ts.map +1 -0
  291. package/dist/core/sandbox.js +254 -0
  292. package/dist/core/sandbox.js.map +1 -0
  293. package/dist/core/sandbox.test.d.ts +2 -0
  294. package/dist/core/sandbox.test.d.ts.map +1 -0
  295. package/dist/core/sandbox.test.js +157 -0
  296. package/dist/core/sandbox.test.js.map +1 -0
  297. package/dist/core/session-compaction.d.ts +6 -0
  298. package/dist/core/session-compaction.d.ts.map +1 -1
  299. package/dist/core/session-compaction.js +11 -1
  300. package/dist/core/session-compaction.js.map +1 -1
  301. package/dist/core/session-compaction.test.js +18 -1
  302. package/dist/core/session-compaction.test.js.map +1 -1
  303. package/dist/core/session-export.d.ts.map +1 -1
  304. package/dist/core/session-export.js +12 -4
  305. package/dist/core/session-export.js.map +1 -1
  306. package/dist/core/session-history.d.ts +95 -6
  307. package/dist/core/session-history.d.ts.map +1 -1
  308. package/dist/core/session-history.js +261 -17
  309. package/dist/core/session-history.js.map +1 -1
  310. package/dist/core/session-history.test.js +173 -2
  311. package/dist/core/session-history.test.js.map +1 -1
  312. package/dist/core/session-manager.d.ts +223 -6
  313. package/dist/core/session-manager.d.ts.map +1 -1
  314. package/dist/core/session-manager.js +515 -26
  315. package/dist/core/session-manager.js.map +1 -1
  316. package/dist/core/session-manager.test.js +147 -3
  317. package/dist/core/session-manager.test.js.map +1 -1
  318. package/dist/core/session-notification-visibility.test.d.ts +2 -0
  319. package/dist/core/session-notification-visibility.test.d.ts.map +1 -0
  320. package/dist/core/session-notification-visibility.test.js +113 -0
  321. package/dist/core/session-notification-visibility.test.js.map +1 -0
  322. package/dist/core/session-preview.d.ts +5 -4
  323. package/dist/core/session-preview.d.ts.map +1 -1
  324. package/dist/core/session-preview.js +12 -5
  325. package/dist/core/session-preview.js.map +1 -1
  326. package/dist/core/session-restore-display.test.js +25 -0
  327. package/dist/core/session-restore-display.test.js.map +1 -1
  328. package/dist/core/session-storage.d.ts.map +1 -1
  329. package/dist/core/session-storage.js +39 -3
  330. package/dist/core/session-storage.js.map +1 -1
  331. package/dist/core/session-storage.test.js +6 -1
  332. package/dist/core/session-storage.test.js.map +1 -1
  333. package/dist/core/settings-manager.d.ts +8 -2
  334. package/dist/core/settings-manager.d.ts.map +1 -1
  335. package/dist/core/settings-manager.js +26 -0
  336. package/dist/core/settings-manager.js.map +1 -1
  337. package/dist/core/steering.d.ts +12 -0
  338. package/dist/core/steering.d.ts.map +1 -1
  339. package/dist/core/steering.js +16 -0
  340. package/dist/core/steering.js.map +1 -1
  341. package/dist/core/subagent-manager.d.ts +13 -0
  342. package/dist/core/subagent-manager.d.ts.map +1 -1
  343. package/dist/core/subagent-manager.js +39 -1
  344. package/dist/core/subagent-manager.js.map +1 -1
  345. package/dist/core/subagent-manager.test.js +43 -7
  346. package/dist/core/subagent-manager.test.js.map +1 -1
  347. package/dist/core/verification-evidence.d.ts +17 -0
  348. package/dist/core/verification-evidence.d.ts.map +1 -0
  349. package/dist/core/verification-evidence.js +283 -0
  350. package/dist/core/verification-evidence.js.map +1 -0
  351. package/dist/core/verification-evidence.test.d.ts +2 -0
  352. package/dist/core/verification-evidence.test.d.ts.map +1 -0
  353. package/dist/core/verification-evidence.test.js +103 -0
  354. package/dist/core/verification-evidence.test.js.map +1 -0
  355. package/dist/interactive.d.ts.map +1 -1
  356. package/dist/interactive.js +17 -3
  357. package/dist/interactive.js.map +1 -1
  358. package/dist/modes/acp-mode.d.ts +122 -0
  359. package/dist/modes/acp-mode.d.ts.map +1 -0
  360. package/dist/modes/acp-mode.js +1366 -0
  361. package/dist/modes/acp-mode.js.map +1 -0
  362. package/dist/modes/acp-mode.test.d.ts +2 -0
  363. package/dist/modes/acp-mode.test.d.ts.map +1 -0
  364. package/dist/modes/acp-mode.test.js +1065 -0
  365. package/dist/modes/acp-mode.test.js.map +1 -0
  366. package/dist/modes/index.d.ts +1 -0
  367. package/dist/modes/index.d.ts.map +1 -1
  368. package/dist/modes/index.js +1 -0
  369. package/dist/modes/index.js.map +1 -1
  370. package/dist/modes/json-mode.d.ts +28 -0
  371. package/dist/modes/json-mode.d.ts.map +1 -1
  372. package/dist/modes/json-mode.js +37 -0
  373. package/dist/modes/json-mode.js.map +1 -1
  374. package/dist/modes/json-mode.test.d.ts +2 -0
  375. package/dist/modes/json-mode.test.d.ts.map +1 -0
  376. package/dist/modes/json-mode.test.js +84 -0
  377. package/dist/modes/json-mode.test.js.map +1 -0
  378. package/dist/modes/subagent-worker-mode.d.ts +3 -0
  379. package/dist/modes/subagent-worker-mode.d.ts.map +1 -1
  380. package/dist/modes/subagent-worker-mode.js +91 -11
  381. package/dist/modes/subagent-worker-mode.js.map +1 -1
  382. package/dist/modes/subagent-worker-mode.test.d.ts +2 -0
  383. package/dist/modes/subagent-worker-mode.test.d.ts.map +1 -0
  384. package/dist/modes/subagent-worker-mode.test.js +52 -0
  385. package/dist/modes/subagent-worker-mode.test.js.map +1 -0
  386. package/dist/session.d.ts +29 -0
  387. package/dist/session.d.ts.map +1 -1
  388. package/dist/session.js +41 -0
  389. package/dist/session.js.map +1 -1
  390. package/dist/tools/bash.d.ts +2 -1
  391. package/dist/tools/bash.d.ts.map +1 -1
  392. package/dist/tools/bash.js +55 -16
  393. package/dist/tools/bash.js.map +1 -1
  394. package/dist/tools/goals.d.ts +2 -2
  395. package/dist/tools/grep.d.ts.map +1 -1
  396. package/dist/tools/grep.js +2 -1
  397. package/dist/tools/grep.js.map +1 -1
  398. package/dist/tools/index.d.ts +13 -2
  399. package/dist/tools/index.d.ts.map +1 -1
  400. package/dist/tools/index.js +20 -17
  401. package/dist/tools/index.js.map +1 -1
  402. package/dist/tools/index.test.d.ts +2 -0
  403. package/dist/tools/index.test.d.ts.map +1 -0
  404. package/dist/tools/index.test.js +55 -0
  405. package/dist/tools/index.test.js.map +1 -0
  406. package/dist/tools/read-only-bash.d.ts +3 -0
  407. package/dist/tools/read-only-bash.d.ts.map +1 -1
  408. package/dist/tools/read-only-bash.js +7 -9
  409. package/dist/tools/read-only-bash.js.map +1 -1
  410. package/dist/tools/subagent-control.d.ts.map +1 -1
  411. package/dist/tools/subagent-control.js +6 -2
  412. package/dist/tools/subagent-control.js.map +1 -1
  413. package/dist/tools/subagent-shared.d.ts +6 -0
  414. package/dist/tools/subagent-shared.d.ts.map +1 -1
  415. package/dist/tools/subagent-shared.js +6 -0
  416. package/dist/tools/subagent-shared.js.map +1 -1
  417. package/dist/tools/subagent.d.ts.map +1 -1
  418. package/dist/tools/subagent.js +43 -8
  419. package/dist/tools/subagent.js.map +1 -1
  420. package/dist/tools/subagent.test.js +65 -3
  421. package/dist/tools/subagent.test.js.map +1 -1
  422. package/dist/tools/task-output.d.ts.map +1 -1
  423. package/dist/tools/task-output.js +3 -1
  424. package/dist/tools/task-output.js.map +1 -1
  425. package/dist/tools/tool-search.d.ts +12 -1
  426. package/dist/tools/tool-search.d.ts.map +1 -1
  427. package/dist/tools/tool-search.js +22 -3
  428. package/dist/tools/tool-search.js.map +1 -1
  429. package/dist/tools/tool-search.test.d.ts +2 -0
  430. package/dist/tools/tool-search.test.d.ts.map +1 -0
  431. package/dist/tools/tool-search.test.js +69 -0
  432. package/dist/tools/tool-search.test.js.map +1 -0
  433. package/dist/tools/web-fetch.d.ts +1 -1
  434. package/dist/tools/web-fetch.d.ts.map +1 -1
  435. package/dist/tools/web-fetch.js +5 -2
  436. package/dist/tools/web-fetch.js.map +1 -1
  437. package/dist/types.d.ts +7 -0
  438. package/dist/types.d.ts.map +1 -1
  439. package/dist/ui/App.d.ts.map +1 -1
  440. package/dist/ui/App.js +27 -1
  441. package/dist/ui/App.js.map +1 -1
  442. package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
  443. package/dist/ui/hooks/useAgentLoop.js +18 -4
  444. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  445. package/dist/utils/github.test.js +3 -3
  446. package/dist/utils/github.test.js.map +1 -1
  447. package/dist/utils/image.d.ts +26 -3
  448. package/dist/utils/image.d.ts.map +1 -1
  449. package/dist/utils/image.js +83 -14
  450. package/dist/utils/image.js.map +1 -1
  451. package/dist/utils/image.test.d.ts +2 -0
  452. package/dist/utils/image.test.d.ts.map +1 -0
  453. package/dist/utils/image.test.js +139 -0
  454. package/dist/utils/image.test.js.map +1 -0
  455. package/package.json +7 -6
@@ -1,4 +1,12 @@
1
- export type ProjectSource = "ezcoder" | "claude-code" | "codex";
1
+ export type ProjectSource = "ezcoder" | "claude-code" | "codex" | "folder";
2
+ export interface DiscoverProjectsOptions {
3
+ /** The user's configured projects folder; always scanned when set. */
4
+ projectsRoot?: string;
5
+ /** Extra folders explicitly added as project roots. */
6
+ extraRoots?: readonly string[];
7
+ /** Project paths the user dismissed from the picker. */
8
+ hiddenPaths?: readonly string[];
9
+ }
2
10
  export interface DiscoveredProject {
3
11
  name: string;
4
12
  path: string;
@@ -8,12 +16,10 @@ export interface DiscoveredProject {
8
16
  sources: ProjectSource[];
9
17
  }
10
18
  /**
11
- * Scan ezcoder + Claude Code + Codex session stores and return one row per
12
- * project, sorted most-recent first. Duplicates (same cwd) are collapsed; the
13
- * `sources` field lists every store the project appeared in so the picker can
14
- * show a combined badge.
19
+ * Scan EZ Coder + Claude Code + Codex session stores and the user's project
20
+ * folders, returning one deduplicated row per project, most-recent first.
15
21
  */
16
- export declare function discoverProjects(): Promise<DiscoveredProject[]>;
22
+ export declare function discoverProjects(options?: DiscoverProjectsOptions): Promise<DiscoveredProject[]>;
17
23
  /**
18
24
  * Is `value` an absolute path on any platform?
19
25
  *
@@ -31,6 +37,12 @@ export interface RecentSession {
31
37
  /** Relative "3h ago" string from last activity. */
32
38
  lastActiveDisplay: string;
33
39
  messageCount: number;
40
+ /**
41
+ * Which store this row came from. Absent means `ezcoder` — a session that is
42
+ * already resumable as-is. A foreign value means `path` points at that tool's
43
+ * own transcript, which the host imports before opening.
44
+ */
45
+ source?: ProjectSource;
34
46
  }
35
47
  /**
36
48
  * List the most recent ezcoder conversations for a project cwd. Compaction
@@ -42,4 +54,17 @@ export interface RecentSession {
42
54
  * only enough recent files to return `limit` distinct conversations.
43
55
  */
44
56
  export declare function listRecentSessions(cwd: string, limit?: number, sessionsDir?: string): Promise<RecentSession[]>;
57
+ /**
58
+ * List the most recent Claude Code and Codex conversations for a project cwd.
59
+ *
60
+ * The project picker has always surfaced these stores (`discoverProjects`), so a
61
+ * project can appear *because* it has Claude Code history — and then show an
62
+ * empty session list, because that only read EZ Coder's own directory. These
63
+ * rows close that gap: each one points at the foreign transcript, tagged with
64
+ * its `source`, and the host imports it on click.
65
+ *
66
+ * Cheap by construction: a transcript is only opened if its cwd matches, and
67
+ * both the per-store file walk and the preview read are line-capped.
68
+ */
69
+ export declare function listForeignSessions(cwd: string, limit?: number, homeDir?: string): Promise<RecentSession[]>;
45
70
  //# sourceMappingURL=project-discovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-discovery.d.ts","sourceRoot":"","sources":["../../src/core/project-discovery.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA6BrE;AA2DD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AA+VD,MAAM,WAAW,aAAa;IAC5B,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,KAAK,SAAI,EACT,WAAW,SAA4B,GACtC,OAAO,CAAC,aAAa,EAAE,CAAC,CAkB1B"}
1
+ {"version":3,"file":"project-discovery.d.ts","sourceRoot":"","sources":["../../src/core/project-discovery.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3E,MAAM,WAAW,uBAAuB;IACtC,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,wDAAwD;IACxD,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA8C9B;AAiFD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AA8dD,MAAM,WAAW,aAAa;IAC5B,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,KAAK,SAAI,EACT,WAAW,SAA4B,GACtC,OAAO,CAAC,aAAa,EAAE,CAAC,CAkB1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,KAAK,SAAI,EACT,OAAO,SAAe,GACrB,OAAO,CAAC,aAAa,EAAE,CAAC,CAS1B"}
@@ -1,5 +1,5 @@
1
1
  import fs from "node:fs/promises";
2
- import { createReadStream } from "node:fs";
2
+ import { createReadStream, realpathSync } from "node:fs";
3
3
  import readline from "node:readline";
4
4
  import os from "node:os";
5
5
  import path from "node:path";
@@ -7,34 +7,45 @@ import { getAppPaths } from "../config.js";
7
7
  import { encodeCwd, stripExtendedLengthPrefix } from "./encode-cwd.js";
8
8
  import { getUserSessionPrompt } from "./session-preview.js";
9
9
  import { isSessionPath, openSessionReadStream, resolveSessionPath } from "./session-storage.js";
10
+ import { parseForeignTranscript } from "./foreign-session-import.js";
10
11
  /**
11
- * Scan ezcoder + Claude Code + Codex session stores and return one row per
12
- * project, sorted most-recent first. Duplicates (same cwd) are collapsed; the
13
- * `sources` field lists every store the project appeared in so the picker can
14
- * show a combined badge.
12
+ * Scan EZ Coder + Claude Code + Codex session stores and the user's project
13
+ * folders, returning one deduplicated row per project, most-recent first.
15
14
  */
16
- export async function discoverProjects() {
15
+ export async function discoverProjects(options = {}) {
17
16
  const [ez, cc, cx] = await Promise.all([
18
17
  discoverEzcoderProjects(),
19
18
  discoverClaudeProjects(),
20
19
  discoverCodexProjects(),
21
20
  ]);
21
+ const fromSessions = [...ez, ...cc, ...cx];
22
+ const folders = await discoverFolderProjects(resolveProjectRoots(options.projectsRoot, options.extraRoots, fromSessions));
22
23
  const byPath = new Map();
23
- for (const p of [...ez, ...cc, ...cx]) {
24
+ for (const p of [...fromSessions, ...folders]) {
24
25
  const existing = byPath.get(p.path);
25
26
  if (!existing) {
26
27
  byPath.set(p.path, p);
27
28
  continue;
28
29
  }
30
+ // A folder's mtime is not activity: a checkout or a build touching the
31
+ // directory must not reorder a project above one you actually worked in.
32
+ // Session recency wins whenever any session store knows this project.
33
+ const merged = mergeSources(existing.sources, p.sources);
34
+ const sessionOnly = [existing, p].filter((row) => !isFolderOnly(row.sources));
29
35
  byPath.set(p.path, {
30
36
  name: existing.name,
31
37
  path: existing.path,
32
- lastActiveMs: Math.max(existing.lastActiveMs, p.lastActiveMs),
38
+ lastActiveMs: Math.max(...(sessionOnly.length > 0 ? sessionOnly : [existing, p]).map((r) => r.lastActiveMs)),
33
39
  lastActiveDisplay: "", // recomputed below
34
- sources: mergeSources(existing.sources, p.sources),
40
+ sources: merged,
35
41
  });
36
42
  }
37
- const merged = Array.from(byPath.values()).map((p) => ({
43
+ // Hiding is by resolved path so a row dismissed once stays gone regardless of
44
+ // which store re-surfaces it later.
45
+ const hidden = new Set((options.hiddenPaths ?? []).map((p) => path.resolve(p)));
46
+ const merged = Array.from(byPath.values())
47
+ .filter((p) => !hidden.has(p.path))
48
+ .map((p) => ({
38
49
  ...p,
39
50
  lastActiveDisplay: formatRelativeTime(p.lastActiveMs),
40
51
  }));
@@ -45,7 +56,11 @@ const SOURCE_ORDER = {
45
56
  ezcoder: 0,
46
57
  "claude-code": 1,
47
58
  codex: 2,
59
+ folder: 3,
48
60
  };
61
+ function isFolderOnly(sources) {
62
+ return sources.length === 1 && sources[0] === "folder";
63
+ }
49
64
  function mergeSources(a, b) {
50
65
  const set = new Set([...a, ...b]);
51
66
  return Array.from(set).sort((x, y) => SOURCE_ORDER[x] - SOURCE_ORDER[y]);
@@ -68,15 +83,17 @@ async function discoverEzcoderProjects() {
68
83
  catch {
69
84
  return [];
70
85
  }
71
- const results = [];
72
- for (const entry of entries) {
86
+ // Per-entry work is independent I/O (readdir + stat + a header read), so it
87
+ // runs concurrently; sequentially this dominated picker load time once a user
88
+ // had dozens of session stores.
89
+ const results = await mapConcurrent(entries, async (entry) => {
73
90
  const dir = path.join(sessionsDir, entry);
74
91
  const mtime = await maxGgcoderSessionMtime(dir);
75
92
  if (mtime === null)
76
- continue;
93
+ return null;
77
94
  const rawCwd = (await readFirstFromGgcoderDir(dir, ezcoderCwdExtractor)) ?? fallbackUnderscoreDecode(entry);
78
95
  if (!rawCwd)
79
- continue;
96
+ return null;
80
97
  // Normalize traversal segments (e.g. an agent launched with cwd
81
98
  // `.../src-tauri/../..`) so the basename isn't a stray "..", and drop any
82
99
  // Windows extended-length prefix so a session recorded as `\\?\C:\proj`
@@ -84,16 +101,29 @@ async function discoverEzcoderProjects() {
84
101
  // project as a plain `C:\proj` instead of listing a prefixed duplicate.
85
102
  const cwd = path.resolve(stripExtendedLengthPrefix(rawCwd));
86
103
  if (!(await isDirectory(cwd)))
87
- continue;
88
- results.push({
104
+ return null;
105
+ return {
89
106
  name: path.basename(cwd),
90
107
  path: cwd,
91
108
  lastActiveMs: mtime,
92
109
  lastActiveDisplay: formatRelativeTime(mtime),
93
110
  sources: ["ezcoder"],
94
- });
95
- }
96
- return results;
111
+ };
112
+ });
113
+ return results.filter((p) => p !== null);
114
+ }
115
+ /** Bounded-concurrency Promise.all for large session stores. */
116
+ const IO_CONCURRENCY = 32;
117
+ async function mapConcurrent(items, fn) {
118
+ const out = new Array(items.length);
119
+ let next = 0;
120
+ const workers = Array.from({ length: Math.min(IO_CONCURRENCY, items.length) }, async () => {
121
+ for (let i = next++; i < items.length; i = next++) {
122
+ out[i] = await fn(items[i]);
123
+ }
124
+ });
125
+ await Promise.all(workers);
126
+ return out;
97
127
  }
98
128
  /**
99
129
  * Is `value` an absolute path on any platform?
@@ -140,7 +170,7 @@ async function discoverClaudeProjects() {
140
170
  catch {
141
171
  return [];
142
172
  }
143
- const results = await Promise.all(entries.map(async (entry) => {
173
+ const results = await mapConcurrent(entries, async (entry) => {
144
174
  const dir = path.join(projectsDir, entry);
145
175
  const mtime = await maxJsonlMtime(dir);
146
176
  if (mtime === null)
@@ -157,7 +187,7 @@ async function discoverClaudeProjects() {
157
187
  lastActiveDisplay: formatRelativeTime(mtime),
158
188
  sources: ["claude-code"],
159
189
  };
160
- }));
190
+ });
161
191
  return results.filter((p) => p !== null);
162
192
  }
163
193
  /**
@@ -176,28 +206,155 @@ async function discoverCodexProjects() {
176
206
  return [];
177
207
  // Process newest first so per-cwd we always start with the latest mtime.
178
208
  files.sort((a, b) => b.mtime - a.mtime);
209
+ const cwds = await mapConcurrent(files, (f) => readFirstFromFile(f.path, codexCwdExtractor));
179
210
  const byCwd = new Map();
180
- for (const f of files) {
181
- const cwd = await readFirstFromFile(f.path, codexCwdExtractor);
211
+ files.forEach((f, i) => {
212
+ const cwd = cwds[i];
182
213
  if (!cwd)
183
- continue;
214
+ return;
184
215
  const prev = byCwd.get(cwd);
185
216
  if (prev === undefined || f.mtime > prev)
186
217
  byCwd.set(cwd, f.mtime);
187
- }
188
- const results = [];
189
- for (const [cwd, mtime] of byCwd) {
218
+ });
219
+ const results = await mapConcurrent(Array.from(byCwd), async ([cwd, mtime]) => {
190
220
  if (!(await isDirectory(cwd)))
191
- continue;
192
- results.push({
221
+ return null;
222
+ return {
193
223
  name: path.basename(cwd),
194
224
  path: cwd,
195
225
  lastActiveMs: mtime,
196
226
  lastActiveDisplay: formatRelativeTime(mtime),
197
227
  sources: ["codex"],
198
- });
228
+ };
229
+ });
230
+ return results.filter((p) => p !== null);
231
+ }
232
+ /**
233
+ * How many already-known projects must share a parent directory before that
234
+ * parent is treated as a project root in its own right. Users keep more than
235
+ * one "projects folder" (the configured root plus wherever the rest actually
236
+ * live), but only one is configurable — so a directory that has repeatedly
237
+ * acted like a root is inferred from evidence rather than guessed.
238
+ */
239
+ const INFERRED_ROOT_MIN_PROJECTS = 3;
240
+ /** Directory names that are never a project of their own. */
241
+ const FOLDER_SCAN_IGNORED = new Set([
242
+ "node_modules",
243
+ "dist",
244
+ "build",
245
+ "out",
246
+ "target",
247
+ "vendor",
248
+ "coverage",
249
+ "tmp",
250
+ "temp",
251
+ "Library",
252
+ "Applications",
253
+ ]);
254
+ /**
255
+ * Which directories should be scanned for project folders: the configured root,
256
+ * plus any parent that already holds several known projects.
257
+ *
258
+ * Scanning the home directory or a filesystem/temp root would list mail, music
259
+ * and scratch dirs as "projects", so those are never roots no matter how many
260
+ * sessions point inside them.
261
+ */
262
+ function resolveProjectRoots(projectsRoot, extraRoots, discovered) {
263
+ const roots = new Set();
264
+ const configured = projectsRoot?.trim();
265
+ if (configured)
266
+ roots.add(path.resolve(configured));
267
+ for (const extra of extraRoots ?? []) {
268
+ const trimmed = extra.trim();
269
+ if (trimmed)
270
+ roots.add(path.resolve(trimmed));
271
+ }
272
+ const counts = new Map();
273
+ const seen = new Set();
274
+ for (const project of discovered) {
275
+ if (seen.has(project.path))
276
+ continue;
277
+ seen.add(project.path);
278
+ const parent = path.dirname(project.path);
279
+ if (parent === project.path)
280
+ continue;
281
+ counts.set(parent, (counts.get(parent) ?? 0) + 1);
282
+ }
283
+ for (const [parent, count] of counts) {
284
+ if (count >= INFERRED_ROOT_MIN_PROJECTS && !isUnscannableRoot(parent))
285
+ roots.add(parent);
286
+ }
287
+ return Array.from(roots);
288
+ }
289
+ function isUnscannableRoot(dir) {
290
+ const resolved = resolveExistingPath(dir);
291
+ if (resolved === resolveExistingPath(path.parse(resolved).root))
292
+ return true;
293
+ if (resolved === resolveExistingPath(os.homedir()))
294
+ return true;
295
+ // Scratch checkouts and test fixtures cluster as direct children of the temp
296
+ // dir, which would otherwise infer it as a root and list every stale
297
+ // `tmp.XXXX` as a project. Resolve symlinks before comparing because macOS
298
+ // reports the same temp directory through both `/var` and `/private/var`.
299
+ // Only the temp dir itself is barred — a real projects folder below it is
300
+ // still scannable.
301
+ return resolved === resolveExistingPath(os.tmpdir());
302
+ }
303
+ function resolveExistingPath(dir) {
304
+ const resolved = path.resolve(dir);
305
+ try {
306
+ return realpathSync(resolved);
307
+ }
308
+ catch {
309
+ return resolved;
310
+ }
311
+ }
312
+ /**
313
+ * List the direct children of each project root as projects. Directory mtime
314
+ * stands in for "last active" — imprecise, but these rows are session-less by
315
+ * definition and merging keeps real session recency where it exists.
316
+ */
317
+ async function discoverFolderProjects(roots) {
318
+ const candidates = [];
319
+ for (const root of roots) {
320
+ let entries;
321
+ try {
322
+ entries = await fs.readdir(root, { withFileTypes: true });
323
+ }
324
+ catch {
325
+ continue;
326
+ }
327
+ for (const entry of entries) {
328
+ if (!entry.isDirectory() && !entry.isSymbolicLink())
329
+ continue;
330
+ if (entry.name.startsWith("."))
331
+ continue;
332
+ if (FOLDER_SCAN_IGNORED.has(entry.name))
333
+ continue;
334
+ candidates.push({ name: entry.name, path: path.join(root, entry.name) });
335
+ }
199
336
  }
200
- return results;
337
+ // `stat` (not `lstat`) so a symlinked project folder resolves to its target:
338
+ // `readdir` reports a symlink as neither file nor directory, so checking the
339
+ // dirent alone would silently drop linked-in projects.
340
+ const rows = await mapConcurrent(candidates, async (c) => {
341
+ try {
342
+ const stats = await fs.stat(c.path);
343
+ if (!stats.isDirectory())
344
+ return null;
345
+ return {
346
+ name: c.name,
347
+ path: c.path,
348
+ lastActiveMs: stats.mtimeMs,
349
+ lastActiveDisplay: formatRelativeTime(stats.mtimeMs),
350
+ sources: ["folder"],
351
+ };
352
+ }
353
+ catch {
354
+ return null;
355
+ }
356
+ });
357
+ return rows.filter((r) => r !== null);
201
358
  }
202
359
  async function isDirectory(p) {
203
360
  try {
@@ -484,6 +641,105 @@ export async function listRecentSessions(cwd, limit = 5, sessionsDir = getAppPat
484
641
  }
485
642
  return out;
486
643
  }
644
+ /**
645
+ * List the most recent Claude Code and Codex conversations for a project cwd.
646
+ *
647
+ * The project picker has always surfaced these stores (`discoverProjects`), so a
648
+ * project can appear *because* it has Claude Code history — and then show an
649
+ * empty session list, because that only read EZ Coder's own directory. These
650
+ * rows close that gap: each one points at the foreign transcript, tagged with
651
+ * its `source`, and the host imports it on click.
652
+ *
653
+ * Cheap by construction: a transcript is only opened if its cwd matches, and
654
+ * both the per-store file walk and the preview read are line-capped.
655
+ */
656
+ export async function listForeignSessions(cwd, limit = 5, homeDir = os.homedir()) {
657
+ const [claude, codex] = await Promise.all([
658
+ listClaudeSessions(cwd, limit, homeDir),
659
+ listCodexSessions(cwd, limit, homeDir),
660
+ ]);
661
+ return [...claude, ...codex]
662
+ .sort((left, right) => right.lastActiveMs - left.lastActiveMs)
663
+ .slice(0, limit)
664
+ .map(({ lastActiveMs: _lastActiveMs, ...session }) => session);
665
+ }
666
+ async function listClaudeSessions(cwd, limit, homeDir) {
667
+ const projectsDir = path.join(homeDir, ".claude", "projects");
668
+ if (!(await isDirectory(projectsDir)))
669
+ return [];
670
+ // Claude's directory encoding is ambiguous (every "/" becomes "-", colliding
671
+ // with real dashes), so we cannot map cwd → directory. Instead walk the files
672
+ // newest-first and keep the ones whose recorded cwd matches.
673
+ const files = await collectJsonlFiles(projectsDir, 3);
674
+ return collectMatchingForeignSessions(files, cwd, limit, "claude-code", claudeCwdExtractor);
675
+ }
676
+ async function listCodexSessions(cwd, limit, homeDir) {
677
+ const sessionsDir = path.join(homeDir, ".codex", "sessions");
678
+ if (!(await isDirectory(sessionsDir)))
679
+ return [];
680
+ // Layout is YYYY/MM/DD/*.jsonl — depth 4 covers it.
681
+ const files = await collectJsonlFiles(sessionsDir, 4);
682
+ return collectMatchingForeignSessions(files, cwd, limit, "codex", codexCwdExtractor);
683
+ }
684
+ /**
685
+ * Newest-first scan for transcripts belonging to `cwd`. Stops as soon as
686
+ * `limit` matches are found so a large history costs only the files it reads.
687
+ */
688
+ async function collectMatchingForeignSessions(files, cwd, limit, source, extractor) {
689
+ if (files.length === 0)
690
+ return [];
691
+ files.sort((left, right) => right.mtime - left.mtime);
692
+ const target = path.resolve(stripExtendedLengthPrefix(cwd));
693
+ const out = [];
694
+ for (const file of files) {
695
+ if (out.length >= limit)
696
+ break;
697
+ const recorded = await readFirstFromFile(file.path, extractor);
698
+ if (!recorded)
699
+ continue;
700
+ if (path.resolve(stripExtendedLengthPrefix(recorded)) !== target)
701
+ continue;
702
+ const summary = await readForeignSessionSummary(file.path, source);
703
+ if (!summary)
704
+ continue;
705
+ out.push({
706
+ ...summary,
707
+ lastActiveDisplay: formatRelativeTime(file.mtime),
708
+ lastActiveMs: file.mtime,
709
+ });
710
+ }
711
+ return out;
712
+ }
713
+ /**
714
+ * Preview + message count for a foreign transcript, using the same parsers the
715
+ * importer uses — so the row's title is exactly the title the imported session
716
+ * ends up with (notably Cursor's `<user_query>` unwrapping).
717
+ */
718
+ async function readForeignSessionSummary(file, source) {
719
+ let text;
720
+ try {
721
+ text = await fs.readFile(file, "utf-8");
722
+ }
723
+ catch {
724
+ return null;
725
+ }
726
+ try {
727
+ const parsed = parseForeignTranscript(text, source === "codex" ? "codex" : "claude");
728
+ if (parsed.messages.length === 0)
729
+ return null;
730
+ return {
731
+ id: path.basename(file).replace(/\.jsonl$/, ""),
732
+ path: file,
733
+ preview: parsed.preview ?? "(no prompt)",
734
+ messageCount: parsed.messages.length,
735
+ source,
736
+ };
737
+ }
738
+ catch {
739
+ // An unreadable transcript is skipped, never surfaced as a broken row.
740
+ return null;
741
+ }
742
+ }
487
743
  /** Single-pass parse of one session file: identity + count + activity + preview. */
488
744
  async function readSessionSummary(file) {
489
745
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"project-discovery.js","sourceRoot":"","sources":["../../src/core/project-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-discovery.js","sourceRoot":"","sources":["../../src/core/project-discovery.ts"],"names":[],"mappings":"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"}