@jonnyhoo/ccs 1.0.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/.claude/commands/ccs/continue.md +15 -0
- package/.claude/commands/ccs.md +17 -0
- package/.claude/skills/ccs-delegation/CLAUDE.md.template +17 -0
- package/.claude/skills/ccs-delegation/SKILL.md +195 -0
- package/.claude/skills/ccs-delegation/references/troubleshooting.md +201 -0
- package/LICENSE +21 -0
- package/README.md +383 -0
- package/config/base-agy.settings.json +10 -0
- package/config/base-claude.settings.json +10 -0
- package/config/base-codex.settings.json +10 -0
- package/config/base-gemini.settings.json +10 -0
- package/config/base-ghcp.settings.json +10 -0
- package/config/base-glm.settings.json +10 -0
- package/config/base-glmt.settings.json +17 -0
- package/config/base-iflow.settings.json +10 -0
- package/config/base-kimi.settings.json +11 -0
- package/config/base-kiro.settings.json +10 -0
- package/config/base-mm.settings.json +10 -0
- package/config/base-ollama-cloud.settings.json +10 -0
- package/config/base-ollama.settings.json +10 -0
- package/config/base-qwen.settings.json +10 -0
- package/config/config.example.json +6 -0
- 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 +13 -0
- package/dist/api/services/index.d.ts.map +1 -0
- package/dist/api/services/index.js +39 -0
- package/dist/api/services/index.js.map +1 -0
- package/dist/api/services/openrouter-catalog.d.ts +30 -0
- package/dist/api/services/openrouter-catalog.d.ts.map +1 -0
- package/dist/api/services/openrouter-catalog.js +130 -0
- package/dist/api/services/openrouter-catalog.js.map +1 -0
- package/dist/api/services/openrouter-picker.d.ts +15 -0
- package/dist/api/services/openrouter-picker.d.ts.map +1 -0
- package/dist/api/services/openrouter-picker.js +113 -0
- package/dist/api/services/openrouter-picker.js.map +1 -0
- package/dist/api/services/profile-reader.d.ts +31 -0
- package/dist/api/services/profile-reader.d.ts.map +1 -0
- package/dist/api/services/profile-reader.js +153 -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 +187 -0
- package/dist/api/services/profile-writer.js.map +1 -0
- package/dist/api/services/provider-presets.d.ts +38 -0
- package/dist/api/services/provider-presets.d.ts.map +1 -0
- package/dist/api/services/provider-presets.js +165 -0
- package/dist/api/services/provider-presets.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 +80 -0
- package/dist/api/services/validation-service.js.map +1 -0
- package/dist/auth/auth-commands.d.ts +62 -0
- package/dist/auth/auth-commands.d.ts.map +1 -0
- package/dist/auth/auth-commands.js +191 -0
- package/dist/auth/auth-commands.js.map +1 -0
- 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 +106 -0
- package/dist/auth/profile-detector.d.ts.map +1 -0
- package/dist/auth/profile-detector.js +431 -0
- package/dist/auth/profile-detector.js.map +1 -0
- package/dist/auth/profile-registry.d.ts +110 -0
- package/dist/auth/profile-registry.d.ts.map +1 -0
- package/dist/auth/profile-registry.js +318 -0
- package/dist/auth/profile-registry.js.map +1 -0
- package/dist/ccs.d.ts +2 -0
- package/dist/ccs.d.ts.map +1 -0
- package/dist/ccs.js +642 -0
- package/dist/ccs.js.map +1 -0
- package/dist/cliproxy/account-manager.d.ts +218 -0
- package/dist/cliproxy/account-manager.d.ts.map +1 -0
- package/dist/cliproxy/account-manager.js +808 -0
- package/dist/cliproxy/account-manager.js.map +1 -0
- package/dist/cliproxy/auth/auth-types.d.ts +106 -0
- package/dist/cliproxy/auth/auth-types.d.ts.map +1 -0
- package/dist/cliproxy/auth/auth-types.js +164 -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 +129 -0
- package/dist/cliproxy/auth/environment-detector.js.map +1 -0
- package/dist/cliproxy/auth/gemini-token-refresh.d.ts +38 -0
- package/dist/cliproxy/auth/gemini-token-refresh.d.ts.map +1 -0
- package/dist/cliproxy/auth/gemini-token-refresh.js +327 -0
- package/dist/cliproxy/auth/gemini-token-refresh.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/kiro-import.d.ts +23 -0
- package/dist/cliproxy/auth/kiro-import.d.ts.map +1 -0
- package/dist/cliproxy/auth/kiro-import.js +140 -0
- package/dist/cliproxy/auth/kiro-import.js.map +1 -0
- package/dist/cliproxy/auth/oauth-handler.d.ts +31 -0
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -0
- package/dist/cliproxy/auth/oauth-handler.js +422 -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 +386 -0
- package/dist/cliproxy/auth/oauth-process.js.map +1 -0
- package/dist/cliproxy/auth/provider-refreshers/index.d.ts +21 -0
- package/dist/cliproxy/auth/provider-refreshers/index.d.ts.map +1 -0
- package/dist/cliproxy/auth/provider-refreshers/index.js +57 -0
- package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -0
- package/dist/cliproxy/auth/token-expiry-checker.d.ts +37 -0
- package/dist/cliproxy/auth/token-expiry-checker.d.ts.map +1 -0
- package/dist/cliproxy/auth/token-expiry-checker.js +115 -0
- package/dist/cliproxy/auth/token-expiry-checker.js.map +1 -0
- package/dist/cliproxy/auth/token-manager.d.ts +66 -0
- package/dist/cliproxy/auth/token-manager.d.ts.map +1 -0
- package/dist/cliproxy/auth/token-manager.js +309 -0
- package/dist/cliproxy/auth/token-manager.js.map +1 -0
- package/dist/cliproxy/auth/token-refresh-config.d.ts +13 -0
- package/dist/cliproxy/auth/token-refresh-config.d.ts.map +1 -0
- package/dist/cliproxy/auth/token-refresh-config.js +31 -0
- package/dist/cliproxy/auth/token-refresh-config.js.map +1 -0
- package/dist/cliproxy/auth/token-refresh-worker.d.ts +83 -0
- package/dist/cliproxy/auth/token-refresh-worker.d.ts.map +1 -0
- package/dist/cliproxy/auth/token-refresh-worker.js +214 -0
- package/dist/cliproxy/auth/token-refresh-worker.js.map +1 -0
- package/dist/cliproxy/auth-handler.d.ts +31 -0
- package/dist/cliproxy/auth-handler.d.ts.map +1 -0
- package/dist/cliproxy/auth-handler.js +60 -0
- package/dist/cliproxy/auth-handler.js.map +1 -0
- package/dist/cliproxy/auth-session-manager.d.ts +51 -0
- package/dist/cliproxy/auth-session-manager.d.ts.map +1 -0
- package/dist/cliproxy/auth-session-manager.js +134 -0
- package/dist/cliproxy/auth-session-manager.js.map +1 -0
- package/dist/cliproxy/auth-token-manager.d.ts +82 -0
- package/dist/cliproxy/auth-token-manager.d.ts.map +1 -0
- package/dist/cliproxy/auth-token-manager.js +187 -0
- package/dist/cliproxy/auth-token-manager.js.map +1 -0
- package/dist/cliproxy/auth-utils.d.ts +16 -0
- package/dist/cliproxy/auth-utils.d.ts.map +1 -0
- package/dist/cliproxy/auth-utils.js +33 -0
- package/dist/cliproxy/auth-utils.js.map +1 -0
- package/dist/cliproxy/base-config-loader.d.ts +42 -0
- package/dist/cliproxy/base-config-loader.d.ts.map +1 -0
- package/dist/cliproxy/base-config-loader.js +123 -0
- package/dist/cliproxy/base-config-loader.js.map +1 -0
- package/dist/cliproxy/binary/downloader.d.ts +42 -0
- package/dist/cliproxy/binary/downloader.d.ts.map +1 -0
- package/dist/cliproxy/binary/downloader.js +407 -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 +28 -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 +54 -0
- package/dist/cliproxy/binary/index.js.map +1 -0
- package/dist/cliproxy/binary/installer.d.ts +25 -0
- package/dist/cliproxy/binary/installer.d.ts.map +1 -0
- package/dist/cliproxy/binary/installer.js +129 -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 +150 -0
- package/dist/cliproxy/binary/lifecycle.js.map +1 -0
- package/dist/cliproxy/binary/tar-extractor.d.ts +10 -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 +49 -0
- package/dist/cliproxy/binary/types.d.ts.map +1 -0
- package/dist/cliproxy/binary/types.js +32 -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 +64 -0
- package/dist/cliproxy/binary/version-cache.d.ts.map +1 -0
- package/dist/cliproxy/binary/version-cache.js +239 -0
- package/dist/cliproxy/binary/version-cache.js.map +1 -0
- package/dist/cliproxy/binary/version-checker.d.ts +36 -0
- package/dist/cliproxy/binary/version-checker.d.ts.map +1 -0
- package/dist/cliproxy/binary/version-checker.js +135 -0
- package/dist/cliproxy/binary/version-checker.js.map +1 -0
- package/dist/cliproxy/binary/zip-extractor.d.ts +10 -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 +59 -0
- package/dist/cliproxy/binary-manager.d.ts.map +1 -0
- package/dist/cliproxy/binary-manager.js +211 -0
- package/dist/cliproxy/binary-manager.js.map +1 -0
- package/dist/cliproxy/cliproxy-executor.d.ts +33 -0
- package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -0
- package/dist/cliproxy/cliproxy-executor.js +1025 -0
- package/dist/cliproxy/cliproxy-executor.js.map +1 -0
- package/dist/cliproxy/codex-reasoning-proxy.d.ts +49 -0
- package/dist/cliproxy/codex-reasoning-proxy.d.ts.map +1 -0
- package/dist/cliproxy/codex-reasoning-proxy.js +367 -0
- package/dist/cliproxy/codex-reasoning-proxy.js.map +1 -0
- package/dist/cliproxy/config-generator.d.ts +227 -0
- package/dist/cliproxy/config-generator.d.ts.map +1 -0
- package/dist/cliproxy/config-generator.js +876 -0
- package/dist/cliproxy/config-generator.js.map +1 -0
- package/dist/cliproxy/device-code-handler.d.ts +28 -0
- package/dist/cliproxy/device-code-handler.d.ts.map +1 -0
- package/dist/cliproxy/device-code-handler.js +22 -0
- package/dist/cliproxy/device-code-handler.js.map +1 -0
- package/dist/cliproxy/https-tunnel-proxy.d.ts +44 -0
- package/dist/cliproxy/https-tunnel-proxy.d.ts.map +1 -0
- package/dist/cliproxy/https-tunnel-proxy.js +224 -0
- package/dist/cliproxy/https-tunnel-proxy.js.map +1 -0
- package/dist/cliproxy/index.d.ts +41 -0
- package/dist/cliproxy/index.d.ts.map +1 -0
- package/dist/cliproxy/index.js +151 -0
- package/dist/cliproxy/index.js.map +1 -0
- package/dist/cliproxy/management-api-client.d.ts +67 -0
- package/dist/cliproxy/management-api-client.d.ts.map +1 -0
- package/dist/cliproxy/management-api-client.js +347 -0
- package/dist/cliproxy/management-api-client.js.map +1 -0
- package/dist/cliproxy/management-api-types.d.ts +107 -0
- package/dist/cliproxy/management-api-types.d.ts.map +1 -0
- package/dist/cliproxy/management-api-types.js +9 -0
- package/dist/cliproxy/management-api-types.js.map +1 -0
- package/dist/cliproxy/model-catalog.d.ts +108 -0
- package/dist/cliproxy/model-catalog.d.ts.map +1 -0
- package/dist/cliproxy/model-catalog.js +247 -0
- package/dist/cliproxy/model-catalog.js.map +1 -0
- package/dist/cliproxy/model-config.d.ts +31 -0
- package/dist/cliproxy/model-config.d.ts.map +1 -0
- package/dist/cliproxy/model-config.js +250 -0
- package/dist/cliproxy/model-config.js.map +1 -0
- package/dist/cliproxy/openai-compat-manager.d.ts +46 -0
- package/dist/cliproxy/openai-compat-manager.d.ts.map +1 -0
- package/dist/cliproxy/openai-compat-manager.js +191 -0
- package/dist/cliproxy/openai-compat-manager.js.map +1 -0
- package/dist/cliproxy/platform-detector.d.ts +99 -0
- package/dist/cliproxy/platform-detector.d.ts.map +1 -0
- package/dist/cliproxy/platform-detector.js +174 -0
- package/dist/cliproxy/platform-detector.js.map +1 -0
- package/dist/cliproxy/project-selection-handler.d.ts +105 -0
- package/dist/cliproxy/project-selection-handler.d.ts.map +1 -0
- package/dist/cliproxy/project-selection-handler.js +167 -0
- package/dist/cliproxy/project-selection-handler.js.map +1 -0
- package/dist/cliproxy/proxy-config-resolver.d.ts +86 -0
- package/dist/cliproxy/proxy-config-resolver.d.ts.map +1 -0
- package/dist/cliproxy/proxy-config-resolver.js +253 -0
- package/dist/cliproxy/proxy-config-resolver.js.map +1 -0
- package/dist/cliproxy/proxy-detector.d.ts +72 -0
- package/dist/cliproxy/proxy-detector.d.ts.map +1 -0
- package/dist/cliproxy/proxy-detector.js +196 -0
- package/dist/cliproxy/proxy-detector.js.map +1 -0
- package/dist/cliproxy/proxy-target-resolver.d.ts +50 -0
- package/dist/cliproxy/proxy-target-resolver.d.ts.map +1 -0
- package/dist/cliproxy/proxy-target-resolver.js +105 -0
- package/dist/cliproxy/proxy-target-resolver.js.map +1 -0
- package/dist/cliproxy/quota-fetcher-codex.d.ts +66 -0
- package/dist/cliproxy/quota-fetcher-codex.d.ts.map +1 -0
- package/dist/cliproxy/quota-fetcher-codex.js +315 -0
- package/dist/cliproxy/quota-fetcher-codex.js.map +1 -0
- package/dist/cliproxy/quota-fetcher-gemini-cli.d.ts +51 -0
- package/dist/cliproxy/quota-fetcher-gemini-cli.d.ts.map +1 -0
- package/dist/cliproxy/quota-fetcher-gemini-cli.js +492 -0
- package/dist/cliproxy/quota-fetcher-gemini-cli.js.map +1 -0
- package/dist/cliproxy/quota-fetcher.d.ts +95 -0
- package/dist/cliproxy/quota-fetcher.d.ts.map +1 -0
- package/dist/cliproxy/quota-fetcher.js +589 -0
- package/dist/cliproxy/quota-fetcher.js.map +1 -0
- package/dist/cliproxy/quota-manager.d.ts +88 -0
- package/dist/cliproxy/quota-manager.d.ts.map +1 -0
- package/dist/cliproxy/quota-manager.js +278 -0
- package/dist/cliproxy/quota-manager.js.map +1 -0
- package/dist/cliproxy/quota-response-cache.d.ts +46 -0
- package/dist/cliproxy/quota-response-cache.d.ts.map +1 -0
- package/dist/cliproxy/quota-response-cache.js +98 -0
- package/dist/cliproxy/quota-response-cache.js.map +1 -0
- package/dist/cliproxy/quota-types.d.ts +84 -0
- package/dist/cliproxy/quota-types.d.ts.map +1 -0
- package/dist/cliproxy/quota-types.js +9 -0
- package/dist/cliproxy/quota-types.js.map +1 -0
- package/dist/cliproxy/remote-auth-fetcher.d.ts +28 -0
- package/dist/cliproxy/remote-auth-fetcher.d.ts.map +1 -0
- package/dist/cliproxy/remote-auth-fetcher.js +117 -0
- package/dist/cliproxy/remote-auth-fetcher.js.map +1 -0
- package/dist/cliproxy/remote-proxy-client.d.ts +59 -0
- package/dist/cliproxy/remote-proxy-client.d.ts.map +1 -0
- package/dist/cliproxy/remote-proxy-client.js +278 -0
- package/dist/cliproxy/remote-proxy-client.js.map +1 -0
- package/dist/cliproxy/remote-token-uploader.d.ts +28 -0
- package/dist/cliproxy/remote-token-uploader.d.ts.map +1 -0
- package/dist/cliproxy/remote-token-uploader.js +178 -0
- package/dist/cliproxy/remote-token-uploader.js.map +1 -0
- package/dist/cliproxy/service-manager.d.ts +55 -0
- package/dist/cliproxy/service-manager.d.ts.map +1 -0
- package/dist/cliproxy/service-manager.js +327 -0
- package/dist/cliproxy/service-manager.js.map +1 -0
- package/dist/cliproxy/services/binary-service.d.ts +67 -0
- package/dist/cliproxy/services/binary-service.d.ts.map +1 -0
- package/dist/cliproxy/services/binary-service.js +176 -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 +48 -0
- package/dist/cliproxy/services/variant-config-adapter.d.ts.map +1 -0
- package/dist/cliproxy/services/variant-config-adapter.js +215 -0
- package/dist/cliproxy/services/variant-config-adapter.js.map +1 -0
- package/dist/cliproxy/services/variant-service.d.ts +52 -0
- package/dist/cliproxy/services/variant-service.d.ts.map +1 -0
- package/dist/cliproxy/services/variant-service.js +218 -0
- package/dist/cliproxy/services/variant-service.js.map +1 -0
- package/dist/cliproxy/services/variant-settings.d.ts +37 -0
- package/dist/cliproxy/services/variant-settings.d.ts.map +1 -0
- package/dist/cliproxy/services/variant-settings.js +168 -0
- package/dist/cliproxy/services/variant-settings.js.map +1 -0
- package/dist/cliproxy/session-tracker.d.ts +100 -0
- package/dist/cliproxy/session-tracker.d.ts.map +1 -0
- package/dist/cliproxy/session-tracker.js +420 -0
- package/dist/cliproxy/session-tracker.js.map +1 -0
- package/dist/cliproxy/startup-lock.d.ts +57 -0
- package/dist/cliproxy/startup-lock.d.ts.map +1 -0
- package/dist/cliproxy/startup-lock.js +216 -0
- package/dist/cliproxy/startup-lock.js.map +1 -0
- package/dist/cliproxy/stats-fetcher.d.ts +106 -0
- package/dist/cliproxy/stats-fetcher.d.ts.map +1 -0
- package/dist/cliproxy/stats-fetcher.js +267 -0
- package/dist/cliproxy/stats-fetcher.js.map +1 -0
- package/dist/cliproxy/sync/auto-sync-watcher.d.ts +37 -0
- package/dist/cliproxy/sync/auto-sync-watcher.d.ts.map +1 -0
- package/dist/cliproxy/sync/auto-sync-watcher.js +211 -0
- package/dist/cliproxy/sync/auto-sync-watcher.js.map +1 -0
- package/dist/cliproxy/sync/index.d.ts +10 -0
- package/dist/cliproxy/sync/index.d.ts.map +1 -0
- package/dist/cliproxy/sync/index.js +27 -0
- package/dist/cliproxy/sync/index.js.map +1 -0
- package/dist/cliproxy/sync/local-config-sync.d.ts +28 -0
- package/dist/cliproxy/sync/local-config-sync.d.ts.map +1 -0
- package/dist/cliproxy/sync/local-config-sync.js +223 -0
- package/dist/cliproxy/sync/local-config-sync.js.map +1 -0
- package/dist/cliproxy/sync/profile-mapper.d.ts +55 -0
- package/dist/cliproxy/sync/profile-mapper.d.ts.map +1 -0
- package/dist/cliproxy/sync/profile-mapper.js +173 -0
- package/dist/cliproxy/sync/profile-mapper.js.map +1 -0
- package/dist/cliproxy/thinking-validator.d.ts +67 -0
- package/dist/cliproxy/thinking-validator.d.ts.map +1 -0
- package/dist/cliproxy/thinking-validator.js +327 -0
- package/dist/cliproxy/thinking-validator.js.map +1 -0
- package/dist/cliproxy/tool-name-mapper.d.ts +103 -0
- package/dist/cliproxy/tool-name-mapper.d.ts.map +1 -0
- package/dist/cliproxy/tool-name-mapper.js +149 -0
- package/dist/cliproxy/tool-name-mapper.js.map +1 -0
- package/dist/cliproxy/tool-name-sanitizer.d.ts +65 -0
- package/dist/cliproxy/tool-name-sanitizer.d.ts.map +1 -0
- package/dist/cliproxy/tool-name-sanitizer.js +118 -0
- package/dist/cliproxy/tool-name-sanitizer.js.map +1 -0
- package/dist/cliproxy/tool-sanitization-proxy.d.ts +70 -0
- package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +1 -0
- package/dist/cliproxy/tool-sanitization-proxy.js +453 -0
- package/dist/cliproxy/tool-sanitization-proxy.js.map +1 -0
- package/dist/cliproxy/types.d.ts +218 -0
- package/dist/cliproxy/types.d.ts.map +1 -0
- package/dist/cliproxy/types.js +12 -0
- package/dist/cliproxy/types.js.map +1 -0
- package/dist/commands/api-command.d.ts +12 -0
- package/dist/commands/api-command.d.ts.map +1 -0
- package/dist/commands/api-command.js +423 -0
- package/dist/commands/api-command.js.map +1 -0
- package/dist/commands/cleanup-command.d.ts +12 -0
- package/dist/commands/cleanup-command.d.ts.map +1 -0
- package/dist/commands/cleanup-command.js +350 -0
- package/dist/commands/cleanup-command.js.map +1 -0
- package/dist/commands/cliproxy-command.d.ts +21 -0
- package/dist/commands/cliproxy-command.d.ts.map +1 -0
- package/dist/commands/cliproxy-command.js +1099 -0
- package/dist/commands/cliproxy-command.js.map +1 -0
- package/dist/commands/cliproxy-sync-handler.d.ts +19 -0
- package/dist/commands/cliproxy-sync-handler.d.ts.map +1 -0
- package/dist/commands/cliproxy-sync-handler.js +99 -0
- package/dist/commands/cliproxy-sync-handler.js.map +1 -0
- package/dist/commands/config-auth/disable-command.d.ts +10 -0
- package/dist/commands/config-auth/disable-command.d.ts.map +1 -0
- package/dist/commands/config-auth/disable-command.js +64 -0
- package/dist/commands/config-auth/disable-command.js.map +1 -0
- package/dist/commands/config-auth/index.d.ts +14 -0
- package/dist/commands/config-auth/index.d.ts.map +1 -0
- package/dist/commands/config-auth/index.js +84 -0
- package/dist/commands/config-auth/index.js.map +1 -0
- package/dist/commands/config-auth/setup-command.d.ts +13 -0
- package/dist/commands/config-auth/setup-command.d.ts.map +1 -0
- package/dist/commands/config-auth/setup-command.js +121 -0
- package/dist/commands/config-auth/setup-command.js.map +1 -0
- package/dist/commands/config-auth/show-command.d.ts +10 -0
- package/dist/commands/config-auth/show-command.d.ts.map +1 -0
- package/dist/commands/config-auth/show-command.js +79 -0
- package/dist/commands/config-auth/show-command.js.map +1 -0
- package/dist/commands/config-auth/types.d.ts +25 -0
- package/dist/commands/config-auth/types.d.ts.map +1 -0
- package/dist/commands/config-auth/types.js +8 -0
- package/dist/commands/config-auth/types.js.map +1 -0
- package/dist/commands/config-command.d.ts +12 -0
- package/dist/commands/config-command.d.ts.map +1 -0
- package/dist/commands/config-command.js +184 -0
- package/dist/commands/config-command.js.map +1 -0
- package/dist/commands/config-image-analysis-command.d.ts +8 -0
- package/dist/commands/config-image-analysis-command.d.ts.map +1 -0
- package/dist/commands/config-image-analysis-command.js +174 -0
- package/dist/commands/config-image-analysis-command.js.map +1 -0
- package/dist/commands/copilot-command.d.ts +10 -0
- package/dist/commands/copilot-command.d.ts.map +1 -0
- package/dist/commands/copilot-command.js +228 -0
- package/dist/commands/copilot-command.js.map +1 -0
- package/dist/commands/doctor-command.d.ts +11 -0
- package/dist/commands/doctor-command.d.ts.map +1 -0
- package/dist/commands/doctor-command.js +92 -0
- package/dist/commands/doctor-command.js.map +1 -0
- package/dist/commands/help-command.d.ts +5 -0
- package/dist/commands/help-command.d.ts.map +1 -0
- package/dist/commands/help-command.js +346 -0
- package/dist/commands/help-command.js.map +1 -0
- package/dist/commands/index.d.ts +18 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +35 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/install-command.d.ts +14 -0
- package/dist/commands/install-command.d.ts.map +1 -0
- package/dist/commands/install-command.js +62 -0
- package/dist/commands/install-command.js.map +1 -0
- package/dist/commands/migrate-command.d.ts +17 -0
- package/dist/commands/migrate-command.d.ts.map +1 -0
- package/dist/commands/migrate-command.js +139 -0
- package/dist/commands/migrate-command.js.map +1 -0
- package/dist/commands/persist-command.d.ts +12 -0
- package/dist/commands/persist-command.d.ts.map +1 -0
- package/dist/commands/persist-command.js +565 -0
- package/dist/commands/persist-command.js.map +1 -0
- package/dist/commands/setup-command.d.ts +29 -0
- package/dist/commands/setup-command.d.ts.map +1 -0
- package/dist/commands/setup-command.js +426 -0
- package/dist/commands/setup-command.js.map +1 -0
- package/dist/commands/shell-completion-command.d.ts +10 -0
- package/dist/commands/shell-completion-command.d.ts.map +1 -0
- package/dist/commands/shell-completion-command.js +90 -0
- package/dist/commands/shell-completion-command.js.map +1 -0
- package/dist/commands/sync-command.d.ts +10 -0
- package/dist/commands/sync-command.d.ts.map +1 -0
- package/dist/commands/sync-command.js +67 -0
- package/dist/commands/sync-command.js.map +1 -0
- package/dist/commands/tokens-command.d.ts +19 -0
- package/dist/commands/tokens-command.d.ts.map +1 -0
- package/dist/commands/tokens-command.js +173 -0
- package/dist/commands/tokens-command.js.map +1 -0
- package/dist/commands/update-command.d.ts +19 -0
- package/dist/commands/update-command.d.ts.map +1 -0
- package/dist/commands/update-command.js +290 -0
- package/dist/commands/update-command.js.map +1 -0
- package/dist/commands/version-command.d.ts +10 -0
- package/dist/commands/version-command.d.ts.map +1 -0
- package/dist/commands/version-command.js +100 -0
- package/dist/commands/version-command.js.map +1 -0
- package/dist/config/feature-flags.d.ts +19 -0
- package/dist/config/feature-flags.d.ts.map +1 -0
- package/dist/config/feature-flags.js +31 -0
- package/dist/config/feature-flags.js.map +1 -0
- package/dist/config/index.d.ts +11 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +32 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/migration-manager.d.ts +75 -0
- package/dist/config/migration-manager.d.ts.map +1 -0
- package/dist/config/migration-manager.js +446 -0
- package/dist/config/migration-manager.js.map +1 -0
- package/dist/config/reserved-names.d.ts +31 -0
- package/dist/config/reserved-names.d.ts.map +1 -0
- package/dist/config/reserved-names.js +80 -0
- package/dist/config/reserved-names.js.map +1 -0
- package/dist/config/unified-config-loader.d.ts +117 -0
- package/dist/config/unified-config-loader.d.ts.map +1 -0
- package/dist/config/unified-config-loader.js +756 -0
- package/dist/config/unified-config-loader.js.map +1 -0
- package/dist/config/unified-config-types.d.ts +519 -0
- package/dist/config/unified-config-types.d.ts.map +1 -0
- package/dist/config/unified-config-types.js +211 -0
- package/dist/config/unified-config-types.js.map +1 -0
- package/dist/copilot/copilot-auth.d.ts +52 -0
- package/dist/copilot/copilot-auth.d.ts.map +1 -0
- package/dist/copilot/copilot-auth.js +201 -0
- package/dist/copilot/copilot-auth.js.map +1 -0
- package/dist/copilot/copilot-daemon.d.ts +36 -0
- package/dist/copilot/copilot-daemon.d.ts.map +1 -0
- package/dist/copilot/copilot-daemon.js +237 -0
- package/dist/copilot/copilot-daemon.js.map +1 -0
- package/dist/copilot/copilot-executor.d.ts +26 -0
- package/dist/copilot/copilot-executor.d.ts.map +1 -0
- package/dist/copilot/copilot-executor.js +150 -0
- package/dist/copilot/copilot-executor.js.map +1 -0
- package/dist/copilot/copilot-models.d.ts +34 -0
- package/dist/copilot/copilot-models.d.ts.map +1 -0
- package/dist/copilot/copilot-models.js +261 -0
- package/dist/copilot/copilot-models.js.map +1 -0
- package/dist/copilot/copilot-package-manager.d.ts +93 -0
- package/dist/copilot/copilot-package-manager.d.ts.map +1 -0
- package/dist/copilot/copilot-package-manager.js +488 -0
- package/dist/copilot/copilot-package-manager.js.map +1 -0
- package/dist/copilot/index.d.ts +13 -0
- package/dist/copilot/index.d.ts.map +1 -0
- package/dist/copilot/index.js +63 -0
- package/dist/copilot/index.js.map +1 -0
- package/dist/copilot/types.d.ts +65 -0
- package/dist/copilot/types.d.ts.map +1 -0
- package/dist/copilot/types.js +8 -0
- package/dist/copilot/types.js.map +1 -0
- package/dist/delegation/delegation-handler.d.ts +66 -0
- package/dist/delegation/delegation-handler.d.ts.map +1 -0
- package/dist/delegation/delegation-handler.js +290 -0
- package/dist/delegation/delegation-handler.js.map +1 -0
- 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 +129 -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 +42 -0
- package/dist/delegation/headless-executor.d.ts.map +1 -0
- package/dist/delegation/headless-executor.js +480 -0
- package/dist/delegation/headless-executor.js.map +1 -0
- 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 +56 -0
- package/dist/delegation/result-formatter.d.ts.map +1 -0
- package/dist/delegation/result-formatter.js +341 -0
- package/dist/delegation/result-formatter.js.map +1 -0
- package/dist/delegation/session-manager.d.ts +58 -0
- package/dist/delegation/session-manager.d.ts.map +1 -0
- package/dist/delegation/session-manager.js +153 -0
- package/dist/delegation/session-manager.js.map +1 -0
- package/dist/delegation/settings-parser.d.ts +31 -0
- package/dist/delegation/settings-parser.d.ts.map +1 -0
- package/dist/delegation/settings-parser.js +107 -0
- package/dist/delegation/settings-parser.js.map +1 -0
- 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/delta-accumulator.d.ts +210 -0
- package/dist/glmt/delta-accumulator.d.ts.map +1 -0
- package/dist/glmt/delta-accumulator.js +351 -0
- package/dist/glmt/delta-accumulator.js.map +1 -0
- package/dist/glmt/glmt-proxy.d.ts +107 -0
- package/dist/glmt/glmt-proxy.d.ts.map +1 -0
- package/dist/glmt/glmt-proxy.js +665 -0
- package/dist/glmt/glmt-proxy.js.map +1 -0
- package/dist/glmt/glmt-transformer.d.ts +46 -0
- package/dist/glmt/glmt-transformer.d.ts.map +1 -0
- package/dist/glmt/glmt-transformer.js +177 -0
- package/dist/glmt/glmt-transformer.js.map +1 -0
- 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/locale-enforcer.d.ts +38 -0
- package/dist/glmt/locale-enforcer.d.ts.map +1 -0
- package/dist/glmt/locale-enforcer.js +69 -0
- package/dist/glmt/locale-enforcer.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/glmt/reasoning-enforcer.d.ts +52 -0
- package/dist/glmt/reasoning-enforcer.d.ts.map +1 -0
- package/dist/glmt/reasoning-enforcer.js +151 -0
- package/dist/glmt/reasoning-enforcer.js.map +1 -0
- package/dist/glmt/sse-parser.d.ts +47 -0
- package/dist/glmt/sse-parser.d.ts.map +1 -0
- package/dist/glmt/sse-parser.js +93 -0
- package/dist/glmt/sse-parser.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 +38 -0
- package/dist/management/checks/config-check.d.ts.map +1 -0
- package/dist/management/checks/config-check.js +215 -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/image-analysis-check.d.ts +16 -0
- package/dist/management/checks/image-analysis-check.d.ts.map +1 -0
- package/dist/management/checks/image-analysis-check.js +140 -0
- package/dist/management/checks/image-analysis-check.js.map +1 -0
- package/dist/management/checks/index.d.ts +13 -0
- package/dist/management/checks/index.d.ts.map +1 -0
- package/dist/management/checks/index.js +52 -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 +40 -0
- package/dist/management/checks/profile-check.d.ts.map +1 -0
- package/dist/management/checks/profile-check.js +190 -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 +214 -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 +135 -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 +64 -0
- package/dist/management/checks/types.js.map +1 -0
- package/dist/management/doctor.d.ts +34 -0
- package/dist/management/doctor.d.ts.map +1 -0
- package/dist/management/doctor.js +154 -0
- package/dist/management/doctor.js.map +1 -0
- package/dist/management/environment-diagnostics.d.ts +69 -0
- package/dist/management/environment-diagnostics.d.ts.map +1 -0
- package/dist/management/environment-diagnostics.js +229 -0
- package/dist/management/environment-diagnostics.js.map +1 -0
- 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/instance-manager.d.ts +57 -0
- package/dist/management/instance-manager.d.ts.map +1 -0
- package/dist/management/instance-manager.js +195 -0
- package/dist/management/instance-manager.js.map +1 -0
- package/dist/management/oauth-port-diagnostics.d.ts +115 -0
- package/dist/management/oauth-port-diagnostics.d.ts.map +1 -0
- package/dist/management/oauth-port-diagnostics.js +291 -0
- package/dist/management/oauth-port-diagnostics.js.map +1 -0
- package/dist/management/recovery-manager.d.ts +56 -0
- package/dist/management/recovery-manager.d.ts.map +1 -0
- package/dist/management/recovery-manager.js +239 -0
- package/dist/management/recovery-manager.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 +186 -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/management/shared-manager.d.ts +55 -0
- package/dist/management/shared-manager.d.ts.map +1 -0
- package/dist/management/shared-manager.js +424 -0
- package/dist/management/shared-manager.js.map +1 -0
- package/dist/types/cli.d.ts +50 -0
- package/dist/types/cli.d.ts.map +1 -0
- package/dist/types/cli.js +16 -0
- package/dist/types/cli.js.map +1 -0
- package/dist/types/config.d.ts +89 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +26 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/delegation.d.ts +49 -0
- package/dist/types/delegation.d.ts.map +1 -0
- package/dist/types/delegation.js +6 -0
- package/dist/types/delegation.js.map +1 -0
- package/dist/types/glmt.d.ts +95 -0
- package/dist/types/glmt.d.ts.map +1 -0
- package/dist/types/glmt.js +7 -0
- package/dist/types/glmt.js.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +16 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/utils.d.ts +107 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/dist/types/utils.js +22 -0
- package/dist/types/utils.js.map +1 -0
- package/dist/utils/api-key-validator.d.ts +14 -0
- package/dist/utils/api-key-validator.d.ts.map +1 -0
- package/dist/utils/api-key-validator.js +143 -0
- package/dist/utils/api-key-validator.js.map +1 -0
- package/dist/utils/claude-detector.d.ts +14 -0
- package/dist/utils/claude-detector.d.ts.map +1 -0
- package/dist/utils/claude-detector.js +152 -0
- package/dist/utils/claude-detector.js.map +1 -0
- package/dist/utils/claude-dir-installer.d.ts +46 -0
- package/dist/utils/claude-dir-installer.d.ts.map +1 -0
- package/dist/utils/claude-dir-installer.js +289 -0
- package/dist/utils/claude-dir-installer.js.map +1 -0
- 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/claude-symlink-manager.d.ts +75 -0
- package/dist/utils/claude-symlink-manager.d.ts.map +1 -0
- package/dist/utils/claude-symlink-manager.js +393 -0
- package/dist/utils/claude-symlink-manager.js.map +1 -0
- package/dist/utils/config-manager.d.ts +59 -0
- package/dist/utils/config-manager.d.ts.map +1 -0
- package/dist/utils/config-manager.js +292 -0
- package/dist/utils/config-manager.js.map +1 -0
- package/dist/utils/delegation-validator.d.ts +44 -0
- package/dist/utils/delegation-validator.d.ts.map +1 -0
- package/dist/utils/delegation-validator.js +182 -0
- package/dist/utils/delegation-validator.js.map +1 -0
- package/dist/utils/error-codes.d.ts +36 -0
- package/dist/utils/error-codes.d.ts.map +1 -0
- package/dist/utils/error-codes.js +63 -0
- package/dist/utils/error-codes.js.map +1 -0
- package/dist/utils/error-manager.d.ts +59 -0
- package/dist/utils/error-manager.d.ts.map +1 -0
- package/dist/utils/error-manager.js +250 -0
- package/dist/utils/error-manager.js.map +1 -0
- package/dist/utils/helpers.d.ts +17 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +111 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/hooks/get-image-analysis-hook-env.d.ts +17 -0
- package/dist/utils/hooks/get-image-analysis-hook-env.d.ts.map +1 -0
- package/dist/utils/hooks/get-image-analysis-hook-env.js +42 -0
- package/dist/utils/hooks/get-image-analysis-hook-env.js.map +1 -0
- package/dist/utils/hooks/image-analyzer-hook-configuration.d.ts +17 -0
- package/dist/utils/hooks/image-analyzer-hook-configuration.d.ts.map +1 -0
- package/dist/utils/hooks/image-analyzer-hook-configuration.js +71 -0
- package/dist/utils/hooks/image-analyzer-hook-configuration.js.map +1 -0
- package/dist/utils/hooks/image-analyzer-hook-installer.d.ts +31 -0
- package/dist/utils/hooks/image-analyzer-hook-installer.d.ts.map +1 -0
- package/dist/utils/hooks/image-analyzer-hook-installer.js +149 -0
- package/dist/utils/hooks/image-analyzer-hook-installer.js.map +1 -0
- package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts +24 -0
- package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts.map +1 -0
- package/dist/utils/hooks/image-analyzer-profile-hook-injector.js +251 -0
- package/dist/utils/hooks/image-analyzer-profile-hook-injector.js.map +1 -0
- package/dist/utils/hooks/index.d.ts +11 -0
- package/dist/utils/hooks/index.d.ts.map +1 -0
- package/dist/utils/hooks/index.js +21 -0
- package/dist/utils/hooks/index.js.map +1 -0
- package/dist/utils/image-analysis/hook-installer.d.ts +19 -0
- package/dist/utils/image-analysis/hook-installer.d.ts.map +1 -0
- package/dist/utils/image-analysis/hook-installer.js +112 -0
- package/dist/utils/image-analysis/hook-installer.js.map +1 -0
- package/dist/utils/image-analysis/index.d.ts +7 -0
- package/dist/utils/image-analysis/index.d.ts.map +1 -0
- package/dist/utils/image-analysis/index.js +12 -0
- package/dist/utils/image-analysis/index.js.map +1 -0
- 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/package-manager-detector.d.ts +11 -0
- package/dist/utils/package-manager-detector.d.ts.map +1 -0
- package/dist/utils/package-manager-detector.js +103 -0
- package/dist/utils/package-manager-detector.js.map +1 -0
- package/dist/utils/platform-commands.d.ts +53 -0
- package/dist/utils/platform-commands.d.ts.map +1 -0
- package/dist/utils/platform-commands.js +189 -0
- package/dist/utils/platform-commands.js.map +1 -0
- package/dist/utils/port-utils.d.ts +55 -0
- package/dist/utils/port-utils.d.ts.map +1 -0
- package/dist/utils/port-utils.js +217 -0
- package/dist/utils/port-utils.js.map +1 -0
- package/dist/utils/progress-indicator.d.ts +53 -0
- package/dist/utils/progress-indicator.d.ts.map +1 -0
- package/dist/utils/progress-indicator.js +104 -0
- package/dist/utils/progress-indicator.js.map +1 -0
- package/dist/utils/prompt.d.ts +55 -0
- package/dist/utils/prompt.d.ts.map +1 -0
- package/dist/utils/prompt.js +270 -0
- package/dist/utils/prompt.js.map +1 -0
- package/dist/utils/sensitive-keys.d.ts +35 -0
- package/dist/utils/sensitive-keys.d.ts.map +1 -0
- package/dist/utils/sensitive-keys.js +67 -0
- package/dist/utils/sensitive-keys.js.map +1 -0
- package/dist/utils/shell-completion.d.ts +54 -0
- package/dist/utils/shell-completion.d.ts.map +1 -0
- package/dist/utils/shell-completion.js +260 -0
- package/dist/utils/shell-completion.js.map +1 -0
- package/dist/utils/shell-executor.d.ts +16 -0
- package/dist/utils/shell-executor.d.ts.map +1 -0
- package/dist/utils/shell-executor.js +73 -0
- package/dist/utils/shell-executor.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 +17 -0
- package/dist/utils/ui.d.ts.map +1 -0
- package/dist/utils/ui.js +57 -0
- package/dist/utils/ui.js.map +1 -0
- package/dist/utils/update-checker.d.ts +71 -0
- package/dist/utils/update-checker.d.ts.map +1 -0
- package/dist/utils/update-checker.js +377 -0
- package/dist/utils/update-checker.js.map +1 -0
- package/dist/utils/version.d.ts +8 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +51 -0
- package/dist/utils/version.js.map +1 -0
- 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 +27 -0
- package/dist/utils/websearch/hook-config.d.ts.map +1 -0
- package/dist/utils/websearch/hook-config.js +280 -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 +30 -0
- package/dist/utils/websearch/hook-installer.d.ts.map +1 -0
- package/dist/utils/websearch/hook-installer.js +148 -0
- package/dist/utils/websearch/hook-installer.js.map +1 -0
- package/dist/utils/websearch/hook-utils.d.ts +18 -0
- package/dist/utils/websearch/hook-utils.d.ts.map +1 -0
- package/dist/utils/websearch/hook-utils.js +59 -0
- package/dist/utils/websearch/hook-utils.js.map +1 -0
- package/dist/utils/websearch/index.d.ts +17 -0
- package/dist/utils/websearch/index.d.ts.map +1 -0
- package/dist/utils/websearch/index.js +51 -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/profile-hook-injector.d.ts +20 -0
- package/dist/utils/websearch/profile-hook-injector.d.ts.map +1 -0
- package/dist/utils/websearch/profile-hook-injector.js +250 -0
- package/dist/utils/websearch/profile-hook-injector.js.map +1 -0
- package/dist/utils/websearch/status.d.ts +36 -0
- package/dist/utils/websearch/status.d.ts.map +1 -0
- package/dist/utils/websearch/status.js +192 -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 +31 -0
- package/dist/utils/websearch-manager.d.ts.map +1 -0
- package/dist/utils/websearch-manager.js +72 -0
- package/dist/utils/websearch-manager.js.map +1 -0
- package/dist/web-server/data-aggregator.d.ts +7 -0
- package/dist/web-server/data-aggregator.d.ts.map +1 -0
- package/dist/web-server/data-aggregator.js +23 -0
- package/dist/web-server/data-aggregator.js.map +1 -0
- package/dist/web-server/file-watcher.d.ts +15 -0
- package/dist/web-server/file-watcher.d.ts.map +1 -0
- package/dist/web-server/file-watcher.js +93 -0
- package/dist/web-server/file-watcher.js.map +1 -0
- 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 +171 -0
- package/dist/web-server/health/cliproxy-checks.js.map +1 -0
- package/dist/web-server/health/config-checks.d.ts +20 -0
- package/dist/web-server/health/config-checks.d.ts.map +1 -0
- package/dist/web-server/health/config-checks.js +212 -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 +20 -0
- package/dist/web-server/health/profile-checks.d.ts.map +1 -0
- package/dist/web-server/health/profile-checks.js +184 -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 +20 -0
- package/dist/web-server/health-service.d.ts.map +1 -0
- package/dist/web-server/health-service.js +162 -0
- package/dist/web-server/health-service.js.map +1 -0
- package/dist/web-server/index.d.ts +25 -0
- package/dist/web-server/index.d.ts.map +1 -0
- package/dist/web-server/index.js +118 -0
- package/dist/web-server/index.js.map +1 -0
- package/dist/web-server/jsonl-parser.d.ts +68 -0
- package/dist/web-server/jsonl-parser.d.ts.map +1 -0
- package/dist/web-server/jsonl-parser.js +214 -0
- package/dist/web-server/jsonl-parser.js.map +1 -0
- package/dist/web-server/middleware/auth-middleware.d.ts +27 -0
- package/dist/web-server/middleware/auth-middleware.d.ts.map +1 -0
- package/dist/web-server/middleware/auth-middleware.js +116 -0
- package/dist/web-server/middleware/auth-middleware.js.map +1 -0
- package/dist/web-server/model-pricing.d.ts +42 -0
- package/dist/web-server/model-pricing.d.ts.map +1 -0
- package/dist/web-server/model-pricing.js +669 -0
- package/dist/web-server/model-pricing.js.map +1 -0
- package/dist/web-server/overview-routes.d.ts +7 -0
- package/dist/web-server/overview-routes.d.ts.map +1 -0
- package/dist/web-server/overview-routes.js +75 -0
- package/dist/web-server/overview-routes.js.map +1 -0
- package/dist/web-server/routes/account-routes.d.ts +9 -0
- package/dist/web-server/routes/account-routes.d.ts.map +1 -0
- package/dist/web-server/routes/account-routes.js +274 -0
- package/dist/web-server/routes/account-routes.js.map +1 -0
- package/dist/web-server/routes/auth-routes.d.ts +7 -0
- package/dist/web-server/routes/auth-routes.d.ts.map +1 -0
- package/dist/web-server/routes/auth-routes.js +108 -0
- package/dist/web-server/routes/auth-routes.js.map +1 -0
- package/dist/web-server/routes/cliproxy-auth-routes.d.ts +3 -0
- package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -0
- package/dist/web-server/routes/cliproxy-auth-routes.js +610 -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 +681 -0
- package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -0
- package/dist/web-server/routes/cliproxy-sync-routes.d.ts +6 -0
- package/dist/web-server/routes/cliproxy-sync-routes.d.ts.map +1 -0
- package/dist/web-server/routes/cliproxy-sync-routes.js +157 -0
- package/dist/web-server/routes/cliproxy-sync-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 +130 -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 +40 -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 +62 -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 +396 -0
- package/dist/web-server/routes/misc-routes.js.map +1 -0
- package/dist/web-server/routes/persist-routes.d.ts +6 -0
- package/dist/web-server/routes/persist-routes.d.ts.map +1 -0
- package/dist/web-server/routes/persist-routes.js +286 -0
- package/dist/web-server/routes/persist-routes.js.map +1 -0
- package/dist/web-server/routes/profile-routes.d.ts +9 -0
- package/dist/web-server/routes/profile-routes.d.ts.map +1 -0
- package/dist/web-server/routes/profile-routes.js +116 -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/proxy-routes.d.ts +11 -0
- package/dist/web-server/routes/proxy-routes.d.ts.map +1 -0
- package/dist/web-server/routes/proxy-routes.js +154 -0
- package/dist/web-server/routes/proxy-routes.js.map +1 -0
- package/dist/web-server/routes/route-helpers.d.ts +50 -0
- package/dist/web-server/routes/route-helpers.d.ts.map +1 -0
- package/dist/web-server/routes/route-helpers.js +179 -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 +413 -0
- package/dist/web-server/routes/settings-routes.js.map +1 -0
- package/dist/web-server/routes/variant-routes.d.ts +8 -0
- package/dist/web-server/routes/variant-routes.d.ts.map +1 -0
- package/dist/web-server/routes/variant-routes.js +119 -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/shared-routes.d.ts +7 -0
- package/dist/web-server/shared-routes.d.ts.map +1 -0
- package/dist/web-server/shared-routes.js +168 -0
- package/dist/web-server/shared-routes.js.map +1 -0
- package/dist/web-server/shutdown.d.ts +14 -0
- package/dist/web-server/shutdown.d.ts.map +1 -0
- package/dist/web-server/shutdown.js +29 -0
- package/dist/web-server/shutdown.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 +7 -0
- package/dist/web-server/usage-disk-cache.d.ts.map +1 -0
- package/dist/web-server/usage-disk-cache.js +23 -0
- package/dist/web-server/usage-disk-cache.js.map +1 -0
- package/dist/web-server/usage-routes.d.ts +7 -0
- package/dist/web-server/usage-routes.d.ts.map +1 -0
- package/dist/web-server/usage-routes.js +14 -0
- package/dist/web-server/usage-routes.js.map +1 -0
- package/dist/web-server/usage-types.d.ts +7 -0
- package/dist/web-server/usage-types.d.ts.map +1 -0
- package/dist/web-server/usage-types.js +23 -0
- package/dist/web-server/usage-types.js.map +1 -0
- package/dist/web-server/websocket.d.ts +15 -0
- package/dist/web-server/websocket.d.ts.map +1 -0
- package/dist/web-server/websocket.js +162 -0
- package/dist/web-server/websocket.js.map +1 -0
- package/lib/ccs +32 -0
- package/lib/ccs.ps1 +39 -0
- package/lib/error-codes.ps1 +56 -0
- package/lib/error-codes.sh +63 -0
- package/lib/hooks/block-websearch.cjs +75 -0
- package/lib/hooks/image-analyzer-transformer.cjs +880 -0
- package/lib/hooks/websearch-transformer.cjs +632 -0
- package/lib/progress-indicator.ps1 +120 -0
- package/lib/progress-indicator.sh +117 -0
- package/lib/prompt.ps1 +109 -0
- package/lib/prompt.sh +99 -0
- package/lib/prompts/image-analysis-default.txt +12 -0
- package/lib/prompts/image-analysis-document.txt +13 -0
- package/lib/prompts/image-analysis-screenshot.txt +13 -0
- package/package.json +133 -0
- package/scripts/add-shebang.js +39 -0
- package/scripts/bump-version.sh +153 -0
- package/scripts/check-executables.js +18 -0
- package/scripts/clean-dist.js +46 -0
- package/scripts/code-reviewer.ts +217 -0
- package/scripts/completion/README.md +308 -0
- package/scripts/completion/ccs.bash +176 -0
- package/scripts/completion/ccs.fish +248 -0
- package/scripts/completion/ccs.ps1 +394 -0
- package/scripts/completion/ccs.zsh +308 -0
- package/scripts/dev-install.sh +108 -0
- package/scripts/dev-release.sh +123 -0
- package/scripts/dev-symlink.sh +115 -0
- package/scripts/get-version.sh +16 -0
- package/scripts/postinstall.js +358 -0
- package/scripts/postuninstall.js +48 -0
- package/scripts/pre-release.sh +39 -0
- package/scripts/preinstall.js +59 -0
- package/scripts/send-discord-release.cjs +249 -0
- package/scripts/verify-bundle.js +56 -0
- package/scripts/worker.js +26 -0
- package/scripts/wrangler.toml +15 -0
|
@@ -0,0 +1,876 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Config Generator for CLIProxyAPI
|
|
4
|
+
*
|
|
5
|
+
* Generates config.yaml for CLIProxyAPI based on provider.
|
|
6
|
+
* Handles OAuth token paths and provider-specific settings.
|
|
7
|
+
*
|
|
8
|
+
* Model mappings are loaded from config/base-{provider}.settings.json files
|
|
9
|
+
* to allow easy updates without code changes.
|
|
10
|
+
*/
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(o, k2, desc);
|
|
18
|
+
}) : (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
o[k2] = m[k];
|
|
21
|
+
}));
|
|
22
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
23
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
24
|
+
}) : function(o, v) {
|
|
25
|
+
o["default"] = v;
|
|
26
|
+
});
|
|
27
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.getRemoteEnvVars = exports.ensureProviderSettings = exports.getEffectiveEnvVars = exports.getClaudeEnvVars = exports.getProviderSettingsPath = exports.deleteConfig = exports.deleteConfigForPort = exports.configExists = exports.configNeedsRegeneration = exports.regenerateConfig = exports.parseUserApiKeys = exports.generateConfig = exports.getBinDir = exports.getCliproxyConfigPath = exports.getConfigPathForPort = exports.getAuthDir = exports.getProviderAuthDir = exports.getCliproxyDir = exports.getModelMapping = exports.getProviderConfig = exports.CLIPROXY_CONFIG_VERSION = exports.getCliproxyWritablePath = exports.CCS_CONTROL_PANEL_SECRET = exports.CCS_INTERNAL_API_KEY = exports.getRemoteDefaultPort = exports.validateRemotePort = exports.normalizeProtocol = exports.CLIPROXY_DEFAULT_PORT = exports.validatePort = exports.applyThinkingConfig = exports.getThinkingValueForTier = exports.applyThinkingSuffix = exports.detectTierFromModel = void 0;
|
|
36
|
+
const fs = __importStar(require("fs"));
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const config_manager_1 = require("../utils/config-manager");
|
|
39
|
+
const helpers_1 = require("../utils/helpers");
|
|
40
|
+
const ui_1 = require("../utils/ui");
|
|
41
|
+
const base_config_loader_1 = require("./base-config-loader");
|
|
42
|
+
const unified_config_loader_1 = require("../config/unified-config-loader");
|
|
43
|
+
const auth_token_manager_1 = require("./auth-token-manager");
|
|
44
|
+
const model_catalog_1 = require("./model-catalog");
|
|
45
|
+
const thinking_validator_1 = require("./thinking-validator");
|
|
46
|
+
/**
|
|
47
|
+
* Check if warnings should be shown based on thinking config.
|
|
48
|
+
* Defaults to true if show_warnings is not explicitly false.
|
|
49
|
+
*/
|
|
50
|
+
function shouldShowWarnings(thinkingConfig) {
|
|
51
|
+
return thinkingConfig.show_warnings !== false;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Detect tier from model name.
|
|
55
|
+
* Returns 'sonnet' as default if unclear.
|
|
56
|
+
*/
|
|
57
|
+
function detectTierFromModel(modelName) {
|
|
58
|
+
const lower = modelName.toLowerCase();
|
|
59
|
+
if (lower.includes('opus'))
|
|
60
|
+
return 'opus';
|
|
61
|
+
if (lower.includes('haiku'))
|
|
62
|
+
return 'haiku';
|
|
63
|
+
return 'sonnet'; // Default to sonnet (most common)
|
|
64
|
+
}
|
|
65
|
+
exports.detectTierFromModel = detectTierFromModel;
|
|
66
|
+
/**
|
|
67
|
+
* Apply thinking suffix to model name.
|
|
68
|
+
* CLIProxyAPIPlus parses suffixes like model(level) or model(budget).
|
|
69
|
+
*
|
|
70
|
+
* @param model - Base model name
|
|
71
|
+
* @param thinkingValue - Level name (e.g., 'high') or numeric budget
|
|
72
|
+
* @returns Model name with thinking suffix, e.g., "gemini-3-pro-preview(high)"
|
|
73
|
+
*/
|
|
74
|
+
function applyThinkingSuffix(model, thinkingValue) {
|
|
75
|
+
// Don't apply if model already ends with a parenthesized suffix (e.g., "model(high)" or "model(8192)")
|
|
76
|
+
// Matches: ends with "(...)" where content is non-empty
|
|
77
|
+
if (/\([^)]+\)$/.test(model)) {
|
|
78
|
+
return model;
|
|
79
|
+
}
|
|
80
|
+
return `${model}(${thinkingValue})`;
|
|
81
|
+
}
|
|
82
|
+
exports.applyThinkingSuffix = applyThinkingSuffix;
|
|
83
|
+
/**
|
|
84
|
+
* Get thinking value for tier based on config.
|
|
85
|
+
* Respects provider-specific overrides if configured.
|
|
86
|
+
*/
|
|
87
|
+
function getThinkingValueForTier(tier, provider, thinkingConfig) {
|
|
88
|
+
// Check provider-specific override first
|
|
89
|
+
const providerOverride = thinkingConfig.provider_overrides?.[provider]?.[tier];
|
|
90
|
+
if (providerOverride) {
|
|
91
|
+
return providerOverride;
|
|
92
|
+
}
|
|
93
|
+
// Fall back to global tier default (with null guard)
|
|
94
|
+
return thinkingConfig.tier_defaults?.[tier] ?? 'medium';
|
|
95
|
+
}
|
|
96
|
+
exports.getThinkingValueForTier = getThinkingValueForTier;
|
|
97
|
+
/**
|
|
98
|
+
* Apply thinking configuration to env vars.
|
|
99
|
+
* Modifies ANTHROPIC_MODEL and tier models with thinking suffixes.
|
|
100
|
+
*
|
|
101
|
+
* @param envVars - Environment variables to modify
|
|
102
|
+
* @param provider - CLIProxy provider
|
|
103
|
+
* @param thinkingOverride - Optional CLI override (takes priority over config)
|
|
104
|
+
* @returns Modified env vars with thinking suffixes applied
|
|
105
|
+
*/
|
|
106
|
+
function applyThinkingConfig(envVars, provider, thinkingOverride) {
|
|
107
|
+
const thinkingConfig = (0, unified_config_loader_1.getThinkingConfig)();
|
|
108
|
+
const result = { ...envVars };
|
|
109
|
+
// Check if thinking is off
|
|
110
|
+
if (thinkingConfig.mode === 'off' && thinkingOverride === undefined) {
|
|
111
|
+
return result;
|
|
112
|
+
}
|
|
113
|
+
// Get base model to check thinking support
|
|
114
|
+
const baseModel = result.ANTHROPIC_MODEL || '';
|
|
115
|
+
if (!(0, model_catalog_1.supportsThinking)(provider, baseModel)) {
|
|
116
|
+
// U2: Warn user if they explicitly provided --thinking but model doesn't support it
|
|
117
|
+
if (thinkingOverride !== undefined && shouldShowWarnings(thinkingConfig)) {
|
|
118
|
+
console.warn((0, ui_1.warn)(`Model ${baseModel || 'unknown'} (provider: ${provider}) does not support thinking budget. --thinking flag ignored.`));
|
|
119
|
+
}
|
|
120
|
+
return result;
|
|
121
|
+
}
|
|
122
|
+
// Determine thinking value to use
|
|
123
|
+
let thinkingValue;
|
|
124
|
+
if (thinkingOverride !== undefined) {
|
|
125
|
+
// CLI override takes priority
|
|
126
|
+
thinkingValue = thinkingOverride;
|
|
127
|
+
}
|
|
128
|
+
else if (thinkingConfig.mode === 'manual' && thinkingConfig.override !== undefined) {
|
|
129
|
+
// Config manual mode with override
|
|
130
|
+
thinkingValue = thinkingConfig.override;
|
|
131
|
+
}
|
|
132
|
+
else if (thinkingConfig.mode === 'auto') {
|
|
133
|
+
// Auto mode: detect tier and apply default
|
|
134
|
+
const tier = detectTierFromModel(baseModel);
|
|
135
|
+
thinkingValue = getThinkingValueForTier(tier, provider, thinkingConfig);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
return result; // No thinking to apply
|
|
139
|
+
}
|
|
140
|
+
// Validate thinking value against model capabilities
|
|
141
|
+
const validation = (0, thinking_validator_1.validateThinking)(provider, baseModel, thinkingValue);
|
|
142
|
+
if (validation.warning && shouldShowWarnings(thinkingConfig)) {
|
|
143
|
+
console.warn((0, ui_1.warn)(validation.warning));
|
|
144
|
+
}
|
|
145
|
+
thinkingValue = validation.value;
|
|
146
|
+
// If validation says off, don't apply suffix
|
|
147
|
+
if (thinkingValue === 'off') {
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
150
|
+
// Apply thinking suffix to main model
|
|
151
|
+
if (result.ANTHROPIC_MODEL) {
|
|
152
|
+
result.ANTHROPIC_MODEL = applyThinkingSuffix(result.ANTHROPIC_MODEL, thinkingValue);
|
|
153
|
+
}
|
|
154
|
+
// Apply to tier models if they support thinking
|
|
155
|
+
const tierModels = [
|
|
156
|
+
'ANTHROPIC_DEFAULT_OPUS_MODEL',
|
|
157
|
+
'ANTHROPIC_DEFAULT_SONNET_MODEL',
|
|
158
|
+
'ANTHROPIC_DEFAULT_HAIKU_MODEL',
|
|
159
|
+
];
|
|
160
|
+
for (const tierVar of tierModels) {
|
|
161
|
+
const model = result[tierVar];
|
|
162
|
+
if (model && (0, model_catalog_1.supportsThinking)(provider, model)) {
|
|
163
|
+
// Get tier-specific thinking value
|
|
164
|
+
const tier = tierVar.includes('OPUS')
|
|
165
|
+
? 'opus'
|
|
166
|
+
: tierVar.includes('SONNET')
|
|
167
|
+
? 'sonnet'
|
|
168
|
+
: 'haiku';
|
|
169
|
+
const tierThinkingValue = thinkingOverride ?? getThinkingValueForTier(tier, provider, thinkingConfig);
|
|
170
|
+
result[tierVar] = applyThinkingSuffix(model, tierThinkingValue);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return result;
|
|
174
|
+
}
|
|
175
|
+
exports.applyThinkingConfig = applyThinkingConfig;
|
|
176
|
+
/**
|
|
177
|
+
* Validate port is a valid positive integer (1-65535).
|
|
178
|
+
* Returns default port if invalid.
|
|
179
|
+
*
|
|
180
|
+
* @param port - Port number to validate
|
|
181
|
+
* @returns Valid port or CLIPROXY_DEFAULT_PORT (8317) if invalid
|
|
182
|
+
*/
|
|
183
|
+
function validatePort(port) {
|
|
184
|
+
if (port === undefined || port === null) {
|
|
185
|
+
return exports.CLIPROXY_DEFAULT_PORT;
|
|
186
|
+
}
|
|
187
|
+
if (!Number.isFinite(port) || port < 1 || port > 65535 || !Number.isInteger(port)) {
|
|
188
|
+
return exports.CLIPROXY_DEFAULT_PORT;
|
|
189
|
+
}
|
|
190
|
+
return port;
|
|
191
|
+
}
|
|
192
|
+
exports.validatePort = validatePort;
|
|
193
|
+
/**
|
|
194
|
+
* Ensure required CLIProxy env vars are present.
|
|
195
|
+
* Falls back to bundled defaults if missing from user settings.
|
|
196
|
+
* This prevents 404 errors when users forget to set BASE_URL/AUTH_TOKEN.
|
|
197
|
+
*/
|
|
198
|
+
function ensureRequiredEnvVars(envVars, provider, port) {
|
|
199
|
+
const validPort = validatePort(port);
|
|
200
|
+
const result = { ...envVars };
|
|
201
|
+
const defaults = getClaudeEnvVars(provider, validPort);
|
|
202
|
+
// Fill in missing required vars from defaults
|
|
203
|
+
if (!result.ANTHROPIC_BASE_URL?.trim()) {
|
|
204
|
+
result.ANTHROPIC_BASE_URL = defaults.ANTHROPIC_BASE_URL;
|
|
205
|
+
}
|
|
206
|
+
if (!result.ANTHROPIC_AUTH_TOKEN?.trim()) {
|
|
207
|
+
result.ANTHROPIC_AUTH_TOKEN = defaults.ANTHROPIC_AUTH_TOKEN;
|
|
208
|
+
}
|
|
209
|
+
return result;
|
|
210
|
+
}
|
|
211
|
+
/** Default CLIProxy port */
|
|
212
|
+
exports.CLIPROXY_DEFAULT_PORT = 8317;
|
|
213
|
+
/**
|
|
214
|
+
* Normalize protocol to lowercase and validate.
|
|
215
|
+
* Handles runtime case sensitivity (e.g., 'HTTPS' → 'https').
|
|
216
|
+
* Defaults to 'http' for invalid values.
|
|
217
|
+
*/
|
|
218
|
+
function normalizeProtocol(protocol) {
|
|
219
|
+
if (!protocol)
|
|
220
|
+
return 'http';
|
|
221
|
+
const normalized = protocol.toLowerCase();
|
|
222
|
+
if (normalized === 'https')
|
|
223
|
+
return 'https';
|
|
224
|
+
if (normalized === 'http')
|
|
225
|
+
return 'http';
|
|
226
|
+
// Invalid protocol (e.g., 'ftp') - default to http
|
|
227
|
+
return 'http';
|
|
228
|
+
}
|
|
229
|
+
exports.normalizeProtocol = normalizeProtocol;
|
|
230
|
+
/**
|
|
231
|
+
* Validate and sanitize port number for remote connections.
|
|
232
|
+
* Returns undefined for invalid ports (letting caller use default).
|
|
233
|
+
* Valid range: 1-65535, must be integer.
|
|
234
|
+
*/
|
|
235
|
+
function validateRemotePort(port) {
|
|
236
|
+
if (port === undefined || port === null)
|
|
237
|
+
return undefined;
|
|
238
|
+
if (typeof port !== 'number' || !Number.isInteger(port))
|
|
239
|
+
return undefined;
|
|
240
|
+
if (port <= 0 || port > 65535)
|
|
241
|
+
return undefined;
|
|
242
|
+
return port;
|
|
243
|
+
}
|
|
244
|
+
exports.validateRemotePort = validateRemotePort;
|
|
245
|
+
/**
|
|
246
|
+
* Get default port for remote CLIProxyAPI based on protocol.
|
|
247
|
+
* - HTTP: 8317 (CLIProxyAPI default)
|
|
248
|
+
* - HTTPS: 443 (standard SSL port)
|
|
249
|
+
*/
|
|
250
|
+
function getRemoteDefaultPort(protocol) {
|
|
251
|
+
return protocol === 'https' ? 443 : exports.CLIPROXY_DEFAULT_PORT;
|
|
252
|
+
}
|
|
253
|
+
exports.getRemoteDefaultPort = getRemoteDefaultPort;
|
|
254
|
+
/** Internal API key for CCS-managed requests */
|
|
255
|
+
exports.CCS_INTERNAL_API_KEY = 'ccs-internal-managed';
|
|
256
|
+
/** Simple secret key for Control Panel login (user-facing) */
|
|
257
|
+
exports.CCS_CONTROL_PANEL_SECRET = 'ccs';
|
|
258
|
+
/**
|
|
259
|
+
* Get CLIProxy writable directory for logs and runtime files.
|
|
260
|
+
* This directory is set as WRITABLE_PATH env var when spawning CLIProxy.
|
|
261
|
+
* Logs will be stored in ~/.ccs/cliproxy/logs/
|
|
262
|
+
*/
|
|
263
|
+
function getCliproxyWritablePath() {
|
|
264
|
+
return path.join((0, config_manager_1.getCcsDir)(), 'cliproxy');
|
|
265
|
+
}
|
|
266
|
+
exports.getCliproxyWritablePath = getCliproxyWritablePath;
|
|
267
|
+
/**
|
|
268
|
+
* Config version - bump when config format changes to trigger regeneration
|
|
269
|
+
* v1: Initial config (port, auth-dir, api-keys only)
|
|
270
|
+
* v2: Full-featured config with dashboard, quota mgmt, simplified key
|
|
271
|
+
* v3: Logging disabled by default (user opt-in via ~/.ccs/config.yaml)
|
|
272
|
+
* v4: Added Kiro (AWS) and GitHub Copilot providers
|
|
273
|
+
* v5: Added disable-cooling: true for stability
|
|
274
|
+
*/
|
|
275
|
+
exports.CLIPROXY_CONFIG_VERSION = 5;
|
|
276
|
+
/** Provider display names (static metadata) */
|
|
277
|
+
const PROVIDER_DISPLAY_NAMES = {
|
|
278
|
+
gemini: 'Gemini',
|
|
279
|
+
codex: 'Codex',
|
|
280
|
+
agy: 'Antigravity',
|
|
281
|
+
qwen: 'Qwen Code',
|
|
282
|
+
iflow: 'iFlow',
|
|
283
|
+
kiro: 'Kiro (AWS)',
|
|
284
|
+
ghcp: 'GitHub Copilot (OAuth)',
|
|
285
|
+
claude: 'Claude (Anthropic)',
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* Get provider configuration
|
|
289
|
+
* Model mappings are loaded from config/base-{provider}.settings.json
|
|
290
|
+
*/
|
|
291
|
+
function getProviderConfig(provider) {
|
|
292
|
+
const displayName = PROVIDER_DISPLAY_NAMES[provider];
|
|
293
|
+
if (!displayName) {
|
|
294
|
+
throw new Error(`Unknown provider: ${provider}`);
|
|
295
|
+
}
|
|
296
|
+
// Load models from base config file
|
|
297
|
+
const models = (0, base_config_loader_1.getModelMappingFromConfig)(provider);
|
|
298
|
+
return {
|
|
299
|
+
name: provider,
|
|
300
|
+
displayName,
|
|
301
|
+
models,
|
|
302
|
+
requiresOAuth: true, // All CLIProxy providers require OAuth
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
exports.getProviderConfig = getProviderConfig;
|
|
306
|
+
/**
|
|
307
|
+
* Get model mapping for provider
|
|
308
|
+
* Loads from config/base-{provider}.settings.json
|
|
309
|
+
*/
|
|
310
|
+
function getModelMapping(provider) {
|
|
311
|
+
return getProviderConfig(provider).models;
|
|
312
|
+
}
|
|
313
|
+
exports.getModelMapping = getModelMapping;
|
|
314
|
+
/**
|
|
315
|
+
* Get CLIProxy base directory
|
|
316
|
+
* All CLIProxy-related files are stored under ~/.ccs/cliproxy/
|
|
317
|
+
*/
|
|
318
|
+
function getCliproxyDir() {
|
|
319
|
+
return path.join((0, config_manager_1.getCcsDir)(), 'cliproxy');
|
|
320
|
+
}
|
|
321
|
+
exports.getCliproxyDir = getCliproxyDir;
|
|
322
|
+
/**
|
|
323
|
+
* Get auth directory for provider
|
|
324
|
+
* All providers use a FLAT auth directory structure for unified config.
|
|
325
|
+
* CLIProxyAPI stores OAuth tokens directly in auth/ (not subdirectories).
|
|
326
|
+
* This enables all providers to be discovered and used concurrently.
|
|
327
|
+
*/
|
|
328
|
+
function getProviderAuthDir(_provider) {
|
|
329
|
+
// Use flat structure - all auth files in same directory for unified discovery
|
|
330
|
+
// Provider param kept for API compatibility (CLIProxyAPI handles via auth file type field)
|
|
331
|
+
return path.join(getCliproxyDir(), 'auth');
|
|
332
|
+
}
|
|
333
|
+
exports.getProviderAuthDir = getProviderAuthDir;
|
|
334
|
+
/**
|
|
335
|
+
* Get base auth directory for CLIProxyAPI
|
|
336
|
+
*/
|
|
337
|
+
function getAuthDir() {
|
|
338
|
+
return path.join(getCliproxyDir(), 'auth');
|
|
339
|
+
}
|
|
340
|
+
exports.getAuthDir = getAuthDir;
|
|
341
|
+
/**
|
|
342
|
+
* Get config file path for a specific port.
|
|
343
|
+
* Default port uses config.yaml, others use config-{port}.yaml.
|
|
344
|
+
*/
|
|
345
|
+
function getConfigPathForPort(port) {
|
|
346
|
+
if (port === exports.CLIPROXY_DEFAULT_PORT) {
|
|
347
|
+
return path.join(getCliproxyDir(), 'config.yaml');
|
|
348
|
+
}
|
|
349
|
+
return path.join(getCliproxyDir(), `config-${port}.yaml`);
|
|
350
|
+
}
|
|
351
|
+
exports.getConfigPathForPort = getConfigPathForPort;
|
|
352
|
+
/**
|
|
353
|
+
* Get CLIProxy config file path (default port)
|
|
354
|
+
* Named distinctly from config-manager's getConfigPath to avoid confusion.
|
|
355
|
+
*/
|
|
356
|
+
function getCliproxyConfigPath() {
|
|
357
|
+
return getConfigPathForPort(exports.CLIPROXY_DEFAULT_PORT);
|
|
358
|
+
}
|
|
359
|
+
exports.getCliproxyConfigPath = getCliproxyConfigPath;
|
|
360
|
+
/**
|
|
361
|
+
* Get binary directory path
|
|
362
|
+
*/
|
|
363
|
+
function getBinDir() {
|
|
364
|
+
return path.join(getCliproxyDir(), 'bin');
|
|
365
|
+
}
|
|
366
|
+
exports.getBinDir = getBinDir;
|
|
367
|
+
/**
|
|
368
|
+
* Get CLIProxy logging settings from user config.
|
|
369
|
+
* Defaults to disabled to prevent disk bloat.
|
|
370
|
+
*/
|
|
371
|
+
function getLoggingSettings() {
|
|
372
|
+
const config = (0, unified_config_loader_1.loadOrCreateUnifiedConfig)();
|
|
373
|
+
return {
|
|
374
|
+
loggingToFile: config.cliproxy.logging?.enabled ?? false,
|
|
375
|
+
requestLog: config.cliproxy.logging?.request_log ?? false,
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Generate UNIFIED config.yaml content for ALL providers
|
|
380
|
+
* This enables concurrent usage of gemini/codex/agy without config conflicts.
|
|
381
|
+
* CLIProxyAPI routes requests by model name to the appropriate provider.
|
|
382
|
+
*
|
|
383
|
+
* @param port - Server port (default: 8317)
|
|
384
|
+
* @param userApiKeys - User-added API keys to preserve (default: [])
|
|
385
|
+
*/
|
|
386
|
+
function generateUnifiedConfigContent(port = exports.CLIPROXY_DEFAULT_PORT, userApiKeys = []) {
|
|
387
|
+
const authDir = getAuthDir(); // Base auth dir - CLIProxyAPI scans subdirectories
|
|
388
|
+
// Convert Windows backslashes to forward slashes for YAML compatibility
|
|
389
|
+
const authDirNormalized = authDir.split(path.sep).join('/');
|
|
390
|
+
// Get logging settings from user config (disabled by default)
|
|
391
|
+
const { loggingToFile, requestLog } = getLoggingSettings();
|
|
392
|
+
// Get effective auth tokens (respects user customization)
|
|
393
|
+
const effectiveApiKey = (0, auth_token_manager_1.getEffectiveApiKey)();
|
|
394
|
+
const effectiveSecret = (0, auth_token_manager_1.getEffectiveManagementSecret)();
|
|
395
|
+
// Build api-keys section with internal key + preserved user keys
|
|
396
|
+
const allApiKeys = [effectiveApiKey, ...userApiKeys];
|
|
397
|
+
const apiKeysYaml = allApiKeys.map((key) => ` - "${key}"`).join('\n');
|
|
398
|
+
// Unified config with enhanced CLIProxyAPI features
|
|
399
|
+
const config = `# CLIProxyAPI config generated by CCS v${exports.CLIPROXY_CONFIG_VERSION}
|
|
400
|
+
# Supports: gemini, codex, agy, qwen, iflow (concurrent usage)
|
|
401
|
+
# Generated: ${new Date().toISOString()}
|
|
402
|
+
#
|
|
403
|
+
# This config is auto-managed by CCS. Manual edits may be overwritten.
|
|
404
|
+
# Use 'ccs doctor' to regenerate with latest settings.
|
|
405
|
+
|
|
406
|
+
# =============================================================================
|
|
407
|
+
# Server Settings
|
|
408
|
+
# =============================================================================
|
|
409
|
+
|
|
410
|
+
port: ${port}
|
|
411
|
+
debug: false
|
|
412
|
+
|
|
413
|
+
# =============================================================================
|
|
414
|
+
# Logging
|
|
415
|
+
# =============================================================================
|
|
416
|
+
# WARNING: Logs can grow to several GB if enabled!
|
|
417
|
+
# To enable logging, edit ~/.ccs/config.yaml:
|
|
418
|
+
# cliproxy:
|
|
419
|
+
# logging:
|
|
420
|
+
# enabled: true
|
|
421
|
+
# request_log: true
|
|
422
|
+
# Then run 'ccs doctor --fix' to regenerate this config.
|
|
423
|
+
# Use 'ccs cleanup' to remove old logs.
|
|
424
|
+
|
|
425
|
+
# Write logs to file (stored in ~/.ccs/cliproxy/logs/)
|
|
426
|
+
logging-to-file: ${loggingToFile}
|
|
427
|
+
|
|
428
|
+
# Log individual API requests for debugging/analytics
|
|
429
|
+
request-log: ${requestLog}
|
|
430
|
+
|
|
431
|
+
# =============================================================================
|
|
432
|
+
# Dashboard & Management
|
|
433
|
+
# =============================================================================
|
|
434
|
+
|
|
435
|
+
# Enable usage statistics for CCS dashboard analytics
|
|
436
|
+
usage-statistics-enabled: true
|
|
437
|
+
|
|
438
|
+
# Remote management API for CCS dashboard integration
|
|
439
|
+
remote-management:
|
|
440
|
+
allow-remote: true
|
|
441
|
+
secret-key: "${effectiveSecret}"
|
|
442
|
+
disable-control-panel: false
|
|
443
|
+
|
|
444
|
+
# =============================================================================
|
|
445
|
+
# Reliability & Quota Management
|
|
446
|
+
# =============================================================================
|
|
447
|
+
|
|
448
|
+
# Disable quota cooldown scheduling for stability
|
|
449
|
+
disable-cooling: true
|
|
450
|
+
|
|
451
|
+
# Auto-retry on transient errors (403, 408, 500, 502, 503, 504)
|
|
452
|
+
request-retry: 0
|
|
453
|
+
max-retry-interval: 0
|
|
454
|
+
|
|
455
|
+
# Auto-switch accounts on quota exceeded (429)
|
|
456
|
+
# This enables seamless multi-account rotation when rate limited
|
|
457
|
+
quota-exceeded:
|
|
458
|
+
switch-project: true
|
|
459
|
+
switch-preview-model: true
|
|
460
|
+
|
|
461
|
+
# =============================================================================
|
|
462
|
+
# Authentication
|
|
463
|
+
# =============================================================================
|
|
464
|
+
|
|
465
|
+
# API keys for CCS and user-added external requests
|
|
466
|
+
# NOTE: User-added keys are preserved across CCS updates (fix for issue #200)
|
|
467
|
+
api-keys:
|
|
468
|
+
${apiKeysYaml}
|
|
469
|
+
|
|
470
|
+
# OAuth tokens directory (auto-discovered by CLIProxyAPI)
|
|
471
|
+
auth-dir: "${authDirNormalized}"
|
|
472
|
+
`;
|
|
473
|
+
return config;
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Generate unified config.yaml file (supports all providers concurrently)
|
|
477
|
+
* Only regenerates if config doesn't exist.
|
|
478
|
+
* @returns Path to config file
|
|
479
|
+
*/
|
|
480
|
+
function generateConfig(provider, port = exports.CLIPROXY_DEFAULT_PORT) {
|
|
481
|
+
const configPath = getConfigPathForPort(port);
|
|
482
|
+
// Ensure provider auth directory exists
|
|
483
|
+
const authDir = getProviderAuthDir(provider);
|
|
484
|
+
fs.mkdirSync(path.dirname(configPath), { recursive: true });
|
|
485
|
+
fs.mkdirSync(authDir, { recursive: true, mode: 0o700 });
|
|
486
|
+
// Only generate config if it doesn't exist (unified config serves all providers)
|
|
487
|
+
if (!fs.existsSync(configPath)) {
|
|
488
|
+
const configContent = generateUnifiedConfigContent(port);
|
|
489
|
+
fs.writeFileSync(configPath, configContent, { mode: 0o600 });
|
|
490
|
+
}
|
|
491
|
+
return configPath;
|
|
492
|
+
}
|
|
493
|
+
exports.generateConfig = generateConfig;
|
|
494
|
+
/**
|
|
495
|
+
* Parse user-added API keys from existing config content.
|
|
496
|
+
* Extracts all keys except the internal CCS key for preservation.
|
|
497
|
+
*
|
|
498
|
+
* @param content - Existing config.yaml content
|
|
499
|
+
* @returns Array of user-added API keys (excludes CCS_INTERNAL_API_KEY)
|
|
500
|
+
*/
|
|
501
|
+
function parseUserApiKeys(content) {
|
|
502
|
+
const userKeys = [];
|
|
503
|
+
// Find the api-keys section by looking for lines starting with " - " after "api-keys:"
|
|
504
|
+
// Normalize line endings first
|
|
505
|
+
const normalizedContent = content.replace(/\r\n/g, '\n');
|
|
506
|
+
// Find the api-keys: line and extract all subsequent key entries
|
|
507
|
+
const lines = normalizedContent.split('\n');
|
|
508
|
+
let inApiKeysSection = false;
|
|
509
|
+
for (const line of lines) {
|
|
510
|
+
// Check if this is the start of api-keys section
|
|
511
|
+
if (line.match(/^api-keys:\s*$/)) {
|
|
512
|
+
inApiKeysSection = true;
|
|
513
|
+
continue;
|
|
514
|
+
}
|
|
515
|
+
// If we're in the api-keys section, look for key entries
|
|
516
|
+
if (inApiKeysSection) {
|
|
517
|
+
// Key entries are indented with " - " or similar
|
|
518
|
+
const keyMatch = line.match(/^\s+-\s*"([^"]*)"/);
|
|
519
|
+
if (keyMatch) {
|
|
520
|
+
const key = keyMatch[1];
|
|
521
|
+
// Exclude the internal CCS key and empty strings
|
|
522
|
+
if (key && key !== exports.CCS_INTERNAL_API_KEY) {
|
|
523
|
+
userKeys.push(key);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
else if (line.match(/^\S/) && line.trim().length > 0) {
|
|
527
|
+
// Non-indented line that's not empty means we've left the api-keys section
|
|
528
|
+
break;
|
|
529
|
+
}
|
|
530
|
+
// Continue for blank lines or other indented content
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
return userKeys;
|
|
534
|
+
}
|
|
535
|
+
exports.parseUserApiKeys = parseUserApiKeys;
|
|
536
|
+
/**
|
|
537
|
+
* Force regenerate config.yaml with latest settings.
|
|
538
|
+
* Preserves user-added API keys and port settings.
|
|
539
|
+
*
|
|
540
|
+
* @param port - Default port to use if not found in existing config
|
|
541
|
+
* @returns Path to new config file
|
|
542
|
+
*/
|
|
543
|
+
function regenerateConfig(port = exports.CLIPROXY_DEFAULT_PORT) {
|
|
544
|
+
const configPath = getConfigPathForPort(port);
|
|
545
|
+
// Preserve user settings from existing config
|
|
546
|
+
let effectivePort = port;
|
|
547
|
+
let userApiKeys = [];
|
|
548
|
+
if (fs.existsSync(configPath)) {
|
|
549
|
+
try {
|
|
550
|
+
const content = fs.readFileSync(configPath, 'utf-8');
|
|
551
|
+
// Preserve port setting
|
|
552
|
+
const portMatch = content.match(/^port:\s*(\d+)/m);
|
|
553
|
+
if (portMatch) {
|
|
554
|
+
effectivePort = parseInt(portMatch[1], 10);
|
|
555
|
+
}
|
|
556
|
+
// Preserve user-added API keys (fix for issue #200)
|
|
557
|
+
userApiKeys = parseUserApiKeys(content);
|
|
558
|
+
}
|
|
559
|
+
catch {
|
|
560
|
+
// Use defaults if reading fails
|
|
561
|
+
}
|
|
562
|
+
// Delete existing config
|
|
563
|
+
fs.unlinkSync(configPath);
|
|
564
|
+
}
|
|
565
|
+
// Ensure directories exist
|
|
566
|
+
fs.mkdirSync(path.dirname(configPath), { recursive: true });
|
|
567
|
+
fs.mkdirSync(getAuthDir(), { recursive: true, mode: 0o700 });
|
|
568
|
+
// Generate fresh config with preserved user API keys
|
|
569
|
+
const configContent = generateUnifiedConfigContent(effectivePort, userApiKeys);
|
|
570
|
+
fs.writeFileSync(configPath, configContent, { mode: 0o600 });
|
|
571
|
+
return configPath;
|
|
572
|
+
}
|
|
573
|
+
exports.regenerateConfig = regenerateConfig;
|
|
574
|
+
/**
|
|
575
|
+
* Check if config needs regeneration (version mismatch)
|
|
576
|
+
* @returns true if config should be regenerated
|
|
577
|
+
*/
|
|
578
|
+
function configNeedsRegeneration() {
|
|
579
|
+
const configPath = getCliproxyConfigPath();
|
|
580
|
+
if (!fs.existsSync(configPath)) {
|
|
581
|
+
return false; // Will be created on first use
|
|
582
|
+
}
|
|
583
|
+
try {
|
|
584
|
+
const content = fs.readFileSync(configPath, 'utf-8');
|
|
585
|
+
// Check for version marker
|
|
586
|
+
const versionMatch = content.match(/CCS v(\d+)/);
|
|
587
|
+
if (!versionMatch) {
|
|
588
|
+
return true; // No version marker = old config
|
|
589
|
+
}
|
|
590
|
+
const configVersion = parseInt(versionMatch[1], 10);
|
|
591
|
+
return configVersion < exports.CLIPROXY_CONFIG_VERSION;
|
|
592
|
+
}
|
|
593
|
+
catch {
|
|
594
|
+
return true; // Error reading = regenerate
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
exports.configNeedsRegeneration = configNeedsRegeneration;
|
|
598
|
+
/**
|
|
599
|
+
* Check if config exists for port
|
|
600
|
+
*/
|
|
601
|
+
function configExists(port = exports.CLIPROXY_DEFAULT_PORT) {
|
|
602
|
+
return fs.existsSync(getConfigPathForPort(port));
|
|
603
|
+
}
|
|
604
|
+
exports.configExists = configExists;
|
|
605
|
+
/**
|
|
606
|
+
* Delete config file for specific port
|
|
607
|
+
*/
|
|
608
|
+
function deleteConfigForPort(port) {
|
|
609
|
+
const configPath = getConfigPathForPort(port);
|
|
610
|
+
if (fs.existsSync(configPath)) {
|
|
611
|
+
fs.unlinkSync(configPath);
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
exports.deleteConfigForPort = deleteConfigForPort;
|
|
615
|
+
/**
|
|
616
|
+
* Delete config file (default port)
|
|
617
|
+
*/
|
|
618
|
+
function deleteConfig() {
|
|
619
|
+
deleteConfigForPort(exports.CLIPROXY_DEFAULT_PORT);
|
|
620
|
+
}
|
|
621
|
+
exports.deleteConfig = deleteConfig;
|
|
622
|
+
/**
|
|
623
|
+
* Get path to user settings file for provider
|
|
624
|
+
* Example: ~/.ccs/gemini.settings.json
|
|
625
|
+
*/
|
|
626
|
+
function getProviderSettingsPath(provider) {
|
|
627
|
+
return path.join((0, config_manager_1.getCcsDir)(), `${provider}.settings.json`);
|
|
628
|
+
}
|
|
629
|
+
exports.getProviderSettingsPath = getProviderSettingsPath;
|
|
630
|
+
/**
|
|
631
|
+
* Get environment variables for Claude CLI (bundled defaults)
|
|
632
|
+
* Uses provider-specific endpoint (e.g., /api/provider/gemini) for explicit routing.
|
|
633
|
+
* This enables concurrent gemini/codex usage - each session routes to its provider via URL path.
|
|
634
|
+
*/
|
|
635
|
+
function getClaudeEnvVars(provider, port = exports.CLIPROXY_DEFAULT_PORT) {
|
|
636
|
+
const models = getModelMapping(provider);
|
|
637
|
+
// Base env vars from config file (includes ANTHROPIC_MAX_TOKENS, etc.)
|
|
638
|
+
const baseEnvVars = (0, base_config_loader_1.getEnvVarsFromConfig)(provider);
|
|
639
|
+
// Core env vars that we always set dynamically
|
|
640
|
+
const coreEnvVars = {
|
|
641
|
+
// Provider-specific endpoint - routes to correct provider via URL path
|
|
642
|
+
ANTHROPIC_BASE_URL: `http://127.0.0.1:${port}/api/provider/${provider}`,
|
|
643
|
+
ANTHROPIC_AUTH_TOKEN: (0, auth_token_manager_1.getEffectiveApiKey)(),
|
|
644
|
+
ANTHROPIC_MODEL: models.claudeModel,
|
|
645
|
+
ANTHROPIC_DEFAULT_OPUS_MODEL: models.opusModel || models.claudeModel,
|
|
646
|
+
ANTHROPIC_DEFAULT_SONNET_MODEL: models.sonnetModel || models.claudeModel,
|
|
647
|
+
ANTHROPIC_DEFAULT_HAIKU_MODEL: models.haikuModel || models.claudeModel,
|
|
648
|
+
};
|
|
649
|
+
// Filter out core env vars from base config to avoid conflicts
|
|
650
|
+
const { ANTHROPIC_BASE_URL: _baseUrl, ANTHROPIC_AUTH_TOKEN: _authToken, ANTHROPIC_MODEL: _model, ANTHROPIC_DEFAULT_OPUS_MODEL: _opusModel, ANTHROPIC_DEFAULT_SONNET_MODEL: _sonnetModel, ANTHROPIC_DEFAULT_HAIKU_MODEL: _haikuModel, ...additionalEnvVars } = baseEnvVars;
|
|
651
|
+
// Merge core env vars with additional env vars from base config
|
|
652
|
+
return {
|
|
653
|
+
...coreEnvVars,
|
|
654
|
+
...additionalEnvVars, // Includes ANTHROPIC_MAX_TOKENS, etc.
|
|
655
|
+
};
|
|
656
|
+
}
|
|
657
|
+
exports.getClaudeEnvVars = getClaudeEnvVars;
|
|
658
|
+
/**
|
|
659
|
+
* Get global env vars to inject into all third-party profiles.
|
|
660
|
+
* Returns empty object if disabled.
|
|
661
|
+
*/
|
|
662
|
+
function getGlobalEnvVars() {
|
|
663
|
+
const globalEnvConfig = (0, unified_config_loader_1.getGlobalEnvConfig)();
|
|
664
|
+
if (!globalEnvConfig.enabled) {
|
|
665
|
+
return {};
|
|
666
|
+
}
|
|
667
|
+
return globalEnvConfig.env;
|
|
668
|
+
}
|
|
669
|
+
/**
|
|
670
|
+
* Rewrite localhost URLs to remote server URLs.
|
|
671
|
+
* Handles various localhost patterns: 127.0.0.1, localhost, 0.0.0.0
|
|
672
|
+
*/
|
|
673
|
+
function rewriteLocalhostUrls(envVars, provider, remoteConfig) {
|
|
674
|
+
const result = { ...envVars };
|
|
675
|
+
const baseUrl = result.ANTHROPIC_BASE_URL;
|
|
676
|
+
if (!baseUrl)
|
|
677
|
+
return result;
|
|
678
|
+
// Check if URL points to localhost (127.0.0.1, localhost, 0.0.0.0)
|
|
679
|
+
const localhostPattern = /^https?:\/\/(127\.0\.0\.1|localhost|0\.0\.0\.0)(:\d+)?/i;
|
|
680
|
+
if (!localhostPattern.test(baseUrl))
|
|
681
|
+
return result;
|
|
682
|
+
// Build remote URL with smart port handling (8317 for HTTP, 443 for HTTPS)
|
|
683
|
+
// Validate port and normalize protocol for defensive handling
|
|
684
|
+
const normalizedProtocol = normalizeProtocol(remoteConfig.protocol);
|
|
685
|
+
const validatedPort = validateRemotePort(remoteConfig.port);
|
|
686
|
+
const effectivePort = validatedPort ?? getRemoteDefaultPort(normalizedProtocol);
|
|
687
|
+
// Omit port suffix for standard web ports (80/443) for cleaner URLs
|
|
688
|
+
const standardWebPort = normalizedProtocol === 'https' ? 443 : 80;
|
|
689
|
+
const portSuffix = effectivePort === standardWebPort ? '' : `:${effectivePort}`;
|
|
690
|
+
const remoteBaseUrl = `${normalizedProtocol}://${remoteConfig.host}${portSuffix}/api/provider/${provider}`;
|
|
691
|
+
result.ANTHROPIC_BASE_URL = remoteBaseUrl;
|
|
692
|
+
// Update auth token if provided
|
|
693
|
+
if (remoteConfig.authToken) {
|
|
694
|
+
result.ANTHROPIC_AUTH_TOKEN = remoteConfig.authToken;
|
|
695
|
+
}
|
|
696
|
+
return result;
|
|
697
|
+
}
|
|
698
|
+
/**
|
|
699
|
+
* Get effective environment variables for provider
|
|
700
|
+
*
|
|
701
|
+
* Priority order:
|
|
702
|
+
* 1. Custom settings path (for user-defined CLIProxy variants)
|
|
703
|
+
* 2. User settings file (~/.ccs/{provider}.settings.json) if exists
|
|
704
|
+
* 3. Bundled defaults from PROVIDER_CONFIGS
|
|
705
|
+
*
|
|
706
|
+
* All results are merged with global_env vars (telemetry/reporting disables).
|
|
707
|
+
* User takes full responsibility for custom settings.
|
|
708
|
+
*
|
|
709
|
+
* If remoteRewriteConfig is provided, localhost URLs are rewritten to remote server.
|
|
710
|
+
*/
|
|
711
|
+
function getEffectiveEnvVars(provider, port = exports.CLIPROXY_DEFAULT_PORT, customSettingsPath, remoteRewriteConfig) {
|
|
712
|
+
// Get global env vars (DISABLE_TELEMETRY, etc.)
|
|
713
|
+
const globalEnv = getGlobalEnvVars();
|
|
714
|
+
let envVars;
|
|
715
|
+
// Priority 1: Custom settings path (for user-defined variants)
|
|
716
|
+
if (customSettingsPath) {
|
|
717
|
+
const expandedPath = (0, helpers_1.expandPath)(customSettingsPath);
|
|
718
|
+
if (fs.existsSync(expandedPath)) {
|
|
719
|
+
try {
|
|
720
|
+
const content = fs.readFileSync(expandedPath, 'utf-8');
|
|
721
|
+
const settings = JSON.parse(content);
|
|
722
|
+
if (settings.env && typeof settings.env === 'object') {
|
|
723
|
+
// Custom variant settings found - merge with global env
|
|
724
|
+
envVars = { ...globalEnv, ...settings.env };
|
|
725
|
+
// Ensure required vars are present (fall back to defaults if missing)
|
|
726
|
+
envVars = ensureRequiredEnvVars(envVars, provider, port);
|
|
727
|
+
// Apply remote rewrite if configured
|
|
728
|
+
if (remoteRewriteConfig) {
|
|
729
|
+
envVars = rewriteLocalhostUrls(envVars, provider, remoteRewriteConfig);
|
|
730
|
+
}
|
|
731
|
+
return envVars;
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
catch {
|
|
735
|
+
// Invalid JSON - fall through to provider defaults
|
|
736
|
+
console.warn((0, ui_1.warn)(`Invalid settings file: ${customSettingsPath}`));
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
else {
|
|
740
|
+
console.warn((0, ui_1.warn)(`Settings file not found: ${customSettingsPath}`));
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
// Priority 2: Default provider settings file
|
|
744
|
+
const settingsPath = getProviderSettingsPath(provider);
|
|
745
|
+
// Check for user override file
|
|
746
|
+
if (fs.existsSync(settingsPath)) {
|
|
747
|
+
try {
|
|
748
|
+
const content = fs.readFileSync(settingsPath, 'utf-8');
|
|
749
|
+
const settings = JSON.parse(content);
|
|
750
|
+
if (settings.env && typeof settings.env === 'object') {
|
|
751
|
+
// User override found - merge with global env
|
|
752
|
+
envVars = { ...globalEnv, ...settings.env };
|
|
753
|
+
// Ensure required vars are present (fall back to defaults if missing)
|
|
754
|
+
envVars = ensureRequiredEnvVars(envVars, provider, port);
|
|
755
|
+
// Apply remote rewrite if configured
|
|
756
|
+
if (remoteRewriteConfig) {
|
|
757
|
+
envVars = rewriteLocalhostUrls(envVars, provider, remoteRewriteConfig);
|
|
758
|
+
}
|
|
759
|
+
return envVars;
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
catch {
|
|
763
|
+
// Invalid JSON or structure - fall through to defaults
|
|
764
|
+
// Silent fallback: don't spam errors for broken user files
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
// No override or invalid - use bundled defaults merged with global env
|
|
768
|
+
return { ...globalEnv, ...getClaudeEnvVars(provider, port) };
|
|
769
|
+
}
|
|
770
|
+
exports.getEffectiveEnvVars = getEffectiveEnvVars;
|
|
771
|
+
/**
|
|
772
|
+
* Copy bundled settings template to user directory if not exists
|
|
773
|
+
* Called during installation/first run
|
|
774
|
+
*/
|
|
775
|
+
function ensureProviderSettings(provider) {
|
|
776
|
+
const settingsPath = getProviderSettingsPath(provider);
|
|
777
|
+
// Only create if doesn't exist (preserve user edits)
|
|
778
|
+
if (fs.existsSync(settingsPath)) {
|
|
779
|
+
return;
|
|
780
|
+
}
|
|
781
|
+
// Generate default settings from PROVIDER_CONFIGS
|
|
782
|
+
const envVars = getClaudeEnvVars(provider);
|
|
783
|
+
const settings = { env: envVars };
|
|
784
|
+
// Ensure directory exists
|
|
785
|
+
fs.mkdirSync(path.dirname(settingsPath), { recursive: true });
|
|
786
|
+
// Write with restricted permissions
|
|
787
|
+
fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + '\n', {
|
|
788
|
+
mode: 0o600,
|
|
789
|
+
});
|
|
790
|
+
}
|
|
791
|
+
exports.ensureProviderSettings = ensureProviderSettings;
|
|
792
|
+
/**
|
|
793
|
+
* Get environment variables for remote proxy mode.
|
|
794
|
+
* Uses the remote proxy's provider endpoint as the base URL.
|
|
795
|
+
* Respects user model settings from custom settings path or provider settings file.
|
|
796
|
+
*
|
|
797
|
+
* @param provider CLIProxy provider (gemini, codex, agy, qwen, iflow)
|
|
798
|
+
* @param remoteConfig Remote proxy connection details
|
|
799
|
+
* @param customSettingsPath Optional path to user's custom settings file
|
|
800
|
+
* @returns Environment variables for Claude CLI
|
|
801
|
+
*/
|
|
802
|
+
function getRemoteEnvVars(provider, remoteConfig, customSettingsPath) {
|
|
803
|
+
// Build URL with smart port handling (8317 for HTTP, 443 for HTTPS)
|
|
804
|
+
// Validate port and normalize protocol for defensive handling
|
|
805
|
+
const normalizedProtocol = normalizeProtocol(remoteConfig.protocol);
|
|
806
|
+
const validatedPort = validateRemotePort(remoteConfig.port);
|
|
807
|
+
const effectivePort = validatedPort ?? getRemoteDefaultPort(normalizedProtocol);
|
|
808
|
+
// Omit port suffix for standard web ports (80/443) for cleaner URLs
|
|
809
|
+
const standardWebPort = normalizedProtocol === 'https' ? 443 : 80;
|
|
810
|
+
const portSuffix = effectivePort === standardWebPort ? '' : `:${effectivePort}`;
|
|
811
|
+
// Remote CLIProxyAPI uses root path (e.g., /v1/messages), not /api/provider/{provider}/v1/messages
|
|
812
|
+
// The /api/provider/ prefix is only for local CLIProxy instances
|
|
813
|
+
const baseUrl = `${normalizedProtocol}://${remoteConfig.host}${portSuffix}`;
|
|
814
|
+
// Get global env vars (DISABLE_TELEMETRY, etc.)
|
|
815
|
+
const globalEnv = getGlobalEnvVars();
|
|
816
|
+
// Load user settings with priority: custom path > user settings file > base config
|
|
817
|
+
let userEnvVars = {};
|
|
818
|
+
// Priority 1: Custom settings path (for user-defined variants)
|
|
819
|
+
if (customSettingsPath) {
|
|
820
|
+
const expandedPath = (0, helpers_1.expandPath)(customSettingsPath);
|
|
821
|
+
if (fs.existsSync(expandedPath)) {
|
|
822
|
+
try {
|
|
823
|
+
const content = fs.readFileSync(expandedPath, 'utf-8');
|
|
824
|
+
const settings = JSON.parse(content);
|
|
825
|
+
if (settings.env && typeof settings.env === 'object') {
|
|
826
|
+
userEnvVars = settings.env;
|
|
827
|
+
}
|
|
828
|
+
}
|
|
829
|
+
catch {
|
|
830
|
+
// Invalid JSON - fall through to provider defaults
|
|
831
|
+
console.warn((0, ui_1.warn)(`Invalid settings file: ${customSettingsPath}`));
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
// Priority 2: Default provider settings file (~/.ccs/{provider}.settings.json)
|
|
836
|
+
if (Object.keys(userEnvVars).length === 0) {
|
|
837
|
+
const settingsPath = getProviderSettingsPath(provider);
|
|
838
|
+
if (fs.existsSync(settingsPath)) {
|
|
839
|
+
try {
|
|
840
|
+
const content = fs.readFileSync(settingsPath, 'utf-8');
|
|
841
|
+
const settings = JSON.parse(content);
|
|
842
|
+
if (settings.env && typeof settings.env === 'object') {
|
|
843
|
+
userEnvVars = settings.env;
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
catch {
|
|
847
|
+
// Invalid JSON - fall through to base config
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
}
|
|
851
|
+
// Priority 3: Base config defaults
|
|
852
|
+
if (Object.keys(userEnvVars).length === 0) {
|
|
853
|
+
const models = getModelMapping(provider);
|
|
854
|
+
const baseEnvVars = (0, base_config_loader_1.getEnvVarsFromConfig)(provider);
|
|
855
|
+
// Filter out URL/auth from base config (we'll set those from remote config)
|
|
856
|
+
const { ANTHROPIC_BASE_URL: _baseUrl, ANTHROPIC_AUTH_TOKEN: _authToken, ...additionalEnvVars } = baseEnvVars;
|
|
857
|
+
userEnvVars = {
|
|
858
|
+
...additionalEnvVars,
|
|
859
|
+
ANTHROPIC_MODEL: models.claudeModel,
|
|
860
|
+
ANTHROPIC_DEFAULT_OPUS_MODEL: models.opusModel || models.claudeModel,
|
|
861
|
+
ANTHROPIC_DEFAULT_SONNET_MODEL: models.sonnetModel || models.claudeModel,
|
|
862
|
+
ANTHROPIC_DEFAULT_HAIKU_MODEL: models.haikuModel || models.claudeModel,
|
|
863
|
+
};
|
|
864
|
+
}
|
|
865
|
+
// Build final env: global + user settings + remote URL/auth override
|
|
866
|
+
const env = {
|
|
867
|
+
...globalEnv,
|
|
868
|
+
...userEnvVars,
|
|
869
|
+
// Always override URL and auth token with remote config
|
|
870
|
+
ANTHROPIC_BASE_URL: baseUrl,
|
|
871
|
+
ANTHROPIC_AUTH_TOKEN: remoteConfig.authToken || (0, auth_token_manager_1.getEffectiveApiKey)(),
|
|
872
|
+
};
|
|
873
|
+
return env;
|
|
874
|
+
}
|
|
875
|
+
exports.getRemoteEnvVars = getRemoteEnvVars;
|
|
876
|
+
//# sourceMappingURL=config-generator.js.map
|