@gird/ccli 2.19.0 → 2.20.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 +2 -0
- package/dist/agent/model-catalog.js +100 -0
- package/dist/agent/model-catalog.js.map +1 -0
- package/dist/agent/os.js +291 -2
- package/dist/agent/os.js.map +1 -1
- package/dist/cli/args/index.js +22 -0
- package/dist/cli/args/index.js.map +1 -1
- package/dist/cli/repl/index.js +4 -3
- package/dist/cli/repl/index.js.map +1 -1
- package/dist/cli/run/index.js +21 -15
- package/dist/cli/run/index.js.map +1 -1
- package/dist/cli/run/task.js +20 -1
- package/dist/cli/run/task.js.map +1 -1
- package/dist/cli/session/checkpoint.js +50 -34
- package/dist/cli/session/checkpoint.js.map +1 -1
- package/dist/cli/slash/config/account.js +82 -0
- package/dist/cli/slash/config/account.js.map +1 -0
- package/dist/cli/slash/config/alias.js +96 -0
- package/dist/cli/slash/config/alias.js.map +1 -0
- package/dist/cli/slash/config/login.js +80 -0
- package/dist/cli/slash/config/login.js.map +1 -0
- package/dist/cli/slash/config/model.js +50 -6
- package/dist/cli/slash/config/model.js.map +1 -1
- package/dist/cli/slash/config/models.js +45 -0
- package/dist/cli/slash/config/models.js.map +1 -0
- package/dist/cli/slash/index.js +17 -1
- package/dist/cli/slash/index.js.map +1 -1
- package/dist/cli/slash/system/agent.js +1 -1
- package/dist/cli/slash/system/agent.js.map +1 -1
- package/dist/cli/slash/system/compact.js +1 -1
- package/dist/cli/slash/system/compact.js.map +1 -1
- package/dist/cli/slash/system/goal.js +1 -1
- package/dist/cli/slash/system/goal.js.map +1 -1
- package/dist/cli/slash/system/help.js +4 -0
- package/dist/cli/slash/system/help.js.map +1 -1
- package/dist/cli/slash/system/plan.js +1 -1
- package/dist/cli/slash/system/plan.js.map +1 -1
- package/dist/cli/slash/system/revert.js +7 -5
- package/dist/cli/slash/system/revert.js.map +1 -1
- package/dist/cli/stats/index.js +6 -1
- package/dist/cli/stats/index.js.map +1 -1
- package/dist/cli/stats/usage.js +215 -0
- package/dist/cli/stats/usage.js.map +1 -0
- package/dist/config/config.js +207 -6
- package/dist/config/config.js.map +1 -1
- package/dist/config/credentials.js +104 -0
- package/dist/config/credentials.js.map +1 -0
- package/dist/harness/index.js +3 -1
- package/dist/harness/index.js.map +1 -1
- package/dist/index.js +19 -2
- package/dist/index.js.map +1 -1
- package/dist/tools/{skill-tool.js → agent/skill-tool.js} +1 -1
- package/dist/tools/agent/skill-tool.js.map +1 -0
- package/dist/tools/{todo.js → agent/todo.js} +1 -1
- package/dist/tools/agent/todo.js.map +1 -0
- package/dist/tools/agent/web-fetch.js.map +1 -0
- package/dist/tools/{edit-file.js → fs/edit-file.js} +8 -14
- package/dist/tools/fs/edit-file.js.map +1 -0
- package/dist/tools/fs/glob.js.map +1 -0
- package/dist/tools/{grep.js → fs/grep.js} +1 -1
- package/dist/tools/fs/grep.js.map +1 -0
- package/dist/tools/fs/list-dir.js.map +1 -0
- package/dist/tools/{read-file.js → fs/read-file.js} +1 -1
- package/dist/tools/fs/read-file.js.map +1 -0
- package/dist/tools/{write-file.js → fs/write-file.js} +8 -15
- package/dist/tools/fs/write-file.js.map +1 -0
- package/dist/tools/index.js +11 -11
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/shell/bash-background.js.map +1 -0
- package/dist/tools/shell/bash-output.js.map +1 -0
- package/dist/tools/shell/bash.js.map +1 -0
- package/dist/tools/shell/kill-bash.js.map +1 -0
- package/package.json +1 -1
- package/dist/tools/bash-background.js.map +0 -1
- package/dist/tools/bash-output.js.map +0 -1
- package/dist/tools/bash.js.map +0 -1
- package/dist/tools/edit-file.js.map +0 -1
- package/dist/tools/glob.js.map +0 -1
- package/dist/tools/grep.js.map +0 -1
- package/dist/tools/kill-bash.js.map +0 -1
- package/dist/tools/list-dir.js.map +0 -1
- package/dist/tools/read-file.js.map +0 -1
- package/dist/tools/skill-tool.js.map +0 -1
- package/dist/tools/todo.js.map +0 -1
- package/dist/tools/web-fetch.js.map +0 -1
- package/dist/tools/write-file.js.map +0 -1
- /package/dist/tools/{web-fetch.js → agent/web-fetch.js} +0 -0
- /package/dist/tools/{glob.js → fs/glob.js} +0 -0
- /package/dist/tools/{list-dir.js → fs/list-dir.js} +0 -0
- /package/dist/tools/{bash-background.js → shell/bash-background.js} +0 -0
- /package/dist/tools/{bash-output.js → shell/bash-output.js} +0 -0
- /package/dist/tools/{bash.js → shell/bash.js} +0 -0
- /package/dist/tools/{kill-bash.js → shell/kill-bash.js} +0 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { saveAliases, loadConfig, defaultAliasesForProvider, } from '../../../config/config.js';
|
|
2
|
+
import { style } from '../../style.js';
|
|
3
|
+
/** 从生效别名中过滤掉默认预设,只保留用户自定义的别名。 */
|
|
4
|
+
function customAliases(aliases, provider, baseURL) {
|
|
5
|
+
if (!provider)
|
|
6
|
+
return { ...aliases };
|
|
7
|
+
const presets = defaultAliasesForProvider(provider, baseURL);
|
|
8
|
+
const out = {};
|
|
9
|
+
for (const [k, v] of Object.entries(aliases)) {
|
|
10
|
+
if (presets[k] === v)
|
|
11
|
+
continue;
|
|
12
|
+
out[k] = v;
|
|
13
|
+
}
|
|
14
|
+
return out;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* /alias:模型别名配置中心。
|
|
18
|
+
* - 无参:列出当前自定义别名(默认预设不显示,但可在 /model、/account 查看)
|
|
19
|
+
* - add <别名> <模型名>:新增/覆盖别名并持久化
|
|
20
|
+
* - remove <别名>:删除自定义别名;内置预设无法删除,可用 add 覆盖
|
|
21
|
+
*/
|
|
22
|
+
export async function handleAlias(arg, ctx) {
|
|
23
|
+
const aliases = ctx.aliases ?? {};
|
|
24
|
+
const parts = arg.trim().split(/\s+/).filter(Boolean);
|
|
25
|
+
const sub = parts[0]?.toLowerCase();
|
|
26
|
+
const configResult = loadConfig(ctx.cwd);
|
|
27
|
+
const provider = configResult.ok ? configResult.config.provider : undefined;
|
|
28
|
+
const baseURL = configResult.ok ? configResult.config.baseURL : undefined;
|
|
29
|
+
if (!sub) {
|
|
30
|
+
const customs = customAliases(aliases, provider, baseURL);
|
|
31
|
+
const customEntries = Object.entries(customs);
|
|
32
|
+
if (customEntries.length === 0) {
|
|
33
|
+
console.log('当前没有自定义模型别名。用法:/alias add <别名> <模型名>');
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
console.log(style.label('当前自定义模型别名'));
|
|
37
|
+
for (const [a, m] of customEntries) {
|
|
38
|
+
console.log(` ${a} → ${m}`);
|
|
39
|
+
}
|
|
40
|
+
console.log(style.muted('切换:/model <别名>'));
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (sub === 'add') {
|
|
44
|
+
if (parts.length < 3) {
|
|
45
|
+
console.log(style.warn('用法:/alias add <别名> <模型名>'));
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const name = parts[1];
|
|
49
|
+
const model = parts.slice(2).join(' ').trim();
|
|
50
|
+
if (!model) {
|
|
51
|
+
console.log(style.warn('模型名不能为空。'));
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const next = { ...aliases, [name]: model };
|
|
55
|
+
const toSave = customAliases(next, provider, baseURL);
|
|
56
|
+
const saved = saveAliases(ctx.cwd, toSave);
|
|
57
|
+
if (!saved.ok) {
|
|
58
|
+
console.log(style.error(`保存别名失败:${saved.message}`));
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const reloaded = ctx.reloadConfig();
|
|
62
|
+
ctx.aliases = reloaded.ok ? (reloaded.config.aliases ?? {}) : next;
|
|
63
|
+
console.log(style.success(`已保存别名:${name} → ${model}(写入 ${saved.path})`));
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (sub === 'remove') {
|
|
67
|
+
if (parts.length < 2) {
|
|
68
|
+
console.log(style.warn('用法:/alias remove <别名>'));
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const name = parts[1];
|
|
72
|
+
const customs = customAliases(aliases, provider, baseURL);
|
|
73
|
+
if (!(name in customs)) {
|
|
74
|
+
if (name in aliases) {
|
|
75
|
+
console.log(style.warn(`“${name}” 是内置预设别名,不能删除;可用 /alias add ${name} <模型> 覆盖。`));
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
console.log(style.warn(`别名 “${name}” 不存在。`));
|
|
79
|
+
}
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const next = { ...customs };
|
|
83
|
+
delete next[name];
|
|
84
|
+
const saved = saveAliases(ctx.cwd, next);
|
|
85
|
+
if (!saved.ok) {
|
|
86
|
+
console.log(style.error(`删除别名失败:${saved.message}`));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const reloaded = ctx.reloadConfig();
|
|
90
|
+
ctx.aliases = reloaded.ok ? (reloaded.config.aliases ?? {}) : next;
|
|
91
|
+
console.log(style.success(`已删除别名:${name}`));
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
console.log(style.warn(`未知子命令:${sub}。支持:/alias、/alias add、/alias remove`));
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=alias.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alias.js","sourceRoot":"","sources":["../../../../src/cli/slash/config/alias.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* /login:交互式录入 API key 并加密保存到本地凭证。
|
|
3
|
+
*
|
|
4
|
+
* 把「设置环境变量 / 写 .env / 写 config.json」替换成一条命令,
|
|
5
|
+
* 密钥不再以明文躺在项目文件里。
|
|
6
|
+
*/
|
|
7
|
+
import { saveApiKeyCredential, } from '../../../config/config.js';
|
|
8
|
+
import { style } from '../../style.js';
|
|
9
|
+
const OPTIONS = [
|
|
10
|
+
{
|
|
11
|
+
key: 'openai',
|
|
12
|
+
label: '通义千问 (Qwen / OpenAI 兼容)',
|
|
13
|
+
defaultBaseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1',
|
|
14
|
+
defaultModel: 'qwen-plus',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
key: 'openai',
|
|
18
|
+
label: 'OpenAI 官方 / 其它兼容端点',
|
|
19
|
+
defaultModel: 'gpt-4o',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
key: 'anthropic',
|
|
23
|
+
label: 'Anthropic (Claude)',
|
|
24
|
+
defaultModel: 'claude-sonnet-4-5',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
key: 'gemini',
|
|
28
|
+
label: 'Gemini',
|
|
29
|
+
defaultModel: 'gemini-2.5-flash',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
/**
|
|
33
|
+
* /login:交互式登录。
|
|
34
|
+
* 无参时进入完整流程;有参时暂不解析,统一走交互式(避免在命令历史里留下 key)。
|
|
35
|
+
*/
|
|
36
|
+
export async function handleLogin(_arg, ctx) {
|
|
37
|
+
console.log(style.label('登录并保存加密凭证'));
|
|
38
|
+
console.log('请选择后端(输入序号,直接回车默认选 1):');
|
|
39
|
+
OPTIONS.forEach((opt, i) => {
|
|
40
|
+
console.log(` ${i + 1}) ${opt.label}`);
|
|
41
|
+
});
|
|
42
|
+
const choiceRaw = (await ctx.ask('> ')).trim();
|
|
43
|
+
const choice = choiceRaw === ''
|
|
44
|
+
? 1
|
|
45
|
+
: Number.isNaN(Number(choiceRaw))
|
|
46
|
+
? 0
|
|
47
|
+
: Number(choiceRaw);
|
|
48
|
+
if (choice < 1 || choice > OPTIONS.length) {
|
|
49
|
+
console.log(style.warn('无效选择,已取消登录。'));
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const selected = OPTIONS[choice - 1];
|
|
53
|
+
console.log(style.muted('请输入 API Key(当前 TUI 会回显输入,请注意周围环境):'));
|
|
54
|
+
const apiKey = (await ctx.ask('API Key: ')).trim();
|
|
55
|
+
if (!apiKey) {
|
|
56
|
+
console.log(style.warn('API Key 不能为空,已取消登录。'));
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const baseURLDefault = selected.defaultBaseURL ? ` (${selected.defaultBaseURL})` : '';
|
|
60
|
+
const baseURLRaw = (await ctx.ask(`baseURL(可选${baseURLDefault},直接回车跳过): `)).trim();
|
|
61
|
+
const baseURL = baseURLRaw || selected.defaultBaseURL;
|
|
62
|
+
const modelDefault = selected.defaultModel;
|
|
63
|
+
const modelRaw = (await ctx.ask(`默认模型(可选,直接回车使用 ${modelDefault}): `)).trim();
|
|
64
|
+
const model = modelRaw || modelDefault;
|
|
65
|
+
const saved = saveApiKeyCredential(selected.key, apiKey, baseURL, model);
|
|
66
|
+
if (!saved.ok) {
|
|
67
|
+
console.log(style.error(saved.message));
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const reloaded = ctx.reloadConfig();
|
|
71
|
+
if (!reloaded.ok) {
|
|
72
|
+
console.log(style.warn(`凭证已保存,但刷新配置失败:${reloaded.message}。请执行 /reload。`));
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
console.log(style.success(`已保存加密凭证到 ${saved.path},并已切换到 ${reloaded.config.model}(${reloaded.config.provider})。`));
|
|
76
|
+
if (baseURL) {
|
|
77
|
+
console.log(style.muted(`baseURL: ${baseURL}`));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../src/cli/slash/config/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,37 @@
|
|
|
1
|
-
import { resolveModelAlias } from '../../../config/config.js';
|
|
1
|
+
import { resolveModelAlias, isPresetAlias, isReasoningModel, } from '../../../config/config.js';
|
|
2
|
+
import { getCachedModels } from '../../../agent/model-catalog.js';
|
|
3
|
+
import { style } from '../../style.js';
|
|
2
4
|
/** /model 搜索时最多列出多少个候选,避免刷屏。 */
|
|
3
5
|
const MAX_MODEL_LIST = 30;
|
|
6
|
+
/**
|
|
7
|
+
* 尝试用配置构造缓存所需的 provider/baseURL;配置加载失败时返回 undefined,
|
|
8
|
+
* 让 /model 回退到直接调用 ai.listModels()。
|
|
9
|
+
*/
|
|
10
|
+
function modelConfig(ctx) {
|
|
11
|
+
const reloaded = ctx.reloadConfig();
|
|
12
|
+
if (!reloaded.ok)
|
|
13
|
+
return { ok: false };
|
|
14
|
+
return {
|
|
15
|
+
ok: true,
|
|
16
|
+
provider: reloaded.config.provider,
|
|
17
|
+
baseURL: reloaded.config.baseURL,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
async function listModelsWithCache(ctx) {
|
|
21
|
+
const cfg = modelConfig(ctx);
|
|
22
|
+
try {
|
|
23
|
+
if (cfg.ok) {
|
|
24
|
+
return await getCachedModels(ctx.ai, {
|
|
25
|
+
provider: cfg.provider,
|
|
26
|
+
baseURL: cfg.baseURL,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return await ctx.ai.listModels();
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
4
35
|
/**
|
|
5
36
|
* /model:无参看当前模型 + 别名 + 用法;带参先解析别名,再按完整名精确切换,
|
|
6
37
|
* 否则当作关键词搜索列出候选(复制完整名再切)。
|
|
@@ -11,12 +42,23 @@ export async function handleModel(arg, ctx) {
|
|
|
11
42
|
console.log(`当前模型:${ctx.ai.getModel()}`);
|
|
12
43
|
const aliasEntries = Object.entries(aliases);
|
|
13
44
|
if (aliasEntries.length > 0) {
|
|
14
|
-
|
|
45
|
+
const cfg = modelConfig(ctx);
|
|
46
|
+
const provider = cfg.ok ? cfg.provider : undefined;
|
|
47
|
+
const baseURL = cfg.ok ? cfg.baseURL : undefined;
|
|
48
|
+
const lines = aliasEntries.map(([a, m]) => {
|
|
49
|
+
const tag = provider &&
|
|
50
|
+
isPresetAlias(a, m, provider, baseURL)
|
|
51
|
+
? style.muted('(预设)')
|
|
52
|
+
: '';
|
|
53
|
+
const reasoning = isReasoningModel(m) ? style.muted('[思考] ') : '';
|
|
54
|
+
return `${reasoning}${a}→${m}${tag ? ' ' + tag : ''}`;
|
|
55
|
+
});
|
|
56
|
+
console.log(`别名:${lines.join(',')}(/model <别名> 直接切)`);
|
|
15
57
|
}
|
|
16
58
|
// 拉一次列表只为告知总数;失败不阻断
|
|
17
59
|
let models = null;
|
|
18
60
|
try {
|
|
19
|
-
models = await ctx
|
|
61
|
+
models = await listModelsWithCache(ctx);
|
|
20
62
|
}
|
|
21
63
|
catch {
|
|
22
64
|
models = null;
|
|
@@ -39,7 +81,7 @@ export async function handleModel(arg, ctx) {
|
|
|
39
81
|
// 拉列表用于校验 / 搜索;后端不支持列模型时降级为「不校验直接切」
|
|
40
82
|
let models = null;
|
|
41
83
|
try {
|
|
42
|
-
models = await ctx
|
|
84
|
+
models = await listModelsWithCache(ctx);
|
|
43
85
|
}
|
|
44
86
|
catch {
|
|
45
87
|
models = null;
|
|
@@ -63,8 +105,10 @@ export async function handleModel(arg, ctx) {
|
|
|
63
105
|
return;
|
|
64
106
|
}
|
|
65
107
|
console.log(`未精确匹配 “${arg}”,以下 ${matches.length} 个可选(复制完整名切换,当前仍为 ${ctx.ai.getModel()}):`);
|
|
66
|
-
for (const m of matches.slice(0, MAX_MODEL_LIST))
|
|
67
|
-
|
|
108
|
+
for (const m of matches.slice(0, MAX_MODEL_LIST)) {
|
|
109
|
+
const reasoning = isReasoningModel(m) ? style.muted(' [思考]') : '';
|
|
110
|
+
console.log(` ${m}${reasoning}`);
|
|
111
|
+
}
|
|
68
112
|
if (matches.length > MAX_MODEL_LIST) {
|
|
69
113
|
console.log(` … 还有 ${matches.length - MAX_MODEL_LIST} 个,请细化关键词`);
|
|
70
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/cli/slash/config/model.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/cli/slash/config/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* /models:查看当前 provider 的模型目录(走缓存)。
|
|
3
|
+
*
|
|
4
|
+
* - /models 列出缓存的模型,标出当前模型
|
|
5
|
+
* - /models --refresh 强制刷新缓存后列出
|
|
6
|
+
*/
|
|
7
|
+
import { getCachedModels } from '../../../agent/model-catalog.js';
|
|
8
|
+
import { isReasoningModel } from '../../../config/config.js';
|
|
9
|
+
import { style } from '../../style.js';
|
|
10
|
+
/** 单次最多展示多少行,避免刷屏。 */
|
|
11
|
+
const MAX_LIST = 50;
|
|
12
|
+
export async function handleModels(arg, ctx) {
|
|
13
|
+
const refresh = arg.trim() === '--refresh';
|
|
14
|
+
const reload = ctx.reloadConfig();
|
|
15
|
+
if (!reload.ok) {
|
|
16
|
+
console.log(style.error(`配置加载失败:${reload.message}`));
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const config = reload.config;
|
|
20
|
+
let models;
|
|
21
|
+
try {
|
|
22
|
+
models = await getCachedModels(ctx.ai, { provider: config.provider, baseURL: config.baseURL }, { refresh });
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
26
|
+
console.log(style.error(`获取模型列表失败:${msg}`));
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const current = ctx.ai.getModel();
|
|
30
|
+
console.log(`当前模型:${style.label(current)}(provider: ${style.muted(config.provider)})`);
|
|
31
|
+
console.log(`缓存模型 ${models.length} 个${refresh ? style.success('(已刷新)') : ''}:`);
|
|
32
|
+
const shown = models.slice(0, MAX_LIST);
|
|
33
|
+
for (const m of shown) {
|
|
34
|
+
const marker = m === current ? style.label('* ') : ' ';
|
|
35
|
+
const reasoning = isReasoningModel(m) ? style.muted(' [思考]') : '';
|
|
36
|
+
console.log(`${marker}${m}${reasoning}`);
|
|
37
|
+
}
|
|
38
|
+
if (models.length > MAX_LIST) {
|
|
39
|
+
console.log(style.muted(` … 还有 ${models.length - MAX_LIST} 个未展示,可用 /model <关键词> 搜索`));
|
|
40
|
+
}
|
|
41
|
+
if (!refresh) {
|
|
42
|
+
console.log(style.muted('提示:/models --refresh 可强制刷新缓存。'));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../src/cli/slash/config/models.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,sBAAsB;AACtB,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,GAAW,EACX,GAAiB;IAEjB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC;IAE3C,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO;IACX,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAE7B,IAAI,MAAgB,CAAC;IACrB,IAAI,CAAC;QACD,MAAM,GAAG,MAAM,eAAe,CAC1B,GAAG,CAAC,EAAE,EACN,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EACtD,EAAE,OAAO,EAAE,CACd,CAAC;IACN,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5C,OAAO;IACX,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;IAClC,OAAO,CAAC,GAAG,CACP,QAAQ,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAC5E,CAAC;IACF,OAAO,CAAC,GAAG,CACP,QAAQ,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CACrE,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,KAAK,CACP,UAAU,MAAM,CAAC,MAAM,GAAG,QAAQ,0BAA0B,CAC/D,CACJ,CAAC;IACN,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC9D,CAAC;AACL,CAAC"}
|
package/dist/cli/slash/index.js
CHANGED
|
@@ -6,11 +6,15 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { listSessions } from '../session/index.js';
|
|
8
8
|
import { resetStats } from '../stats/index.js';
|
|
9
|
-
import { resetTodos } from '../../tools/todo.js';
|
|
9
|
+
import { resetTodos } from '../../tools/agent/todo.js';
|
|
10
10
|
import { COMMANDS, printHelp } from './system/help.js';
|
|
11
11
|
export { COMMANDS, printHelp };
|
|
12
12
|
import { handleUndo } from './system/undo.js';
|
|
13
13
|
import { handleModel } from './config/model.js';
|
|
14
|
+
import { handleModels } from './config/models.js';
|
|
15
|
+
import { handleAccount } from './config/account.js';
|
|
16
|
+
import { handleAlias } from './config/alias.js';
|
|
17
|
+
import { handleLogin } from './config/login.js';
|
|
14
18
|
import { handleSave } from './session/save.js';
|
|
15
19
|
import { handleLoad } from './session/load.js';
|
|
16
20
|
import { handleSessions } from './session/sessions.js';
|
|
@@ -91,6 +95,18 @@ export async function handleSlash(input, ctx) {
|
|
|
91
95
|
case 'model':
|
|
92
96
|
await handleModel(arg, ctx);
|
|
93
97
|
return true;
|
|
98
|
+
case 'models':
|
|
99
|
+
await handleModels(arg, ctx);
|
|
100
|
+
return true;
|
|
101
|
+
case 'account':
|
|
102
|
+
await handleAccount(ctx, arg);
|
|
103
|
+
return true;
|
|
104
|
+
case 'login':
|
|
105
|
+
await handleLogin(arg, ctx);
|
|
106
|
+
return true;
|
|
107
|
+
case 'alias':
|
|
108
|
+
await handleAlias(arg, ctx);
|
|
109
|
+
return true;
|
|
94
110
|
case 'save':
|
|
95
111
|
handleSave(arg, ctx);
|
|
96
112
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/slash/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/slash/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { runAgentTurn } from '../../run/index.js';
|
|
2
2
|
import { style } from '../../style.js';
|
|
3
3
|
import { getTool } from '../../../tools/index.js';
|
|
4
|
-
import { resetTodos } from '../../../tools/todo.js';
|
|
4
|
+
import { resetTodos } from '../../../tools/agent/todo.js';
|
|
5
5
|
/** 规划阶段的系统提示:只输出计划,不调用工具。 */
|
|
6
6
|
const PLANNING_SYSTEM_PROMPT = `你是 CCLI 的 Agent 规划助手。
|
|
7
7
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../../src/cli/slash/system/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAmB,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../../src/cli/slash/system/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { estimatePromptTokens, resetStats, getContextLimit, } from '../../stats/index.js';
|
|
2
2
|
import { style } from '../../style.js';
|
|
3
|
-
import { formatTodos, getTodos } from '../../../tools/todo.js';
|
|
3
|
+
import { formatTodos, getTodos } from '../../../tools/agent/todo.js';
|
|
4
4
|
import { runHooks } from '../../run/hooks.js';
|
|
5
5
|
/** 上下文占比低于此值时,压缩通常没必要,先向用户确认。 */
|
|
6
6
|
const COMPACT_MIN_RATIO = 0.5;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../../../src/cli/slash/system/compact.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,oBAAoB,EACpB,UAAU,EACV,eAAe,GAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../../../src/cli/slash/system/compact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { runAgentTurn } from '../../run/index.js';
|
|
2
2
|
import { style } from '../../style.js';
|
|
3
3
|
import { getTool } from '../../../tools/index.js';
|
|
4
|
-
import { resetTodos } from '../../../tools/todo.js';
|
|
4
|
+
import { resetTodos } from '../../../tools/agent/todo.js';
|
|
5
5
|
import { buildPlan, EXECUTION_SYSTEM_PROMPT } from './agent.js';
|
|
6
6
|
/** 目标未给完成条件时,让规划阶段先补一条可检查条件。 */
|
|
7
7
|
const GOAL_PLANNING_SYSTEM_PROMPT = `你是 CCLI 的 Goal 规划助手。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"goal.js","sourceRoot":"","sources":["../../../../src/cli/slash/system/goal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAmB,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"goal.js","sourceRoot":"","sources":["../../../../src/cli/slash/system/goal.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,10 @@ export const COMMANDS = [
|
|
|
5
5
|
['/undo [n]', '撤销最近 n 轮对话(默认 1)'],
|
|
6
6
|
['/compact', '把对话历史压缩成摘要,释放上下文'],
|
|
7
7
|
['/model [id]', '查看或切换模型'],
|
|
8
|
+
['/models [--refresh]', '列出当前 provider 的模型目录(走缓存)'],
|
|
9
|
+
['/account [--by-model]', '查看当前账号与配置来源(加 --by-model 按模型细分 usage)'],
|
|
10
|
+
['/login', '交互式录入 API key 并加密保存到本地凭证'],
|
|
11
|
+
['/alias [add|remove] [名] [模型]', '查看或管理模型别名'],
|
|
8
12
|
['/save [name]', '保存当前对话(省略名称自动生成)'],
|
|
9
13
|
['/load <name>', '加载会话;不完整时列出候选'],
|
|
10
14
|
['/sessions', '列出已保存的会话'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../../src/cli/slash/system/help.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,CAAC,MAAM,QAAQ,GAA4B;IAC7C,CAAC,OAAO,EAAE,QAAQ,CAAC;IACnB,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAC5B,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACjC,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAChC,CAAC,aAAa,EAAE,SAAS,CAAC;IAC1B,CAAC,cAAc,EAAE,kBAAkB,CAAC;IACpC,CAAC,cAAc,EAAE,eAAe,CAAC;IACjC,CAAC,WAAW,EAAE,UAAU,CAAC;IACzB,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACjC,CAAC,eAAe,EAAE,YAAY,CAAC;IAC/B,CAAC,cAAc,EAAE,sBAAsB,CAAC;IACxC,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;IAC3C,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAC7B,CAAC,SAAS,EAAE,aAAa,CAAC;IAC1B,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;IAC/C,CAAC,SAAS,EAAE,uCAAuC,CAAC;IACpD,CAAC,mBAAmB,EAAE,uCAAuC,CAAC;IAC9D,CAAC,cAAc,EAAE,cAAc,CAAC;IAChC,CAAC,WAAW,EAAE,aAAa,CAAC;IAC5B,CAAC,SAAS,EAAE,8BAA8B,CAAC;IAC3C,CAAC,iBAAiB,EAAE,eAAe,CAAC;IACpC,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IACzC,CAAC,cAAc,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,UAAU,SAAS;IACrB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../../src/cli/slash/system/help.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,CAAC,MAAM,QAAQ,GAA4B;IAC7C,CAAC,OAAO,EAAE,QAAQ,CAAC;IACnB,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAC5B,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACjC,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAChC,CAAC,aAAa,EAAE,SAAS,CAAC;IAC1B,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;IACnD,CAAC,uBAAuB,EAAE,uCAAuC,CAAC;IAClE,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IACtC,CAAC,8BAA8B,EAAE,WAAW,CAAC;IAC7C,CAAC,cAAc,EAAE,kBAAkB,CAAC;IACpC,CAAC,cAAc,EAAE,eAAe,CAAC;IACjC,CAAC,WAAW,EAAE,UAAU,CAAC;IACzB,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACjC,CAAC,eAAe,EAAE,YAAY,CAAC;IAC/B,CAAC,cAAc,EAAE,sBAAsB,CAAC;IACxC,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;IAC3C,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAC7B,CAAC,SAAS,EAAE,aAAa,CAAC;IAC1B,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;IAC/C,CAAC,SAAS,EAAE,uCAAuC,CAAC;IACpD,CAAC,mBAAmB,EAAE,uCAAuC,CAAC;IAC9D,CAAC,cAAc,EAAE,cAAc,CAAC;IAChC,CAAC,WAAW,EAAE,aAAa,CAAC;IAC5B,CAAC,SAAS,EAAE,8BAA8B,CAAC;IAC3C,CAAC,iBAAiB,EAAE,eAAe,CAAC;IACpC,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IACzC,CAAC,cAAc,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,UAAU,SAAS;IACrB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { style } from '../../style.js';
|
|
2
2
|
import { runAgentTurn } from '../../run/index.js';
|
|
3
|
-
import { resetTodos } from '../../../tools/todo.js';
|
|
3
|
+
import { resetTodos } from '../../../tools/agent/todo.js';
|
|
4
4
|
/** 计划模式的只读工具集(含 glob,比 explore 多一个按名找文件)。 */
|
|
5
5
|
const PLAN_TOOLS = ['read_file', 'list_dir', 'grep', 'glob', 'bash_output'];
|
|
6
6
|
const PLAN_SYSTEM = '你现在处于「计划模式」。请**只用只读工具**(read_file / list_dir / grep / glob / bash_output)' +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../src/cli/slash/system/plan.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../src/cli/slash/system/plan.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,6CAA6C;AAC7C,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AAE5E,MAAM,WAAW,GACb,2EAA2E;IAC3E,oCAAoC;IACpC,4CAA4C;IAC5C,kDAAkD,CAAC;AAEvD,MAAM,WAAW,GACb,qDAAqD;IACrD,sEAAsE,CAAC;AAE3E,mCAAmC;AACnC,SAAS,iBAAiB,CAAC,OAAsB;IAC7C,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC1D,OAAO,CAAC,CAAC,OAAO,CAAC;QACrB,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,GAAW,EACX,GAAiB;IAEjB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACxB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC5C,OAAO;IACX,CAAC;IAED,6BAA6B;IAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;IAChC,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC;IACrC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,4BAA4B,IAAI,EAAE;KAC9C,CAAC,CAAC;IAEH,IAAI,CAAC;QACD,MAAM,YAAY,CAAC;YACf,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,GAAG,CAAC,aAAa;YAC1B,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,YAAY,EAAE,UAAU;YACxB,SAAS,EAAE,EAAE;SAChB,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO;QAClC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,cAAc,CAAC;QACxC,OAAO;IACX,CAAC;IAED,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC5C,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,cAAc,CAAC;QACxC,OAAO;IACX,CAAC;IAED,yBAAyB;IACzB,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC5C,OAAO;QACX,CAAC;QAED,iBAAiB;QACjB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAC7B,YAAY,EACZ,OAAO,EACP,WAAW,CACd,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACV,mCAAmC;YACnC,8BAA8B;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;YACnD,8BAA8B;YAC9B,UAAU,EAAE,CAAC;YACb,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,WAAW,gBAAgB,IAAI,EAAE,CAAC;YAC9D,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,iBAAiB,IAAI,EAAE;aACnC,CAAC,CAAC;YACH,IAAI,CAAC;gBACD,MAAM,YAAY,CAAC;oBACf,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,OAAO,EAAE,GAAG,CAAC,aAAa;oBAC1B,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,SAAS,EAAE,EAAE;oBACb,sBAAsB,EAAE,IAAI;oBAC5B,sBAAsB,EAAE,IAAI;iBAC/B,CAAC,CAAC;YACP,CAAC;oBAAS,CAAC;gBACP,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,cAAc,CAAC;YAC5C,CAAC;YACD,OAAO;QACX,CAAC;QAED,4BAA4B;QAC5B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAC5B,WAAW,EACX,MAAM,EACN,MAAM,CACT,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC3C,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAC1B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,cAAc,CAAC;YACxC,OAAO;QACX,CAAC;QAED,WAAW;QACX,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACvD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC9C,SAAS;QACb,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACrD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,wBAAwB,QAAQ,EAAE;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC;YACD,MAAM,YAAY,CAAC;gBACf,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE,GAAG,CAAC,aAAa;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,YAAY,EAAE,UAAU;gBACxB,SAAS,EAAE,EAAE;aAChB,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/D,sBAAsB;QAC1B,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { CheckpointManager } from '../../session/checkpoint.js';
|
|
2
|
+
import { LocalOS } from '../../../agent/os.js';
|
|
2
3
|
import { relative } from 'node:path';
|
|
3
4
|
import { style, stylize } from '../../style.js';
|
|
4
5
|
/** /revert:查看可用快照步骤,或一键回滚受影响文件 */
|
|
5
6
|
export async function handleRevert(arg, ctx) {
|
|
6
|
-
const
|
|
7
|
-
const
|
|
7
|
+
const os = ctx.os ?? new LocalOS();
|
|
8
|
+
const manager = new CheckpointManager(ctx.sessionId, ctx.cwd, undefined, os);
|
|
9
|
+
const steps = await manager.listSteps();
|
|
8
10
|
if (!arg) {
|
|
9
11
|
// 无参数:列出所有快照节点
|
|
10
12
|
if (steps.length === 0) {
|
|
@@ -13,7 +15,7 @@ export async function handleRevert(arg, ctx) {
|
|
|
13
15
|
}
|
|
14
16
|
console.log('可用快照节点(`/revert <步骤编号>` 即可执行回退):');
|
|
15
17
|
for (const step of steps) {
|
|
16
|
-
const info = manager.getStepInfo(step);
|
|
18
|
+
const info = await manager.getStepInfo(step);
|
|
17
19
|
if (!info)
|
|
18
20
|
continue;
|
|
19
21
|
const timeStr = new Date(info.timestamp).toLocaleTimeString();
|
|
@@ -31,7 +33,7 @@ export async function handleRevert(arg, ctx) {
|
|
|
31
33
|
console.log(style.error(`错误:请输入有效的快照步骤编号(当前可用: ${steps.join(', ')})。`));
|
|
32
34
|
return;
|
|
33
35
|
}
|
|
34
|
-
const info = manager.getStepInfo(step);
|
|
36
|
+
const info = await manager.getStepInfo(step);
|
|
35
37
|
if (!info) {
|
|
36
38
|
console.log(style.error(`错误:未找到 Step ${step} 的快照信息。`));
|
|
37
39
|
return;
|
|
@@ -43,7 +45,7 @@ export async function handleRevert(arg, ctx) {
|
|
|
43
45
|
const rel = relative(ctx.cwd, fileInfo.absolutePath);
|
|
44
46
|
const actLabel = fileInfo.action === 'create' ? '新建' : '修改';
|
|
45
47
|
console.log(style.label(`[${i + 1}] ${rel} (${actLabel})`));
|
|
46
|
-
const diff = manager.getFileDiff(step, pathHash, fileInfo);
|
|
48
|
+
const diff = await manager.getFileDiff(step, pathHash, fileInfo);
|
|
47
49
|
if (!diff) {
|
|
48
50
|
console.log(style.muted(' (文件不存在或无法读取)'));
|
|
49
51
|
}
|