aico-cli 0.0.4 → 0.0.6
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, 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.
|
|
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.eNoQ0t1U.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';
|
|
@@ -888,6 +888,96 @@ async function startClaudeCodeEditor(_lang) {
|
|
|
888
888
|
} else {
|
|
889
889
|
console.error(ansis.gray(` \u9519\u8BEF\u4FE1\u606F: ${error.message || error}`));
|
|
890
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"));
|
|
893
|
+
throw error;
|
|
894
|
+
}
|
|
895
|
+
}
|
|
896
|
+
|
|
897
|
+
async function getCurrentVersion() {
|
|
898
|
+
try {
|
|
899
|
+
return new Promise((resolve) => {
|
|
900
|
+
const child = spawn("npm", ["list", "-g", "aico-cli", "--depth=0"], {
|
|
901
|
+
stdio: "pipe",
|
|
902
|
+
shell: process.platform === "win32"
|
|
903
|
+
});
|
|
904
|
+
let output = "";
|
|
905
|
+
child.stdout?.on("data", (data) => {
|
|
906
|
+
output += data.toString();
|
|
907
|
+
});
|
|
908
|
+
child.on("close", () => {
|
|
909
|
+
const match = output.match(/aico-cli@(\d+\.\d+\.\d+)/);
|
|
910
|
+
resolve(match ? match[1] : null);
|
|
911
|
+
});
|
|
912
|
+
child.on("error", () => {
|
|
913
|
+
resolve(null);
|
|
914
|
+
});
|
|
915
|
+
});
|
|
916
|
+
} catch {
|
|
917
|
+
return null;
|
|
918
|
+
}
|
|
919
|
+
}
|
|
920
|
+
async function updateAicoCli() {
|
|
921
|
+
console.log(ansis.cyan("\u{1F680} \u66F4\u65B0 aico-cli"));
|
|
922
|
+
console.log(ansis.gray(" \u81EA\u52A8\u66F4\u65B0\u547D\u4EE4: npm install -g aico-cli"));
|
|
923
|
+
console.log(ansis.gray(" \u5982\u679C\u81EA\u52A8\u66F4\u65B0\u5931\u8D25\uFF0C\u8BF7\u624B\u52A8\u590D\u5236\u4E0A\u8FF0\u547D\u4EE4\u6267\u884C\n"));
|
|
924
|
+
try {
|
|
925
|
+
const currentVersion = await getCurrentVersion();
|
|
926
|
+
if (currentVersion) {
|
|
927
|
+
console.log(ansis.gray(`\u{1F4E6} \u5F53\u524D\u7248\u672C: ${currentVersion}`));
|
|
928
|
+
}
|
|
929
|
+
console.log(ansis.cyan("\u23F3 \u6B63\u5728\u6267\u884C\u81EA\u52A8\u66F4\u65B0..."));
|
|
930
|
+
const isWindows = process.platform === "win32";
|
|
931
|
+
const child = spawn("npm", ["install", "-g", "aico-cli"], {
|
|
932
|
+
stdio: "inherit",
|
|
933
|
+
// 继承父进程的 stdio,显示安装进度
|
|
934
|
+
cwd: process.cwd(),
|
|
935
|
+
shell: isWindows
|
|
936
|
+
// Windows 上使用 shell
|
|
937
|
+
});
|
|
938
|
+
const timeout = setTimeout(() => {
|
|
939
|
+
console.log(ansis.yellow("\n\u26A0\uFE0F \u66F4\u65B0\u65F6\u95F4\u8F83\u957F\uFF0C\u53EF\u80FD\u9047\u5230\u7F51\u7EDC\u95EE\u9898"));
|
|
940
|
+
console.log(ansis.cyan("\u{1F4A1} \u5EFA\u8BAE\u6309 Ctrl+C \u53D6\u6D88\uFF0C\u7136\u540E\u624B\u52A8\u6267\u884C:"));
|
|
941
|
+
console.log(ansis.white(" npm install -g aico-cli"));
|
|
942
|
+
}, 15e3);
|
|
943
|
+
await new Promise((resolve, reject) => {
|
|
944
|
+
child.on("close", (code) => {
|
|
945
|
+
clearTimeout(timeout);
|
|
946
|
+
if (code === 0) {
|
|
947
|
+
console.log(ansis.green("\n\u2705 aico-cli \u66F4\u65B0\u5B8C\u6210"));
|
|
948
|
+
resolve();
|
|
949
|
+
} else {
|
|
950
|
+
reject(new Error(`npm \u8FDB\u7A0B\u9000\u51FA\uFF0C\u9000\u51FA\u7801: ${code}`));
|
|
951
|
+
}
|
|
952
|
+
});
|
|
953
|
+
child.on("error", (error) => {
|
|
954
|
+
clearTimeout(timeout);
|
|
955
|
+
reject(error);
|
|
956
|
+
});
|
|
957
|
+
const handleInterrupt = () => {
|
|
958
|
+
clearTimeout(timeout);
|
|
959
|
+
child.kill("SIGINT");
|
|
960
|
+
console.log(ansis.yellow("\n\n\u26A0\uFE0F \u66F4\u65B0\u5DF2\u53D6\u6D88"));
|
|
961
|
+
console.log(ansis.cyan("\u{1F4A1} \u8BF7\u624B\u52A8\u6267\u884C: npm install -g aico-cli"));
|
|
962
|
+
process.exit(0);
|
|
963
|
+
};
|
|
964
|
+
process.once("SIGINT", handleInterrupt);
|
|
965
|
+
child.on("close", () => {
|
|
966
|
+
process.removeListener("SIGINT", handleInterrupt);
|
|
967
|
+
});
|
|
968
|
+
});
|
|
969
|
+
} catch (error) {
|
|
970
|
+
console.error(ansis.red("\u274C \u66F4\u65B0 aico-cli \u5931\u8D25:"));
|
|
971
|
+
if (error.code === "ENOENT") {
|
|
972
|
+
console.error(ansis.yellow("\u{1F4A1} \u8BF7\u786E\u4FDD\u5DF2\u5B89\u88C5 npm"));
|
|
973
|
+
console.error(
|
|
974
|
+
ansis.gray(" \u8BF7\u8BBF\u95EE https://nodejs.org/ \u4E0B\u8F7D\u5E76\u5B89\u88C5 Node.js")
|
|
975
|
+
);
|
|
976
|
+
} else {
|
|
977
|
+
console.error(ansis.gray(` \u9519\u8BEF\u4FE1\u606F: ${error.message || error}`));
|
|
978
|
+
}
|
|
979
|
+
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:"));
|
|
980
|
+
console.error(ansis.white(" npm install -g aico-cli"));
|
|
891
981
|
throw error;
|
|
892
982
|
}
|
|
893
983
|
}
|
|
@@ -960,6 +1050,12 @@ async function showMainMenu() {
|
|
|
960
1050
|
labelKey: "startCodeEditor",
|
|
961
1051
|
processor: () => startClaudeCodeEditor(scriptLang),
|
|
962
1052
|
section: "\u57FA\u7840\u914D\u7F6E"
|
|
1053
|
+
},
|
|
1054
|
+
"7": {
|
|
1055
|
+
key: "7",
|
|
1056
|
+
labelKey: "updateVersion",
|
|
1057
|
+
processor: () => updateAicoCli(),
|
|
1058
|
+
section: "\u57FA\u7840\u914D\u7F6E"
|
|
963
1059
|
}
|
|
964
1060
|
};
|
|
965
1061
|
let exitMenu = false;
|
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.eNoQ0t1U.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.6";
|
|
84
84
|
|
|
85
85
|
const common$1 = {
|
|
86
86
|
// Basic
|
|
@@ -270,6 +270,7 @@ const menu$1 = {
|
|
|
270
270
|
configureAiMemory: "\u914D\u7F6E Claude \u5168\u5C40\u8BB0\u5FC6",
|
|
271
271
|
configureEnvPermission: "\u5BFC\u5165\u63A8\u8350\u73AF\u5883\u53D8\u91CF\u548C\u6743\u9650\u914D\u7F6E",
|
|
272
272
|
startCodeEditor: "\u542F\u52A8\u4EE3\u7801\u7F16\u8F91",
|
|
273
|
+
updateVersion: "\u66F4\u65B0\u7248\u672C",
|
|
273
274
|
configureCcr: "\u914D\u7F6E\u6A21\u578B\u4EE3\u7406 (CCR)",
|
|
274
275
|
ccrManagement: "CCR",
|
|
275
276
|
ccusage: "ccusage",
|
|
@@ -288,6 +289,7 @@ const menu$1 = {
|
|
|
288
289
|
configureAiMemory: "\u914D\u7F6E AI \u8F93\u51FA\u8BED\u8A00\u548C\u89D2\u8272\u98CE\u683C",
|
|
289
290
|
configureEnvPermission: "\u5BFC\u5165\u9690\u79C1\u4FDD\u62A4\u73AF\u5883\u53D8\u91CF\u548C\u7CFB\u7EDF\u6743\u9650\u914D\u7F6E",
|
|
290
291
|
startCodeEditor: "\u542F\u52A8\u4EE3\u7801\u7F16\u8F91\u5668\u8FDB\u884C\u4EE3\u7801\u5F00\u53D1",
|
|
292
|
+
updateVersion: "\u66F4\u65B0 aico-cli \u5230\u6700\u65B0\u7248\u672C",
|
|
291
293
|
configureCcr: "\u914D\u7F6E Claude Code Router \u4EE5\u4F7F\u7528\u591A\u4E2A AI \u6A21\u578B",
|
|
292
294
|
ccrManagement: "\u914D\u7F6E Claude Code Router \u4EE5\u4F7F\u7528\u591A\u4E2A AI \u6A21\u578B",
|
|
293
295
|
ccusage: "Claude Code \u7528\u91CF\u5206\u6790",
|
|
@@ -714,6 +716,7 @@ const menu = {
|
|
|
714
716
|
configureAiMemory: "Configure Claude global memory",
|
|
715
717
|
configureEnvPermission: "Import recommended environment variables and permissions",
|
|
716
718
|
startCodeEditor: "Start Code Editor",
|
|
719
|
+
updateVersion: "Update Version",
|
|
717
720
|
configureCcr: "Configure Model Proxy (CCR)",
|
|
718
721
|
ccrManagement: "CCR",
|
|
719
722
|
ccusage: "ccusage",
|
|
@@ -732,6 +735,7 @@ const menu = {
|
|
|
732
735
|
configureAiMemory: "Configure AI output language and personality",
|
|
733
736
|
configureEnvPermission: "Import privacy protection environment variables and system permissions",
|
|
734
737
|
startCodeEditor: "Start Claude code editor (skip permission checks)",
|
|
738
|
+
updateVersion: "Update aico-cli to the latest version",
|
|
735
739
|
configureCcr: "Configure Claude Code Router to use multiple AI models",
|
|
736
740
|
ccrManagement: "Configure Claude Code Router to use multiple AI models",
|
|
737
741
|
ccusage: "Claude Code usage analysis",
|