@kaitranntt/ccs 7.54.0-dev.1 → 7.54.0-dev.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -4
- package/dist/ccs.js +2 -112
- package/dist/ccs.js.map +1 -1
- package/dist/commands/api-command/copy-command.d.ts +2 -0
- package/dist/commands/api-command/copy-command.d.ts.map +1 -0
- package/dist/commands/api-command/copy-command.js +41 -0
- package/dist/commands/api-command/copy-command.js.map +1 -0
- package/dist/commands/api-command/create-command.d.ts +2 -0
- package/dist/commands/api-command/create-command.d.ts.map +1 -0
- package/dist/commands/api-command/create-command.js +239 -0
- package/dist/commands/api-command/create-command.js.map +1 -0
- package/dist/commands/api-command/discover-command.d.ts +2 -0
- package/dist/commands/api-command/discover-command.d.ts.map +1 -0
- package/dist/commands/api-command/discover-command.js +69 -0
- package/dist/commands/api-command/discover-command.js.map +1 -0
- package/dist/commands/api-command/export-command.d.ts +2 -0
- package/dist/commands/api-command/export-command.d.ts.map +1 -0
- package/dist/commands/api-command/export-command.js +73 -0
- package/dist/commands/api-command/export-command.js.map +1 -0
- package/dist/commands/api-command/help.d.ts +3 -0
- package/dist/commands/api-command/help.d.ts.map +1 -0
- package/dist/commands/api-command/help.js +100 -0
- package/dist/commands/api-command/help.js.map +1 -0
- package/dist/commands/api-command/import-command.d.ts +2 -0
- package/dist/commands/api-command/import-command.d.ts.map +1 -0
- package/dist/commands/api-command/import-command.js +111 -0
- package/dist/commands/api-command/import-command.js.map +1 -0
- package/dist/commands/api-command/index.d.ts +3 -0
- package/dist/commands/api-command/index.d.ts.map +1 -0
- package/dist/commands/api-command/index.js +34 -0
- package/dist/commands/api-command/index.js.map +1 -0
- package/dist/commands/api-command/list-command.d.ts +2 -0
- package/dist/commands/api-command/list-command.d.ts.map +1 -0
- package/dist/commands/api-command/list-command.js +53 -0
- package/dist/commands/api-command/list-command.js.map +1 -0
- package/dist/commands/api-command/remove-command.d.ts +2 -0
- package/dist/commands/api-command/remove-command.d.ts.map +1 -0
- package/dist/commands/api-command/remove-command.js +63 -0
- package/dist/commands/api-command/remove-command.js.map +1 -0
- package/dist/commands/api-command/shared.d.ts +36 -0
- package/dist/commands/api-command/shared.d.ts.map +1 -0
- package/dist/commands/api-command/shared.js +164 -0
- package/dist/commands/api-command/shared.js.map +1 -0
- package/dist/commands/api-command.d.ts +1 -26
- package/dist/commands/api-command.d.ts.map +1 -1
- package/dist/commands/api-command.js +3 -807
- package/dist/commands/api-command.js.map +1 -1
- package/dist/commands/arg-extractor.d.ts +15 -0
- package/dist/commands/arg-extractor.d.ts.map +1 -1
- package/dist/commands/arg-extractor.js +48 -2
- package/dist/commands/arg-extractor.js.map +1 -1
- package/dist/commands/config-auth/index.d.ts.map +1 -1
- package/dist/commands/config-auth/index.js +35 -19
- package/dist/commands/config-auth/index.js.map +1 -1
- package/dist/commands/config-command-options.d.ts +14 -0
- package/dist/commands/config-command-options.d.ts.map +1 -0
- package/dist/commands/config-command-options.js +108 -0
- package/dist/commands/config-command-options.js.map +1 -0
- package/dist/commands/config-command.d.ts +1 -1
- package/dist/commands/config-command.d.ts.map +1 -1
- package/dist/commands/config-command.js +91 -104
- package/dist/commands/config-command.js.map +1 -1
- package/dist/commands/config-dashboard-host.d.ts +17 -0
- package/dist/commands/config-dashboard-host.d.ts.map +1 -0
- package/dist/commands/config-dashboard-host.js +99 -0
- package/dist/commands/config-dashboard-host.js.map +1 -0
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +1 -0
- package/dist/commands/help-command.js.map +1 -1
- package/dist/commands/named-command-router.d.ts +17 -0
- package/dist/commands/named-command-router.d.ts.map +1 -0
- package/dist/commands/named-command-router.js +39 -0
- package/dist/commands/named-command-router.js.map +1 -0
- package/dist/commands/root-command-router.d.ts +2 -0
- package/dist/commands/root-command-router.d.ts.map +1 -0
- package/dist/commands/root-command-router.js +209 -0
- package/dist/commands/root-command-router.js.map +1 -0
- package/dist/cursor/cursor-anthropic-response.d.ts +6 -0
- package/dist/cursor/cursor-anthropic-response.d.ts.map +1 -0
- package/dist/cursor/cursor-anthropic-response.js +190 -0
- package/dist/cursor/cursor-anthropic-response.js.map +1 -0
- package/dist/cursor/cursor-anthropic-translator.d.ts +11 -0
- package/dist/cursor/cursor-anthropic-translator.d.ts.map +1 -0
- package/dist/cursor/cursor-anthropic-translator.js +167 -0
- package/dist/cursor/cursor-anthropic-translator.js.map +1 -0
- package/dist/cursor/cursor-anthropic-types.d.ts +46 -0
- package/dist/cursor/cursor-anthropic-types.d.ts.map +1 -0
- package/dist/cursor/cursor-anthropic-types.js +3 -0
- package/dist/cursor/cursor-anthropic-types.js.map +1 -0
- package/dist/cursor/cursor-daemon-entry.d.ts.map +1 -1
- package/dist/cursor/cursor-daemon-entry.js +53 -24
- package/dist/cursor/cursor-daemon-entry.js.map +1 -1
- package/dist/cursor/cursor-models.d.ts.map +1 -1
- package/dist/cursor/cursor-models.js +36 -2
- package/dist/cursor/cursor-models.js.map +1 -1
- package/dist/glmt/sse-parser.d.ts +2 -0
- package/dist/glmt/sse-parser.d.ts.map +1 -1
- package/dist/glmt/sse-parser.js +4 -0
- package/dist/glmt/sse-parser.js.map +1 -1
- package/dist/management/instance-manager.d.ts.map +1 -1
- package/dist/management/instance-manager.js +1 -0
- package/dist/management/instance-manager.js.map +1 -1
- package/dist/management/shared-manager.d.ts +18 -1
- package/dist/management/shared-manager.d.ts.map +1 -1
- package/dist/management/shared-manager.js +82 -14
- package/dist/management/shared-manager.js.map +1 -1
- package/dist/shared/claude-extension-setup.d.ts.map +1 -1
- package/dist/shared/claude-extension-setup.js +3 -0
- package/dist/shared/claude-extension-setup.js.map +1 -1
- package/dist/shared/provider-preset-catalog.d.ts +1 -1
- package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
- package/dist/shared/provider-preset-catalog.js +32 -15
- package/dist/shared/provider-preset-catalog.js.map +1 -1
- package/dist/ui/assets/{accounts-CZEg1_PX.js → accounts-v8ElDmpv.js} +1 -1
- package/dist/ui/assets/{alert-dialog-DhwS38kc.js → alert-dialog-L5Ct0Tm9.js} +1 -1
- package/dist/ui/assets/{api-sWNND4wP.js → api-C5CuNrT6.js} +1 -1
- package/dist/ui/assets/{auth-section-nJIpOcnm.js → auth-section-P8GsBk1u.js} +1 -1
- package/dist/ui/assets/{backups-section-D3A6hmrU.js → backups-section-gBIJ2rQw.js} +1 -1
- package/dist/ui/assets/checkbox-DQ1oAx_4.js +1 -0
- package/dist/ui/assets/{claude-extension-BjInaILv.js → claude-extension-CjEyjaGL.js} +1 -1
- package/dist/ui/assets/cliproxy-C0dWlSJs.js +3 -0
- package/dist/ui/assets/{cliproxy-control-panel-CKO2Sn9B.js → cliproxy-control-panel-CdCrzgLe.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-DTKxwrat.js → confirm-dialog-DaydoeD7.js} +1 -1
- package/dist/ui/assets/copilot-SA3U22Y9.js +3 -0
- package/dist/ui/assets/cursor-BfkF3VwC.js +1 -0
- package/dist/ui/assets/{droid-Cl8QsJJL.js → droid-BfSJyZXD.js} +2 -2
- package/dist/ui/assets/{globalenv-section-C3dxxoD9.js → globalenv-section-rg8Ctc2R.js} +1 -1
- package/dist/ui/assets/{health-BUifaDU7.js → health-Cii2iTlp.js} +1 -1
- package/dist/ui/assets/icons-DtwH984l.js +1 -0
- package/dist/ui/assets/{index-CPdceT1C.js → index-B4Qc134R.js} +1 -1
- package/dist/ui/assets/{index-CYo-E5rU.js → index-CBleAyoZ.js} +1 -1
- package/dist/ui/assets/index-ClEn7Y7g.css +1 -0
- package/dist/ui/assets/{index-BOsbrhaa.js → index-D1CmdSLO.js} +1 -1
- package/dist/ui/assets/{index-xayyyR26.js → index-Gpb2Emvl.js} +1 -1
- package/dist/ui/assets/index-og5NMtJP.js +47 -0
- package/dist/ui/assets/providers/llama-cpp.svg +5 -0
- package/dist/ui/assets/{proxy-status-widget-D94htBPb.js → proxy-status-widget-CZnGc4zY.js} +1 -1
- package/dist/ui/assets/{radix-ui-BR1vy4kf.js → radix-ui-Dt3edmE5.js} +8 -8
- package/dist/ui/assets/searchable-select-BHhY-dTx.js +1 -0
- package/dist/ui/assets/{separator-3fBbTn-V.js → separator-7ggevEK6.js} +1 -1
- package/dist/ui/assets/{shared-q_FNNbjD.js → shared-CoiUG_Qa.js} +1 -1
- package/dist/ui/assets/{switch-5N8qBdBr.js → switch-3-7lTxFj.js} +1 -1
- package/dist/ui/assets/{tanstack-e99Cjjy2.js → tanstack-B8i0evp-.js} +1 -1
- package/dist/ui/assets/{updates-CubQ54J0.js → updates-rQ3GVJIq.js} +1 -1
- package/dist/ui/icons/novita.svg +9 -0
- package/dist/ui/index.html +5 -5
- package/dist/utils/fetch-proxy-setup.d.ts.map +1 -1
- package/dist/utils/fetch-proxy-setup.js.map +1 -1
- package/dist/utils/shell-executor.d.ts.map +1 -1
- package/dist/utils/shell-executor.js +12 -0
- package/dist/utils/shell-executor.js.map +1 -1
- package/dist/web-server/index.d.ts +1 -0
- package/dist/web-server/index.d.ts.map +1 -1
- package/dist/web-server/index.js +39 -3
- package/dist/web-server/index.js.map +1 -1
- package/dist/web-server/routes/profile-routes.d.ts +1 -0
- package/dist/web-server/routes/profile-routes.d.ts.map +1 -1
- package/dist/web-server/routes/profile-routes.js +3 -0
- package/dist/web-server/routes/profile-routes.js.map +1 -1
- package/dist/web-server/routes/variant-routes.d.ts +1 -0
- package/dist/web-server/routes/variant-routes.d.ts.map +1 -1
- package/dist/web-server/routes/variant-routes.js +3 -0
- package/dist/web-server/routes/variant-routes.js.map +1 -1
- package/package.json +2 -1
- package/dist/ui/assets/checkbox-CZrxD1iS.js +0 -1
- package/dist/ui/assets/cliproxy-BGiSCGkl.js +0 -3
- package/dist/ui/assets/copilot-CuRngdBg.js +0 -3
- package/dist/ui/assets/cursor-Dxo0uIiU.js +0 -1
- package/dist/ui/assets/icons-DrEfTmfX.js +0 -1
- package/dist/ui/assets/index-Btf_ow2V.css +0 -1
- package/dist/ui/assets/index-Cw9Urr0S.js +0 -47
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleApiCreateCommand = void 0;
|
|
4
|
+
const services_1 = require("../../api/services");
|
|
5
|
+
const local_config_sync_1 = require("../../cliproxy/sync/local-config-sync");
|
|
6
|
+
const ui_1 = require("../../utils/ui");
|
|
7
|
+
const prompt_1 = require("../../utils/prompt");
|
|
8
|
+
const shared_1 = require("./shared");
|
|
9
|
+
function resolvePresetOrExit(presetId) {
|
|
10
|
+
if (!presetId) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
const preset = (0, services_1.getPresetById)(presetId);
|
|
14
|
+
if (preset) {
|
|
15
|
+
return preset;
|
|
16
|
+
}
|
|
17
|
+
console.log((0, ui_1.fail)(`Unknown preset: ${presetId}`));
|
|
18
|
+
console.log('');
|
|
19
|
+
console.log('Available presets:');
|
|
20
|
+
(0, services_1.getPresetIds)().forEach((id) => console.log(` - ${id}`));
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
async function resolveProfileName(providedName, preset) {
|
|
24
|
+
const name = providedName || preset?.defaultProfileName;
|
|
25
|
+
if (!name) {
|
|
26
|
+
return prompt_1.InteractivePrompt.input('API name', {
|
|
27
|
+
validate: services_1.validateApiName,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
const error = (0, services_1.validateApiName)(name);
|
|
31
|
+
if (error) {
|
|
32
|
+
console.log((0, ui_1.fail)(error));
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
return name;
|
|
36
|
+
}
|
|
37
|
+
async function resolveBaseUrl(providedBaseUrl, preset) {
|
|
38
|
+
let baseUrl = providedBaseUrl ?? preset?.baseUrl ?? '';
|
|
39
|
+
if (!baseUrl && !preset) {
|
|
40
|
+
baseUrl = await prompt_1.InteractivePrompt.input('API Base URL (e.g., https://api.example.com/v1 - without /chat/completions)', { validate: services_1.validateUrl });
|
|
41
|
+
}
|
|
42
|
+
else if (!preset) {
|
|
43
|
+
const error = (0, services_1.validateUrl)(baseUrl);
|
|
44
|
+
if (error) {
|
|
45
|
+
console.log((0, ui_1.fail)(error));
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (!preset) {
|
|
50
|
+
const urlWarning = (0, services_1.getUrlWarning)(baseUrl);
|
|
51
|
+
if (urlWarning) {
|
|
52
|
+
console.log('');
|
|
53
|
+
console.log((0, ui_1.warn)(urlWarning));
|
|
54
|
+
const continueAnyway = await prompt_1.InteractivePrompt.confirm('Continue with this URL anyway?', {
|
|
55
|
+
default: false,
|
|
56
|
+
});
|
|
57
|
+
if (!continueAnyway) {
|
|
58
|
+
baseUrl = await prompt_1.InteractivePrompt.input('API Base URL', {
|
|
59
|
+
validate: services_1.validateUrl,
|
|
60
|
+
default: (0, services_1.sanitizeBaseUrl)(baseUrl),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return baseUrl;
|
|
65
|
+
}
|
|
66
|
+
console.log((0, ui_1.info)(`Using preset: ${preset.name}`));
|
|
67
|
+
console.log((0, ui_1.dim)(` ${preset.description}`));
|
|
68
|
+
console.log((0, ui_1.dim)(preset.baseUrl
|
|
69
|
+
? ` Base URL: ${preset.baseUrl}`
|
|
70
|
+
: ' Auth: Native Anthropic API (x-api-key header)'));
|
|
71
|
+
console.log('');
|
|
72
|
+
return baseUrl;
|
|
73
|
+
}
|
|
74
|
+
async function resolveApiKey(providedApiKey, preset) {
|
|
75
|
+
if (preset?.requiresApiKey === false) {
|
|
76
|
+
if (providedApiKey) {
|
|
77
|
+
console.log((0, ui_1.dim)(`Note: Using provided API key for ${preset.name} (optional)`));
|
|
78
|
+
return providedApiKey;
|
|
79
|
+
}
|
|
80
|
+
console.log((0, ui_1.info)(`No API key required for ${preset.name}`));
|
|
81
|
+
return preset.apiKeyPlaceholder || preset.id;
|
|
82
|
+
}
|
|
83
|
+
if (providedApiKey) {
|
|
84
|
+
return providedApiKey;
|
|
85
|
+
}
|
|
86
|
+
const keyPrompt = preset?.apiKeyHint ? `API Key (${preset.apiKeyHint})` : 'API Key';
|
|
87
|
+
const apiKey = await prompt_1.InteractivePrompt.password(keyPrompt);
|
|
88
|
+
if (!apiKey) {
|
|
89
|
+
console.log((0, ui_1.fail)('API key is required'));
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
92
|
+
return apiKey;
|
|
93
|
+
}
|
|
94
|
+
async function resolveModelConfiguration(baseUrl, preset, providedModel, yes) {
|
|
95
|
+
let openRouterModel;
|
|
96
|
+
let openRouterTierMapping;
|
|
97
|
+
if ((0, services_1.isOpenRouterUrl)(baseUrl) && !providedModel) {
|
|
98
|
+
console.log('');
|
|
99
|
+
console.log((0, ui_1.info)('OpenRouter detected!'));
|
|
100
|
+
const useInteractive = await prompt_1.InteractivePrompt.confirm('Browse models interactively?', {
|
|
101
|
+
default: true,
|
|
102
|
+
});
|
|
103
|
+
if (useInteractive) {
|
|
104
|
+
const selection = await (0, services_1.pickOpenRouterModel)();
|
|
105
|
+
if (selection) {
|
|
106
|
+
openRouterModel = selection.model;
|
|
107
|
+
openRouterTierMapping = selection.tierMapping;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
console.log('');
|
|
111
|
+
console.log((0, ui_1.dim)('Note: For OpenRouter, ANTHROPIC_API_KEY should be empty.'));
|
|
112
|
+
}
|
|
113
|
+
const defaultModel = preset?.defaultModel || 'claude-sonnet-4-6';
|
|
114
|
+
let model = providedModel || openRouterModel || preset?.defaultModel;
|
|
115
|
+
if (!model && !yes && !preset) {
|
|
116
|
+
model = await prompt_1.InteractivePrompt.input('Default model (ANTHROPIC_MODEL)', {
|
|
117
|
+
default: defaultModel,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
model = model || defaultModel;
|
|
121
|
+
let opusModel = openRouterTierMapping?.opus || model;
|
|
122
|
+
let sonnetModel = openRouterTierMapping?.sonnet || model;
|
|
123
|
+
let haikuModel = openRouterTierMapping?.haiku || model;
|
|
124
|
+
const shouldPromptForMapping = !yes && !openRouterTierMapping && !preset;
|
|
125
|
+
if (shouldPromptForMapping) {
|
|
126
|
+
let wantCustomMapping = model !== defaultModel;
|
|
127
|
+
if (!wantCustomMapping) {
|
|
128
|
+
console.log('');
|
|
129
|
+
console.log((0, ui_1.dim)('Some API proxies route different model types to different backends.'));
|
|
130
|
+
wantCustomMapping = await prompt_1.InteractivePrompt.confirm('Configure different models for Opus/Sonnet/Haiku?', { default: false });
|
|
131
|
+
}
|
|
132
|
+
if (wantCustomMapping) {
|
|
133
|
+
console.log('');
|
|
134
|
+
console.log((0, ui_1.dim)('Leave blank to use the default model for each tier.'));
|
|
135
|
+
opusModel =
|
|
136
|
+
(await prompt_1.InteractivePrompt.input('Opus model (ANTHROPIC_DEFAULT_OPUS_MODEL)', {
|
|
137
|
+
default: model,
|
|
138
|
+
})) || model;
|
|
139
|
+
sonnetModel =
|
|
140
|
+
(await prompt_1.InteractivePrompt.input('Sonnet model (ANTHROPIC_DEFAULT_SONNET_MODEL)', {
|
|
141
|
+
default: model,
|
|
142
|
+
})) || model;
|
|
143
|
+
haikuModel =
|
|
144
|
+
(await prompt_1.InteractivePrompt.input('Haiku model (ANTHROPIC_DEFAULT_HAIKU_MODEL)', {
|
|
145
|
+
default: model,
|
|
146
|
+
})) || model;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
model,
|
|
151
|
+
models: {
|
|
152
|
+
default: model,
|
|
153
|
+
opus: opusModel,
|
|
154
|
+
sonnet: sonnetModel,
|
|
155
|
+
haiku: haikuModel,
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
async function resolveDefaultTarget(providedTarget, yes) {
|
|
160
|
+
if (providedTarget) {
|
|
161
|
+
return providedTarget;
|
|
162
|
+
}
|
|
163
|
+
if (yes) {
|
|
164
|
+
return 'claude';
|
|
165
|
+
}
|
|
166
|
+
const useDroidByDefault = await prompt_1.InteractivePrompt.confirm('Set default target to Factory Droid for this profile?', { default: false });
|
|
167
|
+
return useDroidByDefault ? 'droid' : 'claude';
|
|
168
|
+
}
|
|
169
|
+
async function handleApiCreateCommand(args) {
|
|
170
|
+
await (0, ui_1.initUI)();
|
|
171
|
+
const parsedArgs = (0, shared_1.parseApiCommandArgs)(args);
|
|
172
|
+
(0, shared_1.exitOnApiCommandErrors)(parsedArgs.errors);
|
|
173
|
+
console.log((0, ui_1.header)('Create API Profile'));
|
|
174
|
+
console.log('');
|
|
175
|
+
const preset = resolvePresetOrExit(parsedArgs.preset);
|
|
176
|
+
const name = await resolveProfileName(parsedArgs.name, preset);
|
|
177
|
+
if ((0, services_1.apiProfileExists)(name) && !parsedArgs.force) {
|
|
178
|
+
console.log((0, ui_1.fail)(`API '${name}' already exists`));
|
|
179
|
+
console.log(` Use ${(0, ui_1.color)('--force', 'command')} to overwrite`);
|
|
180
|
+
process.exit(1);
|
|
181
|
+
}
|
|
182
|
+
let baseUrl = await resolveBaseUrl(parsedArgs.baseUrl, preset);
|
|
183
|
+
if (baseUrl && baseUrl.includes('api.anthropic.com') && !preset) {
|
|
184
|
+
console.log('');
|
|
185
|
+
console.log((0, ui_1.info)('Anthropic Direct API detected. Base URL will be omitted for native auth.'));
|
|
186
|
+
baseUrl = '';
|
|
187
|
+
}
|
|
188
|
+
const apiKey = await resolveApiKey(parsedArgs.apiKey, preset);
|
|
189
|
+
const { model, models } = await resolveModelConfiguration(baseUrl, preset, parsedArgs.model, parsedArgs.yes);
|
|
190
|
+
const target = await resolveDefaultTarget(parsedArgs.target, parsedArgs.yes);
|
|
191
|
+
console.log('');
|
|
192
|
+
console.log((0, ui_1.info)('Creating API profile...'));
|
|
193
|
+
const result = (0, services_1.createApiProfile)(name, baseUrl || '', apiKey, models, target);
|
|
194
|
+
if (!result.success) {
|
|
195
|
+
console.log((0, ui_1.fail)(`Failed to create API profile: ${result.error}`));
|
|
196
|
+
process.exit(1);
|
|
197
|
+
}
|
|
198
|
+
try {
|
|
199
|
+
(0, local_config_sync_1.syncToLocalConfig)();
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
203
|
+
console.log(`[i] Auto-sync to CLIProxy config skipped: ${message}`);
|
|
204
|
+
}
|
|
205
|
+
const hasCustomMapping = models.opus !== model || models.sonnet !== model || models.haiku !== model;
|
|
206
|
+
let details = `API: ${name}\n` +
|
|
207
|
+
`Config: ${(0, services_1.isUsingUnifiedConfig)() ? '~/.ccs/config.yaml' : '~/.ccs/config.json'}\n` +
|
|
208
|
+
`Settings: ${result.settingsFile}\n` +
|
|
209
|
+
`Base URL: ${baseUrl}\n` +
|
|
210
|
+
`Model: ${model}\n` +
|
|
211
|
+
`Target: ${target}`;
|
|
212
|
+
if (hasCustomMapping) {
|
|
213
|
+
details +=
|
|
214
|
+
`\n\nModel Mapping:\n` +
|
|
215
|
+
` Opus: ${models.opus}\n` +
|
|
216
|
+
` Sonnet: ${models.sonnet}\n` +
|
|
217
|
+
` Haiku: ${models.haiku}`;
|
|
218
|
+
}
|
|
219
|
+
console.log('');
|
|
220
|
+
console.log((0, ui_1.infoBox)(details, 'API Profile Created'));
|
|
221
|
+
console.log('');
|
|
222
|
+
console.log((0, ui_1.header)('Usage'));
|
|
223
|
+
if (target === 'droid') {
|
|
224
|
+
console.log(` ${(0, ui_1.color)(`ccs ${name} "your prompt"`, 'command')} ${(0, ui_1.dim)('# uses droid by default')}`);
|
|
225
|
+
console.log(` ${(0, ui_1.color)(`ccsd ${name} "your prompt"`, 'command')} ${(0, ui_1.dim)('# explicit droid alias')}`);
|
|
226
|
+
console.log(` ${(0, ui_1.color)(`ccs ${name} --target claude "your prompt"`, 'command')} ${(0, ui_1.dim)('# override to Claude')}`);
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
console.log(` ${(0, ui_1.color)(`ccs ${name} "your prompt"`, 'command')} ${(0, ui_1.dim)('# uses claude by default')}`);
|
|
230
|
+
console.log(` ${(0, ui_1.color)(`ccs ${name} --target droid "your prompt"`, 'command')} ${(0, ui_1.dim)('# run on droid for this call')}`);
|
|
231
|
+
}
|
|
232
|
+
console.log('');
|
|
233
|
+
console.log((0, ui_1.header)('Edit Settings'));
|
|
234
|
+
console.log(` ${(0, ui_1.dim)('To modify env vars later:')}`);
|
|
235
|
+
console.log(` ${(0, ui_1.color)(`nano ${result.settingsFile.replace('~', '$HOME')}`, 'command')}`);
|
|
236
|
+
console.log('');
|
|
237
|
+
}
|
|
238
|
+
exports.handleApiCreateCommand = handleApiCreateCommand;
|
|
239
|
+
//# sourceMappingURL=create-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-command.js","sourceRoot":"","sources":["../../../src/commands/api-command/create-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover-command.d.ts","sourceRoot":"","sources":["../../../src/commands/api-command/discover-command.ts"],"names":[],"mappings":"AAKA,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyE5E"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleApiDiscoverCommand = void 0;
|
|
4
|
+
const services_1 = require("../../api/services");
|
|
5
|
+
const ui_1 = require("../../utils/ui");
|
|
6
|
+
const arg_extractor_1 = require("../arg-extractor");
|
|
7
|
+
const shared_1 = require("./shared");
|
|
8
|
+
async function handleApiDiscoverCommand(args) {
|
|
9
|
+
await (0, ui_1.initUI)();
|
|
10
|
+
const register = (0, arg_extractor_1.hasAnyFlag)(args, ['--register']);
|
|
11
|
+
const jsonOutput = (0, arg_extractor_1.hasAnyFlag)(args, ['--json']);
|
|
12
|
+
const force = (0, arg_extractor_1.hasAnyFlag)(args, ['--force']);
|
|
13
|
+
const targetParsed = (0, shared_1.parseOptionalTargetFlag)(args, [...shared_1.API_KNOWN_FLAGS, '--register', '--json']);
|
|
14
|
+
if (targetParsed.errors.length > 0) {
|
|
15
|
+
targetParsed.errors.forEach((errorMessage) => console.log((0, ui_1.fail)(errorMessage)));
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
const syntax = (0, shared_1.collectUnexpectedApiArgs)(targetParsed.remainingArgs, {
|
|
19
|
+
knownFlags: ['--register', '--json', '--force'],
|
|
20
|
+
maxPositionals: 0,
|
|
21
|
+
});
|
|
22
|
+
if (syntax.errors.length > 0) {
|
|
23
|
+
syntax.errors.forEach((errorMessage) => console.log((0, ui_1.fail)(errorMessage)));
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
const result = (0, services_1.discoverApiProfileOrphans)();
|
|
27
|
+
if (jsonOutput) {
|
|
28
|
+
console.log(JSON.stringify(result, null, 2));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log((0, ui_1.header)('Discover Orphan API Profiles'));
|
|
32
|
+
console.log('');
|
|
33
|
+
if (result.orphans.length === 0) {
|
|
34
|
+
console.log((0, ui_1.ok)('No orphan settings files found.'));
|
|
35
|
+
console.log('');
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
console.log((0, ui_1.table)(result.orphans.map((orphan) => {
|
|
39
|
+
const status = orphan.validation.valid ? (0, ui_1.color)('[OK]', 'success') : (0, ui_1.color)('[X]', 'error');
|
|
40
|
+
const issueSummary = orphan.validation.issues.length > 0
|
|
41
|
+
? orphan.validation.issues[0].message
|
|
42
|
+
: 'Ready to register';
|
|
43
|
+
return [orphan.name, status, issueSummary];
|
|
44
|
+
}), {
|
|
45
|
+
head: ['Profile', 'Status', 'Validation'],
|
|
46
|
+
colWidths: [20, 10, 64],
|
|
47
|
+
}));
|
|
48
|
+
console.log('');
|
|
49
|
+
if (!register) {
|
|
50
|
+
console.log((0, ui_1.info)('To register discovered profiles:'));
|
|
51
|
+
console.log(` ${(0, ui_1.color)('ccs api discover --register', 'command')}`);
|
|
52
|
+
console.log('');
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const registration = (0, services_1.registerApiProfileOrphans)({
|
|
56
|
+
target: targetParsed.target || 'claude',
|
|
57
|
+
force,
|
|
58
|
+
});
|
|
59
|
+
console.log((0, ui_1.ok)(`Registered: ${registration.registered.length}`));
|
|
60
|
+
if (registration.skipped.length > 0) {
|
|
61
|
+
console.log((0, ui_1.warn)(`Skipped: ${registration.skipped.length}`));
|
|
62
|
+
registration.skipped.forEach((item) => {
|
|
63
|
+
console.log(` - ${item.name}: ${item.reason}`);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
console.log('');
|
|
67
|
+
}
|
|
68
|
+
exports.handleApiDiscoverCommand = handleApiDiscoverCommand;
|
|
69
|
+
//# sourceMappingURL=discover-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover-command.js","sourceRoot":"","sources":["../../../src/commands/api-command/discover-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-command.d.ts","sourceRoot":"","sources":["../../../src/commands/api-command/export-command.ts"],"names":[],"mappings":"AAOA,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C1E"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.handleApiExportCommand = void 0;
|
|
27
|
+
const fs = __importStar(require("fs"));
|
|
28
|
+
const path = __importStar(require("path"));
|
|
29
|
+
const services_1 = require("../../api/services");
|
|
30
|
+
const ui_1 = require("../../utils/ui");
|
|
31
|
+
const arg_extractor_1 = require("../arg-extractor");
|
|
32
|
+
const shared_1 = require("./shared");
|
|
33
|
+
async function handleApiExportCommand(args) {
|
|
34
|
+
await (0, ui_1.initUI)();
|
|
35
|
+
const includeSecrets = (0, arg_extractor_1.hasAnyFlag)(args, ['--include-secrets']);
|
|
36
|
+
const outExtracted = (0, arg_extractor_1.extractOption)(args, ['--out'], {
|
|
37
|
+
allowDashValue: true,
|
|
38
|
+
allowLongDashValue: true,
|
|
39
|
+
knownFlags: ['--out', '--include-secrets'],
|
|
40
|
+
});
|
|
41
|
+
if (outExtracted.found && (outExtracted.missingValue || !outExtracted.value)) {
|
|
42
|
+
console.log((0, ui_1.fail)('Missing value for --out'));
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
const syntax = (0, shared_1.collectUnexpectedApiArgs)(outExtracted.remainingArgs, {
|
|
46
|
+
knownFlags: ['--include-secrets'],
|
|
47
|
+
maxPositionals: 1,
|
|
48
|
+
});
|
|
49
|
+
if (syntax.errors.length > 0) {
|
|
50
|
+
syntax.errors.forEach((errorMessage) => console.log((0, ui_1.fail)(errorMessage)));
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
const name = syntax.positionals[0];
|
|
54
|
+
if (!name) {
|
|
55
|
+
console.log((0, ui_1.fail)('Profile name is required. Usage: ccs api export <name> [--out <file>]'));
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
const result = (0, services_1.exportApiProfile)(name, includeSecrets);
|
|
59
|
+
if (!result.success || !result.bundle) {
|
|
60
|
+
console.log((0, ui_1.fail)(result.error || 'Failed to export profile'));
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
const outputPath = path.resolve(outExtracted.value || `${name}.ccs-profile.json`);
|
|
64
|
+
fs.mkdirSync(path.dirname(outputPath), { recursive: true });
|
|
65
|
+
fs.writeFileSync(outputPath, JSON.stringify(result.bundle, null, 2) + '\n', 'utf8');
|
|
66
|
+
console.log((0, ui_1.ok)(`Profile exported to: ${outputPath}`));
|
|
67
|
+
if (result.redacted) {
|
|
68
|
+
console.log((0, ui_1.warn)('Token was redacted in export. Use --include-secrets to include it.'));
|
|
69
|
+
}
|
|
70
|
+
console.log('');
|
|
71
|
+
}
|
|
72
|
+
exports.handleApiExportCommand = handleApiExportCommand;
|
|
73
|
+
//# sourceMappingURL=export-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-command.js","sourceRoot":"","sources":["../../../src/commands/api-command/export-command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAsD;AACtD,uCAAwD;AACxD,oDAA6D;AAC7D,qCAAoD;AAE7C,KAAK,UAAU,sBAAsB,CAAC,IAAc;IACzD,MAAM,IAAA,WAAM,GAAE,CAAC;IACf,MAAM,cAAc,GAAG,IAAA,0BAAU,EAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE/D,MAAM,YAAY,GAAG,IAAA,6BAAa,EAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QAClD,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;KAC3C,CAAC,CAAC;IACH,IAAI,YAAY,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,yBAAyB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,iCAAwB,EAAC,YAAY,CAAC,aAAa,EAAE;QAClE,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,cAAc,EAAE,CAAC;KAClB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,uEAAuE,CAAC,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,2BAAgB,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,MAAM,CAAC,KAAK,IAAI,0BAA0B,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,GAAG,IAAI,mBAAmB,CAAC,CAAC;IAClF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAEpF,OAAO,CAAC,GAAG,CAAC,IAAA,OAAE,EAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,oEAAoE,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AA5CD,wDA4CC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/commands/api-command/help.ts"],"names":[],"mappings":"AAiBA,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0FxD;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO1E"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.showUnknownApiCommand = exports.showApiCommandHelp = void 0;
|
|
4
|
+
const services_1 = require("../../api/services");
|
|
5
|
+
const ui_1 = require("../../utils/ui");
|
|
6
|
+
const shared_1 = require("./shared");
|
|
7
|
+
function renderPresetHelpLine(preset, idWidth) {
|
|
8
|
+
const presetId = (0, shared_1.sanitizeHelpText)(preset.id) || 'unknown';
|
|
9
|
+
const paddedId = presetId.padEnd(idWidth);
|
|
10
|
+
const presetName = (0, shared_1.sanitizeHelpText)(preset.name) || 'Unknown preset';
|
|
11
|
+
const presetDescription = (0, shared_1.sanitizeHelpText)(preset.description) || 'No description';
|
|
12
|
+
return ` ${(0, ui_1.color)(paddedId, 'command')} ${presetName} - ${presetDescription}`;
|
|
13
|
+
}
|
|
14
|
+
async function showApiCommandHelp() {
|
|
15
|
+
await (0, ui_1.initUI)();
|
|
16
|
+
const presetIds = (0, services_1.getPresetIds)()
|
|
17
|
+
.map((id) => (0, shared_1.sanitizeHelpText)(id))
|
|
18
|
+
.filter(Boolean);
|
|
19
|
+
const presetAliases = (0, services_1.getPresetAliases)();
|
|
20
|
+
const presetIdWidth = Math.max(0, ...presetIds.map((id) => id.length)) + 2;
|
|
21
|
+
console.log((0, ui_1.header)('CCS API Management'));
|
|
22
|
+
console.log('');
|
|
23
|
+
console.log((0, ui_1.subheader)('Usage'));
|
|
24
|
+
console.log(` ${(0, ui_1.color)('ccs api', 'command')} <command> [options]`);
|
|
25
|
+
console.log('');
|
|
26
|
+
console.log((0, ui_1.subheader)('Commands'));
|
|
27
|
+
console.log(` ${(0, ui_1.color)('create [name]', 'command')} Create new API profile (interactive)`);
|
|
28
|
+
console.log(` ${(0, ui_1.color)('list', 'command')} List all API profiles`);
|
|
29
|
+
console.log(` ${(0, ui_1.color)('discover', 'command')} Discover orphan *.settings.json and register`);
|
|
30
|
+
console.log(` ${(0, ui_1.color)('copy <src> <dest>', 'command')} Duplicate API profile settings + config`);
|
|
31
|
+
console.log(` ${(0, ui_1.color)('export <name>', 'command')} Export profile bundle for cross-device transfer`);
|
|
32
|
+
console.log(` ${(0, ui_1.color)('import <file>', 'command')} Import profile bundle and register profile`);
|
|
33
|
+
console.log(` ${(0, ui_1.color)('remove <name>', 'command')} Remove an API profile`);
|
|
34
|
+
console.log('');
|
|
35
|
+
console.log((0, ui_1.subheader)('Options'));
|
|
36
|
+
console.log(` ${(0, ui_1.color)('--preset <id>', 'command')} Use provider preset (${presetIds.join(', ')})`);
|
|
37
|
+
console.log(` ${(0, ui_1.color)('--base-url <url>', 'command')} API base URL (create)`);
|
|
38
|
+
console.log(` ${(0, ui_1.color)('--api-key <key>', 'command')} API key (create)`);
|
|
39
|
+
console.log(` ${(0, ui_1.color)('--model <model>', 'command')} Default model (create)`);
|
|
40
|
+
console.log(` ${(0, ui_1.color)('--target <cli>', 'command')} Default target: claude or droid (create)`);
|
|
41
|
+
console.log(` ${(0, ui_1.color)('--register', 'command')} Register discovered orphan settings`);
|
|
42
|
+
console.log(` ${(0, ui_1.color)('--json', 'command')} JSON output for discover command`);
|
|
43
|
+
console.log(` ${(0, ui_1.color)('--out <file>', 'command')} Export bundle output path`);
|
|
44
|
+
console.log(` ${(0, ui_1.color)('--include-secrets', 'command')} Include token in export bundle`);
|
|
45
|
+
console.log(` ${(0, ui_1.color)('--name <name>', 'command')} Override profile name during import`);
|
|
46
|
+
console.log(` ${(0, ui_1.color)('--force', 'command')} Overwrite existing or bypass validation (create/discover/copy/import)`);
|
|
47
|
+
console.log(` ${(0, ui_1.color)('--yes, -y', 'command')} Skip confirmation prompts`);
|
|
48
|
+
console.log('');
|
|
49
|
+
console.log((0, ui_1.subheader)('Provider Presets'));
|
|
50
|
+
services_1.PROVIDER_PRESETS.forEach((preset) => console.log(renderPresetHelpLine(preset, presetIdWidth)));
|
|
51
|
+
Object.entries(presetAliases).forEach(([alias, canonical]) => {
|
|
52
|
+
const safeAlias = (0, shared_1.sanitizeHelpText)(alias);
|
|
53
|
+
const safeCanonical = (0, shared_1.sanitizeHelpText)(canonical);
|
|
54
|
+
console.log(` ${(0, ui_1.dim)(`Legacy alias: --preset ${safeAlias} (auto-mapped to ${safeCanonical})`)}`);
|
|
55
|
+
});
|
|
56
|
+
console.log('');
|
|
57
|
+
console.log((0, ui_1.subheader)('Examples'));
|
|
58
|
+
console.log(` ${(0, ui_1.dim)('# Interactive wizard')}`);
|
|
59
|
+
console.log(` ${(0, ui_1.color)('ccs api create', 'command')}`);
|
|
60
|
+
console.log('');
|
|
61
|
+
console.log(` ${(0, ui_1.dim)('# Quick setup with preset')}`);
|
|
62
|
+
console.log(` ${(0, ui_1.color)('ccs api create --preset anthropic', 'command')}`);
|
|
63
|
+
console.log(` ${(0, ui_1.color)('ccs api create --preset openrouter', 'command')}`);
|
|
64
|
+
console.log(` ${(0, ui_1.color)('ccs api create --preset alibaba-coding-plan', 'command')}`);
|
|
65
|
+
console.log(` ${(0, ui_1.color)('ccs api create --preset alibaba', 'command')} ${(0, ui_1.dim)('# alias')}`);
|
|
66
|
+
console.log(` ${(0, ui_1.color)('ccs api create --preset glm', 'command')}`);
|
|
67
|
+
console.log('');
|
|
68
|
+
console.log(` ${(0, ui_1.dim)('# Create with name')}`);
|
|
69
|
+
console.log(` ${(0, ui_1.color)('ccs api create myapi', 'command')}`);
|
|
70
|
+
console.log(` ${(0, ui_1.color)('ccs api create mydroid --preset glm --target droid', 'command')}`);
|
|
71
|
+
console.log('');
|
|
72
|
+
console.log(` ${(0, ui_1.dim)('# Remove API profile')}`);
|
|
73
|
+
console.log(` ${(0, ui_1.color)('ccs api remove myapi', 'command')}`);
|
|
74
|
+
console.log('');
|
|
75
|
+
console.log(` ${(0, ui_1.dim)('# Discover and register orphan settings files')}`);
|
|
76
|
+
console.log(` ${(0, ui_1.color)('ccs api discover', 'command')}`);
|
|
77
|
+
console.log(` ${(0, ui_1.color)('ccs api discover --register', 'command')}`);
|
|
78
|
+
console.log('');
|
|
79
|
+
console.log(` ${(0, ui_1.dim)('# Duplicate an existing API profile')}`);
|
|
80
|
+
console.log(` ${(0, ui_1.color)('ccs api copy glm glm-backup', 'command')}`);
|
|
81
|
+
console.log('');
|
|
82
|
+
console.log(` ${(0, ui_1.dim)('# Export and import across devices')}`);
|
|
83
|
+
console.log(` ${(0, ui_1.color)('ccs api export glm --out ./glm.ccs-profile.json', 'command')}`);
|
|
84
|
+
console.log(` ${(0, ui_1.color)('ccs api import ./glm.ccs-profile.json', 'command')}`);
|
|
85
|
+
console.log('');
|
|
86
|
+
console.log(` ${(0, ui_1.dim)('# Show all API profiles')}`);
|
|
87
|
+
console.log(` ${(0, ui_1.color)('ccs api list', 'command')}`);
|
|
88
|
+
console.log('');
|
|
89
|
+
}
|
|
90
|
+
exports.showApiCommandHelp = showApiCommandHelp;
|
|
91
|
+
async function showUnknownApiCommand(command) {
|
|
92
|
+
await (0, ui_1.initUI)();
|
|
93
|
+
console.log((0, ui_1.fail)(`Unknown command: ${command}`));
|
|
94
|
+
console.log('');
|
|
95
|
+
console.log('Run for help:');
|
|
96
|
+
console.log(` ${(0, ui_1.color)('ccs api --help', 'command')}`);
|
|
97
|
+
process.exit(1);
|
|
98
|
+
}
|
|
99
|
+
exports.showUnknownApiCommand = showUnknownApiCommand;
|
|
100
|
+
//# sourceMappingURL=help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/commands/api-command/help.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-command.d.ts","sourceRoot":"","sources":["../../../src/commands/api-command/import-command.ts"],"names":[],"mappings":"AAYA,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqF1E"}
|