@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.
- package/dist/config/config.d.ts +34 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +32 -0
- package/dist/config/config.js.map +1 -0
- package/dist/connection/applescript.d.ts +46 -0
- package/dist/connection/applescript.d.ts.map +1 -0
- package/dist/connection/applescript.js +62 -0
- package/dist/connection/applescript.js.map +1 -0
- package/dist/connection/applescript.test.d.ts +5 -0
- package/dist/connection/applescript.test.d.ts.map +1 -0
- package/dist/connection/applescript.test.js +64 -0
- package/dist/connection/applescript.test.js.map +1 -0
- package/dist/connection/constants.d.ts +88 -0
- package/dist/connection/constants.d.ts.map +1 -0
- package/dist/connection/constants.js +110 -0
- package/dist/connection/constants.js.map +1 -0
- package/dist/connection/git-info.d.ts +30 -0
- package/dist/connection/git-info.d.ts.map +1 -0
- package/dist/connection/git-info.js +52 -0
- package/dist/connection/git-info.js.map +1 -0
- package/dist/connection/git-info.test.d.ts +5 -0
- package/dist/connection/git-info.test.d.ts.map +1 -0
- package/dist/connection/git-info.test.js +35 -0
- package/dist/connection/git-info.test.js.map +1 -0
- package/dist/connection/index.d.ts +19 -0
- package/dist/connection/index.d.ts.map +1 -0
- package/dist/connection/index.js +36 -0
- package/dist/connection/index.js.map +1 -0
- package/dist/connection/process-detection.d.ts +58 -0
- package/dist/connection/process-detection.d.ts.map +1 -0
- package/dist/connection/process-detection.js +239 -0
- package/dist/connection/process-detection.js.map +1 -0
- package/dist/connection/process-detection.test.d.ts +5 -0
- package/dist/connection/process-detection.test.d.ts.map +1 -0
- package/dist/connection/process-detection.test.js +43 -0
- package/dist/connection/process-detection.test.js.map +1 -0
- package/dist/connection/session-discovery.d.ts +55 -0
- package/dist/connection/session-discovery.d.ts.map +1 -0
- package/dist/connection/session-discovery.js +311 -0
- package/dist/connection/session-discovery.js.map +1 -0
- package/dist/connection/terminal-key.d.ts +126 -0
- package/dist/connection/terminal-key.d.ts.map +1 -0
- package/dist/connection/terminal-key.js +271 -0
- package/dist/connection/terminal-key.js.map +1 -0
- package/dist/connection/terminal-key.test.d.ts +5 -0
- package/dist/connection/terminal-key.test.d.ts.map +1 -0
- package/dist/connection/terminal-key.test.js +221 -0
- package/dist/connection/terminal-key.test.js.map +1 -0
- package/dist/connection/worktree.d.ts +114 -0
- package/dist/connection/worktree.d.ts.map +1 -0
- package/dist/connection/worktree.js +320 -0
- package/dist/connection/worktree.js.map +1 -0
- package/dist/connection/worktree.test.d.ts +5 -0
- package/dist/connection/worktree.test.d.ts.map +1 -0
- package/dist/connection/worktree.test.js +113 -0
- package/dist/connection/worktree.test.js.map +1 -0
- package/dist/focus-watcher.d.ts +51 -0
- package/dist/focus-watcher.d.ts.map +1 -0
- package/dist/focus-watcher.js +169 -0
- package/dist/focus-watcher.js.map +1 -0
- package/dist/handlers/event-handler.d.ts +93 -0
- package/dist/handlers/event-handler.d.ts.map +1 -0
- package/dist/handlers/event-handler.js +196 -0
- package/dist/handlers/event-handler.js.map +1 -0
- package/dist/handlers/event-handler.test.d.ts +5 -0
- package/dist/handlers/event-handler.test.d.ts.map +1 -0
- package/dist/handlers/event-handler.test.js +305 -0
- package/dist/handlers/event-handler.test.js.map +1 -0
- package/dist/handlers/session-handler.d.ts +23 -0
- package/dist/handlers/session-handler.d.ts.map +1 -0
- package/dist/handlers/session-handler.js +104 -0
- package/dist/handlers/session-handler.js.map +1 -0
- package/dist/handlers/session-handler.test.d.ts +5 -0
- package/dist/handlers/session-handler.test.d.ts.map +1 -0
- package/dist/handlers/session-handler.test.js +89 -0
- package/dist/handlers/session-handler.test.js.map +1 -0
- package/dist/handlers/settings-handler.d.ts +32 -0
- package/dist/handlers/settings-handler.d.ts.map +1 -0
- package/dist/handlers/settings-handler.js +127 -0
- package/dist/handlers/settings-handler.js.map +1 -0
- package/dist/handlers/settings-handler.test.d.ts +5 -0
- package/dist/handlers/settings-handler.test.d.ts.map +1 -0
- package/dist/handlers/settings-handler.test.js +105 -0
- package/dist/handlers/settings-handler.test.js.map +1 -0
- package/dist/handlers/window-handler.d.ts +30 -0
- package/dist/handlers/window-handler.d.ts.map +1 -0
- package/dist/handlers/window-handler.js +486 -0
- package/dist/handlers/window-handler.js.map +1 -0
- package/dist/handlers/window-handler.test.d.ts +8 -0
- package/dist/handlers/window-handler.test.d.ts.map +1 -0
- package/dist/handlers/window-handler.test.js +167 -0
- package/dist/handlers/window-handler.test.js.map +1 -0
- package/dist/handlers/worktree-handler.d.ts +28 -0
- package/dist/handlers/worktree-handler.d.ts.map +1 -0
- package/dist/handlers/worktree-handler.js +268 -0
- package/dist/handlers/worktree-handler.js.map +1 -0
- package/dist/handlers/worktree-handler.test.d.ts +8 -0
- package/dist/handlers/worktree-handler.test.d.ts.map +1 -0
- package/dist/handlers/worktree-handler.test.js +118 -0
- package/dist/handlers/worktree-handler.test.js.map +1 -0
- package/dist/handlers/ws-utils.d.ts +12 -0
- package/dist/handlers/ws-utils.d.ts.map +1 -0
- package/dist/handlers/ws-utils.js +16 -0
- package/dist/handlers/ws-utils.js.map +1 -0
- package/dist/http-api.d.ts +26 -0
- package/dist/http-api.d.ts.map +1 -0
- package/dist/http-api.js +148 -0
- package/dist/http-api.js.map +1 -0
- package/dist/logger.d.ts +42 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +147 -0
- package/dist/logger.js.map +1 -0
- package/dist/logging/logger-factory.d.ts +51 -0
- package/dist/logging/logger-factory.d.ts.map +1 -0
- package/dist/logging/logger-factory.js +59 -0
- package/dist/logging/logger-factory.js.map +1 -0
- package/dist/mcp/search-tool.d.ts +65 -0
- package/dist/mcp/search-tool.d.ts.map +1 -0
- package/dist/mcp/search-tool.js +176 -0
- package/dist/mcp/search-tool.js.map +1 -0
- package/dist/mcp/server.d.ts +9 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +152 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/process-scanner.d.ts +96 -0
- package/dist/process-scanner.d.ts.map +1 -0
- package/dist/process-scanner.js +194 -0
- package/dist/process-scanner.js.map +1 -0
- package/dist/routes/__tests__/archive-routes.test.d.ts +5 -0
- package/dist/routes/__tests__/archive-routes.test.d.ts.map +1 -0
- package/dist/routes/__tests__/archive-routes.test.js +158 -0
- package/dist/routes/__tests__/archive-routes.test.js.map +1 -0
- package/dist/routes/__tests__/config-routes.test.d.ts +5 -0
- package/dist/routes/__tests__/config-routes.test.d.ts.map +1 -0
- package/dist/routes/__tests__/config-routes.test.js +112 -0
- package/dist/routes/__tests__/config-routes.test.js.map +1 -0
- package/dist/routes/__tests__/http-utils.test.d.ts +5 -0
- package/dist/routes/__tests__/http-utils.test.d.ts.map +1 -0
- package/dist/routes/__tests__/http-utils.test.js +102 -0
- package/dist/routes/__tests__/http-utils.test.js.map +1 -0
- package/dist/routes/__tests__/notification-routes.test.d.ts +5 -0
- package/dist/routes/__tests__/notification-routes.test.d.ts.map +1 -0
- package/dist/routes/__tests__/notification-routes.test.js +91 -0
- package/dist/routes/__tests__/notification-routes.test.js.map +1 -0
- package/dist/routes/__tests__/project-routes.test.d.ts +5 -0
- package/dist/routes/__tests__/project-routes.test.d.ts.map +1 -0
- package/dist/routes/__tests__/project-routes.test.js +168 -0
- package/dist/routes/__tests__/project-routes.test.js.map +1 -0
- package/dist/routes/__tests__/session-routes.test.d.ts +5 -0
- package/dist/routes/__tests__/session-routes.test.d.ts.map +1 -0
- package/dist/routes/__tests__/session-routes.test.js +198 -0
- package/dist/routes/__tests__/session-routes.test.js.map +1 -0
- package/dist/routes/__tests__/source-routes.test.d.ts +5 -0
- package/dist/routes/__tests__/source-routes.test.d.ts.map +1 -0
- package/dist/routes/__tests__/source-routes.test.js +142 -0
- package/dist/routes/__tests__/source-routes.test.js.map +1 -0
- package/dist/routes/__tests__/sync-routes.test.d.ts +5 -0
- package/dist/routes/__tests__/sync-routes.test.d.ts.map +1 -0
- package/dist/routes/__tests__/sync-routes.test.js +77 -0
- package/dist/routes/__tests__/sync-routes.test.js.map +1 -0
- package/dist/routes/__tests__/test-helpers.d.ts +47 -0
- package/dist/routes/__tests__/test-helpers.d.ts.map +1 -0
- package/dist/routes/__tests__/test-helpers.js +97 -0
- package/dist/routes/__tests__/test-helpers.js.map +1 -0
- package/dist/routes/archive-routes.d.ts +15 -0
- package/dist/routes/archive-routes.d.ts.map +1 -0
- package/dist/routes/archive-routes.js +181 -0
- package/dist/routes/archive-routes.js.map +1 -0
- package/dist/routes/claude-routes.d.ts +9 -0
- package/dist/routes/claude-routes.d.ts.map +1 -0
- package/dist/routes/claude-routes.js +47 -0
- package/dist/routes/claude-routes.js.map +1 -0
- package/dist/routes/config-routes.d.ts +9 -0
- package/dist/routes/config-routes.d.ts.map +1 -0
- package/dist/routes/config-routes.js +56 -0
- package/dist/routes/config-routes.js.map +1 -0
- package/dist/routes/config-store.d.ts +41 -0
- package/dist/routes/config-store.d.ts.map +1 -0
- package/dist/routes/config-store.js +52 -0
- package/dist/routes/config-store.js.map +1 -0
- package/dist/routes/http-utils.d.ts +32 -0
- package/dist/routes/http-utils.d.ts.map +1 -0
- package/dist/routes/http-utils.js +123 -0
- package/dist/routes/http-utils.js.map +1 -0
- package/dist/routes/index.d.ts +19 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +17 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/notification-routes.d.ts +10 -0
- package/dist/routes/notification-routes.d.ts.map +1 -0
- package/dist/routes/notification-routes.js +64 -0
- package/dist/routes/notification-routes.js.map +1 -0
- package/dist/routes/project-routes.d.ts +22 -0
- package/dist/routes/project-routes.d.ts.map +1 -0
- package/dist/routes/project-routes.js +415 -0
- package/dist/routes/project-routes.js.map +1 -0
- package/dist/routes/session-routes.d.ts +18 -0
- package/dist/routes/session-routes.d.ts.map +1 -0
- package/dist/routes/session-routes.js +609 -0
- package/dist/routes/session-routes.js.map +1 -0
- package/dist/routes/source-routes.d.ts +12 -0
- package/dist/routes/source-routes.d.ts.map +1 -0
- package/dist/routes/source-routes.js +119 -0
- package/dist/routes/source-routes.js.map +1 -0
- package/dist/routes/static-routes.d.ts +12 -0
- package/dist/routes/static-routes.d.ts.map +1 -0
- package/dist/routes/static-routes.js +52 -0
- package/dist/routes/static-routes.js.map +1 -0
- package/dist/routes/sync-routes.d.ts +9 -0
- package/dist/routes/sync-routes.d.ts.map +1 -0
- package/dist/routes/sync-routes.js +78 -0
- package/dist/routes/sync-routes.js.map +1 -0
- package/dist/routes/tile-routes.d.ts +10 -0
- package/dist/routes/tile-routes.d.ts.map +1 -0
- package/dist/routes/tile-routes.js +108 -0
- package/dist/routes/tile-routes.js.map +1 -0
- package/dist/routes/types.d.ts +17 -0
- package/dist/routes/types.d.ts.map +1 -0
- package/dist/routes/types.js +5 -0
- package/dist/routes/types.js.map +1 -0
- package/dist/routes/usage-routes.d.ts +8 -0
- package/dist/routes/usage-routes.d.ts.map +1 -0
- package/dist/routes/usage-routes.js +18 -0
- package/dist/routes/usage-routes.js.map +1 -0
- package/dist/server.d.ts +8 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +173 -0
- package/dist/server.js.map +1 -0
- package/dist/services/branch-divergence-service.d.ts +48 -0
- package/dist/services/branch-divergence-service.d.ts.map +1 -0
- package/dist/services/branch-divergence-service.js +156 -0
- package/dist/services/branch-divergence-service.js.map +1 -0
- package/dist/services/broadcast-service.d.ts +68 -0
- package/dist/services/broadcast-service.d.ts.map +1 -0
- package/dist/services/broadcast-service.js +78 -0
- package/dist/services/broadcast-service.js.map +1 -0
- package/dist/services/broadcast-service.test.d.ts +5 -0
- package/dist/services/broadcast-service.test.d.ts.map +1 -0
- package/dist/services/broadcast-service.test.js +130 -0
- package/dist/services/broadcast-service.test.js.map +1 -0
- package/dist/services/chat-service.d.ts +72 -0
- package/dist/services/chat-service.d.ts.map +1 -0
- package/dist/services/chat-service.js +342 -0
- package/dist/services/chat-service.js.map +1 -0
- package/dist/services/chat-system-prompt.d.ts +14 -0
- package/dist/services/chat-system-prompt.d.ts.map +1 -0
- package/dist/services/chat-system-prompt.js +68 -0
- package/dist/services/chat-system-prompt.js.map +1 -0
- package/dist/services/notification-service.d.ts +115 -0
- package/dist/services/notification-service.d.ts.map +1 -0
- package/dist/services/notification-service.js +424 -0
- package/dist/services/notification-service.js.map +1 -0
- package/dist/services/notification-service.test.d.ts +5 -0
- package/dist/services/notification-service.test.d.ts.map +1 -0
- package/dist/services/notification-service.test.js +918 -0
- package/dist/services/notification-service.test.js.map +1 -0
- package/dist/session/cleanup-service.d.ts +51 -0
- package/dist/session/cleanup-service.d.ts.map +1 -0
- package/dist/session/cleanup-service.js +98 -0
- package/dist/session/cleanup-service.js.map +1 -0
- package/dist/session/cleanup-service.test.d.ts +5 -0
- package/dist/session/cleanup-service.test.d.ts.map +1 -0
- package/dist/session/cleanup-service.test.js +121 -0
- package/dist/session/cleanup-service.test.js.map +1 -0
- package/dist/session/process-monitor.d.ts +79 -0
- package/dist/session/process-monitor.d.ts.map +1 -0
- package/dist/session/process-monitor.js +270 -0
- package/dist/session/process-monitor.js.map +1 -0
- package/dist/session/process-monitor.test.d.ts +5 -0
- package/dist/session/process-monitor.test.d.ts.map +1 -0
- package/dist/session/process-monitor.test.js +367 -0
- package/dist/session/process-monitor.test.js.map +1 -0
- package/dist/session/session-factory.d.ts +29 -0
- package/dist/session/session-factory.d.ts.map +1 -0
- package/dist/session/session-factory.js +123 -0
- package/dist/session/session-factory.js.map +1 -0
- package/dist/session/session-factory.test.d.ts +5 -0
- package/dist/session/session-factory.test.d.ts.map +1 -0
- package/dist/session/session-factory.test.js +299 -0
- package/dist/session/session-factory.test.js.map +1 -0
- package/dist/session-registry.d.ts +168 -0
- package/dist/session-registry.d.ts.map +1 -0
- package/dist/session-registry.js +626 -0
- package/dist/session-registry.js.map +1 -0
- package/dist/session-registry.test.d.ts +5 -0
- package/dist/session-registry.test.d.ts.map +1 -0
- package/dist/session-registry.test.js +582 -0
- package/dist/session-registry.test.js.map +1 -0
- package/dist/start-server.d.ts +31 -0
- package/dist/start-server.d.ts.map +1 -0
- package/dist/start-server.js +408 -0
- package/dist/start-server.js.map +1 -0
- package/dist/terminal-activator.d.ts +29 -0
- package/dist/terminal-activator.d.ts.map +1 -0
- package/dist/terminal-activator.js +264 -0
- package/dist/terminal-activator.js.map +1 -0
- package/dist/terminal-activator.test.d.ts +9 -0
- package/dist/terminal-activator.test.d.ts.map +1 -0
- package/dist/terminal-activator.test.js +95 -0
- package/dist/terminal-activator.test.js.map +1 -0
- package/dist/terminal-launcher.d.ts +51 -0
- package/dist/terminal-launcher.d.ts.map +1 -0
- package/dist/terminal-launcher.js +298 -0
- package/dist/terminal-launcher.js.map +1 -0
- package/dist/terminal-launcher.test.d.ts +8 -0
- package/dist/terminal-launcher.test.d.ts.map +1 -0
- package/dist/terminal-launcher.test.js +222 -0
- package/dist/terminal-launcher.test.js.map +1 -0
- package/dist/types.d.ts +796 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -0
- package/dist/unix-socket.d.ts +68 -0
- package/dist/unix-socket.d.ts.map +1 -0
- package/dist/unix-socket.js +180 -0
- package/dist/unix-socket.js.map +1 -0
- package/dist/usage-limits.d.ts +13 -0
- package/dist/usage-limits.d.ts.map +1 -0
- package/dist/usage-limits.js +112 -0
- package/dist/usage-limits.js.map +1 -0
- package/dist/watchers/handoff-watcher.d.ts +74 -0
- package/dist/watchers/handoff-watcher.d.ts.map +1 -0
- package/dist/watchers/handoff-watcher.js +124 -0
- package/dist/watchers/handoff-watcher.js.map +1 -0
- package/dist/watchers/handoff-watcher.test.d.ts +8 -0
- package/dist/watchers/handoff-watcher.test.d.ts.map +1 -0
- package/dist/watchers/handoff-watcher.test.js +142 -0
- package/dist/watchers/handoff-watcher.test.js.map +1 -0
- package/dist/websocket.d.ts +107 -0
- package/dist/websocket.d.ts.map +1 -0
- package/dist/websocket.js +268 -0
- package/dist/websocket.js.map +1 -0
- package/dist/window-manager/index.d.ts +28 -0
- package/dist/window-manager/index.d.ts.map +1 -0
- package/dist/window-manager/index.js +56 -0
- package/dist/window-manager/index.js.map +1 -0
- package/dist/window-manager/layouts.d.ts +42 -0
- package/dist/window-manager/layouts.d.ts.map +1 -0
- package/dist/window-manager/layouts.js +133 -0
- package/dist/window-manager/layouts.js.map +1 -0
- package/dist/window-manager/linux-manager.d.ts +45 -0
- package/dist/window-manager/linux-manager.d.ts.map +1 -0
- package/dist/window-manager/linux-manager.js +299 -0
- package/dist/window-manager/linux-manager.js.map +1 -0
- package/dist/window-manager/macos-manager.d.ts +103 -0
- package/dist/window-manager/macos-manager.d.ts.map +1 -0
- package/dist/window-manager/macos-manager.js +637 -0
- package/dist/window-manager/macos-manager.js.map +1 -0
- package/dist/window-manager/smart-layouts.d.ts +116 -0
- package/dist/window-manager/smart-layouts.d.ts.map +1 -0
- package/dist/window-manager/smart-layouts.js +188 -0
- package/dist/window-manager/smart-layouts.js.map +1 -0
- package/dist/window-manager/smart-layouts.test.d.ts +8 -0
- package/dist/window-manager/smart-layouts.test.d.ts.map +1 -0
- package/dist/window-manager/smart-layouts.test.js +311 -0
- package/dist/window-manager/smart-layouts.test.js.map +1 -0
- package/dist/window-manager/tile-state.d.ts +87 -0
- package/dist/window-manager/tile-state.d.ts.map +1 -0
- package/dist/window-manager/tile-state.js +136 -0
- package/dist/window-manager/tile-state.js.map +1 -0
- package/dist/window-manager/tile-state.test.d.ts +8 -0
- package/dist/window-manager/tile-state.test.d.ts.map +1 -0
- package/dist/window-manager/tile-state.test.js +179 -0
- package/dist/window-manager/tile-state.test.js.map +1 -0
- package/dist/window-manager/types.d.ts +104 -0
- package/dist/window-manager/types.d.ts.map +1 -0
- package/dist/window-manager/types.js +8 -0
- package/dist/window-manager/types.js.map +1 -0
- package/dist/window-manager/windows-manager.d.ts +44 -0
- package/dist/window-manager/windows-manager.d.ts.map +1 -0
- package/dist/window-manager/windows-manager.js +281 -0
- package/dist/window-manager/windows-manager.js.map +1 -0
- package/dist/window-manager/windows-manager.test.d.ts +8 -0
- package/dist/window-manager/windows-manager.test.d.ts.map +1 -0
- package/dist/window-manager/windows-manager.test.js +183 -0
- package/dist/window-manager/windows-manager.test.js.map +1 -0
- package/gui-dist/assets/index-BmYIHRYe.js +142 -0
- package/gui-dist/assets/index-D_N5RH8O.css +1 -0
- package/gui-dist/assets/vendor-icons-ByXNrcwf.js +336 -0
- package/gui-dist/assets/vendor-markdown-DWPYwU1x.js +22 -0
- package/gui-dist/assets/vendor-react-CpILBTDM.js +59 -0
- package/gui-dist/index.html +17 -0
- package/gui-dist/jacsub.png +0 -0
- package/package.json +67 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings Handler
|
|
3
|
+
*
|
|
4
|
+
* Handles WebSocket requests for settings management:
|
|
5
|
+
* - toggle_autocompact
|
|
6
|
+
* - update_notification_settings
|
|
7
|
+
* - get_handoff_context
|
|
8
|
+
*/
|
|
9
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';
|
|
10
|
+
import { dirname } from 'path';
|
|
11
|
+
import { sendWsResponse } from './ws-utils.js';
|
|
12
|
+
import { ServerConfig } from '../config/config.js';
|
|
13
|
+
import { getCompactContextForSkill } from '@jacques-ai/core/handoff';
|
|
14
|
+
export class SettingsHandler {
|
|
15
|
+
registry;
|
|
16
|
+
wsServer;
|
|
17
|
+
notificationService;
|
|
18
|
+
logger;
|
|
19
|
+
constructor(deps) {
|
|
20
|
+
this.registry = deps.registry;
|
|
21
|
+
this.wsServer = deps.wsServer;
|
|
22
|
+
this.notificationService = deps.notificationService;
|
|
23
|
+
this.logger = deps.logger;
|
|
24
|
+
}
|
|
25
|
+
handleToggleAutoCompact(ws) {
|
|
26
|
+
try {
|
|
27
|
+
let settings = {};
|
|
28
|
+
if (existsSync(ServerConfig.claudeSettingsPath)) {
|
|
29
|
+
try {
|
|
30
|
+
const content = readFileSync(ServerConfig.claudeSettingsPath, 'utf-8');
|
|
31
|
+
settings = JSON.parse(content);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Start fresh if file is corrupted
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const currentValue = settings.autoCompact !== false;
|
|
38
|
+
const newValue = !currentValue;
|
|
39
|
+
settings.autoCompact = newValue;
|
|
40
|
+
const dir = dirname(ServerConfig.claudeSettingsPath);
|
|
41
|
+
if (!existsSync(dir)) {
|
|
42
|
+
mkdirSync(dir, { recursive: true });
|
|
43
|
+
}
|
|
44
|
+
writeFileSync(ServerConfig.claudeSettingsPath, JSON.stringify(settings, null, 2));
|
|
45
|
+
const response = {
|
|
46
|
+
type: 'autocompact_toggled',
|
|
47
|
+
enabled: newValue,
|
|
48
|
+
warning: newValue ? undefined : 'Known bug: may still trigger at ~78%',
|
|
49
|
+
};
|
|
50
|
+
this.logger.log(`Auto-compact toggled to: ${newValue ? 'ON' : 'OFF'}`);
|
|
51
|
+
sendWsResponse(ws, response);
|
|
52
|
+
// Update all sessions with new autocompact status
|
|
53
|
+
const sessions = this.registry.getAllSessions();
|
|
54
|
+
for (const session of sessions) {
|
|
55
|
+
session.autocompact = {
|
|
56
|
+
enabled: newValue,
|
|
57
|
+
threshold: ServerConfig.autoCompactThreshold,
|
|
58
|
+
bug_threshold: newValue ? null : 78,
|
|
59
|
+
};
|
|
60
|
+
this.wsServer.broadcastSessionUpdate(session);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
this.logger.error(`Failed to toggle auto-compact: ${err}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async handleGetHandoffContext(ws, request) {
|
|
68
|
+
const session = this.registry.getSession(request.session_id);
|
|
69
|
+
if (!session) {
|
|
70
|
+
this.sendHandoffError(ws, request.session_id, `Session not found: ${request.session_id}`);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (!session.transcript_path) {
|
|
74
|
+
this.sendHandoffError(ws, request.session_id, 'Session has no transcript path');
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const projectDir = session.workspace?.project_dir || session.cwd;
|
|
78
|
+
try {
|
|
79
|
+
this.logger.log(`Extracting compact handoff context for session ${request.session_id}`);
|
|
80
|
+
const result = await getCompactContextForSkill(session.transcript_path, projectDir);
|
|
81
|
+
const response = {
|
|
82
|
+
type: 'handoff_context',
|
|
83
|
+
session_id: request.session_id,
|
|
84
|
+
context: result.context,
|
|
85
|
+
token_estimate: result.tokenEstimate,
|
|
86
|
+
data: {
|
|
87
|
+
title: result.data.title,
|
|
88
|
+
projectDir: result.data.projectDir,
|
|
89
|
+
filesModified: result.data.filesModified,
|
|
90
|
+
toolsUsed: result.data.toolsUsed,
|
|
91
|
+
recentMessages: result.data.recentMessages,
|
|
92
|
+
assistantHighlights: result.data.assistantHighlights,
|
|
93
|
+
decisions: result.data.decisions,
|
|
94
|
+
technologies: result.data.technologies,
|
|
95
|
+
blockers: result.data.blockers,
|
|
96
|
+
totalUserMessages: result.data.totalUserMessages,
|
|
97
|
+
totalToolCalls: result.data.totalToolCalls,
|
|
98
|
+
plans: result.data.plans,
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
this.logger.log(`Compact context extracted: ~${result.tokenEstimate} tokens`);
|
|
102
|
+
sendWsResponse(ws, response);
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
this.logger.error(`Failed to extract handoff context: ${err}`);
|
|
106
|
+
this.sendHandoffError(ws, request.session_id, `Failed to extract context: ${err instanceof Error ? err.message : String(err)}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
handleUpdateNotificationSettings(ws, request) {
|
|
110
|
+
const updated = this.notificationService.updateSettings(request.settings);
|
|
111
|
+
const response = {
|
|
112
|
+
type: 'notification_settings',
|
|
113
|
+
settings: updated,
|
|
114
|
+
};
|
|
115
|
+
sendWsResponse(ws, response);
|
|
116
|
+
this.logger.log(`Notification settings updated: desktop=${updated.enabled}`);
|
|
117
|
+
}
|
|
118
|
+
sendHandoffError(ws, sessionId, error) {
|
|
119
|
+
const errorResponse = {
|
|
120
|
+
type: 'handoff_context_error',
|
|
121
|
+
session_id: sessionId,
|
|
122
|
+
error,
|
|
123
|
+
};
|
|
124
|
+
sendWsResponse(ws, errorResponse);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=settings-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-handler.js","sourceRoot":"","sources":["../../src/handlers/settings-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-handler.test.d.ts","sourceRoot":"","sources":["../../src/handlers/settings-handler.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings Handler Tests
|
|
3
|
+
*/
|
|
4
|
+
import { SettingsHandler } from './settings-handler.js';
|
|
5
|
+
import { SessionRegistry } from '../session-registry.js';
|
|
6
|
+
import { createLogger } from '../logging/logger-factory.js';
|
|
7
|
+
// Mock WebSocket
|
|
8
|
+
function createMockWs() {
|
|
9
|
+
const sent = [];
|
|
10
|
+
return {
|
|
11
|
+
ws: {
|
|
12
|
+
readyState: 1,
|
|
13
|
+
send: (data) => { sent.push(data); },
|
|
14
|
+
},
|
|
15
|
+
sent,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
// Mock NotificationService
|
|
19
|
+
class MockNotificationService {
|
|
20
|
+
lastSettings = null;
|
|
21
|
+
updateSettings(settings) {
|
|
22
|
+
this.lastSettings = settings;
|
|
23
|
+
return { enabled: settings.enabled ?? true, ...settings };
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
// Mock JacquesWebSocketServer
|
|
27
|
+
class MockWsServer {
|
|
28
|
+
broadcasts = [];
|
|
29
|
+
sessionUpdates = [];
|
|
30
|
+
broadcastSessionUpdate(session) { this.sessionUpdates.push(session); }
|
|
31
|
+
broadcast(msg) { this.broadcasts.push(msg); }
|
|
32
|
+
}
|
|
33
|
+
describe('SettingsHandler', () => {
|
|
34
|
+
let handler;
|
|
35
|
+
let registry;
|
|
36
|
+
let mockWsServer;
|
|
37
|
+
let mockNotificationService;
|
|
38
|
+
const silentLogger = createLogger({ silent: true });
|
|
39
|
+
beforeEach(() => {
|
|
40
|
+
registry = new SessionRegistry({ silent: true });
|
|
41
|
+
mockWsServer = new MockWsServer();
|
|
42
|
+
mockNotificationService = new MockNotificationService();
|
|
43
|
+
handler = new SettingsHandler({
|
|
44
|
+
registry,
|
|
45
|
+
wsServer: mockWsServer,
|
|
46
|
+
notificationService: mockNotificationService,
|
|
47
|
+
logger: silentLogger,
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe('handleUpdateNotificationSettings', () => {
|
|
51
|
+
it('should update settings and send response back', () => {
|
|
52
|
+
const { ws, sent } = createMockWs();
|
|
53
|
+
handler.handleUpdateNotificationSettings(ws, {
|
|
54
|
+
type: 'update_notification_settings',
|
|
55
|
+
settings: { enabled: false },
|
|
56
|
+
});
|
|
57
|
+
// Verify notification service was called with the settings
|
|
58
|
+
expect(mockNotificationService.lastSettings).toEqual({ enabled: false });
|
|
59
|
+
// Verify response was sent back to the client
|
|
60
|
+
expect(sent).toHaveLength(1);
|
|
61
|
+
const response = JSON.parse(sent[0]);
|
|
62
|
+
expect(response.type).toBe('notification_settings');
|
|
63
|
+
expect(response.settings.enabled).toBe(false);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe('handleGetHandoffContext', () => {
|
|
67
|
+
it('should return error when session not found', async () => {
|
|
68
|
+
const { ws, sent } = createMockWs();
|
|
69
|
+
await handler.handleGetHandoffContext(ws, {
|
|
70
|
+
type: 'get_handoff_context',
|
|
71
|
+
session_id: 'nonexistent-session',
|
|
72
|
+
});
|
|
73
|
+
expect(sent).toHaveLength(1);
|
|
74
|
+
const response = JSON.parse(sent[0]);
|
|
75
|
+
expect(response.type).toBe('handoff_context_error');
|
|
76
|
+
expect(response.session_id).toBe('nonexistent-session');
|
|
77
|
+
expect(response.error).toContain('Session not found');
|
|
78
|
+
});
|
|
79
|
+
it('should return error when session has no transcript_path', async () => {
|
|
80
|
+
const { ws, sent } = createMockWs();
|
|
81
|
+
// Register a session without a transcript_path
|
|
82
|
+
registry.registerSession({
|
|
83
|
+
event: 'session_start',
|
|
84
|
+
timestamp: Date.now(),
|
|
85
|
+
session_id: 'test-session',
|
|
86
|
+
session_title: 'Test',
|
|
87
|
+
transcript_path: null,
|
|
88
|
+
cwd: '/test',
|
|
89
|
+
project: 'test',
|
|
90
|
+
terminal: null,
|
|
91
|
+
terminal_key: 'TTY:/dev/ttys001',
|
|
92
|
+
});
|
|
93
|
+
await handler.handleGetHandoffContext(ws, {
|
|
94
|
+
type: 'get_handoff_context',
|
|
95
|
+
session_id: 'test-session',
|
|
96
|
+
});
|
|
97
|
+
expect(sent).toHaveLength(1);
|
|
98
|
+
const response = JSON.parse(sent[0]);
|
|
99
|
+
expect(response.type).toBe('handoff_context_error');
|
|
100
|
+
expect(response.session_id).toBe('test-session');
|
|
101
|
+
expect(response.error).toContain('no transcript path');
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=settings-handler.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-handler.test.js","sourceRoot":"","sources":["../../src/handlers/settings-handler.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Window Handler
|
|
3
|
+
*
|
|
4
|
+
* Handles WebSocket requests for window management:
|
|
5
|
+
* - tile_windows
|
|
6
|
+
* - maximize_window
|
|
7
|
+
* - position_browser_layout
|
|
8
|
+
* - smart_tile_add
|
|
9
|
+
*/
|
|
10
|
+
import { WebSocket } from 'ws';
|
|
11
|
+
import type { SessionRegistry } from '../session-registry.js';
|
|
12
|
+
import type { Logger } from '../logging/logger-factory.js';
|
|
13
|
+
import type { TileStateManager } from '../window-manager/tile-state.js';
|
|
14
|
+
import type { TileWindowsRequest, MaximizeWindowRequest, PositionBrowserLayoutRequest, SmartTileAddRequest } from '../types.js';
|
|
15
|
+
export interface WindowHandlerDeps {
|
|
16
|
+
registry: SessionRegistry;
|
|
17
|
+
tileStateManager: TileStateManager;
|
|
18
|
+
logger: Logger;
|
|
19
|
+
}
|
|
20
|
+
export declare class WindowHandler {
|
|
21
|
+
private registry;
|
|
22
|
+
private tileStateManager;
|
|
23
|
+
private logger;
|
|
24
|
+
constructor(deps: WindowHandlerDeps);
|
|
25
|
+
handleTileWindows(ws: WebSocket, request: TileWindowsRequest): Promise<void>;
|
|
26
|
+
handleMaximizeWindow(ws: WebSocket, request: MaximizeWindowRequest): Promise<void>;
|
|
27
|
+
handlePositionBrowserLayout(ws: WebSocket, request: PositionBrowserLayoutRequest): Promise<void>;
|
|
28
|
+
handleSmartTileAdd(ws: WebSocket, request: SmartTileAddRequest): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=window-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window-handler.d.ts","sourceRoot":"","sources":["../../src/handlers/window-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAKxE,OAAO,KAAK,EACV,kBAAkB,EAElB,qBAAqB,EAErB,4BAA4B,EAE5B,mBAAmB,EAEpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,eAAe,CAAC;IAC1B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAAS;gBAEX,IAAI,EAAE,iBAAiB;IAM7B,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8G5E,oBAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4DlF,2BAA2B,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAoHhG,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAoOrF"}
|