@kaitranntt/ccs 5.5.0 → 5.6.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/VERSION +1 -1
  2. package/dist/ccs.js +26 -2
  3. package/dist/ccs.js.map +1 -1
  4. package/dist/cliproxy/binary-manager.d.ts +18 -0
  5. package/dist/cliproxy/binary-manager.d.ts.map +1 -1
  6. package/dist/cliproxy/binary-manager.js +71 -10
  7. package/dist/cliproxy/binary-manager.js.map +1 -1
  8. package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
  9. package/dist/cliproxy/cliproxy-executor.js +31 -4
  10. package/dist/cliproxy/cliproxy-executor.js.map +1 -1
  11. package/dist/cliproxy/index.d.ts +4 -1
  12. package/dist/cliproxy/index.d.ts.map +1 -1
  13. package/dist/cliproxy/index.js +15 -1
  14. package/dist/cliproxy/index.js.map +1 -1
  15. package/dist/cliproxy/model-catalog.d.ts +60 -0
  16. package/dist/cliproxy/model-catalog.d.ts.map +1 -0
  17. package/dist/cliproxy/model-catalog.js +109 -0
  18. package/dist/cliproxy/model-catalog.js.map +1 -0
  19. package/dist/cliproxy/model-config.d.ts +28 -0
  20. package/dist/cliproxy/model-config.d.ts.map +1 -0
  21. package/dist/cliproxy/model-config.js +197 -0
  22. package/dist/cliproxy/model-config.js.map +1 -0
  23. package/dist/cliproxy/platform-detector.d.ts +2 -2
  24. package/dist/cliproxy/platform-detector.js +1 -1
  25. package/dist/cliproxy/types.d.ts +2 -0
  26. package/dist/cliproxy/types.d.ts.map +1 -1
  27. package/dist/commands/cliproxy-command.d.ts +17 -0
  28. package/dist/commands/cliproxy-command.d.ts.map +1 -0
  29. package/dist/commands/cliproxy-command.js +178 -0
  30. package/dist/commands/cliproxy-command.js.map +1 -0
  31. package/dist/commands/doctor-command.d.ts +2 -1
  32. package/dist/commands/doctor-command.d.ts.map +1 -1
  33. package/dist/commands/doctor-command.js +6 -1
  34. package/dist/commands/doctor-command.js.map +1 -1
  35. package/dist/commands/help-command.d.ts.map +1 -1
  36. package/dist/commands/help-command.js +10 -3
  37. package/dist/commands/help-command.js.map +1 -1
  38. package/dist/commands/sync-command.d.ts.map +1 -1
  39. package/dist/commands/sync-command.js +7 -0
  40. package/dist/commands/sync-command.js.map +1 -1
  41. package/dist/management/doctor.d.ts +5 -0
  42. package/dist/management/doctor.d.ts.map +1 -1
  43. package/dist/management/doctor.js +45 -2
  44. package/dist/management/doctor.js.map +1 -1
  45. package/dist/utils/prompt.d.ts +19 -0
  46. package/dist/utils/prompt.d.ts.map +1 -1
  47. package/dist/utils/prompt.js +92 -0
  48. package/dist/utils/prompt.js.map +1 -1
  49. package/package.json +1 -1
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Model Catalog - Available models for CLI Proxy providers
3
+ *
4
+ * Ships with CCS to provide users with interactive model selection.
5
+ * Models are mapped to their internal names used by the proxy backend.
6
+ */
7
+ import { CLIProxyProvider } from './types';
8
+ /**
9
+ * Model entry definition
10
+ */
11
+ export interface ModelEntry {
12
+ /** Literal model name to put in settings.json */
13
+ id: string;
14
+ /** Human-readable name for display */
15
+ name: string;
16
+ /** Access tier indicator - 'paid' means requires paid Google account (not free tier) */
17
+ tier?: 'free' | 'paid';
18
+ /** Optional description for the model */
19
+ description?: string;
20
+ /** Model has known issues - show warning when selected */
21
+ broken?: boolean;
22
+ /** Issue URL for broken models */
23
+ issueUrl?: string;
24
+ }
25
+ /**
26
+ * Provider catalog definition
27
+ */
28
+ export interface ProviderCatalog {
29
+ provider: CLIProxyProvider;
30
+ displayName: string;
31
+ models: ModelEntry[];
32
+ defaultModel: string;
33
+ }
34
+ /**
35
+ * Model catalog for providers that support interactive configuration
36
+ *
37
+ * Models listed in order of recommendation (top = best)
38
+ */
39
+ export declare const MODEL_CATALOG: Partial<Record<CLIProxyProvider, ProviderCatalog>>;
40
+ /**
41
+ * Check if provider supports interactive model configuration
42
+ */
43
+ export declare function supportsModelConfig(provider: CLIProxyProvider): boolean;
44
+ /**
45
+ * Get catalog for provider
46
+ */
47
+ export declare function getProviderCatalog(provider: CLIProxyProvider): ProviderCatalog | undefined;
48
+ /**
49
+ * Find model entry by ID
50
+ */
51
+ export declare function findModel(provider: CLIProxyProvider, modelId: string): ModelEntry | undefined;
52
+ /**
53
+ * Check if model has known issues
54
+ */
55
+ export declare function isModelBroken(provider: CLIProxyProvider, modelId: string): boolean;
56
+ /**
57
+ * Get issue URL for broken model
58
+ */
59
+ export declare function getModelIssueUrl(provider: CLIProxyProvider, modelId: string): string | undefined;
60
+ //# sourceMappingURL=model-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../src/cliproxy/model-catalog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAqD5E,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAEvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,eAAe,GAAG,SAAS,CAE1F;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAI7F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAGlF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGhG"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ /**
3
+ * Model Catalog - Available models for CLI Proxy providers
4
+ *
5
+ * Ships with CCS to provide users with interactive model selection.
6
+ * Models are mapped to their internal names used by the proxy backend.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getModelIssueUrl = exports.isModelBroken = exports.findModel = exports.getProviderCatalog = exports.supportsModelConfig = exports.MODEL_CATALOG = void 0;
10
+ /**
11
+ * Model catalog for providers that support interactive configuration
12
+ *
13
+ * Models listed in order of recommendation (top = best)
14
+ */
15
+ exports.MODEL_CATALOG = {
16
+ agy: {
17
+ provider: 'agy',
18
+ displayName: 'Antigravity',
19
+ defaultModel: 'gemini-3-pro-preview',
20
+ models: [
21
+ {
22
+ id: 'gemini-claude-opus-4-5-thinking',
23
+ name: 'Claude Opus 4.5 Thinking',
24
+ description: 'Most capable, extended thinking',
25
+ broken: true,
26
+ issueUrl: 'https://github.com/router-for-me/CLIProxyAPI/issues/415',
27
+ },
28
+ {
29
+ id: 'gemini-claude-sonnet-4-5-thinking',
30
+ name: 'Claude Sonnet 4.5 Thinking',
31
+ description: 'Balanced with extended thinking',
32
+ broken: true,
33
+ issueUrl: 'https://github.com/router-for-me/CLIProxyAPI/issues/415',
34
+ },
35
+ {
36
+ id: 'gemini-claude-sonnet-4-5',
37
+ name: 'Claude Sonnet 4.5',
38
+ description: 'Fast and capable',
39
+ broken: true,
40
+ issueUrl: 'https://github.com/router-for-me/CLIProxyAPI/issues/415',
41
+ },
42
+ {
43
+ id: 'gemini-3-pro-preview',
44
+ name: 'Gemini 3 Pro',
45
+ tier: 'paid',
46
+ description: 'Google latest, requires paid Google account',
47
+ },
48
+ ],
49
+ },
50
+ gemini: {
51
+ provider: 'gemini',
52
+ displayName: 'Gemini',
53
+ defaultModel: 'gemini-2.5-pro',
54
+ models: [
55
+ {
56
+ id: 'gemini-3-pro-preview',
57
+ name: 'Gemini 3 Pro',
58
+ tier: 'paid',
59
+ description: 'Latest model, requires paid Google account',
60
+ },
61
+ {
62
+ id: 'gemini-2.5-pro',
63
+ name: 'Gemini 2.5 Pro',
64
+ description: 'Stable, works with free Google account',
65
+ },
66
+ ],
67
+ },
68
+ };
69
+ /**
70
+ * Check if provider supports interactive model configuration
71
+ */
72
+ function supportsModelConfig(provider) {
73
+ return provider in exports.MODEL_CATALOG;
74
+ }
75
+ exports.supportsModelConfig = supportsModelConfig;
76
+ /**
77
+ * Get catalog for provider
78
+ */
79
+ function getProviderCatalog(provider) {
80
+ return exports.MODEL_CATALOG[provider];
81
+ }
82
+ exports.getProviderCatalog = getProviderCatalog;
83
+ /**
84
+ * Find model entry by ID
85
+ */
86
+ function findModel(provider, modelId) {
87
+ const catalog = exports.MODEL_CATALOG[provider];
88
+ if (!catalog)
89
+ return undefined;
90
+ return catalog.models.find((m) => m.id === modelId);
91
+ }
92
+ exports.findModel = findModel;
93
+ /**
94
+ * Check if model has known issues
95
+ */
96
+ function isModelBroken(provider, modelId) {
97
+ const model = findModel(provider, modelId);
98
+ return model?.broken === true;
99
+ }
100
+ exports.isModelBroken = isModelBroken;
101
+ /**
102
+ * Get issue URL for broken model
103
+ */
104
+ function getModelIssueUrl(provider, modelId) {
105
+ const model = findModel(provider, modelId);
106
+ return model?.issueUrl;
107
+ }
108
+ exports.getModelIssueUrl = getModelIssueUrl;
109
+ //# sourceMappingURL=model-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-catalog.js","sourceRoot":"","sources":["../../src/cliproxy/model-catalog.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAgCH;;;;GAIG;AACU,QAAA,aAAa,GAAuD;IAC/E,GAAG,EAAE;QACH,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,aAAa;QAC1B,YAAY,EAAE,sBAAsB;QACpC,MAAM,EAAE;YACN;gBACE,EAAE,EAAE,iCAAiC;gBACrC,IAAI,EAAE,0BAA0B;gBAChC,WAAW,EAAE,iCAAiC;gBAC9C,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,yDAAyD;aACpE;YACD;gBACE,EAAE,EAAE,mCAAmC;gBACvC,IAAI,EAAE,4BAA4B;gBAClC,WAAW,EAAE,iCAAiC;gBAC9C,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,yDAAyD;aACpE;YACD;gBACE,EAAE,EAAE,0BAA0B;gBAC9B,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,kBAAkB;gBAC/B,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,yDAAyD;aACpE;YACD;gBACE,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,6CAA6C;aAC3D;SACF;KACF;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,gBAAgB;QAC9B,MAAM,EAAE;YACN;gBACE,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,4CAA4C;aAC1D;YACD;gBACE,EAAE,EAAE,gBAAgB;gBACpB,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,wCAAwC;aACtD;SACF;KACF;CACF,CAAC;AAEF;;GAEG;AACH,SAAgB,mBAAmB,CAAC,QAA0B;IAC5D,OAAO,QAAQ,IAAI,qBAAa,CAAC;AACnC,CAAC;AAFD,kDAEC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,QAA0B;IAC3D,OAAO,qBAAa,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAFD,gDAEC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,QAA0B,EAAE,OAAe;IACnE,MAAM,OAAO,GAAG,qBAAa,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;AACtD,CAAC;AAJD,8BAIC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,QAA0B,EAAE,OAAe;IACvE,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAChC,CAAC;AAHD,sCAGC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,QAA0B,EAAE,OAAe;IAC1E,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,KAAK,EAAE,QAAQ,CAAC;AACzB,CAAC;AAHD,4CAGC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Model Configuration - Interactive model selection for CLI Proxy providers
3
+ *
4
+ * Handles first-run configuration and explicit --config flag.
5
+ * Persists user selection to ~/.ccs/{provider}.settings.json
6
+ */
7
+ import { CLIProxyProvider } from './types';
8
+ /**
9
+ * Check if provider has user settings configured
10
+ */
11
+ export declare function hasUserSettings(provider: CLIProxyProvider): boolean;
12
+ /**
13
+ * Get current model from user settings
14
+ */
15
+ export declare function getCurrentModel(provider: CLIProxyProvider): string | undefined;
16
+ /**
17
+ * Configure model for provider (interactive)
18
+ *
19
+ * @param provider CLIProxy provider (agy, gemini)
20
+ * @param force Force reconfiguration even if settings exist
21
+ * @returns true if configuration was performed, false if skipped
22
+ */
23
+ export declare function configureProviderModel(provider: CLIProxyProvider, force?: boolean): Promise<boolean>;
24
+ /**
25
+ * Show current model configuration
26
+ */
27
+ export declare function showCurrentConfig(provider: CLIProxyProvider): Promise<void>;
28
+ //# sourceMappingURL=model-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-config.d.ts","sourceRoot":"","sources":["../../src/cliproxy/model-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAM3C;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAGnE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAU9E;AAwBD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,GAAE,OAAe,GACrB,OAAO,CAAC,OAAO,CAAC,CA8ElB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2CjF"}
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ /**
3
+ * Model Configuration - Interactive model selection for CLI Proxy providers
4
+ *
5
+ * Handles first-run configuration and explicit --config flag.
6
+ * Persists user selection to ~/.ccs/{provider}.settings.json
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.showCurrentConfig = exports.configureProviderModel = exports.getCurrentModel = exports.hasUserSettings = void 0;
33
+ const fs = __importStar(require("fs"));
34
+ const path = __importStar(require("path"));
35
+ const prompt_1 = require("../utils/prompt");
36
+ const model_catalog_1 = require("./model-catalog");
37
+ const config_generator_1 = require("./config-generator");
38
+ const ui_1 = require("../utils/ui");
39
+ /** CCS directory */
40
+ const CCS_DIR = path.join(process.env.HOME || process.env.USERPROFILE || '', '.ccs');
41
+ /**
42
+ * Check if provider has user settings configured
43
+ */
44
+ function hasUserSettings(provider) {
45
+ const settingsPath = (0, config_generator_1.getProviderSettingsPath)(provider);
46
+ return fs.existsSync(settingsPath);
47
+ }
48
+ exports.hasUserSettings = hasUserSettings;
49
+ /**
50
+ * Get current model from user settings
51
+ */
52
+ function getCurrentModel(provider) {
53
+ const settingsPath = (0, config_generator_1.getProviderSettingsPath)(provider);
54
+ if (!fs.existsSync(settingsPath))
55
+ return undefined;
56
+ try {
57
+ const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8'));
58
+ return settings.env?.ANTHROPIC_MODEL;
59
+ }
60
+ catch {
61
+ return undefined;
62
+ }
63
+ }
64
+ exports.getCurrentModel = getCurrentModel;
65
+ /**
66
+ * Format model entry for display in selection list
67
+ */
68
+ function formatModelOption(model) {
69
+ // Tier badge: clarify that "paid" means paid Google account (not free tier)
70
+ const tierBadge = model.tier === 'paid' ? (0, ui_1.color)(' [Paid Tier]', 'warning') : '';
71
+ const brokenBadge = model.broken ? (0, ui_1.color)(' [BROKEN]', 'error') : '';
72
+ return `${model.name}${tierBadge}${brokenBadge}`;
73
+ }
74
+ /**
75
+ * Format model entry for detailed display (with description)
76
+ */
77
+ function formatModelDetailed(model, isCurrent) {
78
+ const marker = isCurrent ? (0, ui_1.color)('>', 'success') : ' ';
79
+ const name = isCurrent ? (0, ui_1.bold)(model.name) : model.name;
80
+ const tierBadge = model.tier === 'paid' ? (0, ui_1.color)(' [Paid Tier]', 'warning') : '';
81
+ const brokenBadge = model.broken ? (0, ui_1.color)(' [BROKEN]', 'error') : '';
82
+ const desc = model.description ? (0, ui_1.dim)(` - ${model.description}`) : '';
83
+ return ` ${marker} ${name}${tierBadge}${brokenBadge}${desc}`;
84
+ }
85
+ /**
86
+ * Configure model for provider (interactive)
87
+ *
88
+ * @param provider CLIProxy provider (agy, gemini)
89
+ * @param force Force reconfiguration even if settings exist
90
+ * @returns true if configuration was performed, false if skipped
91
+ */
92
+ async function configureProviderModel(provider, force = false) {
93
+ // Check if provider supports model configuration
94
+ if (!(0, model_catalog_1.supportsModelConfig)(provider)) {
95
+ return false;
96
+ }
97
+ const catalog = (0, model_catalog_1.getProviderCatalog)(provider);
98
+ if (!catalog)
99
+ return false;
100
+ const settingsPath = (0, config_generator_1.getProviderSettingsPath)(provider);
101
+ // Skip if already configured (unless --config flag)
102
+ if (!force && fs.existsSync(settingsPath)) {
103
+ return false;
104
+ }
105
+ // Initialize UI for colors/gradient
106
+ await (0, ui_1.initUI)();
107
+ // Build options list
108
+ const options = catalog.models.map((m) => ({
109
+ id: m.id,
110
+ label: formatModelOption(m),
111
+ }));
112
+ // Find default index - use current model if configured, otherwise catalog default
113
+ const currentModel = getCurrentModel(provider);
114
+ const targetModel = currentModel || catalog.defaultModel;
115
+ const defaultIdx = catalog.models.findIndex((m) => m.id === targetModel);
116
+ const safeDefaultIdx = defaultIdx >= 0 ? defaultIdx : 0;
117
+ // Show header with context (gradient like ccs doctor)
118
+ console.error('');
119
+ console.error((0, ui_1.header)(`Configure ${catalog.displayName} Model`));
120
+ console.error('');
121
+ console.error((0, ui_1.dim)(' Select which model to use for this provider.'));
122
+ console.error((0, ui_1.dim)(' Models marked [Paid Tier] require a paid Google account (not free tier).'));
123
+ console.error('');
124
+ // Interactive selection
125
+ const selectedModel = await prompt_1.InteractivePrompt.selectFromList('Select model:', options, {
126
+ defaultIndex: safeDefaultIdx,
127
+ });
128
+ // Get base env vars to preserve haiku model and base URL
129
+ const baseEnv = (0, config_generator_1.getClaudeEnvVars)(provider);
130
+ // Build settings with selected model
131
+ const settings = {
132
+ env: {
133
+ ...baseEnv,
134
+ ANTHROPIC_MODEL: selectedModel,
135
+ ANTHROPIC_DEFAULT_OPUS_MODEL: selectedModel,
136
+ ANTHROPIC_DEFAULT_SONNET_MODEL: selectedModel,
137
+ // Keep haiku as-is from base config (usually flash model)
138
+ },
139
+ };
140
+ // Ensure CCS directory exists
141
+ if (!fs.existsSync(CCS_DIR)) {
142
+ fs.mkdirSync(CCS_DIR, { recursive: true });
143
+ }
144
+ // Write settings file
145
+ fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
146
+ // Find display name
147
+ const selectedEntry = catalog.models.find((m) => m.id === selectedModel);
148
+ const displayName = selectedEntry?.name || selectedModel;
149
+ console.error('');
150
+ console.error((0, ui_1.ok)(`Model set to: ${(0, ui_1.bold)(displayName)}`));
151
+ console.error((0, ui_1.dim)(` Config saved: ${settingsPath}`));
152
+ console.error('');
153
+ return true;
154
+ }
155
+ exports.configureProviderModel = configureProviderModel;
156
+ /**
157
+ * Show current model configuration
158
+ */
159
+ async function showCurrentConfig(provider) {
160
+ if (!(0, model_catalog_1.supportsModelConfig)(provider)) {
161
+ console.error((0, ui_1.info)(`Provider ${provider} does not support model configuration`));
162
+ return;
163
+ }
164
+ const catalog = (0, model_catalog_1.getProviderCatalog)(provider);
165
+ if (!catalog)
166
+ return;
167
+ // Initialize UI for colors/gradient
168
+ await (0, ui_1.initUI)();
169
+ const currentModel = getCurrentModel(provider);
170
+ const settingsPath = (0, config_generator_1.getProviderSettingsPath)(provider);
171
+ console.error('');
172
+ console.error((0, ui_1.header)(`${catalog.displayName} Model Configuration`));
173
+ console.error('');
174
+ if (currentModel) {
175
+ const entry = catalog.models.find((m) => m.id === currentModel);
176
+ const displayName = entry?.name || 'Unknown';
177
+ console.error(` ${(0, ui_1.bold)('Current:')} ${(0, ui_1.color)(displayName, 'success')} ${(0, ui_1.dim)(`(${currentModel})`)}`);
178
+ console.error(` ${(0, ui_1.bold)('Config:')} ${(0, ui_1.dim)(settingsPath)}`);
179
+ }
180
+ else {
181
+ console.error(` ${(0, ui_1.bold)('Current:')} ${(0, ui_1.dim)('(using defaults)')}`);
182
+ console.error(` ${(0, ui_1.bold)('Default:')} ${catalog.defaultModel}`);
183
+ }
184
+ console.error('');
185
+ console.error((0, ui_1.bold)('Available models:'));
186
+ console.error((0, ui_1.dim)(' [Paid Tier] = Requires paid Google account (not free tier)'));
187
+ console.error('');
188
+ catalog.models.forEach((m) => {
189
+ const isCurrent = m.id === currentModel;
190
+ console.error(formatModelDetailed(m, isCurrent));
191
+ });
192
+ console.error('');
193
+ console.error((0, ui_1.dim)(`Run "ccs ${provider} --config" to change`));
194
+ console.error('');
195
+ }
196
+ exports.showCurrentConfig = showCurrentConfig;
197
+ //# sourceMappingURL=model-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-config.js","sourceRoot":"","sources":["../../src/cliproxy/model-config.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,9 @@ import { PlatformInfo } from './types';
9
9
  * CLIProxyAPI fallback version (used when GitHub API unavailable)
10
10
  * Auto-update fetches latest from GitHub; this is only a safety net
11
11
  */
12
- export declare const CLIPROXY_FALLBACK_VERSION = "6.5.31";
12
+ export declare const CLIPROXY_FALLBACK_VERSION = "6.5.40";
13
13
  /** @deprecated Use CLIPROXY_FALLBACK_VERSION instead */
14
- export declare const CLIPROXY_VERSION = "6.5.31";
14
+ export declare const CLIPROXY_VERSION = "6.5.40";
15
15
  /**
16
16
  * Detect current platform and return binary info
17
17
  * @param version Optional version for binaryName (defaults to fallback)
@@ -11,7 +11,7 @@ exports.getPlatformDescription = exports.isPlatformSupported = exports.getChecks
11
11
  * CLIProxyAPI fallback version (used when GitHub API unavailable)
12
12
  * Auto-update fetches latest from GitHub; this is only a safety net
13
13
  */
14
- exports.CLIPROXY_FALLBACK_VERSION = '6.5.31';
14
+ exports.CLIPROXY_FALLBACK_VERSION = '6.5.40';
15
15
  /** @deprecated Use CLIPROXY_FALLBACK_VERSION instead */
16
16
  exports.CLIPROXY_VERSION = exports.CLIPROXY_FALLBACK_VERSION;
17
17
  /**
@@ -41,6 +41,8 @@ export interface BinaryManagerConfig {
41
41
  maxRetries: number;
42
42
  /** Enable verbose logging */
43
43
  verbose: boolean;
44
+ /** Force specific version (skip auto-upgrade to latest) */
45
+ forceVersion?: boolean;
44
46
  }
45
47
  /**
46
48
  * Download progress callback
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cliproxy/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,EAAE,EAAE,WAAW,CAAC;IAChB,sCAAsC;IACtC,IAAI,EAAE,aAAa,CAAC;IACpB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,SAAS,EAAE,gBAAgB,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,KAAK,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,sBAAsB,CAAC,EAAE,KAAK,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,KAAK,CAAC;YACvB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oBAAoB;IACpB,IAAI,EAAE,gBAAgB,CAAC;IACvB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,gCAAgC;IAChC,aAAa,EAAE,OAAO,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cliproxy/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * CLIProxy Command Handler
3
+ *
4
+ * Manages CLIProxyAPI binary installation and version control.
5
+ * Allows users to install specific versions or update to latest.
6
+ *
7
+ * Usage:
8
+ * ccs cliproxy Show current version
9
+ * ccs cliproxy --install <ver> Install specific version
10
+ * ccs cliproxy --latest Install latest version
11
+ * ccs cliproxy --help Show help
12
+ */
13
+ /**
14
+ * Main cliproxy command handler
15
+ */
16
+ export declare function handleCliproxyCommand(args: string[]): Promise<void>;
17
+ //# sourceMappingURL=cliproxy-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliproxy-command.d.ts","sourceRoot":"","sources":["../../src/commands/cliproxy-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAwJH;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BzE"}