@cloudcli-ai/cloudcli 1.29.5 → 1.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.de.md +1 -1
- package/README.ja.md +1 -1
- package/README.ko.md +1 -1
- package/README.md +1 -1
- package/README.ru.md +1 -1
- package/README.tr.md +252 -0
- package/README.zh-CN.md +1 -1
- package/dist/assets/index-DF8TTVHl.css +32 -0
- package/dist/assets/index-DbZAcc9z.js +1262 -0
- package/dist/index.html +2 -2
- package/dist-server/server/claude-sdk.js +13 -8
- package/dist-server/server/claude-sdk.js.map +1 -1
- package/dist-server/server/cursor-cli.js +7 -7
- package/dist-server/server/cursor-cli.js.map +1 -1
- package/dist-server/server/gemini-cli.js +5 -5
- package/dist-server/server/gemini-cli.js.map +1 -1
- package/dist-server/server/gemini-response-handler.js +2 -2
- package/dist-server/server/gemini-response-handler.js.map +1 -1
- package/dist-server/server/index.js +139 -977
- package/dist-server/server/index.js.map +1 -1
- package/dist-server/server/middleware/auth.js +1 -1
- package/dist-server/server/middleware/auth.js.map +1 -1
- package/dist-server/server/modules/database/connection.js +125 -0
- package/dist-server/server/modules/database/connection.js.map +1 -0
- package/dist-server/server/modules/database/index.js +13 -0
- package/dist-server/server/modules/database/index.js.map +1 -0
- package/dist-server/server/modules/database/init-db.js +18 -0
- package/dist-server/server/modules/database/init-db.js.map +1 -0
- package/dist-server/server/modules/database/migrations.js +370 -0
- package/dist-server/server/modules/database/migrations.js.map +1 -0
- package/dist-server/server/modules/database/repositories/api-keys.js +72 -0
- package/dist-server/server/modules/database/repositories/api-keys.js.map +1 -0
- package/dist-server/server/modules/database/repositories/app-config.js +47 -0
- package/dist-server/server/modules/database/repositories/app-config.js.map +1 -0
- package/dist-server/server/modules/database/repositories/credentials.js +68 -0
- package/dist-server/server/modules/database/repositories/credentials.js.map +1 -0
- package/dist-server/server/modules/database/repositories/github-tokens.js +54 -0
- package/dist-server/server/modules/database/repositories/github-tokens.js.map +1 -0
- package/dist-server/server/modules/database/repositories/notification-preferences.js +72 -0
- package/dist-server/server/modules/database/repositories/notification-preferences.js.map +1 -0
- package/dist-server/server/modules/database/repositories/projects.db.integration.test.js +64 -0
- package/dist-server/server/modules/database/repositories/projects.db.integration.test.js.map +1 -0
- package/dist-server/server/modules/database/repositories/projects.db.js +160 -0
- package/dist-server/server/modules/database/repositories/projects.db.js.map +1 -0
- package/dist-server/server/modules/database/repositories/push-subscriptions.js +49 -0
- package/dist-server/server/modules/database/repositories/push-subscriptions.js.map +1 -0
- package/dist-server/server/modules/database/repositories/scan-state.db.js +31 -0
- package/dist-server/server/modules/database/repositories/scan-state.db.js.map +1 -0
- package/dist-server/server/modules/database/repositories/sessions.db.js +109 -0
- package/dist-server/server/modules/database/repositories/sessions.db.js.map +1 -0
- package/dist-server/server/modules/database/repositories/users.js +88 -0
- package/dist-server/server/modules/database/repositories/users.js.map +1 -0
- package/dist-server/server/modules/database/repositories/vapid-keys.js +38 -0
- package/dist-server/server/modules/database/repositories/vapid-keys.js.map +1 -0
- package/dist-server/server/modules/database/schema.js +143 -0
- package/dist-server/server/modules/database/schema.js.map +1 -0
- package/dist-server/server/modules/projects/index.js +4 -0
- package/dist-server/server/modules/projects/index.js.map +1 -0
- package/dist-server/server/modules/projects/projects.routes.js +188 -0
- package/dist-server/server/modules/projects/projects.routes.js.map +1 -0
- package/dist-server/server/modules/projects/services/project-clone.service.js +219 -0
- package/dist-server/server/modules/projects/services/project-clone.service.js.map +1 -0
- package/dist-server/server/modules/projects/services/project-delete.service.js +65 -0
- package/dist-server/server/modules/projects/services/project-delete.service.js.map +1 -0
- package/dist-server/server/modules/projects/services/project-management.service.js +93 -0
- package/dist-server/server/modules/projects/services/project-management.service.js.map +1 -0
- package/dist-server/server/modules/projects/services/project-star.service.js +60 -0
- package/dist-server/server/modules/projects/services/project-star.service.js.map +1 -0
- package/dist-server/server/modules/projects/services/projects-has-taskmaster.service.js +167 -0
- package/dist-server/server/modules/projects/services/projects-has-taskmaster.service.js.map +1 -0
- package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js +169 -0
- package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js.map +1 -0
- package/dist-server/server/modules/projects/tests/project-clone.service.test.js +126 -0
- package/dist-server/server/modules/projects/tests/project-clone.service.test.js.map +1 -0
- package/dist-server/server/modules/projects/tests/project-management.service.test.js +85 -0
- package/dist-server/server/modules/projects/tests/project-management.service.test.js.map +1 -0
- package/dist-server/server/modules/projects/tests/project-star.service.test.js +95 -0
- package/dist-server/server/modules/projects/tests/project-star.service.test.js.map +1 -0
- package/dist-server/server/modules/projects/tests/projects-has-taskmaster.service.test.js +87 -0
- package/dist-server/server/modules/projects/tests/projects-has-taskmaster.service.test.js.map +1 -0
- package/dist-server/server/modules/providers/index.js +4 -0
- package/dist-server/server/modules/providers/index.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js +103 -0
- package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude-mcp.provider.js +103 -0
- package/dist-server/server/modules/providers/list/claude/claude-mcp.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js +63 -0
- package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js +403 -0
- package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude.provider.js +15 -0
- package/dist-server/server/modules/providers/list/claude/claude.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-auth.provider.js +84 -0
- package/dist-server/server/modules/providers/list/codex/codex-auth.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-mcp.provider.js +107 -0
- package/dist-server/server/modules/providers/list/codex/codex-mcp.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js +71 -0
- package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js +494 -0
- package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex.provider.js +15 -0
- package/dist-server/server/modules/providers/list/codex/codex.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-auth.provider.js +118 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-auth.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-mcp.provider.js +80 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-mcp.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.js +127 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-sessions.provider.js +369 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-sessions.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/cursor/cursor.provider.js +15 -0
- package/dist-server/server/modules/providers/list/cursor/cursor.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/gemini/gemini-auth.provider.js +131 -0
- package/dist-server/server/modules/providers/list/gemini/gemini-auth.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/gemini/gemini-mcp.provider.js +82 -0
- package/dist-server/server/modules/providers/list/gemini/gemini-mcp.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/gemini/gemini-session-synchronizer.provider.js +296 -0
- package/dist-server/server/modules/providers/list/gemini/gemini-session-synchronizer.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/gemini/gemini-sessions.provider.js +474 -0
- package/dist-server/server/modules/providers/list/gemini/gemini-sessions.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/gemini/gemini.provider.js +15 -0
- package/dist-server/server/modules/providers/list/gemini/gemini.provider.js.map +1 -0
- package/dist-server/server/modules/providers/provider.registry.js +31 -0
- package/dist-server/server/modules/providers/provider.registry.js.map +1 -0
- package/dist-server/server/modules/providers/provider.routes.js +331 -0
- package/dist-server/server/modules/providers/provider.routes.js.map +1 -0
- package/dist-server/server/modules/providers/services/mcp.service.js +69 -0
- package/dist-server/server/modules/providers/services/mcp.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/provider-auth.service.js +25 -0
- package/dist-server/server/modules/providers/services/provider-auth.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/session-conversations-search.service.js +868 -0
- package/dist-server/server/modules/providers/services/session-conversations-search.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/session-synchronizer.service.js +56 -0
- package/dist-server/server/modules/providers/services/session-synchronizer.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/sessions-watcher.service.js +234 -0
- package/dist-server/server/modules/providers/services/sessions-watcher.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/sessions.service.js +104 -0
- package/dist-server/server/modules/providers/services/sessions.service.js.map +1 -0
- package/dist-server/server/modules/providers/shared/base/abstract.provider.js +14 -0
- package/dist-server/server/modules/providers/shared/base/abstract.provider.js.map +1 -0
- package/dist-server/server/modules/providers/shared/mcp/mcp.provider.js +102 -0
- package/dist-server/server/modules/providers/shared/mcp/mcp.provider.js.map +1 -0
- package/dist-server/server/modules/providers/tests/mcp.test.js +250 -0
- package/dist-server/server/modules/providers/tests/mcp.test.js.map +1 -0
- package/dist-server/server/modules/websocket/index.js +3 -0
- package/dist-server/server/modules/websocket/index.js.map +1 -0
- package/dist-server/server/modules/websocket/services/chat-websocket.service.js +188 -0
- package/dist-server/server/modules/websocket/services/chat-websocket.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/plugin-websocket-proxy.service.js +52 -0
- package/dist-server/server/modules/websocket/services/plugin-websocket-proxy.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/shell-websocket.service.js +334 -0
- package/dist-server/server/modules/websocket/services/shell-websocket.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/websocket-auth.service.js +32 -0
- package/dist-server/server/modules/websocket/services/websocket-auth.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/websocket-server.service.js +36 -0
- package/dist-server/server/modules/websocket/services/websocket-server.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/websocket-state.service.js +14 -0
- package/dist-server/server/modules/websocket/services/websocket-state.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/websocket-writer.service.js +32 -0
- package/dist-server/server/modules/websocket/services/websocket-writer.service.js.map +1 -0
- package/dist-server/server/openai-codex.js +5 -5
- package/dist-server/server/openai-codex.js.map +1 -1
- package/dist-server/server/routes/agent.js +10 -17
- package/dist-server/server/routes/agent.js.map +1 -1
- package/dist-server/server/routes/auth.js +3 -1
- package/dist-server/server/routes/auth.js.map +1 -1
- package/dist-server/server/routes/commands.js +1 -45
- package/dist-server/server/routes/commands.js.map +1 -1
- package/dist-server/server/routes/cursor.js +9 -489
- package/dist-server/server/routes/cursor.js.map +1 -1
- package/dist-server/server/routes/gemini.js +2 -2
- package/dist-server/server/routes/gemini.js.map +1 -1
- package/dist-server/server/routes/git.js +33 -29
- package/dist-server/server/routes/git.js.map +1 -1
- package/dist-server/server/routes/mcp-utils.js +1 -18
- package/dist-server/server/routes/mcp-utils.js.map +1 -1
- package/dist-server/server/routes/settings.js +11 -1
- package/dist-server/server/routes/settings.js.map +1 -1
- package/dist-server/server/routes/taskmaster.js +97 -569
- package/dist-server/server/routes/taskmaster.js.map +1 -1
- package/dist-server/server/routes/user.js +1 -1
- package/dist-server/server/routes/user.js.map +1 -1
- package/dist-server/server/services/notification-orchestrator.js +2 -2
- package/dist-server/server/services/notification-orchestrator.js.map +1 -1
- package/dist-server/server/services/vapid-keys.js +2 -1
- package/dist-server/server/services/vapid-keys.js.map +1 -1
- package/dist-server/server/shared/interfaces.js +2 -0
- package/dist-server/server/shared/interfaces.js.map +1 -0
- package/dist-server/server/shared/types.js +2 -0
- package/dist-server/server/shared/types.js.map +1 -0
- package/dist-server/server/shared/utils.js +551 -0
- package/dist-server/server/shared/utils.js.map +1 -0
- package/dist-server/server/utils/mcp-detector.js +0 -49
- package/dist-server/server/utils/mcp-detector.js.map +1 -1
- package/dist-server/server/utils/taskmaster-websocket.js +18 -12
- package/dist-server/server/utils/taskmaster-websocket.js.map +1 -1
- package/dist-server/shared/modelConstants.js +3 -1
- package/dist-server/shared/modelConstants.js.map +1 -1
- package/package.json +7 -2
- package/server/claude-sdk.js +14 -8
- package/server/cursor-cli.js +7 -7
- package/server/gemini-cli.js +5 -5
- package/server/gemini-response-handler.js +2 -2
- package/server/index.js +173 -1035
- package/server/middleware/auth.js +1 -1
- package/server/modules/database/connection.ts +143 -0
- package/server/modules/database/index.ts +12 -0
- package/server/modules/database/init-db.ts +17 -0
- package/server/modules/database/migrations.ts +442 -0
- package/server/modules/database/repositories/api-keys.ts +119 -0
- package/server/modules/database/repositories/app-config.ts +53 -0
- package/server/modules/database/repositories/credentials.ts +106 -0
- package/server/modules/database/repositories/github-tokens.ts +100 -0
- package/server/modules/database/repositories/notification-preferences.ts +103 -0
- package/server/modules/database/repositories/projects.db.integration.test.ts +72 -0
- package/server/modules/database/repositories/projects.db.ts +183 -0
- package/server/modules/database/repositories/push-subscriptions.ts +80 -0
- package/server/modules/database/repositories/scan-state.db.ts +42 -0
- package/server/modules/database/repositories/sessions.db.ts +174 -0
- package/server/modules/database/repositories/users.ts +140 -0
- package/server/modules/database/repositories/vapid-keys.ts +57 -0
- package/server/modules/database/schema.ts +152 -0
- package/server/modules/projects/index.ts +6 -0
- package/server/modules/projects/projects.routes.ts +247 -0
- package/server/modules/projects/services/project-clone.service.ts +321 -0
- package/server/modules/projects/services/project-delete.service.ts +75 -0
- package/server/modules/projects/services/project-management.service.ts +150 -0
- package/server/modules/projects/services/project-star.service.ts +78 -0
- package/server/modules/projects/services/projects-has-taskmaster.service.ts +248 -0
- package/server/modules/projects/services/projects-with-sessions-fetch.service.ts +285 -0
- package/server/modules/projects/tests/project-clone.service.test.ts +183 -0
- package/server/modules/projects/tests/project-management.service.test.ts +117 -0
- package/server/modules/projects/tests/project-star.service.test.ts +123 -0
- package/server/modules/projects/tests/projects-has-taskmaster.service.test.ts +105 -0
- package/server/modules/providers/index.ts +4 -0
- package/server/modules/providers/list/claude/claude-auth.provider.ts +123 -0
- package/server/modules/providers/list/claude/claude-mcp.provider.ts +135 -0
- package/server/modules/providers/list/claude/claude-session-synchronizer.provider.ts +110 -0
- package/server/modules/providers/list/claude/claude-sessions.provider.ts +475 -0
- package/server/modules/providers/list/claude/claude.provider.ts +17 -0
- package/server/modules/providers/list/codex/codex-auth.provider.ts +100 -0
- package/server/modules/providers/list/codex/codex-mcp.provider.ts +135 -0
- package/server/modules/providers/list/codex/codex-session-synchronizer.provider.ts +119 -0
- package/server/modules/providers/list/codex/codex-sessions.provider.ts +564 -0
- package/server/modules/providers/list/codex/codex.provider.ts +17 -0
- package/server/modules/providers/list/cursor/cursor-auth.provider.ts +143 -0
- package/server/modules/providers/list/cursor/cursor-mcp.provider.ts +108 -0
- package/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.ts +176 -0
- package/server/modules/providers/list/cursor/cursor-sessions.provider.ts +421 -0
- package/server/modules/providers/list/cursor/cursor.provider.ts +17 -0
- package/server/modules/providers/list/gemini/gemini-auth.provider.ts +151 -0
- package/server/modules/providers/list/gemini/gemini-mcp.provider.ts +110 -0
- package/server/modules/providers/list/gemini/gemini-session-synchronizer.provider.ts +401 -0
- package/server/modules/providers/list/gemini/gemini-sessions.provider.ts +541 -0
- package/server/modules/providers/list/gemini/gemini.provider.ts +17 -0
- package/server/modules/providers/provider.registry.ts +36 -0
- package/server/modules/providers/provider.routes.ts +425 -0
- package/server/modules/providers/services/mcp.service.ts +94 -0
- package/server/modules/providers/services/provider-auth.service.ts +26 -0
- package/server/modules/providers/services/session-conversations-search.service.ts +1167 -0
- package/server/modules/providers/services/session-synchronizer.service.ts +74 -0
- package/server/modules/providers/services/sessions-watcher.service.ts +283 -0
- package/server/modules/providers/services/sessions.service.ts +130 -0
- package/server/modules/providers/shared/base/abstract.provider.ts +27 -0
- package/server/modules/providers/shared/mcp/mcp.provider.ts +151 -0
- package/server/modules/providers/tests/mcp.test.ts +293 -0
- package/server/modules/websocket/README.md +267 -0
- package/server/modules/websocket/index.ts +2 -0
- package/server/modules/websocket/services/chat-websocket.service.ts +271 -0
- package/server/modules/websocket/services/plugin-websocket-proxy.service.ts +65 -0
- package/server/modules/websocket/services/shell-websocket.service.ts +453 -0
- package/server/modules/websocket/services/websocket-auth.service.ts +54 -0
- package/server/modules/websocket/services/websocket-server.service.ts +58 -0
- package/server/modules/websocket/services/websocket-state.service.ts +16 -0
- package/server/modules/websocket/services/websocket-writer.service.ts +38 -0
- package/server/openai-codex.js +5 -5
- package/server/routes/agent.js +11 -16
- package/server/routes/auth.js +4 -2
- package/server/routes/commands.js +1 -50
- package/server/routes/cursor.js +15 -527
- package/server/routes/gemini.js +3 -2
- package/server/routes/git.js +33 -28
- package/server/routes/mcp-utils.js +2 -19
- package/server/routes/settings.js +11 -1
- package/server/routes/taskmaster.js +107 -602
- package/server/routes/user.js +1 -1
- package/server/services/notification-orchestrator.js +3 -2
- package/server/services/vapid-keys.js +2 -1
- package/server/shared/interfaces.ts +92 -0
- package/server/shared/types.ts +327 -0
- package/server/shared/utils.ts +669 -0
- package/server/tsconfig.json +6 -3
- package/server/utils/mcp-detector.js +0 -51
- package/server/utils/taskmaster-websocket.js +19 -13
- package/shared/modelConstants.js +3 -1
- package/dist/assets/index-BBAE1OJ_.css +0 -32
- package/dist/assets/index-Ci1GOyV7.js +0 -1262
- package/dist-server/server/database/db.js +0 -535
- package/dist-server/server/database/db.js.map +0 -1
- package/dist-server/server/database/schema.js +0 -97
- package/dist-server/server/database/schema.js.map +0 -1
- package/dist-server/server/projects.js +0 -2325
- package/dist-server/server/projects.js.map +0 -1
- package/dist-server/server/providers/claude/adapter.js +0 -266
- package/dist-server/server/providers/claude/adapter.js.map +0 -1
- package/dist-server/server/providers/claude/status.js +0 -121
- package/dist-server/server/providers/claude/status.js.map +0 -1
- package/dist-server/server/providers/codex/adapter.js +0 -232
- package/dist-server/server/providers/codex/adapter.js.map +0 -1
- package/dist-server/server/providers/codex/status.js +0 -70
- package/dist-server/server/providers/codex/status.js.map +0 -1
- package/dist-server/server/providers/cursor/adapter.js +0 -342
- package/dist-server/server/providers/cursor/adapter.js.map +0 -1
- package/dist-server/server/providers/cursor/status.js +0 -118
- package/dist-server/server/providers/cursor/status.js.map +0 -1
- package/dist-server/server/providers/gemini/adapter.js +0 -174
- package/dist-server/server/providers/gemini/adapter.js.map +0 -1
- package/dist-server/server/providers/gemini/status.js +0 -104
- package/dist-server/server/providers/gemini/status.js.map +0 -1
- package/dist-server/server/providers/registry.js +0 -58
- package/dist-server/server/providers/registry.js.map +0 -1
- package/dist-server/server/providers/types.js +0 -117
- package/dist-server/server/providers/types.js.map +0 -1
- package/dist-server/server/providers/utils.js +0 -28
- package/dist-server/server/providers/utils.js.map +0 -1
- package/dist-server/server/routes/cli-auth.js +0 -25
- package/dist-server/server/routes/cli-auth.js.map +0 -1
- package/dist-server/server/routes/codex.js +0 -294
- package/dist-server/server/routes/codex.js.map +0 -1
- package/dist-server/server/routes/mcp.js +0 -480
- package/dist-server/server/routes/mcp.js.map +0 -1
- package/dist-server/server/routes/messages.js +0 -56
- package/dist-server/server/routes/messages.js.map +0 -1
- package/dist-server/server/routes/projects.js +0 -505
- package/dist-server/server/routes/projects.js.map +0 -1
- package/server/database/db.js +0 -593
- package/server/database/schema.js +0 -102
- package/server/projects.js +0 -2555
- package/server/providers/claude/adapter.js +0 -278
- package/server/providers/claude/status.js +0 -136
- package/server/providers/codex/adapter.js +0 -248
- package/server/providers/codex/status.js +0 -78
- package/server/providers/cursor/adapter.js +0 -348
- package/server/providers/cursor/status.js +0 -128
- package/server/providers/gemini/adapter.js +0 -186
- package/server/providers/gemini/status.js +0 -111
- package/server/providers/registry.js +0 -67
- package/server/providers/types.js +0 -132
- package/server/providers/utils.js +0 -29
- package/server/routes/cli-auth.js +0 -27
- package/server/routes/codex.js +0 -329
- package/server/routes/mcp.js +0 -552
- package/server/routes/messages.js +0 -61
- package/server/routes/projects.js +0 -548
|
@@ -6,19 +6,24 @@
|
|
|
6
6
|
* Integrates with the existing WebSocket system to provide real-time updates.
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
|
-
* Broadcast TaskMaster project update to all connected clients
|
|
9
|
+
* Broadcast TaskMaster project update to all connected clients.
|
|
10
|
+
*
|
|
11
|
+
* The payload key is `projectId` post-migration so frontend listeners can
|
|
12
|
+
* match notifications against the DB-assigned project identifier they
|
|
13
|
+
* already use everywhere else.
|
|
14
|
+
*
|
|
10
15
|
* @param {WebSocket.Server} wss - WebSocket server instance
|
|
11
|
-
* @param {string}
|
|
16
|
+
* @param {string} projectId - DB id of the updated project
|
|
12
17
|
* @param {Object} taskMasterData - Updated TaskMaster data
|
|
13
18
|
*/
|
|
14
|
-
export function broadcastTaskMasterProjectUpdate(wss,
|
|
15
|
-
if (!wss || !
|
|
16
|
-
console.warn('TaskMaster WebSocket broadcast: Missing wss or
|
|
19
|
+
export function broadcastTaskMasterProjectUpdate(wss, projectId, taskMasterData) {
|
|
20
|
+
if (!wss || !projectId) {
|
|
21
|
+
console.warn('TaskMaster WebSocket broadcast: Missing wss or projectId');
|
|
17
22
|
return;
|
|
18
23
|
}
|
|
19
24
|
const message = {
|
|
20
25
|
type: 'taskmaster-project-updated',
|
|
21
|
-
|
|
26
|
+
projectId,
|
|
22
27
|
taskMasterData,
|
|
23
28
|
timestamp: new Date().toISOString()
|
|
24
29
|
};
|
|
@@ -34,19 +39,20 @@ export function broadcastTaskMasterProjectUpdate(wss, projectName, taskMasterDat
|
|
|
34
39
|
});
|
|
35
40
|
}
|
|
36
41
|
/**
|
|
37
|
-
* Broadcast TaskMaster tasks update for a specific project
|
|
42
|
+
* Broadcast TaskMaster tasks update for a specific project.
|
|
43
|
+
*
|
|
38
44
|
* @param {WebSocket.Server} wss - WebSocket server instance
|
|
39
|
-
* @param {string}
|
|
45
|
+
* @param {string} projectId - DB id of the project with updated tasks
|
|
40
46
|
* @param {Object} tasksData - Updated tasks data
|
|
41
47
|
*/
|
|
42
|
-
export function broadcastTaskMasterTasksUpdate(wss,
|
|
43
|
-
if (!wss || !
|
|
44
|
-
console.warn('TaskMaster WebSocket broadcast: Missing wss or
|
|
48
|
+
export function broadcastTaskMasterTasksUpdate(wss, projectId, tasksData) {
|
|
49
|
+
if (!wss || !projectId) {
|
|
50
|
+
console.warn('TaskMaster WebSocket broadcast: Missing wss or projectId');
|
|
45
51
|
return;
|
|
46
52
|
}
|
|
47
53
|
const message = {
|
|
48
54
|
type: 'taskmaster-tasks-updated',
|
|
49
|
-
|
|
55
|
+
projectId,
|
|
50
56
|
tasksData,
|
|
51
57
|
timestamp: new Date().toISOString()
|
|
52
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taskmaster-websocket.js","sourceRoot":"","sources":["../../../server/utils/taskmaster-websocket.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH
|
|
1
|
+
{"version":3,"file":"taskmaster-websocket.js","sourceRoot":"","sources":["../../../server/utils/taskmaster-websocket.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gCAAgC,CAAC,GAAG,EAAE,SAAS,EAAE,cAAc;IAC3E,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACzE,OAAO;IACX,CAAC;IAED,MAAM,OAAO,GAAG;QACZ,IAAI,EAAE,4BAA4B;QAClC,SAAS;QACT,cAAc;QACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;IAGF,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3B,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC,CAAC,iBAAiB;YAC5C,IAAI,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS;IACpE,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACzE,OAAO;IACX,CAAC;IAED,MAAM,OAAO,GAAG;QACZ,IAAI,EAAE,0BAA0B;QAChC,SAAS;QACT,SAAS;QACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;IAGF,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3B,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC,CAAC,iBAAiB;YAC5C,IAAI,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;YACnE,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAG,EAAE,SAAS;IACnD,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC5D,OAAO;IACX,CAAC;IAED,MAAM,OAAO,GAAG;QACZ,IAAI,EAAE,+BAA+B;QACrC,SAAS;QACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;IAGF,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3B,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC,CAAC,iBAAiB;YAC5C,IAAI,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;YACxE,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE;IAChE,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC1E,OAAO;IACX,CAAC;IAED,MAAM,OAAO,GAAG;QACZ,IAAI,EAAE,mBAAmB;QACzB,UAAU;QACV,IAAI;QACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;IAGF,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3B,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC,CAAC,iBAAiB;YAC5C,IAAI,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -12,9 +12,10 @@
|
|
|
12
12
|
export const CLAUDE_MODELS = {
|
|
13
13
|
// Models in SDK format (what the actual SDK accepts)
|
|
14
14
|
OPTIONS: [
|
|
15
|
-
{ value: "sonnet", label: "Sonnet" },
|
|
16
15
|
{ value: "opus", label: "Opus" },
|
|
16
|
+
{ value: "sonnet", label: "Sonnet" },
|
|
17
17
|
{ value: "haiku", label: "Haiku" },
|
|
18
|
+
{ value: "claude-opus-4-6", label: "Opus 4.6" },
|
|
18
19
|
{ value: "opusplan", label: "Opus Plan" },
|
|
19
20
|
{ value: "sonnet[1m]", label: "Sonnet [1M]" },
|
|
20
21
|
{ value: "opus[1m]", label: "Opus [1M]" },
|
|
@@ -53,6 +54,7 @@ export const CURSOR_MODELS = {
|
|
|
53
54
|
*/
|
|
54
55
|
export const CODEX_MODELS = {
|
|
55
56
|
OPTIONS: [
|
|
57
|
+
{ value: "gpt-5.5", label: "GPT-5.5" },
|
|
56
58
|
{ value: "gpt-5.4", label: "GPT-5.4" },
|
|
57
59
|
{ value: "gpt-5.4-mini", label: "GPT-5.4 mini" },
|
|
58
60
|
{ value: "gpt-5.3-codex", label: "GPT-5.3 Codex" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelConstants.js","sourceRoot":"","sources":["../../shared/modelConstants.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,qDAAqD;IACrD,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"modelConstants.js","sourceRoot":"","sources":["../../shared/modelConstants.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcli-ai/cloudcli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.31.0",
|
|
4
4
|
"description": "A web-based UI for Claude Code CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist-server/server/index.js",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"author": "CloudCLI UI Contributors",
|
|
66
66
|
"license": "AGPL-3.0-or-later",
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@anthropic-ai/claude-agent-sdk": "^0.2.
|
|
68
|
+
"@anthropic-ai/claude-agent-sdk": "^0.2.116",
|
|
69
69
|
"@codemirror/lang-css": "^6.3.1",
|
|
70
70
|
"@codemirror/lang-html": "^6.4.9",
|
|
71
71
|
"@codemirror/lang-javascript": "^6.2.4",
|
|
@@ -80,6 +80,7 @@
|
|
|
80
80
|
"@replit/codemirror-minimap": "^0.5.2",
|
|
81
81
|
"@tailwindcss/typography": "^0.5.16",
|
|
82
82
|
"@uiw/react-codemirror": "^4.23.13",
|
|
83
|
+
"@vscode/ripgrep": "^1.17.1",
|
|
83
84
|
"@xterm/addon-clipboard": "^0.1.0",
|
|
84
85
|
"@xterm/addon-fit": "^0.10.0",
|
|
85
86
|
"@xterm/addon-web-links": "^0.11.0",
|
|
@@ -126,9 +127,13 @@
|
|
|
126
127
|
"@commitlint/config-conventional": "^20.5.0",
|
|
127
128
|
"@eslint/js": "^9.39.3",
|
|
128
129
|
"@release-it/conventional-changelog": "^10.0.5",
|
|
130
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
131
|
+
"@types/cross-spawn": "^6.0.6",
|
|
132
|
+
"@types/express": "^5.0.6",
|
|
129
133
|
"@types/node": "^22.19.7",
|
|
130
134
|
"@types/react": "^18.2.43",
|
|
131
135
|
"@types/react-dom": "^18.2.17",
|
|
136
|
+
"@types/ws": "^8.18.1",
|
|
132
137
|
"@vitejs/plugin-react": "^4.6.0",
|
|
133
138
|
"auto-changelog": "^2.5.0",
|
|
134
139
|
"autoprefixer": "^10.4.16",
|
package/server/claude-sdk.js
CHANGED
|
@@ -24,9 +24,9 @@ import {
|
|
|
24
24
|
notifyRunStopped,
|
|
25
25
|
notifyUserIfEnabled
|
|
26
26
|
} from './services/notification-orchestrator.js';
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
27
|
+
import { sessionsService } from './modules/providers/services/sessions.service.js';
|
|
28
|
+
import { providerAuthService } from './modules/providers/services/provider-auth.service.js';
|
|
29
|
+
import { createNormalizedMessage } from './shared/utils.js';
|
|
30
30
|
|
|
31
31
|
const activeSessions = new Map();
|
|
32
32
|
const pendingToolApprovals = new Map();
|
|
@@ -149,9 +149,15 @@ function mapCliOptionsToSDK(options = {}) {
|
|
|
149
149
|
|
|
150
150
|
const sdkOptions = {};
|
|
151
151
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
152
|
+
// Forward all host env vars (e.g. ANTHROPIC_BASE_URL) to the subprocess.
|
|
153
|
+
// Since SDK 0.2.113, options.env replaces process.env instead of overlaying it.
|
|
154
|
+
sdkOptions.env = { ...process.env };
|
|
155
|
+
|
|
156
|
+
// Use CLAUDE_CLI_PATH if explicitly set, otherwise fall back to 'claude' on PATH.
|
|
157
|
+
// The SDK 0.2.113+ looks for a bundled native binary optional dep by default;
|
|
158
|
+
// this fallback ensures users who installed via the official installer still work
|
|
159
|
+
// even when npm prune --production has removed those optional deps.
|
|
160
|
+
sdkOptions.pathToClaudeCodeExecutable = process.env.CLAUDE_CLI_PATH || 'claude';
|
|
155
161
|
|
|
156
162
|
// Map working directory
|
|
157
163
|
if (cwd) {
|
|
@@ -654,7 +660,7 @@ async function queryClaudeSDK(command, options = {}, ws) {
|
|
|
654
660
|
const sid = capturedSessionId || sessionId || null;
|
|
655
661
|
|
|
656
662
|
// Use adapter to normalize SDK events into NormalizedMessage[]
|
|
657
|
-
const normalized =
|
|
663
|
+
const normalized = sessionsService.normalizeMessage('claude', transformedMessage, sid);
|
|
658
664
|
for (const msg of normalized) {
|
|
659
665
|
// Preserve parentToolUseId from SDK wrapper for subagent tool grouping
|
|
660
666
|
if (transformedMessage.parentToolUseId && !msg.parentToolUseId) {
|
|
@@ -707,7 +713,7 @@ async function queryClaudeSDK(command, options = {}, ws) {
|
|
|
707
713
|
await cleanupTempFiles(tempImagePaths, tempDir);
|
|
708
714
|
|
|
709
715
|
// Check if Claude CLI is installed for a clearer error message
|
|
710
|
-
const installed =
|
|
716
|
+
const installed = await providerAuthService.isProviderInstalled('claude');
|
|
711
717
|
const errorContent = !installed
|
|
712
718
|
? 'Claude Code is not installed. Please install it first: https://docs.anthropic.com/en/docs/claude-code'
|
|
713
719
|
: error.message;
|
package/server/cursor-cli.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { spawn } from 'child_process';
|
|
2
2
|
import crossSpawn from 'cross-spawn';
|
|
3
3
|
import { notifyRunFailed, notifyRunStopped } from './services/notification-orchestrator.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { sessionsService } from './modules/providers/services/sessions.service.js';
|
|
5
|
+
import { providerAuthService } from './modules/providers/services/provider-auth.service.js';
|
|
6
|
+
import { createNormalizedMessage } from './shared/utils.js';
|
|
7
7
|
|
|
8
8
|
// Use cross-spawn on Windows for better command execution
|
|
9
9
|
const spawnFunction = process.platform === 'win32' ? crossSpawn : spawn;
|
|
@@ -190,7 +190,7 @@ async function spawnCursor(command, options = {}, ws) {
|
|
|
190
190
|
case 'assistant':
|
|
191
191
|
// Accumulate assistant message chunks
|
|
192
192
|
if (response.message && response.message.content && response.message.content.length > 0) {
|
|
193
|
-
const normalized =
|
|
193
|
+
const normalized = sessionsService.normalizeMessage('cursor', response, capturedSessionId || sessionId || null);
|
|
194
194
|
for (const msg of normalized) ws.send(msg);
|
|
195
195
|
}
|
|
196
196
|
break;
|
|
@@ -220,7 +220,7 @@ async function spawnCursor(command, options = {}, ws) {
|
|
|
220
220
|
}
|
|
221
221
|
|
|
222
222
|
// If not JSON, send as stream delta via adapter
|
|
223
|
-
const normalized =
|
|
223
|
+
const normalized = sessionsService.normalizeMessage('cursor', line, capturedSessionId || sessionId || null);
|
|
224
224
|
for (const msg of normalized) ws.send(msg);
|
|
225
225
|
}
|
|
226
226
|
};
|
|
@@ -288,7 +288,7 @@ async function spawnCursor(command, options = {}, ws) {
|
|
|
288
288
|
});
|
|
289
289
|
|
|
290
290
|
// Handle process errors
|
|
291
|
-
cursorProcess.on('error', (error) => {
|
|
291
|
+
cursorProcess.on('error', async (error) => {
|
|
292
292
|
console.error('Cursor CLI process error:', error);
|
|
293
293
|
|
|
294
294
|
// Clean up process reference on error
|
|
@@ -296,7 +296,7 @@ async function spawnCursor(command, options = {}, ws) {
|
|
|
296
296
|
activeCursorProcesses.delete(finalSessionId);
|
|
297
297
|
|
|
298
298
|
// Check if Cursor CLI is installed for a clearer error message
|
|
299
|
-
const installed =
|
|
299
|
+
const installed = await providerAuthService.isProviderInstalled('cursor');
|
|
300
300
|
const errorContent = !installed
|
|
301
301
|
? 'Cursor CLI is not installed. Please install it from https://cursor.com'
|
|
302
302
|
: error.message;
|
package/server/gemini-cli.js
CHANGED
|
@@ -9,8 +9,8 @@ import os from 'os';
|
|
|
9
9
|
import sessionManager from './sessionManager.js';
|
|
10
10
|
import GeminiResponseHandler from './gemini-response-handler.js';
|
|
11
11
|
import { notifyRunFailed, notifyRunStopped } from './services/notification-orchestrator.js';
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
12
|
+
import { providerAuthService } from './modules/providers/services/provider-auth.service.js';
|
|
13
|
+
import { createNormalizedMessage } from './shared/utils.js';
|
|
14
14
|
|
|
15
15
|
let activeGeminiProcesses = new Map(); // Track active processes by session ID
|
|
16
16
|
|
|
@@ -383,7 +383,7 @@ async function spawnGemini(command, options = {}, ws) {
|
|
|
383
383
|
} else {
|
|
384
384
|
// code 127 = shell "command not found" — check installation
|
|
385
385
|
if (code === 127) {
|
|
386
|
-
const installed =
|
|
386
|
+
const installed = await providerAuthService.isProviderInstalled('gemini');
|
|
387
387
|
if (!installed) {
|
|
388
388
|
const socketSessionId = typeof ws.getSessionId === 'function' ? ws.getSessionId() : finalSessionId;
|
|
389
389
|
ws.send(createNormalizedMessage({ kind: 'error', content: 'Gemini CLI is not installed. Please install it first: https://github.com/google-gemini/gemini-cli', sessionId: socketSessionId, provider: 'gemini' }));
|
|
@@ -399,13 +399,13 @@ async function spawnGemini(command, options = {}, ws) {
|
|
|
399
399
|
});
|
|
400
400
|
|
|
401
401
|
// Handle process errors
|
|
402
|
-
geminiProcess.on('error', (error) => {
|
|
402
|
+
geminiProcess.on('error', async (error) => {
|
|
403
403
|
// Clean up process reference on error
|
|
404
404
|
const finalSessionId = capturedSessionId || sessionId || processKey;
|
|
405
405
|
activeGeminiProcesses.delete(finalSessionId);
|
|
406
406
|
|
|
407
407
|
// Check if Gemini CLI is installed for a clearer error message
|
|
408
|
-
const installed =
|
|
408
|
+
const installed = await providerAuthService.isProviderInstalled('gemini');
|
|
409
409
|
const errorContent = !installed
|
|
410
410
|
? 'Gemini CLI is not installed. Please install it first: https://github.com/google-gemini/gemini-cli'
|
|
411
411
|
: error.message;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Gemini Response Handler - JSON Stream processing
|
|
2
|
-
import {
|
|
2
|
+
import { sessionsService } from './modules/providers/services/sessions.service.js';
|
|
3
3
|
|
|
4
4
|
class GeminiResponseHandler {
|
|
5
5
|
constructor(ws, options = {}) {
|
|
@@ -56,7 +56,7 @@ class GeminiResponseHandler {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
// Normalize via adapter and send all resulting messages
|
|
59
|
-
const normalized =
|
|
59
|
+
const normalized = sessionsService.normalizeMessage('gemini', event, sid);
|
|
60
60
|
for (const msg of normalized) {
|
|
61
61
|
this.ws.send(msg);
|
|
62
62
|
}
|