@jacques-ai/server 0.0.7-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/dist/config/config.d.ts +34 -0
  2. package/dist/config/config.d.ts.map +1 -0
  3. package/dist/config/config.js +32 -0
  4. package/dist/config/config.js.map +1 -0
  5. package/dist/connection/applescript.d.ts +46 -0
  6. package/dist/connection/applescript.d.ts.map +1 -0
  7. package/dist/connection/applescript.js +62 -0
  8. package/dist/connection/applescript.js.map +1 -0
  9. package/dist/connection/applescript.test.d.ts +5 -0
  10. package/dist/connection/applescript.test.d.ts.map +1 -0
  11. package/dist/connection/applescript.test.js +64 -0
  12. package/dist/connection/applescript.test.js.map +1 -0
  13. package/dist/connection/constants.d.ts +88 -0
  14. package/dist/connection/constants.d.ts.map +1 -0
  15. package/dist/connection/constants.js +110 -0
  16. package/dist/connection/constants.js.map +1 -0
  17. package/dist/connection/git-info.d.ts +30 -0
  18. package/dist/connection/git-info.d.ts.map +1 -0
  19. package/dist/connection/git-info.js +52 -0
  20. package/dist/connection/git-info.js.map +1 -0
  21. package/dist/connection/git-info.test.d.ts +5 -0
  22. package/dist/connection/git-info.test.d.ts.map +1 -0
  23. package/dist/connection/git-info.test.js +35 -0
  24. package/dist/connection/git-info.test.js.map +1 -0
  25. package/dist/connection/index.d.ts +19 -0
  26. package/dist/connection/index.d.ts.map +1 -0
  27. package/dist/connection/index.js +36 -0
  28. package/dist/connection/index.js.map +1 -0
  29. package/dist/connection/process-detection.d.ts +58 -0
  30. package/dist/connection/process-detection.d.ts.map +1 -0
  31. package/dist/connection/process-detection.js +239 -0
  32. package/dist/connection/process-detection.js.map +1 -0
  33. package/dist/connection/process-detection.test.d.ts +5 -0
  34. package/dist/connection/process-detection.test.d.ts.map +1 -0
  35. package/dist/connection/process-detection.test.js +43 -0
  36. package/dist/connection/process-detection.test.js.map +1 -0
  37. package/dist/connection/session-discovery.d.ts +55 -0
  38. package/dist/connection/session-discovery.d.ts.map +1 -0
  39. package/dist/connection/session-discovery.js +311 -0
  40. package/dist/connection/session-discovery.js.map +1 -0
  41. package/dist/connection/terminal-key.d.ts +126 -0
  42. package/dist/connection/terminal-key.d.ts.map +1 -0
  43. package/dist/connection/terminal-key.js +271 -0
  44. package/dist/connection/terminal-key.js.map +1 -0
  45. package/dist/connection/terminal-key.test.d.ts +5 -0
  46. package/dist/connection/terminal-key.test.d.ts.map +1 -0
  47. package/dist/connection/terminal-key.test.js +221 -0
  48. package/dist/connection/terminal-key.test.js.map +1 -0
  49. package/dist/connection/worktree.d.ts +114 -0
  50. package/dist/connection/worktree.d.ts.map +1 -0
  51. package/dist/connection/worktree.js +320 -0
  52. package/dist/connection/worktree.js.map +1 -0
  53. package/dist/connection/worktree.test.d.ts +5 -0
  54. package/dist/connection/worktree.test.d.ts.map +1 -0
  55. package/dist/connection/worktree.test.js +113 -0
  56. package/dist/connection/worktree.test.js.map +1 -0
  57. package/dist/focus-watcher.d.ts +51 -0
  58. package/dist/focus-watcher.d.ts.map +1 -0
  59. package/dist/focus-watcher.js +169 -0
  60. package/dist/focus-watcher.js.map +1 -0
  61. package/dist/handlers/event-handler.d.ts +93 -0
  62. package/dist/handlers/event-handler.d.ts.map +1 -0
  63. package/dist/handlers/event-handler.js +196 -0
  64. package/dist/handlers/event-handler.js.map +1 -0
  65. package/dist/handlers/event-handler.test.d.ts +5 -0
  66. package/dist/handlers/event-handler.test.d.ts.map +1 -0
  67. package/dist/handlers/event-handler.test.js +305 -0
  68. package/dist/handlers/event-handler.test.js.map +1 -0
  69. package/dist/handlers/session-handler.d.ts +23 -0
  70. package/dist/handlers/session-handler.d.ts.map +1 -0
  71. package/dist/handlers/session-handler.js +104 -0
  72. package/dist/handlers/session-handler.js.map +1 -0
  73. package/dist/handlers/session-handler.test.d.ts +5 -0
  74. package/dist/handlers/session-handler.test.d.ts.map +1 -0
  75. package/dist/handlers/session-handler.test.js +89 -0
  76. package/dist/handlers/session-handler.test.js.map +1 -0
  77. package/dist/handlers/settings-handler.d.ts +32 -0
  78. package/dist/handlers/settings-handler.d.ts.map +1 -0
  79. package/dist/handlers/settings-handler.js +127 -0
  80. package/dist/handlers/settings-handler.js.map +1 -0
  81. package/dist/handlers/settings-handler.test.d.ts +5 -0
  82. package/dist/handlers/settings-handler.test.d.ts.map +1 -0
  83. package/dist/handlers/settings-handler.test.js +105 -0
  84. package/dist/handlers/settings-handler.test.js.map +1 -0
  85. package/dist/handlers/window-handler.d.ts +30 -0
  86. package/dist/handlers/window-handler.d.ts.map +1 -0
  87. package/dist/handlers/window-handler.js +486 -0
  88. package/dist/handlers/window-handler.js.map +1 -0
  89. package/dist/handlers/window-handler.test.d.ts +8 -0
  90. package/dist/handlers/window-handler.test.d.ts.map +1 -0
  91. package/dist/handlers/window-handler.test.js +167 -0
  92. package/dist/handlers/window-handler.test.js.map +1 -0
  93. package/dist/handlers/worktree-handler.d.ts +28 -0
  94. package/dist/handlers/worktree-handler.d.ts.map +1 -0
  95. package/dist/handlers/worktree-handler.js +268 -0
  96. package/dist/handlers/worktree-handler.js.map +1 -0
  97. package/dist/handlers/worktree-handler.test.d.ts +8 -0
  98. package/dist/handlers/worktree-handler.test.d.ts.map +1 -0
  99. package/dist/handlers/worktree-handler.test.js +118 -0
  100. package/dist/handlers/worktree-handler.test.js.map +1 -0
  101. package/dist/handlers/ws-utils.d.ts +12 -0
  102. package/dist/handlers/ws-utils.d.ts.map +1 -0
  103. package/dist/handlers/ws-utils.js +16 -0
  104. package/dist/handlers/ws-utils.js.map +1 -0
  105. package/dist/http-api.d.ts +26 -0
  106. package/dist/http-api.d.ts.map +1 -0
  107. package/dist/http-api.js +148 -0
  108. package/dist/http-api.js.map +1 -0
  109. package/dist/logger.d.ts +42 -0
  110. package/dist/logger.d.ts.map +1 -0
  111. package/dist/logger.js +147 -0
  112. package/dist/logger.js.map +1 -0
  113. package/dist/logging/logger-factory.d.ts +51 -0
  114. package/dist/logging/logger-factory.d.ts.map +1 -0
  115. package/dist/logging/logger-factory.js +59 -0
  116. package/dist/logging/logger-factory.js.map +1 -0
  117. package/dist/mcp/search-tool.d.ts +65 -0
  118. package/dist/mcp/search-tool.d.ts.map +1 -0
  119. package/dist/mcp/search-tool.js +176 -0
  120. package/dist/mcp/search-tool.js.map +1 -0
  121. package/dist/mcp/server.d.ts +9 -0
  122. package/dist/mcp/server.d.ts.map +1 -0
  123. package/dist/mcp/server.js +152 -0
  124. package/dist/mcp/server.js.map +1 -0
  125. package/dist/process-scanner.d.ts +96 -0
  126. package/dist/process-scanner.d.ts.map +1 -0
  127. package/dist/process-scanner.js +194 -0
  128. package/dist/process-scanner.js.map +1 -0
  129. package/dist/routes/__tests__/archive-routes.test.d.ts +5 -0
  130. package/dist/routes/__tests__/archive-routes.test.d.ts.map +1 -0
  131. package/dist/routes/__tests__/archive-routes.test.js +158 -0
  132. package/dist/routes/__tests__/archive-routes.test.js.map +1 -0
  133. package/dist/routes/__tests__/config-routes.test.d.ts +5 -0
  134. package/dist/routes/__tests__/config-routes.test.d.ts.map +1 -0
  135. package/dist/routes/__tests__/config-routes.test.js +112 -0
  136. package/dist/routes/__tests__/config-routes.test.js.map +1 -0
  137. package/dist/routes/__tests__/http-utils.test.d.ts +5 -0
  138. package/dist/routes/__tests__/http-utils.test.d.ts.map +1 -0
  139. package/dist/routes/__tests__/http-utils.test.js +102 -0
  140. package/dist/routes/__tests__/http-utils.test.js.map +1 -0
  141. package/dist/routes/__tests__/notification-routes.test.d.ts +5 -0
  142. package/dist/routes/__tests__/notification-routes.test.d.ts.map +1 -0
  143. package/dist/routes/__tests__/notification-routes.test.js +91 -0
  144. package/dist/routes/__tests__/notification-routes.test.js.map +1 -0
  145. package/dist/routes/__tests__/project-routes.test.d.ts +5 -0
  146. package/dist/routes/__tests__/project-routes.test.d.ts.map +1 -0
  147. package/dist/routes/__tests__/project-routes.test.js +168 -0
  148. package/dist/routes/__tests__/project-routes.test.js.map +1 -0
  149. package/dist/routes/__tests__/session-routes.test.d.ts +5 -0
  150. package/dist/routes/__tests__/session-routes.test.d.ts.map +1 -0
  151. package/dist/routes/__tests__/session-routes.test.js +198 -0
  152. package/dist/routes/__tests__/session-routes.test.js.map +1 -0
  153. package/dist/routes/__tests__/source-routes.test.d.ts +5 -0
  154. package/dist/routes/__tests__/source-routes.test.d.ts.map +1 -0
  155. package/dist/routes/__tests__/source-routes.test.js +142 -0
  156. package/dist/routes/__tests__/source-routes.test.js.map +1 -0
  157. package/dist/routes/__tests__/sync-routes.test.d.ts +5 -0
  158. package/dist/routes/__tests__/sync-routes.test.d.ts.map +1 -0
  159. package/dist/routes/__tests__/sync-routes.test.js +77 -0
  160. package/dist/routes/__tests__/sync-routes.test.js.map +1 -0
  161. package/dist/routes/__tests__/test-helpers.d.ts +47 -0
  162. package/dist/routes/__tests__/test-helpers.d.ts.map +1 -0
  163. package/dist/routes/__tests__/test-helpers.js +97 -0
  164. package/dist/routes/__tests__/test-helpers.js.map +1 -0
  165. package/dist/routes/archive-routes.d.ts +15 -0
  166. package/dist/routes/archive-routes.d.ts.map +1 -0
  167. package/dist/routes/archive-routes.js +181 -0
  168. package/dist/routes/archive-routes.js.map +1 -0
  169. package/dist/routes/claude-routes.d.ts +9 -0
  170. package/dist/routes/claude-routes.d.ts.map +1 -0
  171. package/dist/routes/claude-routes.js +47 -0
  172. package/dist/routes/claude-routes.js.map +1 -0
  173. package/dist/routes/config-routes.d.ts +9 -0
  174. package/dist/routes/config-routes.d.ts.map +1 -0
  175. package/dist/routes/config-routes.js +56 -0
  176. package/dist/routes/config-routes.js.map +1 -0
  177. package/dist/routes/config-store.d.ts +41 -0
  178. package/dist/routes/config-store.d.ts.map +1 -0
  179. package/dist/routes/config-store.js +52 -0
  180. package/dist/routes/config-store.js.map +1 -0
  181. package/dist/routes/http-utils.d.ts +32 -0
  182. package/dist/routes/http-utils.d.ts.map +1 -0
  183. package/dist/routes/http-utils.js +123 -0
  184. package/dist/routes/http-utils.js.map +1 -0
  185. package/dist/routes/index.d.ts +19 -0
  186. package/dist/routes/index.d.ts.map +1 -0
  187. package/dist/routes/index.js +17 -0
  188. package/dist/routes/index.js.map +1 -0
  189. package/dist/routes/notification-routes.d.ts +10 -0
  190. package/dist/routes/notification-routes.d.ts.map +1 -0
  191. package/dist/routes/notification-routes.js +64 -0
  192. package/dist/routes/notification-routes.js.map +1 -0
  193. package/dist/routes/project-routes.d.ts +22 -0
  194. package/dist/routes/project-routes.d.ts.map +1 -0
  195. package/dist/routes/project-routes.js +415 -0
  196. package/dist/routes/project-routes.js.map +1 -0
  197. package/dist/routes/session-routes.d.ts +18 -0
  198. package/dist/routes/session-routes.d.ts.map +1 -0
  199. package/dist/routes/session-routes.js +609 -0
  200. package/dist/routes/session-routes.js.map +1 -0
  201. package/dist/routes/source-routes.d.ts +12 -0
  202. package/dist/routes/source-routes.d.ts.map +1 -0
  203. package/dist/routes/source-routes.js +119 -0
  204. package/dist/routes/source-routes.js.map +1 -0
  205. package/dist/routes/static-routes.d.ts +12 -0
  206. package/dist/routes/static-routes.d.ts.map +1 -0
  207. package/dist/routes/static-routes.js +52 -0
  208. package/dist/routes/static-routes.js.map +1 -0
  209. package/dist/routes/sync-routes.d.ts +9 -0
  210. package/dist/routes/sync-routes.d.ts.map +1 -0
  211. package/dist/routes/sync-routes.js +78 -0
  212. package/dist/routes/sync-routes.js.map +1 -0
  213. package/dist/routes/tile-routes.d.ts +10 -0
  214. package/dist/routes/tile-routes.d.ts.map +1 -0
  215. package/dist/routes/tile-routes.js +108 -0
  216. package/dist/routes/tile-routes.js.map +1 -0
  217. package/dist/routes/types.d.ts +17 -0
  218. package/dist/routes/types.d.ts.map +1 -0
  219. package/dist/routes/types.js +5 -0
  220. package/dist/routes/types.js.map +1 -0
  221. package/dist/routes/usage-routes.d.ts +8 -0
  222. package/dist/routes/usage-routes.d.ts.map +1 -0
  223. package/dist/routes/usage-routes.js +18 -0
  224. package/dist/routes/usage-routes.js.map +1 -0
  225. package/dist/server.d.ts +8 -0
  226. package/dist/server.d.ts.map +1 -0
  227. package/dist/server.js +173 -0
  228. package/dist/server.js.map +1 -0
  229. package/dist/services/branch-divergence-service.d.ts +48 -0
  230. package/dist/services/branch-divergence-service.d.ts.map +1 -0
  231. package/dist/services/branch-divergence-service.js +156 -0
  232. package/dist/services/branch-divergence-service.js.map +1 -0
  233. package/dist/services/broadcast-service.d.ts +68 -0
  234. package/dist/services/broadcast-service.d.ts.map +1 -0
  235. package/dist/services/broadcast-service.js +78 -0
  236. package/dist/services/broadcast-service.js.map +1 -0
  237. package/dist/services/broadcast-service.test.d.ts +5 -0
  238. package/dist/services/broadcast-service.test.d.ts.map +1 -0
  239. package/dist/services/broadcast-service.test.js +130 -0
  240. package/dist/services/broadcast-service.test.js.map +1 -0
  241. package/dist/services/chat-service.d.ts +72 -0
  242. package/dist/services/chat-service.d.ts.map +1 -0
  243. package/dist/services/chat-service.js +342 -0
  244. package/dist/services/chat-service.js.map +1 -0
  245. package/dist/services/chat-system-prompt.d.ts +14 -0
  246. package/dist/services/chat-system-prompt.d.ts.map +1 -0
  247. package/dist/services/chat-system-prompt.js +68 -0
  248. package/dist/services/chat-system-prompt.js.map +1 -0
  249. package/dist/services/notification-service.d.ts +115 -0
  250. package/dist/services/notification-service.d.ts.map +1 -0
  251. package/dist/services/notification-service.js +424 -0
  252. package/dist/services/notification-service.js.map +1 -0
  253. package/dist/services/notification-service.test.d.ts +5 -0
  254. package/dist/services/notification-service.test.d.ts.map +1 -0
  255. package/dist/services/notification-service.test.js +918 -0
  256. package/dist/services/notification-service.test.js.map +1 -0
  257. package/dist/session/cleanup-service.d.ts +51 -0
  258. package/dist/session/cleanup-service.d.ts.map +1 -0
  259. package/dist/session/cleanup-service.js +98 -0
  260. package/dist/session/cleanup-service.js.map +1 -0
  261. package/dist/session/cleanup-service.test.d.ts +5 -0
  262. package/dist/session/cleanup-service.test.d.ts.map +1 -0
  263. package/dist/session/cleanup-service.test.js +121 -0
  264. package/dist/session/cleanup-service.test.js.map +1 -0
  265. package/dist/session/process-monitor.d.ts +79 -0
  266. package/dist/session/process-monitor.d.ts.map +1 -0
  267. package/dist/session/process-monitor.js +270 -0
  268. package/dist/session/process-monitor.js.map +1 -0
  269. package/dist/session/process-monitor.test.d.ts +5 -0
  270. package/dist/session/process-monitor.test.d.ts.map +1 -0
  271. package/dist/session/process-monitor.test.js +367 -0
  272. package/dist/session/process-monitor.test.js.map +1 -0
  273. package/dist/session/session-factory.d.ts +29 -0
  274. package/dist/session/session-factory.d.ts.map +1 -0
  275. package/dist/session/session-factory.js +123 -0
  276. package/dist/session/session-factory.js.map +1 -0
  277. package/dist/session/session-factory.test.d.ts +5 -0
  278. package/dist/session/session-factory.test.d.ts.map +1 -0
  279. package/dist/session/session-factory.test.js +299 -0
  280. package/dist/session/session-factory.test.js.map +1 -0
  281. package/dist/session-registry.d.ts +168 -0
  282. package/dist/session-registry.d.ts.map +1 -0
  283. package/dist/session-registry.js +626 -0
  284. package/dist/session-registry.js.map +1 -0
  285. package/dist/session-registry.test.d.ts +5 -0
  286. package/dist/session-registry.test.d.ts.map +1 -0
  287. package/dist/session-registry.test.js +582 -0
  288. package/dist/session-registry.test.js.map +1 -0
  289. package/dist/start-server.d.ts +31 -0
  290. package/dist/start-server.d.ts.map +1 -0
  291. package/dist/start-server.js +408 -0
  292. package/dist/start-server.js.map +1 -0
  293. package/dist/terminal-activator.d.ts +29 -0
  294. package/dist/terminal-activator.d.ts.map +1 -0
  295. package/dist/terminal-activator.js +264 -0
  296. package/dist/terminal-activator.js.map +1 -0
  297. package/dist/terminal-activator.test.d.ts +9 -0
  298. package/dist/terminal-activator.test.d.ts.map +1 -0
  299. package/dist/terminal-activator.test.js +95 -0
  300. package/dist/terminal-activator.test.js.map +1 -0
  301. package/dist/terminal-launcher.d.ts +51 -0
  302. package/dist/terminal-launcher.d.ts.map +1 -0
  303. package/dist/terminal-launcher.js +298 -0
  304. package/dist/terminal-launcher.js.map +1 -0
  305. package/dist/terminal-launcher.test.d.ts +8 -0
  306. package/dist/terminal-launcher.test.d.ts.map +1 -0
  307. package/dist/terminal-launcher.test.js +222 -0
  308. package/dist/terminal-launcher.test.js.map +1 -0
  309. package/dist/types.d.ts +796 -0
  310. package/dist/types.d.ts.map +1 -0
  311. package/dist/types.js +15 -0
  312. package/dist/types.js.map +1 -0
  313. package/dist/unix-socket.d.ts +68 -0
  314. package/dist/unix-socket.d.ts.map +1 -0
  315. package/dist/unix-socket.js +180 -0
  316. package/dist/unix-socket.js.map +1 -0
  317. package/dist/usage-limits.d.ts +13 -0
  318. package/dist/usage-limits.d.ts.map +1 -0
  319. package/dist/usage-limits.js +112 -0
  320. package/dist/usage-limits.js.map +1 -0
  321. package/dist/watchers/handoff-watcher.d.ts +74 -0
  322. package/dist/watchers/handoff-watcher.d.ts.map +1 -0
  323. package/dist/watchers/handoff-watcher.js +124 -0
  324. package/dist/watchers/handoff-watcher.js.map +1 -0
  325. package/dist/watchers/handoff-watcher.test.d.ts +8 -0
  326. package/dist/watchers/handoff-watcher.test.d.ts.map +1 -0
  327. package/dist/watchers/handoff-watcher.test.js +142 -0
  328. package/dist/watchers/handoff-watcher.test.js.map +1 -0
  329. package/dist/websocket.d.ts +107 -0
  330. package/dist/websocket.d.ts.map +1 -0
  331. package/dist/websocket.js +268 -0
  332. package/dist/websocket.js.map +1 -0
  333. package/dist/window-manager/index.d.ts +28 -0
  334. package/dist/window-manager/index.d.ts.map +1 -0
  335. package/dist/window-manager/index.js +56 -0
  336. package/dist/window-manager/index.js.map +1 -0
  337. package/dist/window-manager/layouts.d.ts +42 -0
  338. package/dist/window-manager/layouts.d.ts.map +1 -0
  339. package/dist/window-manager/layouts.js +133 -0
  340. package/dist/window-manager/layouts.js.map +1 -0
  341. package/dist/window-manager/linux-manager.d.ts +45 -0
  342. package/dist/window-manager/linux-manager.d.ts.map +1 -0
  343. package/dist/window-manager/linux-manager.js +299 -0
  344. package/dist/window-manager/linux-manager.js.map +1 -0
  345. package/dist/window-manager/macos-manager.d.ts +103 -0
  346. package/dist/window-manager/macos-manager.d.ts.map +1 -0
  347. package/dist/window-manager/macos-manager.js +637 -0
  348. package/dist/window-manager/macos-manager.js.map +1 -0
  349. package/dist/window-manager/smart-layouts.d.ts +116 -0
  350. package/dist/window-manager/smart-layouts.d.ts.map +1 -0
  351. package/dist/window-manager/smart-layouts.js +188 -0
  352. package/dist/window-manager/smart-layouts.js.map +1 -0
  353. package/dist/window-manager/smart-layouts.test.d.ts +8 -0
  354. package/dist/window-manager/smart-layouts.test.d.ts.map +1 -0
  355. package/dist/window-manager/smart-layouts.test.js +311 -0
  356. package/dist/window-manager/smart-layouts.test.js.map +1 -0
  357. package/dist/window-manager/tile-state.d.ts +87 -0
  358. package/dist/window-manager/tile-state.d.ts.map +1 -0
  359. package/dist/window-manager/tile-state.js +136 -0
  360. package/dist/window-manager/tile-state.js.map +1 -0
  361. package/dist/window-manager/tile-state.test.d.ts +8 -0
  362. package/dist/window-manager/tile-state.test.d.ts.map +1 -0
  363. package/dist/window-manager/tile-state.test.js +179 -0
  364. package/dist/window-manager/tile-state.test.js.map +1 -0
  365. package/dist/window-manager/types.d.ts +104 -0
  366. package/dist/window-manager/types.d.ts.map +1 -0
  367. package/dist/window-manager/types.js +8 -0
  368. package/dist/window-manager/types.js.map +1 -0
  369. package/dist/window-manager/windows-manager.d.ts +44 -0
  370. package/dist/window-manager/windows-manager.d.ts.map +1 -0
  371. package/dist/window-manager/windows-manager.js +281 -0
  372. package/dist/window-manager/windows-manager.js.map +1 -0
  373. package/dist/window-manager/windows-manager.test.d.ts +8 -0
  374. package/dist/window-manager/windows-manager.test.d.ts.map +1 -0
  375. package/dist/window-manager/windows-manager.test.js +183 -0
  376. package/dist/window-manager/windows-manager.test.js.map +1 -0
  377. package/gui-dist/assets/index-BmYIHRYe.js +142 -0
  378. package/gui-dist/assets/index-D_N5RH8O.css +1 -0
  379. package/gui-dist/assets/vendor-icons-ByXNrcwf.js +336 -0
  380. package/gui-dist/assets/vendor-markdown-DWPYwU1x.js +22 -0
  381. package/gui-dist/assets/vendor-react-CpILBTDM.js +59 -0
  382. package/gui-dist/index.html +17 -0
  383. package/gui-dist/jacsub.png +0 -0
  384. package/package.json +67 -0
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Connection Layer
3
+ *
4
+ * Centralized module for Claude Code/Cursor session connection logic:
5
+ * - Process detection and PID handling
6
+ * - Terminal identity and activation
7
+ * - Session discovery and lifecycle
8
+ * - Focus detection and tracking
9
+ *
10
+ * @module connection
11
+ */
12
+ export { DEFAULT_CONTEXT_WINDOW_SIZE, AUTOCOMPACT_BUG_THRESHOLD, DEFAULT_AUTOCOMPACT_THRESHOLD, ACTIVE_SESSION_THRESHOLD_MS, RECENTLY_ENDED_TTL_MS, IDLE_TIMEOUT_MS, PROCESS_VERIFY_INTERVAL_MS, CLEANUP_INTERVAL_MS, CATALOG_CACHE_MAX_AGE_MS, FOCUS_WATCHER_POLL_MS, FOCUS_WATCHER_IDLE_POLL_MS, TerminalKeyPrefix, TERMINAL_APP_NAMES, type TerminalAppName, } from './constants.js';
13
+ export { parseTerminalKey, buildTerminalKey, extractPid, extractItermUuid, matchTerminalKeys, describeTerminalKey, type ParsedTerminalKey, type TerminalIdentity, } from './terminal-key.js';
14
+ export { escapeAppleScript, runAppleScript, isAppleScriptAvailable, } from './applescript.js';
15
+ export { detectGitInfo, type GitInfo, } from './git-info.js';
16
+ export { findActiveSessionFiles, findMostRecentSessionFile, findRecentSessionFiles, type SessionFileInfo, } from './session-discovery.js';
17
+ export { getClaudeProcesses, isProcessRunning, isProcessBypass, getPlatformInfo, type DetectedProcess, } from './process-detection.js';
18
+ export { createWorktree, listWorktrees, listWorktreesWithStatus, removeWorktree, type CreateWorktreeOptions, type CreateWorktreeResult, type WorktreeEntry, type WorktreeWithStatus, type WorktreeStatus, type RemoveWorktreeOptions, type RemoveWorktreeResult, } from './worktree.js';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connection/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAEL,2BAA2B,EAC3B,yBAAyB,EACzB,6BAA6B,EAG7B,2BAA2B,EAC3B,qBAAqB,EACrB,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,EAGxB,qBAAqB,EACrB,0BAA0B,EAG1B,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,aAAa,EACb,KAAK,OAAO,GACb,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,eAAe,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Connection Layer
3
+ *
4
+ * Centralized module for Claude Code/Cursor session connection logic:
5
+ * - Process detection and PID handling
6
+ * - Terminal identity and activation
7
+ * - Session discovery and lifecycle
8
+ * - Focus detection and tracking
9
+ *
10
+ * @module connection
11
+ */
12
+ // Constants and configuration
13
+ export {
14
+ // Context window limits
15
+ DEFAULT_CONTEXT_WINDOW_SIZE, AUTOCOMPACT_BUG_THRESHOLD, DEFAULT_AUTOCOMPACT_THRESHOLD,
16
+ // Session timing thresholds
17
+ ACTIVE_SESSION_THRESHOLD_MS, RECENTLY_ENDED_TTL_MS, IDLE_TIMEOUT_MS, PROCESS_VERIFY_INTERVAL_MS, CLEANUP_INTERVAL_MS, CATALOG_CACHE_MAX_AGE_MS,
18
+ // Focus detection
19
+ FOCUS_WATCHER_POLL_MS, FOCUS_WATCHER_IDLE_POLL_MS,
20
+ // Terminal key prefixes
21
+ TerminalKeyPrefix, TERMINAL_APP_NAMES, } from './constants.js';
22
+ // Terminal key utilities
23
+ export { parseTerminalKey, buildTerminalKey, extractPid, extractItermUuid, matchTerminalKeys, describeTerminalKey, } from './terminal-key.js';
24
+ // AppleScript utilities
25
+ export { escapeAppleScript, runAppleScript, isAppleScriptAvailable, } from './applescript.js';
26
+ // Git detection
27
+ export { detectGitInfo, } from './git-info.js';
28
+ // Session discovery
29
+ export { findActiveSessionFiles, findMostRecentSessionFile, findRecentSessionFiles, } from './session-discovery.js';
30
+ // Process detection
31
+ export { getClaudeProcesses, isProcessRunning, isProcessBypass, getPlatformInfo, } from './process-detection.js';
32
+ // Worktree management
33
+ export { createWorktree, listWorktrees, listWorktreesWithStatus, removeWorktree, } from './worktree.js';
34
+ // Focus tracking remains in server/src/focus-watcher.ts (refactored to use shared utilities)
35
+ // Terminal activation remains in server/src/terminal-activator.ts (uses shared applescript)
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connection/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,8BAA8B;AAC9B,OAAO;AACL,wBAAwB;AACxB,2BAA2B,EAC3B,yBAAyB,EACzB,6BAA6B;AAE7B,4BAA4B;AAC5B,2BAA2B,EAC3B,qBAAqB,EACrB,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB;AAExB,kBAAkB;AAClB,qBAAqB,EACrB,0BAA0B;AAE1B,wBAAwB;AACxB,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,gBAAgB,CAAC;AAExB,yBAAyB;AACzB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GAGpB,MAAM,mBAAmB,CAAC;AAE3B,wBAAwB;AACxB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,gBAAgB;AAChB,OAAO,EACL,aAAa,GAEd,MAAM,eAAe,CAAC;AAEvB,oBAAoB;AACpB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAEhC,oBAAoB;AACpB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,eAAe,GAEhB,MAAM,wBAAwB,CAAC;AAEhC,sBAAsB;AACtB,OAAO,EACL,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,cAAc,GAQf,MAAM,eAAe,CAAC;AAEvB,6FAA6F;AAC7F,4FAA4F"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Process Detection
3
+ *
4
+ * Cross-platform detection of running Claude Code processes.
5
+ * Supports macOS, Linux, and Windows.
6
+ *
7
+ * @module connection/process-detection
8
+ */
9
+ /**
10
+ * Information about a detected running Claude process
11
+ */
12
+ export interface DetectedProcess {
13
+ pid: number;
14
+ tty: string;
15
+ cwd: string;
16
+ /** Terminal type detected from environment (if available) */
17
+ terminalType?: string;
18
+ /** Terminal session ID (WT_SESSION, ITERM_SESSION_ID, etc.) */
19
+ terminalSessionId?: string;
20
+ /** Whether the process was launched with --dangerously-skip-permissions */
21
+ isBypass?: boolean;
22
+ }
23
+ /**
24
+ * Get all running Claude Code processes.
25
+ *
26
+ * Platform-specific:
27
+ * - macOS/Linux: Uses pgrep, ps, lsof
28
+ * - Windows: Uses PowerShell (Get-Process, Get-WmiObject)
29
+ */
30
+ export declare function getClaudeProcesses(): Promise<DetectedProcess[]>;
31
+ /**
32
+ * Check if a process is still running.
33
+ *
34
+ * Uses `kill -0` on Unix (checks existence without sending a signal)
35
+ * and PowerShell on Windows.
36
+ *
37
+ * @param pid Process ID to check
38
+ * @returns True if the process is still running
39
+ */
40
+ export declare function isProcessRunning(pid: number): Promise<boolean>;
41
+ /**
42
+ * Check if a specific process was launched with --dangerously-skip-permissions.
43
+ * Reads the process command line to determine this.
44
+ *
45
+ * @param pid Process ID to check
46
+ * @returns True if the process has the bypass flag
47
+ */
48
+ export declare function isProcessBypass(pid: number): Promise<boolean>;
49
+ /**
50
+ * Get platform information for diagnostics
51
+ */
52
+ export declare function getPlatformInfo(): {
53
+ platform: string;
54
+ isWindows: boolean;
55
+ isMac: boolean;
56
+ isLinux: boolean;
57
+ };
58
+ //# sourceMappingURL=process-detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-detection.d.ts","sourceRoot":"","sources":["../../src/connection/process-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAMrE;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAapE;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBnE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB,CAGA"}
@@ -0,0 +1,239 @@
1
+ /**
2
+ * Process Detection
3
+ *
4
+ * Cross-platform detection of running Claude Code processes.
5
+ * Supports macOS, Linux, and Windows.
6
+ *
7
+ * @module connection/process-detection
8
+ */
9
+ import { exec as execCb } from 'child_process';
10
+ import { promisify } from 'util';
11
+ import { platform } from 'process';
12
+ const execAsync = promisify(execCb);
13
+ const isWindows = platform === 'win32';
14
+ const isLinux = platform === 'linux';
15
+ /**
16
+ * Get all running Claude Code processes.
17
+ *
18
+ * Platform-specific:
19
+ * - macOS/Linux: Uses pgrep, ps, lsof
20
+ * - Windows: Uses PowerShell (Get-Process, Get-WmiObject)
21
+ */
22
+ export async function getClaudeProcesses() {
23
+ if (isWindows) {
24
+ return getClaudeProcessesWindows();
25
+ }
26
+ else {
27
+ return getClaudeProcessesUnix();
28
+ }
29
+ }
30
+ /**
31
+ * Check if a process is still running.
32
+ *
33
+ * Uses `kill -0` on Unix (checks existence without sending a signal)
34
+ * and PowerShell on Windows.
35
+ *
36
+ * @param pid Process ID to check
37
+ * @returns True if the process is still running
38
+ */
39
+ export async function isProcessRunning(pid) {
40
+ if (pid <= 0)
41
+ return false;
42
+ try {
43
+ if (isWindows) {
44
+ await execAsync(`powershell.exe -NoProfile -Command "Get-Process -Id ${pid} -ErrorAction Stop"`, { timeout: 3000 });
45
+ }
46
+ else {
47
+ await execAsync(`kill -0 ${pid} 2>/dev/null`);
48
+ }
49
+ return true;
50
+ }
51
+ catch {
52
+ return false;
53
+ }
54
+ }
55
+ /**
56
+ * Check if a specific process was launched with --dangerously-skip-permissions.
57
+ * Reads the process command line to determine this.
58
+ *
59
+ * @param pid Process ID to check
60
+ * @returns True if the process has the bypass flag
61
+ */
62
+ export async function isProcessBypass(pid) {
63
+ if (pid <= 0)
64
+ return false;
65
+ try {
66
+ if (isWindows) {
67
+ const { stdout } = await execAsync(`powershell.exe -NoProfile -Command "(Get-WmiObject Win32_Process -Filter 'ProcessId=${pid}').CommandLine"`, { timeout: 3000 });
68
+ return stdout.includes('--dangerously-skip-permissions');
69
+ }
70
+ else {
71
+ const { stdout } = await execAsync(`ps -o args= -p ${pid}`, { timeout: 3000 });
72
+ return stdout.includes('--dangerously-skip-permissions');
73
+ }
74
+ }
75
+ catch {
76
+ return false;
77
+ }
78
+ }
79
+ /**
80
+ * Get platform information for diagnostics
81
+ */
82
+ export function getPlatformInfo() {
83
+ const isMac = platform === 'darwin';
84
+ return { platform, isWindows, isMac, isLinux };
85
+ }
86
+ // ============================================================
87
+ // Unix Process Detection
88
+ // ============================================================
89
+ async function getClaudeProcessesUnix() {
90
+ try {
91
+ const { stdout: pgrepOut } = await execAsync('pgrep -x claude');
92
+ const pids = pgrepOut
93
+ .trim()
94
+ .split('\n')
95
+ .filter((p) => p)
96
+ .map((p) => parseInt(p, 10));
97
+ if (pids.length === 0) {
98
+ return [];
99
+ }
100
+ const processes = [];
101
+ for (const pid of pids) {
102
+ try {
103
+ // Get TTY and full command line in one ps call
104
+ const { stdout: psOut } = await execAsync(`ps -o tty=,args= -p ${pid}`);
105
+ const psLine = psOut.trim();
106
+ // First token is TTY, rest is the command
107
+ const firstSpace = psLine.indexOf(' ');
108
+ const rawTty = firstSpace > 0 ? psLine.slice(0, firstSpace).trim() : psLine;
109
+ const tty = (!rawTty || rawTty === '??' || rawTty === '?') ? '?' : rawTty;
110
+ const cmdLine = firstSpace > 0 ? psLine.slice(firstSpace).trim() : '';
111
+ const isBypass = cmdLine.includes('--dangerously-skip-permissions');
112
+ const { stdout: lsofOut } = await execAsync(`lsof -p ${pid} 2>/dev/null | grep cwd | awk '{print $NF}'`);
113
+ const cwd = lsofOut.trim();
114
+ if (cwd) {
115
+ const terminalInfo = await getTerminalInfoUnix(pid);
116
+ processes.push({
117
+ pid,
118
+ tty,
119
+ cwd,
120
+ terminalType: terminalInfo.type,
121
+ terminalSessionId: terminalInfo.sessionId,
122
+ isBypass,
123
+ });
124
+ }
125
+ }
126
+ catch {
127
+ continue;
128
+ }
129
+ }
130
+ return processes;
131
+ }
132
+ catch {
133
+ // pgrep returns exit code 1 if no processes found
134
+ return [];
135
+ }
136
+ }
137
+ /**
138
+ * Try to get terminal info from process environment on Unix
139
+ */
140
+ async function getTerminalInfoUnix(pid) {
141
+ try {
142
+ if (isLinux) {
143
+ const { stdout } = await execAsync(`cat /proc/${pid}/environ 2>/dev/null | tr '\\0' '\\n' | grep -E '^(ITERM_SESSION_ID|TERM_SESSION_ID|KITTY_WINDOW_ID|WEZTERM_PANE|WT_SESSION)='`);
144
+ return parseTerminalEnvOutput(stdout);
145
+ }
146
+ // On macOS, we can't easily read another process's environment
147
+ return {};
148
+ }
149
+ catch {
150
+ return {};
151
+ }
152
+ }
153
+ /**
154
+ * Parse terminal environment variable output
155
+ */
156
+ function parseTerminalEnvOutput(output) {
157
+ const lines = output.trim().split('\n');
158
+ for (const line of lines) {
159
+ const [key, value] = line.split('=');
160
+ if (!value)
161
+ continue;
162
+ switch (key) {
163
+ case 'ITERM_SESSION_ID':
164
+ return { type: 'iTerm2', sessionId: value };
165
+ case 'TERM_SESSION_ID':
166
+ return { type: 'Terminal.app', sessionId: value };
167
+ case 'KITTY_WINDOW_ID':
168
+ return { type: 'Kitty', sessionId: value };
169
+ case 'WEZTERM_PANE':
170
+ return { type: 'WezTerm', sessionId: value };
171
+ case 'WT_SESSION':
172
+ return { type: 'Windows Terminal', sessionId: value };
173
+ }
174
+ }
175
+ return {};
176
+ }
177
+ // ============================================================
178
+ // Windows Process Detection
179
+ // ============================================================
180
+ async function getClaudeProcessesWindows() {
181
+ try {
182
+ const psScript = `
183
+ $ErrorActionPreference = 'SilentlyContinue'
184
+ Get-Process -Name claude,claude-code 2>$null | ForEach-Object {
185
+ $proc = $_
186
+ try {
187
+ $wmi = Get-WmiObject Win32_Process -Filter "ProcessId=$($proc.Id)" 2>$null
188
+ if ($wmi) {
189
+ $cwd = $null
190
+ $cmdLine = $wmi.CommandLine
191
+ if ($cmdLine) {
192
+ $cmdClean = $cmdLine -replace '^\\"[^\\"]*\\"\\s*|^\\S+\\s*', ''
193
+ $cmdClean = $cmdClean.Trim().Trim('"')
194
+ if ($cmdClean -and (Test-Path $cmdClean -PathType Container -ErrorAction SilentlyContinue)) {
195
+ $cwd = $cmdClean
196
+ }
197
+ }
198
+ if (-not $cwd -and $wmi.ExecutablePath) {
199
+ $cwd = Split-Path -Parent $wmi.ExecutablePath
200
+ }
201
+ $wtSession = [System.Environment]::GetEnvironmentVariable('WT_SESSION', 'Process')
202
+ @{
203
+ PID = $proc.Id
204
+ CWD = $cwd
205
+ WT_SESSION = $wtSession
206
+ CommandLine = $cmdLine
207
+ } | ConvertTo-Json -Compress
208
+ }
209
+ } catch {}
210
+ }
211
+ `.replace(/\n/g, ' ');
212
+ const { stdout } = await execAsync(`powershell.exe -NoProfile -Command "${psScript}"`, { timeout: 10000 });
213
+ const processes = [];
214
+ const lines = stdout.trim().split('\n').filter((l) => l.trim());
215
+ for (const line of lines) {
216
+ try {
217
+ const data = JSON.parse(line);
218
+ if (data.CWD) {
219
+ processes.push({
220
+ pid: data.PID,
221
+ tty: `PID:${data.PID}`,
222
+ cwd: data.CWD,
223
+ terminalType: data.WT_SESSION ? 'Windows Terminal' : 'PowerShell/cmd',
224
+ terminalSessionId: data.WT_SESSION || undefined,
225
+ isBypass: data.CommandLine?.includes('--dangerously-skip-permissions') || false,
226
+ });
227
+ }
228
+ }
229
+ catch {
230
+ // Skip malformed JSON
231
+ }
232
+ }
233
+ return processes;
234
+ }
235
+ catch {
236
+ return [];
237
+ }
238
+ }
239
+ //# sourceMappingURL=process-detection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-detection.js","sourceRoot":"","sources":["../../src/connection/process-detection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for process-detection module
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=process-detection.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-detection.test.d.ts","sourceRoot":"","sources":["../../src/connection/process-detection.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Tests for process-detection module
3
+ */
4
+ import { isProcessRunning, getPlatformInfo } from './process-detection.js';
5
+ describe('isProcessRunning', () => {
6
+ it('returns true for current process', async () => {
7
+ const result = await isProcessRunning(process.pid);
8
+ expect(result).toBe(true);
9
+ });
10
+ it('returns false for non-existent PID', async () => {
11
+ // Use a very high PID that's unlikely to exist
12
+ const result = await isProcessRunning(999999);
13
+ expect(result).toBe(false);
14
+ });
15
+ it('returns false for PID 0', async () => {
16
+ const result = await isProcessRunning(0);
17
+ expect(result).toBe(false);
18
+ });
19
+ it('returns false for negative PID', async () => {
20
+ const result = await isProcessRunning(-1);
21
+ expect(result).toBe(false);
22
+ });
23
+ });
24
+ describe('getPlatformInfo', () => {
25
+ it('returns platform info object', () => {
26
+ const info = getPlatformInfo();
27
+ expect(info).toHaveProperty('platform');
28
+ expect(info).toHaveProperty('isWindows');
29
+ expect(info).toHaveProperty('isMac');
30
+ expect(info).toHaveProperty('isLinux');
31
+ expect(typeof info.platform).toBe('string');
32
+ expect(typeof info.isWindows).toBe('boolean');
33
+ expect(typeof info.isMac).toBe('boolean');
34
+ expect(typeof info.isLinux).toBe('boolean');
35
+ });
36
+ it('has consistent platform flags', () => {
37
+ const info = getPlatformInfo();
38
+ // At most one platform should be true
39
+ const trueCount = [info.isWindows, info.isMac, info.isLinux].filter(Boolean).length;
40
+ expect(trueCount).toBeLessThanOrEqual(1);
41
+ });
42
+ });
43
+ //# sourceMappingURL=process-detection.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-detection.test.js","sourceRoot":"","sources":["../../src/connection/process-detection.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE3E,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,+CAA+C;QAC/C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;QAC/B,sCAAsC;QACtC,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACpF,MAAM,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Session Discovery
3
+ *
4
+ * Finds and resolves metadata for JSONL session files in Claude's project directories.
5
+ * Uses a catalog-first strategy: reads pre-extracted metadata from Jacques session index
6
+ * when available, falls back to JSONL parsing for uncataloged sessions.
7
+ *
8
+ * @module connection/session-discovery
9
+ */
10
+ import { type SessionEntry } from '@jacques-ai/core/cache';
11
+ import type { ContextMetrics, SessionMode } from '../types.js';
12
+ /**
13
+ * JSONL file info with parsed metadata
14
+ */
15
+ export interface SessionFileInfo {
16
+ filePath: string;
17
+ sessionId: string;
18
+ modifiedAt: Date;
19
+ gitBranch: string | null;
20
+ gitWorktree: string | null;
21
+ gitRepoRoot: string | null;
22
+ title: string | null;
23
+ contextMetrics: ContextMetrics | null;
24
+ mode: SessionMode;
25
+ }
26
+ /**
27
+ * Find all active session files for a given CWD.
28
+ * Uses catalog-first strategy: reads from Jacques session index when available,
29
+ * falls back to JSONL parsing for uncataloged sessions.
30
+ *
31
+ * @param cwd Working directory to find sessions for
32
+ * @param catalogMap Pre-loaded session catalog (sessionId -> SessionEntry)
33
+ * @returns Sessions modified within ACTIVE_SESSION_THRESHOLD_MS, sorted by recency
34
+ */
35
+ export declare function findActiveSessionFiles(cwd: string, catalogMap: Map<string, SessionEntry>): Promise<SessionFileInfo[]>;
36
+ /**
37
+ * Find the most recent session file for a CWD (fallback for inactive detection).
38
+ * Uses catalog-first strategy when available.
39
+ *
40
+ * @param cwd Working directory to find sessions for
41
+ * @param catalogMap Pre-loaded session catalog (sessionId -> SessionEntry)
42
+ */
43
+ export declare function findMostRecentSessionFile(cwd: string, catalogMap: Map<string, SessionEntry>): Promise<SessionFileInfo | null>;
44
+ /**
45
+ * Find the N most recently modified session files for a CWD, regardless of activity threshold.
46
+ * Used when there are more running processes than active session files to discover idle sessions.
47
+ *
48
+ * @param cwd Working directory to find sessions for
49
+ * @param catalogMap Pre-loaded session catalog (sessionId -> SessionEntry)
50
+ * @param count Maximum number of files to return
51
+ * @param excludeIds Session IDs to skip (already registered)
52
+ * @returns Up to `count` most recent session files, sorted by recency
53
+ */
54
+ export declare function findRecentSessionFiles(cwd: string, catalogMap: Map<string, SessionEntry>, count: number, excludeIds: Set<string>): Promise<SessionFileInfo[]>;
55
+ //# sourceMappingURL=session-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-discovery.d.ts","sourceRoot":"","sources":["../../src/connection/session-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO/D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,IAAI,EAAE,WAAW,CAAC;CACnB;AA4ED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACpC,OAAO,CAAC,eAAe,EAAE,CAAC,CA0C5B;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACpC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAwCjC;AAED;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACrC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,OAAO,CAAC,eAAe,EAAE,CAAC,CA+C5B"}