@gird/ccli 2.18.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.
Files changed (101) hide show
  1. package/README.md +53 -2
  2. package/dist/agent/model-catalog.js +100 -0
  3. package/dist/agent/model-catalog.js.map +1 -0
  4. package/dist/agent/os.js +358 -0
  5. package/dist/agent/os.js.map +1 -0
  6. package/dist/cli/args/index.js +58 -0
  7. package/dist/cli/args/index.js.map +1 -1
  8. package/dist/cli/repl/index.js +5 -3
  9. package/dist/cli/repl/index.js.map +1 -1
  10. package/dist/cli/run/index.js +24 -15
  11. package/dist/cli/run/index.js.map +1 -1
  12. package/dist/cli/run/task.js +20 -1
  13. package/dist/cli/run/task.js.map +1 -1
  14. package/dist/cli/session/checkpoint.js +51 -34
  15. package/dist/cli/session/checkpoint.js.map +1 -1
  16. package/dist/cli/slash/config/account.js +82 -0
  17. package/dist/cli/slash/config/account.js.map +1 -0
  18. package/dist/cli/slash/config/alias.js +96 -0
  19. package/dist/cli/slash/config/alias.js.map +1 -0
  20. package/dist/cli/slash/config/login.js +80 -0
  21. package/dist/cli/slash/config/login.js.map +1 -0
  22. package/dist/cli/slash/config/model.js +74 -9
  23. package/dist/cli/slash/config/model.js.map +1 -1
  24. package/dist/cli/slash/config/models.js +45 -0
  25. package/dist/cli/slash/config/models.js.map +1 -0
  26. package/dist/cli/slash/index.js +17 -1
  27. package/dist/cli/slash/index.js.map +1 -1
  28. package/dist/cli/slash/system/agent.js +1 -1
  29. package/dist/cli/slash/system/agent.js.map +1 -1
  30. package/dist/cli/slash/system/compact.js +1 -1
  31. package/dist/cli/slash/system/compact.js.map +1 -1
  32. package/dist/cli/slash/system/goal.js +1 -1
  33. package/dist/cli/slash/system/goal.js.map +1 -1
  34. package/dist/cli/slash/system/help.js +4 -0
  35. package/dist/cli/slash/system/help.js.map +1 -1
  36. package/dist/cli/slash/system/plan.js +1 -1
  37. package/dist/cli/slash/system/plan.js.map +1 -1
  38. package/dist/cli/slash/system/revert.js +7 -5
  39. package/dist/cli/slash/system/revert.js.map +1 -1
  40. package/dist/cli/stats/index.js +6 -1
  41. package/dist/cli/stats/index.js.map +1 -1
  42. package/dist/cli/stats/usage.js +215 -0
  43. package/dist/cli/stats/usage.js.map +1 -0
  44. package/dist/config/config.js +223 -1
  45. package/dist/config/config.js.map +1 -1
  46. package/dist/config/credentials.js +104 -0
  47. package/dist/config/credentials.js.map +1 -0
  48. package/dist/harness/index.js +9 -1
  49. package/dist/harness/index.js.map +1 -1
  50. package/dist/index.js +41 -2
  51. package/dist/index.js.map +1 -1
  52. package/dist/server/index.js +338 -0
  53. package/dist/server/index.js.map +1 -0
  54. package/dist/server/sessions.js +181 -0
  55. package/dist/server/sessions.js.map +1 -0
  56. package/dist/server/webui.html +1341 -0
  57. package/dist/server/webui.js +12 -0
  58. package/dist/server/webui.js.map +1 -0
  59. package/dist/tools/{skill-tool.js → agent/skill-tool.js} +1 -1
  60. package/dist/tools/agent/skill-tool.js.map +1 -0
  61. package/dist/tools/{todo.js → agent/todo.js} +1 -1
  62. package/dist/tools/agent/todo.js.map +1 -0
  63. package/dist/tools/agent/web-fetch.js.map +1 -0
  64. package/dist/tools/{edit-file.js → fs/edit-file.js} +8 -8
  65. package/dist/tools/fs/edit-file.js.map +1 -0
  66. package/dist/tools/{glob.js → fs/glob.js} +40 -6
  67. package/dist/tools/fs/glob.js.map +1 -0
  68. package/dist/tools/{grep.js → fs/grep.js} +49 -9
  69. package/dist/tools/fs/grep.js.map +1 -0
  70. package/dist/tools/{list-dir.js → fs/list-dir.js} +13 -2
  71. package/dist/tools/fs/list-dir.js.map +1 -0
  72. package/dist/tools/{read-file.js → fs/read-file.js} +5 -3
  73. package/dist/tools/fs/read-file.js.map +1 -0
  74. package/dist/tools/{write-file.js → fs/write-file.js} +8 -8
  75. package/dist/tools/fs/write-file.js.map +1 -0
  76. package/dist/tools/index.js +11 -11
  77. package/dist/tools/index.js.map +1 -1
  78. package/dist/tools/shared.js.map +1 -1
  79. package/dist/tools/{bash-background.js → shell/bash-background.js} +5 -6
  80. package/dist/tools/shell/bash-background.js.map +1 -0
  81. package/dist/tools/shell/bash-output.js.map +1 -0
  82. package/dist/tools/{bash.js → shell/bash.js} +6 -7
  83. package/dist/tools/shell/bash.js.map +1 -0
  84. package/dist/tools/shell/kill-bash.js.map +1 -0
  85. package/package.json +2 -2
  86. package/dist/tools/bash-background.js.map +0 -1
  87. package/dist/tools/bash-output.js.map +0 -1
  88. package/dist/tools/bash.js.map +0 -1
  89. package/dist/tools/edit-file.js.map +0 -1
  90. package/dist/tools/glob.js.map +0 -1
  91. package/dist/tools/grep.js.map +0 -1
  92. package/dist/tools/kill-bash.js.map +0 -1
  93. package/dist/tools/list-dir.js.map +0 -1
  94. package/dist/tools/read-file.js.map +0 -1
  95. package/dist/tools/skill-tool.js.map +0 -1
  96. package/dist/tools/todo.js.map +0 -1
  97. package/dist/tools/web-fetch.js.map +0 -1
  98. package/dist/tools/write-file.js.map +0 -1
  99. /package/dist/tools/{web-fetch.js → agent/web-fetch.js} +0 -0
  100. /package/dist/tools/{bash-output.js → shell/bash-output.js} +0 -0
  101. /package/dist/tools/{kill-bash.js → shell/kill-bash.js} +0 -0
@@ -0,0 +1,82 @@
1
+ import { homedir } from 'node:os';
2
+ import { join } from 'node:path';
3
+ import { existsSync, readFileSync } from 'node:fs';
4
+ import { loadConfig, maskKey, isPresetAlias } from '../../../config/config.js';
5
+ import { formatStats } from '../../stats/index.js';
6
+ import { thisMonthRange, readUsageSummary, readUsageByModel, formatUsageSummary, } from '../../stats/usage.js';
7
+ import { style } from '../../style.js';
8
+ import { cacheKey } from '../../../agent/model-catalog.js';
9
+ /** 读取 ~/.ccli/model-cache.json,返回当前 provider + baseURL 桶里的模型数量。 */
10
+ function countCachedModels(provider, baseURL, home = homedir()) {
11
+ const path = join(home, '.ccli', 'model-cache.json');
12
+ if (!existsSync(path))
13
+ return 0;
14
+ try {
15
+ const raw = readFileSync(path, 'utf8');
16
+ if (!raw.trim())
17
+ return 0;
18
+ const parsed = JSON.parse(raw);
19
+ const entry = parsed?.[cacheKey(provider, baseURL)];
20
+ return Array.isArray(entry?.models) ? entry.models.length : 0;
21
+ }
22
+ catch {
23
+ return 0;
24
+ }
25
+ }
26
+ /**
27
+ * /account:查看当前账号与配置来源。
28
+ * 展示生效的 provider、model、baseURL、apiKey 来源、别名、
29
+ * 当前会话 token 统计,以及模型目录缓存数量。
30
+ */
31
+ export async function handleAccount(ctx, arg = '') {
32
+ const result = loadConfig(ctx.cwd);
33
+ if (!result.ok) {
34
+ console.log(style.error(`配置加载失败:${result.message}`));
35
+ return;
36
+ }
37
+ const { config, source } = result;
38
+ const model = ctx.ai.getModel();
39
+ console.log(style.label('当前账号与配置'));
40
+ console.log(` 后端 (provider): ${config.provider}`);
41
+ console.log(` 模型 (model): ${model}`);
42
+ console.log(` 地址 (baseURL): ${config.baseURL ?? '(默认)'}`);
43
+ console.log(` 密钥 (apiKey): ${maskKey(config.apiKey)}`);
44
+ console.log(` 来源 (source): ${source}`);
45
+ console.log(` 当前角色 (role): ${ctx.currentRole}`);
46
+ const aliases = ctx.aliases ?? config.aliases ?? {};
47
+ const aliasEntries = Object.entries(aliases);
48
+ if (aliasEntries.length === 0) {
49
+ console.log(' 别名 (aliases): (未配置)');
50
+ }
51
+ else {
52
+ console.log(' 别名 (aliases):');
53
+ for (const [a, m] of aliasEntries) {
54
+ const tag = isPresetAlias(a, m, config.provider, config.baseURL)
55
+ ? style.muted('(预设)')
56
+ : '';
57
+ console.log(` ${a} → ${m} ${tag}`.trimEnd());
58
+ }
59
+ }
60
+ console.log(` Token 统计: ${formatStats(ctx.stats, model)}`);
61
+ const { since, until } = thisMonthRange();
62
+ const usage = readUsageSummary({
63
+ provider: config.provider,
64
+ since,
65
+ until,
66
+ });
67
+ console.log(` Usage 统计: ${formatUsageSummary(usage)}`);
68
+ const byModel = readUsageByModel({
69
+ provider: config.provider,
70
+ since,
71
+ until,
72
+ });
73
+ if (arg.includes('--by-model') && byModel.length > 0) {
74
+ console.log(' 按模型细分:');
75
+ for (const { model: m, summary } of byModel) {
76
+ console.log(` ${m}: ${formatUsageSummary(summary)}`);
77
+ }
78
+ }
79
+ const cachedCount = countCachedModels(config.provider, config.baseURL);
80
+ console.log(` 模型缓存: ${cachedCount > 0 ? `${cachedCount} 个` : '(无缓存,/models --refresh 可拉取)'}`);
81
+ }
82
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../../src/cli/slash/config/account.ts"],"names":[],"mappings":"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"}
@@ -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,20 +1,68 @@
1
+ import { resolveModelAlias, isPresetAlias, isReasoningModel, } from '../../../config/config.js';
2
+ import { getCachedModels } from '../../../agent/model-catalog.js';
3
+ import { style } from '../../style.js';
1
4
  /** /model 搜索时最多列出多少个候选,避免刷屏。 */
2
5
  const MAX_MODEL_LIST = 30;
3
6
  /**
4
- * /model:无参看当前模型 + 用法;带参先按完整名精确切换,
5
- * 否则当作关键词搜索列出候选(复制完整名再切)。
7
+ * 尝试用配置构造缓存所需的 provider/baseURL;配置加载失败时返回 undefined,
8
+ * 让 /model 回退到直接调用 ai.listModels()。
6
9
  */
7
- export async function handleModel(arg, ctx) {
8
- // 拉列表用于校验 / 搜索;后端不支持列模型时降级为「不校验直接切」
9
- let models = null;
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);
10
22
  try {
11
- models = await ctx.ai.listModels();
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();
12
30
  }
13
31
  catch {
14
- models = null;
32
+ return null;
15
33
  }
34
+ }
35
+ /**
36
+ * /model:无参看当前模型 + 别名 + 用法;带参先解析别名,再按完整名精确切换,
37
+ * 否则当作关键词搜索列出候选(复制完整名再切)。
38
+ */
39
+ export async function handleModel(arg, ctx) {
40
+ const aliases = ctx.aliases ?? {};
16
41
  if (!arg) {
17
42
  console.log(`当前模型:${ctx.ai.getModel()}`);
43
+ const aliasEntries = Object.entries(aliases);
44
+ if (aliasEntries.length > 0) {
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 <别名> 直接切)`);
57
+ }
58
+ // 拉一次列表只为告知总数;失败不阻断
59
+ let models = null;
60
+ try {
61
+ models = await listModelsWithCache(ctx);
62
+ }
63
+ catch {
64
+ models = null;
65
+ }
18
66
  if (models) {
19
67
  console.log(`可用模型共 ${models.length} 个。用 /model <关键词> 搜索,/model <完整名> 切换。`);
20
68
  }
@@ -23,6 +71,21 @@ export async function handleModel(arg, ctx) {
23
71
  }
24
72
  return;
25
73
  }
74
+ // 别名优先:命中别名直接切到真实模型,不再走搜索
75
+ const resolved = resolveModelAlias(arg, aliases);
76
+ if (resolved.alias) {
77
+ ctx.ai.setModel(resolved.model);
78
+ console.log(`已切换模型:${resolved.model}(别名 ${resolved.alias})`);
79
+ return;
80
+ }
81
+ // 拉列表用于校验 / 搜索;后端不支持列模型时降级为「不校验直接切」
82
+ let models = null;
83
+ try {
84
+ models = await listModelsWithCache(ctx);
85
+ }
86
+ catch {
87
+ models = null;
88
+ }
26
89
  if (!models) {
27
90
  ctx.ai.setModel(arg);
28
91
  console.log(`已切换模型:${arg}(未校验,若不存在下次请求会报错)`);
@@ -42,8 +105,10 @@ export async function handleModel(arg, ctx) {
42
105
  return;
43
106
  }
44
107
  console.log(`未精确匹配 “${arg}”,以下 ${matches.length} 个可选(复制完整名切换,当前仍为 ${ctx.ai.getModel()}):`);
45
- for (const m of matches.slice(0, MAX_MODEL_LIST))
46
- console.log(` ${m}`);
108
+ for (const m of matches.slice(0, MAX_MODEL_LIST)) {
109
+ const reasoning = isReasoningModel(m) ? style.muted(' [思考]') : '';
110
+ console.log(` ${m}${reasoning}`);
111
+ }
47
112
  if (matches.length > MAX_MODEL_LIST) {
48
113
  console.log(` … 还有 ${matches.length - MAX_MODEL_LIST} 个,请细化关键词`);
49
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/cli/slash/config/model.ts"],"names":[],"mappings":"AAEA,gCAAgC;AAChC,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,GAAW,EACX,GAAiB;IAEjB,oCAAoC;IACpC,IAAI,MAAM,GAAoB,IAAI,CAAC;IACnC,IAAI,CAAC;QACD,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CACP,SAAS,MAAM,CAAC,MAAM,uCAAuC,CAChE,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO;IACX,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,mBAAmB,CAAC,CAAC;QAC7C,OAAO;IACX,CAAC;IAED,iBAAiB;IACjB,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;QAC5B,OAAO;IACX,CAAC;IAED,qBAAqB;IACrB,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/D,OAAO;IACX,CAAC;IACD,OAAO,CAAC,GAAG,CACP,UAAU,GAAG,QAAQ,OAAO,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAChF,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,MAAM,GAAG,cAAc,WAAW,CAAC,CAAC;IACtE,CAAC;AACL,CAAC"}
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"}
@@ -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":"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"}
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":"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"}
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":"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"}
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 规划助手。