zelari-code 1.20.0 → 1.22.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/dist/cli/app.js +2 -1
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/budget/historySummary.js +127 -0
- package/dist/cli/budget/historySummary.js.map +1 -0
- package/dist/cli/budget/llmCompact.js +114 -0
- package/dist/cli/budget/llmCompact.js.map +1 -0
- package/dist/cli/budget/tokenBudget.js +111 -24
- package/dist/cli/budget/tokenBudget.js.map +1 -1
- package/dist/cli/components/StatusBar.js +4 -1
- package/dist/cli/components/StatusBar.js.map +1 -1
- package/dist/cli/hooks/conversationContext.js +7 -0
- package/dist/cli/hooks/conversationContext.js.map +1 -1
- package/dist/cli/hooks/historyCompaction.js +77 -14
- package/dist/cli/hooks/historyCompaction.js.map +1 -1
- package/dist/cli/hooks/permissionPicker.js +76 -0
- package/dist/cli/hooks/permissionPicker.js.map +1 -0
- package/dist/cli/hooks/useChatTurn.js +32 -5
- package/dist/cli/hooks/useChatTurn.js.map +1 -1
- package/dist/cli/main.bundled.js +1483 -579
- package/dist/cli/main.bundled.js.map +4 -4
- package/dist/cli/plugins/registry.js +0 -13
- package/dist/cli/plugins/registry.js.map +1 -1
- package/dist/cli/runHeadless.js +30 -1
- package/dist/cli/runHeadless.js.map +1 -1
- package/dist/cli/safety/toolPermissions.js +123 -0
- package/dist/cli/safety/toolPermissions.js.map +1 -0
- package/dist/cli/sessionTodos.js +67 -0
- package/dist/cli/sessionTodos.js.map +1 -0
- package/dist/cli/toolRegistry.js +134 -43
- package/dist/cli/toolRegistry.js.map +1 -1
- package/dist/cli/tools/skillTool.js +78 -0
- package/dist/cli/tools/skillTool.js.map +1 -0
- package/dist/cli/tools/taskTool.js +81 -47
- package/dist/cli/tools/taskTool.js.map +1 -1
- package/dist/cli/tools/todoTools.js +68 -0
- package/dist/cli/tools/todoTools.js.map +1 -0
- package/package.json +2 -2
package/dist/cli/toolRegistry.js
CHANGED
|
@@ -26,6 +26,8 @@ import { AuditLogger } from './safety/auditLogger.js';
|
|
|
26
26
|
import { runDiagnosticsForFile, formatDiagnostics } from './diagnostics/engine.js';
|
|
27
27
|
import { createTaskTool } from './tools/taskTool.js';
|
|
28
28
|
import { createAskUserTool } from './tools/askUser.js';
|
|
29
|
+
import { createSkillTool } from './tools/skillTool.js';
|
|
30
|
+
import { createTodoReadTool, createTodoWriteTool } from './tools/todoTools.js';
|
|
29
31
|
import { createLspTools } from './lsp/tools.js';
|
|
30
32
|
import { getSharedLspManager } from './lsp/manager.js';
|
|
31
33
|
import { createAstTools } from './ast/tools.js';
|
|
@@ -34,6 +36,8 @@ import { createBrowserTool } from './browser/tools.js';
|
|
|
34
36
|
import { createSshTools } from './ssh/tools.js';
|
|
35
37
|
import { createWorldModelTools } from './workspace/worldModel.js';
|
|
36
38
|
import { providerFromEnv, openaiCompatibleProvider } from './provider/openai-compatible.js';
|
|
39
|
+
import { defaultPermissionPolicy, resolveToolPermission, } from './safety/toolPermissions.js';
|
|
40
|
+
import { typedErr } from '@zelari/core/harness/tools/toolTypes';
|
|
37
41
|
import { cliToolToEnhanced, registerCustomTool } from '@zelari/core/skills';
|
|
38
42
|
/**
|
|
39
43
|
* Create a fresh ToolRegistry pre-populated with the 5 built-in tools,
|
|
@@ -72,46 +76,74 @@ export function createBuiltinToolRegistry(options = {}) {
|
|
|
72
76
|
const safeFetchUrl = wrapWithAudit(fetchUrlTool, audit, sessionId);
|
|
73
77
|
const safeWebSearch = wrapWithAudit(webSearchTool, audit, sessionId);
|
|
74
78
|
const registry = new ToolRegistry();
|
|
75
|
-
|
|
76
|
-
//
|
|
77
|
-
//
|
|
78
|
-
//
|
|
79
|
-
const readOnly = options.readOnly === true ||
|
|
79
|
+
const profile = options.profile ?? 'full';
|
|
80
|
+
// Read-only / plan / explore: observe only.
|
|
81
|
+
// verify: observe + bash.
|
|
82
|
+
// general: mutators but no nested task (handled below).
|
|
83
|
+
const readOnly = options.readOnly === true ||
|
|
84
|
+
options.planMode === true ||
|
|
85
|
+
profile === 'explore';
|
|
86
|
+
const verifyMode = profile === 'verify';
|
|
87
|
+
const allowMutators = !readOnly && !verifyMode;
|
|
88
|
+
const allowBash = allowMutators || verifyMode;
|
|
89
|
+
const permPolicy = options.permissionPolicy ?? defaultPermissionPolicy();
|
|
90
|
+
const withPerm = (t) => wrapWithPermissions(t, permPolicy, options.onPermissionAsk);
|
|
80
91
|
// Observe tools — always registered.
|
|
81
|
-
registry.register(safeReadFile);
|
|
82
|
-
registry.register(safeGrepContent);
|
|
83
|
-
registry.register(safeListFiles);
|
|
84
|
-
registry.register(safeShowDiff);
|
|
85
|
-
registry.register(safeFetchUrl);
|
|
86
|
-
registry.register(safeWebSearch);
|
|
87
|
-
// Mutating tools — full
|
|
88
|
-
if (
|
|
89
|
-
registry.register(safeWriteFile);
|
|
90
|
-
registry.register(safeEditFile);
|
|
91
|
-
registry.register(
|
|
92
|
-
|
|
92
|
+
registry.register(withPerm(safeReadFile));
|
|
93
|
+
registry.register(withPerm(safeGrepContent));
|
|
94
|
+
registry.register(withPerm(safeListFiles));
|
|
95
|
+
registry.register(withPerm(safeShowDiff));
|
|
96
|
+
registry.register(withPerm(safeFetchUrl));
|
|
97
|
+
registry.register(withPerm(safeWebSearch));
|
|
98
|
+
// Mutating tools — full/general only.
|
|
99
|
+
if (allowMutators) {
|
|
100
|
+
registry.register(withPerm(safeWriteFile));
|
|
101
|
+
registry.register(withPerm(safeEditFile));
|
|
102
|
+
registry.register(withPerm(safeApplyDiff));
|
|
103
|
+
}
|
|
104
|
+
if (allowBash) {
|
|
105
|
+
registry.register(withPerm(safeBash));
|
|
93
106
|
}
|
|
94
|
-
// Interactive clarification — available in plan + build (not
|
|
95
|
-
|
|
96
|
-
|
|
107
|
+
// Interactive clarification — available in plan + build (not pure explore RO).
|
|
108
|
+
const askUserTool = options.readOnly === true || profile === 'explore' || profile === 'verify'
|
|
109
|
+
? null
|
|
110
|
+
: createAskUserTool(options.onAskUser);
|
|
97
111
|
if (askUserTool) {
|
|
98
|
-
registry.register(askUserTool);
|
|
112
|
+
registry.register(withPerm(askUserTool));
|
|
113
|
+
}
|
|
114
|
+
// Lazy skill loader — parent (plan/build) and general subagent; not explore/verify.
|
|
115
|
+
const enableSkill = options.enableSkill !== false &&
|
|
116
|
+
options.readOnly !== true &&
|
|
117
|
+
profile !== 'explore' &&
|
|
118
|
+
profile !== 'verify';
|
|
119
|
+
const skillTool = enableSkill ? withPerm(createSkillTool({ cwd: root })) : null;
|
|
120
|
+
if (skillTool) {
|
|
121
|
+
registry.register(skillTool);
|
|
99
122
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
123
|
+
// Session todos — parent agent only (not explore/verify; general skips like OpenCode).
|
|
124
|
+
const enableTodos = options.enableTodos !== false &&
|
|
125
|
+
options.readOnly !== true &&
|
|
126
|
+
profile === 'full';
|
|
127
|
+
const todoWrite = enableTodos ? withPerm(createTodoWriteTool()) : null;
|
|
128
|
+
const todoRead = enableTodos ? withPerm(createTodoReadTool()) : null;
|
|
129
|
+
if (todoWrite)
|
|
130
|
+
registry.register(todoWrite);
|
|
131
|
+
if (todoRead)
|
|
132
|
+
registry.register(todoRead);
|
|
133
|
+
const summary = [
|
|
134
|
+
safeReadFile,
|
|
135
|
+
safeGrepContent,
|
|
136
|
+
safeListFiles,
|
|
137
|
+
safeShowDiff,
|
|
138
|
+
safeFetchUrl,
|
|
139
|
+
safeWebSearch,
|
|
140
|
+
...(allowMutators ? [safeWriteFile, safeEditFile, safeApplyDiff] : []),
|
|
141
|
+
...(allowBash ? [safeBash] : []),
|
|
142
|
+
...(askUserTool ? [askUserTool] : []),
|
|
143
|
+
...(skillTool ? [skillTool] : []),
|
|
144
|
+
...(todoWrite ? [todoWrite] : []),
|
|
145
|
+
...(todoRead ? [todoRead] : []),
|
|
146
|
+
];
|
|
115
147
|
const tools = summary.map((t) => ({
|
|
116
148
|
name: t.name,
|
|
117
149
|
description: t.description,
|
|
@@ -174,21 +206,30 @@ export function createBuiltinToolRegistry(options = {}) {
|
|
|
174
206
|
});
|
|
175
207
|
}
|
|
176
208
|
}
|
|
177
|
-
// The `task` sub-agent tool —
|
|
178
|
-
//
|
|
179
|
-
|
|
180
|
-
|
|
209
|
+
// The `task` sub-agent tool — parent full registry only (not plan/explore/verify/general).
|
|
210
|
+
// Sub-agents get a profile-specific registry and never nest another `task`.
|
|
211
|
+
const enableTask = options.enableTask !== false &&
|
|
212
|
+
!readOnly &&
|
|
213
|
+
!verifyMode &&
|
|
214
|
+
profile === 'full' &&
|
|
215
|
+
!options.planMode;
|
|
216
|
+
if (enableTask) {
|
|
181
217
|
const taskTool = createTaskTool({
|
|
182
|
-
createSubAgentContext: async () => {
|
|
218
|
+
createSubAgentContext: async ({ agent }) => {
|
|
183
219
|
const cfg = await providerFromEnv();
|
|
184
220
|
if (!cfg)
|
|
185
221
|
return null;
|
|
222
|
+
const subProfile = taskAgentToProfile(agent);
|
|
186
223
|
const { registry: subRegistry } = createBuiltinToolRegistry({
|
|
187
224
|
root,
|
|
188
225
|
audit,
|
|
189
226
|
sessionId,
|
|
190
|
-
|
|
227
|
+
profile: subProfile,
|
|
228
|
+
enableTask: false,
|
|
229
|
+
enableSkill: agent === 'general',
|
|
191
230
|
diagnostics: false,
|
|
231
|
+
lspProvider: null,
|
|
232
|
+
permissionPolicy: defaultPermissionPolicy({ auto: true }),
|
|
192
233
|
});
|
|
193
234
|
return {
|
|
194
235
|
providerStream: openaiCompatibleProvider(cfg),
|
|
@@ -200,10 +241,11 @@ export function createBuiltinToolRegistry(options = {}) {
|
|
|
200
241
|
description: t.function.description,
|
|
201
242
|
parameters: t.function.parameters,
|
|
202
243
|
})),
|
|
244
|
+
agent,
|
|
203
245
|
};
|
|
204
246
|
},
|
|
205
247
|
});
|
|
206
|
-
registry.register(taskTool);
|
|
248
|
+
registry.register(withPerm(taskTool));
|
|
207
249
|
tools.push({
|
|
208
250
|
name: taskTool.name,
|
|
209
251
|
description: taskTool.description,
|
|
@@ -310,6 +352,55 @@ export function registerCliToolsIntoCouncilCatalog(registry) {
|
|
|
310
352
|
}
|
|
311
353
|
}
|
|
312
354
|
}
|
|
355
|
+
function taskAgentToProfile(agent) {
|
|
356
|
+
if (agent === 'general')
|
|
357
|
+
return 'general';
|
|
358
|
+
if (agent === 'verify')
|
|
359
|
+
return 'verify';
|
|
360
|
+
return 'explore';
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Gate tool execution with allow/ask/deny policy (OpenCode-style permissions).
|
|
364
|
+
*/
|
|
365
|
+
function wrapWithPermissions(original, policy, onAsk) {
|
|
366
|
+
const required = (original.permissions ?? []);
|
|
367
|
+
// Pure read tools under allow policy — no wrap overhead.
|
|
368
|
+
const decisionProbe = resolveToolPermission(original.name, required, policy);
|
|
369
|
+
if (decisionProbe.action === 'allow' && !required.includes('write') && !required.includes('execute')) {
|
|
370
|
+
// Still wrap write/execute categories; for read-only allow skip? Keep wrap
|
|
371
|
+
// always for consistency when policy might deny network later.
|
|
372
|
+
}
|
|
373
|
+
return {
|
|
374
|
+
...original,
|
|
375
|
+
execute: async (input, ctx) => {
|
|
376
|
+
const decision = resolveToolPermission(original.name, required, policy);
|
|
377
|
+
if (decision.action === 'deny') {
|
|
378
|
+
return typedErr(`[permission] ${decision.reason}`);
|
|
379
|
+
}
|
|
380
|
+
if (decision.action === 'ask') {
|
|
381
|
+
if (!onAsk) {
|
|
382
|
+
return typedErr(`[permission] ${decision.reason} No interactive approval available ` +
|
|
383
|
+
`(set ZELARI_AUTO=1 to auto-allow, or configure onPermissionAsk).`);
|
|
384
|
+
}
|
|
385
|
+
try {
|
|
386
|
+
const ok = await onAsk({
|
|
387
|
+
toolName: original.name,
|
|
388
|
+
reason: decision.reason,
|
|
389
|
+
categories: decision.categories,
|
|
390
|
+
args: input,
|
|
391
|
+
});
|
|
392
|
+
if (!ok) {
|
|
393
|
+
return typedErr(`[permission] User denied "${original.name}" (${decision.categories.join(', ')}).`);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
catch (err) {
|
|
397
|
+
return typedErr(`[permission] Approval UI failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
return original.execute(input, ctx);
|
|
401
|
+
},
|
|
402
|
+
};
|
|
403
|
+
}
|
|
313
404
|
function wrapWithSandbox(original, pathArgs, root, audit, sessionId) {
|
|
314
405
|
return {
|
|
315
406
|
...original,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../src/cli/toolRegistry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../src/cli/toolRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* skill — lazy-load a coding skill body into the conversation (OpenCode-style).
|
|
3
|
+
*
|
|
4
|
+
* The system prompt lists only skill names + short descriptions; the model
|
|
5
|
+
* calls this tool when it needs the full instructions. Avoids bloating every
|
|
6
|
+
* turn with all skill bodies.
|
|
7
|
+
*
|
|
8
|
+
* @since v1.21.0
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
import { getCodingSkillById, listCodingSkills, } from '@zelari/core/skills';
|
|
12
|
+
import { typedOk, typedErr, } from '@zelari/core/harness/tools/toolTypes';
|
|
13
|
+
import { loadSkillMdSkills } from '../skillsMd.js';
|
|
14
|
+
const SkillArgsSchema = z.object({
|
|
15
|
+
name: z
|
|
16
|
+
.string()
|
|
17
|
+
.min(1)
|
|
18
|
+
.describe('Skill id/name to load (from the available skills list).'),
|
|
19
|
+
});
|
|
20
|
+
/** Build the catalog text for system prompts / tool description. */
|
|
21
|
+
export function formatAvailableSkillsCatalog(cwd = process.cwd()) {
|
|
22
|
+
// Ensure project SKILL.md skills are registered once per process path.
|
|
23
|
+
try {
|
|
24
|
+
loadSkillMdSkills(cwd);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
/* ignore load failures — catalog still has builtins */
|
|
28
|
+
}
|
|
29
|
+
const skills = listCodingSkills();
|
|
30
|
+
if (skills.length === 0) {
|
|
31
|
+
return 'No skills registered.';
|
|
32
|
+
}
|
|
33
|
+
const lines = skills.slice(0, 80).map((s) => {
|
|
34
|
+
const desc = (s.description || s.id).replace(/\s+/g, ' ').trim().slice(0, 160);
|
|
35
|
+
return `- ${s.id}: ${desc}`;
|
|
36
|
+
});
|
|
37
|
+
return lines.join('\n');
|
|
38
|
+
}
|
|
39
|
+
export function createSkillTool(opts) {
|
|
40
|
+
const cwd = opts?.cwd ?? process.cwd();
|
|
41
|
+
const catalog = formatAvailableSkillsCatalog(cwd);
|
|
42
|
+
return {
|
|
43
|
+
name: 'skill',
|
|
44
|
+
description: 'Load the full instructions for a named coding skill into this turn. ' +
|
|
45
|
+
'Call when a skill matches the current task. Available skills:\n' +
|
|
46
|
+
catalog,
|
|
47
|
+
permissions: ['read'],
|
|
48
|
+
timeoutMs: 10_000,
|
|
49
|
+
inputSchema: SkillArgsSchema,
|
|
50
|
+
execute: async (args) => {
|
|
51
|
+
try {
|
|
52
|
+
loadSkillMdSkills(cwd);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
/* continue with already-registered */
|
|
56
|
+
}
|
|
57
|
+
const id = args.name.trim();
|
|
58
|
+
const skill = getCodingSkillById(id) ??
|
|
59
|
+
listCodingSkills().find((s) => s.id.toLowerCase() === id.toLowerCase() || s.name?.toLowerCase() === id.toLowerCase());
|
|
60
|
+
if (!skill) {
|
|
61
|
+
const known = listCodingSkills()
|
|
62
|
+
.map((s) => s.id)
|
|
63
|
+
.slice(0, 40)
|
|
64
|
+
.join(', ');
|
|
65
|
+
return typedErr(`Unknown skill "${id}". Known: ${known || '(none)'}. Use /skill or pick from the list.`);
|
|
66
|
+
}
|
|
67
|
+
const body = skill.systemPromptFragment?.trim() ||
|
|
68
|
+
skill.description ||
|
|
69
|
+
`(skill ${skill.id} has no body)`;
|
|
70
|
+
const header = `# Skill: ${skill.id}\n${skill.description ? `> ${skill.description}\n\n` : ''}`;
|
|
71
|
+
return typedOk({
|
|
72
|
+
name: skill.id,
|
|
73
|
+
content: header + body,
|
|
74
|
+
});
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=skillTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skillTool.js","sourceRoot":"","sources":["../../../src/cli/tools/skillTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +1,65 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* taskTool — delegate a bounded sub-task to an isolated sub-agent.
|
|
3
3
|
*
|
|
4
|
-
* The `task` tool lets the main agent spin up a fresh, read-only sub-agent
|
|
5
|
-
* that runs a focused exploration/analysis task in ITS OWN context and
|
|
6
|
-
* returns only a short conclusion. This keeps the main conversation lean on
|
|
7
|
-
* large repos: instead of the parent burning thousands of tokens reading 20
|
|
8
|
-
* files to answer "where is X handled?", it delegates, and only the answer
|
|
9
|
-
* comes back.
|
|
10
|
-
*
|
|
11
4
|
* Isolation & safety:
|
|
12
|
-
* -
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* - Its messages are a fresh [system, user] pair; the parent transcript is
|
|
16
|
-
* never shared, and only the final assistant message returns to the parent.
|
|
17
|
-
* - The underlying AgentHarness self-bounds at 12 tool-loop turns, so a
|
|
18
|
-
* sub-agent can't run away; the tool also carries a long timeout.
|
|
5
|
+
* - explore / verify: READ-ONLY (or read+bash for verify)
|
|
6
|
+
* - general: full tools except nested `task` (no recursion)
|
|
7
|
+
* - Parent gets only a short conclusion, not the full sub-transcript
|
|
19
8
|
*
|
|
20
|
-
*
|
|
21
|
-
* (`TaskToolDeps`) so the whole flow is unit-testable without a real provider.
|
|
9
|
+
* @since v0.7.x · typed agents v1.21.0
|
|
22
10
|
*/
|
|
23
11
|
import { z } from 'zod';
|
|
24
12
|
import { typedOk, typedErr, } from '@zelari/core/harness/tools/toolTypes';
|
|
25
|
-
|
|
26
|
-
'You are a focused sub-agent
|
|
27
|
-
'
|
|
28
|
-
'',
|
|
29
|
-
'
|
|
30
|
-
'
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
'
|
|
34
|
-
'
|
|
35
|
-
'
|
|
36
|
-
'
|
|
13
|
+
const EXPLORE_PROMPT = [
|
|
14
|
+
'You are a focused EXPLORE sub-agent for a parent coding agent.',
|
|
15
|
+
'READ-ONLY tools only (read, list, grep, fetch). No edits, no shell.',
|
|
16
|
+
'Gather only what you need, then STOP with a concise conclusion:',
|
|
17
|
+
'file paths, symbols, line refs, and how things connect. No large dumps.',
|
|
18
|
+
'Do not ask follow-up questions.',
|
|
19
|
+
].join('\n');
|
|
20
|
+
const GENERAL_PROMPT = [
|
|
21
|
+
'You are a GENERAL sub-agent that can read AND modify the codebase for one',
|
|
22
|
+
'bounded unit of work. Prefer small, correct edits. Run checks when needed.',
|
|
23
|
+
'Return a short report: what changed, files touched, remaining risks.',
|
|
24
|
+
'Do not spawn further sub-agents. Do not expand scope beyond the prompt.',
|
|
37
25
|
].join('\n');
|
|
26
|
+
const VERIFY_PROMPT = [
|
|
27
|
+
'You are a VERIFY sub-agent. Confirm whether work is correct on disk.',
|
|
28
|
+
'You may read files and run test/build commands via bash. Prefer',
|
|
29
|
+
'targeted checks over full suite when possible.',
|
|
30
|
+
'Report: pass/fail, commands run, key output, and gaps.',
|
|
31
|
+
].join('\n');
|
|
32
|
+
export function systemPromptForAgent(agent) {
|
|
33
|
+
if (agent === 'general')
|
|
34
|
+
return GENERAL_PROMPT;
|
|
35
|
+
if (agent === 'verify')
|
|
36
|
+
return VERIFY_PROMPT;
|
|
37
|
+
return EXPLORE_PROMPT;
|
|
38
|
+
}
|
|
39
|
+
export function maxToolCallsForThoroughness(thoroughness, agent) {
|
|
40
|
+
if (agent === 'general') {
|
|
41
|
+
if (thoroughness === 'quick')
|
|
42
|
+
return 8;
|
|
43
|
+
if (thoroughness === 'deep')
|
|
44
|
+
return 20;
|
|
45
|
+
return 12;
|
|
46
|
+
}
|
|
47
|
+
if (agent === 'verify') {
|
|
48
|
+
if (thoroughness === 'quick')
|
|
49
|
+
return 6;
|
|
50
|
+
if (thoroughness === 'deep')
|
|
51
|
+
return 14;
|
|
52
|
+
return 10;
|
|
53
|
+
}
|
|
54
|
+
// explore
|
|
55
|
+
if (thoroughness === 'quick')
|
|
56
|
+
return 4;
|
|
57
|
+
if (thoroughness === 'deep')
|
|
58
|
+
return 12;
|
|
59
|
+
return 6;
|
|
60
|
+
}
|
|
61
|
+
/** @deprecated use systemPromptForAgent('explore') — kept for tests */
|
|
62
|
+
export const SUBAGENT_SYSTEM_PROMPT = EXPLORE_PROMPT;
|
|
38
63
|
const TaskArgsSchema = z.object({
|
|
39
64
|
description: z
|
|
40
65
|
.string()
|
|
@@ -45,6 +70,15 @@ const TaskArgsSchema = z.object({
|
|
|
45
70
|
.min(1)
|
|
46
71
|
.describe('The full, self-contained instruction for the sub-agent. It has no access ' +
|
|
47
72
|
'to this conversation, so include all context it needs.'),
|
|
73
|
+
agent: z
|
|
74
|
+
.enum(['explore', 'general', 'verify'])
|
|
75
|
+
.optional()
|
|
76
|
+
.describe('Sub-agent type: explore (read-only research, default), general (can edit), ' +
|
|
77
|
+
'verify (read + bash tests). Prefer explore for search; general for isolated edits.'),
|
|
78
|
+
thoroughness: z
|
|
79
|
+
.enum(['quick', 'medium', 'deep'])
|
|
80
|
+
.optional()
|
|
81
|
+
.describe('How deep the sub-agent should go (tool budget). Default medium.'),
|
|
48
82
|
});
|
|
49
83
|
/**
|
|
50
84
|
* Run a sub-agent to completion and return the text of its final assistant
|
|
@@ -63,20 +97,17 @@ async function runSubAgent(harness) {
|
|
|
63
97
|
current += ev.delta;
|
|
64
98
|
break;
|
|
65
99
|
case 'message_end':
|
|
66
|
-
// Keep the most recent non-empty message as the running conclusion.
|
|
67
100
|
if (current.trim())
|
|
68
101
|
lastCompleted = current;
|
|
69
102
|
current = '';
|
|
70
103
|
break;
|
|
71
104
|
case 'error':
|
|
72
|
-
// Cancellations arrive as error events; record the message.
|
|
73
105
|
error = ev.message;
|
|
74
106
|
break;
|
|
75
107
|
default:
|
|
76
108
|
break;
|
|
77
109
|
}
|
|
78
110
|
}
|
|
79
|
-
// A run that ended mid-stream (no message_end) still has buffered text.
|
|
80
111
|
const result = (lastCompleted || current).trim();
|
|
81
112
|
return { result, ...(error ? { error } : {}) };
|
|
82
113
|
}
|
|
@@ -84,22 +115,21 @@ async function runSubAgent(harness) {
|
|
|
84
115
|
export function createTaskTool(deps) {
|
|
85
116
|
return {
|
|
86
117
|
name: 'task',
|
|
87
|
-
description: 'Delegate a focused
|
|
88
|
-
'
|
|
89
|
-
'
|
|
90
|
-
'
|
|
91
|
-
'
|
|
92
|
-
'conversation).',
|
|
93
|
-
|
|
94
|
-
// but never writes or runs shell commands.
|
|
95
|
-
permissions: ['read', 'network'],
|
|
96
|
-
// Sub-agents run a full (bounded) agent loop — allow generous wall time.
|
|
118
|
+
description: 'Delegate a focused sub-task to an isolated sub-agent with its own context; ' +
|
|
119
|
+
'returns only a concise conclusion (keeps parent context lean).\n' +
|
|
120
|
+
'- agent=explore (default): read-only research/search\n' +
|
|
121
|
+
'- agent=general: can edit files for one bounded unit of work\n' +
|
|
122
|
+
'- agent=verify: read + bash to run tests/checks\n' +
|
|
123
|
+
'Provide a fully self-contained `prompt` (sub-agent cannot see this conversation).',
|
|
124
|
+
permissions: ['read', 'network', 'write', 'execute'],
|
|
97
125
|
timeoutMs: 300_000,
|
|
98
126
|
inputSchema: TaskArgsSchema,
|
|
99
127
|
execute: async (args, ctx) => {
|
|
128
|
+
const agent = args.agent ?? 'explore';
|
|
129
|
+
const thoroughness = args.thoroughness ?? 'medium';
|
|
100
130
|
let sub;
|
|
101
131
|
try {
|
|
102
|
-
sub = await deps.createSubAgentContext();
|
|
132
|
+
sub = await deps.createSubAgentContext({ agent, thoroughness });
|
|
103
133
|
}
|
|
104
134
|
catch (err) {
|
|
105
135
|
return typedErr(`task: could not initialize sub-agent — ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -107,19 +137,20 @@ export function createTaskTool(deps) {
|
|
|
107
137
|
if (!sub) {
|
|
108
138
|
return typedErr('task: no provider configured for the sub-agent (set an API key / run /login).');
|
|
109
139
|
}
|
|
140
|
+
const maxToolCalls = maxToolCallsForThoroughness(thoroughness, agent);
|
|
110
141
|
const config = {
|
|
111
142
|
model: sub.model,
|
|
112
143
|
provider: sub.provider,
|
|
113
144
|
messages: [
|
|
114
|
-
{ role: 'system', content:
|
|
145
|
+
{ role: 'system', content: systemPromptForAgent(agent) },
|
|
115
146
|
{ role: 'user', content: args.prompt },
|
|
116
147
|
],
|
|
117
148
|
tools: sub.tools,
|
|
118
149
|
toolRegistry: sub.registry,
|
|
119
150
|
providerStream: sub.providerStream,
|
|
120
151
|
cwd: ctx.cwd,
|
|
121
|
-
|
|
122
|
-
|
|
152
|
+
maxToolCallsPerTurn: maxToolCalls,
|
|
153
|
+
maxToolLoopIterations: Math.max(12, maxToolCalls + 4),
|
|
123
154
|
};
|
|
124
155
|
let harness;
|
|
125
156
|
try {
|
|
@@ -136,9 +167,12 @@ export function createTaskTool(deps) {
|
|
|
136
167
|
}
|
|
137
168
|
const { result, error } = await runSubAgent(harness);
|
|
138
169
|
if (!result) {
|
|
139
|
-
return typedErr(`task: sub-agent produced no output${error ? ` (${error})` : ''}.`);
|
|
170
|
+
return typedErr(`task: sub-agent (${agent}) produced no output${error ? ` (${error})` : ''}.`);
|
|
140
171
|
}
|
|
141
|
-
return typedOk({
|
|
172
|
+
return typedOk({
|
|
173
|
+
result: `[sub-agent:${agent}/${thoroughness}]\n${result}`,
|
|
174
|
+
agent,
|
|
175
|
+
});
|
|
142
176
|
},
|
|
143
177
|
};
|
|
144
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taskTool.js","sourceRoot":"","sources":["../../../src/cli/tools/taskTool.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"taskTool.js","sourceRoot":"","sources":["../../../src/cli/tools/taskTool.ts"],"names":[],"mappings":"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"}
|