aico-cli 0.0.3 → 0.0.5
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/dist/cli.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import cac from 'cac';
|
|
3
3
|
import ansis from 'ansis';
|
|
4
|
-
import { J as readZcfConfig, K as inquirer, N as addNumbersToChoices, O as updateZcfConfig, P as getTranslation, h as SUPPORTED_LANGS, j as LANG_LABELS, k as AI_OUTPUT_LANGUAGES, Q as version, q as backupExistingConfig, r as copyConfigFiles, x as applyAiLanguageDirective, R as configureAiPersonality, C as CLAUDE_DIR, T as readJsonConfig, H as addCompletedOnboarding, S as SETTINGS_FILE, U as writeJsonConfig, o as openSettingsJson, b as importRecommendedPermissions, a as importRecommendedEnv, V as isWindows, z as readMcpConfig, G as fixWindowsMcpConfig, B as writeMcpConfig, W as selectMcpServices, D as backupMcpConfig, M as MCP_SERVICES, F as buildMcpServerConfig, E as mergeMcpServers,
|
|
4
|
+
import { J as readZcfConfig, K as inquirer, N as addNumbersToChoices, O as updateZcfConfig, P as getTranslation, h as SUPPORTED_LANGS, j as LANG_LABELS, k as AI_OUTPUT_LANGUAGES, Q as version, q as backupExistingConfig, r as copyConfigFiles, x as applyAiLanguageDirective, R as configureAiPersonality, C as CLAUDE_DIR, T as readJsonConfig, H as addCompletedOnboarding, S as SETTINGS_FILE, U as writeJsonConfig, o as openSettingsJson, b as importRecommendedPermissions, a as importRecommendedEnv, V as isWindows, z as readMcpConfig, G as fixWindowsMcpConfig, B as writeMcpConfig, W as selectMcpServices, D as backupMcpConfig, M as MCP_SERVICES, F as buildMcpServerConfig, X as EscapeKeyPressed, E as mergeMcpServers, Y as displayBanner, I as I18N, Z as selectAndInstallWorkflows, _ as handleExitPromptError, $ as handleGeneralError, a0 as displayBannerWithInfo, a1 as readZcfConfigAsync, i as init, a2 as executeWithEscapeSupport } from './shared/aico-cli.ByYf0OOn.mjs';
|
|
5
5
|
import inquirer$1 from 'inquirer';
|
|
6
6
|
import { existsSync, copyFileSync, mkdirSync } from 'node:fs';
|
|
7
7
|
import { exec, spawn } from 'node:child_process';
|
|
@@ -591,39 +591,145 @@ async function configureMcpFeature(scriptLang) {
|
|
|
591
591
|
}
|
|
592
592
|
}
|
|
593
593
|
const selectedServices = await selectMcpServices(scriptLang);
|
|
594
|
-
if (
|
|
594
|
+
if (selectedServices === void 0) {
|
|
595
|
+
return;
|
|
596
|
+
}
|
|
597
|
+
if (selectedServices.length === 0) {
|
|
598
|
+
console.log(
|
|
599
|
+
ansis.yellow(i18n.mcp.noServicesSelected || "\u6CA1\u6709\u9009\u62E9\u4EFB\u4F55\u670D\u52A1")
|
|
600
|
+
);
|
|
595
601
|
return;
|
|
596
602
|
}
|
|
597
603
|
if (selectedServices.length > 0) {
|
|
598
604
|
const mcpBackupPath = backupMcpConfig();
|
|
599
605
|
if (mcpBackupPath) {
|
|
600
|
-
console.log(
|
|
606
|
+
console.log(
|
|
607
|
+
ansis.gray(`\u2714 ${i18n.mcp.mcpBackupSuccess}: ${mcpBackupPath}`)
|
|
608
|
+
);
|
|
601
609
|
}
|
|
602
610
|
const newServers = {};
|
|
611
|
+
const installResults = [];
|
|
603
612
|
for (const serviceId of selectedServices) {
|
|
604
613
|
const service = MCP_SERVICES.find((s) => s.id === serviceId);
|
|
605
|
-
if (!service)
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
message: service.apiKeyPrompt[scriptLang],
|
|
612
|
-
validate: (value) => !!value || i18n.api.keyRequired
|
|
614
|
+
if (!service) {
|
|
615
|
+
installResults.push({
|
|
616
|
+
serviceId,
|
|
617
|
+
serviceName: serviceId,
|
|
618
|
+
success: false,
|
|
619
|
+
reason: i18n.mcp.serviceNotFound || "\u670D\u52A1\u672A\u627E\u5230"
|
|
613
620
|
});
|
|
614
|
-
|
|
615
|
-
|
|
621
|
+
continue;
|
|
622
|
+
}
|
|
623
|
+
try {
|
|
624
|
+
let config = service.config;
|
|
625
|
+
if (service.requiresApiKey) {
|
|
626
|
+
console.log(ansis.cyan(`
|
|
627
|
+
\u914D\u7F6E ${service.name[scriptLang]}...`));
|
|
628
|
+
const { apiKey } = await inquirer.prompt({
|
|
629
|
+
type: "input",
|
|
630
|
+
name: "apiKey",
|
|
631
|
+
message: service.apiKeyPrompt[scriptLang],
|
|
632
|
+
validate: (value) => !!value || i18n.api.keyRequired
|
|
633
|
+
});
|
|
634
|
+
if (apiKey) {
|
|
635
|
+
config = buildMcpServerConfig(
|
|
636
|
+
service.config,
|
|
637
|
+
apiKey,
|
|
638
|
+
service.apiKeyPlaceholder,
|
|
639
|
+
service.apiKeyEnvVar
|
|
640
|
+
);
|
|
641
|
+
newServers[service.id] = config;
|
|
642
|
+
installResults.push({
|
|
643
|
+
serviceId: service.id,
|
|
644
|
+
serviceName: service.name[scriptLang],
|
|
645
|
+
success: true
|
|
646
|
+
});
|
|
647
|
+
console.log(ansis.green(`\u2714 ${service.name[scriptLang]} \u914D\u7F6E\u6210\u529F`));
|
|
648
|
+
} else {
|
|
649
|
+
installResults.push({
|
|
650
|
+
serviceId: service.id,
|
|
651
|
+
serviceName: service.name[scriptLang],
|
|
652
|
+
success: false,
|
|
653
|
+
reason: i18n.mcp.apiKeyRequired || "API Key \u5FC5\u586B"
|
|
654
|
+
});
|
|
655
|
+
console.log(
|
|
656
|
+
ansis.yellow(
|
|
657
|
+
`\u26A0 ${service.name[scriptLang]} \u914D\u7F6E\u8DF3\u8FC7\uFF08\u672A\u63D0\u4F9B API Key\uFF09`
|
|
658
|
+
)
|
|
659
|
+
);
|
|
660
|
+
}
|
|
616
661
|
} else {
|
|
617
|
-
|
|
662
|
+
newServers[service.id] = config;
|
|
663
|
+
installResults.push({
|
|
664
|
+
serviceId: service.id,
|
|
665
|
+
serviceName: service.name[scriptLang],
|
|
666
|
+
success: true
|
|
667
|
+
});
|
|
668
|
+
console.log(ansis.green(`\u2714 ${service.name[scriptLang]} \u914D\u7F6E\u6210\u529F`));
|
|
669
|
+
}
|
|
670
|
+
} catch (error) {
|
|
671
|
+
if (error instanceof EscapeKeyPressed) {
|
|
672
|
+
installResults.push({
|
|
673
|
+
serviceId: service.id,
|
|
674
|
+
serviceName: service.name[scriptLang],
|
|
675
|
+
success: false,
|
|
676
|
+
reason: i18n.common.cancelled || "\u7528\u6237\u53D6\u6D88"
|
|
677
|
+
});
|
|
678
|
+
console.log(ansis.yellow(`\u26A0 ${service.name[scriptLang]} \u914D\u7F6E\u5DF2\u53D6\u6D88`));
|
|
679
|
+
} else {
|
|
680
|
+
installResults.push({
|
|
681
|
+
serviceId: service.id,
|
|
682
|
+
serviceName: service.name[scriptLang],
|
|
683
|
+
success: false,
|
|
684
|
+
reason: error.message || i18n.common.error || "\u914D\u7F6E\u5931\u8D25"
|
|
685
|
+
});
|
|
686
|
+
console.log(
|
|
687
|
+
ansis.red(
|
|
688
|
+
`\u2717 ${service.name[scriptLang]} \u914D\u7F6E\u5931\u8D25: ${error.message}`
|
|
689
|
+
)
|
|
690
|
+
);
|
|
618
691
|
}
|
|
619
692
|
}
|
|
620
|
-
newServers[service.id] = config;
|
|
621
693
|
}
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
694
|
+
if (Object.keys(newServers).length > 0) {
|
|
695
|
+
const existingConfig = readMcpConfig();
|
|
696
|
+
let mergedConfig = mergeMcpServers(existingConfig, newServers);
|
|
697
|
+
mergedConfig = fixWindowsMcpConfig(mergedConfig);
|
|
698
|
+
writeMcpConfig(mergedConfig);
|
|
699
|
+
}
|
|
700
|
+
console.log("\n" + ansis.dim("\u2500".repeat(50)));
|
|
701
|
+
console.log(ansis.bold(i18n.mcp.installationSummary || "MCP \u670D\u52A1\u5B89\u88C5\u7ED3\u679C"));
|
|
702
|
+
console.log(ansis.dim("\u2500".repeat(50)));
|
|
703
|
+
const successfulServices = installResults.filter((r) => r.success);
|
|
704
|
+
const failedServices = installResults.filter((r) => !r.success);
|
|
705
|
+
if (successfulServices.length > 0) {
|
|
706
|
+
console.log(
|
|
707
|
+
ansis.green(`\u2714 \u6210\u529F\u5B89\u88C5 ${successfulServices.length} \u4E2A\u670D\u52A1:`)
|
|
708
|
+
);
|
|
709
|
+
successfulServices.forEach((service) => {
|
|
710
|
+
console.log(ansis.green(` \u2022 ${service.serviceName}`));
|
|
711
|
+
});
|
|
712
|
+
}
|
|
713
|
+
if (failedServices.length > 0) {
|
|
714
|
+
console.log(ansis.yellow(`
|
|
715
|
+
\u26A0 ${failedServices.length} \u4E2A\u670D\u52A1\u5B89\u88C5\u5931\u8D25:`));
|
|
716
|
+
failedServices.forEach((service) => {
|
|
717
|
+
console.log(
|
|
718
|
+
ansis.yellow(` \u2022 ${service.serviceName}: ${service.reason}`)
|
|
719
|
+
);
|
|
720
|
+
});
|
|
721
|
+
}
|
|
722
|
+
if (successfulServices.length > 0) {
|
|
723
|
+
console.log(ansis.green(`
|
|
724
|
+
\u2714 ${i18n.mcp.mcpConfigSuccess}`));
|
|
725
|
+
} else if (failedServices.length === selectedServices.length) {
|
|
726
|
+
console.log(
|
|
727
|
+
ansis.yellow(
|
|
728
|
+
`
|
|
729
|
+
\u26A0 ${i18n.mcp.noServicesInstalled || "\u6CA1\u6709\u670D\u52A1\u88AB\u6210\u529F\u5B89\u88C5"}`
|
|
730
|
+
)
|
|
731
|
+
);
|
|
732
|
+
}
|
|
627
733
|
}
|
|
628
734
|
}
|
|
629
735
|
async function configureAiMemoryFeature(scriptLang) {
|
|
@@ -648,10 +754,18 @@ async function configureAiMemoryFeature(scriptLang) {
|
|
|
648
754
|
}
|
|
649
755
|
if (option === "language") {
|
|
650
756
|
const zcfConfig = readZcfConfig();
|
|
651
|
-
const aiOutputLang = await resolveAiOutputLanguage(
|
|
757
|
+
const aiOutputLang = await resolveAiOutputLanguage(
|
|
758
|
+
scriptLang,
|
|
759
|
+
void 0,
|
|
760
|
+
zcfConfig
|
|
761
|
+
);
|
|
652
762
|
applyAiLanguageDirective(aiOutputLang);
|
|
653
763
|
updateZcfConfig({ aiOutputLang });
|
|
654
|
-
console.log(
|
|
764
|
+
console.log(
|
|
765
|
+
ansis.green(
|
|
766
|
+
`\u2714 ${i18n.configuration.aiLanguageConfigured || "AI output language configured"}`
|
|
767
|
+
)
|
|
768
|
+
);
|
|
655
769
|
} else {
|
|
656
770
|
await configureAiPersonality(scriptLang);
|
|
657
771
|
}
|
|
@@ -664,15 +778,21 @@ async function configureEnvPermissionFeature(scriptLang) {
|
|
|
664
778
|
message: i18n.configuration?.selectEnvPermissionOption || "Select option",
|
|
665
779
|
choices: addNumbersToChoices([
|
|
666
780
|
{
|
|
667
|
-
name: `${i18n.configuration?.importRecommendedEnv || "Import environment"} ${ansis.gray(
|
|
781
|
+
name: `${i18n.configuration?.importRecommendedEnv || "Import environment"} ${ansis.gray(
|
|
782
|
+
"- " + (i18n.configuration?.importRecommendedEnvDesc || "Import env settings")
|
|
783
|
+
)}`,
|
|
668
784
|
value: "env"
|
|
669
785
|
},
|
|
670
786
|
{
|
|
671
|
-
name: `${i18n.configuration?.importRecommendedPermissions || "Import permissions"} ${ansis.gray(
|
|
787
|
+
name: `${i18n.configuration?.importRecommendedPermissions || "Import permissions"} ${ansis.gray(
|
|
788
|
+
"- " + (i18n.configuration?.importRecommendedPermissionsDesc || "Import permission settings")
|
|
789
|
+
)}`,
|
|
672
790
|
value: "permissions"
|
|
673
791
|
},
|
|
674
792
|
{
|
|
675
|
-
name: `${i18n.configuration?.openSettingsJson || "Open settings"} ${ansis.gray(
|
|
793
|
+
name: `${i18n.configuration?.openSettingsJson || "Open settings"} ${ansis.gray(
|
|
794
|
+
"- " + (i18n.configuration?.openSettingsJsonDesc || "View settings file")
|
|
795
|
+
)}`,
|
|
676
796
|
value: "open"
|
|
677
797
|
}
|
|
678
798
|
])
|
|
@@ -689,10 +809,18 @@ async function configureEnvPermissionFeature(scriptLang) {
|
|
|
689
809
|
break;
|
|
690
810
|
case "permissions":
|
|
691
811
|
await importRecommendedPermissions();
|
|
692
|
-
console.log(
|
|
812
|
+
console.log(
|
|
813
|
+
ansis.green(
|
|
814
|
+
`\u2705 ${i18n.configuration?.permissionsImportSuccess || "Permissions imported"}`
|
|
815
|
+
)
|
|
816
|
+
);
|
|
693
817
|
break;
|
|
694
818
|
case "open":
|
|
695
|
-
console.log(
|
|
819
|
+
console.log(
|
|
820
|
+
ansis.cyan(
|
|
821
|
+
i18n.configuration?.openingSettingsJson || "Opening settings.json..."
|
|
822
|
+
)
|
|
823
|
+
);
|
|
696
824
|
await openSettingsJson();
|
|
697
825
|
break;
|
|
698
826
|
}
|
|
@@ -701,36 +829,67 @@ async function configureEnvPermissionFeature(scriptLang) {
|
|
|
701
829
|
}
|
|
702
830
|
}
|
|
703
831
|
|
|
832
|
+
async function tryStartClaude(command, args, options) {
|
|
833
|
+
return new Promise((resolve, reject) => {
|
|
834
|
+
const child = spawn(command, args, options);
|
|
835
|
+
child.on("close", (code) => {
|
|
836
|
+
if (code === 0) {
|
|
837
|
+
console.log(ansis.green("\u2705 \u4EE3\u7801\u7F16\u8F91\u5668\u5DF2\u9000\u51FA"));
|
|
838
|
+
resolve();
|
|
839
|
+
} else {
|
|
840
|
+
reject(new Error(`Claude \u8FDB\u7A0B\u9000\u51FA\uFF0C\u9000\u51FA\u7801: ${code}`));
|
|
841
|
+
}
|
|
842
|
+
});
|
|
843
|
+
child.on("error", (error) => {
|
|
844
|
+
reject(error);
|
|
845
|
+
});
|
|
846
|
+
});
|
|
847
|
+
}
|
|
704
848
|
async function startClaudeCodeEditor(_lang) {
|
|
705
849
|
try {
|
|
706
850
|
console.log(ansis.cyan("\u{1F680} \u6B63\u5728\u542F\u52A8\u4EE3\u7801\u7F16\u8F91\u5668..."));
|
|
707
|
-
const
|
|
851
|
+
const isWindows = process.platform === "win32";
|
|
852
|
+
const spawnOptions = {
|
|
708
853
|
stdio: "inherit",
|
|
709
854
|
// 继承父进程的 stdio,这样可以在当前终端中交互
|
|
710
|
-
cwd: process.cwd()
|
|
855
|
+
cwd: process.cwd(),
|
|
711
856
|
// 使用当前工作目录
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
857
|
+
shell: isWindows
|
|
858
|
+
// Windows 上使用 shell 来解析命令
|
|
859
|
+
};
|
|
860
|
+
try {
|
|
861
|
+
const command = isWindows ? "claude.cmd" : "claude";
|
|
862
|
+
await tryStartClaude(command, ["--dangerously-skip-permissions"], spawnOptions);
|
|
863
|
+
return;
|
|
864
|
+
} catch (firstError) {
|
|
865
|
+
if (firstError.code === "ENOENT") {
|
|
866
|
+
console.log(ansis.yellow("\u26A0\uFE0F \u76F4\u63A5\u8C03\u7528 claude \u5931\u8D25\uFF0C\u5C1D\u8BD5\u4F7F\u7528 npx..."));
|
|
867
|
+
try {
|
|
868
|
+
await tryStartClaude("npx", ["@anthropic-ai/claude-code", "--dangerously-skip-permissions"], spawnOptions);
|
|
869
|
+
return;
|
|
870
|
+
} catch (secondError) {
|
|
871
|
+
throw firstError;
|
|
720
872
|
}
|
|
721
|
-
}
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
});
|
|
873
|
+
} else {
|
|
874
|
+
throw firstError;
|
|
875
|
+
}
|
|
876
|
+
}
|
|
726
877
|
} catch (error) {
|
|
727
878
|
console.error(ansis.red("\u274C \u542F\u52A8\u4EE3\u7801\u7F16\u8F91\u5668\u5931\u8D25:"));
|
|
728
879
|
if (error.code === "ENOENT" || error.message?.includes("command not found")) {
|
|
729
880
|
console.error(ansis.yellow("\u{1F4A1} \u8BF7\u786E\u4FDD\u5DF2\u5B89\u88C5 Claude Code:"));
|
|
730
881
|
console.error(ansis.gray(" npm install -g @anthropic-ai/claude-code"));
|
|
882
|
+
if (process.platform === "win32") {
|
|
883
|
+
console.error(ansis.yellow("\u{1F4A1} Windows \u7528\u6237\u989D\u5916\u63D0\u793A:"));
|
|
884
|
+
console.error(ansis.gray(" 1. \u91CD\u542F\u547D\u4EE4\u884C\u7A97\u53E3\u4EE5\u5237\u65B0 PATH \u73AF\u5883\u53D8\u91CF"));
|
|
885
|
+
console.error(ansis.gray(" 2. \u786E\u8BA4 npm \u5168\u5C40\u5B89\u88C5\u8DEF\u5F84\u5728 PATH \u4E2D"));
|
|
886
|
+
console.error(ansis.gray(" 3. \u5C1D\u8BD5\u4F7F\u7528 npx @anthropic-ai/claude-code --dangerously-skip-permissions"));
|
|
887
|
+
}
|
|
731
888
|
} else {
|
|
732
889
|
console.error(ansis.gray(` \u9519\u8BEF\u4FE1\u606F: ${error.message || error}`));
|
|
733
890
|
}
|
|
891
|
+
console.error(ansis.cyan("\n\u{1F4A1} \u6216\u8005\u8BF7\u590D\u5236\u4EE5\u4E0B\u547D\u4EE4\u5728\u547D\u4EE4\u884C\u4E2D\u624B\u52A8\u6267\u884C:"));
|
|
892
|
+
console.error(ansis.white(" claude --dangerously-skip-permissions"));
|
|
734
893
|
throw error;
|
|
735
894
|
}
|
|
736
895
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AICO_CONFIG_FILE, k as AI_OUTPUT_LANGUAGES, C as CLAUDE_DIR, e as CLAUDE_MD_FILE, f as ClAUDE_CONFIG_FILE, I as I18N, j as LANG_LABELS, L as LEGACY_AICO_CONFIG_FILE, M as MCP_SERVICES, S as SETTINGS_FILE, h as SUPPORTED_LANGS, H as addCompletedOnboarding, x as applyAiLanguageDirective, q as backupExistingConfig, D as backupMcpConfig, F as buildMcpServerConfig, d as cleanupPermissions, c as commandExists, s as configureApi, r as copyConfigFiles, p as ensureClaudeDir, G as fixWindowsMcpConfig, w as getExistingApiConfig, y as getMcpConfigPath, g as getPlatform, a as importRecommendedEnv, b as importRecommendedPermissions, i as init, n as installClaudeCode, l as isClaudeCodeInstalled, m as mergeAndCleanPermissions, t as mergeConfigs, E as mergeMcpServers, v as mergeSettingsFile, o as openSettingsJson, z as readMcpConfig, u as updateDefaultModel, B as writeMcpConfig } from './shared/aico-cli.
|
|
1
|
+
export { A as AICO_CONFIG_FILE, k as AI_OUTPUT_LANGUAGES, C as CLAUDE_DIR, e as CLAUDE_MD_FILE, f as ClAUDE_CONFIG_FILE, I as I18N, j as LANG_LABELS, L as LEGACY_AICO_CONFIG_FILE, M as MCP_SERVICES, S as SETTINGS_FILE, h as SUPPORTED_LANGS, H as addCompletedOnboarding, x as applyAiLanguageDirective, q as backupExistingConfig, D as backupMcpConfig, F as buildMcpServerConfig, d as cleanupPermissions, c as commandExists, s as configureApi, r as copyConfigFiles, p as ensureClaudeDir, G as fixWindowsMcpConfig, w as getExistingApiConfig, y as getMcpConfigPath, g as getPlatform, a as importRecommendedEnv, b as importRecommendedPermissions, i as init, n as installClaudeCode, l as isClaudeCodeInstalled, m as mergeAndCleanPermissions, t as mergeConfigs, E as mergeMcpServers, v as mergeSettingsFile, o as openSettingsJson, z as readMcpConfig, u as updateDefaultModel, B as writeMcpConfig } from './shared/aico-cli.ByYf0OOn.mjs';
|
|
2
2
|
import 'inquirer';
|
|
3
3
|
import 'ansis';
|
|
4
4
|
import 'node:fs';
|
|
@@ -80,7 +80,7 @@ const inquirer = {
|
|
|
80
80
|
createPromptModule: inquirer$1.createPromptModule
|
|
81
81
|
};
|
|
82
82
|
|
|
83
|
-
const version = "0.0.
|
|
83
|
+
const version = "0.0.5";
|
|
84
84
|
|
|
85
85
|
const common$1 = {
|
|
86
86
|
// Basic
|
|
@@ -241,13 +241,18 @@ const mcp$1 = {
|
|
|
241
241
|
mcpServiceInstalled: "\u5DF2\u9009\u62E9\u7684 MCP \u670D\u52A1",
|
|
242
242
|
enterExaApiKey: "\u8BF7\u8F93\u5165 Exa API Key\uFF08\u53EF\u4ECE https://dashboard.exa.ai/api-keys \u83B7\u53D6\uFF09",
|
|
243
243
|
skipMcp: "\u8DF3\u8FC7 MCP \u914D\u7F6E",
|
|
244
|
-
mcpConfigSuccess: "MCP \u670D\u52A1\
|
|
244
|
+
mcpConfigSuccess: "MCP \u670D\u52A1\u914D\u7F6E\u5B8C\u6210",
|
|
245
245
|
mcpBackupSuccess: "\u5DF2\u5907\u4EFD\u539F\u6709 MCP \u914D\u7F6E",
|
|
246
246
|
fixWindowsMcp: "\u4FEE\u590D Windows MCP \u914D\u7F6E",
|
|
247
247
|
fixWindowsMcpDesc: "\u4FEE\u590D Windows \u5E73\u53F0 MCP \u547D\u4EE4\u914D\u7F6E\u95EE\u9898",
|
|
248
248
|
windowsMcpFixed: "Windows MCP \u914D\u7F6E\u5DF2\u4FEE\u590D",
|
|
249
249
|
configureMcpServices: "\u914D\u7F6E MCP \u670D\u52A1",
|
|
250
|
-
selectMcpOption: "\u9009\u62E9 MCP \u914D\u7F6E\u9009\u9879"
|
|
250
|
+
selectMcpOption: "\u9009\u62E9 MCP \u914D\u7F6E\u9009\u9879",
|
|
251
|
+
installationSummary: "MCP \u670D\u52A1\u5B89\u88C5\u7ED3\u679C",
|
|
252
|
+
serviceNotFound: "\u670D\u52A1\u672A\u627E\u5230",
|
|
253
|
+
apiKeyRequired: "API Key \u5FC5\u586B",
|
|
254
|
+
noServicesInstalled: "\u6CA1\u6709\u670D\u52A1\u88AB\u6210\u529F\u5B89\u88C5",
|
|
255
|
+
noServicesSelected: "\u6CA1\u6709\u9009\u62E9\u4EFB\u4F55\u670D\u52A1"
|
|
251
256
|
};
|
|
252
257
|
|
|
253
258
|
const menu$1 = {
|
|
@@ -680,13 +685,18 @@ const mcp = {
|
|
|
680
685
|
mcpServiceInstalled: "Selected MCP services",
|
|
681
686
|
enterExaApiKey: "Enter Exa API Key (get from https://dashboard.exa.ai/api-keys)",
|
|
682
687
|
skipMcp: "Skip MCP configuration",
|
|
683
|
-
mcpConfigSuccess: "MCP services
|
|
688
|
+
mcpConfigSuccess: "MCP services configuration completed",
|
|
684
689
|
mcpBackupSuccess: "Original MCP config backed up",
|
|
685
690
|
fixWindowsMcp: "Fix Windows MCP Configuration",
|
|
686
691
|
fixWindowsMcpDesc: "Fix Windows platform MCP command configuration issues",
|
|
687
692
|
windowsMcpFixed: "Windows MCP configuration fixed",
|
|
688
693
|
configureMcpServices: "Configure MCP Services",
|
|
689
|
-
selectMcpOption: "Select MCP configuration option"
|
|
694
|
+
selectMcpOption: "Select MCP configuration option",
|
|
695
|
+
installationSummary: "MCP Services Installation Results",
|
|
696
|
+
serviceNotFound: "Service not found",
|
|
697
|
+
apiKeyRequired: "API Key required",
|
|
698
|
+
noServicesInstalled: "No services were successfully installed",
|
|
699
|
+
noServicesSelected: "No services selected"
|
|
690
700
|
};
|
|
691
701
|
|
|
692
702
|
const menu = {
|
|
@@ -2370,4 +2380,4 @@ async function openSettingsJson() {
|
|
|
2370
2380
|
}
|
|
2371
2381
|
}
|
|
2372
2382
|
|
|
2373
|
-
export {
|
|
2383
|
+
export { handleGeneralError as $, AICO_CONFIG_FILE as A, writeMcpConfig as B, CLAUDE_DIR as C, backupMcpConfig as D, mergeMcpServers as E, buildMcpServerConfig as F, fixWindowsMcpConfig as G, addCompletedOnboarding as H, I18N as I, readZcfConfig as J, inquirer as K, LEGACY_AICO_CONFIG_FILE as L, MCP_SERVICES as M, addNumbersToChoices as N, updateZcfConfig as O, getTranslation as P, version as Q, configureAiPersonality as R, SETTINGS_FILE as S, readJsonConfig as T, writeJsonConfig as U, isWindows as V, selectMcpServices as W, EscapeKeyPressed as X, displayBanner as Y, selectAndInstallWorkflows as Z, handleExitPromptError as _, importRecommendedEnv as a, displayBannerWithInfo as a0, readZcfConfigAsync as a1, executeWithEscapeSupport as a2, importRecommendedPermissions as b, commandExists as c, cleanupPermissions as d, CLAUDE_MD_FILE as e, ClAUDE_CONFIG_FILE as f, getPlatform as g, SUPPORTED_LANGS as h, init as i, LANG_LABELS as j, AI_OUTPUT_LANGUAGES as k, isClaudeCodeInstalled as l, mergeAndCleanPermissions as m, installClaudeCode as n, openSettingsJson as o, ensureClaudeDir as p, backupExistingConfig as q, copyConfigFiles as r, configureApi as s, mergeConfigs as t, updateDefaultModel as u, mergeSettingsFile as v, getExistingApiConfig as w, applyAiLanguageDirective as x, getMcpConfigPath as y, readMcpConfig as z };
|