@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,637 @@
1
+ /**
2
+ * macOS Window Manager
3
+ *
4
+ * Implements window positioning and tiling using AppleScript.
5
+ * Supports iTerm2, Terminal.app, and PID-based fallback.
6
+ */
7
+ import { exec as execCb } from 'child_process';
8
+ import { promisify } from 'util';
9
+ import { calculateAllSlots } from './smart-layouts.js';
10
+ import { extractItermUuid, parseTerminalKey, runAppleScript } from '../connection/index.js';
11
+ const execAsync = promisify(execCb);
12
+ /**
13
+ * macOS Window Manager using AppleScript
14
+ */
15
+ export class MacOSWindowManager {
16
+ getPlatform() {
17
+ return 'darwin';
18
+ }
19
+ isSupported() {
20
+ return process.platform === 'darwin';
21
+ }
22
+ /**
23
+ * Get all displays using NSScreen via JXA (JavaScript for Automation).
24
+ * Falls back to Finder AppleScript (primary only) if JXA fails.
25
+ */
26
+ async getDisplays() {
27
+ try {
28
+ return await this.getDisplaysViaJXA();
29
+ }
30
+ catch {
31
+ // Fallback: try Finder AppleScript for primary display only
32
+ try {
33
+ return await this.getDisplaysViaFinder();
34
+ }
35
+ catch {
36
+ return [this.defaultDisplay()];
37
+ }
38
+ }
39
+ }
40
+ /**
41
+ * Enumerate all displays via JXA using NSScreen.
42
+ * Returns displays with screen coordinates (top-left origin, Y-down).
43
+ */
44
+ async getDisplaysViaJXA() {
45
+ const jxaScript = `
46
+ ObjC.import('AppKit');
47
+ var screens = $.NSScreen.screens;
48
+ var main = $.NSScreen.mainScreen;
49
+ var mainFrame = main.frame;
50
+ var primaryHeight = mainFrame.size.height;
51
+
52
+ var result = [];
53
+ for (var i = 0; i < screens.count; i++) {
54
+ var s = screens.objectAtIndex(i);
55
+ var f = s.frame;
56
+ var v = s.visibleFrame;
57
+ var isMain = (f.origin.x === mainFrame.origin.x && f.origin.y === mainFrame.origin.y &&
58
+ f.size.width === mainFrame.size.width && f.size.height === mainFrame.size.height);
59
+
60
+ // Convert Cocoa coords (bottom-left origin, Y-up) to screen coords (top-left origin, Y-down)
61
+ var screenX = f.origin.x;
62
+ var screenY = primaryHeight - f.origin.y - f.size.height;
63
+ var visibleX = v.origin.x;
64
+ var visibleY = primaryHeight - v.origin.y - v.size.height;
65
+
66
+ result.push({
67
+ index: i,
68
+ bounds: { x: screenX, y: screenY, width: f.size.width, height: f.size.height },
69
+ workArea: { x: visibleX, y: visibleY, width: v.size.width, height: v.size.height },
70
+ isPrimary: isMain
71
+ });
72
+ }
73
+ JSON.stringify(result);
74
+ `;
75
+ const output = await runAppleScript(jxaScript, 'JavaScript');
76
+ const screens = JSON.parse(output);
77
+ if (!Array.isArray(screens) || screens.length === 0) {
78
+ throw new Error('No screens returned from JXA');
79
+ }
80
+ return screens.map(s => ({
81
+ id: s.isPrimary ? 'primary' : `display-${s.index}`,
82
+ bounds: s.bounds,
83
+ workArea: s.workArea,
84
+ isPrimary: s.isPrimary,
85
+ }));
86
+ }
87
+ /**
88
+ * Fallback: get primary display via Finder AppleScript
89
+ */
90
+ async getDisplaysViaFinder() {
91
+ const script = `
92
+ tell application "Finder"
93
+ get bounds of window of desktop
94
+ end tell
95
+ `;
96
+ const result = await runAppleScript(script);
97
+ const parts = result.split(',').map(s => parseInt(s.trim(), 10));
98
+ if (parts.length === 4) {
99
+ const [x1, y1, x2, y2] = parts;
100
+ return [
101
+ {
102
+ id: 'primary',
103
+ bounds: { x: x1, y: y1, width: x2 - x1, height: y2 - y1 },
104
+ workArea: { x: x1, y: y1, width: x2 - x1, height: y2 - y1 },
105
+ isPrimary: true,
106
+ },
107
+ ];
108
+ }
109
+ return [this.defaultDisplay()];
110
+ }
111
+ defaultDisplay() {
112
+ return {
113
+ id: 'primary',
114
+ bounds: { x: 0, y: 0, width: 1920, height: 1080 },
115
+ workArea: { x: 0, y: 23, width: 1920, height: 1057 },
116
+ isPrimary: true,
117
+ };
118
+ }
119
+ /**
120
+ * Position a terminal window by its terminal key.
121
+ * Handles DISCOVERED: wrapper by extracting the inner terminal type.
122
+ */
123
+ async positionWindow(terminalKey, geometry) {
124
+ // Unwrap DISCOVERED keys to get the actual terminal type
125
+ const parsed = parseTerminalKey(terminalKey);
126
+ const effective = parsed.isDiscovered && parsed.innerKey ? parsed.innerKey : parsed;
127
+ switch (effective.prefix) {
128
+ case 'ITERM':
129
+ return this.positionITerm(effective.value, geometry);
130
+ case 'TTY': {
131
+ const ttyPath = effective.tty || effective.value.split(':')[0];
132
+ // Skip iTerm/Terminal lookup when TTY is ?? or ? (invalid path)
133
+ if (ttyPath !== '??' && ttyPath !== '?') {
134
+ const result = await this.findAndPositionByTTY(ttyPath, geometry);
135
+ if (result.success)
136
+ return result;
137
+ }
138
+ // Fallback: if PID is available, try PID → lsof → TTY → position
139
+ if (effective.pid) {
140
+ return this.resolveAndPositionByPid(effective.pid, geometry);
141
+ }
142
+ return { success: false, error: `TTY not found and no PID fallback: ${ttyPath}` };
143
+ }
144
+ case 'PID':
145
+ // Try PID → lsof → TTY → iTerm (tab-specific) before app-level PID
146
+ if (effective.pid) {
147
+ return this.resolveAndPositionByPid(effective.pid, geometry);
148
+ }
149
+ return this.positionByPid(effective.value, geometry);
150
+ case 'KITTY':
151
+ case 'WEZTERM':
152
+ return { success: false, error: `${effective.prefix} window positioning not supported yet` };
153
+ case 'TERM':
154
+ case 'AUTO':
155
+ case 'UNKNOWN':
156
+ return { success: false, error: `${effective.prefix} window positioning not supported` };
157
+ default:
158
+ return { success: false, error: `Unknown terminal key prefix: ${effective.prefix}` };
159
+ }
160
+ }
161
+ /**
162
+ * Position an iTerm2 window by session UUID
163
+ */
164
+ async positionITerm(itermSessionId, geometry) {
165
+ const uuid = extractItermUuid(itermSessionId);
166
+ const { x, y, width, height } = geometry;
167
+ // AppleScript bounds format: {left, top, right, bottom}
168
+ const bounds = `{${x}, ${y}, ${x + width}, ${y + height}}`;
169
+ const script = `
170
+ tell application "iTerm2"
171
+ repeat with w in windows
172
+ repeat with t in tabs of w
173
+ repeat with s in sessions of t
174
+ if unique ID of s is "${uuid}" then
175
+ -- Select the tab first
176
+ select t
177
+ -- Position the window
178
+ set bounds of w to ${bounds}
179
+ -- Bring to front
180
+ set index of w to 1
181
+ activate
182
+ return "ok"
183
+ end if
184
+ end repeat
185
+ end repeat
186
+ end repeat
187
+ return "not_found"
188
+ end tell
189
+ `;
190
+ try {
191
+ const result = await runAppleScript(script);
192
+ if (result === 'ok') {
193
+ return { success: true };
194
+ }
195
+ return { success: false, error: `Session not found: ${uuid}` };
196
+ }
197
+ catch (err) {
198
+ return { success: false, error: err instanceof Error ? err.message : String(err) };
199
+ }
200
+ }
201
+ /**
202
+ * Position a Terminal.app window by TTY path
203
+ */
204
+ async positionTerminalApp(ttyPath, geometry) {
205
+ // Normalize TTY path - ps returns "ttys012" but Terminal.app expects "/dev/ttys012"
206
+ const normalizedPath = ttyPath.startsWith('/dev/') ? ttyPath : `/dev/${ttyPath}`;
207
+ const { x, y, width, height } = geometry;
208
+ const bounds = `{${x}, ${y}, ${x + width}, ${y + height}}`;
209
+ const script = `
210
+ tell application "Terminal"
211
+ repeat with w in windows
212
+ repeat with t in tabs of w
213
+ if tty of t is "${normalizedPath}" then
214
+ -- Select the tab
215
+ set selected tab of w to t
216
+ -- Position the window
217
+ set bounds of w to ${bounds}
218
+ -- Bring to front
219
+ set index of w to 1
220
+ activate
221
+ return "ok"
222
+ end if
223
+ end repeat
224
+ end repeat
225
+ return "not_found"
226
+ end tell
227
+ `;
228
+ try {
229
+ const result = await runAppleScript(script);
230
+ if (result === 'ok') {
231
+ return { success: true };
232
+ }
233
+ return { success: false, error: `TTY not found: ${ttyPath}` };
234
+ }
235
+ catch (err) {
236
+ return { success: false, error: err instanceof Error ? err.message : String(err) };
237
+ }
238
+ }
239
+ /**
240
+ * Find a TTY across all known terminal apps and position the window.
241
+ * Tries iTerm2 first (most common for discovered sessions), then Terminal.app.
242
+ */
243
+ async findAndPositionByTTY(ttyPath, geometry) {
244
+ const normalizedPath = ttyPath.startsWith('/dev/') ? ttyPath : `/dev/${ttyPath}`;
245
+ const { x, y, width, height } = geometry;
246
+ const bounds = `{${x}, ${y}, ${x + width}, ${y + height}}`;
247
+ // Try iTerm2 first
248
+ try {
249
+ const itermScript = `
250
+ tell application "iTerm2"
251
+ repeat with w in windows
252
+ repeat with t in tabs of w
253
+ repeat with s in sessions of t
254
+ if tty of s contains "${normalizedPath}" then
255
+ select t
256
+ set bounds of w to ${bounds}
257
+ set index of w to 1
258
+ activate
259
+ return "ok"
260
+ end if
261
+ end repeat
262
+ end repeat
263
+ end repeat
264
+ return "not_found"
265
+ end tell
266
+ `;
267
+ const result = await runAppleScript(itermScript);
268
+ if (result === 'ok') {
269
+ return { success: true };
270
+ }
271
+ }
272
+ catch {
273
+ // iTerm2 not running or errored, fall through to Terminal.app
274
+ }
275
+ // Try Terminal.app
276
+ return this.positionTerminalApp(ttyPath, geometry);
277
+ }
278
+ /**
279
+ * Find a TTY across all known terminal apps and return window bounds.
280
+ * Tries iTerm2 first, then Terminal.app.
281
+ */
282
+ async findBoundsByTTY(ttyPath) {
283
+ const normalizedPath = ttyPath.startsWith('/dev/') ? ttyPath : `/dev/${ttyPath}`;
284
+ // Try iTerm2 first
285
+ try {
286
+ const itermScript = `
287
+ tell application "iTerm2"
288
+ repeat with w in windows
289
+ repeat with t in tabs of w
290
+ repeat with s in sessions of t
291
+ if tty of s contains "${normalizedPath}" then
292
+ set b to bounds of w
293
+ return (item 1 of b as text) & "," & (item 2 of b as text) & "," & (item 3 of b as text) & "," & (item 4 of b as text)
294
+ end if
295
+ end repeat
296
+ end repeat
297
+ end repeat
298
+ return ""
299
+ end tell
300
+ `;
301
+ const result = await runAppleScript(itermScript);
302
+ if (result) {
303
+ const parts = result.split(',').map(s => parseInt(s.trim(), 10));
304
+ if (parts.length === 4) {
305
+ const [x1, y1, x2, y2] = parts;
306
+ return { x: x1, y: y1, width: x2 - x1, height: y2 - y1 };
307
+ }
308
+ }
309
+ }
310
+ catch {
311
+ // iTerm2 not running or errored, fall through to Terminal.app
312
+ }
313
+ // Try Terminal.app
314
+ try {
315
+ const terminalScript = `
316
+ tell application "Terminal"
317
+ repeat with w in windows
318
+ repeat with t in tabs of w
319
+ if tty of t is "${normalizedPath}" then
320
+ set b to bounds of w
321
+ return (item 1 of b as text) & "," & (item 2 of b as text) & "," & (item 3 of b as text) & "," & (item 4 of b as text)
322
+ end if
323
+ end repeat
324
+ end repeat
325
+ return ""
326
+ end tell
327
+ `;
328
+ const result = await runAppleScript(terminalScript);
329
+ if (result) {
330
+ const parts = result.split(',').map(s => parseInt(s.trim(), 10));
331
+ if (parts.length === 4) {
332
+ const [x1, y1, x2, y2] = parts;
333
+ return { x: x1, y: y1, width: x2 - x1, height: y2 - y1 };
334
+ }
335
+ }
336
+ }
337
+ catch {
338
+ // Terminal.app not running or errored
339
+ }
340
+ return null;
341
+ }
342
+ /**
343
+ * Position a window by process ID using System Events
344
+ * Note: This is app-level only (cannot select specific tabs)
345
+ */
346
+ async positionByPid(pid, geometry) {
347
+ const { x, y, width, height } = geometry;
348
+ // First, get the app name from the PID
349
+ const getAppScript = `
350
+ tell application "System Events"
351
+ set theProcess to first process whose unix id is ${pid}
352
+ return name of theProcess
353
+ end tell
354
+ `;
355
+ try {
356
+ const appName = await runAppleScript(getAppScript);
357
+ // Now position the app's frontmost window
358
+ const positionScript = `
359
+ tell application "${appName}"
360
+ if (count of windows) > 0 then
361
+ set bounds of front window to {${x}, ${y}, ${x + width}, ${y + height}}
362
+ activate
363
+ end if
364
+ end tell
365
+ `;
366
+ await runAppleScript(positionScript);
367
+ return { success: true };
368
+ }
369
+ catch (err) {
370
+ return { success: false, error: err instanceof Error ? err.message : String(err) };
371
+ }
372
+ }
373
+ /**
374
+ * Resolve a TTY device path from a PID using lsof.
375
+ * Useful when ps returns ?? but the process has a controlling TTY.
376
+ */
377
+ async resolveTtyFromPid(pid) {
378
+ try {
379
+ const { stdout } = await execAsync(`lsof -p ${pid} 2>/dev/null | awk '$4 ~ /^[0-9]+u?$/ && $8 ~ /\\/dev\\/ttys/ {print $8; exit}'`, { timeout: 3000 });
380
+ const tty = stdout.trim();
381
+ return (tty && tty.startsWith('/dev/')) ? tty : null;
382
+ }
383
+ catch {
384
+ return null;
385
+ }
386
+ }
387
+ /**
388
+ * Resolve a PID to a positioned window via TTY lookup with PID fallback.
389
+ * Chain: PID → lsof → TTY → iTerm/Terminal.app (tab-specific) → PID app-level
390
+ */
391
+ async resolveAndPositionByPid(pid, geometry) {
392
+ // Step 1: Try PID → TTY → iTerm/Terminal.app session (tab-specific positioning)
393
+ const resolvedTty = await this.resolveTtyFromPid(pid);
394
+ if (resolvedTty) {
395
+ const result = await this.findAndPositionByTTY(resolvedTty, geometry);
396
+ if (result.success)
397
+ return result;
398
+ }
399
+ // Step 2: Fall back to app-level PID positioning
400
+ return this.positionByPid(String(pid), geometry);
401
+ }
402
+ /**
403
+ * Resolve a PID to window bounds via TTY lookup.
404
+ * Chain: PID → lsof → TTY → findBoundsByTTY
405
+ */
406
+ async resolveBoundsByPid(pid) {
407
+ const resolvedTty = await this.resolveTtyFromPid(pid);
408
+ if (resolvedTty) {
409
+ return this.findBoundsByTTY(resolvedTty);
410
+ }
411
+ return null;
412
+ }
413
+ /**
414
+ * Position the browser window showing the Jacques GUI.
415
+ * Searches for a window with "Jacques" in its title across common browsers.
416
+ */
417
+ async positionBrowserWindow(geometry) {
418
+ const { x, y, width, height } = geometry;
419
+ const browsers = [
420
+ 'Google Chrome', 'Arc', 'Safari', 'Firefox',
421
+ 'Microsoft Edge', 'Brave Browser', 'Chromium',
422
+ ];
423
+ for (const browser of browsers) {
424
+ const script = `
425
+ tell application "System Events"
426
+ if exists process "${browser}" then
427
+ tell process "${browser}"
428
+ repeat with w in windows
429
+ if name of w contains "Jacques" then
430
+ tell application "${browser}"
431
+ set bounds of front window to {${x}, ${y}, ${x + width}, ${y + height}}
432
+ activate
433
+ end tell
434
+ return "ok"
435
+ end if
436
+ end repeat
437
+ end tell
438
+ end if
439
+ end tell
440
+ return "not_found"
441
+ `;
442
+ try {
443
+ const result = await runAppleScript(script);
444
+ if (result === 'ok') {
445
+ return { success: true };
446
+ }
447
+ }
448
+ catch {
449
+ continue;
450
+ }
451
+ }
452
+ return { success: false, error: 'Browser window with Jacques GUI not found' };
453
+ }
454
+ /**
455
+ * Get current bounds of a terminal window.
456
+ * Returns null if bounds cannot be determined.
457
+ * Handles DISCOVERED: wrapper by extracting the inner terminal type.
458
+ */
459
+ async getWindowBounds(terminalKey) {
460
+ // Unwrap DISCOVERED keys to get the actual terminal type
461
+ const parsed = parseTerminalKey(terminalKey);
462
+ const effective = parsed.isDiscovered && parsed.innerKey ? parsed.innerKey : parsed;
463
+ try {
464
+ switch (effective.prefix) {
465
+ case 'ITERM': {
466
+ const uuid = extractItermUuid(effective.value);
467
+ const script = `
468
+ tell application "iTerm2"
469
+ repeat with w in windows
470
+ repeat with t in tabs of w
471
+ repeat with s in sessions of t
472
+ if unique ID of s is "${uuid}" then
473
+ set b to bounds of w
474
+ return (item 1 of b as text) & "," & (item 2 of b as text) & "," & (item 3 of b as text) & "," & (item 4 of b as text)
475
+ end if
476
+ end repeat
477
+ end repeat
478
+ end repeat
479
+ return ""
480
+ end tell
481
+ `;
482
+ const result = await runAppleScript(script);
483
+ if (!result)
484
+ return null;
485
+ const parts = result.split(',').map(s => parseInt(s.trim(), 10));
486
+ if (parts.length === 4) {
487
+ const [x1, y1, x2, y2] = parts;
488
+ return { x: x1, y: y1, width: x2 - x1, height: y2 - y1 };
489
+ }
490
+ return null;
491
+ }
492
+ case 'TTY': {
493
+ // For TTY keys, strip any PID suffix to get the tty path
494
+ const ttyPath = effective.tty || effective.value.split(':')[0];
495
+ // Skip lookup when TTY is ?? or ? (invalid path)
496
+ if (ttyPath !== '??' && ttyPath !== '?') {
497
+ const bounds = await this.findBoundsByTTY(ttyPath);
498
+ if (bounds)
499
+ return bounds;
500
+ }
501
+ // Fallback: if PID is available, try PID → lsof → TTY → bounds
502
+ if (effective.pid) {
503
+ return this.resolveBoundsByPid(effective.pid);
504
+ }
505
+ return null;
506
+ }
507
+ case 'PID': {
508
+ // Try PID → lsof → TTY → bounds (tab-specific)
509
+ if (effective.pid) {
510
+ return this.resolveBoundsByPid(effective.pid);
511
+ }
512
+ return null;
513
+ }
514
+ default:
515
+ return null;
516
+ }
517
+ }
518
+ catch {
519
+ return null;
520
+ }
521
+ }
522
+ /**
523
+ * Detect which display contains the center point of the given bounds.
524
+ * Returns the matching display, or null if no display contains the center.
525
+ */
526
+ detectDisplayForBounds(bounds, displays) {
527
+ const centerX = bounds.x + bounds.width / 2;
528
+ const centerY = bounds.y + bounds.height / 2;
529
+ for (const display of displays) {
530
+ const db = display.bounds;
531
+ if (centerX >= db.x &&
532
+ centerX < db.x + db.width &&
533
+ centerY >= db.y &&
534
+ centerY < db.y + db.height) {
535
+ return display;
536
+ }
537
+ }
538
+ return null;
539
+ }
540
+ /**
541
+ * Auto-detect the best display for tiling based on where windows currently are.
542
+ * Uses majority vote: tiles on the display with the most windows.
543
+ */
544
+ async detectTargetDisplay(terminalKeys, displays) {
545
+ if (displays.length <= 1)
546
+ return null; // No point detecting with single display
547
+ const displayVotes = new Map();
548
+ for (const key of terminalKeys) {
549
+ const bounds = await this.getWindowBounds(key);
550
+ if (!bounds)
551
+ continue;
552
+ const display = this.detectDisplayForBounds(bounds, displays);
553
+ if (display) {
554
+ displayVotes.set(display.id, (displayVotes.get(display.id) || 0) + 1);
555
+ }
556
+ }
557
+ if (displayVotes.size === 0)
558
+ return null;
559
+ // Find display with most votes
560
+ let bestId = '';
561
+ let bestCount = 0;
562
+ for (const [id, count] of displayVotes) {
563
+ if (count > bestCount) {
564
+ bestId = id;
565
+ bestCount = count;
566
+ }
567
+ }
568
+ return displays.find(d => d.id === bestId) || null;
569
+ }
570
+ /**
571
+ * Get the target display for a set of terminal windows using majority vote.
572
+ * Returns the display with the most terminal windows, or primary display as fallback.
573
+ */
574
+ async getTargetDisplayForTerminals(terminalKeys) {
575
+ const displays = await this.getDisplays();
576
+ if (displays.length <= 1)
577
+ return displays[0] || null;
578
+ const detected = await this.detectTargetDisplay(terminalKeys, displays);
579
+ return detected || displays.find(d => d.isPrimary) || displays[0];
580
+ }
581
+ /**
582
+ * Tile multiple terminal windows
583
+ */
584
+ async tileWindows(terminalKeys, layout, display) {
585
+ if (terminalKeys.length === 0) {
586
+ return { success: true, positioned: 0, total: 0 };
587
+ }
588
+ // Get display info
589
+ const displays = await this.getDisplays();
590
+ // Determine target display:
591
+ // 1. Explicit display parameter
592
+ // 2. Auto-detect from current window positions (majority vote)
593
+ // 3. Primary display fallback
594
+ let targetDisplay = display || null;
595
+ if (!targetDisplay && displays.length > 1) {
596
+ targetDisplay = await this.detectTargetDisplay(terminalKeys, displays);
597
+ }
598
+ if (!targetDisplay) {
599
+ targetDisplay = displays.find(d => d.isPrimary) || displays[0];
600
+ }
601
+ if (!targetDisplay) {
602
+ return {
603
+ success: false,
604
+ positioned: 0,
605
+ total: terminalKeys.length,
606
+ errors: ['No display available'],
607
+ };
608
+ }
609
+ // Use smart layout engine for all window counts (consistent with tile state)
610
+ const allSlots = calculateAllSlots(targetDisplay.workArea, terminalKeys.length);
611
+ const errors = [];
612
+ let positioned = 0;
613
+ // Position each window
614
+ for (let i = 0; i < terminalKeys.length; i++) {
615
+ const terminalKey = terminalKeys[i];
616
+ const geometry = allSlots[i].geometry;
617
+ const result = await this.positionWindow(terminalKey, geometry);
618
+ if (result.success) {
619
+ positioned++;
620
+ }
621
+ else if (result.error) {
622
+ errors.push(`${terminalKey}: ${result.error}`);
623
+ }
624
+ // Small delay between windows to let AppleScript complete
625
+ if (i < terminalKeys.length - 1) {
626
+ await new Promise(resolve => setTimeout(resolve, 100));
627
+ }
628
+ }
629
+ return {
630
+ success: positioned === terminalKeys.length,
631
+ positioned,
632
+ total: terminalKeys.length,
633
+ errors: errors.length > 0 ? errors : undefined,
634
+ };
635
+ }
636
+ }
637
+ //# sourceMappingURL=macos-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macos-manager.js","sourceRoot":"","sources":["../../src/window-manager/macos-manager.ts"],"names":[],"mappings":"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"}