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.
Files changed (77) hide show
  1. package/dist/cli/app.js +4 -1
  2. package/dist/cli/app.js.map +1 -1
  3. package/dist/cli/desktopConfig.js +51 -4
  4. package/dist/cli/desktopConfig.js.map +1 -1
  5. package/dist/cli/headless.js +65 -0
  6. package/dist/cli/headless.js.map +1 -1
  7. package/dist/cli/headlessSpine.js +102 -0
  8. package/dist/cli/headlessSpine.js.map +1 -0
  9. package/dist/cli/headlessSpine.test.js +153 -0
  10. package/dist/cli/headlessSpine.test.js.map +1 -0
  11. package/dist/cli/hooks/useChatTurn.js +85 -0
  12. package/dist/cli/hooks/useChatTurn.js.map +1 -1
  13. package/dist/cli/hooks/useSession.js +16 -2
  14. package/dist/cli/hooks/useSession.js.map +1 -1
  15. package/dist/cli/kraken/candidateRegistry.js +195 -0
  16. package/dist/cli/kraken/candidateRegistry.js.map +1 -0
  17. package/dist/cli/kraken/candidateRegistry.test.js +211 -0
  18. package/dist/cli/kraken/candidateRegistry.test.js.map +1 -0
  19. package/dist/cli/kraken/completionGate.js +116 -0
  20. package/dist/cli/kraken/completionGate.js.map +1 -0
  21. package/dist/cli/kraken/completionGate.test.js +172 -0
  22. package/dist/cli/kraken/completionGate.test.js.map +1 -0
  23. package/dist/cli/kraken/metrics.js +96 -0
  24. package/dist/cli/kraken/metrics.js.map +1 -0
  25. package/dist/cli/kraken/metrics.test.js +145 -0
  26. package/dist/cli/kraken/metrics.test.js.map +1 -0
  27. package/dist/cli/kraken/selectionPlaybook.js +23 -0
  28. package/dist/cli/kraken/selectionPlaybook.js.map +1 -0
  29. package/dist/cli/kraken/selectionPlaybook.test.js +55 -0
  30. package/dist/cli/kraken/selectionPlaybook.test.js.map +1 -0
  31. package/dist/cli/kraken/turnRuntime.js +207 -0
  32. package/dist/cli/kraken/turnRuntime.js.map +1 -0
  33. package/dist/cli/kraken/turnRuntime.test.js +377 -0
  34. package/dist/cli/kraken/turnRuntime.test.js.map +1 -0
  35. package/dist/cli/kraken/verificationBridge.js +153 -0
  36. package/dist/cli/kraken/verificationBridge.js.map +1 -0
  37. package/dist/cli/kraken/verificationBridge.test.js +131 -0
  38. package/dist/cli/kraken/verificationBridge.test.js.map +1 -0
  39. package/dist/cli/kraken/verifier.js +233 -0
  40. package/dist/cli/kraken/verifier.js.map +1 -0
  41. package/dist/cli/kraken/verifier.test.js +232 -0
  42. package/dist/cli/kraken/verifier.test.js.map +1 -0
  43. package/dist/cli/kraken/verifierSettings.test.js +237 -0
  44. package/dist/cli/kraken/verifierSettings.test.js.map +1 -0
  45. package/dist/cli/kraken/verifyReport.js +115 -0
  46. package/dist/cli/kraken/verifyReport.js.map +1 -0
  47. package/dist/cli/kraken/verifyReport.test.js +111 -0
  48. package/dist/cli/kraken/verifyReport.test.js.map +1 -0
  49. package/dist/cli/main.bundled.js +4676 -943
  50. package/dist/cli/main.bundled.js.map +4 -4
  51. package/dist/cli/main.js +29 -0
  52. package/dist/cli/main.js.map +1 -1
  53. package/dist/cli/providerConfig.js +46 -0
  54. package/dist/cli/providerConfig.js.map +1 -1
  55. package/dist/cli/runHeadless.js +198 -4
  56. package/dist/cli/runHeadless.js.map +1 -1
  57. package/dist/cli/sessionSpine.js +272 -0
  58. package/dist/cli/sessionSpine.js.map +1 -0
  59. package/dist/cli/sessionSpine.test.js +171 -0
  60. package/dist/cli/sessionSpine.test.js.map +1 -0
  61. package/dist/cli/toolRegistry.js +50 -6
  62. package/dist/cli/toolRegistry.js.map +1 -1
  63. package/dist/cli/tools/krakenSelectTool.js +165 -0
  64. package/dist/cli/tools/krakenSelectTool.js.map +1 -0
  65. package/dist/cli/tools/krakenSelectTool.test.js +246 -0
  66. package/dist/cli/tools/krakenSelectTool.test.js.map +1 -0
  67. package/dist/cli/tools/taskTool.dynamicChecks.test.js +156 -0
  68. package/dist/cli/tools/taskTool.dynamicChecks.test.js.map +1 -0
  69. package/dist/cli/tools/taskTool.js +174 -6
  70. package/dist/cli/tools/taskTool.js.map +1 -1
  71. package/dist/cli/tools/taskTool.planSafety.test.js +280 -0
  72. package/dist/cli/tools/taskTool.planSafety.test.js.map +1 -0
  73. package/dist/cli/tools/taskTool.verifyReport.test.js +140 -0
  74. package/dist/cli/tools/taskTool.verifyReport.test.js.map +1 -0
  75. package/dist/cli/zelariMission.js +18 -8
  76. package/dist/cli/zelariMission.js.map +1 -1
  77. 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: TaskArgsSchema,
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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"}