ccjk 15.11.0 → 15.11.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/commands/menu.js +54 -18
- package/dist/commands/menu.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/menu.js
CHANGED
|
@@ -18,18 +18,18 @@ import { workflowRunCommand } from './workflow.js';
|
|
|
18
18
|
import { collectStatus, renderBanner, renderStatusBar } from '../core/banner.js';
|
|
19
19
|
const GROUPS = [
|
|
20
20
|
{
|
|
21
|
-
title: '
|
|
21
|
+
title: '核心',
|
|
22
22
|
items: [
|
|
23
|
-
{ label: '
|
|
24
|
-
{ label: '
|
|
23
|
+
{ label: '配置 API(init)', hint: '写入 settings.json,自动存为 profile', run: () => initCommand() },
|
|
24
|
+
{ label: '切换 Profile', hint: '在已配过的多个 API 之间一键切换', run: () => profileUseCommand(undefined) },
|
|
25
|
+
{ label: '权限档位', hint: 'safe / standard / yolo(同步三个工具)', run: () => permsCommand(undefined) },
|
|
25
26
|
],
|
|
26
27
|
},
|
|
27
28
|
{
|
|
28
|
-
title: '
|
|
29
|
+
title: '进阶用法',
|
|
29
30
|
items: [
|
|
30
|
-
{ label: '
|
|
31
|
-
{ label: '
|
|
32
|
-
{ label: '权限档位', hint: 'safe / standard / yolo(同步 3 工具)', run: () => permsCommand(undefined) },
|
|
31
|
+
{ label: '运行工作流', hint: '一组命令一键跑(starter / dev-ready / ...)', run: () => workflowRunCommand(undefined) },
|
|
32
|
+
{ label: '切换对话模式', hint: 'code / chat / fast / deep(thinking + effort)', run: () => modeUseCommand(undefined) },
|
|
33
33
|
],
|
|
34
34
|
},
|
|
35
35
|
{
|
|
@@ -43,20 +43,47 @@ const GROUPS = [
|
|
|
43
43
|
{
|
|
44
44
|
title: '维护与诊断',
|
|
45
45
|
items: [
|
|
46
|
-
{ label: '
|
|
46
|
+
{ label: '更新与检测', hint: '体检 / 版本 / 安装 / 升级 / 检测(合并入口)', run: () => maintenanceSubMenu() },
|
|
47
47
|
{ label: '从备份还原', hint: '回滚 settings.json / config.toml', run: () => rollbackCommand() },
|
|
48
|
-
{ label: '查看版本 / 检查更新', hint: '本地 + npm latest', run: () => versionCommand({ checkUpdates: true }) },
|
|
49
|
-
{ label: '安装代码工具', hint: 'Clavue / Claude Code / Codex', run: () => installCommand(undefined) },
|
|
50
|
-
{ label: '更新代码工具', hint: '升级到最新版', run: () => updateCommand(undefined) },
|
|
51
|
-
{ label: '检测已安装的工具', hint: '看哪些已装哪些没装', run: async () => detectCommand() },
|
|
52
48
|
],
|
|
53
49
|
},
|
|
54
50
|
];
|
|
55
51
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
52
|
+
* 维护与诊断的二级菜单。把 5 个低频维护动作合并到一个入口,避免主菜单太长。
|
|
53
|
+
* 选完跑完直接 return,外层 menuCommand 的循环会回到主菜单。
|
|
58
54
|
*/
|
|
59
|
-
function
|
|
55
|
+
async function maintenanceSubMenu() {
|
|
56
|
+
const SUB_ITEMS = [
|
|
57
|
+
{ label: '体检(doctor)', hint: '检查 settings.json 配置问题(--fix 自动修)', run: () => doctorCommand() },
|
|
58
|
+
{ label: '查看版本 / 检查更新', hint: '本地 + npm latest', run: () => versionCommand({ checkUpdates: true }) },
|
|
59
|
+
{ label: '安装代码工具', hint: 'Clavue / Claude Code / Codex', run: () => installCommand(undefined) },
|
|
60
|
+
{ label: '更新代码工具', hint: '升级到最新版', run: () => updateCommand(undefined) },
|
|
61
|
+
{ label: '检测已安装的工具', hint: '看哪些已装哪些没装', run: async () => detectCommand() },
|
|
62
|
+
];
|
|
63
|
+
const { choice } = await inquirer.prompt([{
|
|
64
|
+
type: 'list',
|
|
65
|
+
name: 'choice',
|
|
66
|
+
message: ansis.bold('维护与诊断'),
|
|
67
|
+
pageSize: 10,
|
|
68
|
+
loop: false,
|
|
69
|
+
choices: [
|
|
70
|
+
...SUB_ITEMS.map((it, i) => ({
|
|
71
|
+
name: `${padToVisibleWidth(it.label, 20)} ${ansis.dim(it.hint ?? '')}`,
|
|
72
|
+
value: i,
|
|
73
|
+
short: it.label,
|
|
74
|
+
})),
|
|
75
|
+
new inquirer.Separator(),
|
|
76
|
+
{ name: ansis.gray('返回主菜单'), value: -1, short: '返回' },
|
|
77
|
+
],
|
|
78
|
+
}]);
|
|
79
|
+
if (choice < 0)
|
|
80
|
+
return;
|
|
81
|
+
await SUB_ITEMS[choice].run();
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* 中文/全角字符在 monospace 终端通常占 2 列。padEnd 按字符数算不对齐。
|
|
85
|
+
*/
|
|
86
|
+
function visibleWidth(s) {
|
|
60
87
|
let w = 0;
|
|
61
88
|
for (const ch of s) {
|
|
62
89
|
const code = ch.codePointAt(0) ?? 0;
|
|
@@ -69,7 +96,10 @@ function padToVisibleWidth(s, width) {
|
|
|
69
96
|
else
|
|
70
97
|
w += 1;
|
|
71
98
|
}
|
|
72
|
-
return
|
|
99
|
+
return w;
|
|
100
|
+
}
|
|
101
|
+
function padToVisibleWidth(s, width) {
|
|
102
|
+
return s + ' '.repeat(Math.max(0, width - visibleWidth(s)));
|
|
73
103
|
}
|
|
74
104
|
function getVersion() {
|
|
75
105
|
try {
|
|
@@ -108,8 +138,14 @@ export async function menuCommand() {
|
|
|
108
138
|
const choices = [];
|
|
109
139
|
let idx = 0;
|
|
110
140
|
const flat = [];
|
|
141
|
+
const SEP_WIDTH = 50;
|
|
111
142
|
for (const g of GROUPS) {
|
|
112
|
-
|
|
143
|
+
// 按 visible-width 算横杠数:── 标题 ─...─ 总宽度对齐
|
|
144
|
+
const titlePart = `── ${g.title} `;
|
|
145
|
+
const titleW = visibleWidth(titlePart);
|
|
146
|
+
const dashCount = Math.max(3, SEP_WIDTH - titleW);
|
|
147
|
+
const sep = `${titlePart}${'─'.repeat(dashCount)}`;
|
|
148
|
+
choices.push(new inquirer.Separator(ansis.dim(sep)));
|
|
113
149
|
for (const item of g.items) {
|
|
114
150
|
const hint = item.hint ? ` ${ansis.dim(item.hint)}` : '';
|
|
115
151
|
const padded = padToVisibleWidth(item.label, 20);
|
|
@@ -118,7 +154,7 @@ export async function menuCommand() {
|
|
|
118
154
|
idx++;
|
|
119
155
|
}
|
|
120
156
|
}
|
|
121
|
-
choices.push(new inquirer.Separator(ansis.dim('
|
|
157
|
+
choices.push(new inquirer.Separator(ansis.dim('─'.repeat(SEP_WIDTH))));
|
|
122
158
|
choices.push({ name: ansis.gray('退出 ccjk'), value: -1, short: '退出' });
|
|
123
159
|
const { choice } = await inquirer.prompt([{
|
|
124
160
|
type: 'list',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/commands/menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAajF,MAAM,MAAM,GAAgB;IAC1B;QACE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/commands/menu.ts"],"names":[],"mappings":"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"}
|