ccjk 12.0.7 → 12.0.8
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/package.json +1 -1
- package/dist/chunks/agent-teams.mjs +0 -136
- package/dist/chunks/agent.mjs +0 -1439
- package/dist/chunks/agents.mjs +0 -3778
- package/dist/chunks/api-cli.mjs +0 -132
- package/dist/chunks/api-providers.mjs +0 -129
- package/dist/chunks/api.mjs +0 -112
- package/dist/chunks/auto-bootstrap.mjs +0 -358
- package/dist/chunks/auto-init.mjs +0 -7584
- package/dist/chunks/auto-updater.mjs +0 -410
- package/dist/chunks/banner.mjs +0 -188
- package/dist/chunks/bash.mjs +0 -187
- package/dist/chunks/boost.mjs +0 -397
- package/dist/chunks/ccjk-agents.mjs +0 -414
- package/dist/chunks/ccjk-all.mjs +0 -1028
- package/dist/chunks/ccjk-config.mjs +0 -261
- package/dist/chunks/ccjk-hooks.mjs +0 -1074
- package/dist/chunks/ccjk-mcp.mjs +0 -761
- package/dist/chunks/ccjk-setup.mjs +0 -763
- package/dist/chunks/ccjk-skills.mjs +0 -514
- package/dist/chunks/ccr.mjs +0 -98
- package/dist/chunks/ccu.mjs +0 -40
- package/dist/chunks/check-updates.mjs +0 -108
- package/dist/chunks/claude-code-config-manager.mjs +0 -750
- package/dist/chunks/claude-code-incremental-manager.mjs +0 -623
- package/dist/chunks/claude-config.mjs +0 -236
- package/dist/chunks/claude-wrapper.mjs +0 -85
- package/dist/chunks/cleanup-migration.mjs +0 -20
- package/dist/chunks/cli-hook.mjs +0 -2285
- package/dist/chunks/cloud-sync.mjs +0 -29
- package/dist/chunks/codex-config-switch.mjs +0 -451
- package/dist/chunks/codex-provider-manager.mjs +0 -236
- package/dist/chunks/codex-uninstaller.mjs +0 -404
- package/dist/chunks/codex.mjs +0 -2077
- package/dist/chunks/commands.mjs +0 -108
- package/dist/chunks/commands2.mjs +0 -413
- package/dist/chunks/commit.mjs +0 -138
- package/dist/chunks/completion.mjs +0 -515
- package/dist/chunks/config-consolidator.mjs +0 -172
- package/dist/chunks/config-switch.mjs +0 -317
- package/dist/chunks/config.mjs +0 -379
- package/dist/chunks/config2.mjs +0 -477
- package/dist/chunks/config3.mjs +0 -470
- package/dist/chunks/constants.mjs +0 -133
- package/dist/chunks/context-loader.mjs +0 -343
- package/dist/chunks/context.mjs +0 -372
- package/dist/chunks/convoy-manager.mjs +0 -880
- package/dist/chunks/dashboard.mjs +0 -476
- package/dist/chunks/doctor.mjs +0 -964
- package/dist/chunks/evolution.mjs +0 -382
- package/dist/chunks/features.mjs +0 -698
- package/dist/chunks/fish.mjs +0 -181
- package/dist/chunks/fs-operations.mjs +0 -192
- package/dist/chunks/health-alerts.mjs +0 -304
- package/dist/chunks/health-check.mjs +0 -532
- package/dist/chunks/help.mjs +0 -340
- package/dist/chunks/hook-installer.mjs +0 -45
- package/dist/chunks/index.mjs +0 -24
- package/dist/chunks/index10.mjs +0 -1171
- package/dist/chunks/index11.mjs +0 -1008
- package/dist/chunks/index12.mjs +0 -193
- package/dist/chunks/index13.mjs +0 -218
- package/dist/chunks/index14.mjs +0 -663
- package/dist/chunks/index2.mjs +0 -19
- package/dist/chunks/index3.mjs +0 -19092
- package/dist/chunks/index4.mjs +0 -8
- package/dist/chunks/index5.mjs +0 -7600
- package/dist/chunks/index6.mjs +0 -171
- package/dist/chunks/index7.mjs +0 -3583
- package/dist/chunks/index8.mjs +0 -19
- package/dist/chunks/index9.mjs +0 -616
- package/dist/chunks/init.mjs +0 -1606
- package/dist/chunks/installer.mjs +0 -690
- package/dist/chunks/installer2.mjs +0 -179
- package/dist/chunks/interview.mjs +0 -2927
- package/dist/chunks/json-config.mjs +0 -60
- package/dist/chunks/linux.mjs +0 -3863
- package/dist/chunks/macos.mjs +0 -69
- package/dist/chunks/main.mjs +0 -635
- package/dist/chunks/manager.mjs +0 -1048
- package/dist/chunks/marketplace.mjs +0 -949
- package/dist/chunks/mcp-cli.mjs +0 -204
- package/dist/chunks/mcp-performance.mjs +0 -187
- package/dist/chunks/mcp.mjs +0 -1231
- package/dist/chunks/menu.mjs +0 -652
- package/dist/chunks/metrics-display.mjs +0 -153
- package/dist/chunks/migrator.mjs +0 -178
- package/dist/chunks/monitor.mjs +0 -1856
- package/dist/chunks/notification.mjs +0 -1864
- package/dist/chunks/onboarding.mjs +0 -385
- package/dist/chunks/package.mjs +0 -3
- package/dist/chunks/paradigm.mjs +0 -74
- package/dist/chunks/permission-manager.mjs +0 -132
- package/dist/chunks/permissions.mjs +0 -265
- package/dist/chunks/persistence-manager.mjs +0 -794
- package/dist/chunks/persistence.mjs +0 -667
- package/dist/chunks/platform.mjs +0 -391
- package/dist/chunks/plugin.mjs +0 -1936
- package/dist/chunks/powershell.mjs +0 -213
- package/dist/chunks/prompts.mjs +0 -241
- package/dist/chunks/providers.mjs +0 -260
- package/dist/chunks/quick-actions.mjs +0 -320
- package/dist/chunks/quick-provider.mjs +0 -682
- package/dist/chunks/quick-setup.mjs +0 -412
- package/dist/chunks/remote.mjs +0 -497
- package/dist/chunks/session.mjs +0 -878
- package/dist/chunks/sessions.mjs +0 -106
- package/dist/chunks/silent-updater.mjs +0 -396
- package/dist/chunks/simple-config.mjs +0 -98
- package/dist/chunks/skill.mjs +0 -117
- package/dist/chunks/skill2.mjs +0 -9003
- package/dist/chunks/skills-sync.mjs +0 -6460
- package/dist/chunks/skills.mjs +0 -567
- package/dist/chunks/slash-commands.mjs +0 -207
- package/dist/chunks/smart-defaults.mjs +0 -412
- package/dist/chunks/smart-guide.mjs +0 -194
- package/dist/chunks/startup.mjs +0 -487
- package/dist/chunks/stats.mjs +0 -410
- package/dist/chunks/status.mjs +0 -289
- package/dist/chunks/team.mjs +0 -63
- package/dist/chunks/thinking.mjs +0 -626
- package/dist/chunks/trace.mjs +0 -57
- package/dist/chunks/uninstall.mjs +0 -849
- package/dist/chunks/update.mjs +0 -167
- package/dist/chunks/upgrade-manager.mjs +0 -204
- package/dist/chunks/version-checker.mjs +0 -881
- package/dist/chunks/vim.mjs +0 -903
- package/dist/chunks/windows.mjs +0 -14
- package/dist/chunks/workflows.mjs +0 -633
- package/dist/chunks/wsl.mjs +0 -129
- package/dist/chunks/zero-config.mjs +0 -374
- package/dist/chunks/zsh.mjs +0 -182
- package/dist/cli.d.mts +0 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.mjs +0 -2199
- package/dist/i18n/locales/en/agent-teams.json +0 -18
- package/dist/i18n/locales/en/agentBrowser.json +0 -79
- package/dist/i18n/locales/en/agents.json +0 -135
- package/dist/i18n/locales/en/api.json +0 -63
- package/dist/i18n/locales/en/ccjk-agents.json +0 -33
- package/dist/i18n/locales/en/ccjk-all.json +0 -23
- package/dist/i18n/locales/en/ccjk-skills.json +0 -22
- package/dist/i18n/locales/en/ccjk.json +0 -276
- package/dist/i18n/locales/en/ccr.json +0 -65
- package/dist/i18n/locales/en/claude-md.json +0 -73
- package/dist/i18n/locales/en/cli.json +0 -152
- package/dist/i18n/locales/en/cloud-setup.json +0 -31
- package/dist/i18n/locales/en/cloud-sync.json +0 -147
- package/dist/i18n/locales/en/cloud.json +0 -40
- package/dist/i18n/locales/en/cloudPlugins.json +0 -118
- package/dist/i18n/locales/en/codex.json +0 -127
- package/dist/i18n/locales/en/cometix.json +0 -29
- package/dist/i18n/locales/en/common.json +0 -68
- package/dist/i18n/locales/en/config.json +0 -108
- package/dist/i18n/locales/en/configuration.json +0 -226
- package/dist/i18n/locales/en/context.json +0 -85
- package/dist/i18n/locales/en/dashboard.json +0 -78
- package/dist/i18n/locales/en/errors.json +0 -26
- package/dist/i18n/locales/en/evolution.json +0 -54
- package/dist/i18n/locales/en/hooks.json +0 -74
- package/dist/i18n/locales/en/hooksSync.json +0 -133
- package/dist/i18n/locales/en/installation.json +0 -83
- package/dist/i18n/locales/en/interview.json +0 -104
- package/dist/i18n/locales/en/language.json +0 -19
- package/dist/i18n/locales/en/lsp.json +0 -78
- package/dist/i18n/locales/en/marketplace.json +0 -116
- package/dist/i18n/locales/en/mcp.json +0 -178
- package/dist/i18n/locales/en/memory.json +0 -92
- package/dist/i18n/locales/en/menu.json +0 -143
- package/dist/i18n/locales/en/multi-config.json +0 -79
- package/dist/i18n/locales/en/notification.json +0 -307
- package/dist/i18n/locales/en/permissions.json +0 -95
- package/dist/i18n/locales/en/persistence.json +0 -127
- package/dist/i18n/locales/en/plugins.json +0 -146
- package/dist/i18n/locales/en/quick-actions.json +0 -78
- package/dist/i18n/locales/en/registry.json +0 -54
- package/dist/i18n/locales/en/remote.json +0 -93
- package/dist/i18n/locales/en/sandbox.json +0 -44
- package/dist/i18n/locales/en/setup.json +0 -44
- package/dist/i18n/locales/en/shencha.json +0 -14
- package/dist/i18n/locales/en/skills.json +0 -100
- package/dist/i18n/locales/en/skillsSync.json +0 -74
- package/dist/i18n/locales/en/smartGuide.json +0 -49
- package/dist/i18n/locales/en/stats.json +0 -20
- package/dist/i18n/locales/en/subagent.json +0 -69
- package/dist/i18n/locales/en/superpowers.json +0 -117
- package/dist/i18n/locales/en/team.json +0 -7
- package/dist/i18n/locales/en/thinking.json +0 -65
- package/dist/i18n/locales/en/tools.json +0 -42
- package/dist/i18n/locales/en/uninstall.json +0 -56
- package/dist/i18n/locales/en/updater.json +0 -29
- package/dist/i18n/locales/en/vim.json +0 -169
- package/dist/i18n/locales/en/workflow.json +0 -55
- package/dist/i18n/locales/en/workspace.json +0 -108
- package/dist/i18n/locales/zh-CN/agent-teams.json +0 -18
- package/dist/i18n/locales/zh-CN/agentBrowser.json +0 -79
- package/dist/i18n/locales/zh-CN/agents.json +0 -135
- package/dist/i18n/locales/zh-CN/api.json +0 -63
- package/dist/i18n/locales/zh-CN/ccjk-agents.json +0 -33
- package/dist/i18n/locales/zh-CN/ccjk-all.json +0 -23
- package/dist/i18n/locales/zh-CN/ccjk-skills.json +0 -22
- package/dist/i18n/locales/zh-CN/ccjk.json +0 -276
- package/dist/i18n/locales/zh-CN/ccr.json +0 -65
- package/dist/i18n/locales/zh-CN/claude-md.json +0 -73
- package/dist/i18n/locales/zh-CN/cli.json +0 -152
- package/dist/i18n/locales/zh-CN/cloud-setup.json +0 -31
- package/dist/i18n/locales/zh-CN/cloud-sync.json +0 -147
- package/dist/i18n/locales/zh-CN/cloud.json +0 -40
- package/dist/i18n/locales/zh-CN/cloudPlugins.json +0 -118
- package/dist/i18n/locales/zh-CN/codex.json +0 -127
- package/dist/i18n/locales/zh-CN/cometix.json +0 -29
- package/dist/i18n/locales/zh-CN/common.json +0 -68
- package/dist/i18n/locales/zh-CN/config.json +0 -108
- package/dist/i18n/locales/zh-CN/configuration.json +0 -224
- package/dist/i18n/locales/zh-CN/context.json +0 -85
- package/dist/i18n/locales/zh-CN/dashboard.json +0 -78
- package/dist/i18n/locales/zh-CN/errors.json +0 -26
- package/dist/i18n/locales/zh-CN/evolution.json +0 -54
- package/dist/i18n/locales/zh-CN/hooks.json +0 -74
- package/dist/i18n/locales/zh-CN/hooksSync.json +0 -133
- package/dist/i18n/locales/zh-CN/installation.json +0 -83
- package/dist/i18n/locales/zh-CN/interview.json +0 -104
- package/dist/i18n/locales/zh-CN/language.json +0 -19
- package/dist/i18n/locales/zh-CN/lsp.json +0 -78
- package/dist/i18n/locales/zh-CN/marketplace.json +0 -116
- package/dist/i18n/locales/zh-CN/mcp.json +0 -178
- package/dist/i18n/locales/zh-CN/memory.json +0 -92
- package/dist/i18n/locales/zh-CN/menu.json +0 -143
- package/dist/i18n/locales/zh-CN/multi-config.json +0 -79
- package/dist/i18n/locales/zh-CN/notification.json +0 -307
- package/dist/i18n/locales/zh-CN/permissions.json +0 -95
- package/dist/i18n/locales/zh-CN/persistence.json +0 -127
- package/dist/i18n/locales/zh-CN/plugins.json +0 -146
- package/dist/i18n/locales/zh-CN/quick-actions.json +0 -78
- package/dist/i18n/locales/zh-CN/registry.json +0 -54
- package/dist/i18n/locales/zh-CN/remote.json +0 -93
- package/dist/i18n/locales/zh-CN/sandbox.json +0 -44
- package/dist/i18n/locales/zh-CN/setup.json +0 -44
- package/dist/i18n/locales/zh-CN/shencha.json +0 -14
- package/dist/i18n/locales/zh-CN/skills.json +0 -100
- package/dist/i18n/locales/zh-CN/skillsSync.json +0 -74
- package/dist/i18n/locales/zh-CN/smartGuide.json +0 -49
- package/dist/i18n/locales/zh-CN/stats.json +0 -20
- package/dist/i18n/locales/zh-CN/subagent.json +0 -69
- package/dist/i18n/locales/zh-CN/superpowers.json +0 -117
- package/dist/i18n/locales/zh-CN/team.json +0 -7
- package/dist/i18n/locales/zh-CN/thinking.json +0 -65
- package/dist/i18n/locales/zh-CN/tools.json +0 -42
- package/dist/i18n/locales/zh-CN/uninstall.json +0 -56
- package/dist/i18n/locales/zh-CN/updater.json +0 -29
- package/dist/i18n/locales/zh-CN/vim.json +0 -169
- package/dist/i18n/locales/zh-CN/workflow.json +0 -55
- package/dist/i18n/locales/zh-CN/workspace.json +0 -108
- package/dist/index.d.mts +0 -5295
- package/dist/index.d.ts +0 -5295
- package/dist/index.mjs +0 -4941
- package/dist/shared/ccjk.B364Fu0N.mjs +0 -1819
- package/dist/shared/ccjk.BAGoDD49.mjs +0 -36
- package/dist/shared/ccjk.BBtCGd_g.mjs +0 -899
- package/dist/shared/ccjk.BFQ7yr5S.mjs +0 -16
- package/dist/shared/ccjk.BFxsJM0k.mjs +0 -599
- package/dist/shared/ccjk.BIxuVL3_.mjs +0 -25
- package/dist/shared/ccjk.BRZ9ww8S.mjs +0 -142
- package/dist/shared/ccjk.BoApaI4j.mjs +0 -28
- package/dist/shared/ccjk.BrPUmTqm.mjs +0 -266
- package/dist/shared/ccjk.BtB1e5jm.mjs +0 -171
- package/dist/shared/ccjk.BwfbSKN2.mjs +0 -1051
- package/dist/shared/ccjk.BxSmJ8B7.mjs +0 -243
- package/dist/shared/ccjk.Bx_rmYfN.mjs +0 -69
- package/dist/shared/ccjk.C2jHOZVP.mjs +0 -52
- package/dist/shared/ccjk.CL4Yat0G.mjs +0 -303
- package/dist/shared/ccjk.COweQ1RR.mjs +0 -5
- package/dist/shared/ccjk.CePkJq2S.mjs +0 -223
- package/dist/shared/ccjk.CfKKcvWy.mjs +0 -126
- package/dist/shared/ccjk.Cjgrln_h.mjs +0 -297
- package/dist/shared/ccjk.Cjj8SVrn.mjs +0 -54
- package/dist/shared/ccjk.CxpGa6MC.mjs +0 -2724
- package/dist/shared/ccjk.D5MFQT7w.mjs +0 -400
- package/dist/shared/ccjk.D6ycHbak.mjs +0 -270
- package/dist/shared/ccjk.D8ZLYSZZ.mjs +0 -299
- package/dist/shared/ccjk.DG_o24cZ.mjs +0 -88
- package/dist/shared/ccjk.DLLw-h4Y.mjs +0 -460
- package/dist/shared/ccjk.DOwtZMk8.mjs +0 -4019
- package/dist/shared/ccjk.DS7UESmF.mjs +0 -2451
- package/dist/shared/ccjk.DTdjs-qK.mjs +0 -1447
- package/dist/shared/ccjk.DXRAZcix.mjs +0 -66
- package/dist/shared/ccjk.DsYaCCx4.mjs +0 -317
- package/dist/shared/ccjk.J8YiPsOw.mjs +0 -259
- package/dist/shared/ccjk.KfSWcGlE.mjs +0 -38
- package/dist/shared/ccjk.RyizuzOI.mjs +0 -21
- package/dist/shared/ccjk.SPoXMvZD.mjs +0 -1242
- package/dist/shared/ccjk.T_cX87dY.mjs +0 -15
- package/dist/shared/ccjk.UIvifqNE.mjs +0 -1486
- package/dist/shared/ccjk._dESH4Rk.mjs +0 -111
- package/dist/shared/ccjk.bQ7Dh1g4.mjs +0 -249
- package/dist/shared/ccjk.c-ETfBZ_.mjs +0 -617
- package/dist/shared/ccjk.gDEDGD_t.mjs +0 -38
- package/dist/shared/ccjk.hoqrwWdN.mjs +0 -333
- package/dist/shared/ccjk.waa2ikKJ.mjs +0 -351
|
@@ -1,460 +0,0 @@
|
|
|
1
|
-
import a from '../chunks/index2.mjs';
|
|
2
|
-
import { i as inquirer } from '../chunks/index3.mjs';
|
|
3
|
-
import { b as getPresetById, c as getRecommendedPresets, a as getChinesePresets, g as getAllPresets } from './ccjk.CL4Yat0G.mjs';
|
|
4
|
-
import { existsSync, readFileSync, mkdirSync } from 'node:fs';
|
|
5
|
-
import { homedir } from 'node:os';
|
|
6
|
-
import { writeFileAtomic } from '../chunks/fs-operations.mjs';
|
|
7
|
-
import { j as join } from './ccjk.bQ7Dh1g4.mjs';
|
|
8
|
-
|
|
9
|
-
const CLAUDE_DIR = join(homedir(), ".claude");
|
|
10
|
-
const SETTINGS_FILE = join(CLAUDE_DIR, "settings.json");
|
|
11
|
-
function readSettings() {
|
|
12
|
-
if (!existsSync(SETTINGS_FILE)) {
|
|
13
|
-
return {};
|
|
14
|
-
}
|
|
15
|
-
try {
|
|
16
|
-
return JSON.parse(readFileSync(SETTINGS_FILE, "utf-8"));
|
|
17
|
-
} catch {
|
|
18
|
-
return {};
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function writeSettings(settings) {
|
|
22
|
-
if (!existsSync(CLAUDE_DIR)) {
|
|
23
|
-
mkdirSync(CLAUDE_DIR, { recursive: true });
|
|
24
|
-
}
|
|
25
|
-
writeFileAtomic(SETTINGS_FILE, JSON.stringify(settings, null, 2));
|
|
26
|
-
}
|
|
27
|
-
function configureSimpleMode(config) {
|
|
28
|
-
try {
|
|
29
|
-
const settings = readSettings();
|
|
30
|
-
if (!settings.env) {
|
|
31
|
-
settings.env = {};
|
|
32
|
-
}
|
|
33
|
-
delete settings.env.ANTHROPIC_AUTH_TOKEN;
|
|
34
|
-
settings.env.ANTHROPIC_API_KEY = config.apiKey;
|
|
35
|
-
settings.env.ANTHROPIC_BASE_URL = config.baseUrl;
|
|
36
|
-
writeSettings(settings);
|
|
37
|
-
return {
|
|
38
|
-
success: true,
|
|
39
|
-
mode: "simple",
|
|
40
|
-
provider: config.provider,
|
|
41
|
-
message: `API configured successfully for ${config.provider}`
|
|
42
|
-
};
|
|
43
|
-
} catch (error) {
|
|
44
|
-
return {
|
|
45
|
-
success: false,
|
|
46
|
-
mode: "simple",
|
|
47
|
-
error: error instanceof Error ? error.message : String(error)
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
function configureOfficialMode(apiKey) {
|
|
52
|
-
try {
|
|
53
|
-
const settings = readSettings();
|
|
54
|
-
if (!settings.env) {
|
|
55
|
-
settings.env = {};
|
|
56
|
-
}
|
|
57
|
-
delete settings.env.ANTHROPIC_BASE_URL;
|
|
58
|
-
delete settings.env.ANTHROPIC_AUTH_TOKEN;
|
|
59
|
-
settings.env.ANTHROPIC_API_KEY = apiKey;
|
|
60
|
-
writeSettings(settings);
|
|
61
|
-
return {
|
|
62
|
-
success: true,
|
|
63
|
-
mode: "official",
|
|
64
|
-
provider: "anthropic",
|
|
65
|
-
message: "Official Anthropic API configured successfully"
|
|
66
|
-
};
|
|
67
|
-
} catch (error) {
|
|
68
|
-
return {
|
|
69
|
-
success: false,
|
|
70
|
-
mode: "official",
|
|
71
|
-
error: error instanceof Error ? error.message : String(error)
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
function configureWithPreset(preset, apiKey) {
|
|
76
|
-
if (preset.id === "anthropic") {
|
|
77
|
-
return configureOfficialMode(apiKey);
|
|
78
|
-
}
|
|
79
|
-
return configureSimpleMode({
|
|
80
|
-
mode: "simple",
|
|
81
|
-
provider: preset.id,
|
|
82
|
-
apiKey,
|
|
83
|
-
baseUrl: preset.baseUrl,
|
|
84
|
-
model: preset.defaultModel
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
function getCurrentConfig() {
|
|
88
|
-
try {
|
|
89
|
-
const settings = readSettings();
|
|
90
|
-
if (!settings.env) {
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
return {
|
|
94
|
-
ANTHROPIC_BASE_URL: settings.env.ANTHROPIC_BASE_URL,
|
|
95
|
-
ANTHROPIC_API_KEY: settings.env.ANTHROPIC_API_KEY,
|
|
96
|
-
ANTHROPIC_AUTH_TOKEN: settings.env.ANTHROPIC_AUTH_TOKEN
|
|
97
|
-
};
|
|
98
|
-
} catch {
|
|
99
|
-
return null;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
function detectCurrentMode() {
|
|
103
|
-
const config = getCurrentConfig();
|
|
104
|
-
if (!config) {
|
|
105
|
-
return { mode: "none" };
|
|
106
|
-
}
|
|
107
|
-
if (config.ANTHROPIC_BASE_URL?.includes("127.0.0.1:3456") || config.ANTHROPIC_BASE_URL?.includes("localhost:3456")) {
|
|
108
|
-
return { mode: "ccr", provider: "ccr" };
|
|
109
|
-
}
|
|
110
|
-
if (!config.ANTHROPIC_BASE_URL || config.ANTHROPIC_BASE_URL.includes("api.anthropic.com")) {
|
|
111
|
-
if (config.ANTHROPIC_AUTH_TOKEN) {
|
|
112
|
-
return { mode: "official", provider: "anthropic-oauth" };
|
|
113
|
-
}
|
|
114
|
-
if (config.ANTHROPIC_API_KEY) {
|
|
115
|
-
return { mode: "official", provider: "anthropic" };
|
|
116
|
-
}
|
|
117
|
-
return { mode: "none" };
|
|
118
|
-
}
|
|
119
|
-
const baseUrl = config.ANTHROPIC_BASE_URL.toLowerCase();
|
|
120
|
-
let provider = "custom";
|
|
121
|
-
if (baseUrl.includes("302.ai"))
|
|
122
|
-
provider = "302ai";
|
|
123
|
-
else if (baseUrl.includes("openrouter.ai"))
|
|
124
|
-
provider = "openrouter";
|
|
125
|
-
else if (baseUrl.includes("deepseek.com"))
|
|
126
|
-
provider = "deepseek";
|
|
127
|
-
else if (baseUrl.includes("dashscope.aliyuncs.com"))
|
|
128
|
-
provider = "qwen";
|
|
129
|
-
else if (baseUrl.includes("siliconflow.cn"))
|
|
130
|
-
provider = "siliconflow";
|
|
131
|
-
else if (baseUrl.includes("modelscope.cn"))
|
|
132
|
-
provider = "modelscope";
|
|
133
|
-
else if (baseUrl.includes("volces.com"))
|
|
134
|
-
provider = "volcengine";
|
|
135
|
-
else if (baseUrl.includes("moonshot.cn"))
|
|
136
|
-
provider = "kimi";
|
|
137
|
-
else if (baseUrl.includes("bigmodel.cn"))
|
|
138
|
-
provider = "glm";
|
|
139
|
-
else if (baseUrl.includes("generativelanguage.googleapis.com"))
|
|
140
|
-
provider = "gemini";
|
|
141
|
-
else if (baseUrl.includes("groq.com"))
|
|
142
|
-
provider = "groq";
|
|
143
|
-
else if (baseUrl.includes("localhost:11434"))
|
|
144
|
-
provider = "ollama";
|
|
145
|
-
return { mode: "simple", provider };
|
|
146
|
-
}
|
|
147
|
-
function validateApiKey(apiKey, provider) {
|
|
148
|
-
if (!apiKey || apiKey.trim() === "") {
|
|
149
|
-
return { valid: false, message: "API key is required" };
|
|
150
|
-
}
|
|
151
|
-
if (provider === "anthropic") {
|
|
152
|
-
if (!apiKey.startsWith("sk-ant-")) {
|
|
153
|
-
return { valid: false, message: "Anthropic API key should start with sk-ant-" };
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
if (provider === "openrouter") {
|
|
157
|
-
if (!apiKey.startsWith("sk-or-")) {
|
|
158
|
-
return { valid: false, message: "OpenRouter API key should start with sk-or-" };
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
return { valid: true };
|
|
162
|
-
}
|
|
163
|
-
function quickSetup(providerId, apiKey) {
|
|
164
|
-
const preset = getPresetById(providerId);
|
|
165
|
-
if (!preset) {
|
|
166
|
-
return {
|
|
167
|
-
success: false,
|
|
168
|
-
mode: "simple",
|
|
169
|
-
error: `Unknown provider: ${providerId}`
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
if (preset.requiresApiKey) {
|
|
173
|
-
const validation = validateApiKey(apiKey, providerId);
|
|
174
|
-
if (!validation.valid) {
|
|
175
|
-
return {
|
|
176
|
-
success: false,
|
|
177
|
-
mode: "simple",
|
|
178
|
-
error: validation.message
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
return configureWithPreset(preset, apiKey);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
function displayCurrentStatus(lang = "en") {
|
|
186
|
-
const { mode, provider } = detectCurrentMode();
|
|
187
|
-
const config = getCurrentConfig();
|
|
188
|
-
console.log("");
|
|
189
|
-
console.log(a.green("\u2550".repeat(50)));
|
|
190
|
-
console.log(a.bold.cyan(lang === "zh-CN" ? " \u5F53\u524D API \u914D\u7F6E" : " Current API Configuration"));
|
|
191
|
-
console.log(a.green("\u2550".repeat(50)));
|
|
192
|
-
console.log("");
|
|
193
|
-
if (mode === "none") {
|
|
194
|
-
console.log(a.yellow(lang === "zh-CN" ? " \u26A0 \u672A\u914D\u7F6E API" : " \u26A0 No API configured"));
|
|
195
|
-
console.log("");
|
|
196
|
-
return;
|
|
197
|
-
}
|
|
198
|
-
const modeLabels = {
|
|
199
|
-
official: lang === "zh-CN" ? "\u5B98\u65B9 Anthropic" : "Official Anthropic",
|
|
200
|
-
simple: lang === "zh-CN" ? "\u7B80\u5355\u6A21\u5F0F (API \u4E2D\u8F6C)" : "Simple Mode (API Proxy)",
|
|
201
|
-
ccr: lang === "zh-CN" ? "CCR \u9AD8\u7EA7\u8DEF\u7531" : "CCR Advanced Router"
|
|
202
|
-
};
|
|
203
|
-
console.log(` ${a.bold(lang === "zh-CN" ? "\u6A21\u5F0F:" : "Mode:")} ${a.green(modeLabels[mode])}`);
|
|
204
|
-
if (provider) {
|
|
205
|
-
const preset = getPresetById(provider);
|
|
206
|
-
const providerName = preset ? lang === "zh-CN" ? preset.nameZh : preset.name : provider;
|
|
207
|
-
console.log(` ${a.bold(lang === "zh-CN" ? "\u63D0\u4F9B\u5546:" : "Provider:")} ${a.green(providerName)}`);
|
|
208
|
-
}
|
|
209
|
-
if (config?.ANTHROPIC_BASE_URL) {
|
|
210
|
-
console.log(` ${a.bold("Base URL:")} ${a.gray(config.ANTHROPIC_BASE_URL)}`);
|
|
211
|
-
}
|
|
212
|
-
if (config?.ANTHROPIC_API_KEY) {
|
|
213
|
-
const masked = `${config.ANTHROPIC_API_KEY.substring(0, 10)}...`;
|
|
214
|
-
console.log(` ${a.bold("API Key:")} ${a.gray(masked)}`);
|
|
215
|
-
}
|
|
216
|
-
console.log("");
|
|
217
|
-
}
|
|
218
|
-
async function runConfigWizard(lang = "en") {
|
|
219
|
-
console.log("");
|
|
220
|
-
console.log(a.green("\u2550".repeat(50)));
|
|
221
|
-
console.log(a.bold.cyan(lang === "zh-CN" ? " API \u914D\u7F6E\u5411\u5BFC" : " API Configuration Wizard"));
|
|
222
|
-
console.log(a.green("\u2550".repeat(50)));
|
|
223
|
-
console.log("");
|
|
224
|
-
const modeChoices = [
|
|
225
|
-
{
|
|
226
|
-
name: lang === "zh-CN" ? "1. \u5FEB\u901F\u914D\u7F6E (\u63A8\u8350) - \u9009\u62E9\u9884\u8BBE\u63D0\u4F9B\u5546" : "1. Quick Setup (Recommended) - Choose preset provider",
|
|
227
|
-
value: "quick"
|
|
228
|
-
},
|
|
229
|
-
{
|
|
230
|
-
name: lang === "zh-CN" ? "2. \u5B98\u65B9 Anthropic API - \u76F4\u63A5\u8FDE\u63A5 Anthropic" : "2. Official Anthropic API - Direct connection",
|
|
231
|
-
value: "official"
|
|
232
|
-
},
|
|
233
|
-
{
|
|
234
|
-
name: lang === "zh-CN" ? "3. \u81EA\u5B9A\u4E49\u914D\u7F6E - \u624B\u52A8\u8F93\u5165 API \u5730\u5740\u548C\u5BC6\u94A5" : "3. Custom Configuration - Manual API URL and key",
|
|
235
|
-
value: "custom"
|
|
236
|
-
},
|
|
237
|
-
{
|
|
238
|
-
name: lang === "zh-CN" ? "4. CCR \u9AD8\u7EA7\u8DEF\u7531 - \u5B8C\u6574 Claude Code Router \u914D\u7F6E" : "4. CCR Advanced Router - Full Claude Code Router setup",
|
|
239
|
-
value: "ccr"
|
|
240
|
-
}
|
|
241
|
-
];
|
|
242
|
-
const { mode } = await inquirer.prompt({
|
|
243
|
-
type: "list",
|
|
244
|
-
name: "mode",
|
|
245
|
-
message: lang === "zh-CN" ? "\u9009\u62E9\u914D\u7F6E\u6A21\u5F0F:" : "Select configuration mode:",
|
|
246
|
-
choices: modeChoices
|
|
247
|
-
});
|
|
248
|
-
switch (mode) {
|
|
249
|
-
case "quick":
|
|
250
|
-
return await runQuickSetup(lang);
|
|
251
|
-
case "official":
|
|
252
|
-
return await runOfficialSetup(lang);
|
|
253
|
-
case "custom":
|
|
254
|
-
return await runCustomSetup(lang);
|
|
255
|
-
case "ccr":
|
|
256
|
-
return await runCcrSetup(lang);
|
|
257
|
-
default:
|
|
258
|
-
return { success: false, mode: "simple", error: "Unknown mode" };
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
async function runQuickSetup(lang) {
|
|
262
|
-
const recommended = getRecommendedPresets();
|
|
263
|
-
const chinese = getChinesePresets().filter((p) => !recommended.find((r) => r.id === p.id));
|
|
264
|
-
const all = getAllPresets();
|
|
265
|
-
const choices = [
|
|
266
|
-
new inquirer.Separator(lang === "zh-CN" ? "\u2500\u2500\u2500 \u63A8\u8350 \u2500\u2500\u2500" : "\u2500\u2500\u2500 Recommended \u2500\u2500\u2500"),
|
|
267
|
-
...recommended.map((p, i) => ({
|
|
268
|
-
name: `${i + 1}. ${lang === "zh-CN" ? p.nameZh : p.name} - ${lang === "zh-CN" ? p.descriptionZh : p.description}`,
|
|
269
|
-
value: p.id
|
|
270
|
-
})),
|
|
271
|
-
new inquirer.Separator(lang === "zh-CN" ? "\u2500\u2500\u2500 \u56FD\u5185\u670D\u52A1 \u2500\u2500\u2500" : "\u2500\u2500\u2500 Chinese Providers \u2500\u2500\u2500"),
|
|
272
|
-
...chinese.map((p, i) => ({
|
|
273
|
-
name: `${recommended.length + i + 1}. ${lang === "zh-CN" ? p.nameZh : p.name} - ${lang === "zh-CN" ? p.descriptionZh : p.description}`,
|
|
274
|
-
value: p.id
|
|
275
|
-
})),
|
|
276
|
-
new inquirer.Separator(lang === "zh-CN" ? "\u2500\u2500\u2500 \u66F4\u591A \u2500\u2500\u2500" : "\u2500\u2500\u2500 More \u2500\u2500\u2500"),
|
|
277
|
-
{
|
|
278
|
-
name: lang === "zh-CN" ? "\u67E5\u770B\u6240\u6709\u63D0\u4F9B\u5546..." : "View all providers...",
|
|
279
|
-
value: "__all__"
|
|
280
|
-
}
|
|
281
|
-
];
|
|
282
|
-
const { providerId } = await inquirer.prompt({
|
|
283
|
-
type: "list",
|
|
284
|
-
name: "providerId",
|
|
285
|
-
message: lang === "zh-CN" ? "\u9009\u62E9 API \u63D0\u4F9B\u5546:" : "Select API provider:",
|
|
286
|
-
choices,
|
|
287
|
-
pageSize: 15
|
|
288
|
-
});
|
|
289
|
-
let finalProviderId = providerId;
|
|
290
|
-
if (providerId === "__all__") {
|
|
291
|
-
const allChoices = all.map((p, i) => ({
|
|
292
|
-
name: `${i + 1}. [${p.category}] ${lang === "zh-CN" ? p.nameZh : p.name}`,
|
|
293
|
-
value: p.id
|
|
294
|
-
}));
|
|
295
|
-
const result2 = await inquirer.prompt({
|
|
296
|
-
type: "list",
|
|
297
|
-
name: "providerId",
|
|
298
|
-
message: lang === "zh-CN" ? "\u9009\u62E9\u63D0\u4F9B\u5546:" : "Select provider:",
|
|
299
|
-
choices: allChoices,
|
|
300
|
-
pageSize: 20
|
|
301
|
-
});
|
|
302
|
-
finalProviderId = result2.providerId;
|
|
303
|
-
}
|
|
304
|
-
const preset = getPresetById(finalProviderId);
|
|
305
|
-
if (!preset) {
|
|
306
|
-
return { success: false, mode: "simple", error: "Provider not found" };
|
|
307
|
-
}
|
|
308
|
-
console.log("");
|
|
309
|
-
console.log(a.green(`\u{1F4CB} ${lang === "zh-CN" ? preset.nameZh : preset.name}`));
|
|
310
|
-
if (preset.instructions) {
|
|
311
|
-
console.log(a.gray(` ${lang === "zh-CN" ? preset.instructions.zh : preset.instructions.en}`));
|
|
312
|
-
}
|
|
313
|
-
console.log("");
|
|
314
|
-
let apiKey = "";
|
|
315
|
-
if (preset.requiresApiKey) {
|
|
316
|
-
const { key } = await inquirer.prompt({
|
|
317
|
-
type: "password",
|
|
318
|
-
name: "key",
|
|
319
|
-
message: lang === "zh-CN" ? "\u8F93\u5165 API \u5BC6\u94A5:" : "Enter API key:",
|
|
320
|
-
mask: "*",
|
|
321
|
-
validate: (value) => {
|
|
322
|
-
if (!value)
|
|
323
|
-
return lang === "zh-CN" ? "API \u5BC6\u94A5\u4E0D\u80FD\u4E3A\u7A7A" : "API key is required";
|
|
324
|
-
return true;
|
|
325
|
-
}
|
|
326
|
-
});
|
|
327
|
-
apiKey = key;
|
|
328
|
-
}
|
|
329
|
-
const result = configureWithPreset(preset, apiKey);
|
|
330
|
-
if (result.success) {
|
|
331
|
-
console.log("");
|
|
332
|
-
console.log(a.green(`\u2714 ${lang === "zh-CN" ? "API \u914D\u7F6E\u6210\u529F!" : "API configured successfully!"}`));
|
|
333
|
-
console.log(a.gray(` ${lang === "zh-CN" ? "\u63D0\u4F9B\u5546:" : "Provider:"} ${lang === "zh-CN" ? preset.nameZh : preset.name}`));
|
|
334
|
-
console.log(a.gray(` ${lang === "zh-CN" ? "\u9ED8\u8BA4\u6A21\u578B:" : "Default model:"} ${preset.defaultModel}`));
|
|
335
|
-
console.log("");
|
|
336
|
-
}
|
|
337
|
-
return result;
|
|
338
|
-
}
|
|
339
|
-
async function runOfficialSetup(lang) {
|
|
340
|
-
console.log("");
|
|
341
|
-
console.log(a.green(lang === "zh-CN" ? "\u{1F4CB} \u5B98\u65B9 Anthropic API" : "\u{1F4CB} Official Anthropic API"));
|
|
342
|
-
console.log(a.gray(lang === "zh-CN" ? " \u4ECE https://console.anthropic.com/settings/keys \u83B7\u53D6 API \u5BC6\u94A5" : " Get your API key from https://console.anthropic.com/settings/keys"));
|
|
343
|
-
console.log("");
|
|
344
|
-
const { apiKey } = await inquirer.prompt({
|
|
345
|
-
type: "password",
|
|
346
|
-
name: "apiKey",
|
|
347
|
-
message: lang === "zh-CN" ? "\u8F93\u5165 Anthropic API \u5BC6\u94A5:" : "Enter Anthropic API key:",
|
|
348
|
-
mask: "*",
|
|
349
|
-
validate: (value) => {
|
|
350
|
-
if (!value)
|
|
351
|
-
return lang === "zh-CN" ? "API \u5BC6\u94A5\u4E0D\u80FD\u4E3A\u7A7A" : "API key is required";
|
|
352
|
-
if (!value.startsWith("sk-ant-")) {
|
|
353
|
-
return lang === "zh-CN" ? "Anthropic API \u5BC6\u94A5\u5E94\u4EE5 sk-ant- \u5F00\u5934" : "Anthropic API key should start with sk-ant-";
|
|
354
|
-
}
|
|
355
|
-
return true;
|
|
356
|
-
}
|
|
357
|
-
});
|
|
358
|
-
const result = configureOfficialMode(apiKey);
|
|
359
|
-
if (result.success) {
|
|
360
|
-
console.log("");
|
|
361
|
-
console.log(a.green(`\u2714 ${lang === "zh-CN" ? "\u5B98\u65B9 API \u914D\u7F6E\u6210\u529F!" : "Official API configured successfully!"}`));
|
|
362
|
-
console.log("");
|
|
363
|
-
}
|
|
364
|
-
return result;
|
|
365
|
-
}
|
|
366
|
-
async function runCustomSetup(lang) {
|
|
367
|
-
console.log("");
|
|
368
|
-
console.log(a.green(lang === "zh-CN" ? "\u{1F4CB} \u81EA\u5B9A\u4E49 API \u914D\u7F6E" : "\u{1F4CB} Custom API Configuration"));
|
|
369
|
-
console.log("");
|
|
370
|
-
const { baseUrl } = await inquirer.prompt({
|
|
371
|
-
type: "input",
|
|
372
|
-
name: "baseUrl",
|
|
373
|
-
message: lang === "zh-CN" ? "\u8F93\u5165 API Base URL:" : "Enter API Base URL:",
|
|
374
|
-
validate: (value) => {
|
|
375
|
-
if (!value)
|
|
376
|
-
return lang === "zh-CN" ? "URL \u4E0D\u80FD\u4E3A\u7A7A" : "URL is required";
|
|
377
|
-
if (!value.startsWith("http")) {
|
|
378
|
-
return lang === "zh-CN" ? "URL \u5FC5\u987B\u4EE5 http:// \u6216 https:// \u5F00\u5934" : "URL must start with http:// or https://";
|
|
379
|
-
}
|
|
380
|
-
return true;
|
|
381
|
-
}
|
|
382
|
-
});
|
|
383
|
-
const { apiKey } = await inquirer.prompt({
|
|
384
|
-
type: "password",
|
|
385
|
-
name: "apiKey",
|
|
386
|
-
message: lang === "zh-CN" ? "\u8F93\u5165 API \u5BC6\u94A5:" : "Enter API key:",
|
|
387
|
-
mask: "*",
|
|
388
|
-
validate: (value) => {
|
|
389
|
-
if (!value)
|
|
390
|
-
return lang === "zh-CN" ? "API \u5BC6\u94A5\u4E0D\u80FD\u4E3A\u7A7A" : "API key is required";
|
|
391
|
-
return true;
|
|
392
|
-
}
|
|
393
|
-
});
|
|
394
|
-
const result = configureSimpleMode({
|
|
395
|
-
mode: "simple",
|
|
396
|
-
provider: "custom",
|
|
397
|
-
apiKey,
|
|
398
|
-
baseUrl
|
|
399
|
-
});
|
|
400
|
-
if (result.success) {
|
|
401
|
-
console.log("");
|
|
402
|
-
console.log(a.green(`\u2714 ${lang === "zh-CN" ? "\u81EA\u5B9A\u4E49 API \u914D\u7F6E\u6210\u529F!" : "Custom API configured successfully!"}`));
|
|
403
|
-
console.log("");
|
|
404
|
-
}
|
|
405
|
-
return result;
|
|
406
|
-
}
|
|
407
|
-
async function runCcrSetup(lang) {
|
|
408
|
-
console.log("");
|
|
409
|
-
console.log(a.green(lang === "zh-CN" ? "\u{1F4CB} CCR \u9AD8\u7EA7\u8DEF\u7531\u914D\u7F6E" : "\u{1F4CB} CCR Advanced Router Configuration"));
|
|
410
|
-
console.log(a.gray(lang === "zh-CN" ? " CCR \u63D0\u4F9B\u5B8C\u6574\u7684\u6A21\u578B\u8DEF\u7531\u3001\u8F6C\u6362\u548C\u591A\u63D0\u4F9B\u5546\u652F\u6301" : " CCR provides full model routing, transformation, and multi-provider support"));
|
|
411
|
-
console.log("");
|
|
412
|
-
try {
|
|
413
|
-
const { setupCcrConfiguration } = await import('../chunks/config2.mjs');
|
|
414
|
-
const success = await setupCcrConfiguration();
|
|
415
|
-
return {
|
|
416
|
-
success,
|
|
417
|
-
mode: "ccr",
|
|
418
|
-
provider: "ccr",
|
|
419
|
-
message: success ? lang === "zh-CN" ? "CCR \u914D\u7F6E\u6210\u529F" : "CCR configured successfully" : lang === "zh-CN" ? "CCR \u914D\u7F6E\u5931\u8D25" : "CCR configuration failed"
|
|
420
|
-
};
|
|
421
|
-
} catch (error) {
|
|
422
|
-
return {
|
|
423
|
-
success: false,
|
|
424
|
-
mode: "ccr",
|
|
425
|
-
error: error instanceof Error ? error.message : String(error)
|
|
426
|
-
};
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
async function testApiConnection(lang = "en") {
|
|
430
|
-
const config = getCurrentConfig();
|
|
431
|
-
if (!config || !config.ANTHROPIC_API_KEY && !config.ANTHROPIC_AUTH_TOKEN) {
|
|
432
|
-
console.log(a.yellow(lang === "zh-CN" ? "\u26A0 \u672A\u914D\u7F6E API" : "\u26A0 No API configured"));
|
|
433
|
-
return false;
|
|
434
|
-
}
|
|
435
|
-
console.log(a.green(lang === "zh-CN" ? "\u{1F50D} \u6D4B\u8BD5 API \u8FDE\u63A5..." : "\u{1F50D} Testing API connection..."));
|
|
436
|
-
try {
|
|
437
|
-
const baseUrl = config.ANTHROPIC_BASE_URL || "https://api.anthropic.com";
|
|
438
|
-
const testUrl = baseUrl.includes("v1") ? baseUrl : `${baseUrl}/v1/models`;
|
|
439
|
-
const response = await fetch(testUrl, {
|
|
440
|
-
method: "GET",
|
|
441
|
-
headers: {
|
|
442
|
-
"x-api-key": config.ANTHROPIC_API_KEY || "",
|
|
443
|
-
"anthropic-version": "2023-06-01"
|
|
444
|
-
}
|
|
445
|
-
});
|
|
446
|
-
if (response.ok || response.status === 401) {
|
|
447
|
-
console.log(a.green(lang === "zh-CN" ? "\u2714 API \u8FDE\u63A5\u6210\u529F" : "\u2714 API connection successful"));
|
|
448
|
-
return true;
|
|
449
|
-
} else {
|
|
450
|
-
console.log(a.yellow(`\u26A0 API returned status: ${response.status}`));
|
|
451
|
-
return false;
|
|
452
|
-
}
|
|
453
|
-
} catch (error) {
|
|
454
|
-
console.log(a.red(lang === "zh-CN" ? "\u2716 API \u8FDE\u63A5\u5931\u8D25" : "\u2716 API connection failed"));
|
|
455
|
-
console.log(a.gray(` ${error instanceof Error ? error.message : String(error)}`));
|
|
456
|
-
return false;
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
export { configureSimpleMode as a, configureWithPreset as b, configureOfficialMode as c, displayCurrentStatus as d, detectCurrentMode as e, getCurrentConfig as g, quickSetup as q, runConfigWizard as r, testApiConnection as t, validateApiKey as v };
|