@gird/ccli 2.17.0 → 2.19.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 (80) hide show
  1. package/README.md +53 -2
  2. package/dist/agent/ai.js +3 -50
  3. package/dist/agent/ai.js.map +1 -1
  4. package/dist/agent/os.js +69 -0
  5. package/dist/agent/os.js.map +1 -0
  6. package/dist/agent/providers/anthropic.js +56 -5
  7. package/dist/agent/providers/anthropic.js.map +1 -1
  8. package/dist/agent/providers/gemini.js +10 -93
  9. package/dist/agent/providers/gemini.js.map +1 -1
  10. package/dist/agent/providers/openai.js +9 -1
  11. package/dist/agent/providers/openai.js.map +1 -1
  12. package/dist/agent/tool-projection.js +57 -0
  13. package/dist/agent/tool-projection.js.map +1 -0
  14. package/dist/cli/args/index.js +40 -0
  15. package/dist/cli/args/index.js.map +1 -1
  16. package/dist/cli/clipboard-image.js +51 -0
  17. package/dist/cli/clipboard-image.js.map +1 -0
  18. package/dist/cli/image-compress.js +62 -0
  19. package/dist/cli/image-compress.js.map +1 -0
  20. package/dist/cli/image-reference.js +190 -0
  21. package/dist/cli/image-reference.js.map +1 -0
  22. package/dist/cli/repl/index.js +52 -3
  23. package/dist/cli/repl/index.js.map +1 -1
  24. package/dist/cli/run/index.js +75 -12
  25. package/dist/cli/run/index.js.map +1 -1
  26. package/dist/cli/run/task.js +37 -0
  27. package/dist/cli/run/task.js.map +1 -1
  28. package/dist/cli/session/checkpoint.js +5 -4
  29. package/dist/cli/session/checkpoint.js.map +1 -1
  30. package/dist/cli/slash/config/model.js +30 -9
  31. package/dist/cli/slash/config/model.js.map +1 -1
  32. package/dist/cli/slash/index.js +14 -0
  33. package/dist/cli/slash/index.js.map +1 -1
  34. package/dist/cli/slash/session/replay.js +118 -0
  35. package/dist/cli/slash/session/replay.js.map +1 -0
  36. package/dist/cli/slash/system/agent.js +1 -0
  37. package/dist/cli/slash/system/agent.js.map +1 -1
  38. package/dist/cli/slash/system/goal.js +1 -0
  39. package/dist/cli/slash/system/goal.js.map +1 -1
  40. package/dist/cli/slash/system/help.js +1 -0
  41. package/dist/cli/slash/system/help.js.map +1 -1
  42. package/dist/cli/slash/system/plan.js +3 -0
  43. package/dist/cli/slash/system/plan.js.map +1 -1
  44. package/dist/config/config.js +32 -1
  45. package/dist/config/config.js.map +1 -1
  46. package/dist/config/plugins.js +378 -0
  47. package/dist/config/plugins.js.map +1 -0
  48. package/dist/config/skills.js +39 -2
  49. package/dist/config/skills.js.map +1 -1
  50. package/dist/harness/index.js +29 -1
  51. package/dist/harness/index.js.map +1 -1
  52. package/dist/harness/records.js +98 -0
  53. package/dist/harness/records.js.map +1 -0
  54. package/dist/index.js +77 -2
  55. package/dist/index.js.map +1 -1
  56. package/dist/server/index.js +338 -0
  57. package/dist/server/index.js.map +1 -0
  58. package/dist/server/sessions.js +181 -0
  59. package/dist/server/sessions.js.map +1 -0
  60. package/dist/server/webui.html +1341 -0
  61. package/dist/server/webui.js +12 -0
  62. package/dist/server/webui.js.map +1 -0
  63. package/dist/tools/bash-background.js +5 -6
  64. package/dist/tools/bash-background.js.map +1 -1
  65. package/dist/tools/bash.js +6 -7
  66. package/dist/tools/bash.js.map +1 -1
  67. package/dist/tools/edit-file.js +10 -4
  68. package/dist/tools/edit-file.js.map +1 -1
  69. package/dist/tools/glob.js +40 -6
  70. package/dist/tools/glob.js.map +1 -1
  71. package/dist/tools/grep.js +48 -8
  72. package/dist/tools/grep.js.map +1 -1
  73. package/dist/tools/list-dir.js +13 -2
  74. package/dist/tools/list-dir.js.map +1 -1
  75. package/dist/tools/read-file.js +4 -2
  76. package/dist/tools/read-file.js.map +1 -1
  77. package/dist/tools/shared.js.map +1 -1
  78. package/dist/tools/write-file.js +11 -4
  79. package/dist/tools/write-file.js.map +1 -1
  80. package/package.json +2 -2
@@ -0,0 +1,378 @@
1
+ /**
2
+ * 插件包(Plugins)—— 比单个 skill / MCP / hook 更大的**分发单元**。
3
+ *
4
+ * 一个插件就是一个目录,里面放一个 `plugin.json` 清单,把团队要用的
5
+ * 技能(skills)、MCP server、生命周期钩子(hooks)打包在一起。放进插件目录、
6
+ * 启用后,这些能力就一次性合并进当前会话——新人不用再手动拷 skills / 抄配置。
7
+ *
8
+ * 两个来源,同名时项目覆盖用户:
9
+ * 用户插件 ~/.ccli/plugins/<名>/plugin.json
10
+ * 项目插件 <cwd>/.ccli/plugins/<名>/plugin.json
11
+ *
12
+ * 贡献如何生效:
13
+ * - skills:清单里的相对路径(文件或目录)→ 由 loadSkills 以 'plugin' 来源装载
14
+ * (优先级:共享 < 插件 < 用户 < 项目)。
15
+ * - mcpServers / hooks:由 loadConfig 折叠进最终配置
16
+ * (mcpServers 会被显式配置覆盖;hooks 排在配置钩子之前)。
17
+ *
18
+ * 本步只做「发现 + 读取 + 聚合贡献 + 列表」。安装器 / 启停命令留作后续步;
19
+ * 现在停用一个插件,把它 plugin.json 里的 "enabled" 设为 false 即可。
20
+ */
21
+ import { cpSync, mkdirSync, readdirSync, readFileSync, rmSync, statSync, writeFileSync, } from 'node:fs';
22
+ import { homedir } from 'node:os';
23
+ import { isAbsolute, join, relative, resolve } from 'node:path';
24
+ import { HOOK_EVENTS } from './config.js';
25
+ const PLUGINS_REL = join('.ccli', 'plugins');
26
+ /** 安全读取目录:不存在 / 无权限一律按空处理。 */
27
+ function safeReaddir(dir) {
28
+ try {
29
+ return readdirSync(dir);
30
+ }
31
+ catch {
32
+ return [];
33
+ }
34
+ }
35
+ function isDir(p) {
36
+ try {
37
+ return statSync(p).isDirectory();
38
+ }
39
+ catch {
40
+ return false;
41
+ }
42
+ }
43
+ function isFile(p) {
44
+ try {
45
+ return statSync(p).isFile();
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ }
51
+ /** target 是否落在 dir 之内(含 dir 自身),用于拦截 `../` 越界路径。 */
52
+ function within(dir, target) {
53
+ const rel = relative(dir, target);
54
+ return rel === '' || (!rel.startsWith('..') && !isAbsolute(rel));
55
+ }
56
+ /** 从任意值中挑出合法钩子(与 config.ts 的规则一致,插件不应绕过校验)。 */
57
+ function pickHooks(raw, errors) {
58
+ if (raw === undefined)
59
+ return [];
60
+ if (!Array.isArray(raw)) {
61
+ errors.push('hooks 应为数组,已忽略');
62
+ return [];
63
+ }
64
+ const out = [];
65
+ for (const item of raw) {
66
+ if (!item || typeof item !== 'object')
67
+ continue;
68
+ if (!HOOK_EVENTS.includes(item.event)) {
69
+ errors.push(`hooks 含未知事件 ${String(item.event)},已忽略该条`);
70
+ continue;
71
+ }
72
+ if (typeof item.command !== 'string' || item.command.length === 0) {
73
+ errors.push('hooks 含空 command,已忽略该条');
74
+ continue;
75
+ }
76
+ const def = { event: item.event, command: item.command };
77
+ if (typeof item.matcher === 'string' && item.matcher.length > 0) {
78
+ def.matcher = item.matcher;
79
+ }
80
+ if (typeof item.timeout === 'number' &&
81
+ Number.isFinite(item.timeout) &&
82
+ item.timeout > 0) {
83
+ def.timeout = item.timeout;
84
+ }
85
+ out.push(def);
86
+ }
87
+ return out;
88
+ }
89
+ /** 校验 mcpServers:仅保留 value 为对象的条目。 */
90
+ function pickMcpServers(raw, errors) {
91
+ if (raw === undefined)
92
+ return {};
93
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
94
+ errors.push('mcpServers 应为对象,已忽略');
95
+ return {};
96
+ }
97
+ const out = {};
98
+ for (const [name, cfg] of Object.entries(raw)) {
99
+ if (cfg && typeof cfg === 'object' && !Array.isArray(cfg)) {
100
+ out[name] = cfg;
101
+ }
102
+ else {
103
+ errors.push(`mcpServers.${name} 非对象,已忽略`);
104
+ }
105
+ }
106
+ return out;
107
+ }
108
+ /** 解析 skills 声明为存在且未越界的绝对路径。 */
109
+ function resolveSkillPaths(raw, dir, errors) {
110
+ if (raw === undefined)
111
+ return [];
112
+ if (!Array.isArray(raw)) {
113
+ errors.push('skills 应为字符串数组,已忽略');
114
+ return [];
115
+ }
116
+ const out = [];
117
+ for (const entry of raw) {
118
+ if (typeof entry !== 'string' || entry.trim() === '')
119
+ continue;
120
+ const abs = resolve(dir, entry);
121
+ if (!within(dir, abs)) {
122
+ errors.push(`skills 路径越出插件目录,已忽略:${entry}`);
123
+ continue;
124
+ }
125
+ if (!isFile(abs) && !isDir(abs)) {
126
+ errors.push(`skills 路径不存在,已忽略:${entry}`);
127
+ continue;
128
+ }
129
+ out.push(abs);
130
+ }
131
+ return out;
132
+ }
133
+ /** 读取并解析单个插件目录;清单缺失或严重非法返回 null。 */
134
+ function loadOne(dir, source) {
135
+ const manifestPath = join(dir, 'plugin.json');
136
+ if (!isFile(manifestPath))
137
+ return null;
138
+ const errors = [];
139
+ let manifest;
140
+ try {
141
+ manifest = JSON.parse(readFileSync(manifestPath, 'utf8'));
142
+ }
143
+ catch (e) {
144
+ return {
145
+ name: baseName(dir),
146
+ version: '',
147
+ description: '',
148
+ enabled: false,
149
+ source,
150
+ dir,
151
+ manifestPath,
152
+ skillPaths: [],
153
+ mcpServers: {},
154
+ hooks: [],
155
+ errors: [`plugin.json 解析失败:${e?.message ?? String(e)}`],
156
+ };
157
+ }
158
+ const name = typeof manifest.name === 'string' && manifest.name.trim()
159
+ ? manifest.name.trim()
160
+ : baseName(dir);
161
+ if (!manifest.name || typeof manifest.name !== 'string') {
162
+ errors.push('plugin.json 缺少 name,已回退用目录名');
163
+ }
164
+ const enabled = manifest.enabled !== false; // 缺省启用
165
+ return {
166
+ name,
167
+ version: typeof manifest.version === 'string' ? manifest.version : '',
168
+ description: typeof manifest.description === 'string'
169
+ ? manifest.description
170
+ : '',
171
+ enabled,
172
+ source,
173
+ dir,
174
+ manifestPath,
175
+ skillPaths: resolveSkillPaths(manifest.skills, dir, errors),
176
+ mcpServers: pickMcpServers(manifest.mcpServers, errors),
177
+ hooks: pickHooks(manifest.hooks, errors),
178
+ errors,
179
+ };
180
+ }
181
+ /** 跨平台提取路径最后一段。 */
182
+ function baseName(p) {
183
+ const parts = p.split(/[/\\]/).filter(Boolean);
184
+ return parts[parts.length - 1] ?? p;
185
+ }
186
+ /** 扫描一个 plugins 根目录下的所有插件子目录。 */
187
+ function loadFromRoot(root, source) {
188
+ const out = [];
189
+ for (const entry of safeReaddir(root)) {
190
+ const dir = join(root, entry);
191
+ if (!isDir(dir))
192
+ continue;
193
+ const p = loadOne(dir, source);
194
+ if (p)
195
+ out.push(p);
196
+ }
197
+ return out;
198
+ }
199
+ /**
200
+ * 装载全部插件:用户 → 项目(同名时项目覆盖用户)。
201
+ * homeDir 仅供测试注入,默认取真实家目录。
202
+ */
203
+ export function loadPlugins(cwd = process.cwd(), homeDir = homedir()) {
204
+ const user = loadFromRoot(join(homeDir, PLUGINS_REL), 'user');
205
+ const project = loadFromRoot(join(cwd, PLUGINS_REL), 'project');
206
+ const byName = new Map();
207
+ for (const p of user)
208
+ byName.set(p.name.toLowerCase(), p);
209
+ for (const p of project)
210
+ byName.set(p.name.toLowerCase(), p); // 项目覆盖用户
211
+ return [...byName.values()].sort((a, b) => a.name.localeCompare(b.name));
212
+ }
213
+ /**
214
+ * 聚合已启用插件的 mcpServers 与 hooks,供 loadConfig 折叠进最终配置。
215
+ * 迭代顺序保证项目插件的 mcpServer 覆盖同名的用户插件(因已排序 + Object.assign)。
216
+ */
217
+ export function pluginContributions(plugins) {
218
+ const mcpServers = {};
219
+ const hooks = [];
220
+ for (const p of plugins) {
221
+ if (!p.enabled)
222
+ continue;
223
+ Object.assign(mcpServers, p.mcpServers);
224
+ hooks.push(...p.hooks);
225
+ }
226
+ return { mcpServers, hooks };
227
+ }
228
+ /** 插件名是否安全(能直接当目录名,不含分隔符 / 上跳)。 */
229
+ function isSafePluginName(name) {
230
+ return name.length > 0 && !/[/\\]/.test(name) && name !== '.' && name !== '..';
231
+ }
232
+ /**
233
+ * 安装插件:把一个插件目录拷进 `~/.ccli/plugins/<名>/`(或项目级)。
234
+ * 已存在同名则覆盖(升级语义)。纯文件操作,不校验清单里的具体贡献。
235
+ */
236
+ export function installPlugin(src, opts = {}) {
237
+ const cwd = opts.cwd ?? process.cwd();
238
+ const homeDir = opts.homeDir ?? homedir();
239
+ const srcDir = resolve(cwd, src);
240
+ if (!isDir(srcDir)) {
241
+ return { ok: false, message: `源不是目录:${src}` };
242
+ }
243
+ const manifestPath = join(srcDir, 'plugin.json');
244
+ if (!isFile(manifestPath)) {
245
+ return { ok: false, message: `源目录缺少 plugin.json:${src}` };
246
+ }
247
+ let manifest;
248
+ try {
249
+ manifest = JSON.parse(readFileSync(manifestPath, 'utf8'));
250
+ }
251
+ catch (e) {
252
+ return {
253
+ ok: false,
254
+ message: `plugin.json 解析失败:${e?.message ?? String(e)}`,
255
+ };
256
+ }
257
+ const name = typeof manifest.name === 'string' && manifest.name.trim()
258
+ ? manifest.name.trim()
259
+ : baseName(srcDir);
260
+ if (!isSafePluginName(name)) {
261
+ return { ok: false, message: `插件名不合法:${name}` };
262
+ }
263
+ const root = opts.project
264
+ ? join(cwd, PLUGINS_REL)
265
+ : join(homeDir, PLUGINS_REL);
266
+ const dest = join(root, name);
267
+ // 防止自我吞噬:源与目标重叠时拒绝(否则先 rm 会删掉源)
268
+ if (within(dest, srcDir) || within(srcDir, dest)) {
269
+ return { ok: false, message: `源与安装目标重叠,已取消:${dest}` };
270
+ }
271
+ const existed = isDir(dest);
272
+ try {
273
+ rmSync(dest, { recursive: true, force: true });
274
+ mkdirSync(root, { recursive: true });
275
+ cpSync(srcDir, dest, { recursive: true });
276
+ }
277
+ catch (e) {
278
+ return { ok: false, message: `安装失败:${e?.message ?? String(e)}` };
279
+ }
280
+ return {
281
+ ok: true,
282
+ name,
283
+ dest,
284
+ message: `${existed ? '已更新(覆盖旧版本)' : '已安装'} ${name} → ${dest}`,
285
+ };
286
+ }
287
+ /**
288
+ * 卸载插件:删除其目录。定位到生效的那个(同名时项目优先),删掉整个目录。
289
+ * 若同名还被更低优先级的目录遮蔽(如删了项目级、用户级仍在),提示可再次卸载。
290
+ */
291
+ export function uninstallPlugin(name, opts = {}) {
292
+ const cwd = opts.cwd ?? process.cwd();
293
+ const homeDir = opts.homeDir ?? homedir();
294
+ const target = loadPlugins(cwd, homeDir).find((p) => p.name.toLowerCase() === name.toLowerCase());
295
+ if (!target) {
296
+ return { ok: false, message: `未找到插件:${name}` };
297
+ }
298
+ try {
299
+ rmSync(target.dir, { recursive: true, force: true });
300
+ }
301
+ catch (e) {
302
+ return { ok: false, message: `卸载失败:${e?.message ?? String(e)}` };
303
+ }
304
+ // 删除后再看是否还有同名(更低优先级)残留,如实告知
305
+ const shadow = loadPlugins(cwd, homeDir).find((p) => p.name.toLowerCase() === name.toLowerCase());
306
+ const tail = shadow
307
+ ? `;仍存在同名的${shadow.source === 'user' ? '用户' : '项目'}级插件,可再次卸载`
308
+ : '';
309
+ return {
310
+ ok: true,
311
+ message: `已卸载插件 ${target.name}(${target.dir})${tail}`,
312
+ };
313
+ }
314
+ /**
315
+ * 启用 / 停用一个已安装插件:改写其 plugin.json 的 `enabled` 字段。
316
+ * 同名同时存在于用户与项目时,作用于生效的那个(项目优先)。
317
+ */
318
+ export function setPluginEnabled(name, enabled, opts = {}) {
319
+ const cwd = opts.cwd ?? process.cwd();
320
+ const homeDir = opts.homeDir ?? homedir();
321
+ const target = loadPlugins(cwd, homeDir).find((p) => p.name.toLowerCase() === name.toLowerCase());
322
+ if (!target) {
323
+ return { ok: false, message: `未找到插件:${name}` };
324
+ }
325
+ if (target.enabled === enabled) {
326
+ return {
327
+ ok: true,
328
+ message: `插件 ${target.name} 已是${enabled ? '启用' : '停用'}状态`,
329
+ };
330
+ }
331
+ let manifest;
332
+ try {
333
+ manifest = JSON.parse(readFileSync(target.manifestPath, 'utf8'));
334
+ }
335
+ catch (e) {
336
+ return {
337
+ ok: false,
338
+ message: `plugin.json 解析失败:${e?.message ?? String(e)}`,
339
+ };
340
+ }
341
+ manifest.enabled = enabled;
342
+ try {
343
+ writeFileSync(target.manifestPath, JSON.stringify(manifest, null, 2) + '\n', 'utf8');
344
+ }
345
+ catch (e) {
346
+ return { ok: false, message: `写入失败:${e?.message ?? String(e)}` };
347
+ }
348
+ return {
349
+ ok: true,
350
+ message: `已${enabled ? '启用' : '停用'}插件 ${target.name}`,
351
+ };
352
+ }
353
+ /**
354
+ * `ccli plugin [list]` 诊断命令:列出发现的插件、来源、启停与贡献数量。
355
+ * @returns 进程退出码(恒 0,纯展示)
356
+ */
357
+ export function printPlugins(cwd = process.cwd()) {
358
+ const plugins = loadPlugins(cwd);
359
+ if (plugins.length === 0) {
360
+ console.log('没有已安装的插件。在 ~/.ccli/plugins/<名>/ 或 <项目>/.ccli/plugins/<名>/ ' +
361
+ '放置 plugin.json 即可定义。');
362
+ return 0;
363
+ }
364
+ const TAG = { user: '用户', project: '项目' };
365
+ console.log('已安装插件:');
366
+ for (const p of plugins) {
367
+ const state = p.enabled ? '启用' : '停用';
368
+ const ver = p.version ? `@${p.version}` : '';
369
+ const desc = p.description ? ` — ${p.description}` : '';
370
+ console.log(` ${p.name}${ver} [${TAG[p.source]}·${state}]${desc}`);
371
+ console.log(` 技能 ${p.skillPaths.length} · MCP ${Object.keys(p.mcpServers).length} · 钩子 ${p.hooks.length}`);
372
+ for (const err of p.errors) {
373
+ console.log(` ⚠ ${err}`);
374
+ }
375
+ }
376
+ return 0;
377
+ }
378
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/config/plugins.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,9 @@
15
15
  * 正文里的 `$ARGUMENTS` 会被调用参数替换;没有该占位符时参数追加到末尾。
16
16
  */
17
17
  import { readdirSync, readFileSync, statSync } from 'node:fs';
18
- import { join, relative } from 'node:path';
18
+ import { dirname, join, relative } from 'node:path';
19
19
  import { homedir } from 'node:os';
20
+ import { loadPlugins } from './plugins.js';
20
21
  /**
21
22
  * 共享技能目录(agent 通用约定,Claude / Kimi 等也扫这里)。
22
23
  * 让 CCLI 复用生态里已装好的技能,如 baoyu-url-to-markdown(浏览器抓网页转 markdown)。
@@ -199,17 +200,52 @@ function loadFromRoot(root, source) {
199
200
  */
200
201
  export function loadSkills(cwd = process.cwd(), homeDir = homedir()) {
201
202
  const shared = SHARED_SKILLS_DIRS.flatMap((rel) => loadFromRoot(join(homeDir, rel), 'shared'));
203
+ // 插件包声明的技能(plugin.json 的 skills 字段),优先级介于共享与用户之间
204
+ const plugin = loadPlugins(cwd, homeDir)
205
+ .filter((p) => p.enabled)
206
+ .flatMap((p) => p.skillPaths.flatMap((path) => loadSkillsFromPath(path, 'plugin')));
202
207
  const user = loadFromRoot(join(homeDir, '.ccli', 'skills'), 'user');
203
208
  const project = loadFromRoot(join(cwd, '.ccli', 'skills'), 'project');
204
209
  const byName = new Map();
205
210
  for (const s of shared)
206
211
  byName.set(s.name.toLowerCase(), s);
212
+ for (const s of plugin)
213
+ byName.set(s.name.toLowerCase(), s); // 插件覆盖共享
207
214
  for (const s of user)
208
- byName.set(s.name.toLowerCase(), s); // 用户覆盖共享
215
+ byName.set(s.name.toLowerCase(), s); // 用户覆盖插件
209
216
  for (const s of project)
210
217
  byName.set(s.name.toLowerCase(), s); // 项目覆盖用户
211
218
  return [...byName.values()].sort((a, b) => a.name.localeCompare(b.name));
212
219
  }
220
+ /**
221
+ * 从一个具体路径装载技能——供插件包按 plugin.json 里声明的 skills 路径引入。
222
+ * - 目录含 SKILL.md → 作为技能包(含其嵌套子技能)
223
+ * - 目录不含 SKILL.md → 当作 skills 根目录扫描(顶层 .md + 子技能包)
224
+ * - .md 文件 → 一个扁平技能
225
+ * 路径不存在或无有效技能时返回空数组。
226
+ */
227
+ export function loadSkillsFromPath(path, source) {
228
+ if (isDir(path)) {
229
+ if (isFile(join(path, 'SKILL.md'))) {
230
+ const out = [];
231
+ walkBundles(path, source, 1, out, false);
232
+ return out;
233
+ }
234
+ return loadFromRoot(path, source);
235
+ }
236
+ if (isFile(path) && path.endsWith('.md')) {
237
+ let raw = '';
238
+ try {
239
+ raw = readFileSync(path, 'utf8');
240
+ }
241
+ catch {
242
+ return [];
243
+ }
244
+ const s = makeSkill(raw, baseName(path).slice(0, -'.md'.length), source, dirname(path), false, [], false, path);
245
+ return s ? [s] : [];
246
+ }
247
+ return [];
248
+ }
213
249
  /** 按名字取技能(大小写不敏感)。 */
214
250
  export function getSkill(skills, name) {
215
251
  const key = name.toLowerCase();
@@ -266,6 +302,7 @@ export function formatSkillList(skills) {
266
302
  project: '项目',
267
303
  user: '用户',
268
304
  shared: '共享',
305
+ plugin: '插件',
269
306
  };
270
307
  for (const s of skills) {
271
308
  const tag = SOURCE_TAG[s.origin.source];
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/config/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/config/skills.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { homedir } from 'node:os';
10
10
  import { NAME, VERSION } from '../version.js';
11
11
  import { createAIClient, } from '../agent/ai.js';
12
12
  import { McpClientManager } from '../agent/mcp.js';
13
+ import { LocalOS } from '../agent/os.js';
13
14
  import { DEFAULT_SYSTEM_PROMPT, getRolePrompt, loadConfig, resolveMaxStepsPerTurn, } from '../config/config.js';
14
15
  import { loadEnvFile } from '../config/env.js';
15
16
  import { appendMemories, loadMemories } from '../config/memory.js';
@@ -19,6 +20,7 @@ import { registerMcpTools, registerTool, resetTools, } from '../tools/index.js';
19
20
  import { runAgentTurn, runOnce as runOnceTurn, } from '../cli/run/index.js';
20
21
  import { runHooks, runUserPromptHooks, } from '../cli/run/hooks.js';
21
22
  import { defaultName } from '../cli/session/index.js';
23
+ import { defaultRecordsDir, pruneRecordsDir, RecordsWriter, } from './records.js';
22
24
  export class CcliHarness {
23
25
  /** Harness 绑定的工作目录;配置、记忆、技能、MCP 环境变量都以它为基准解析。 */
24
26
  cwd;
@@ -36,8 +38,12 @@ export class CcliHarness {
36
38
  memories;
37
39
  /** 当前 MCP manager;没有 MCP 配置时为 null,退出时由 `close()` 统一清理。 */
38
40
  mcpManager;
39
- /** 当前会话 ID(用于快照备份命名)。 */
41
+ /** 当前会话 ID(用于快照备份与 records 文件命名)。 */
40
42
  sessionId;
43
+ /** 会话事件记录目录。 */
44
+ recordsDir;
45
+ /** 执行抽象层。 */
46
+ os;
41
47
  /** 解析并获取当前应生效的快照备份基准目录。 */
42
48
  get checkpointsDir() {
43
49
  const mode = this.config.checkpoint?.mode ?? 'local';
@@ -68,6 +74,16 @@ export class CcliHarness {
68
74
  this.mcpManager = options.mcpManager;
69
75
  this.mcpErrors = options.mcpErrors;
70
76
  this.sessionId = options.sessionId ?? 'test-session';
77
+ this.recordsDir = options.recordsDir ?? defaultRecordsDir();
78
+ this.os = options.os ?? new LocalOS();
79
+ }
80
+ /**
81
+ * 记录一条会话事件到 records(~/.ccli/records/<sessionId>.jsonl)。
82
+ * 每次调用按当前 sessionId 现取 writer(sessionId 可能被 /session 换掉);
83
+ * 写入失败在 RecordsWriter 内部静默,绝不打断会话。
84
+ */
85
+ recordEvent(event) {
86
+ new RecordsWriter(this.recordsDir, this.sessionId).write(event);
71
87
  }
72
88
  /**
73
89
  * 返回当前应生效的 hooks。
@@ -144,8 +160,10 @@ export class CcliHarness {
144
160
  checkpointsDir: this.checkpointsDir,
145
161
  ai: this.ai,
146
162
  cwd: this.cwd,
163
+ os: this.os,
147
164
  configMaxSteps: options.configMaxSteps ?? this.maxStepsPerTurn(),
148
165
  hooks: options.hooks ?? this.hooks,
166
+ record: options.record ?? ((e) => this.recordEvent(e)),
149
167
  });
150
168
  }
151
169
  /**
@@ -190,6 +208,7 @@ export class CcliHarness {
190
208
  systemPrompt: options.systemPrompt ?? this.buildSystemPrompt(),
191
209
  configMaxSteps: this.maxStepsPerTurn(),
192
210
  hooks: this.hooks,
211
+ record: (e) => this.recordEvent(e),
193
212
  });
194
213
  }
195
214
  /**
@@ -294,6 +313,13 @@ export async function createCcliHarness(options = {}) {
294
313
  const skillTool = makeSkillTool(skills);
295
314
  if (skillTool)
296
315
  registerTool(skillTool);
316
+ // records 轮转清理:每次启动删一次过期/超量文件,失败静默(不挡启动)
317
+ try {
318
+ pruneRecordsDir(options.recordsDir ?? defaultRecordsDir());
319
+ }
320
+ catch {
321
+ // 清理失败不影响启动
322
+ }
297
323
  return {
298
324
  ok: true,
299
325
  harness: new CcliHarness({
@@ -306,6 +332,8 @@ export async function createCcliHarness(options = {}) {
306
332
  mcpManager,
307
333
  mcpErrors,
308
334
  sessionId: defaultName(),
335
+ recordsDir: options.recordsDir,
336
+ os: options.os,
309
337
  }),
310
338
  };
311
339
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"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"}