@kaitranntt/ccs 6.7.0 → 6.7.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/README.md +45 -23
- package/dist/api/index.d.ts +7 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +24 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/services/index.d.ts +10 -0
- package/dist/api/services/index.d.ts.map +1 -0
- package/dist/api/services/index.js +26 -0
- package/dist/api/services/index.js.map +1 -0
- package/dist/api/services/profile-reader.d.ts +28 -0
- package/dist/api/services/profile-reader.d.ts.map +1 -0
- package/dist/api/services/profile-reader.js +148 -0
- package/dist/api/services/profile-reader.js.map +1 -0
- package/dist/api/services/profile-types.d.ts +42 -0
- package/dist/api/services/profile-types.d.ts.map +1 -0
- package/dist/api/services/profile-types.js +8 -0
- package/dist/api/services/profile-types.js.map +1 -0
- package/dist/api/services/profile-writer.d.ts +6 -0
- package/dist/api/services/profile-writer.d.ts.map +1 -0
- package/dist/api/services/profile-writer.js +176 -0
- package/dist/api/services/profile-writer.js.map +1 -0
- package/dist/api/services/validation-service.d.ts +26 -0
- package/dist/api/services/validation-service.d.ts.map +1 -0
- package/dist/api/services/validation-service.js +77 -0
- package/dist/api/services/validation-service.js.map +1 -0
- package/dist/auth/auth-commands.d.ts +16 -22
- package/dist/auth/auth-commands.d.ts.map +1 -1
- package/dist/auth/auth-commands.js +29 -467
- package/dist/auth/auth-commands.js.map +1 -1
- package/dist/auth/commands/create-command.d.ts +11 -0
- package/dist/auth/commands/create-command.d.ts.map +1 -0
- package/dist/auth/commands/create-command.js +137 -0
- package/dist/auth/commands/create-command.js.map +1 -0
- package/dist/auth/commands/default-command.d.ts +15 -0
- package/dist/auth/commands/default-command.d.ts.map +1 -0
- package/dist/auth/commands/default-command.js +71 -0
- package/dist/auth/commands/default-command.js.map +1 -0
- package/dist/auth/commands/index.d.ts +12 -0
- package/dist/auth/commands/index.d.ts.map +1 -0
- package/dist/auth/commands/index.js +25 -0
- package/dist/auth/commands/index.js.map +1 -0
- package/dist/auth/commands/list-command.d.ts +11 -0
- package/dist/auth/commands/list-command.d.ts.map +1 -0
- package/dist/auth/commands/list-command.js +124 -0
- package/dist/auth/commands/list-command.js.map +1 -0
- package/dist/auth/commands/remove-command.d.ts +11 -0
- package/dist/auth/commands/remove-command.d.ts.map +1 -0
- package/dist/auth/commands/remove-command.js +102 -0
- package/dist/auth/commands/remove-command.js.map +1 -0
- package/dist/auth/commands/show-command.d.ts +11 -0
- package/dist/auth/commands/show-command.d.ts.map +1 -0
- package/dist/auth/commands/show-command.js +103 -0
- package/dist/auth/commands/show-command.js.map +1 -0
- package/dist/auth/commands/types.d.ts +50 -0
- package/dist/auth/commands/types.d.ts.map +1 -0
- package/dist/auth/commands/types.js +26 -0
- package/dist/auth/commands/types.js.map +1 -0
- package/dist/auth/index.d.ts +8 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +16 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/profile-detector.d.ts +0 -5
- package/dist/auth/profile-detector.d.ts.map +1 -1
- package/dist/auth/profile-detector.js +1 -9
- package/dist/auth/profile-detector.js.map +1 -1
- package/dist/auth/profile-registry.d.ts +0 -4
- package/dist/auth/profile-registry.d.ts.map +1 -1
- package/dist/auth/profile-registry.js +3 -10
- package/dist/auth/profile-registry.js.map +1 -1
- package/dist/ccs.js +21 -4
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/auth/auth-types.d.ts +85 -0
- package/dist/cliproxy/auth/auth-types.d.ts.map +1 -0
- package/dist/cliproxy/auth/auth-types.js +100 -0
- package/dist/cliproxy/auth/auth-types.js.map +1 -0
- package/dist/cliproxy/auth/environment-detector.d.ts +30 -0
- package/dist/cliproxy/auth/environment-detector.d.ts.map +1 -0
- package/dist/cliproxy/auth/environment-detector.js +124 -0
- package/dist/cliproxy/auth/environment-detector.js.map +1 -0
- package/dist/cliproxy/auth/index.d.ts +11 -0
- package/dist/cliproxy/auth/index.d.ts.map +1 -0
- package/dist/cliproxy/auth/index.js +35 -0
- package/dist/cliproxy/auth/index.js.map +1 -0
- package/dist/cliproxy/auth/oauth-handler.d.ts +29 -0
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -0
- package/dist/cliproxy/auth/oauth-handler.js +205 -0
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -0
- package/dist/cliproxy/auth/oauth-process.d.ts +27 -0
- package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -0
- package/dist/cliproxy/auth/oauth-process.js +209 -0
- package/dist/cliproxy/auth/oauth-process.js.map +1 -0
- package/dist/cliproxy/auth/token-manager.d.ts +53 -0
- package/dist/cliproxy/auth/token-manager.d.ts.map +1 -0
- package/dist/cliproxy/auth/token-manager.js +250 -0
- package/dist/cliproxy/auth/token-manager.js.map +1 -0
- package/dist/cliproxy/auth-handler.d.ts +13 -103
- package/dist/cliproxy/auth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth-handler.js +35 -766
- package/dist/cliproxy/auth-handler.js.map +1 -1
- package/dist/cliproxy/binary/downloader.d.ts +29 -0
- package/dist/cliproxy/binary/downloader.d.ts.map +1 -0
- package/dist/cliproxy/binary/downloader.js +218 -0
- package/dist/cliproxy/binary/downloader.js.map +1 -0
- package/dist/cliproxy/binary/extractor.d.ts +12 -0
- package/dist/cliproxy/binary/extractor.d.ts.map +1 -0
- package/dist/cliproxy/binary/extractor.js +27 -0
- package/dist/cliproxy/binary/extractor.js.map +1 -0
- package/dist/cliproxy/binary/index.d.ts +13 -0
- package/dist/cliproxy/binary/index.d.ts.map +1 -0
- package/dist/cliproxy/binary/index.js +53 -0
- package/dist/cliproxy/binary/index.js.map +1 -0
- package/dist/cliproxy/binary/installer.d.ts +24 -0
- package/dist/cliproxy/binary/installer.d.ts.map +1 -0
- package/dist/cliproxy/binary/installer.js +117 -0
- package/dist/cliproxy/binary/installer.js.map +1 -0
- package/dist/cliproxy/binary/lifecycle.d.ts +11 -0
- package/dist/cliproxy/binary/lifecycle.d.ts.map +1 -0
- package/dist/cliproxy/binary/lifecycle.js +106 -0
- package/dist/cliproxy/binary/lifecycle.js.map +1 -0
- package/dist/cliproxy/binary/tar-extractor.d.ts +9 -0
- package/dist/cliproxy/binary/tar-extractor.d.ts.map +1 -0
- package/dist/cliproxy/binary/tar-extractor.js +118 -0
- package/dist/cliproxy/binary/tar-extractor.js.map +1 -0
- package/dist/cliproxy/binary/types.d.ts +24 -0
- package/dist/cliproxy/binary/types.d.ts.map +1 -0
- package/dist/cliproxy/binary/types.js +14 -0
- package/dist/cliproxy/binary/types.js.map +1 -0
- package/dist/cliproxy/binary/updater.d.ts +7 -0
- package/dist/cliproxy/binary/updater.d.ts.map +1 -0
- package/dist/cliproxy/binary/updater.js +18 -0
- package/dist/cliproxy/binary/updater.js.map +1 -0
- package/dist/cliproxy/binary/verifier.d.ts +18 -0
- package/dist/cliproxy/binary/verifier.d.ts.map +1 -0
- package/dist/cliproxy/binary/verifier.js +82 -0
- package/dist/cliproxy/binary/verifier.js.map +1 -0
- package/dist/cliproxy/binary/version-cache.d.ts +46 -0
- package/dist/cliproxy/binary/version-cache.d.ts.map +1 -0
- package/dist/cliproxy/binary/version-cache.js +171 -0
- package/dist/cliproxy/binary/version-cache.js.map +1 -0
- package/dist/cliproxy/binary/version-checker.d.ts +19 -0
- package/dist/cliproxy/binary/version-checker.d.ts.map +1 -0
- package/dist/cliproxy/binary/version-checker.js +77 -0
- package/dist/cliproxy/binary/version-checker.js.map +1 -0
- package/dist/cliproxy/binary/zip-extractor.d.ts +9 -0
- package/dist/cliproxy/binary/zip-extractor.d.ts.map +1 -0
- package/dist/cliproxy/binary/zip-extractor.js +110 -0
- package/dist/cliproxy/binary/zip-extractor.js.map +1 -0
- package/dist/cliproxy/binary-manager.d.ts +16 -170
- package/dist/cliproxy/binary-manager.d.ts.map +1 -1
- package/dist/cliproxy/binary-manager.js +38 -865
- package/dist/cliproxy/binary-manager.js.map +1 -1
- package/dist/cliproxy/services/binary-service.d.ts +65 -0
- package/dist/cliproxy/services/binary-service.d.ts.map +1 -0
- package/dist/cliproxy/services/binary-service.js +140 -0
- package/dist/cliproxy/services/binary-service.js.map +1 -0
- package/dist/cliproxy/services/index.d.ts +8 -0
- package/dist/cliproxy/services/index.d.ts.map +1 -0
- package/dist/cliproxy/services/index.js +31 -0
- package/dist/cliproxy/services/index.js.map +1 -0
- package/dist/cliproxy/services/proxy-lifecycle-service.d.ts +38 -0
- package/dist/cliproxy/services/proxy-lifecycle-service.d.ts.map +1 -0
- package/dist/cliproxy/services/proxy-lifecycle-service.js +41 -0
- package/dist/cliproxy/services/proxy-lifecycle-service.js.map +1 -0
- package/dist/cliproxy/services/variant-config-adapter.d.ts +38 -0
- package/dist/cliproxy/services/variant-config-adapter.d.ts.map +1 -0
- package/dist/cliproxy/services/variant-config-adapter.js +172 -0
- package/dist/cliproxy/services/variant-config-adapter.js.map +1 -0
- package/dist/cliproxy/services/variant-service.d.ts +37 -0
- package/dist/cliproxy/services/variant-service.d.ts.map +1 -0
- package/dist/cliproxy/services/variant-service.js +128 -0
- package/dist/cliproxy/services/variant-service.js.map +1 -0
- package/dist/cliproxy/services/variant-settings.d.ts +32 -0
- package/dist/cliproxy/services/variant-settings.d.ts.map +1 -0
- package/dist/cliproxy/services/variant-settings.js +128 -0
- package/dist/cliproxy/services/variant-settings.js.map +1 -0
- package/dist/commands/api-command.d.ts +3 -6
- package/dist/commands/api-command.d.ts.map +1 -1
- package/dist/commands/api-command.js +84 -445
- package/dist/commands/api-command.js.map +1 -1
- package/dist/commands/cliproxy-command.d.ts +0 -3
- package/dist/commands/cliproxy-command.d.ts.map +1 -1
- package/dist/commands/cliproxy-command.js +182 -621
- package/dist/commands/cliproxy-command.js.map +1 -1
- package/dist/commands/index.d.ts +17 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +33 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/config/unified-config-loader.d.ts +7 -0
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +11 -1
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/delegation/executor/index.d.ts +7 -0
- package/dist/delegation/executor/index.d.ts.map +1 -0
- package/dist/delegation/executor/index.js +28 -0
- package/dist/delegation/executor/index.js.map +1 -0
- package/dist/delegation/executor/result-aggregator.d.ts +30 -0
- package/dist/delegation/executor/result-aggregator.d.ts.map +1 -0
- package/dist/delegation/executor/result-aggregator.js +66 -0
- package/dist/delegation/executor/result-aggregator.js.map +1 -0
- package/dist/delegation/executor/stream-parser.d.ts +28 -0
- package/dist/delegation/executor/stream-parser.d.ts.map +1 -0
- package/dist/delegation/executor/stream-parser.js +140 -0
- package/dist/delegation/executor/stream-parser.js.map +1 -0
- package/dist/delegation/executor/types.d.ts +121 -0
- package/dist/delegation/executor/types.d.ts.map +1 -0
- package/dist/delegation/executor/types.js +6 -0
- package/dist/delegation/executor/types.js.map +1 -0
- package/dist/delegation/headless-executor.d.ts +13 -91
- package/dist/delegation/headless-executor.d.ts.map +1 -1
- package/dist/delegation/headless-executor.js +84 -291
- package/dist/delegation/headless-executor.js.map +1 -1
- package/dist/delegation/index.d.ts +11 -0
- package/dist/delegation/index.d.ts.map +1 -0
- package/dist/delegation/index.js +33 -0
- package/dist/delegation/index.js.map +1 -0
- package/dist/delegation/result-formatter.d.ts +1 -30
- package/dist/delegation/result-formatter.d.ts.map +1 -1
- package/dist/delegation/result-formatter.js.map +1 -1
- package/dist/errors/cleanup-registry.d.ts +64 -0
- package/dist/errors/cleanup-registry.d.ts.map +1 -0
- package/dist/errors/cleanup-registry.js +141 -0
- package/dist/errors/cleanup-registry.js.map +1 -0
- package/dist/errors/error-handler.d.ts +45 -0
- package/dist/errors/error-handler.d.ts.map +1 -0
- package/dist/errors/error-handler.js +150 -0
- package/dist/errors/error-handler.js.map +1 -0
- package/dist/errors/error-types.d.ts +102 -0
- package/dist/errors/error-types.d.ts.map +1 -0
- package/dist/errors/error-types.js +158 -0
- package/dist/errors/error-types.js.map +1 -0
- package/dist/errors/exit-codes.d.ts +49 -0
- package/dist/errors/exit-codes.d.ts.map +1 -0
- package/dist/errors/exit-codes.js +72 -0
- package/dist/errors/exit-codes.js.map +1 -0
- package/dist/errors/index.d.ts +29 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +62 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/glmt/glmt-transformer.d.ts +29 -248
- package/dist/glmt/glmt-transformer.d.ts.map +1 -1
- package/dist/glmt/glmt-transformer.js +63 -718
- package/dist/glmt/glmt-transformer.js.map +1 -1
- package/dist/glmt/index.d.ts +14 -0
- package/dist/glmt/index.d.ts.map +1 -0
- package/dist/glmt/index.js +41 -0
- package/dist/glmt/index.js.map +1 -0
- package/dist/glmt/pipeline/content-transformer.d.ts +39 -0
- package/dist/glmt/pipeline/content-transformer.d.ts.map +1 -0
- package/dist/glmt/pipeline/content-transformer.js +162 -0
- package/dist/glmt/pipeline/content-transformer.js.map +1 -0
- package/dist/glmt/pipeline/index.d.ts +12 -0
- package/dist/glmt/pipeline/index.d.ts.map +1 -0
- package/dist/glmt/pipeline/index.js +20 -0
- package/dist/glmt/pipeline/index.js.map +1 -0
- package/dist/glmt/pipeline/request-transformer.d.ts +31 -0
- package/dist/glmt/pipeline/request-transformer.d.ts.map +1 -0
- package/dist/glmt/pipeline/request-transformer.js +116 -0
- package/dist/glmt/pipeline/request-transformer.js.map +1 -0
- package/dist/glmt/pipeline/response-builder.d.ts +52 -0
- package/dist/glmt/pipeline/response-builder.d.ts.map +1 -0
- package/dist/glmt/pipeline/response-builder.js +205 -0
- package/dist/glmt/pipeline/response-builder.js.map +1 -0
- package/dist/glmt/pipeline/stream-parser.d.ts +59 -0
- package/dist/glmt/pipeline/stream-parser.d.ts.map +1 -0
- package/dist/glmt/pipeline/stream-parser.js +241 -0
- package/dist/glmt/pipeline/stream-parser.js.map +1 -0
- package/dist/glmt/pipeline/tool-call-handler.d.ts +22 -0
- package/dist/glmt/pipeline/tool-call-handler.d.ts.map +1 -0
- package/dist/glmt/pipeline/tool-call-handler.js +87 -0
- package/dist/glmt/pipeline/tool-call-handler.js.map +1 -0
- package/dist/glmt/pipeline/types.d.ts +159 -0
- package/dist/glmt/pipeline/types.d.ts.map +1 -0
- package/dist/glmt/pipeline/types.js +6 -0
- package/dist/glmt/pipeline/types.js.map +1 -0
- package/dist/management/checks/cliproxy-check.d.ts +37 -0
- package/dist/management/checks/cliproxy-check.d.ts.map +1 -0
- package/dist/management/checks/cliproxy-check.js +187 -0
- package/dist/management/checks/cliproxy-check.js.map +1 -0
- package/dist/management/checks/config-check.d.ts +27 -0
- package/dist/management/checks/config-check.d.ts.map +1 -0
- package/dist/management/checks/config-check.js +158 -0
- package/dist/management/checks/config-check.js.map +1 -0
- package/dist/management/checks/env-check.d.ts +17 -0
- package/dist/management/checks/env-check.d.ts.map +1 -0
- package/dist/management/checks/env-check.js +71 -0
- package/dist/management/checks/env-check.js.map +1 -0
- package/dist/management/checks/index.d.ts +12 -0
- package/dist/management/checks/index.d.ts.map +1 -0
- package/dist/management/checks/index.js +48 -0
- package/dist/management/checks/index.js.map +1 -0
- package/dist/management/checks/oauth-check.d.ts +16 -0
- package/dist/management/checks/oauth-check.d.ts.map +1 -0
- package/dist/management/checks/oauth-check.js +68 -0
- package/dist/management/checks/oauth-check.js.map +1 -0
- package/dist/management/checks/profile-check.d.ts +36 -0
- package/dist/management/checks/profile-check.d.ts.map +1 -0
- package/dist/management/checks/profile-check.js +165 -0
- package/dist/management/checks/profile-check.js.map +1 -0
- package/dist/management/checks/symlink-check.d.ts +30 -0
- package/dist/management/checks/symlink-check.d.ts.map +1 -0
- package/dist/management/checks/symlink-check.js +204 -0
- package/dist/management/checks/symlink-check.js.map +1 -0
- package/dist/management/checks/system-check.d.ts +25 -0
- package/dist/management/checks/system-check.d.ts.map +1 -0
- package/dist/management/checks/system-check.js +136 -0
- package/dist/management/checks/system-check.js.map +1 -0
- package/dist/management/checks/types.d.ts +64 -0
- package/dist/management/checks/types.d.ts.map +1 -0
- package/dist/management/checks/types.js +63 -0
- package/dist/management/checks/types.js.map +1 -0
- package/dist/management/doctor.d.ts +3 -92
- package/dist/management/doctor.d.ts.map +1 -1
- package/dist/management/doctor.js +15 -831
- package/dist/management/doctor.js.map +1 -1
- package/dist/management/index.d.ts +15 -0
- package/dist/management/index.d.ts.map +1 -0
- package/dist/management/index.js +56 -0
- package/dist/management/index.js.map +1 -0
- package/dist/management/repair/auto-repair.d.ts +13 -0
- package/dist/management/repair/auto-repair.d.ts.map +1 -0
- package/dist/management/repair/auto-repair.js +170 -0
- package/dist/management/repair/auto-repair.js.map +1 -0
- package/dist/management/repair/index.d.ts +5 -0
- package/dist/management/repair/index.d.ts.map +1 -0
- package/dist/management/repair/index.js +9 -0
- package/dist/management/repair/index.js.map +1 -0
- package/dist/types/delegation.d.ts +1 -13
- package/dist/types/delegation.d.ts.map +1 -1
- package/dist/types/utils.d.ts +27 -0
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/ui/assets/{accounts-p1_nf0Jy.js → accounts-BqDNXZu4.js} +1 -1
- package/dist/ui/assets/analytics-DQMyOsqI.js +1 -0
- package/dist/ui/assets/api-Bzyq4XP7.js +1 -0
- package/dist/ui/assets/{card-CCDc-Mx9.js → card-CIN0KDsX.js} +1 -1
- package/dist/ui/assets/cliproxy-5iKdPrEG.js +3 -0
- package/dist/ui/assets/cliproxy-control-panel-CJ2CfYod.js +1 -0
- package/dist/ui/assets/{code-editor-Br9x-r-E.js → code-editor-CDmNFLQ6.js} +1 -1
- package/dist/ui/assets/confirm-dialog-CaiDQikc.js +1 -0
- package/dist/ui/assets/copilot-nS6iAyk2.js +4 -0
- package/dist/ui/assets/form-utils-DP6ILe7Z.js +20 -0
- package/dist/ui/assets/health-DYOQfC7u.js +1 -0
- package/dist/ui/assets/{icons-BOsxPbiD.js → icons-ZmwVoUeR.js} +1 -1
- package/dist/ui/assets/index-C6Dah-xh.js +46 -0
- package/dist/ui/assets/index-It66SkKf.css +1 -0
- package/dist/ui/assets/{radix-ui-DFHQr9A5.js → radix-ui-CV3R9pD6.js} +3 -3
- package/dist/ui/assets/settings-DABC9b5G.js +1 -0
- package/dist/ui/assets/{shared-BfYhSN4-.js → shared-BwU4OKQc.js} +1 -1
- package/dist/ui/assets/{switch-CMk95lwf.js → switch-BQ6sBBUv.js} +1 -1
- package/dist/ui/assets/{tanstack-C4gT2P7V.js → tanstack-Df9bCj5R.js} +1 -1
- package/dist/ui/index.html +6 -6
- package/dist/utils/claude-spawner.d.ts +54 -0
- package/dist/utils/claude-spawner.d.ts.map +1 -0
- package/dist/utils/claude-spawner.js +118 -0
- package/dist/utils/claude-spawner.js.map +1 -0
- package/dist/utils/delegation-validator.d.ts +8 -4
- package/dist/utils/delegation-validator.d.ts.map +1 -1
- package/dist/utils/delegation-validator.js.map +1 -1
- package/dist/utils/helpers.d.ts +0 -11
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/utils/helpers.js +1 -57
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/index.d.ts +15 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +50 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/time.d.ts +10 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +27 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/utils/ui/boxes.d.ts +24 -0
- package/dist/utils/ui/boxes.d.ts.map +1 -0
- package/dist/utils/ui/boxes.js +108 -0
- package/dist/utils/ui/boxes.js.map +1 -0
- package/dist/utils/ui/colors.d.ts +25 -0
- package/dist/utils/ui/colors.d.ts.map +1 -0
- package/dist/utils/ui/colors.js +70 -0
- package/dist/utils/ui/colors.js.map +1 -0
- package/dist/utils/ui/index.d.ts +51 -0
- package/dist/utils/ui/index.d.ts.map +1 -0
- package/dist/utils/ui/index.js +96 -0
- package/dist/utils/ui/index.js.map +1 -0
- package/dist/utils/ui/indicators.d.ts +23 -0
- package/dist/utils/ui/indicators.d.ts.map +1 -0
- package/dist/utils/ui/indicators.js +39 -0
- package/dist/utils/ui/indicators.js.map +1 -0
- package/dist/utils/ui/init.d.ts +30 -0
- package/dist/utils/ui/init.d.ts.map +1 -0
- package/dist/utils/ui/init.js +102 -0
- package/dist/utils/ui/init.js.map +1 -0
- package/dist/utils/ui/spinner.d.ts +13 -0
- package/dist/utils/ui/spinner.d.ts.map +1 -0
- package/dist/utils/ui/spinner.js +89 -0
- package/dist/utils/ui/spinner.js.map +1 -0
- package/dist/utils/ui/tables.d.ts +12 -0
- package/dist/utils/ui/tables.d.ts.map +1 -0
- package/dist/utils/ui/tables.js +69 -0
- package/dist/utils/ui/tables.js.map +1 -0
- package/dist/utils/ui/tasks.d.ts +26 -0
- package/dist/utils/ui/tasks.d.ts.map +1 -0
- package/dist/utils/ui/tasks.js +102 -0
- package/dist/utils/ui/tasks.js.map +1 -0
- package/dist/utils/ui/text.d.ts +24 -0
- package/dist/utils/ui/text.d.ts.map +1 -0
- package/dist/utils/ui/text.js +60 -0
- package/dist/utils/ui/text.js.map +1 -0
- package/dist/utils/ui/types.d.ts +36 -0
- package/dist/utils/ui/types.d.ts.map +1 -0
- package/dist/utils/ui/types.js +33 -0
- package/dist/utils/ui/types.js.map +1 -0
- package/dist/utils/ui.d.ts +3 -138
- package/dist/utils/ui.d.ts.map +1 -1
- package/dist/utils/ui.js +40 -567
- package/dist/utils/ui.js.map +1 -1
- package/dist/utils/websearch/gemini-cli.d.ts +36 -0
- package/dist/utils/websearch/gemini-cli.d.ts.map +1 -0
- package/dist/utils/websearch/gemini-cli.js +132 -0
- package/dist/utils/websearch/gemini-cli.js.map +1 -0
- package/dist/utils/websearch/grok-cli.d.ts +26 -0
- package/dist/utils/websearch/grok-cli.d.ts.map +1 -0
- package/dist/utils/websearch/grok-cli.js +81 -0
- package/dist/utils/websearch/grok-cli.js.map +1 -0
- package/dist/utils/websearch/hook-config.d.ts +21 -0
- package/dist/utils/websearch/hook-config.d.ts.map +1 -0
- package/dist/utils/websearch/hook-config.js +183 -0
- package/dist/utils/websearch/hook-config.js.map +1 -0
- package/dist/utils/websearch/hook-env.d.ts +16 -0
- package/dist/utils/websearch/hook-env.d.ts.map +1 -0
- package/dist/utils/websearch/hook-env.js +62 -0
- package/dist/utils/websearch/hook-env.js.map +1 -0
- package/dist/utils/websearch/hook-installer.d.ts +27 -0
- package/dist/utils/websearch/hook-installer.d.ts.map +1 -0
- package/dist/utils/websearch/hook-installer.js +141 -0
- package/dist/utils/websearch/hook-installer.js.map +1 -0
- package/dist/utils/websearch/index.d.ts +15 -0
- package/dist/utils/websearch/index.d.ts.map +1 -0
- package/dist/utils/websearch/index.js +44 -0
- package/dist/utils/websearch/index.js.map +1 -0
- package/dist/utils/websearch/opencode-cli.d.ts +26 -0
- package/dist/utils/websearch/opencode-cli.d.ts.map +1 -0
- package/dist/utils/websearch/opencode-cli.js +81 -0
- package/dist/utils/websearch/opencode-cli.js.map +1 -0
- package/dist/utils/websearch/status.d.ts +35 -0
- package/dist/utils/websearch/status.d.ts.map +1 -0
- package/dist/utils/websearch/status.js +185 -0
- package/dist/utils/websearch/status.js.map +1 -0
- package/dist/utils/websearch/types.d.ts +85 -0
- package/dist/utils/websearch/types.d.ts.map +1 -0
- package/dist/utils/websearch/types.js +10 -0
- package/dist/utils/websearch/types.js.map +1 -0
- package/dist/utils/websearch-manager.d.ts +7 -186
- package/dist/utils/websearch-manager.d.ts.map +1 -1
- package/dist/utils/websearch-manager.js +37 -710
- package/dist/utils/websearch-manager.js.map +1 -1
- package/dist/web-server/data-aggregator.d.ts +3 -51
- package/dist/web-server/data-aggregator.d.ts.map +1 -1
- package/dist/web-server/data-aggregator.js +18 -386
- package/dist/web-server/data-aggregator.js.map +1 -1
- package/dist/web-server/health/cliproxy-checks.d.ts +23 -0
- package/dist/web-server/health/cliproxy-checks.d.ts.map +1 -0
- package/dist/web-server/health/cliproxy-checks.js +145 -0
- package/dist/web-server/health/cliproxy-checks.js.map +1 -0
- package/dist/web-server/health/config-checks.d.ts +19 -0
- package/dist/web-server/health/config-checks.d.ts.map +1 -0
- package/dist/web-server/health/config-checks.js +174 -0
- package/dist/web-server/health/config-checks.js.map +1 -0
- package/dist/web-server/health/environment-checks.d.ts +11 -0
- package/dist/web-server/health/environment-checks.d.ts.map +1 -0
- package/dist/web-server/health/environment-checks.js +40 -0
- package/dist/web-server/health/environment-checks.js.map +1 -0
- package/dist/web-server/health/index.d.ts +13 -0
- package/dist/web-server/health/index.d.ts.map +1 -0
- package/dist/web-server/health/index.js +41 -0
- package/dist/web-server/health/index.js.map +1 -0
- package/dist/web-server/health/oauth-checks.d.ts +11 -0
- package/dist/web-server/health/oauth-checks.d.ts.map +1 -0
- package/dist/web-server/health/oauth-checks.js +34 -0
- package/dist/web-server/health/oauth-checks.js.map +1 -0
- package/dist/web-server/health/profile-checks.d.ts +19 -0
- package/dist/web-server/health/profile-checks.d.ts.map +1 -0
- package/dist/web-server/health/profile-checks.js +152 -0
- package/dist/web-server/health/profile-checks.js.map +1 -0
- package/dist/web-server/health/symlink-checks.d.ts +15 -0
- package/dist/web-server/health/symlink-checks.d.ts.map +1 -0
- package/dist/web-server/health/symlink-checks.js +173 -0
- package/dist/web-server/health/symlink-checks.js.map +1 -0
- package/dist/web-server/health/system-checks.d.ts +19 -0
- package/dist/web-server/health/system-checks.d.ts.map +1 -0
- package/dist/web-server/health/system-checks.js +127 -0
- package/dist/web-server/health/system-checks.js.map +1 -0
- package/dist/web-server/health/types.d.ts +34 -0
- package/dist/web-server/health/types.d.ts.map +1 -0
- package/dist/web-server/health/types.js +8 -0
- package/dist/web-server/health/types.js.map +1 -0
- package/dist/web-server/health/websearch-checks.d.ts +11 -0
- package/dist/web-server/health/websearch-checks.d.ts.map +1 -0
- package/dist/web-server/health/websearch-checks.js +53 -0
- package/dist/web-server/health/websearch-checks.js.map +1 -0
- package/dist/web-server/health-service.d.ts +4 -30
- package/dist/web-server/health-service.d.ts.map +1 -1
- package/dist/web-server/health-service.js +28 -695
- package/dist/web-server/health-service.js.map +1 -1
- package/dist/web-server/index.d.ts.map +1 -1
- package/dist/web-server/index.js +2 -5
- package/dist/web-server/index.js.map +1 -1
- package/dist/web-server/routes/cliproxy-auth-routes.d.ts +6 -0
- package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -0
- package/dist/web-server/routes/cliproxy-auth-routes.js +202 -0
- package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes.d.ts +6 -0
- package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes.js +253 -0
- package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -0
- package/dist/web-server/routes/config-routes.d.ts +6 -0
- package/dist/web-server/routes/config-routes.d.ts.map +1 -0
- package/dist/web-server/routes/config-routes.js +145 -0
- package/dist/web-server/routes/config-routes.js.map +1 -0
- package/dist/web-server/routes/copilot-routes.d.ts +6 -0
- package/dist/web-server/routes/copilot-routes.d.ts.map +1 -0
- package/dist/web-server/routes/copilot-routes.js +195 -0
- package/dist/web-server/routes/copilot-routes.js.map +1 -0
- package/dist/web-server/routes/copilot-settings-routes.d.ts +6 -0
- package/dist/web-server/routes/copilot-settings-routes.d.ts.map +1 -0
- package/dist/web-server/routes/copilot-settings-routes.js +122 -0
- package/dist/web-server/routes/copilot-settings-routes.js.map +1 -0
- package/dist/web-server/routes/health-routes.d.ts +6 -0
- package/dist/web-server/routes/health-routes.d.ts.map +1 -0
- package/dist/web-server/routes/health-routes.js +30 -0
- package/dist/web-server/routes/health-routes.js.map +1 -0
- package/dist/web-server/routes/index.d.ts +8 -0
- package/dist/web-server/routes/index.d.ts.map +1 -0
- package/dist/web-server/routes/index.js +54 -0
- package/dist/web-server/routes/index.js.map +1 -0
- package/dist/web-server/routes/misc-routes.d.ts +6 -0
- package/dist/web-server/routes/misc-routes.d.ts.map +1 -0
- package/dist/web-server/routes/misc-routes.js +219 -0
- package/dist/web-server/routes/misc-routes.js.map +1 -0
- package/dist/web-server/routes/profile-routes.d.ts +6 -0
- package/dist/web-server/routes/profile-routes.d.ts.map +1 -0
- package/dist/web-server/routes/profile-routes.js +164 -0
- package/dist/web-server/routes/profile-routes.js.map +1 -0
- package/dist/web-server/routes/provider-routes.d.ts +6 -0
- package/dist/web-server/routes/provider-routes.d.ts.map +1 -0
- package/dist/web-server/routes/provider-routes.js +146 -0
- package/dist/web-server/routes/provider-routes.js.map +1 -0
- package/dist/web-server/routes/route-helpers.d.ts +55 -0
- package/dist/web-server/routes/route-helpers.d.ts.map +1 -0
- package/dist/web-server/routes/route-helpers.js +201 -0
- package/dist/web-server/routes/route-helpers.js.map +1 -0
- package/dist/web-server/routes/settings-routes.d.ts +6 -0
- package/dist/web-server/routes/settings-routes.d.ts.map +1 -0
- package/dist/web-server/routes/settings-routes.js +207 -0
- package/dist/web-server/routes/settings-routes.js.map +1 -0
- package/dist/web-server/routes/variant-routes.d.ts +6 -0
- package/dist/web-server/routes/variant-routes.d.ts.map +1 -0
- package/dist/web-server/routes/variant-routes.js +158 -0
- package/dist/web-server/routes/variant-routes.js.map +1 -0
- package/dist/web-server/routes/websearch-routes.d.ts +6 -0
- package/dist/web-server/routes/websearch-routes.d.ts.map +1 -0
- package/dist/web-server/routes/websearch-routes.js +130 -0
- package/dist/web-server/routes/websearch-routes.js.map +1 -0
- package/dist/web-server/services/index.d.ts +7 -0
- package/dist/web-server/services/index.d.ts.map +1 -0
- package/dist/web-server/services/index.js +21 -0
- package/dist/web-server/services/index.js.map +1 -0
- package/dist/web-server/services/usage-aggregator.d.ts +7 -0
- package/dist/web-server/services/usage-aggregator.d.ts.map +1 -0
- package/dist/web-server/services/usage-aggregator.js +23 -0
- package/dist/web-server/services/usage-aggregator.js.map +1 -0
- package/dist/web-server/usage/aggregator.d.ts +54 -0
- package/dist/web-server/usage/aggregator.d.ts.map +1 -0
- package/dist/web-server/usage/aggregator.js +470 -0
- package/dist/web-server/usage/aggregator.js.map +1 -0
- package/dist/web-server/usage/data-aggregator.d.ts +55 -0
- package/dist/web-server/usage/data-aggregator.d.ts.map +1 -0
- package/dist/web-server/usage/data-aggregator.js +391 -0
- package/dist/web-server/usage/data-aggregator.js.map +1 -0
- package/dist/web-server/usage/disk-cache.d.ts +46 -0
- package/dist/web-server/usage/disk-cache.d.ts.map +1 -0
- package/dist/web-server/usage/disk-cache.js +162 -0
- package/dist/web-server/usage/disk-cache.js.map +1 -0
- package/dist/web-server/usage/handlers.d.ts +50 -0
- package/dist/web-server/usage/handlers.d.ts.map +1 -0
- package/dist/web-server/usage/handlers.js +524 -0
- package/dist/web-server/usage/handlers.js.map +1 -0
- package/dist/web-server/usage/index.d.ts +12 -0
- package/dist/web-server/usage/index.d.ts.map +1 -0
- package/dist/web-server/usage/index.js +54 -0
- package/dist/web-server/usage/index.js.map +1 -0
- package/dist/web-server/usage/routes.d.ts +11 -0
- package/dist/web-server/usage/routes.d.ts.map +1 -0
- package/dist/web-server/usage/routes.js +37 -0
- package/dist/web-server/usage/routes.js.map +1 -0
- package/dist/web-server/usage/types.d.ts +119 -0
- package/dist/web-server/usage/types.d.ts.map +1 -0
- package/dist/web-server/usage/types.js +9 -0
- package/dist/web-server/usage/types.js.map +1 -0
- package/dist/web-server/usage-disk-cache.d.ts +3 -42
- package/dist/web-server/usage-disk-cache.d.ts.map +1 -1
- package/dist/web-server/usage-disk-cache.js +5 -144
- package/dist/web-server/usage-disk-cache.js.map +1 -1
- package/dist/web-server/usage-routes.d.ts +3 -31
- package/dist/web-server/usage-routes.d.ts.map +1 -1
- package/dist/web-server/usage-routes.js +8 -1139
- package/dist/web-server/usage-routes.js.map +1 -1
- package/dist/web-server/usage-types.d.ts +3 -115
- package/dist/web-server/usage-types.d.ts.map +1 -1
- package/dist/web-server/usage-types.js +17 -3
- package/dist/web-server/usage-types.js.map +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/analytics-D1k2nYcF.js +0 -1
- package/dist/ui/assets/api-D9VVmZ1j.js +0 -1
- package/dist/ui/assets/cliproxy-CTt_Nsft.js +0 -1
- package/dist/ui/assets/cliproxy-control-panel-DKMAi4_4.js +0 -1
- package/dist/ui/assets/copilot-C6F8PT_L.js +0 -4
- package/dist/ui/assets/form-utils-BuXDJb0w.js +0 -20
- package/dist/ui/assets/health-DiAvJaSn.js +0 -1
- package/dist/ui/assets/index-Brq6EBKZ.css +0 -1
- package/dist/ui/assets/index-ByU8ZhED.js +0 -48
- package/dist/ui/assets/settings-CEomZLGl.js +0 -1
- package/dist/web-server/routes.d.ts +0 -7
- package/dist/web-server/routes.d.ts.map +0 -1
- package/dist/web-server/routes.js +0 -1891
- package/dist/web-server/routes.js.map +0 -1
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Symlink and Permission Health Checks
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.runSymlinkChecks = exports.SettingsSymlinksChecker = exports.CcsSymlinksChecker = exports.PermissionsChecker = void 0;
|
|
30
|
+
const fs = __importStar(require("fs"));
|
|
31
|
+
const path = __importStar(require("path"));
|
|
32
|
+
const os = __importStar(require("os"));
|
|
33
|
+
const ui_1 = require("../../utils/ui");
|
|
34
|
+
const types_1 = require("./types");
|
|
35
|
+
const ora = (0, types_1.createSpinner)();
|
|
36
|
+
const homedir = os.homedir();
|
|
37
|
+
const ccsDir = path.join(homedir, '.ccs');
|
|
38
|
+
const claudeDir = path.join(homedir, '.claude');
|
|
39
|
+
/**
|
|
40
|
+
* Check file permissions on ~/.ccs/
|
|
41
|
+
*/
|
|
42
|
+
class PermissionsChecker {
|
|
43
|
+
constructor() {
|
|
44
|
+
this.name = 'Permissions';
|
|
45
|
+
}
|
|
46
|
+
run(results) {
|
|
47
|
+
const spinner = ora('Checking permissions').start();
|
|
48
|
+
const testFile = path.join(ccsDir, '.permission-test');
|
|
49
|
+
try {
|
|
50
|
+
fs.writeFileSync(testFile, 'test', 'utf8');
|
|
51
|
+
fs.unlinkSync(testFile);
|
|
52
|
+
spinner.succeed();
|
|
53
|
+
console.log(` ${(0, ui_1.ok)('Permissions'.padEnd(22))} Write access verified`);
|
|
54
|
+
results.addCheck('Permissions', 'success', undefined, undefined, {
|
|
55
|
+
status: 'OK',
|
|
56
|
+
info: 'Write access verified',
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
catch (_e) {
|
|
60
|
+
spinner.fail();
|
|
61
|
+
console.log(` ${(0, ui_1.fail)('Permissions'.padEnd(22))} Cannot write to ~/.ccs/`);
|
|
62
|
+
results.addCheck('Permissions', 'error', 'Cannot write to ~/.ccs/', 'Fix: sudo chown -R $USER ~/.ccs ~/.claude && chmod 755 ~/.ccs ~/.claude', { status: 'ERROR', info: 'Cannot write to ~/.ccs/' });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.PermissionsChecker = PermissionsChecker;
|
|
67
|
+
/**
|
|
68
|
+
* Check CCS symlinks to ~/.claude/
|
|
69
|
+
*/
|
|
70
|
+
class CcsSymlinksChecker {
|
|
71
|
+
constructor() {
|
|
72
|
+
this.name = 'CCS Symlinks';
|
|
73
|
+
}
|
|
74
|
+
run(results) {
|
|
75
|
+
const spinner = ora('Checking CCS symlinks').start();
|
|
76
|
+
try {
|
|
77
|
+
const { ClaudeSymlinkManager } = require('../../utils/claude-symlink-manager');
|
|
78
|
+
const manager = new ClaudeSymlinkManager();
|
|
79
|
+
const health = manager.checkHealth();
|
|
80
|
+
if (health.healthy) {
|
|
81
|
+
const cnt = manager.ccsItems.length;
|
|
82
|
+
spinner.succeed();
|
|
83
|
+
console.log(` ${(0, ui_1.ok)('CCS Symlinks'.padEnd(22))} ${cnt}/${cnt} items linked`);
|
|
84
|
+
results.addCheck('CCS Symlinks', 'success', 'All CCS items properly symlinked', undefined, {
|
|
85
|
+
status: 'OK',
|
|
86
|
+
info: `${cnt}/${cnt} items synced`,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
spinner.warn();
|
|
91
|
+
console.log(` ${(0, ui_1.warn)('CCS Symlinks'.padEnd(22))} ${health.issues.length} issues found`);
|
|
92
|
+
results.addCheck('CCS Symlinks', 'warning', health.issues.join(', '), 'Run: ccs sync', {
|
|
93
|
+
status: 'WARN',
|
|
94
|
+
info: `${health.issues.length} issues`,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch (e) {
|
|
99
|
+
spinner.warn();
|
|
100
|
+
console.log(` ${(0, ui_1.warn)('CCS Symlinks'.padEnd(22))} Could not check`);
|
|
101
|
+
results.addCheck('CCS Symlinks', 'warning', 'Could not check CCS symlinks: ' + e.message, 'Run: ccs sync', { status: 'WARN', info: 'Could not check' });
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.CcsSymlinksChecker = CcsSymlinksChecker;
|
|
106
|
+
/** Helper: Check if symlink points to expected target */
|
|
107
|
+
function isValidSymlink(symlinkPath, expectedTarget) {
|
|
108
|
+
if (!fs.existsSync(symlinkPath))
|
|
109
|
+
return false;
|
|
110
|
+
try {
|
|
111
|
+
const stats = fs.lstatSync(symlinkPath);
|
|
112
|
+
if (!stats.isSymbolicLink())
|
|
113
|
+
return false;
|
|
114
|
+
const target = fs.readlinkSync(symlinkPath);
|
|
115
|
+
const resolved = path.resolve(path.dirname(symlinkPath), target);
|
|
116
|
+
return resolved === expectedTarget;
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Check settings.json symlinks for instances
|
|
124
|
+
*/
|
|
125
|
+
class SettingsSymlinksChecker {
|
|
126
|
+
constructor() {
|
|
127
|
+
this.name = 'Settings Symlinks';
|
|
128
|
+
}
|
|
129
|
+
run(results) {
|
|
130
|
+
const spinner = ora('Checking settings.json symlinks').start();
|
|
131
|
+
const label = 'settings.json';
|
|
132
|
+
const sharedSettings = path.join(ccsDir, 'shared', 'settings.json');
|
|
133
|
+
const claudeSettings = path.join(claudeDir, 'settings.json');
|
|
134
|
+
try {
|
|
135
|
+
// Check shared settings symlink
|
|
136
|
+
if (!fs.existsSync(sharedSettings)) {
|
|
137
|
+
spinner.warn();
|
|
138
|
+
console.log(` ${(0, ui_1.warn)(label.padEnd(22))} Not found (shared)`);
|
|
139
|
+
results.addCheck('Settings Symlinks', 'warning', 'Shared settings.json not found', 'Run: ccs sync');
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
const sharedStats = fs.lstatSync(sharedSettings);
|
|
143
|
+
if (!sharedStats.isSymbolicLink()) {
|
|
144
|
+
spinner.warn();
|
|
145
|
+
console.log(` ${(0, ui_1.warn)(label.padEnd(22))} Not a symlink (shared)`);
|
|
146
|
+
results.addCheck('Settings Symlinks', 'warning', 'Shared settings.json is not a symlink', 'Run: ccs sync');
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (!isValidSymlink(sharedSettings, claudeSettings)) {
|
|
150
|
+
spinner.warn();
|
|
151
|
+
console.log(` ${(0, ui_1.warn)(label.padEnd(22))} Wrong target (shared)`);
|
|
152
|
+
results.addCheck('Settings Symlinks', 'warning', 'Shared symlink points to wrong target', 'Run: ccs sync');
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
// Check instances
|
|
156
|
+
const instancesDir = path.join(ccsDir, 'instances');
|
|
157
|
+
if (!fs.existsSync(instancesDir)) {
|
|
158
|
+
spinner.succeed();
|
|
159
|
+
console.log(` ${(0, ui_1.ok)(label.padEnd(22))} Shared symlink valid`);
|
|
160
|
+
results.addCheck('Settings Symlinks', 'success', 'Shared symlink valid', undefined, {
|
|
161
|
+
status: 'OK',
|
|
162
|
+
info: 'Shared symlink valid',
|
|
163
|
+
});
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const instances = fs
|
|
167
|
+
.readdirSync(instancesDir)
|
|
168
|
+
.filter((n) => fs.statSync(path.join(instancesDir, n)).isDirectory());
|
|
169
|
+
const broken = instances.filter((inst) => {
|
|
170
|
+
const instSettings = path.join(instancesDir, inst, 'settings.json');
|
|
171
|
+
return !isValidSymlink(instSettings, sharedSettings);
|
|
172
|
+
}).length;
|
|
173
|
+
if (broken > 0) {
|
|
174
|
+
spinner.warn();
|
|
175
|
+
console.log(` ${(0, ui_1.warn)(label.padEnd(22))} ${broken} broken instance(s)`);
|
|
176
|
+
results.addCheck('Settings Symlinks', 'warning', `${broken} instance(s) have broken symlinks`, 'Run: ccs sync', { status: 'WARN', info: `${broken} broken instance(s)` });
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
spinner.succeed();
|
|
180
|
+
console.log(` ${(0, ui_1.ok)(label.padEnd(22))} ${instances.length} instance(s) valid`);
|
|
181
|
+
results.addCheck('Settings Symlinks', 'success', 'All instance symlinks valid', undefined, {
|
|
182
|
+
status: 'OK',
|
|
183
|
+
info: `${instances.length} instance(s) valid`,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
spinner.warn();
|
|
189
|
+
console.log(` ${(0, ui_1.warn)(label.padEnd(22))} Check failed`);
|
|
190
|
+
results.addCheck('Settings Symlinks', 'warning', `Failed to check: ${err.message}`, 'Run: ccs sync', { status: 'WARN', info: 'Check failed' });
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.SettingsSymlinksChecker = SettingsSymlinksChecker;
|
|
195
|
+
/**
|
|
196
|
+
* Run all symlink checks
|
|
197
|
+
*/
|
|
198
|
+
function runSymlinkChecks(results) {
|
|
199
|
+
new PermissionsChecker().run(results);
|
|
200
|
+
new CcsSymlinksChecker().run(results);
|
|
201
|
+
new SettingsSymlinksChecker().run(results);
|
|
202
|
+
}
|
|
203
|
+
exports.runSymlinkChecks = runSymlinkChecks;
|
|
204
|
+
//# sourceMappingURL=symlink-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symlink-check.js","sourceRoot":"","sources":["../../../src/management/checks/symlink-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System Health Checks - Claude CLI and CCS Directory
|
|
3
|
+
*/
|
|
4
|
+
import { HealthCheck, IHealthChecker } from './types';
|
|
5
|
+
/**
|
|
6
|
+
* Check Claude CLI availability and version
|
|
7
|
+
*/
|
|
8
|
+
export declare class ClaudeCliChecker implements IHealthChecker {
|
|
9
|
+
name: string;
|
|
10
|
+
run(results: HealthCheck): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Check ~/.ccs/ directory exists
|
|
14
|
+
*/
|
|
15
|
+
export declare class CcsDirectoryChecker implements IHealthChecker {
|
|
16
|
+
name: string;
|
|
17
|
+
private readonly ccsDir;
|
|
18
|
+
constructor();
|
|
19
|
+
run(results: HealthCheck): void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Run all system checks
|
|
23
|
+
*/
|
|
24
|
+
export declare function runSystemChecks(results: HealthCheck): Promise<void>;
|
|
25
|
+
//# sourceMappingURL=system-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-check.d.ts","sourceRoot":"","sources":["../../../src/management/checks/system-check.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AAIrE;;GAEG;AACH,qBAAa,gBAAiB,YAAW,cAAc;IACrD,IAAI,SAAgB;IAEd,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAsE/C;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IACxD,IAAI,SAAmB;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAMhC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CAsBhC;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzE"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* System Health Checks - Claude CLI and CCS Directory
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.runSystemChecks = exports.CcsDirectoryChecker = exports.ClaudeCliChecker = void 0;
|
|
30
|
+
const fs = __importStar(require("fs"));
|
|
31
|
+
const path = __importStar(require("path"));
|
|
32
|
+
const os = __importStar(require("os"));
|
|
33
|
+
const child_process_1 = require("child_process");
|
|
34
|
+
const claude_detector_1 = require("../../utils/claude-detector");
|
|
35
|
+
const shell_executor_1 = require("../../utils/shell-executor");
|
|
36
|
+
const ui_1 = require("../../utils/ui");
|
|
37
|
+
const types_1 = require("./types");
|
|
38
|
+
const ora = (0, types_1.createSpinner)();
|
|
39
|
+
/**
|
|
40
|
+
* Check Claude CLI availability and version
|
|
41
|
+
*/
|
|
42
|
+
class ClaudeCliChecker {
|
|
43
|
+
constructor() {
|
|
44
|
+
this.name = 'Claude CLI';
|
|
45
|
+
}
|
|
46
|
+
async run(results) {
|
|
47
|
+
const spinner = ora('Checking Claude CLI').start();
|
|
48
|
+
const cliInfo = (0, claude_detector_1.getClaudeCliInfo)();
|
|
49
|
+
if (!cliInfo) {
|
|
50
|
+
spinner.fail();
|
|
51
|
+
console.log(` ${(0, ui_1.fail)('Claude CLI'.padEnd(22))} Not found in PATH`);
|
|
52
|
+
results.addCheck('Claude CLI', 'error', 'Claude CLI not found in PATH', 'Install from: https://docs.claude.com/en/docs/claude-code/installation', { status: 'ERROR', info: 'Not installed' });
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const { path: claudeCli, needsShell } = cliInfo;
|
|
56
|
+
// Try to execute claude --version
|
|
57
|
+
try {
|
|
58
|
+
const result = await new Promise((resolve, reject) => {
|
|
59
|
+
// When shell is needed (Windows .cmd/.bat files), concatenate into string
|
|
60
|
+
// to avoid DEP0190 warning about passing args with shell: true
|
|
61
|
+
const child = needsShell
|
|
62
|
+
? (0, child_process_1.spawn)([claudeCli, '--version'].map(shell_executor_1.escapeShellArg).join(' '), {
|
|
63
|
+
stdio: 'pipe',
|
|
64
|
+
timeout: 5000,
|
|
65
|
+
shell: true,
|
|
66
|
+
})
|
|
67
|
+
: (0, child_process_1.spawn)(claudeCli, ['--version'], {
|
|
68
|
+
stdio: 'pipe',
|
|
69
|
+
timeout: 5000,
|
|
70
|
+
});
|
|
71
|
+
let output = '';
|
|
72
|
+
child.stdout?.on('data', (data) => (output += data));
|
|
73
|
+
child.stderr?.on('data', (data) => (output += data));
|
|
74
|
+
child.on('close', (code) => {
|
|
75
|
+
if (code === 0)
|
|
76
|
+
resolve(output);
|
|
77
|
+
else
|
|
78
|
+
reject(new Error('Exit code ' + code));
|
|
79
|
+
});
|
|
80
|
+
child.on('error', reject);
|
|
81
|
+
});
|
|
82
|
+
// Extract version from output
|
|
83
|
+
const versionMatch = result.match(/(\d+\.\d+\.\d+)/);
|
|
84
|
+
const version = versionMatch ? versionMatch[1] : 'unknown';
|
|
85
|
+
spinner.succeed();
|
|
86
|
+
console.log(` ${(0, ui_1.ok)('Claude CLI'.padEnd(22))} v${version} (${claudeCli})`);
|
|
87
|
+
results.addCheck('Claude CLI', 'success', `Found: ${claudeCli}`, undefined, {
|
|
88
|
+
status: 'OK',
|
|
89
|
+
info: `v${version} (${claudeCli})`,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
catch (_err) {
|
|
93
|
+
spinner.fail();
|
|
94
|
+
console.log(` ${(0, ui_1.fail)('Claude CLI'.padEnd(22))} Not found or not working`);
|
|
95
|
+
results.addCheck('Claude CLI', 'error', 'Claude CLI not found or not working', 'Install from: https://docs.claude.com/en/docs/claude-code/installation', { status: 'ERROR', info: 'Not installed' });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.ClaudeCliChecker = ClaudeCliChecker;
|
|
100
|
+
/**
|
|
101
|
+
* Check ~/.ccs/ directory exists
|
|
102
|
+
*/
|
|
103
|
+
class CcsDirectoryChecker {
|
|
104
|
+
constructor() {
|
|
105
|
+
this.name = 'CCS Directory';
|
|
106
|
+
this.ccsDir = path.join(os.homedir(), '.ccs');
|
|
107
|
+
}
|
|
108
|
+
run(results) {
|
|
109
|
+
const spinner = ora('Checking ~/.ccs/ directory').start();
|
|
110
|
+
if (fs.existsSync(this.ccsDir)) {
|
|
111
|
+
spinner.succeed();
|
|
112
|
+
console.log(` ${(0, ui_1.ok)('CCS Directory'.padEnd(22))} ~/.ccs/`);
|
|
113
|
+
results.addCheck('CCS Directory', 'success', undefined, undefined, {
|
|
114
|
+
status: 'OK',
|
|
115
|
+
info: '~/.ccs/',
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
spinner.fail();
|
|
120
|
+
console.log(` ${(0, ui_1.fail)('CCS Directory'.padEnd(22))} Not found`);
|
|
121
|
+
results.addCheck('CCS Directory', 'error', '~/.ccs/ directory not found', 'Run: npm install -g @kaitranntt/ccs --force', { status: 'ERROR', info: 'Not found' });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.CcsDirectoryChecker = CcsDirectoryChecker;
|
|
126
|
+
/**
|
|
127
|
+
* Run all system checks
|
|
128
|
+
*/
|
|
129
|
+
async function runSystemChecks(results) {
|
|
130
|
+
const cliChecker = new ClaudeCliChecker();
|
|
131
|
+
const dirChecker = new CcsDirectoryChecker();
|
|
132
|
+
await cliChecker.run(results);
|
|
133
|
+
dirChecker.run(results);
|
|
134
|
+
}
|
|
135
|
+
exports.runSystemChecks = runSystemChecks;
|
|
136
|
+
//# sourceMappingURL=system-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-check.js","sourceRoot":"","sources":["../../../src/management/checks/system-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Health Check Types and Interfaces
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Spinner interface for ora or fallback
|
|
6
|
+
*/
|
|
7
|
+
export interface Spinner {
|
|
8
|
+
start(): {
|
|
9
|
+
succeed(msg?: string): void;
|
|
10
|
+
fail(msg?: string): void;
|
|
11
|
+
warn(msg?: string): void;
|
|
12
|
+
info(msg?: string): void;
|
|
13
|
+
text: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Details for individual health check
|
|
18
|
+
*/
|
|
19
|
+
export interface HealthCheckDetails {
|
|
20
|
+
status: 'OK' | 'ERROR' | 'WARN';
|
|
21
|
+
info: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Individual health check item
|
|
25
|
+
*/
|
|
26
|
+
export interface HealthCheckItem {
|
|
27
|
+
name: string;
|
|
28
|
+
status: 'success' | 'error' | 'warning';
|
|
29
|
+
message?: string;
|
|
30
|
+
fix?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Health issue (error or warning)
|
|
34
|
+
*/
|
|
35
|
+
export interface HealthIssue {
|
|
36
|
+
name: string;
|
|
37
|
+
message: string;
|
|
38
|
+
fix?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Health check results container
|
|
42
|
+
*/
|
|
43
|
+
export declare class HealthCheck {
|
|
44
|
+
checks: HealthCheckItem[];
|
|
45
|
+
warnings: HealthIssue[];
|
|
46
|
+
errors: HealthIssue[];
|
|
47
|
+
details: Record<string, HealthCheckDetails>;
|
|
48
|
+
addCheck(name: string, status: 'success' | 'error' | 'warning', message?: string, fix?: string | undefined, details?: HealthCheckDetails | undefined): void;
|
|
49
|
+
hasErrors(): boolean;
|
|
50
|
+
hasWarnings(): boolean;
|
|
51
|
+
isHealthy(): boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Base interface for all health checks
|
|
55
|
+
*/
|
|
56
|
+
export interface IHealthChecker {
|
|
57
|
+
name: string;
|
|
58
|
+
run(results: HealthCheck): Promise<void> | void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Create ora spinner with fallback for environments where ora is unavailable
|
|
62
|
+
*/
|
|
63
|
+
export declare function createSpinner(): (text: string) => Spinner;
|
|
64
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/management/checks/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,KAAK,IAAI;QACP,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,qBAAa,WAAW;IACf,MAAM,EAAE,eAAe,EAAE,CAAM;IAC/B,QAAQ,EAAE,WAAW,EAAE,CAAM;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAM;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAM;IAExD,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,EACvC,OAAO,SAAK,EACZ,GAAG,GAAE,MAAM,GAAG,SAAqB,EACnC,OAAO,GAAE,kBAAkB,GAAG,SAAqB,GAClD,IAAI;IAYP,SAAS,IAAI,OAAO;IAIpB,WAAW,IAAI,OAAO;IAItB,SAAS,IAAI,OAAO;CAGrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACjD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAkBzD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Health Check Types and Interfaces
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createSpinner = exports.HealthCheck = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Health check results container
|
|
9
|
+
*/
|
|
10
|
+
class HealthCheck {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.checks = [];
|
|
13
|
+
this.warnings = [];
|
|
14
|
+
this.errors = [];
|
|
15
|
+
this.details = {};
|
|
16
|
+
}
|
|
17
|
+
addCheck(name, status, message = '', fix = undefined, details = undefined) {
|
|
18
|
+
this.checks.push({ name, status, message, fix });
|
|
19
|
+
if (status === 'error')
|
|
20
|
+
this.errors.push({ name, message, fix });
|
|
21
|
+
if (status === 'warning')
|
|
22
|
+
this.warnings.push({ name, message, fix });
|
|
23
|
+
// Store details for summary table
|
|
24
|
+
if (details) {
|
|
25
|
+
this.details[name] = details;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
hasErrors() {
|
|
29
|
+
return this.errors.length > 0;
|
|
30
|
+
}
|
|
31
|
+
hasWarnings() {
|
|
32
|
+
return this.warnings.length > 0;
|
|
33
|
+
}
|
|
34
|
+
isHealthy() {
|
|
35
|
+
return !this.hasErrors();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.HealthCheck = HealthCheck;
|
|
39
|
+
/**
|
|
40
|
+
* Create ora spinner with fallback for environments where ora is unavailable
|
|
41
|
+
*/
|
|
42
|
+
function createSpinner() {
|
|
43
|
+
try {
|
|
44
|
+
const oraModule = require('ora');
|
|
45
|
+
return oraModule.default || oraModule;
|
|
46
|
+
}
|
|
47
|
+
catch (_e) {
|
|
48
|
+
// ora not available, create fallback spinner that uses console.log
|
|
49
|
+
return function (text) {
|
|
50
|
+
return {
|
|
51
|
+
start: () => ({
|
|
52
|
+
succeed: (msg) => console.log(msg || `[OK] ${text}`),
|
|
53
|
+
fail: (msg) => console.log(msg || `[X] ${text}`),
|
|
54
|
+
warn: (msg) => console.log(msg || `[!] ${text}`),
|
|
55
|
+
info: (msg) => console.log(msg || `[i] ${text}`),
|
|
56
|
+
text: '',
|
|
57
|
+
}),
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.createSpinner = createSpinner;
|
|
63
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/management/checks/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA0CH;;GAEG;AACH,MAAa,WAAW;IAAxB;QACS,WAAM,GAAsB,EAAE,CAAC;QAC/B,aAAQ,GAAkB,EAAE,CAAC;QAC7B,WAAM,GAAkB,EAAE,CAAC;QAC3B,YAAO,GAAuC,EAAE,CAAC;IA+B1D,CAAC;IA7BC,QAAQ,CACN,IAAY,EACZ,MAAuC,EACvC,OAAO,GAAG,EAAE,EACZ,MAA0B,SAAS,EACnC,UAA0C,SAAS;QAEnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAEjD,IAAI,MAAM,KAAK,OAAO;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QACjE,IAAI,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAErE,kCAAkC;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,SAAS;QACP,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IAC3B,CAAC;CACF;AAnCD,kCAmCC;AAUD;;GAEG;AACH,SAAgB,aAAa;IAC3B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC;IACxC,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,mEAAmE;QACnE,OAAO,UAAU,IAAY;YAC3B,OAAO;gBACL,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;oBACZ,OAAO,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,QAAQ,IAAI,EAAE,CAAC;oBAC7D,IAAI,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC;oBACzD,IAAI,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC;oBACzD,IAAI,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC;oBACzD,IAAI,EAAE,EAAE;iBACT,CAAC;aACH,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;AACH,CAAC;AAlBD,sCAkBC"}
|
|
@@ -1,41 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CCS Health Check and Diagnostics
|
|
2
|
+
* CCS Health Check and Diagnostics - Main Orchestrator
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
status: 'OK' | 'ERROR' | 'WARN';
|
|
6
|
-
info: string;
|
|
7
|
-
}
|
|
8
|
-
interface HealthCheckItem {
|
|
9
|
-
name: string;
|
|
10
|
-
status: 'success' | 'error' | 'warning';
|
|
11
|
-
message?: string;
|
|
12
|
-
fix?: string;
|
|
13
|
-
}
|
|
14
|
-
interface HealthIssue {
|
|
15
|
-
name: string;
|
|
16
|
-
message: string;
|
|
17
|
-
fix?: string;
|
|
18
|
-
}
|
|
4
|
+
import { HealthCheck } from './checks';
|
|
19
5
|
/**
|
|
20
|
-
*
|
|
21
|
-
*/
|
|
22
|
-
declare class HealthCheck {
|
|
23
|
-
checks: HealthCheckItem[];
|
|
24
|
-
warnings: HealthIssue[];
|
|
25
|
-
errors: HealthIssue[];
|
|
26
|
-
details: Record<string, HealthCheckDetails>;
|
|
27
|
-
addCheck(name: string, status: 'success' | 'error' | 'warning', message?: string, fix?: string | undefined, details?: HealthCheckDetails | undefined): void;
|
|
28
|
-
hasErrors(): boolean;
|
|
29
|
-
hasWarnings(): boolean;
|
|
30
|
-
isHealthy(): boolean;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Doctor Class
|
|
6
|
+
* Doctor Class - Orchestrates health checks
|
|
34
7
|
*/
|
|
35
8
|
declare class Doctor {
|
|
36
|
-
private readonly homedir;
|
|
37
|
-
private readonly ccsDir;
|
|
38
|
-
private readonly claudeDir;
|
|
39
9
|
private readonly results;
|
|
40
10
|
private readonly ccsVersion;
|
|
41
11
|
constructor();
|
|
@@ -43,60 +13,6 @@ declare class Doctor {
|
|
|
43
13
|
* Run all health checks
|
|
44
14
|
*/
|
|
45
15
|
runAllChecks(): Promise<HealthCheck>;
|
|
46
|
-
/**
|
|
47
|
-
* Check 1: Claude CLI availability
|
|
48
|
-
*/
|
|
49
|
-
private checkClaudeCli;
|
|
50
|
-
/**
|
|
51
|
-
* Check 2: ~/.ccs/ directory
|
|
52
|
-
*/
|
|
53
|
-
private checkCcsDirectory;
|
|
54
|
-
/**
|
|
55
|
-
* Check 3: Config files
|
|
56
|
-
*/
|
|
57
|
-
private checkConfigFiles;
|
|
58
|
-
/**
|
|
59
|
-
* Check 4: Claude settings
|
|
60
|
-
*/
|
|
61
|
-
private checkClaudeSettings;
|
|
62
|
-
/**
|
|
63
|
-
* Check 5: Profile configurations
|
|
64
|
-
*/
|
|
65
|
-
private checkProfiles;
|
|
66
|
-
/**
|
|
67
|
-
* Check 6: Instance directories (account-based profiles)
|
|
68
|
-
*/
|
|
69
|
-
private checkInstances;
|
|
70
|
-
/**
|
|
71
|
-
* Check 7: Delegation system
|
|
72
|
-
*/
|
|
73
|
-
private checkDelegation;
|
|
74
|
-
/**
|
|
75
|
-
* Check 8: File permissions
|
|
76
|
-
*/
|
|
77
|
-
private checkPermissions;
|
|
78
|
-
/**
|
|
79
|
-
* Check 9: CCS symlinks to ~/.claude/
|
|
80
|
-
*/
|
|
81
|
-
private checkCcsSymlinks;
|
|
82
|
-
/**
|
|
83
|
-
* Check 10: settings.json symlinks
|
|
84
|
-
*/
|
|
85
|
-
private checkSettingsSymlinks;
|
|
86
|
-
/**
|
|
87
|
-
* Check 10.1: Environment detection (OAuth readiness)
|
|
88
|
-
* Helps diagnose Windows headless false positives
|
|
89
|
-
*/
|
|
90
|
-
private checkEnvironment;
|
|
91
|
-
/**
|
|
92
|
-
* Check 10.2: OAuth callback ports availability
|
|
93
|
-
* Pre-flight check for OAuth authentication
|
|
94
|
-
*/
|
|
95
|
-
private checkOAuthPorts;
|
|
96
|
-
/**
|
|
97
|
-
* Check 11: CLIProxy health (OAuth profiles: gemini, codex, agy, qwen)
|
|
98
|
-
*/
|
|
99
|
-
private checkCLIProxy;
|
|
100
16
|
/**
|
|
101
17
|
* Show health check report
|
|
102
18
|
*/
|
|
@@ -107,11 +23,6 @@ declare class Doctor {
|
|
|
107
23
|
generateJsonReport(): string;
|
|
108
24
|
/**
|
|
109
25
|
* Fix detected issues (--fix flag)
|
|
110
|
-
* Fixes:
|
|
111
|
-
* 1. Zombie CLIProxy processes blocking ports
|
|
112
|
-
* 2. Outdated CLIProxy config files
|
|
113
|
-
* 3. Shared symlinks broken by Claude CLI's atomic writes
|
|
114
|
-
* 4. OAuth callback ports blocked by CLIProxy
|
|
115
26
|
*/
|
|
116
27
|
fixIssues(): Promise<void>;
|
|
117
28
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/management/doctor.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/management/doctor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EACL,WAAW,EAQZ,MAAM,UAAU,CAAC;AAGlB;;GAEG;AACH,cAAM,MAAM;IACV,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;;IAOpC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC;IAiD1C;;OAEG;IACH,OAAO,CAAC,UAAU;IAiElB;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAiB5B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB;AAED,eAAe,MAAM,CAAC"}
|