zcf 2.6.1 → 2.7.0
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 +6 -1
- package/dist/cli.mjs +124 -5
- package/dist/index.d.mts +23 -2
- package/dist/index.d.ts +23 -2
- package/dist/index.mjs +1 -1
- package/dist/shared/{zcf.BjaE63-h.mjs → zcf.DgEuqnSI.mjs} +58 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[](https://codecov.io/gh/UfoMiao/zcf)
|
|
7
7
|
[](https://deepwiki.com/UfoMiao/zcf)
|
|
8
8
|
|
|
9
|
-
[中文](README_zh-CN.md) | **English**
|
|
9
|
+
[中文](README_zh-CN.md) | **English** | [Changelog](CHANGELOG.md)
|
|
10
10
|
|
|
11
11
|
> Zero-config, one-click setup for Claude Code with bilingual support, intelligent agent system and personalized AI assistant
|
|
12
12
|
|
|
@@ -48,6 +48,7 @@ npx zcf → select 2 # Execute workflow update via menu
|
|
|
48
48
|
#### 🎯 BMad Workflow (New Feature)
|
|
49
49
|
|
|
50
50
|
BMad (Business-Minded Agile Development) is an enterprise-grade workflow system that provides:
|
|
51
|
+
|
|
51
52
|
- Complete team of specialized AI agents (PO, PM, Architect, Dev, QA, etc.)
|
|
52
53
|
- Structured development process with quality gates
|
|
53
54
|
- Automatic documentation generation
|
|
@@ -245,6 +246,7 @@ Enter your choice: _
|
|
|
245
246
|
| `zcf` | - | Show interactive menu (v2.0 default command) |
|
|
246
247
|
| `zcf init` | `zcf i` | Initialize Claude Code configuration |
|
|
247
248
|
| `zcf update` | `zcf u` | Update workflow-related md files with backup |
|
|
249
|
+
| `zcf ccu` | - | Run Claude Code usage analysis tool |
|
|
248
250
|
|
|
249
251
|
#### Common Options
|
|
250
252
|
|
|
@@ -291,6 +293,9 @@ npx zcf i -c zh-CN -f # Using short options
|
|
|
291
293
|
# Update to English prompts (lower token consumption)
|
|
292
294
|
npx zcf u --config-lang en
|
|
293
295
|
npx zcf u -c en # Using short option
|
|
296
|
+
|
|
297
|
+
# Run Claude Code usage analysis tool (powered by ccusage)
|
|
298
|
+
npx zcf ccu # Daily usage (default), or use: monthly, session, blocks
|
|
294
299
|
```
|
|
295
300
|
|
|
296
301
|
## 📁 Project Structure
|
package/dist/cli.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import cac from 'cac';
|
|
3
3
|
import ansis from 'ansis';
|
|
4
|
-
import { I as I18N, Z as ZCF_CONFIG_FILE, h as SUPPORTED_LANGS, j as LANG_LABELS, H as updateZcfConfig, o as openSettingsJson, b as importRecommendedPermissions, a as importRecommendedEnv, J as readZcfConfig, K as resolveAiOutputLanguage, w as applyAiLanguageDirective, N as configureAiPersonality, u as updateDefaultModel, O as isWindows, y as readMcpConfig, F as fixWindowsMcpConfig, z as writeMcpConfig, P as selectMcpServices, B as backupMcpConfig, M as MCP_SERVICES, E as buildMcpServerConfig, D as mergeMcpServers, v as getExistingApiConfig, Q as formatApiKeyDisplay, R as modifyApiConfigPartially, T as validateApiKey, r as configureApi, U as
|
|
4
|
+
import { I as I18N, Z as ZCF_CONFIG_FILE, h as SUPPORTED_LANGS, j as LANG_LABELS, H as updateZcfConfig, o as openSettingsJson, b as importRecommendedPermissions, a as importRecommendedEnv, J as readZcfConfig, K as resolveAiOutputLanguage, w as applyAiLanguageDirective, N as configureAiPersonality, u as updateDefaultModel, O as isWindows, y as readMcpConfig, F as fixWindowsMcpConfig, z as writeMcpConfig, P as selectMcpServices, B as backupMcpConfig, M as MCP_SERVICES, E as buildMcpServerConfig, D as mergeMcpServers, v as getExistingApiConfig, Q as formatApiKeyDisplay, R as modifyApiConfigPartially, T as validateApiKey, r as configureApi, U as readZcfConfigAsync, V as displayBanner, W as selectScriptLanguage, X as updatePromptOnly, Y as selectAndInstallWorkflows, _ as version, $ as handleExitPromptError, a0 as handleGeneralError, a1 as displayBannerWithInfo, i as init } from './shared/zcf.DgEuqnSI.mjs';
|
|
5
5
|
import inquirer from 'inquirer';
|
|
6
6
|
import { existsSync, unlinkSync } from 'node:fs';
|
|
7
|
+
import { x } from 'tinyexec';
|
|
7
8
|
import 'pathe';
|
|
8
9
|
import 'dayjs';
|
|
9
10
|
import 'node:url';
|
|
10
|
-
import 'tinyexec';
|
|
11
11
|
import 'node:fs/promises';
|
|
12
12
|
import 'node:os';
|
|
13
13
|
|
|
@@ -295,6 +295,106 @@ async function configureEnvPermissionFeature(scriptLang) {
|
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
297
|
|
|
298
|
+
async function executeCcusage(args = []) {
|
|
299
|
+
try {
|
|
300
|
+
const zcfConfig = await readZcfConfigAsync();
|
|
301
|
+
const rawLang = zcfConfig?.preferredLang || "en";
|
|
302
|
+
const lang = getValidLanguage(rawLang);
|
|
303
|
+
const i18n = I18N[lang];
|
|
304
|
+
const command = "npx";
|
|
305
|
+
const commandArgs = ["ccusage@latest", ...args];
|
|
306
|
+
console.log(ansis.cyan(i18n.runningCcusage));
|
|
307
|
+
console.log(ansis.gray(`$ npx ccusage@latest ${args.join(" ")}`));
|
|
308
|
+
console.log("");
|
|
309
|
+
await x(command, commandArgs, {
|
|
310
|
+
nodeOptions: {
|
|
311
|
+
stdio: "inherit"
|
|
312
|
+
}
|
|
313
|
+
});
|
|
314
|
+
} catch (error) {
|
|
315
|
+
const zcfConfig = await readZcfConfigAsync();
|
|
316
|
+
const rawLang = zcfConfig?.preferredLang || "en";
|
|
317
|
+
const lang = getValidLanguage(rawLang);
|
|
318
|
+
const i18n = I18N[lang];
|
|
319
|
+
console.error(ansis.red(i18n.ccusageFailed));
|
|
320
|
+
console.error(ansis.yellow(i18n.checkNetworkConnection));
|
|
321
|
+
if (process.env.DEBUG) {
|
|
322
|
+
console.error(ansis.gray(i18n.errorDetails), error);
|
|
323
|
+
}
|
|
324
|
+
if (process.env.NODE_ENV !== "test") {
|
|
325
|
+
process.exit(1);
|
|
326
|
+
}
|
|
327
|
+
throw error;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
function getValidLanguage(lang) {
|
|
332
|
+
return lang && lang in I18N ? lang : "en";
|
|
333
|
+
}
|
|
334
|
+
async function runCcusageFeature(scriptLang) {
|
|
335
|
+
const validLang = getValidLanguage(scriptLang);
|
|
336
|
+
const i18n = I18N[validLang];
|
|
337
|
+
console.log("");
|
|
338
|
+
console.log(ansis.cyan(i18n.menuOptions.ccusage));
|
|
339
|
+
console.log(ansis.gray(`${i18n.ccusageDescription} - https://github.com/ryoppippi/ccusage`));
|
|
340
|
+
console.log("");
|
|
341
|
+
const choices = [
|
|
342
|
+
{ name: i18n.ccusageModes.daily, value: "daily" },
|
|
343
|
+
{ name: i18n.ccusageModes.monthly, value: "monthly" },
|
|
344
|
+
{ name: i18n.ccusageModes.session, value: "session" },
|
|
345
|
+
{ name: i18n.ccusageModes.blocks, value: "blocks" },
|
|
346
|
+
{ name: i18n.ccusageModes.custom, value: "custom" },
|
|
347
|
+
{ name: i18n.back, value: "back" }
|
|
348
|
+
];
|
|
349
|
+
const { mode } = await inquirer.prompt({
|
|
350
|
+
type: "list",
|
|
351
|
+
name: "mode",
|
|
352
|
+
message: i18n.selectAnalysisMode,
|
|
353
|
+
choices
|
|
354
|
+
});
|
|
355
|
+
if (mode === "back") {
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
let args = [];
|
|
359
|
+
if (mode === "custom") {
|
|
360
|
+
const { customArgs } = await inquirer.prompt({
|
|
361
|
+
type: "input",
|
|
362
|
+
name: "customArgs",
|
|
363
|
+
message: i18n.enterCustomArgs,
|
|
364
|
+
default: ""
|
|
365
|
+
});
|
|
366
|
+
if (customArgs === null || customArgs === void 0 || customArgs === "") {
|
|
367
|
+
args = [];
|
|
368
|
+
} else {
|
|
369
|
+
const argsString = String(customArgs).trim();
|
|
370
|
+
if (!argsString) {
|
|
371
|
+
args = [];
|
|
372
|
+
} else {
|
|
373
|
+
const argPattern = /"([^"]*)"|'([^']*)'|([^\s]+)/g;
|
|
374
|
+
const matches = [];
|
|
375
|
+
let match;
|
|
376
|
+
while ((match = argPattern.exec(argsString)) !== null) {
|
|
377
|
+
const value = match[1] || match[2] || match[3];
|
|
378
|
+
if (value) {
|
|
379
|
+
matches.push(value);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
args = matches;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
} else {
|
|
386
|
+
args = [mode];
|
|
387
|
+
}
|
|
388
|
+
console.log("");
|
|
389
|
+
await executeCcusage(args);
|
|
390
|
+
console.log("");
|
|
391
|
+
await inquirer.prompt({
|
|
392
|
+
type: "input",
|
|
393
|
+
name: "continue",
|
|
394
|
+
message: ansis.gray(i18n.pressEnterToContinue)
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
|
|
298
398
|
async function update(options = {}) {
|
|
299
399
|
try {
|
|
300
400
|
if (!options.skipBanner) {
|
|
@@ -382,6 +482,13 @@ async function showMainMenu() {
|
|
|
382
482
|
)}`
|
|
383
483
|
);
|
|
384
484
|
console.log("");
|
|
485
|
+
console.log(` ---------- ${i18n.menuSections.otherTools} ----------`);
|
|
486
|
+
console.log(
|
|
487
|
+
` ${ansis.cyan("u.")} ${i18n.menuOptions.ccusage} ${ansis.gray(
|
|
488
|
+
"- " + i18n.menuDescriptions.ccusage
|
|
489
|
+
)}`
|
|
490
|
+
);
|
|
491
|
+
console.log("");
|
|
385
492
|
console.log(" ------------ ZCF ------------");
|
|
386
493
|
console.log(
|
|
387
494
|
` ${ansis.cyan("0.")} ${i18n.menuOptions.changeLanguage} ${ansis.gray(
|
|
@@ -396,9 +503,9 @@ async function showMainMenu() {
|
|
|
396
503
|
const { choice } = await inquirer.prompt({
|
|
397
504
|
type: "input",
|
|
398
505
|
name: "choice",
|
|
399
|
-
message: i18n.enterChoice
|
|
506
|
+
message: i18n.enterChoice,
|
|
400
507
|
validate: (value) => {
|
|
401
|
-
const valid = ["1", "2", "3", "4", "5", "6", "7", "0", "-", "q", "Q"];
|
|
508
|
+
const valid = ["1", "2", "3", "4", "5", "6", "7", "u", "U", "0", "-", "q", "Q"];
|
|
402
509
|
return valid.includes(value) || i18n.invalidChoice;
|
|
403
510
|
}
|
|
404
511
|
});
|
|
@@ -429,6 +536,10 @@ async function showMainMenu() {
|
|
|
429
536
|
case "7":
|
|
430
537
|
await configureEnvPermissionFeature(scriptLang);
|
|
431
538
|
break;
|
|
539
|
+
case "u":
|
|
540
|
+
case "U":
|
|
541
|
+
await runCcusageFeature(scriptLang);
|
|
542
|
+
break;
|
|
432
543
|
case "0":
|
|
433
544
|
const newLang = await changeScriptLanguageFeature(scriptLang);
|
|
434
545
|
if (newLang !== scriptLang) {
|
|
@@ -444,7 +555,7 @@ async function showMainMenu() {
|
|
|
444
555
|
break;
|
|
445
556
|
}
|
|
446
557
|
if (!exitMenu && choice.toLowerCase() !== "q") {
|
|
447
|
-
if (choice === "0" || choice === "-") {
|
|
558
|
+
if (choice === "0" || choice === "-" || choice.toLowerCase() === "u") {
|
|
448
559
|
console.log("\n" + ansis.dim("\u2500".repeat(50)) + "\n");
|
|
449
560
|
continue;
|
|
450
561
|
}
|
|
@@ -478,6 +589,9 @@ function setupCommands(cli) {
|
|
|
478
589
|
cli.command("update", "Update Claude Code prompts only").alias("u").option("--config-lang, -c <lang>", "Configuration language (zh-CN, en)").action(async (options) => {
|
|
479
590
|
await handleUpdateCommand(options);
|
|
480
591
|
});
|
|
592
|
+
cli.command("ccu [...args]", "Run Claude Code usage analysis tool").allowUnknownOptions().action(async (args) => {
|
|
593
|
+
await executeCcusage(args);
|
|
594
|
+
});
|
|
481
595
|
cli.help((sections) => customizeHelp(sections));
|
|
482
596
|
cli.version(version);
|
|
483
597
|
}
|
|
@@ -516,6 +630,7 @@ function customizeHelp(sections) {
|
|
|
516
630
|
"i"
|
|
517
631
|
)} Initialize Claude Code configuration / \u521D\u59CB\u5316 Claude Code \u914D\u7F6E`,
|
|
518
632
|
` ${ansis.cyan("zcf update")} | ${ansis.cyan("u")} Update workflow-related md files / \u4EC5\u66F4\u65B0\u5DE5\u4F5C\u6D41\u76F8\u5173md`,
|
|
633
|
+
` ${ansis.cyan("zcf ccu")} [args] Run Claude Code usage analysis / \u8FD0\u884C Claude Code \u7528\u91CF\u5206\u6790`,
|
|
519
634
|
"",
|
|
520
635
|
ansis.gray(" Shortcuts / \u5FEB\u6377\u65B9\u5F0F:"),
|
|
521
636
|
` ${ansis.cyan("zcf i")} Quick init / \u5FEB\u901F\u521D\u59CB\u5316`,
|
|
@@ -546,6 +661,10 @@ function customizeHelp(sections) {
|
|
|
546
661
|
ansis.gray(" # Update workflow-related md files only / \u4EC5\u66F4\u65B0\u5DE5\u4F5C\u6D41\u76F8\u5173md\u6587\u4EF6"),
|
|
547
662
|
` ${ansis.cyan("npx zcf u")}`,
|
|
548
663
|
"",
|
|
664
|
+
ansis.gray(" # Run Claude Code usage analysis / \u8FD0\u884C Claude Code \u7528\u91CF\u5206\u6790"),
|
|
665
|
+
` ${ansis.cyan("npx zcf ccu")} ${ansis.gray("# Daily usage (default)")}`,
|
|
666
|
+
` ${ansis.cyan("npx zcf ccu monthly --json")}`,
|
|
667
|
+
"",
|
|
549
668
|
ansis.gray(" # Force overwrite with Chinese config / \u5F3A\u5236\u4F7F\u7528\u4E2D\u6587\u914D\u7F6E\u8986\u76D6"),
|
|
550
669
|
` ${ansis.cyan("npx zcf --init -c zh-CN -f")}`,
|
|
551
670
|
` ${ansis.cyan("npx zcf --init --config-lang zh-CN --force")}`
|
package/dist/index.d.mts
CHANGED
|
@@ -12,6 +12,9 @@ interface TranslationKeys {
|
|
|
12
12
|
spaceToSelectReturn: string;
|
|
13
13
|
enterChoice: string;
|
|
14
14
|
invalidChoice: string;
|
|
15
|
+
goodbye: string;
|
|
16
|
+
returnToMenu: string;
|
|
17
|
+
back: string;
|
|
15
18
|
selectScriptLang: string;
|
|
16
19
|
selectConfigLang: string;
|
|
17
20
|
selectAiOutputLang: string;
|
|
@@ -95,8 +98,9 @@ interface TranslationKeys {
|
|
|
95
98
|
selectMcpOption: string;
|
|
96
99
|
windowsDetected: string;
|
|
97
100
|
selectFunction: string;
|
|
98
|
-
|
|
99
|
-
|
|
101
|
+
menuSections: {
|
|
102
|
+
otherTools: string;
|
|
103
|
+
};
|
|
100
104
|
menuOptions: {
|
|
101
105
|
fullInit: string;
|
|
102
106
|
importWorkflow: string;
|
|
@@ -105,6 +109,7 @@ interface TranslationKeys {
|
|
|
105
109
|
configureModel: string;
|
|
106
110
|
configureAiMemory: string;
|
|
107
111
|
configureEnvPermission: string;
|
|
112
|
+
ccusage: string;
|
|
108
113
|
installBmad: string;
|
|
109
114
|
clearCache: string;
|
|
110
115
|
changeLanguage: string;
|
|
@@ -118,6 +123,7 @@ interface TranslationKeys {
|
|
|
118
123
|
configureModel: string;
|
|
119
124
|
configureAiMemory: string;
|
|
120
125
|
configureEnvPermission: string;
|
|
126
|
+
ccusage: string;
|
|
121
127
|
installBmad: string;
|
|
122
128
|
clearCache: string;
|
|
123
129
|
changeLanguage: string;
|
|
@@ -141,6 +147,21 @@ interface TranslationKeys {
|
|
|
141
147
|
confirmClearCache: string;
|
|
142
148
|
cacheCleared: string;
|
|
143
149
|
noCacheFound: string;
|
|
150
|
+
runningCcusage: string;
|
|
151
|
+
ccusageDescription: string;
|
|
152
|
+
selectAnalysisMode: string;
|
|
153
|
+
ccusageModes: {
|
|
154
|
+
daily: string;
|
|
155
|
+
monthly: string;
|
|
156
|
+
session: string;
|
|
157
|
+
blocks: string;
|
|
158
|
+
custom: string;
|
|
159
|
+
};
|
|
160
|
+
enterCustomArgs: string;
|
|
161
|
+
pressEnterToContinue: string;
|
|
162
|
+
ccusageFailed: string;
|
|
163
|
+
checkNetworkConnection: string;
|
|
164
|
+
errorDetails: string;
|
|
144
165
|
selectEnvPermissionOption: string;
|
|
145
166
|
importRecommendedEnv: string;
|
|
146
167
|
importRecommendedEnvDesc: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,9 @@ interface TranslationKeys {
|
|
|
12
12
|
spaceToSelectReturn: string;
|
|
13
13
|
enterChoice: string;
|
|
14
14
|
invalidChoice: string;
|
|
15
|
+
goodbye: string;
|
|
16
|
+
returnToMenu: string;
|
|
17
|
+
back: string;
|
|
15
18
|
selectScriptLang: string;
|
|
16
19
|
selectConfigLang: string;
|
|
17
20
|
selectAiOutputLang: string;
|
|
@@ -95,8 +98,9 @@ interface TranslationKeys {
|
|
|
95
98
|
selectMcpOption: string;
|
|
96
99
|
windowsDetected: string;
|
|
97
100
|
selectFunction: string;
|
|
98
|
-
|
|
99
|
-
|
|
101
|
+
menuSections: {
|
|
102
|
+
otherTools: string;
|
|
103
|
+
};
|
|
100
104
|
menuOptions: {
|
|
101
105
|
fullInit: string;
|
|
102
106
|
importWorkflow: string;
|
|
@@ -105,6 +109,7 @@ interface TranslationKeys {
|
|
|
105
109
|
configureModel: string;
|
|
106
110
|
configureAiMemory: string;
|
|
107
111
|
configureEnvPermission: string;
|
|
112
|
+
ccusage: string;
|
|
108
113
|
installBmad: string;
|
|
109
114
|
clearCache: string;
|
|
110
115
|
changeLanguage: string;
|
|
@@ -118,6 +123,7 @@ interface TranslationKeys {
|
|
|
118
123
|
configureModel: string;
|
|
119
124
|
configureAiMemory: string;
|
|
120
125
|
configureEnvPermission: string;
|
|
126
|
+
ccusage: string;
|
|
121
127
|
installBmad: string;
|
|
122
128
|
clearCache: string;
|
|
123
129
|
changeLanguage: string;
|
|
@@ -141,6 +147,21 @@ interface TranslationKeys {
|
|
|
141
147
|
confirmClearCache: string;
|
|
142
148
|
cacheCleared: string;
|
|
143
149
|
noCacheFound: string;
|
|
150
|
+
runningCcusage: string;
|
|
151
|
+
ccusageDescription: string;
|
|
152
|
+
selectAnalysisMode: string;
|
|
153
|
+
ccusageModes: {
|
|
154
|
+
daily: string;
|
|
155
|
+
monthly: string;
|
|
156
|
+
session: string;
|
|
157
|
+
blocks: string;
|
|
158
|
+
custom: string;
|
|
159
|
+
};
|
|
160
|
+
enterCustomArgs: string;
|
|
161
|
+
pressEnterToContinue: string;
|
|
162
|
+
ccusageFailed: string;
|
|
163
|
+
checkNetworkConnection: string;
|
|
164
|
+
errorDetails: string;
|
|
144
165
|
selectEnvPermissionOption: string;
|
|
145
166
|
importRecommendedEnv: string;
|
|
146
167
|
importRecommendedEnvDesc: string;
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A 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_ZCF_CONFIG_FILE, M as MCP_SERVICES, S as SETTINGS_FILE, h as SUPPORTED_LANGS, Z as ZCF_CONFIG_FILE, G as addCompletedOnboarding, w as applyAiLanguageDirective, p as backupExistingConfig, B as backupMcpConfig, E as buildMcpServerConfig, d as cleanupPermissions, c as commandExists, r as configureApi, q as copyConfigFiles, n as ensureClaudeDir, F as fixWindowsMcpConfig, v as getExistingApiConfig, x as getMcpConfigPath, g as getPlatform, a as importRecommendedEnv, b as importRecommendedPermissions, i as init, l as installClaudeCode, k as isClaudeCodeInstalled, m as mergeAndCleanPermissions, s as mergeConfigs, D as mergeMcpServers, t as mergeSettingsFile, o as openSettingsJson, y as readMcpConfig, u as updateDefaultModel, z as writeMcpConfig } from './shared/zcf.
|
|
1
|
+
export { A 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_ZCF_CONFIG_FILE, M as MCP_SERVICES, S as SETTINGS_FILE, h as SUPPORTED_LANGS, Z as ZCF_CONFIG_FILE, G as addCompletedOnboarding, w as applyAiLanguageDirective, p as backupExistingConfig, B as backupMcpConfig, E as buildMcpServerConfig, d as cleanupPermissions, c as commandExists, r as configureApi, q as copyConfigFiles, n as ensureClaudeDir, F as fixWindowsMcpConfig, v as getExistingApiConfig, x as getMcpConfigPath, g as getPlatform, a as importRecommendedEnv, b as importRecommendedPermissions, i as init, l as installClaudeCode, k as isClaudeCodeInstalled, m as mergeAndCleanPermissions, s as mergeConfigs, D as mergeMcpServers, t as mergeSettingsFile, o as openSettingsJson, y as readMcpConfig, u as updateDefaultModel, z as writeMcpConfig } from './shared/zcf.DgEuqnSI.mjs';
|
|
2
2
|
import 'inquirer';
|
|
3
3
|
import 'ansis';
|
|
4
4
|
import 'node:fs';
|
|
@@ -8,7 +8,7 @@ import { exec } from 'tinyexec';
|
|
|
8
8
|
import { rm, mkdir, copyFile as copyFile$1 } from 'node:fs/promises';
|
|
9
9
|
import { homedir, platform } from 'node:os';
|
|
10
10
|
|
|
11
|
-
const version = "2.
|
|
11
|
+
const version = "2.7.0";
|
|
12
12
|
const homepage = "https://github.com/UfoMiao/zcf";
|
|
13
13
|
|
|
14
14
|
const common$1 = {
|
|
@@ -26,7 +26,8 @@ const common$1 = {
|
|
|
26
26
|
enterChoice: "\u8BF7\u8F93\u5165\u9009\u9879\uFF0C\u56DE\u8F66\u786E\u8BA4",
|
|
27
27
|
invalidChoice: "\u65E0\u6548\u9009\u62E9\u3002\u8BF7\u8F93\u5165\u6709\u6548\u9009\u9879\u3002",
|
|
28
28
|
goodbye: "\u{1F44B} \u611F\u8C22\u4F7F\u7528 ZCF\uFF01\u518D\u89C1\uFF01",
|
|
29
|
-
returnToMenu: "\u8FD4\u56DE\u4E3B\u83DC\u5355\uFF1F"
|
|
29
|
+
returnToMenu: "\u8FD4\u56DE\u4E3B\u83DC\u5355\uFF1F",
|
|
30
|
+
back: "\u8FD4\u56DE"
|
|
30
31
|
};
|
|
31
32
|
|
|
32
33
|
const language$1 = {
|
|
@@ -167,6 +168,9 @@ const mcp$1 = {
|
|
|
167
168
|
|
|
168
169
|
const menu$1 = {
|
|
169
170
|
selectFunction: "\u8BF7\u9009\u62E9\u529F\u80FD",
|
|
171
|
+
menuSections: {
|
|
172
|
+
otherTools: "\u5176\u4ED6\u5DE5\u5177"
|
|
173
|
+
},
|
|
170
174
|
menuOptions: {
|
|
171
175
|
fullInit: "\u5B8C\u6574\u521D\u59CB\u5316",
|
|
172
176
|
importWorkflow: "\u5BFC\u5165\u5DE5\u4F5C\u6D41",
|
|
@@ -175,6 +179,7 @@ const menu$1 = {
|
|
|
175
179
|
configureModel: "\u914D\u7F6E\u9ED8\u8BA4\u6A21\u578B",
|
|
176
180
|
configureAiMemory: "\u914D\u7F6E Claude \u5168\u5C40\u8BB0\u5FC6",
|
|
177
181
|
configureEnvPermission: "\u5BFC\u5165\u63A8\u8350\u73AF\u5883\u53D8\u91CF\u548C\u6743\u9650\u914D\u7F6E",
|
|
182
|
+
ccusage: "ccusage",
|
|
178
183
|
installBmad: "\u5B89\u88C5 BMad Method",
|
|
179
184
|
clearCache: "\u6E05\u9664\u504F\u597D\u7F13\u5B58",
|
|
180
185
|
changeLanguage: "\u66F4\u6539\u663E\u793A\u8BED\u8A00 / Select display language",
|
|
@@ -188,6 +193,7 @@ const menu$1 = {
|
|
|
188
193
|
configureModel: "\u8BBE\u7F6E\u9ED8\u8BA4\u6A21\u578B\uFF08opus/sonnet\uFF09",
|
|
189
194
|
configureAiMemory: "\u914D\u7F6E AI \u8F93\u51FA\u8BED\u8A00\u548C\u89D2\u8272\u98CE\u683C",
|
|
190
195
|
configureEnvPermission: "\u5BFC\u5165\u9690\u79C1\u4FDD\u62A4\u73AF\u5883\u53D8\u91CF\u548C\u7CFB\u7EDF\u6743\u9650\u914D\u7F6E",
|
|
196
|
+
ccusage: "Claude Code \u7528\u91CF\u5206\u6790",
|
|
191
197
|
installBmad: "AI \u9A71\u52A8\u7684\u5F00\u53D1\u65B9\u6CD5\u8BBA\u6846\u67B6",
|
|
192
198
|
clearCache: "\u6E05\u9664\u504F\u597D\u8BED\u8A00\u7B49\u7F13\u5B58",
|
|
193
199
|
changeLanguage: "\u66F4\u6539 ZCF \u754C\u9762\u8BED\u8A00"
|
|
@@ -301,6 +307,25 @@ const errors$1 = {
|
|
|
301
307
|
failedToApplyPersonality: "\u5E94\u7528\u4E2A\u6027\u6307\u4EE4\u5931\u8D25\uFF1A"
|
|
302
308
|
};
|
|
303
309
|
|
|
310
|
+
const tools$1 = {
|
|
311
|
+
// CCUsage
|
|
312
|
+
runningCcusage: "\u6B63\u5728\u8FD0\u884C Claude Code \u7528\u91CF\u5206\u6790\u5DE5\u5177...",
|
|
313
|
+
ccusageDescription: "\u5206\u6790\u4EE4\u724C\u4F7F\u7528\u91CF\u548C\u6210\u672C - https://github.com/ryoppippi/ccusage",
|
|
314
|
+
selectAnalysisMode: "\u9009\u62E9\u5206\u6790\u6A21\u5F0F:",
|
|
315
|
+
ccusageModes: {
|
|
316
|
+
daily: "\u6BCF\u65E5\u4F7F\u7528\u91CF",
|
|
317
|
+
monthly: "\u6BCF\u6708\u4F7F\u7528\u91CF",
|
|
318
|
+
session: "\u4F1A\u8BDD\u7EDF\u8BA1",
|
|
319
|
+
blocks: "\u533A\u5757\u7EDF\u8BA1",
|
|
320
|
+
custom: "\u81EA\u5B9A\u4E49\u53C2\u6570"
|
|
321
|
+
},
|
|
322
|
+
enterCustomArgs: "\u8F93\u5165\u81EA\u5B9A\u4E49\u53C2\u6570 (\u4F8B\u5982: daily --json):",
|
|
323
|
+
pressEnterToContinue: "\u6309 Enter \u952E\u7EE7\u7EED...",
|
|
324
|
+
ccusageFailed: "\u8FD0\u884C ccusage \u5931\u8D25",
|
|
325
|
+
checkNetworkConnection: "\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u5E76\u91CD\u8BD5",
|
|
326
|
+
errorDetails: "\u9519\u8BEF\u8BE6\u60C5:"
|
|
327
|
+
};
|
|
328
|
+
|
|
304
329
|
const zhCN = {
|
|
305
330
|
...common$1,
|
|
306
331
|
...language$1,
|
|
@@ -312,7 +337,8 @@ const zhCN = {
|
|
|
312
337
|
...workflow$1,
|
|
313
338
|
...cli$1,
|
|
314
339
|
...bmad$1,
|
|
315
|
-
...errors$1
|
|
340
|
+
...errors$1,
|
|
341
|
+
...tools$1
|
|
316
342
|
};
|
|
317
343
|
|
|
318
344
|
const common = {
|
|
@@ -330,7 +356,8 @@ const common = {
|
|
|
330
356
|
enterChoice: "Enter your choice, and press enter",
|
|
331
357
|
invalidChoice: "Invalid choice. Please enter a valid option.",
|
|
332
358
|
goodbye: "\u{1F44B} Thanks for using ZCF! Goodbye!",
|
|
333
|
-
returnToMenu: "Return to main menu?"
|
|
359
|
+
returnToMenu: "Return to main menu?",
|
|
360
|
+
back: "Back"
|
|
334
361
|
};
|
|
335
362
|
|
|
336
363
|
const language = {
|
|
@@ -471,6 +498,9 @@ const mcp = {
|
|
|
471
498
|
|
|
472
499
|
const menu = {
|
|
473
500
|
selectFunction: "Select function",
|
|
501
|
+
menuSections: {
|
|
502
|
+
otherTools: "Other Tools"
|
|
503
|
+
},
|
|
474
504
|
menuOptions: {
|
|
475
505
|
fullInit: "Full initialization",
|
|
476
506
|
importWorkflow: "Import workflow",
|
|
@@ -479,6 +509,7 @@ const menu = {
|
|
|
479
509
|
configureModel: "Configure default model",
|
|
480
510
|
configureAiMemory: "Configure Claude global memory",
|
|
481
511
|
configureEnvPermission: "Import recommended environment variables and permissions",
|
|
512
|
+
ccusage: "ccusage",
|
|
482
513
|
installBmad: "Install BMad Method",
|
|
483
514
|
clearCache: "Clear preference cache",
|
|
484
515
|
changeLanguage: "Select display language / \u66F4\u6539\u663E\u793A\u8BED\u8A00",
|
|
@@ -492,6 +523,7 @@ const menu = {
|
|
|
492
523
|
configureModel: "Set default model (opus/sonnet)",
|
|
493
524
|
configureAiMemory: "Configure AI output language and personality",
|
|
494
525
|
configureEnvPermission: "Import privacy protection environment variables and system permissions",
|
|
526
|
+
ccusage: "Claude Code usage analysis",
|
|
495
527
|
installBmad: "AI-driven development methodology framework",
|
|
496
528
|
clearCache: "Clear preference language and other caches",
|
|
497
529
|
changeLanguage: "Change ZCF interface language"
|
|
@@ -605,6 +637,25 @@ const errors = {
|
|
|
605
637
|
failedToApplyPersonality: "Failed to apply personality directive:"
|
|
606
638
|
};
|
|
607
639
|
|
|
640
|
+
const tools = {
|
|
641
|
+
// CCUsage
|
|
642
|
+
runningCcusage: "Running Claude Code usage analysis tool...",
|
|
643
|
+
ccusageDescription: "Analyze token usage and costs - https://github.com/ryoppippi/ccusage",
|
|
644
|
+
selectAnalysisMode: "Select analysis mode:",
|
|
645
|
+
ccusageModes: {
|
|
646
|
+
daily: "Daily usage",
|
|
647
|
+
monthly: "Monthly usage",
|
|
648
|
+
session: "Session statistics",
|
|
649
|
+
blocks: "Block statistics",
|
|
650
|
+
custom: "Custom parameters"
|
|
651
|
+
},
|
|
652
|
+
enterCustomArgs: "Enter custom arguments (e.g., daily --json):",
|
|
653
|
+
pressEnterToContinue: "Press Enter to continue...",
|
|
654
|
+
ccusageFailed: "Failed to run ccusage",
|
|
655
|
+
checkNetworkConnection: "Please check your network connection and try again",
|
|
656
|
+
errorDetails: "Error details:"
|
|
657
|
+
};
|
|
658
|
+
|
|
608
659
|
const en = {
|
|
609
660
|
...common,
|
|
610
661
|
...language,
|
|
@@ -616,7 +667,8 @@ const en = {
|
|
|
616
667
|
...workflow,
|
|
617
668
|
...cli,
|
|
618
669
|
...bmad,
|
|
619
|
-
...errors
|
|
670
|
+
...errors,
|
|
671
|
+
...tools
|
|
620
672
|
};
|
|
621
673
|
|
|
622
674
|
const translations = {
|
|
@@ -2294,4 +2346,4 @@ async function openSettingsJson() {
|
|
|
2294
2346
|
}
|
|
2295
2347
|
}
|
|
2296
2348
|
|
|
2297
|
-
export {
|
|
2349
|
+
export { handleExitPromptError as $, AI_OUTPUT_LANGUAGES as A, backupMcpConfig as B, CLAUDE_DIR as C, mergeMcpServers as D, buildMcpServerConfig as E, fixWindowsMcpConfig as F, addCompletedOnboarding as G, updateZcfConfig as H, I18N as I, readZcfConfig as J, resolveAiOutputLanguage as K, LEGACY_ZCF_CONFIG_FILE as L, MCP_SERVICES as M, configureAiPersonality as N, isWindows as O, selectMcpServices as P, formatApiKeyDisplay as Q, modifyApiConfigPartially as R, SETTINGS_FILE as S, validateApiKey as T, readZcfConfigAsync as U, displayBanner as V, selectScriptLanguage as W, updatePromptOnly as X, selectAndInstallWorkflows as Y, ZCF_CONFIG_FILE as Z, version as _, importRecommendedEnv as a, handleGeneralError as a0, displayBannerWithInfo as a1, 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, isClaudeCodeInstalled as k, installClaudeCode as l, mergeAndCleanPermissions as m, ensureClaudeDir as n, openSettingsJson as o, backupExistingConfig as p, copyConfigFiles as q, configureApi as r, mergeConfigs as s, mergeSettingsFile as t, updateDefaultModel as u, getExistingApiConfig as v, applyAiLanguageDirective as w, getMcpConfigPath as x, readMcpConfig as y, writeMcpConfig as z };
|
package/package.json
CHANGED