ccjk 2.6.2 → 3.0.2
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/chunks/agent.mjs +1412 -0
- package/dist/chunks/api.mjs +7 -7
- package/dist/chunks/auto-updater.mjs +9 -9
- package/dist/chunks/ccr.mjs +4 -4
- package/dist/chunks/ccu.mjs +1 -1
- package/dist/chunks/claude-code-incremental-manager.mjs +6 -6
- package/dist/chunks/codex.mjs +4 -4
- package/dist/chunks/commands2.mjs +5 -5
- package/dist/chunks/commit.mjs +2 -2
- package/dist/chunks/config-consolidator.mjs +2 -2
- package/dist/chunks/config-switch.mjs +6 -6
- package/dist/chunks/config.mjs +1 -1
- package/dist/chunks/config2.mjs +14 -14
- package/dist/chunks/doctor.mjs +3 -3
- package/dist/chunks/features.mjs +12 -12
- package/dist/chunks/help.mjs +35 -35
- package/dist/chunks/index.mjs +11 -11
- package/dist/chunks/init.mjs +21 -21
- package/dist/chunks/interview.mjs +33 -33
- package/dist/chunks/marketplace.mjs +8 -8
- package/dist/chunks/mcp.mjs +8 -8
- package/dist/chunks/menu.mjs +302 -293
- package/dist/chunks/notification.mjs +5 -5
- package/dist/chunks/onboarding.mjs +7 -7
- package/dist/chunks/package.mjs +1 -1
- package/dist/chunks/permission-manager.mjs +3 -3
- package/dist/chunks/plugin.mjs +24 -24
- package/dist/chunks/prompts.mjs +3 -3
- package/dist/chunks/providers.mjs +13 -13
- package/dist/chunks/session.mjs +17 -17
- package/dist/chunks/skill.mjs +304 -0
- package/dist/chunks/skills-sync.mjs +4 -4
- package/dist/chunks/skills.mjs +2 -2
- package/dist/chunks/team.mjs +1 -1
- package/dist/chunks/uninstall.mjs +8 -8
- package/dist/chunks/update.mjs +4 -4
- package/dist/chunks/upgrade-manager.mjs +3 -3
- package/dist/chunks/version-checker.mjs +6 -6
- package/dist/chunks/workflows.mjs +2 -2
- package/dist/cli.mjs +48 -0
- package/dist/index.d.mts +157 -14
- package/dist/index.d.ts +157 -14
- package/dist/index.mjs +4 -4
- package/dist/shared/{ccjk.rLRHmcqD.mjs → ccjk.BQzWKmC3.mjs} +3 -3
- package/dist/shared/{ccjk.uVUeWAt8.mjs → ccjk.BZT_f2go.mjs} +7 -7
- package/dist/shared/{ccjk.-FoZ3zat.mjs → ccjk.BlPCiSHj.mjs} +10 -10
- package/dist/shared/ccjk.DH6cOJsf.mjs +1674 -0
- package/dist/shared/{ccjk.tB4-Y4Qb.mjs → ccjk.DrMygfCF.mjs} +1 -1
- package/dist/shared/ccjk.tJ08-yZt.mjs +179 -0
- package/package.json +1 -1
- package/dist/shared/ccjk.BhKlRJ0h.mjs +0 -114
package/dist/chunks/api.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import ansis from 'ansis';
|
|
2
2
|
import { i18n, format } from './index2.mjs';
|
|
3
|
-
import { S as STATUS,
|
|
4
|
-
import { r as runConfigWizard, t as testApiConnection, d as displayCurrentStatus, q as quickSetup, g as getAllPresets } from '../shared/ccjk
|
|
3
|
+
import { S as STATUS, t as theme } from '../shared/ccjk.tJ08-yZt.mjs';
|
|
4
|
+
import { r as runConfigWizard, t as testApiConnection, d as displayCurrentStatus, q as quickSetup, g as getAllPresets } from '../shared/ccjk.BlPCiSHj.mjs';
|
|
5
5
|
import 'node:fs';
|
|
6
6
|
import 'node:process';
|
|
7
7
|
import 'node:url';
|
|
@@ -18,9 +18,9 @@ import 'node:fs/promises';
|
|
|
18
18
|
function listProviders(lang = "en") {
|
|
19
19
|
const presets = getAllPresets();
|
|
20
20
|
console.log("");
|
|
21
|
-
console.log(
|
|
22
|
-
console.log(
|
|
23
|
-
console.log(
|
|
21
|
+
console.log(theme.primary("\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557"));
|
|
22
|
+
console.log(theme.primary("\u2551") + theme.accent(` ${i18n.t("api:providersTitle")} `.slice(0, 60)) + theme.primary("\u2551"));
|
|
23
|
+
console.log(theme.primary("\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D"));
|
|
24
24
|
console.log("");
|
|
25
25
|
const categories = {
|
|
26
26
|
"official": i18n.t("api:categoryOfficial"),
|
|
@@ -33,12 +33,12 @@ function listProviders(lang = "en") {
|
|
|
33
33
|
const categoryPresets = presets.filter((p) => p.category === category);
|
|
34
34
|
if (categoryPresets.length === 0)
|
|
35
35
|
continue;
|
|
36
|
-
console.log(
|
|
36
|
+
console.log(theme.secondary(` ${label}:`));
|
|
37
37
|
for (const preset of categoryPresets) {
|
|
38
38
|
const name = lang === "zh-CN" ? preset.nameZh : preset.name;
|
|
39
39
|
const desc = lang === "zh-CN" ? preset.descriptionZh : preset.description;
|
|
40
40
|
const keyIcon = preset.requiresApiKey ? "\u{1F511}" : "\u{1F193}";
|
|
41
|
-
console.log(` ${keyIcon} ${ansis.
|
|
41
|
+
console.log(` ${keyIcon} ${ansis.green(preset.id.padEnd(15))} ${name}`);
|
|
42
42
|
console.log(ansis.gray(` ${desc}`));
|
|
43
43
|
}
|
|
44
44
|
console.log("");
|
|
@@ -54,8 +54,8 @@ async function updateCcr(force = false, skipPrompt = false) {
|
|
|
54
54
|
console.log(ansis.yellow(i18n.t("updater:cannotCheckVersion")));
|
|
55
55
|
return false;
|
|
56
56
|
}
|
|
57
|
-
console.log(ansis.
|
|
58
|
-
console.log(ansis.
|
|
57
|
+
console.log(ansis.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
|
|
58
|
+
console.log(ansis.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
|
|
59
59
|
if (!skipPrompt) {
|
|
60
60
|
const confirm = await promptBoolean({
|
|
61
61
|
message: format(i18n.t("updater:confirmUpdate"), { tool: "CCR" }),
|
|
@@ -66,7 +66,7 @@ async function updateCcr(force = false, skipPrompt = false) {
|
|
|
66
66
|
return true;
|
|
67
67
|
}
|
|
68
68
|
} else {
|
|
69
|
-
console.log(ansis.
|
|
69
|
+
console.log(ansis.green(format(i18n.t("updater:autoUpdating"), { tool: "CCR" })));
|
|
70
70
|
}
|
|
71
71
|
const updateSpinner = ora(format(i18n.t("updater:updating"), { tool: "CCR" })).start();
|
|
72
72
|
try {
|
|
@@ -102,8 +102,8 @@ async function updateClaudeCode(force = false, skipPrompt = false) {
|
|
|
102
102
|
console.log(ansis.yellow(i18n.t("updater:cannotCheckVersion")));
|
|
103
103
|
return false;
|
|
104
104
|
}
|
|
105
|
-
console.log(ansis.
|
|
106
|
-
console.log(ansis.
|
|
105
|
+
console.log(ansis.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
|
|
106
|
+
console.log(ansis.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
|
|
107
107
|
if (isBroken) {
|
|
108
108
|
console.log(ansis.yellow(i18n.t("updater:installationBroken")));
|
|
109
109
|
const fixResult = await fixBrokenNpmSymlink();
|
|
@@ -131,7 +131,7 @@ async function updateClaudeCode(force = false, skipPrompt = false) {
|
|
|
131
131
|
return true;
|
|
132
132
|
}
|
|
133
133
|
} else {
|
|
134
|
-
console.log(ansis.
|
|
134
|
+
console.log(ansis.green(format(i18n.t("updater:autoUpdating"), { tool: "Claude Code" })));
|
|
135
135
|
}
|
|
136
136
|
const toolName = isHomebrew ? "Claude Code (Homebrew)" : "Claude Code";
|
|
137
137
|
const updateSpinner = ora(format(i18n.t("updater:updating"), { tool: toolName })).start();
|
|
@@ -199,8 +199,8 @@ async function updateCometixLine(force = false, skipPrompt = false) {
|
|
|
199
199
|
console.log(ansis.yellow(i18n.t("updater:cannotCheckVersion")));
|
|
200
200
|
return false;
|
|
201
201
|
}
|
|
202
|
-
console.log(ansis.
|
|
203
|
-
console.log(ansis.
|
|
202
|
+
console.log(ansis.green(format(i18n.t("updater:currentVersion"), { version: currentVersion || "" })));
|
|
203
|
+
console.log(ansis.green(format(i18n.t("updater:latestVersion"), { version: latestVersion })));
|
|
204
204
|
if (!skipPrompt) {
|
|
205
205
|
const confirm = await promptBoolean({
|
|
206
206
|
message: format(i18n.t("updater:confirmUpdate"), { tool: "CCometixLine" }),
|
|
@@ -211,7 +211,7 @@ async function updateCometixLine(force = false, skipPrompt = false) {
|
|
|
211
211
|
return true;
|
|
212
212
|
}
|
|
213
213
|
} else {
|
|
214
|
-
console.log(ansis.
|
|
214
|
+
console.log(ansis.green(format(i18n.t("updater:autoUpdating"), { tool: "CCometixLine" })));
|
|
215
215
|
}
|
|
216
216
|
const updateSpinner = ora(format(i18n.t("updater:updating"), { tool: "CCometixLine" })).start();
|
|
217
217
|
try {
|
package/dist/chunks/ccr.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { h as handleExitPromptError, a as handleGeneralError } from '../shared/ccjk.
|
|
1
|
+
import { i as displayBannerWithInfo } from '../shared/ccjk.tJ08-yZt.mjs';
|
|
2
|
+
import { h as handleExitPromptError, a as handleGeneralError } from '../shared/ccjk.DrMygfCF.mjs';
|
|
3
3
|
import { s as showCcrMenu, a as showMainMenu } from './menu.mjs';
|
|
4
4
|
import 'ansis';
|
|
5
5
|
import './package.mjs';
|
|
@@ -38,7 +38,7 @@ import 'node:util';
|
|
|
38
38
|
import './auto-updater.mjs';
|
|
39
39
|
import './version-checker.mjs';
|
|
40
40
|
import 'node:path';
|
|
41
|
-
import '../shared/ccjk.
|
|
41
|
+
import '../shared/ccjk.BQzWKmC3.mjs';
|
|
42
42
|
import '../shared/ccjk.Dut3wyoP.mjs';
|
|
43
43
|
import '../shared/ccjk.RR9TS76h.mjs';
|
|
44
44
|
import 'node:stream';
|
|
@@ -53,7 +53,7 @@ import './claude-code-config-manager.mjs';
|
|
|
53
53
|
import './doctor.mjs';
|
|
54
54
|
import './api-providers.mjs';
|
|
55
55
|
import '../shared/ccjk.J8YiPsOw.mjs';
|
|
56
|
-
import '../shared/ccjk.
|
|
56
|
+
import '../shared/ccjk.BZT_f2go.mjs';
|
|
57
57
|
import './notification.mjs';
|
|
58
58
|
import 'node:buffer';
|
|
59
59
|
import '@iarna/toml';
|
package/dist/chunks/ccu.mjs
CHANGED
|
@@ -12,7 +12,7 @@ async function executeCcusage(args = []) {
|
|
|
12
12
|
try {
|
|
13
13
|
const command = "npx";
|
|
14
14
|
const commandArgs = ["ccusage@latest", ...args || []];
|
|
15
|
-
console.log(ansis.
|
|
15
|
+
console.log(ansis.green(i18n.t("tools:runningCcusage")));
|
|
16
16
|
console.log(ansis.gray(`$ npx ccusage@latest ${(args || []).join(" ")}`));
|
|
17
17
|
console.log("");
|
|
18
18
|
await x(command, commandArgs, {
|
|
@@ -3,7 +3,7 @@ import inquirer from 'inquirer';
|
|
|
3
3
|
import { ensureI18nInitialized, i18n } from './index2.mjs';
|
|
4
4
|
import { ClaudeCodeConfigManager } from './claude-code-config-manager.mjs';
|
|
5
5
|
import { a as addNumbersToChoices, p as promptBoolean } from '../shared/ccjk.DhBeLRzf.mjs';
|
|
6
|
-
import { v as validateApiKey } from '../shared/ccjk.
|
|
6
|
+
import { v as validateApiKey } from '../shared/ccjk.BQzWKmC3.mjs';
|
|
7
7
|
import 'node:fs';
|
|
8
8
|
import 'node:process';
|
|
9
9
|
import 'node:url';
|
|
@@ -47,7 +47,7 @@ async function configureIncrementalManagement() {
|
|
|
47
47
|
}
|
|
48
48
|
const profiles = Object.values(config.profiles);
|
|
49
49
|
const currentProfile = config.currentProfileId ? config.profiles[config.currentProfileId] : null;
|
|
50
|
-
console.log(ansis.
|
|
50
|
+
console.log(ansis.green(i18n.t("multi-config:incrementalManagementTitle")));
|
|
51
51
|
console.log(ansis.gray(i18n.t("multi-config:currentProfileCount", { count: profiles.length })));
|
|
52
52
|
if (currentProfile) {
|
|
53
53
|
console.log(ansis.gray(i18n.t("multi-config:currentDefaultProfile", { profile: currentProfile.name })));
|
|
@@ -91,7 +91,7 @@ async function promptContinueAdding() {
|
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
93
|
async function handleAddProfile() {
|
|
94
|
-
console.log(ansis.
|
|
94
|
+
console.log(ansis.green(`
|
|
95
95
|
${i18n.t("multi-config:addingNewProfile")}`));
|
|
96
96
|
const { getApiProviders } = await import('./api-providers.mjs');
|
|
97
97
|
const providers = getApiProviders("claude-code");
|
|
@@ -309,7 +309,7 @@ async function handleEditProfile(profiles) {
|
|
|
309
309
|
console.log(ansis.red(i18n.t("multi-config:profileNotFound")));
|
|
310
310
|
return;
|
|
311
311
|
}
|
|
312
|
-
console.log(ansis.
|
|
312
|
+
console.log(ansis.green(`
|
|
313
313
|
${i18n.t("multi-config:editingProfile", { name: selectedProfile.name })}`));
|
|
314
314
|
const answers = await inquirer.prompt([
|
|
315
315
|
{
|
|
@@ -432,7 +432,7 @@ async function handleCopyProfile(profiles) {
|
|
|
432
432
|
console.log(ansis.red(i18n.t("multi-config:profileNotFound")));
|
|
433
433
|
return;
|
|
434
434
|
}
|
|
435
|
-
console.log(ansis.
|
|
435
|
+
console.log(ansis.green(`
|
|
436
436
|
${i18n.t("multi-config:copyingProfile", { name: selectedProfile.name })}`));
|
|
437
437
|
const copiedName = `${selectedProfile.name}-copy`;
|
|
438
438
|
const questions = [
|
|
@@ -595,7 +595,7 @@ async function handleDeleteProfile(profiles) {
|
|
|
595
595
|
if (result.newCurrentProfileId) {
|
|
596
596
|
const newProfile = ClaudeCodeConfigManager.getProfileById(result.newCurrentProfileId);
|
|
597
597
|
if (newProfile) {
|
|
598
|
-
console.log(ansis.
|
|
598
|
+
console.log(ansis.green(i18n.t("multi-config:newDefaultProfile", { profile: newProfile.name })));
|
|
599
599
|
await ClaudeCodeConfigManager.applyProfileSettings(newProfile);
|
|
600
600
|
}
|
|
601
601
|
}
|
package/dist/chunks/codex.mjs
CHANGED
|
@@ -493,7 +493,7 @@ async function detectCodexInstallMethod() {
|
|
|
493
493
|
}
|
|
494
494
|
async function executeCodexInstallation(isUpdate, skipMethodSelection = false) {
|
|
495
495
|
if (isUpdate) {
|
|
496
|
-
console.log(ansis.
|
|
496
|
+
console.log(ansis.green(i18n.t("codex:updatingCli")));
|
|
497
497
|
const installMethod = await detectCodexInstallMethod();
|
|
498
498
|
if (installMethod === "homebrew") {
|
|
499
499
|
console.log(ansis.gray(i18n.t("codex:detectedHomebrew")));
|
|
@@ -1710,8 +1710,8 @@ async function runCodexUpdate(force = false, skipPrompt = false) {
|
|
|
1710
1710
|
console.log(ansis.yellow(i18n.t("codex:cannotCheckVersion")));
|
|
1711
1711
|
return false;
|
|
1712
1712
|
}
|
|
1713
|
-
console.log(ansis.
|
|
1714
|
-
console.log(ansis.
|
|
1713
|
+
console.log(ansis.green(format(i18n.t("codex:currentVersion"), { version: currentVersion || "" })));
|
|
1714
|
+
console.log(ansis.green(format(i18n.t("codex:latestVersion"), { version: latestVersion })));
|
|
1715
1715
|
if (!skipPrompt) {
|
|
1716
1716
|
const confirm = await promptBoolean({
|
|
1717
1717
|
message: i18n.t("codex:confirmUpdate"),
|
|
@@ -1722,7 +1722,7 @@ async function runCodexUpdate(force = false, skipPrompt = false) {
|
|
|
1722
1722
|
return true;
|
|
1723
1723
|
}
|
|
1724
1724
|
} else {
|
|
1725
|
-
console.log(ansis.
|
|
1725
|
+
console.log(ansis.green(i18n.t("codex:autoUpdating")));
|
|
1726
1726
|
}
|
|
1727
1727
|
const updateSpinner = ora(i18n.t("codex:updating")).start();
|
|
1728
1728
|
try {
|
|
@@ -12,7 +12,7 @@ import 'pathe';
|
|
|
12
12
|
const execAsync = promisify(exec);
|
|
13
13
|
async function runCcrUi(apiKey) {
|
|
14
14
|
ensureI18nInitialized();
|
|
15
|
-
console.log(ansis.
|
|
15
|
+
console.log(ansis.green(`
|
|
16
16
|
\u{1F5A5}\uFE0F ${i18n.t("ccr:startingCcrUi")}`));
|
|
17
17
|
if (apiKey) {
|
|
18
18
|
console.log(ansis.bold.green(`
|
|
@@ -34,7 +34,7 @@ async function runCcrUi(apiKey) {
|
|
|
34
34
|
}
|
|
35
35
|
async function runCcrStatus() {
|
|
36
36
|
ensureI18nInitialized();
|
|
37
|
-
console.log(ansis.
|
|
37
|
+
console.log(ansis.green(`
|
|
38
38
|
\u{1F4CA} ${i18n.t("ccr:checkingCcrStatus")}`));
|
|
39
39
|
try {
|
|
40
40
|
const { stdout, stderr } = await execAsync("ccr status");
|
|
@@ -52,7 +52,7 @@ ${ansis.bold(i18n.t("ccr:ccrStatusTitle"))}`);
|
|
|
52
52
|
}
|
|
53
53
|
async function runCcrRestart() {
|
|
54
54
|
ensureI18nInitialized();
|
|
55
|
-
console.log(ansis.
|
|
55
|
+
console.log(ansis.green(`
|
|
56
56
|
\u{1F504} ${i18n.t("ccr:restartingCcr")}`));
|
|
57
57
|
try {
|
|
58
58
|
const { stdout, stderr } = await execAsync("ccr restart");
|
|
@@ -68,7 +68,7 @@ async function runCcrRestart() {
|
|
|
68
68
|
}
|
|
69
69
|
async function runCcrStart() {
|
|
70
70
|
ensureI18nInitialized();
|
|
71
|
-
console.log(ansis.
|
|
71
|
+
console.log(ansis.green(`
|
|
72
72
|
\u25B6\uFE0F ${i18n.t("ccr:startingCcr")}`));
|
|
73
73
|
try {
|
|
74
74
|
const { stdout, stderr } = await execAsync("ccr start");
|
|
@@ -91,7 +91,7 @@ async function runCcrStart() {
|
|
|
91
91
|
}
|
|
92
92
|
async function runCcrStop() {
|
|
93
93
|
ensureI18nInitialized();
|
|
94
|
-
console.log(ansis.
|
|
94
|
+
console.log(ansis.green(`
|
|
95
95
|
\u23F9\uFE0F ${i18n.t("ccr:stoppingCcr")}`));
|
|
96
96
|
try {
|
|
97
97
|
const { stdout, stderr } = await execAsync("ccr stop");
|
package/dist/chunks/commit.mjs
CHANGED
|
@@ -70,7 +70,7 @@ async function commit(options = {}) {
|
|
|
70
70
|
console.log(ansis.yellow("No changes to commit"));
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
|
-
console.log(ansis.
|
|
73
|
+
console.log(ansis.green("\n\u{1F4DD} Changes detected:"));
|
|
74
74
|
if (status.staged.length > 0) {
|
|
75
75
|
console.log(ansis.green(` Staged: ${status.staged.length} files`));
|
|
76
76
|
status.staged.forEach((f) => console.log(ansis.gray(` ${f}`)));
|
|
@@ -89,7 +89,7 @@ async function commit(options = {}) {
|
|
|
89
89
|
message = options.message;
|
|
90
90
|
} else if (options.auto) {
|
|
91
91
|
message = await generateCommitMessage(allFiles);
|
|
92
|
-
console.log(ansis.
|
|
92
|
+
console.log(ansis.green("\n\u{1F4AC} Generated commit message:"));
|
|
93
93
|
console.log(ansis.white(message));
|
|
94
94
|
} else {
|
|
95
95
|
const suggested = await generateCommitMessage(allFiles);
|
|
@@ -5,7 +5,7 @@ import ansis from 'ansis';
|
|
|
5
5
|
import dayjs from 'dayjs';
|
|
6
6
|
import { join } from 'pathe';
|
|
7
7
|
import { SETTINGS_FILE, ClAUDE_CONFIG_FILE, CLAUDE_VSC_CONFIG_FILE, CLAUDE_DIR, CCJK_CONFIG_DIR } from './constants.mjs';
|
|
8
|
-
import { S as STATUS } from '../shared/ccjk.
|
|
8
|
+
import { S as STATUS } from '../shared/ccjk.tJ08-yZt.mjs';
|
|
9
9
|
import { writeFileAtomic } from './fs-operations.mjs';
|
|
10
10
|
import './index2.mjs';
|
|
11
11
|
import 'node:url';
|
|
@@ -240,7 +240,7 @@ function removeRedundantConfigs(configs, keepPath = SETTINGS_FILE) {
|
|
|
240
240
|
}
|
|
241
241
|
function displayConfigScan(configs) {
|
|
242
242
|
const existingConfigs = configs.filter((c) => c.exists);
|
|
243
|
-
console.log(ansis.
|
|
243
|
+
console.log(ansis.green("\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 Config Files Detected \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n"));
|
|
244
244
|
if (existingConfigs.length === 0) {
|
|
245
245
|
console.log(STATUS.info("No config files found"));
|
|
246
246
|
return;
|
|
@@ -6,7 +6,7 @@ import { ensureI18nInitialized, i18n } from './index2.mjs';
|
|
|
6
6
|
import { readZcfConfig } from './ccjk-config.mjs';
|
|
7
7
|
import { ClaudeCodeConfigManager } from './claude-code-config-manager.mjs';
|
|
8
8
|
import { G as switchCodexProvider, q as listCodexProviders, r as readCodexConfig, s as switchToOfficialLogin, H as switchToProvider } from './codex.mjs';
|
|
9
|
-
import { a as handleGeneralError } from '../shared/ccjk.
|
|
9
|
+
import { a as handleGeneralError } from '../shared/ccjk.DrMygfCF.mjs';
|
|
10
10
|
import { a as addNumbersToChoices } from '../shared/ccjk.DhBeLRzf.mjs';
|
|
11
11
|
import 'node:os';
|
|
12
12
|
import 'pathe';
|
|
@@ -81,7 +81,7 @@ async function listCodexProvidersWithDisplay() {
|
|
|
81
81
|
console.log(ansis.bold(i18n.t("codex:listProvidersTitle")));
|
|
82
82
|
console.log();
|
|
83
83
|
if (currentProvider && !isCommented) {
|
|
84
|
-
console.log(ansis.
|
|
84
|
+
console.log(ansis.green(i18n.t("codex:currentProvider", { provider: currentProvider })));
|
|
85
85
|
console.log();
|
|
86
86
|
}
|
|
87
87
|
providers.forEach((provider) => {
|
|
@@ -89,7 +89,7 @@ async function listCodexProvidersWithDisplay() {
|
|
|
89
89
|
const status = isCurrent ? ansis.green("\u25CF ") : " ";
|
|
90
90
|
const current = isCurrent ? ansis.yellow(` (${i18n.t("common:current")})`) : "";
|
|
91
91
|
console.log(`${status}${ansis.white(provider.name)}${current}`);
|
|
92
|
-
console.log(` ${ansis.
|
|
92
|
+
console.log(` ${ansis.green(`ID: ${provider.id}`)} ${ansis.gray(`(${provider.baseUrl})`)}`);
|
|
93
93
|
if (provider.tempEnvKey) {
|
|
94
94
|
console.log(` ${ansis.gray(`Env: ${provider.tempEnvKey}`)}`);
|
|
95
95
|
}
|
|
@@ -110,7 +110,7 @@ async function listClaudeCodeProfiles() {
|
|
|
110
110
|
const status = isCurrent ? ansis.green("\u25CF ") : " ";
|
|
111
111
|
const current = isCurrent ? ansis.yellow(i18n.t("common:current")) : "";
|
|
112
112
|
console.log(`${status}${ansis.white(profile.name)}${current}`);
|
|
113
|
-
console.log(` ${ansis.
|
|
113
|
+
console.log(` ${ansis.green(`ID: ${profile.id}`)} ${ansis.gray(`(${profile.authType})`)}`);
|
|
114
114
|
console.log();
|
|
115
115
|
});
|
|
116
116
|
}
|
|
@@ -235,7 +235,7 @@ async function handleClaudeCodeInteractiveSwitch() {
|
|
|
235
235
|
await handleClaudeCodeDirectSwitch(selectedConfig);
|
|
236
236
|
} catch (error) {
|
|
237
237
|
if (error.name === "ExitPromptError") {
|
|
238
|
-
console.log(ansis.
|
|
238
|
+
console.log(ansis.green(`
|
|
239
239
|
${i18n.t("common:goodbye")}`));
|
|
240
240
|
return;
|
|
241
241
|
}
|
|
@@ -290,7 +290,7 @@ async function handleCodexInteractiveSwitch() {
|
|
|
290
290
|
}
|
|
291
291
|
} catch (error) {
|
|
292
292
|
if (error.name === "ExitPromptError") {
|
|
293
|
-
console.log(ansis.
|
|
293
|
+
console.log(ansis.green(`
|
|
294
294
|
${i18n.t("common:goodbye")}`));
|
|
295
295
|
return;
|
|
296
296
|
}
|
package/dist/chunks/config.mjs
CHANGED
|
@@ -526,7 +526,7 @@ async function promptApiConfigurationAction() {
|
|
|
526
526
|
return null;
|
|
527
527
|
}
|
|
528
528
|
console.log(`
|
|
529
|
-
${ansis.
|
|
529
|
+
${ansis.green(`\u2139 ${i18n.t("api:existingApiConfig")}`)}`);
|
|
530
530
|
console.log(ansis.gray(` ${i18n.t("api:apiConfigUrl")}: ${existingConfig.url || "N/A"}`));
|
|
531
531
|
console.log(ansis.gray(` ${i18n.t("api:apiConfigKey")}: ${existingConfig.key ? `***${existingConfig.key.slice(-4)}` : "N/A"}`));
|
|
532
532
|
console.log(ansis.gray(` ${i18n.t("api:apiConfigAuthType")}: ${existingConfig.authType || "N/A"}
|
package/dist/chunks/config2.mjs
CHANGED
|
@@ -218,13 +218,13 @@ async function setProvider(providerId, options = {}) {
|
|
|
218
218
|
console.log(ansis.green(isZh ? `\u2705 \u5DF2\u5207\u6362\u5230\u4F9B\u5E94\u5546: ${provider.name}` : `\u2705 Switched to provider: ${provider.name}`));
|
|
219
219
|
console.log("");
|
|
220
220
|
console.log(ansis.bold(isZh ? "\u914D\u7F6E\u8BE6\u60C5:" : "Configuration details:"));
|
|
221
|
-
console.log(` ${ansis.
|
|
222
|
-
console.log(` ${ansis.
|
|
221
|
+
console.log(` ${ansis.green(isZh ? "\u4F9B\u5E94\u5546" : "Provider")}: ${provider.name}`);
|
|
222
|
+
console.log(` ${ansis.green(isZh ? "\u63A5\u53E3\u5730\u5740" : "Base URL")}: ${config.baseUrl}`);
|
|
223
223
|
if (config.model) {
|
|
224
|
-
console.log(` ${ansis.
|
|
224
|
+
console.log(` ${ansis.green(isZh ? "\u4E3B\u6A21\u578B" : "Primary Model")}: ${config.model}`);
|
|
225
225
|
}
|
|
226
226
|
if (config.fastModel) {
|
|
227
|
-
console.log(` ${ansis.
|
|
227
|
+
console.log(` ${ansis.green(isZh ? "\u5FEB\u901F\u6A21\u578B" : "Fast Model")}: ${config.fastModel}`);
|
|
228
228
|
}
|
|
229
229
|
console.log("");
|
|
230
230
|
console.log(ansis.dim(isZh ? "\u{1F4A1} \u63D0\u793A: \u8BF7\u786E\u4FDD\u5DF2\u8BBE\u7F6E\u6B63\u786E\u7684 API \u5BC6\u94A5\u6216\u8BA4\u8BC1\u4EE4\u724C" : "\u{1F4A1} Tip: Make sure to set the correct API key or auth token"));
|
|
@@ -281,11 +281,11 @@ async function configCommand(action, args, options = {}) {
|
|
|
281
281
|
console.log("");
|
|
282
282
|
console.log(ansis.bold.cyan(isZh ? "\u2699\uFE0F \u914D\u7F6E\u7BA1\u7406\u547D\u4EE4" : "\u2699\uFE0F Configuration Management Commands"));
|
|
283
283
|
console.log("");
|
|
284
|
-
console.log(` ${ansis.
|
|
285
|
-
console.log(` ${ansis.
|
|
286
|
-
console.log(` ${ansis.
|
|
287
|
-
console.log(` ${ansis.
|
|
288
|
-
console.log(` ${ansis.
|
|
284
|
+
console.log(` ${ansis.green("ccjk config get <key>")} ${isZh ? "\u83B7\u53D6\u914D\u7F6E\u9879" : "Get configuration value"}`);
|
|
285
|
+
console.log(` ${ansis.green("ccjk config set <key> <value>")} ${isZh ? "\u8BBE\u7F6E\u914D\u7F6E\u9879" : "Set configuration value"}`);
|
|
286
|
+
console.log(` ${ansis.green("ccjk config list")} ${isZh ? "\u5217\u51FA\u6240\u6709\u914D\u7F6E" : "List all configuration"}`);
|
|
287
|
+
console.log(` ${ansis.green("ccjk config reset")} ${isZh ? "\u91CD\u7F6E\u914D\u7F6E" : "Reset configuration"}`);
|
|
288
|
+
console.log(` ${ansis.green("ccjk config provider <id>")} ${isZh ? "\u5207\u6362\u4F9B\u5E94\u5546" : "Switch provider"}`);
|
|
289
289
|
console.log("");
|
|
290
290
|
console.log(ansis.bold(isZh ? "\u9009\u9879" : "Options"));
|
|
291
291
|
console.log(` ${ansis.green("--code-type, -T")} <type> ${isZh ? "\u4EE3\u7801\u5DE5\u5177\u7C7B\u578B (claude-code, codex)" : "Code tool type (claude-code, codex)"}`);
|
|
@@ -344,7 +344,7 @@ function displayValue(value, indent) {
|
|
|
344
344
|
if (value === null) {
|
|
345
345
|
console.log(`${prefix}${ansis.dim("null")}`);
|
|
346
346
|
} else if (typeof value === "boolean") {
|
|
347
|
-
console.log(`${prefix}${ansis.
|
|
347
|
+
console.log(`${prefix}${ansis.green(value.toString())}`);
|
|
348
348
|
} else if (typeof value === "number") {
|
|
349
349
|
console.log(`${prefix}${ansis.yellow(value.toString())}`);
|
|
350
350
|
} else if (typeof value === "string") {
|
|
@@ -370,9 +370,9 @@ function displayConfigSection(title, data, _isZh) {
|
|
|
370
370
|
for (const [key, value] of Object.entries(data)) {
|
|
371
371
|
if (value !== void 0) {
|
|
372
372
|
if (Array.isArray(value)) {
|
|
373
|
-
console.log(` ${ansis.
|
|
373
|
+
console.log(` ${ansis.green(key)}: ${value.join(", ")}`);
|
|
374
374
|
} else {
|
|
375
|
-
console.log(` ${ansis.
|
|
375
|
+
console.log(` ${ansis.green(key)}: ${value}`);
|
|
376
376
|
}
|
|
377
377
|
}
|
|
378
378
|
}
|
|
@@ -407,7 +407,7 @@ async function editConfig(_options = {}) {
|
|
|
407
407
|
const isZh = i18n.language === "zh-CN";
|
|
408
408
|
const configPath = getClaudeConfigPath();
|
|
409
409
|
const editor = process__default.env.EDITOR || process__default.env.VISUAL || "vi";
|
|
410
|
-
console.log(ansis.
|
|
410
|
+
console.log(ansis.green(isZh ? `\u{1F4DD} \u6B63\u5728\u6253\u5F00\u914D\u7F6E\u6587\u4EF6: ${configPath}` : `\u{1F4DD} Opening config file: ${configPath}`));
|
|
411
411
|
const { spawn } = await import('node:child_process');
|
|
412
412
|
const child = spawn(editor, [configPath], { stdio: "inherit" });
|
|
413
413
|
child.on("exit", (code) => {
|
|
@@ -418,7 +418,7 @@ async function editConfig(_options = {}) {
|
|
|
418
418
|
}
|
|
419
419
|
async function validateConfig(_options = {}) {
|
|
420
420
|
const isZh = i18n.language === "zh-CN";
|
|
421
|
-
console.log(ansis.
|
|
421
|
+
console.log(ansis.green(isZh ? "\u{1F50D} \u6B63\u5728\u9A8C\u8BC1\u914D\u7F6E..." : "\u{1F50D} Validating configuration..."));
|
|
422
422
|
console.log("");
|
|
423
423
|
const config = readClaudeConfig();
|
|
424
424
|
const errors = [];
|
package/dist/chunks/doctor.mjs
CHANGED
|
@@ -11,7 +11,7 @@ import { P as ProviderHealthMonitor } from '../shared/ccjk.J8YiPsOw.mjs';
|
|
|
11
11
|
import { platform, userInfo, homedir } from 'node:os';
|
|
12
12
|
import ora from 'ora';
|
|
13
13
|
import { exec } from 'tinyexec';
|
|
14
|
-
import { S as STATUS } from '../shared/ccjk.
|
|
14
|
+
import { S as STATUS } from '../shared/ccjk.tJ08-yZt.mjs';
|
|
15
15
|
import { writeFileAtomic } from './fs-operations.mjs';
|
|
16
16
|
import 'node:url';
|
|
17
17
|
import 'i18next';
|
|
@@ -436,7 +436,7 @@ async function runWorkspaceCheck(targetDir) {
|
|
|
436
436
|
};
|
|
437
437
|
}
|
|
438
438
|
function displayWorkspaceReport(report) {
|
|
439
|
-
console.log(ansis.
|
|
439
|
+
console.log(ansis.green(`
|
|
440
440
|
\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 ${t("workspace:title")} \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550
|
|
441
441
|
`));
|
|
442
442
|
console.log(ansis.white.bold(`${t("workspace:currentDir")}: ${ansis.yellow(report.cwd)}
|
|
@@ -527,7 +527,7 @@ async function runWorkspaceWizard(targetDir) {
|
|
|
527
527
|
}
|
|
528
528
|
}
|
|
529
529
|
console.log("");
|
|
530
|
-
console.log(ansis.
|
|
530
|
+
console.log(ansis.green(t("workspace:wizard.verifying")));
|
|
531
531
|
const newReport = await runWorkspaceCheck(targetDir);
|
|
532
532
|
if (newReport.isValid) {
|
|
533
533
|
console.log(STATUS.success(t("workspace:wizard.allFixed")));
|
package/dist/chunks/features.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import { ensureI18nInitialized, i18n, changeLanguage } from './index2.mjs';
|
|
|
6
6
|
import { updateZcfConfig, readZcfConfig } from './ccjk-config.mjs';
|
|
7
7
|
import { q as isCcrInstalled, t as installCcr, E as setupCcrConfiguration } from './init.mjs';
|
|
8
8
|
import { y as applyAiLanguageDirective, v as getExistingModelConfig, u as updateCustomModel, q as updateDefaultModel, r as readMcpConfig, f as fixWindowsMcpConfig, w as writeMcpConfig, b as backupMcpConfig, d as buildMcpServerConfig, a as mergeMcpServers, x as getExistingApiConfig, A as promptApiConfigurationAction, o as configureApi, z as switchToOfficialLogin } from './config.mjs';
|
|
9
|
-
import { a as configureOutputStyle, m as modifyApiConfigPartially, v as validateApiKey, f as formatApiKeyDisplay } from '../shared/ccjk.
|
|
9
|
+
import { a as configureOutputStyle, m as modifyApiConfigPartially, v as validateApiKey, f as formatApiKeyDisplay } from '../shared/ccjk.BQzWKmC3.mjs';
|
|
10
10
|
import { isWindows } from './platform.mjs';
|
|
11
11
|
import { a as addNumbersToChoices, p as promptBoolean } from '../shared/ccjk.DhBeLRzf.mjs';
|
|
12
12
|
import { o as openSettingsJson, a as importRecommendedPermissions, i as importRecommendedEnv } from '../shared/ccjk.Dut3wyoP.mjs';
|
|
@@ -31,13 +31,13 @@ import 'i18next-fs-backend';
|
|
|
31
31
|
import 'inquirer-toggle';
|
|
32
32
|
import 'node:child_process';
|
|
33
33
|
import './workflows2.mjs';
|
|
34
|
-
import '../shared/ccjk.
|
|
34
|
+
import '../shared/ccjk.tJ08-yZt.mjs';
|
|
35
35
|
import 'node:util';
|
|
36
36
|
import './auto-updater.mjs';
|
|
37
37
|
import './version-checker.mjs';
|
|
38
38
|
import 'node:path';
|
|
39
39
|
import '../shared/ccjk.CUdzQluX.mjs';
|
|
40
|
-
import '../shared/ccjk.
|
|
40
|
+
import '../shared/ccjk.DrMygfCF.mjs';
|
|
41
41
|
|
|
42
42
|
async function handleCancellation() {
|
|
43
43
|
ensureI18nInitialized();
|
|
@@ -252,7 +252,7 @@ async function configureDefaultModelFeature() {
|
|
|
252
252
|
const existingModel = getExistingModelConfig();
|
|
253
253
|
if (existingModel) {
|
|
254
254
|
console.log(`
|
|
255
|
-
${ansis.
|
|
255
|
+
${ansis.green(`\u2139 ${i18n.t("configuration:existingModelConfig") || "Existing model configuration"}`)}`);
|
|
256
256
|
const modelDisplay = existingModel === "default" ? i18n.t("configuration:defaultModelOption") || "Default (Let Claude Code choose)" : existingModel.charAt(0).toUpperCase() + existingModel.slice(1);
|
|
257
257
|
console.log(ansis.gray(` ${i18n.t("configuration:currentModel") || "Current model"}: ${modelDisplay}
|
|
258
258
|
`));
|
|
@@ -382,7 +382,7 @@ async function configureAiMemoryFeature() {
|
|
|
382
382
|
switch (option) {
|
|
383
383
|
case "viewGlobalClaudeMd": {
|
|
384
384
|
if (existsSync(globalClaudeMdPath)) {
|
|
385
|
-
console.log(ansis.
|
|
385
|
+
console.log(ansis.green.bold(`
|
|
386
386
|
\u{1F4C4} ${isZh ? "\u5168\u5C40 CLAUDE.md \u5185\u5BB9" : "Global CLAUDE.md Content"}:`));
|
|
387
387
|
console.log(ansis.dim("\u2500".repeat(60)));
|
|
388
388
|
const content = readFileSync(globalClaudeMdPath, "utf-8");
|
|
@@ -404,7 +404,7 @@ async function configureAiMemoryFeature() {
|
|
|
404
404
|
foundPath = localClaudeMdPath;
|
|
405
405
|
}
|
|
406
406
|
if (foundPath) {
|
|
407
|
-
console.log(ansis.
|
|
407
|
+
console.log(ansis.green.bold(`
|
|
408
408
|
\u{1F4C1} ${isZh ? "\u9879\u76EE CLAUDE.md \u5185\u5BB9" : "Project CLAUDE.md Content"}:`));
|
|
409
409
|
console.log(ansis.dim("\u2500".repeat(60)));
|
|
410
410
|
const content = readFileSync(foundPath, "utf-8");
|
|
@@ -423,7 +423,7 @@ async function configureAiMemoryFeature() {
|
|
|
423
423
|
case "viewPostmortem": {
|
|
424
424
|
const postmortemDir = join(cwd, ".postmortem");
|
|
425
425
|
if (existsSync(postmortemDir)) {
|
|
426
|
-
console.log(ansis.
|
|
426
|
+
console.log(ansis.green.bold(`
|
|
427
427
|
\u{1F52C} ${isZh ? "Postmortem \u62A5\u544A" : "Postmortem Reports"}:`));
|
|
428
428
|
console.log(ansis.dim("\u2500".repeat(60)));
|
|
429
429
|
const { readdirSync } = await import('node:fs');
|
|
@@ -474,7 +474,7 @@ ${isZh ? "\u76EE\u5F55" : "Directory"}: ${postmortemDir}`));
|
|
|
474
474
|
`);
|
|
475
475
|
console.log(ansis.green(`\u2705 ${isZh ? "\u5DF2\u521B\u5EFA\u5168\u5C40 CLAUDE.md" : "Created global CLAUDE.md"}`));
|
|
476
476
|
}
|
|
477
|
-
console.log(ansis.
|
|
477
|
+
console.log(ansis.green(`
|
|
478
478
|
\u{1F4DD} ${isZh ? "\u6B63\u5728\u6253\u5F00\u7F16\u8F91\u5668..." : "Opening editor..."}`));
|
|
479
479
|
console.log(ansis.gray(`${isZh ? "\u7F16\u8F91\u5668" : "Editor"}: ${editor}`));
|
|
480
480
|
console.log(ansis.gray(`${isZh ? "\u6587\u4EF6" : "File"}: ${globalClaudeMdPath}`));
|
|
@@ -494,7 +494,7 @@ ${isZh ? "\u76EE\u5F55" : "Directory"}: ${postmortemDir}`));
|
|
|
494
494
|
if (existingLang) {
|
|
495
495
|
console.log(
|
|
496
496
|
`
|
|
497
|
-
${ansis.
|
|
497
|
+
${ansis.green(`\u2139 ${i18n.t("configuration:existingLanguageConfig") || "Existing AI output language configuration"}`)}`
|
|
498
498
|
);
|
|
499
499
|
console.log(ansis.gray(` ${i18n.t("configuration:currentLanguage") || "Current language"}: ${existingLang}
|
|
500
500
|
`));
|
|
@@ -549,7 +549,7 @@ async function configureCodexDefaultModelFeature() {
|
|
|
549
549
|
const currentModel = existingConfig?.model;
|
|
550
550
|
if (currentModel) {
|
|
551
551
|
console.log(`
|
|
552
|
-
${ansis.
|
|
552
|
+
${ansis.green(`\u2139 ${i18n.t("configuration:existingModelConfig") || "Existing model configuration"}`)}`);
|
|
553
553
|
const modelDisplay = currentModel === "gpt-5-codex" ? "GPT-5-Codex" : currentModel === "gpt-5" ? "GPT-5" : currentModel.charAt(0).toUpperCase() + currentModel.slice(1);
|
|
554
554
|
console.log(ansis.gray(` ${i18n.t("configuration:currentModel") || "Current model"}: ${modelDisplay}
|
|
555
555
|
`));
|
|
@@ -631,7 +631,7 @@ async function configureCodexAiMemoryFeature() {
|
|
|
631
631
|
if (existingLang) {
|
|
632
632
|
console.log(
|
|
633
633
|
`
|
|
634
|
-
${ansis.
|
|
634
|
+
${ansis.green(`\u2139 ${i18n.t("configuration:existingLanguageConfig") || "Existing AI output language configuration"}`)}`
|
|
635
635
|
);
|
|
636
636
|
console.log(ansis.gray(` ${i18n.t("configuration:currentLanguage") || "Current language"}: ${existingLang}
|
|
637
637
|
`));
|
|
@@ -788,7 +788,7 @@ async function configureEnvPermissionFeature() {
|
|
|
788
788
|
console.log(ansis.green(`\u2705 ${i18n.t("configuration:permissionsImportSuccess") || "Permissions imported"}`));
|
|
789
789
|
break;
|
|
790
790
|
case "open":
|
|
791
|
-
console.log(ansis.
|
|
791
|
+
console.log(ansis.green(i18n.t("configuration:openingSettingsJson") || "Opening settings.json..."));
|
|
792
792
|
await openSettingsJson();
|
|
793
793
|
break;
|
|
794
794
|
}
|