@gird/ccli 2.20.0 → 2.21.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 (52) hide show
  1. package/README.md +2 -0
  2. package/dist/agent/ai.js.map +1 -1
  3. package/dist/agent/providers/anthropic.js +112 -4
  4. package/dist/agent/providers/anthropic.js.map +1 -1
  5. package/dist/agent/rag/db.js +142 -0
  6. package/dist/agent/rag/db.js.map +1 -0
  7. package/dist/agent/rag/embedding.js +135 -0
  8. package/dist/agent/rag/embedding.js.map +1 -0
  9. package/dist/agent/rag/indexer.js +104 -0
  10. package/dist/agent/rag/indexer.js.map +1 -0
  11. package/dist/agent/rag/parser.js +75 -0
  12. package/dist/agent/rag/parser.js.map +1 -0
  13. package/dist/agent/rag/search.js +47 -0
  14. package/dist/agent/rag/search.js.map +1 -0
  15. package/dist/cli/args/index.js +8 -0
  16. package/dist/cli/args/index.js.map +1 -1
  17. package/dist/cli/run/index.js +8 -5
  18. package/dist/cli/run/index.js.map +1 -1
  19. package/dist/cli/run/task.js +168 -31
  20. package/dist/cli/run/task.js.map +1 -1
  21. package/dist/cli/slash/config/account.js +2 -0
  22. package/dist/cli/slash/config/account.js.map +1 -1
  23. package/dist/cli/slash/index.js +8 -0
  24. package/dist/cli/slash/index.js.map +1 -1
  25. package/dist/cli/slash/system/help.js +2 -0
  26. package/dist/cli/slash/system/help.js.map +1 -1
  27. package/dist/cli/slash/system/indexer.js +25 -0
  28. package/dist/cli/slash/system/indexer.js.map +1 -0
  29. package/dist/cli/slash/system/upgrade.js +13 -0
  30. package/dist/cli/slash/system/upgrade.js.map +1 -0
  31. package/dist/cli/upgrade.js +90 -0
  32. package/dist/cli/upgrade.js.map +1 -0
  33. package/dist/config/config.js +137 -4
  34. package/dist/config/config.js.map +1 -1
  35. package/dist/config/project-context.js +135 -0
  36. package/dist/config/project-context.js.map +1 -0
  37. package/dist/harness/index.js +8 -2
  38. package/dist/harness/index.js.map +1 -1
  39. package/dist/index.js +12 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/server/webui-content.js +2 -0
  42. package/dist/server/webui-content.js.map +1 -0
  43. package/dist/server/webui.js +15 -4
  44. package/dist/server/webui.js.map +1 -1
  45. package/dist/tools/fs/list-dir.js +75 -25
  46. package/dist/tools/fs/list-dir.js.map +1 -1
  47. package/dist/tools/index.js +2 -0
  48. package/dist/tools/index.js.map +1 -1
  49. package/dist/tools/rag/search.js +65 -0
  50. package/dist/tools/rag/search.js.map +1 -0
  51. package/dist/tools/shared.js.map +1 -1
  52. package/package.json +3 -1
@@ -0,0 +1,75 @@
1
+ import ts from 'typescript';
2
+ import { createHash } from 'node:crypto';
3
+ function getMd5(text) {
4
+ return createHash('md5').update(text).digest('hex');
5
+ }
6
+ /**
7
+ * 使用 TypeScript Compiler API 解析文件大纲,抓取类、函数、方法、接口和变量定义,
8
+ * 并自动截取代码正文计算 MD5 校验和。
9
+ */
10
+ export function parseSourceFile(filePath, content) {
11
+ const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true);
12
+ const symbols = [];
13
+ function visit(node) {
14
+ let name = '';
15
+ let type = '';
16
+ if (ts.isClassDeclaration(node) && node.name) {
17
+ name = node.name.text;
18
+ type = 'class';
19
+ }
20
+ else if (ts.isFunctionDeclaration(node) && node.name) {
21
+ name = node.name.text;
22
+ type = 'function';
23
+ }
24
+ else if (ts.isInterfaceDeclaration(node) && node.name) {
25
+ name = node.name.text;
26
+ type = 'interface';
27
+ }
28
+ else if (ts.isMethodDeclaration(node) && node.name) {
29
+ if (ts.isIdentifier(node.name)) {
30
+ name = node.name.text;
31
+ type = 'method';
32
+ }
33
+ }
34
+ else if (ts.isModuleDeclaration(node) && node.name) {
35
+ name = node.name.text;
36
+ type = 'namespace';
37
+ }
38
+ else if (ts.isVariableStatement(node)) {
39
+ // 支持 export const x = ... 等变量声明的符号解析与哈希
40
+ for (const decl of node.declarationList.declarations) {
41
+ if (ts.isIdentifier(decl.name)) {
42
+ const varName = decl.name.text;
43
+ const start = sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile));
44
+ const end = sourceFile.getLineAndCharacterOfPosition(node.getEnd());
45
+ const codeText = content.substring(node.getStart(sourceFile), node.getEnd());
46
+ const contentHash = getMd5(codeText.trim());
47
+ symbols.push({
48
+ name: varName,
49
+ type: 'variable',
50
+ startLine: start.line + 1,
51
+ endLine: end.line + 1,
52
+ contentHash
53
+ });
54
+ }
55
+ }
56
+ }
57
+ if (name && type) {
58
+ const start = sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile));
59
+ const end = sourceFile.getLineAndCharacterOfPosition(node.getEnd());
60
+ const codeText = content.substring(node.getStart(sourceFile), node.getEnd());
61
+ const contentHash = getMd5(codeText.trim());
62
+ symbols.push({
63
+ name,
64
+ type,
65
+ startLine: start.line + 1,
66
+ endLine: end.line + 1,
67
+ contentHash
68
+ });
69
+ }
70
+ ts.forEachChild(node, visit);
71
+ }
72
+ ts.forEachChild(sourceFile, visit);
73
+ return symbols;
74
+ }
75
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/agent/rag/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { initDb, getAllSymbolsForSearch } from './db.js';
2
+ import { getEmbedding, cosineSimilarity, readCodeSnippet } from './embedding.js';
3
+ /**
4
+ * 本地代码库模糊语义检索。
5
+ * 将自然语言转化为向量,计算 SQLite 符号库的余弦相似度并按匹配度倒序返回。
6
+ * 支持 RuntimeOS 跨环境读取真实文件内容。
7
+ */
8
+ export async function codebaseSearch(query, config, workspacePath, limit = 5, os) {
9
+ const db = initDb(workspacePath);
10
+ // 1. 获取输入文本的向量坐标
11
+ const queryVector = await getEmbedding(query, config);
12
+ // 2. 从本地 SQLite 获取所有已同步的符号及向量
13
+ const dbSymbols = getAllSymbolsForSearch(db);
14
+ // 3. 在内存中极速计算余弦相似度并评分排序
15
+ const scored = dbSymbols.map(sym => {
16
+ let vec = [];
17
+ try {
18
+ vec = JSON.parse(sym.embedding || '[]');
19
+ }
20
+ catch { }
21
+ const similarity = cosineSimilarity(queryVector, vec);
22
+ return {
23
+ filePath: sym.file_path,
24
+ name: sym.name,
25
+ type: sym.type,
26
+ startLine: sym.start_line,
27
+ endLine: sym.end_line,
28
+ similarity
29
+ };
30
+ });
31
+ // 过滤掉完全不相关的项,并按评分从高到低截取前 N 项
32
+ const topScored = scored
33
+ .filter(item => item.similarity > 0)
34
+ .sort((a, b) => b.similarity - a.similarity)
35
+ .slice(0, limit);
36
+ // 4. 从本地源文件中读取命中的代码段正文(支持 SshOS/DockerOS 远程或本地 OS)
37
+ const results = [];
38
+ for (const item of topScored) {
39
+ const code = await readCodeSnippet(workspacePath, item.filePath, item.startLine, item.endLine, os);
40
+ results.push({
41
+ ...item,
42
+ code
43
+ });
44
+ }
45
+ return results;
46
+ }
47
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/agent/rag/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAcjF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,KAAa,EACb,MAAc,EACd,aAAqB,EACrB,KAAK,GAAG,CAAC,EACT,EAAc;IAEd,MAAM,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAEjC,iBAAiB;IACjB,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEtD,8BAA8B;IAC9B,MAAM,SAAS,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAE7C,wBAAwB;IACxB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC/B,IAAI,GAAG,GAAa,EAAE,CAAC;QACvB,IAAI,CAAC;YACD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACtD,OAAO;YACH,QAAQ,EAAE,GAAG,CAAC,SAAS;YACvB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,OAAO,EAAE,GAAG,CAAC,QAAQ;YACrB,UAAU;SACb,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,SAAS,GAAG,MAAM;SACnB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACnC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;SAC3C,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAErB,mDAAmD;IACnD,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnG,OAAO,CAAC,IAAI,CAAC;YACT,GAAG,IAAI;YACP,IAAI;SACP,CAAC,CAAC;IACP,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -11,6 +11,7 @@ export function parseArgs(argv) {
11
11
  yes: false,
12
12
  noHooks: false,
13
13
  project: false,
14
+ upgrade: false,
14
15
  unknown: [],
15
16
  positionals: [],
16
17
  };
@@ -57,6 +58,10 @@ export function parseArgs(argv) {
57
58
  }
58
59
  break;
59
60
  }
61
+ case '--upgrade': {
62
+ result.upgrade = true;
63
+ break;
64
+ }
60
65
  case '--port': {
61
66
  const next = argv[i + 1];
62
67
  const n = Number(next);
@@ -114,6 +119,9 @@ export function parseArgs(argv) {
114
119
  }
115
120
  }
116
121
  }
122
+ if (result.positionals[0] === 'upgrade') {
123
+ result.upgrade = true;
124
+ }
117
125
  return result;
118
126
  }
119
127
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/args/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/args/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { LocalOS } from '../../agent/os.js';
2
2
  import { style } from '../style.js';
3
3
  import { executeTool, getTool, registerMcpTools, registerTool, textToolResult, } from '../../tools/index.js';
4
- import { createTaskTool } from './task.js';
4
+ import { createTaskTool, createSwarmTool } from './task.js';
5
5
  import { getTodos, renderTodoPanel, resetTodos } from '../../tools/agent/todo.js';
6
6
  import { ruleKeyFor } from './permissions.js';
7
7
  import { formatToolCall, formatToolResult, toolCallLines, } from './format.js';
@@ -9,7 +9,7 @@ import { LineFoldPrinter, renderWithFold } from './fold.js';
9
9
  import { WriteFileStreamPrinter } from './stream-write.js';
10
10
  import { estimatePromptTokens, estimateTokens, } from '../stats/index.js';
11
11
  import { appendUsage } from '../stats/usage.js';
12
- import { DEFAULT_SYSTEM_PROMPT } from '../../config/config.js';
12
+ import { DEFAULT_SYSTEM_PROMPT, } from '../../config/config.js';
13
13
  import { runHooks } from './hooks.js';
14
14
  /** 单个用户回合内的默认最大工具调用轮数(未配置 maxStepsPerTurn 时)。
15
15
  * 用户可在 config 设 maxStepsPerTurn 调整;0 或负数表示不限。 */
@@ -105,7 +105,7 @@ function toolResultForModel(result, repeatCount) {
105
105
  * 直到模型不再调用工具(给出最终回答)或达到轮数上限。
106
106
  */
107
107
  export async function runAgentTurn(options) {
108
- const { ai, history, confirm, stats, print = process.stdout.write.bind(process.stdout), cwd = process.cwd(), maxRounds, requireToolsFirstRound, continueOnPendingTodos, allowedTools, onReasoning, onHookOutput, onPermissionRequest, onToolCall, onToolResult, permission, configMaxSteps, todoPanel = true, endPanel = true, hooks, record, sessionId, checkpointsDir, os = new LocalOS(), provider, } = options;
108
+ const { ai, history, confirm, stats, print = process.stdout.write.bind(process.stdout), cwd = process.cwd(), maxRounds, requireToolsFirstRound, continueOnPendingTodos, allowedTools, onReasoning, onHookOutput, onPermissionRequest, onToolCall, onToolResult, permission, configMaxSteps, todoPanel = true, endPanel = true, hooks, record, sessionId, checkpointsDir, os = new LocalOS(), provider, subagents, } = options;
109
109
  // 上限优先级:显式 maxRounds(/agent、/goal)> configMaxSteps(config 解析)> 默认 50。
110
110
  // limit <= 0 表示不限(跳过检查),对齐 config maxStepsPerTurn=0 语义。
111
111
  const limit = maxRounds ?? configMaxSteps ?? DEFAULT_MAX_STEPS;
@@ -145,9 +145,11 @@ export async function runAgentTurn(options) {
145
145
  record,
146
146
  os,
147
147
  provider,
148
+ subagents,
148
149
  };
149
- // 注册 task 子代理工具(每回合注册一次,registerTool 同名替换幂等)。
150
+ // 注册 task / swarm 子代理工具(每回合注册一次,registerTool 同名替换幂等)。
150
151
  registerTool(createTaskTool(toolCtx));
152
+ registerTool(createSwarmTool(toolCtx));
151
153
  let lastToolKey = null;
152
154
  let repeatCount = 0;
153
155
  // 待办未完成时的续跑提醒计数:连续空转达到上限就放弃,避免死循环
@@ -462,7 +464,7 @@ export async function runAgentTurn(options) {
462
464
  * 以 systemPrompt 开场,把 prompt 作为 user 消息发送,执行一轮后返回。
463
465
  */
464
466
  export async function runOnce(options) {
465
- const { ai, prompt, confirm, print = process.stdout.write.bind(process.stdout), cwd = process.cwd(), systemPrompt = DEFAULT_SYSTEM_PROMPT, mcpManager, configMaxSteps, hooks, record, sessionId, checkpointsDir, os, provider, } = options;
467
+ const { ai, prompt, confirm, print = process.stdout.write.bind(process.stdout), cwd = process.cwd(), systemPrompt = DEFAULT_SYSTEM_PROMPT, mcpManager, configMaxSteps, hooks, record, sessionId, checkpointsDir, os, provider, subagents, } = options;
466
468
  if (mcpManager) {
467
469
  await registerMcpTools(mcpManager);
468
470
  }
@@ -487,6 +489,7 @@ export async function runOnce(options) {
487
489
  record,
488
490
  os,
489
491
  provider,
492
+ subagents,
490
493
  });
491
494
  return output;
492
495
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/run/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/run/index.ts"],"names":[],"mappings":"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"}
@@ -10,14 +10,15 @@
10
10
  * - 共享主会话 confirm / permission / stats(破坏性操作仍问用户;已放行的子代理也放行)。
11
11
  * - 防递归:子代理若调用 task,直接拒绝(返回错误文本),不允许再委派。
12
12
  * - 子代理的 write_file 与主循环一致:逐 token 带行号流式展示(共用 WriteFileStreamPrinter)。
13
- * - subagent_typeexplore(只读:read_file/list_dir/grep/bash_output)/ code(编码:除 task 外全套),
14
- * 按类型定制 system prompt + 裁剪「暴露给模型的工具定义」,并在执行侧用守卫兜底(模型越权调用也拒绝)。
13
+ * - subagent_type:任意已配置的子代理 profile 名(内置如 explore / code / architect 等),
14
+ * profile 决定 system prompt 与允许工具集;执行侧用守卫兜底(模型越权调用也拒绝)。
15
15
  *
16
16
  * 放在 cli/run 而非 tools/:task 需要 runAgentTurn 级别的编排能力与 ctx,
17
17
  * 且避免 tools ↔ cli/run 循环依赖(本文件只 import tools / ai / 同层工具)。
18
18
  */
19
19
  import { executeTool, getTool, textToolResult, toolNames } from '../../tools/index.js';
20
20
  import { getTodos, setTodos } from '../../tools/agent/todo.js';
21
+ import { BUILTIN_SUBAGENTS, renderSubagentPrompt, } from '../../config/config.js';
21
22
  import { style } from '../style.js';
22
23
  import { ruleKeyFor } from './permissions.js';
23
24
  import { formatToolCall, formatToolResult, toolCallLines, } from './format.js';
@@ -37,27 +38,26 @@ import { estimatePromptTokens, estimateTokens } from '../stats/index.js';
37
38
  * 只读诊断任务;不希望子代理碰后台输出时,用 kill_bash 清掉再委派即可。
38
39
  */
39
40
  const EXPLORE_TOOLS = ['read_file', 'list_dir', 'grep', 'bash_output'];
40
- /** 各类型对应的 system prompt。 */
41
- const PROMPTS = {
42
- explore: `你是 CCLI 的【只读探索】子代理,被主代理委派完成一个独立的探索/分析子任务。
43
- 你只能使用只读工具(read_file / list_dir / grep / bash_output):读文件、列目录、搜索代码、查看后台输出。
44
- 严禁修改文件、执行写命令或任何有副作用的操作(即使你觉得自己能改进,也只能建议,不能动手)。
45
- 你的产出是「理解 + 定位 + 总结」:回答了什么问题、关键文件/函数在哪、结论是什么。用简洁中文总结。`,
46
- code: `你是 CCLI 的【编码】子代理,被主代理委派完成一个独立的编码子任务。
47
- 你可以使用全套工具(read_file / list_dir / grep / write_file / edit_file / bash 等)独立实现它。
48
- 注意:不要再调用 task 工具继续委派(会被拒绝)。
49
- 完成后用简洁中文总结:做了什么、改了哪些文件、结果如何。`,
50
- default: `你是 CCLI 的子代理,被主代理委派完成一个独立的子任务。
51
- 请用可用工具(read_file / list_dir / grep / write_file / edit_file / bash 等)专注、独立地完成它。
52
- 注意:不要再调用 task 工具继续委派(会被拒绝)。
53
- 完成后用简洁中文总结:做了什么、改了哪些文件、结果如何。`,
54
- };
55
- /** 按类型计算「允许暴露给模型 + 允许执行」的工具名集合。task 永远排除(防递归)。 */
56
- function resolveAllowedTools(type) {
57
- if (type === 'explore')
41
+ /** 从传入表或内置表查找 profile;未找到时回退 default。 */
42
+ function resolveSubagentProfile(name, subagents) {
43
+ const key = name && name.length > 0 ? name : 'default';
44
+ return subagents?.[key] ?? BUILTIN_SUBAGENTS[key] ?? BUILTIN_SUBAGENTS.default;
45
+ }
46
+ /** 根据 profile 计算允许暴露给模型并允许执行的工具名集合。 */
47
+ function resolveAllowedTools(profile) {
48
+ if (profile.tools !== undefined && profile.tools.length > 0) {
49
+ return profile.tools.filter((n) => n !== 'task' && n !== 'swarm');
50
+ }
51
+ if (profile.readonly)
58
52
  return [...EXPLORE_TOOLS];
59
- // code / 默认:除 task 外的全部已注册工具(含内置 + MCP)
60
- return toolNames().filter((n) => n !== 'task');
53
+ // 默认可写:除 task / swarm 外的全部已注册工具(含内置 + MCP)
54
+ return toolNames().filter((n) => n !== 'task' && n !== 'swarm');
55
+ }
56
+ /** 判断一个值是否是合法的 swarm 角色(在配置表或内置表中存在)。 */
57
+ function isSubAgentRole(role, subagents) {
58
+ if (typeof role !== 'string')
59
+ return false;
60
+ return subagents?.[role] !== undefined || BUILTIN_SUBAGENTS[role] !== undefined;
61
61
  }
62
62
  /** 子代理最多连续调用工具的轮数,防止失控。 */
63
63
  const MAX_ROUNDS = 8;
@@ -104,11 +104,40 @@ export function linePrefixer(print, gutter) {
104
104
  print(out);
105
105
  };
106
106
  }
107
+ /** 合并传入表与内置表的子代理名列表。 */
108
+ function subagentNames(subagents) {
109
+ const set = new Set([
110
+ ...Object.keys(BUILTIN_SUBAGENTS),
111
+ ...Object.keys(subagents ?? {}),
112
+ ]);
113
+ return [...set];
114
+ }
115
+ /** 把 profile 表格式化成「给父代理看的子代理说明」文本。 */
116
+ function buildSubagentListing(subagents) {
117
+ const merged = {
118
+ ...BUILTIN_SUBAGENTS,
119
+ ...(subagents ?? {}),
120
+ };
121
+ const lines = Object.entries(merged).map(([name, p]) => {
122
+ const header = p.description
123
+ ? `- ${name}: ${p.description}`
124
+ : `- ${name}`;
125
+ const body = p.whenToUse ? ` ${p.whenToUse}` : '';
126
+ return body ? `${header}\n${body}` : header;
127
+ });
128
+ return lines.join('\n');
129
+ }
107
130
  /** 构造 task 工具(绑定主会话上下文)。 */
108
131
  export function createTaskTool(ctx) {
132
+ const names = subagentNames(ctx.subagents);
133
+ const listing = buildSubagentListing(ctx.subagents);
109
134
  return {
110
135
  name: 'task',
111
- description: '把一个独立的子任务委派给子代理完成。子代理有独立上下文,完成后返回简洁结论,避免污染主对话。可用 subagent_type 指定类型:explore=只读探索(仅 read_file/list_dir/grep/bash_output,不能改文件);code=编码(除 task 外全套工具);省略则用通用子代理。',
136
+ description: '把一个独立的子任务委派给子代理完成。子代理有独立上下文,完成后返回简洁结论,避免污染主对话。' +
137
+ '可用 subagent_type 指定 profile;省略则用 default 通用子代理。' +
138
+ (listing
139
+ ? `\n\nAvailable subagent types (pass via subagent_type):\n${listing}`
140
+ : ''),
112
141
  parameters: {
113
142
  type: 'object',
114
143
  properties: {
@@ -122,8 +151,8 @@ export function createTaskTool(ctx) {
122
151
  },
123
152
  subagent_type: {
124
153
  type: 'string',
125
- enum: ['explore', 'code'],
126
- description: '子代理类型:explore=只读探索(仅只读工具,适合调研/定位/总结,不能改文件);code=编码(全套工具,适合实现/修改)。省略=通用子代理。',
154
+ enum: names,
155
+ description: '子代理 profile 名。用户还可在 .ccli/config.json 自定义。',
127
156
  },
128
157
  },
129
158
  required: ['description', 'prompt'],
@@ -139,8 +168,12 @@ async function runSubAgent(ctx, args) {
139
168
  const gutter = style.muted(' │ ');
140
169
  const bodyPrint = linePrefixer(print, gutter);
141
170
  const type = args.subagent_type;
142
- const systemPrompt = PROMPTS[type ?? 'default'];
143
- const allowedTools = resolveAllowedTools(type);
171
+ const role = args.role;
172
+ // swarm role,task 用 subagent_type,都没给就用 default
173
+ const profileName = role ?? type ?? 'default';
174
+ const profile = resolveSubagentProfile(profileName, ctx.subagents);
175
+ const systemPrompt = renderSubagentPrompt(profile, { cwd: ctx.cwd });
176
+ const allowedTools = resolveAllowedTools(profile);
144
177
  const allowedSet = new Set(allowedTools);
145
178
  // 子代理内部事件写入主会话 records:统一打上 subagent 标记(值为子任务
146
179
  // description),/replay 据此渲染成嵌套块;ctx.record 可选,不传则不记录。
@@ -152,11 +185,12 @@ async function runSubAgent(ctx, args) {
152
185
  is_error: result.isError,
153
186
  output: capForRecord(result.output),
154
187
  });
155
- print(style.muted(`\n(子代理开始:${args.description ?? ''}${type ? ` · ${type}` : ''})\n`));
188
+ const roleTag = profileName !== 'default' ? ` · ${profileName}` : '';
189
+ print(style.muted(`\n(子代理开始:${args.description ?? ''}${roleTag})\n`));
156
190
  // SubagentStart hook:仅观察,stdout 缩进打印(与正文同 gutter)
157
191
  const subStart = await runHooks(ctx.hooks, 'SubagentStart', {
158
192
  cwd: ctx.cwd,
159
- subagent_type: type ?? 'default',
193
+ subagent_type: profileName,
160
194
  description: args.description,
161
195
  }, bodyPrint);
162
196
  if (subStart.output)
@@ -230,7 +264,7 @@ async function runSubAgent(ctx, args) {
230
264
  if (!allowedSet.has(tc.name)) {
231
265
  const msg = tc.name === 'task'
232
266
  ? '错误:子代理不可再委派子任务(task 调用已被拒绝)。请直接完成当前子任务。'
233
- : `错误:当前子代理(${type ?? 'default'})不允许调用工具 ${tc.name}。请改用允许的工具完成子任务。`;
267
+ : `错误:当前子代理(${profileName})不允许调用工具 ${tc.name}。请改用允许的工具完成子任务。`;
234
268
  const result = textToolResult(msg, true);
235
269
  recTool(tc.name, result);
236
270
  history.push({
@@ -338,7 +372,7 @@ async function runSubAgent(ctx, args) {
338
372
  // SubagentStop hook:仅观察
339
373
  const subStop = await runHooks(ctx.hooks, 'SubagentStop', {
340
374
  cwd: ctx.cwd,
341
- subagent_type: type ?? 'default',
375
+ subagent_type: profileName,
342
376
  description: args.description,
343
377
  }, bodyPrint);
344
378
  if (subStop.output)
@@ -346,4 +380,107 @@ async function runSubAgent(ctx, args) {
346
380
  print(style.muted('(子代理结束)\n'));
347
381
  return lastText || '(子代理未给出文本结论)';
348
382
  }
383
+ /**
384
+ * 构造 swarm 工具 —— 一次性并发委派多个只读子代理,从不同角色并行探索。
385
+ *
386
+ * 设计约束:
387
+ * - swarm 内所有子任务强制只读(explore),避免并发写冲突;
388
+ * - 子代理不能继续调用 swarm/task(allowedTools 已排除);
389
+ * - 结果以 JSON 数组返回,主代理负责综合各角色结论。
390
+ */
391
+ export function createSwarmTool(ctx) {
392
+ const names = subagentNames(ctx.subagents);
393
+ const listing = buildSubagentListing(ctx.subagents);
394
+ return {
395
+ name: 'swarm',
396
+ description: '一次性并发委派多个子代理,从不同角色并行探索/分析问题。适合需要从多个视角同时审视同一段代码或项目的场景。' +
397
+ '每个子任务按对应 profile 的工具集执行;建议为 swarm 配置 readonly profile。' +
398
+ (listing
399
+ ? `\n\nAvailable subagent roles (pass via role):\n${listing}`
400
+ : ''),
401
+ parameters: {
402
+ type: 'object',
403
+ properties: {
404
+ description: {
405
+ type: 'string',
406
+ description: '整个 swarm 任务的短标题(一句话)',
407
+ },
408
+ tasks: {
409
+ type: 'array',
410
+ description: '并发的子任务列表,每个子任务指定角色与问题',
411
+ items: {
412
+ type: 'object',
413
+ properties: {
414
+ role: {
415
+ type: 'string',
416
+ enum: names,
417
+ description: '子代理 profile 名。建议选用 readonly profile,用户也可在 .ccli/config.json 自定义。',
418
+ },
419
+ description: {
420
+ type: 'string',
421
+ description: '子任务短标题',
422
+ },
423
+ prompt: {
424
+ type: 'string',
425
+ description: '子任务的详细说明',
426
+ },
427
+ },
428
+ required: ['role', 'description', 'prompt'],
429
+ },
430
+ },
431
+ },
432
+ required: ['description', 'tasks'],
433
+ },
434
+ needsConfirm: false,
435
+ run: async (args) => runSwarm(ctx, args),
436
+ };
437
+ }
438
+ async function runSwarm(ctx, args) {
439
+ const print = ctx.print ?? ((c) => process.stdout.write(c));
440
+ const rawTasks = Array.isArray(args.tasks) ? args.tasks : [];
441
+ const tasks = [];
442
+ for (const t of rawTasks) {
443
+ if (!t || typeof t !== 'object')
444
+ continue;
445
+ const role = t.role;
446
+ const description = String(t.description ?? '');
447
+ const prompt = String(t.prompt ?? '');
448
+ if (!isSubAgentRole(role, ctx.subagents))
449
+ continue;
450
+ if (!description || !prompt)
451
+ continue;
452
+ tasks.push({ role, description, prompt });
453
+ }
454
+ if (tasks.length === 0) {
455
+ return '(swarm 没有合法子任务,未执行)';
456
+ }
457
+ print(style.muted(`\n(Swarm 开始:${args.description ?? ''} · ${tasks.length} 个角色并行)\n`));
458
+ const startAll = Date.now();
459
+ const results = await Promise.all(tasks.map(async (task) => {
460
+ const start = Date.now();
461
+ try {
462
+ const conclusion = await runSubAgent(ctx, {
463
+ description: task.description,
464
+ prompt: task.prompt,
465
+ role: task.role,
466
+ });
467
+ return {
468
+ role: task.role,
469
+ description: task.description,
470
+ conclusion,
471
+ elapsedMs: Date.now() - start,
472
+ };
473
+ }
474
+ catch (e) {
475
+ return {
476
+ role: task.role,
477
+ description: task.description,
478
+ conclusion: `子代理执行失败:${e?.message ?? String(e)}`,
479
+ elapsedMs: Date.now() - start,
480
+ };
481
+ }
482
+ }));
483
+ print(style.muted(`(Swarm 结束:${tasks.length} 个角色 · 总计 ${Date.now() - startAll} ms)\n`));
484
+ return JSON.stringify(results, null, 2);
485
+ }
349
486
  //# sourceMappingURL=task.js.map