zelari-code 1.48.1 → 2.0.0-alpha.2
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 +4 -1
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/desktopConfig.js +51 -4
- package/dist/cli/desktopConfig.js.map +1 -1
- package/dist/cli/headless.js +65 -0
- package/dist/cli/headless.js.map +1 -1
- package/dist/cli/headlessSpine.js +102 -0
- package/dist/cli/headlessSpine.js.map +1 -0
- package/dist/cli/headlessSpine.test.js +153 -0
- package/dist/cli/headlessSpine.test.js.map +1 -0
- package/dist/cli/hooks/useChatTurn.js +85 -0
- package/dist/cli/hooks/useChatTurn.js.map +1 -1
- package/dist/cli/hooks/useSession.js +16 -2
- package/dist/cli/hooks/useSession.js.map +1 -1
- package/dist/cli/kraken/candidateRegistry.js +195 -0
- package/dist/cli/kraken/candidateRegistry.js.map +1 -0
- package/dist/cli/kraken/candidateRegistry.test.js +211 -0
- package/dist/cli/kraken/candidateRegistry.test.js.map +1 -0
- package/dist/cli/kraken/completionGate.js +116 -0
- package/dist/cli/kraken/completionGate.js.map +1 -0
- package/dist/cli/kraken/completionGate.test.js +172 -0
- package/dist/cli/kraken/completionGate.test.js.map +1 -0
- package/dist/cli/kraken/metrics.js +96 -0
- package/dist/cli/kraken/metrics.js.map +1 -0
- package/dist/cli/kraken/metrics.test.js +145 -0
- package/dist/cli/kraken/metrics.test.js.map +1 -0
- package/dist/cli/kraken/selectionPlaybook.js +23 -0
- package/dist/cli/kraken/selectionPlaybook.js.map +1 -0
- package/dist/cli/kraken/selectionPlaybook.test.js +55 -0
- package/dist/cli/kraken/selectionPlaybook.test.js.map +1 -0
- package/dist/cli/kraken/turnRuntime.js +207 -0
- package/dist/cli/kraken/turnRuntime.js.map +1 -0
- package/dist/cli/kraken/turnRuntime.test.js +377 -0
- package/dist/cli/kraken/turnRuntime.test.js.map +1 -0
- package/dist/cli/kraken/verificationBridge.js +153 -0
- package/dist/cli/kraken/verificationBridge.js.map +1 -0
- package/dist/cli/kraken/verificationBridge.test.js +131 -0
- package/dist/cli/kraken/verificationBridge.test.js.map +1 -0
- package/dist/cli/kraken/verifier.js +233 -0
- package/dist/cli/kraken/verifier.js.map +1 -0
- package/dist/cli/kraken/verifier.test.js +232 -0
- package/dist/cli/kraken/verifier.test.js.map +1 -0
- package/dist/cli/kraken/verifierSettings.test.js +237 -0
- package/dist/cli/kraken/verifierSettings.test.js.map +1 -0
- package/dist/cli/kraken/verifyReport.js +115 -0
- package/dist/cli/kraken/verifyReport.js.map +1 -0
- package/dist/cli/kraken/verifyReport.test.js +111 -0
- package/dist/cli/kraken/verifyReport.test.js.map +1 -0
- package/dist/cli/main.bundled.js +4676 -943
- package/dist/cli/main.bundled.js.map +4 -4
- package/dist/cli/main.js +29 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/providerConfig.js +46 -0
- package/dist/cli/providerConfig.js.map +1 -1
- package/dist/cli/runHeadless.js +198 -4
- package/dist/cli/runHeadless.js.map +1 -1
- package/dist/cli/sessionSpine.js +272 -0
- package/dist/cli/sessionSpine.js.map +1 -0
- package/dist/cli/sessionSpine.test.js +171 -0
- package/dist/cli/sessionSpine.test.js.map +1 -0
- package/dist/cli/toolRegistry.js +50 -6
- package/dist/cli/toolRegistry.js.map +1 -1
- package/dist/cli/tools/krakenSelectTool.js +165 -0
- package/dist/cli/tools/krakenSelectTool.js.map +1 -0
- package/dist/cli/tools/krakenSelectTool.test.js +246 -0
- package/dist/cli/tools/krakenSelectTool.test.js.map +1 -0
- package/dist/cli/tools/taskTool.dynamicChecks.test.js +156 -0
- package/dist/cli/tools/taskTool.dynamicChecks.test.js.map +1 -0
- package/dist/cli/tools/taskTool.js +174 -6
- package/dist/cli/tools/taskTool.js.map +1 -1
- package/dist/cli/tools/taskTool.planSafety.test.js +280 -0
- package/dist/cli/tools/taskTool.planSafety.test.js.map +1 -0
- package/dist/cli/tools/taskTool.verifyReport.test.js +140 -0
- package/dist/cli/tools/taskTool.verifyReport.test.js.map +1 -0
- package/dist/cli/zelariMission.js +18 -8
- package/dist/cli/zelariMission.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* taskTool.dynamicChecks.test — Fase 6 / ADR-0020 (Kraken Verified Selection).
|
|
3
|
+
*
|
|
4
|
+
* BUILD dynamic checks: le requiredChecks di una selezione `selected`
|
|
5
|
+
* diventano proof obligations AUTOMATICHE di ogni tentacle verify:
|
|
6
|
+
* - append dedupe case-insensitive sull'acceptance del parent
|
|
7
|
+
* - mai iniettate su explore/general
|
|
8
|
+
* - mai con needs_more_evidence (i check restano advisory)
|
|
9
|
+
* - assenza di selezione ⇒ comportamento invariato
|
|
10
|
+
*/
|
|
11
|
+
import { describe, expect, it, beforeEach, afterEach } from 'vitest';
|
|
12
|
+
import { tmpdir } from 'node:os';
|
|
13
|
+
import path from 'node:path';
|
|
14
|
+
import fs from 'node:fs';
|
|
15
|
+
import { ToolRegistry } from '@zelari/core/harness/tools/registry';
|
|
16
|
+
import { createTaskTool, resetTaskSpawnCount, } from './taskTool.js';
|
|
17
|
+
import { resetKrakenCandidates, setKrakenSelection, } from '../kraken/candidateRegistry.js';
|
|
18
|
+
function tmpRoot() {
|
|
19
|
+
return fs.mkdtempSync(path.join(tmpdir(), 'zelari-dyn-checks-'));
|
|
20
|
+
}
|
|
21
|
+
function makeCtx(cwd = tmpRoot()) {
|
|
22
|
+
return {
|
|
23
|
+
signal: new AbortController().signal,
|
|
24
|
+
cwd,
|
|
25
|
+
audit: () => undefined,
|
|
26
|
+
sessionId: 'dynamic-checks-test',
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Deps fake che cattura il user prompt del tentacle via harnessFactory:
|
|
31
|
+
* config.messages[0] = system, [1] = user (buildTaskUserPrompt output).
|
|
32
|
+
*/
|
|
33
|
+
function capturingDeps() {
|
|
34
|
+
const prompts = [];
|
|
35
|
+
const deps = {
|
|
36
|
+
createSubAgentContext: async ({ agent }) => {
|
|
37
|
+
const ctx = {
|
|
38
|
+
providerStream: (() => {
|
|
39
|
+
throw new Error('not invoked by the scripted harness');
|
|
40
|
+
}),
|
|
41
|
+
model: 'test-model',
|
|
42
|
+
provider: 'test-provider',
|
|
43
|
+
registry: new ToolRegistry(),
|
|
44
|
+
tools: [],
|
|
45
|
+
agent,
|
|
46
|
+
};
|
|
47
|
+
return ctx;
|
|
48
|
+
},
|
|
49
|
+
harnessFactory: (config) => {
|
|
50
|
+
prompts.push(String(config.messages[1]?.content ?? ''));
|
|
51
|
+
return {
|
|
52
|
+
run: async function* () {
|
|
53
|
+
yield { type: 'message_start' };
|
|
54
|
+
yield { type: 'message_delta', delta: 'verified' };
|
|
55
|
+
yield { type: 'message_end' };
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
},
|
|
59
|
+
allowWorktree: false,
|
|
60
|
+
};
|
|
61
|
+
return { deps, userPrompts: () => prompts };
|
|
62
|
+
}
|
|
63
|
+
const CHECKS = [
|
|
64
|
+
'unit test for session refresh passes',
|
|
65
|
+
'no Set-Cookie regression on logout',
|
|
66
|
+
];
|
|
67
|
+
function verdict(status, requiredChecks = CHECKS) {
|
|
68
|
+
return {
|
|
69
|
+
status,
|
|
70
|
+
winnerIndex: status === 'selected' ? 1 : null,
|
|
71
|
+
rationale: 'grounded in evidence',
|
|
72
|
+
requiredChecks,
|
|
73
|
+
degraded: false,
|
|
74
|
+
verifier: { provider: 'p', model: 'm' },
|
|
75
|
+
judgedBy: 'llm',
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
async function spawnVerify(deps, acceptance) {
|
|
79
|
+
const tool = createTaskTool(deps);
|
|
80
|
+
const res = await tool.execute({
|
|
81
|
+
description: 'verify the fix',
|
|
82
|
+
prompt: 'Verify the implementation.',
|
|
83
|
+
agent: 'verify',
|
|
84
|
+
...(acceptance ? { acceptance } : {}),
|
|
85
|
+
}, makeCtx());
|
|
86
|
+
if (!res.ok)
|
|
87
|
+
throw new Error(`task failed: ${String(res.error)}`);
|
|
88
|
+
return '';
|
|
89
|
+
}
|
|
90
|
+
describe('verify acceptance injection (ADR-0020 Fase 6)', () => {
|
|
91
|
+
beforeEach(() => {
|
|
92
|
+
resetTaskSpawnCount();
|
|
93
|
+
resetKrakenCandidates();
|
|
94
|
+
});
|
|
95
|
+
afterEach(() => {
|
|
96
|
+
resetKrakenCandidates();
|
|
97
|
+
});
|
|
98
|
+
it('selected verdict → requiredChecks become the verify acceptance', async () => {
|
|
99
|
+
const { deps, userPrompts } = capturingDeps();
|
|
100
|
+
setKrakenSelection(verdict('selected'));
|
|
101
|
+
await spawnVerify(deps);
|
|
102
|
+
const prompt = userPrompts()[0];
|
|
103
|
+
expect(prompt).toContain('## Acceptance criteria');
|
|
104
|
+
expect(prompt).toContain(CHECKS[0]);
|
|
105
|
+
expect(prompt).toContain(CHECKS[1]);
|
|
106
|
+
});
|
|
107
|
+
it('merges with parent acceptance, deduped case-insensitively', async () => {
|
|
108
|
+
const { deps, userPrompts } = capturingDeps();
|
|
109
|
+
setKrakenSelection(verdict('selected'));
|
|
110
|
+
await spawnVerify(deps, [
|
|
111
|
+
'Existing criterion', // parent-provided, must be kept
|
|
112
|
+
'Unit Test For Session Refresh Passes', // same check, different case
|
|
113
|
+
]);
|
|
114
|
+
const prompt = userPrompts()[0];
|
|
115
|
+
expect(prompt).toContain('Existing criterion');
|
|
116
|
+
// dedupe: the case-variant does not produce a second copy
|
|
117
|
+
expect(prompt.match(/session refresh passes/gi)).toHaveLength(1);
|
|
118
|
+
// the non-duplicated required check is appended once
|
|
119
|
+
expect(prompt.match(/Set-Cookie regression/gi)).toHaveLength(1);
|
|
120
|
+
});
|
|
121
|
+
it('needs_more_evidence → checks stay advisory (no injection)', async () => {
|
|
122
|
+
const { deps, userPrompts } = capturingDeps();
|
|
123
|
+
setKrakenSelection(verdict('needs_more_evidence'));
|
|
124
|
+
await spawnVerify(deps);
|
|
125
|
+
expect(userPrompts()[0]).not.toContain('## Acceptance criteria');
|
|
126
|
+
expect(userPrompts()[0]).not.toContain(CHECKS[0]);
|
|
127
|
+
});
|
|
128
|
+
it('explore tentacle is never touched by the injection', async () => {
|
|
129
|
+
const { deps, userPrompts } = capturingDeps();
|
|
130
|
+
setKrakenSelection(verdict('selected'));
|
|
131
|
+
const tool = createTaskTool(deps);
|
|
132
|
+
await tool.execute({ description: 'explore', prompt: 'Look around.', agent: 'explore' }, makeCtx());
|
|
133
|
+
expect(userPrompts()[0]).not.toContain('## Acceptance criteria');
|
|
134
|
+
expect(userPrompts()[0]).not.toContain(CHECKS[0]);
|
|
135
|
+
});
|
|
136
|
+
it('general tentacle keeps its own acceptance only', async () => {
|
|
137
|
+
const { deps, userPrompts } = capturingDeps();
|
|
138
|
+
setKrakenSelection(verdict('selected'));
|
|
139
|
+
const tool = createTaskTool(deps);
|
|
140
|
+
await tool.execute({
|
|
141
|
+
description: 'impl',
|
|
142
|
+
prompt: 'Implement.',
|
|
143
|
+
agent: 'general',
|
|
144
|
+
acceptance: ['Only criterion'],
|
|
145
|
+
}, makeCtx());
|
|
146
|
+
const prompt = userPrompts()[0];
|
|
147
|
+
expect(prompt).toContain('Only criterion');
|
|
148
|
+
expect(prompt).not.toContain(CHECKS[0]);
|
|
149
|
+
});
|
|
150
|
+
it('no selection this turn → verify prompt unchanged (no acceptance)', async () => {
|
|
151
|
+
const { deps, userPrompts } = capturingDeps();
|
|
152
|
+
await spawnVerify(deps);
|
|
153
|
+
expect(userPrompts()[0]).not.toContain('## Acceptance criteria');
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
//# sourceMappingURL=taskTool.dynamicChecks.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taskTool.dynamicChecks.test.js","sourceRoot":"","sources":["../../../src/cli/tools/taskTool.dynamicChecks.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,9 @@ import { typedOk, typedErr, } from '@zelari/core/harness/tools/toolTypes';
|
|
|
22
22
|
import { appendKrakenRadio } from './krakenRadio.js';
|
|
23
23
|
import { createKrakenWorktree, cleanupKrakenWorktree, formatWorktreeFooter, isKrakenWorktreeEnabled, shouldKeepWorktree, mergeKrakenWorktree, isKrakenWorktreeAutoMergeEnabled, } from './krakenWorktree.js';
|
|
24
24
|
import { krakenTentacleStart, krakenTentacleEnd } from './krakenLive.js';
|
|
25
|
+
import { candidateInstructions, isKrakenSelectionEnabled, krakenRequiredChecks, parseCandidateReport, registerCandidate, reserveCandidateSlot, setKrakenCheckResults, } from '../kraken/candidateRegistry.js';
|
|
26
|
+
import { allUnknownCheckResults, parseVerifyReport } from '../kraken/verifyReport.js';
|
|
27
|
+
import { recordCandidateTokens } from '../kraken/metrics.js';
|
|
25
28
|
const EXPLORE_PROMPT = [
|
|
26
29
|
'You are a focused EXPLORE tentacle of Kraken (parent super-agent).',
|
|
27
30
|
'READ-ONLY tools only (read, list, grep, fetch). No edits, no shell.',
|
|
@@ -48,6 +51,15 @@ const VERIFY_PROMPT = [
|
|
|
48
51
|
'targeted checks over full suite when possible.',
|
|
49
52
|
'Report: pass/fail, commands run, key output, and gaps vs Acceptance criteria.',
|
|
50
53
|
'If Acceptance criteria are listed, check each one explicitly.',
|
|
54
|
+
'End your final message with ONE <verify-report> block per acceptance',
|
|
55
|
+
'criterion (required checks included), in this exact shape:',
|
|
56
|
+
'<verify-report>',
|
|
57
|
+
'check: <criterion text as given>',
|
|
58
|
+
'status: pass | fail | unknown',
|
|
59
|
+
'note: <one line of evidence (command + outcome)>',
|
|
60
|
+
'</verify-report>',
|
|
61
|
+
'Use status=unknown when you could NOT determine the outcome (degraded',
|
|
62
|
+
'tool, timeout, inconclusive evidence) — never guess pass.',
|
|
51
63
|
].join('\n');
|
|
52
64
|
/** Reset spawn counter (call at start of each parent user turn). */
|
|
53
65
|
export function resetTaskSpawnCount() {
|
|
@@ -84,6 +96,32 @@ export function buildTaskUserPrompt(args) {
|
|
|
84
96
|
}
|
|
85
97
|
return parts.join('\n');
|
|
86
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Fase 6 (ADR-0020): BUILD dynamic checks. When kraken_select selected a
|
|
101
|
+
* candidate this turn, its requiredChecks become proof obligations of
|
|
102
|
+
* every verify tentacle — appended to the parent's acceptance (deduped,
|
|
103
|
+
* case-insensitive) or the whole acceptance when the parent provided
|
|
104
|
+
* none. Explore/general are never touched; verify is PLAN-rejected
|
|
105
|
+
* (Fase 1), so this path is BUILD-only by construction. No flag gate
|
|
106
|
+
* needed: a verdict can only exist when the selection tool ran.
|
|
107
|
+
*/
|
|
108
|
+
export function withKrakenRequiredChecks(agent, acceptance) {
|
|
109
|
+
if (agent !== 'verify')
|
|
110
|
+
return acceptance;
|
|
111
|
+
const required = krakenRequiredChecks();
|
|
112
|
+
if (required.length === 0)
|
|
113
|
+
return acceptance;
|
|
114
|
+
const seen = new Set((acceptance ?? []).map((a) => a.trim().toLowerCase()));
|
|
115
|
+
const merged = [...(acceptance ?? [])];
|
|
116
|
+
for (const check of required) {
|
|
117
|
+
const key = check.trim().toLowerCase();
|
|
118
|
+
if (!seen.has(key)) {
|
|
119
|
+
seen.add(key);
|
|
120
|
+
merged.push(check);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return merged;
|
|
124
|
+
}
|
|
87
125
|
export function systemPromptForAgent(agent) {
|
|
88
126
|
if (agent === 'general')
|
|
89
127
|
return GENERAL_PROMPT;
|
|
@@ -145,6 +183,14 @@ const TaskArgsSchema = z.object({
|
|
|
145
183
|
.optional()
|
|
146
184
|
.describe('Optional acceptance checklist (contract). Appended to the prompt as Acceptance criteria.'),
|
|
147
185
|
});
|
|
186
|
+
const TaskPurposeSchema = z
|
|
187
|
+
.enum(['candidate'])
|
|
188
|
+
.optional()
|
|
189
|
+
.describe('Mark this explore tentacle as one CANDIDATE hypothesis (alpha: requires ' +
|
|
190
|
+
'ZELARI_KRAKEN_SELECTION=1). Forces agent=explore, structured report.');
|
|
191
|
+
const TaskArgsWithPurposeSchema = TaskArgsSchema.extend({
|
|
192
|
+
purpose: TaskPurposeSchema,
|
|
193
|
+
});
|
|
148
194
|
/**
|
|
149
195
|
* Run a sub-agent to completion and return the text of its final assistant
|
|
150
196
|
* message (the "conclusion"). Intermediate tool-call turns are discarded.
|
|
@@ -162,6 +208,7 @@ export async function runSubAgent(harness, opts = {}) {
|
|
|
162
208
|
let current = '';
|
|
163
209
|
let lastCompleted = '';
|
|
164
210
|
let error;
|
|
211
|
+
let usage;
|
|
165
212
|
if (signal?.aborted)
|
|
166
213
|
return { result: '', aborted: true };
|
|
167
214
|
for await (const ev of harness.run()) {
|
|
@@ -182,6 +229,23 @@ export async function runSubAgent(harness, opts = {}) {
|
|
|
182
229
|
case 'message_end':
|
|
183
230
|
if (current.trim())
|
|
184
231
|
lastCompleted = current;
|
|
232
|
+
// Fase 10: capture provider-reported usage (summed across the
|
|
233
|
+
// sub-agent's tool-loop turns) so candidate token costs are real,
|
|
234
|
+
// never approximated.
|
|
235
|
+
if (ev.usage) {
|
|
236
|
+
usage = usage
|
|
237
|
+
? {
|
|
238
|
+
promptTokens: usage.promptTokens + ev.usage.promptTokens,
|
|
239
|
+
completionTokens: usage.completionTokens + ev.usage.completionTokens,
|
|
240
|
+
totalTokens: usage.totalTokens + ev.usage.totalTokens,
|
|
241
|
+
...((usage.cachedPromptTokens ?? 0) + (ev.usage.cachedPromptTokens ?? 0) > 0
|
|
242
|
+
? {
|
|
243
|
+
cachedPromptTokens: (usage.cachedPromptTokens ?? 0) + (ev.usage.cachedPromptTokens ?? 0),
|
|
244
|
+
}
|
|
245
|
+
: {}),
|
|
246
|
+
}
|
|
247
|
+
: ev.usage;
|
|
248
|
+
}
|
|
185
249
|
current = '';
|
|
186
250
|
break;
|
|
187
251
|
case 'error':
|
|
@@ -192,7 +256,7 @@ export async function runSubAgent(harness, opts = {}) {
|
|
|
192
256
|
}
|
|
193
257
|
}
|
|
194
258
|
const result = (lastCompleted || current).trim();
|
|
195
|
-
return { result, ...(error ? { error } : {}) };
|
|
259
|
+
return { result, ...(error ? { error } : {}), ...(usage ? { usage } : {}) };
|
|
196
260
|
}
|
|
197
261
|
/**
|
|
198
262
|
* Run one Kraken tentacle end-to-end: optional worktree isolation, radio +
|
|
@@ -286,7 +350,7 @@ export async function runTentacle(opts) {
|
|
|
286
350
|
const userContent = buildTaskUserPrompt({
|
|
287
351
|
prompt: args.prompt,
|
|
288
352
|
scope: args.scope,
|
|
289
|
-
acceptance: args.acceptance,
|
|
353
|
+
acceptance: withKrakenRequiredChecks(agent, args.acceptance),
|
|
290
354
|
});
|
|
291
355
|
const maxToolCalls = maxToolCallsForThoroughness(thoroughness, agent);
|
|
292
356
|
const runCwd = sub.cwd || effectiveCwd;
|
|
@@ -324,7 +388,7 @@ export async function runTentacle(opts) {
|
|
|
324
388
|
error: `task: failed to start sub-agent — ${err instanceof Error ? err.message : String(err)}`,
|
|
325
389
|
};
|
|
326
390
|
}
|
|
327
|
-
const { result, error, aborted } = await runSubAgent(harness, {
|
|
391
|
+
const { result, error, aborted, usage } = await runSubAgent(harness, {
|
|
328
392
|
...(opts.signal ? { signal: opts.signal } : {}),
|
|
329
393
|
});
|
|
330
394
|
const durationMs = Date.now() - started;
|
|
@@ -434,12 +498,29 @@ export async function runTentacle(opts) {
|
|
|
434
498
|
model: sub.model,
|
|
435
499
|
result,
|
|
436
500
|
footer,
|
|
501
|
+
...(usage ? { usage } : {}),
|
|
437
502
|
worktreePath: worktree?.path ?? null,
|
|
438
503
|
worktreeHandle: worktree,
|
|
439
504
|
};
|
|
440
505
|
}
|
|
441
506
|
/** Build the `task` tool from injected sub-agent deps. */
|
|
442
|
-
export function createTaskTool(deps) {
|
|
507
|
+
export function createTaskTool(deps, policy = {}) {
|
|
508
|
+
const allowedAgents = policy.allowedAgents ?? ['explore', 'general', 'verify'];
|
|
509
|
+
const restricted = policy.allowedAgents !== undefined &&
|
|
510
|
+
!(policy.allowedAgents.includes('explore') &&
|
|
511
|
+
policy.allowedAgents.includes('general') &&
|
|
512
|
+
policy.allowedAgents.includes('verify'));
|
|
513
|
+
// When restricted, narrow the zod enum too so conforming providers cannot
|
|
514
|
+
// emit a disallowed kind (belt) on top of the execute-time gate (braces).
|
|
515
|
+
const inputSchema = restricted
|
|
516
|
+
? TaskArgsSchema.extend({
|
|
517
|
+
agent: z
|
|
518
|
+
.enum(allowedAgents)
|
|
519
|
+
.optional()
|
|
520
|
+
.describe(`Sub-agent type. In this mode ONLY ${allowedAgents.join('|')} is allowed ` +
|
|
521
|
+
'(plan-safe read-only tentacles).'),
|
|
522
|
+
})
|
|
523
|
+
: TaskArgsSchema;
|
|
443
524
|
return {
|
|
444
525
|
name: 'task',
|
|
445
526
|
description: 'Delegate a focused sub-task to an isolated sub-agent with its own context; ' +
|
|
@@ -448,12 +529,40 @@ export function createTaskTool(deps) {
|
|
|
448
529
|
'- agent=general: can edit files for one bounded unit of work\n' +
|
|
449
530
|
'- agent=verify: read + bash to run tests/checks\n' +
|
|
450
531
|
'Provide a fully self-contained `prompt` (sub-agent cannot see this conversation). ' +
|
|
451
|
-
'Optional scope[] + acceptance[] contracts. After general, follow up with verify.'
|
|
532
|
+
'Optional scope[] + acceptance[] contracts. After general, follow up with verify.' +
|
|
533
|
+
(restricted
|
|
534
|
+
? `\nRESTRICTED in this mode: only agent=${allowedAgents.join('|')} is allowed.`
|
|
535
|
+
: ''),
|
|
452
536
|
permissions: ['read', 'network', 'write', 'execute'],
|
|
453
537
|
timeoutMs: 300_000,
|
|
454
|
-
inputSchema
|
|
538
|
+
inputSchema,
|
|
455
539
|
execute: async (args, ctx) => {
|
|
456
540
|
const agent = args.agent ?? 'explore';
|
|
541
|
+
let candidateSlot = 0;
|
|
542
|
+
// Fase 1 (ADR-0020): policy gate BEFORE the spawn budget — a rejected
|
|
543
|
+
// kind must not consume the per-turn tentacle budget.
|
|
544
|
+
if (!allowedAgents.includes(agent)) {
|
|
545
|
+
return typedErr(`task: agent=${agent} is not allowed in this mode. Allowed: ${allowedAgents.join(', ')} ` +
|
|
546
|
+
'(plan-safe read-only tentacles). Re-issue with an allowed agent kind.');
|
|
547
|
+
}
|
|
548
|
+
// Fase 3 (ADR-0020): candidate contract — explore-only, flag-gated,
|
|
549
|
+
// capped per turn. Checked BEFORE the spawn budget (same rule as the
|
|
550
|
+
// policy gate: a rejected candidate must not consume the budget).
|
|
551
|
+
const isCandidate = args.purpose === 'candidate';
|
|
552
|
+
if (isCandidate) {
|
|
553
|
+
if (!isKrakenSelectionEnabled()) {
|
|
554
|
+
return typedErr('task: purpose=candidate requires ZELARI_KRAKEN_SELECTION=1 (alpha feature). ' +
|
|
555
|
+
'Spawn a plain explore tentacle instead.');
|
|
556
|
+
}
|
|
557
|
+
if (agent !== 'explore') {
|
|
558
|
+
return typedErr('task: purpose=candidate forces agent=explore (candidates are read-only ' +
|
|
559
|
+
'in v1 — zero candidate implementations, ADR-0020).');
|
|
560
|
+
}
|
|
561
|
+
const slot = reserveCandidateSlot();
|
|
562
|
+
if ('error' in slot)
|
|
563
|
+
return typedErr(slot.error);
|
|
564
|
+
candidateSlot = slot.index;
|
|
565
|
+
}
|
|
457
566
|
const thoroughness = args.thoroughness ?? 'medium';
|
|
458
567
|
const sessionId = ctx.sessionId || 'default';
|
|
459
568
|
const parentCwd = ctx.cwd || process.cwd();
|
|
@@ -476,7 +585,66 @@ export function createTaskTool(deps) {
|
|
|
476
585
|
thoroughness,
|
|
477
586
|
parentCwd,
|
|
478
587
|
sessionId,
|
|
588
|
+
// Fase 1 (ADR-0020): propagate the parent turn's cancellation signal
|
|
589
|
+
// so cancel/timeout unwinds the tentacle instead of letting it run on.
|
|
590
|
+
...(ctx.signal ? { signal: ctx.signal } : {}),
|
|
591
|
+
...(isCandidate
|
|
592
|
+
? {
|
|
593
|
+
systemPromptOverride: systemPromptForAgent('explore') +
|
|
594
|
+
'\n\n' +
|
|
595
|
+
candidateInstructions(candidateSlot),
|
|
596
|
+
}
|
|
597
|
+
: {}),
|
|
479
598
|
});
|
|
599
|
+
// Fase 3 (ADR-0020): register the structured report (malformed reports
|
|
600
|
+
// are preserved as degraded evidence, never dropped). The parent still
|
|
601
|
+
// sees the full conclusion text including the <candidate-report> block.
|
|
602
|
+
if (isCandidate) {
|
|
603
|
+
// Fase 10: real provider-reported tokens (0 when unreported/failed).
|
|
604
|
+
recordCandidateTokens(res.ok ? res.usage?.totalTokens ?? 0 : 0);
|
|
605
|
+
if (res.ok) {
|
|
606
|
+
const parsed = parseCandidateReport(res.result);
|
|
607
|
+
registerCandidate(parsed.ok
|
|
608
|
+
? {
|
|
609
|
+
status: 'ok',
|
|
610
|
+
index: candidateSlot,
|
|
611
|
+
description: args.description,
|
|
612
|
+
report: parsed.report,
|
|
613
|
+
raw: res.result,
|
|
614
|
+
}
|
|
615
|
+
: {
|
|
616
|
+
status: 'malformed',
|
|
617
|
+
index: candidateSlot,
|
|
618
|
+
description: args.description,
|
|
619
|
+
error: parsed.error,
|
|
620
|
+
raw: res.result,
|
|
621
|
+
});
|
|
622
|
+
}
|
|
623
|
+
else {
|
|
624
|
+
// Failed tentacle: the slot is consumed and tracked as malformed
|
|
625
|
+
// (no report arrived — degraded by definition).
|
|
626
|
+
registerCandidate({
|
|
627
|
+
status: 'malformed',
|
|
628
|
+
index: candidateSlot,
|
|
629
|
+
description: args.description,
|
|
630
|
+
error: res.error,
|
|
631
|
+
raw: '',
|
|
632
|
+
});
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
// Fase 7 (ADR-0020): structured verification — the verify tentacle
|
|
636
|
+
// reports pass/fail/unknown per required check. A failed tentacle or
|
|
637
|
+
// a missing block leaves checks `unknown`: a degraded observation is
|
|
638
|
+
// never proof. Only runs when a selection exists this turn (required
|
|
639
|
+
// checks come from a `selected` verdict — Fase 6 routing).
|
|
640
|
+
if (agent === 'verify') {
|
|
641
|
+
const required = krakenRequiredChecks();
|
|
642
|
+
if (required.length > 0) {
|
|
643
|
+
setKrakenCheckResults(res.ok
|
|
644
|
+
? parseVerifyReport(res.result, required)
|
|
645
|
+
: allUnknownCheckResults(required, `verify tentacle failed: ${res.error}`));
|
|
646
|
+
}
|
|
647
|
+
}
|
|
480
648
|
if (!res.ok)
|
|
481
649
|
return typedErr(res.error);
|
|
482
650
|
return typedOk({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taskTool.js","sourceRoot":"","sources":["../../../src/cli/tools/taskTool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taskTool.js","sourceRoot":"","sources":["../../../src/cli/tools/taskTool.ts"],"names":[],"mappings":"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"}
|