@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.
- package/README.md +2 -0
- package/dist/agent/ai.js.map +1 -1
- package/dist/agent/providers/anthropic.js +112 -4
- package/dist/agent/providers/anthropic.js.map +1 -1
- package/dist/agent/rag/db.js +142 -0
- package/dist/agent/rag/db.js.map +1 -0
- package/dist/agent/rag/embedding.js +135 -0
- package/dist/agent/rag/embedding.js.map +1 -0
- package/dist/agent/rag/indexer.js +104 -0
- package/dist/agent/rag/indexer.js.map +1 -0
- package/dist/agent/rag/parser.js +75 -0
- package/dist/agent/rag/parser.js.map +1 -0
- package/dist/agent/rag/search.js +47 -0
- package/dist/agent/rag/search.js.map +1 -0
- package/dist/cli/args/index.js +8 -0
- package/dist/cli/args/index.js.map +1 -1
- package/dist/cli/run/index.js +8 -5
- package/dist/cli/run/index.js.map +1 -1
- package/dist/cli/run/task.js +168 -31
- package/dist/cli/run/task.js.map +1 -1
- package/dist/cli/slash/config/account.js +2 -0
- package/dist/cli/slash/config/account.js.map +1 -1
- package/dist/cli/slash/index.js +8 -0
- package/dist/cli/slash/index.js.map +1 -1
- package/dist/cli/slash/system/help.js +2 -0
- package/dist/cli/slash/system/help.js.map +1 -1
- package/dist/cli/slash/system/indexer.js +25 -0
- package/dist/cli/slash/system/indexer.js.map +1 -0
- package/dist/cli/slash/system/upgrade.js +13 -0
- package/dist/cli/slash/system/upgrade.js.map +1 -0
- package/dist/cli/upgrade.js +90 -0
- package/dist/cli/upgrade.js.map +1 -0
- package/dist/config/config.js +137 -4
- package/dist/config/config.js.map +1 -1
- package/dist/config/project-context.js +135 -0
- package/dist/config/project-context.js.map +1 -0
- package/dist/harness/index.js +8 -2
- package/dist/harness/index.js.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/server/webui-content.js +2 -0
- package/dist/server/webui-content.js.map +1 -0
- package/dist/server/webui.js +15 -4
- package/dist/server/webui.js.map +1 -1
- package/dist/tools/fs/list-dir.js +75 -25
- package/dist/tools/fs/list-dir.js.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/rag/search.js +65 -0
- package/dist/tools/rag/search.js.map +1 -0
- package/dist/tools/shared.js.map +1 -1
- 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"}
|
package/dist/cli/args/index.js
CHANGED
|
@@ -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":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/args/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/run/index.js
CHANGED
|
@@ -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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"}
|
package/dist/cli/run/task.js
CHANGED
|
@@ -10,14 +10,15 @@
|
|
|
10
10
|
* - 共享主会话 confirm / permission / stats(破坏性操作仍问用户;已放行的子代理也放行)。
|
|
11
11
|
* - 防递归:子代理若调用 task,直接拒绝(返回错误文本),不允许再委派。
|
|
12
12
|
* - 子代理的 write_file 与主循环一致:逐 token 带行号流式展示(共用 WriteFileStreamPrinter)。
|
|
13
|
-
* - subagent_type
|
|
14
|
-
*
|
|
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
|
-
/**
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
//
|
|
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: '
|
|
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:
|
|
126
|
-
description: '
|
|
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
|
|
143
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
: `错误:当前子代理(${
|
|
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:
|
|
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
|