opencode-swarm 7.132.2 → 7.134.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 +4 -1
- package/dist/agents/agent-output-schema.d.ts +74 -0
- package/dist/agents/critic.d.ts +2 -1
- package/dist/agents/reviewer.d.ts +1 -1
- package/dist/background/completion-observer.d.ts +17 -5
- package/dist/background/pending-delegations.d.ts +315 -2
- package/dist/background/stage-b-gates.d.ts +2 -0
- package/dist/cli/{config-doctor-bp5spb79.js → config-doctor-t5r92674.js} +3 -3
- package/dist/cli/{core-wg3re04e.js → core-d6yd2jzv.js} +2 -2
- package/dist/cli/{curation-policy-7zp2m9gv.js → curation-policy-3smfn2a3.js} +7 -7
- package/dist/cli/{curator-drift-y1wm4atk.js → curator-drift-tsyyf4b4.js} +4 -4
- package/dist/cli/{curator-h067mrcc.js → curator-hva8f3nf.js} +31 -29
- package/dist/cli/{curator-llm-factory-605d08hf.js → curator-llm-factory-p3aqev12.js} +31 -29
- package/dist/cli/{dispatch-3mhgqj2x.js → dispatch-gxbeb2ps.js} +2 -2
- package/dist/cli/{evidence-summary-service-jfagmvrh.js → evidence-summary-service-mrzsjpg4.js} +12 -11
- package/dist/cli/{gate-evidence-cy2te3x8.js → gate-evidence-b5v1xvxp.js} +4 -4
- package/dist/cli/guardrail-explain-k8mcvk61.js +57 -0
- package/dist/cli/{guardrail-log-aa112fxv.js → guardrail-log-absma1rv.js} +5 -5
- package/dist/cli/{hive-promoter-nv0m5rzk.js → hive-promoter-jwd51gzk.js} +31 -29
- package/dist/cli/{index-g4mnf3p5.js → index-1j3682j8.js} +5 -5
- package/dist/cli/{index-6ccynjv3.js → index-2njes601.js} +8 -8
- package/dist/cli/{index-w9cb5zwh.js → index-2t1n9k7b.js} +4 -4
- package/dist/cli/{index-f6480ee6.js → index-3dtjhr26.js} +5259 -1759
- package/dist/cli/{index-2tn5h2zp.js → index-4p02dp92.js} +6 -6
- package/dist/cli/index-b4z7s917.js +80 -0
- package/dist/cli/{index-bvp2v7k1.js → index-b5ek2cge.js} +266 -19
- package/dist/cli/index-b8zgtz81.js +123 -0
- package/dist/cli/{index-3s9rfnqq.js → index-baawkm48.js} +12 -12
- package/dist/cli/{index-fgcmxjp7.js → index-c3e0ymrg.js} +1 -1
- package/dist/cli/{index-q27bajqb.js → index-cfkvc5q9.js} +3 -3
- package/dist/cli/{index-7mkpsw6g.js → index-dd7ttx8x.js} +1 -1
- package/dist/cli/{index-jgfcp9bh.js → index-dgxgvzab.js} +7 -7
- package/dist/cli/{index-8d3m0ge3.js → index-eedq2y40.js} +48 -34
- package/dist/cli/{index-630badhp.js → index-g87ty4wp.js} +149 -6
- package/dist/cli/{index-yvv1wt2h.js → index-hgh01f6h.js} +25 -3
- package/dist/cli/{index-9cf1yr67.js → index-j6ywarjp.js} +3 -3
- package/dist/cli/{index-mwkwyej1.js → index-jpkxjmfw.js} +5 -5
- package/dist/cli/{index-03zyn94g.js → index-k742ecbm.js} +178 -222
- package/dist/cli/{index-y5qp59rc.js → index-kapharv7.js} +10 -4
- package/dist/cli/{index-djwemsjn.js → index-m2s0gbzt.js} +2 -2
- package/dist/cli/{index-4ff0x4cg.js → index-p8hezdtz.js} +1 -1
- package/dist/cli/{index-k4tmx21m.js → index-rkyhv4p5.js} +2 -2
- package/dist/cli/{index-3x761jqv.js → index-wk1h5ec2.js} +1 -1
- package/dist/cli/{index-jj4earrh.js → index-xfejq1p9.js} +1 -1
- package/dist/cli/{index-rt5jgktq.js → index-y0kk3rtv.js} +2 -2
- package/dist/cli/index-y3v1404y.js +1625 -0
- package/dist/cli/index.js +35 -31
- package/dist/cli/{knowledge-escalator-j0nceas7.js → knowledge-escalator-mkdac2m7.js} +8 -8
- package/dist/cli/{knowledge-events-gpqc62jr.js → knowledge-events-jjc9qbe0.js} +6 -6
- package/dist/cli/{knowledge-link-4yd2z8ev.js → knowledge-link-nc4y2zkq.js} +5 -5
- package/dist/cli/{knowledge-store-ggxr3ww5.js → knowledge-store-9e0w1kxm.js} +6 -6
- package/dist/cli/{knowledge-validator-007smap6.js → knowledge-validator-h1nrn2pk.js} +9 -9
- package/dist/cli/pending-delegations-v9e40hfk.js +96 -0
- package/dist/cli/{pr-subscriptions-zqbmctwz.js → pr-subscriptions-ztq40hrt.js} +7 -7
- package/dist/cli/{scan-cursor-wz4bff7a.js → scan-cursor-mk3tq3sf.js} +7 -7
- package/dist/cli/{schema-023gwne7.js → schema-bjb0yzsq.js} +7 -3
- package/dist/cli/{scope-persistence-dm5bab50.js → scope-persistence-hz3zmmsv.js} +5 -5
- package/dist/cli/{skill-generator-rtsg1m7x.js → skill-generator-p1de0wkr.js} +10 -10
- package/dist/cli/worktree-collision-ownership-c4bdnjtx.js +221 -0
- package/dist/commands/command-dispatch.d.ts +7 -0
- package/dist/commands/index.d.ts +7 -0
- package/dist/commands/registry.d.ts +16 -0
- package/dist/commands/review.d.ts +21 -0
- package/dist/config/agent-names.d.ts +3 -3
- package/dist/config/evidence-schema.d.ts +47 -47
- package/dist/config/index.d.ts +2 -2
- package/dist/config/schema.d.ts +58 -6
- package/dist/consensus/contracts.d.ts +3 -3
- package/dist/evaluation/ephemeral-agent-dispatcher.d.ts +64 -0
- package/dist/evaluation/model-dispatcher.d.ts +11 -5
- package/dist/hooks/auto-review.d.ts +30 -65
- package/dist/hooks/delegation-gate/worktree-collision-ownership.d.ts +28 -0
- package/dist/hooks/delegation-gate/worktree-isolation.d.ts +63 -1
- package/dist/hooks/delegation-gate/worktree-merge-status.d.ts +14 -0
- package/dist/hooks/delegation-gate/worktree-ownership-tag.d.ts +19 -0
- package/dist/hooks/delegation-gate/worktree-provisioning-owner.d.ts +30 -0
- package/dist/hooks/delegation-gate.d.ts +15 -6
- package/dist/hooks/guardrails/tool-before.d.ts +8 -0
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/init-orphan-recovery.d.ts +17 -0
- package/dist/hooks/review-receipt-collector.d.ts +53 -10
- package/dist/hooks/review-receipt-scope.d.ts +74 -0
- package/dist/hooks/review-receipt.d.ts +104 -10
- package/dist/hooks/reviewer-scope-file-fingerprint.d.ts +21 -0
- package/dist/hooks/reviewer-scope-lifecycle.d.ts +19 -0
- package/dist/hooks/task-result-classifier.d.ts +6 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +583 -524
- package/dist/memory/schema.d.ts +1 -1
- package/dist/review/contracts.d.ts +29 -0
- package/dist/review/diff-source.d.ts +134 -0
- package/dist/review/engine.d.ts +60 -0
- package/dist/review/evidence.d.ts +88 -0
- package/dist/review/finding-validator.d.ts +77 -0
- package/dist/review/phase-runner.d.ts +37 -0
- package/dist/review/runtime.d.ts +32 -0
- package/dist/scope/scope-binding.d.ts +9 -0
- package/dist/services/config-doctor.d.ts +12 -0
- package/dist/session/snapshot-writer.d.ts +2 -0
- package/dist/state.d.ts +222 -1
- package/dist/tools/dispatch-lanes.d.ts +3 -1
- package/dist/tools/epic-record-divergence.d.ts +5 -5
- package/dist/tools/lean-turbo-review.d.ts +4 -1
- package/dist/tools/lean-turbo-run-phase.d.ts +3 -1
- package/dist/tools/phase-complete/gates/final-review-gate.d.ts +18 -0
- package/dist/tools/phase-complete/gates/index.d.ts +1 -0
- package/dist/tools/phase-complete/gates/types.d.ts +10 -0
- package/dist/tools/phase-complete.d.ts +13 -1
- package/dist/tools/plugin-registration.d.ts +3 -1
- package/dist/tools/swarm-command.d.ts +4 -1
- package/dist/tools/tool-metadata.d.ts +22 -22
- package/dist/turbo/lean/integration.d.ts +18 -2
- package/dist/turbo/lean/reviewer.d.ts +19 -3
- package/dist/turbo/lean/runner.d.ts +1 -1
- package/dist/worktree/merge.d.ts +47 -1
- package/package.json +1 -1
- package/dist/cli/guardrail-explain-s7vzm6z7.js +0 -55
- package/dist/cli/index-y2pfmd0z.js +0 -259
- package/dist/cli/pending-delegations-37t4xecr.js +0 -34
- package/dist/cli/{index-9f71ye47.js → index-13xxjfhn.js} +3 -3
- package/dist/cli/{index-s80bsjkj.js → index-2ghkk9ve.js} +6 -6
- package/dist/cli/{index-76kvm9z5.js → index-5nybajn9.js} +3 -3
package/dist/state.d.ts
CHANGED
|
@@ -64,6 +64,62 @@ export interface PrSubscriptionState {
|
|
|
64
64
|
* Transitions must be forward-only: idle → coder_delegated → pre_check_passed → reviewer_run → tests_run → complete
|
|
65
65
|
*/
|
|
66
66
|
export type TaskWorkflowState = 'idle' | 'coder_delegated' | 'pre_check_passed' | 'reviewer_run' | 'tests_run' | 'complete';
|
|
67
|
+
/**
|
|
68
|
+
* Upper bound for per-session task file-attribution entries.
|
|
69
|
+
*
|
|
70
|
+
* Runtime concurrency is capped well below this value. When the map is full,
|
|
71
|
+
* only workflow-complete entries may be reclaimed; live task attribution is
|
|
72
|
+
* never evicted to make room.
|
|
73
|
+
*/
|
|
74
|
+
export declare const MAX_TRACKED_TASK_FILE_ATTRIBUTIONS = 128;
|
|
75
|
+
/** Exact lifecycle state for one coder generation and its paired reviewer. */
|
|
76
|
+
export interface ReviewerScopeGeneration {
|
|
77
|
+
taskId: string;
|
|
78
|
+
coderCallID: string;
|
|
79
|
+
generation: number;
|
|
80
|
+
sessionIncarnation: string;
|
|
81
|
+
background: boolean;
|
|
82
|
+
declaredFiles: string[];
|
|
83
|
+
modifiedFiles: string[];
|
|
84
|
+
modifiedFileFingerprints: import('./hooks/reviewer-scope-file-fingerprint.js').ReviewerScopeFileFingerprint[];
|
|
85
|
+
status: 'collecting' | 'ready' | 'claimed';
|
|
86
|
+
createdAt: number;
|
|
87
|
+
readyAt?: number;
|
|
88
|
+
reviewerCallID?: string;
|
|
89
|
+
reviewerDispatchScope?: ReviewerScopeDispatchSnapshot;
|
|
90
|
+
}
|
|
91
|
+
export interface ReviewerScopeDispatchSnapshot {
|
|
92
|
+
hash: string;
|
|
93
|
+
description: string;
|
|
94
|
+
files: string[];
|
|
95
|
+
headSha: string;
|
|
96
|
+
taskId: string;
|
|
97
|
+
coderCallID: string;
|
|
98
|
+
generation: number;
|
|
99
|
+
sessionIncarnation: string;
|
|
100
|
+
}
|
|
101
|
+
export interface ReviewerScopeGenerationIdentity {
|
|
102
|
+
generation: number;
|
|
103
|
+
coderCallID: string;
|
|
104
|
+
sessionIncarnation: string;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Immutable ownership provenance retained after a background generation's
|
|
108
|
+
* reviewer consumes the live handoff. Delayed sibling completion ingestion may
|
|
109
|
+
* consult this bounded history, but only exact fingerprints and overlapping
|
|
110
|
+
* dispatch intervals can establish ownership.
|
|
111
|
+
*/
|
|
112
|
+
export interface ReviewerScopeOwnershipTombstone extends ReviewerScopeGenerationIdentity {
|
|
113
|
+
parentSessionID: string;
|
|
114
|
+
taskId: string;
|
|
115
|
+
background: true;
|
|
116
|
+
declaredFiles: string[];
|
|
117
|
+
modifiedFiles: string[];
|
|
118
|
+
modifiedFileFingerprints: import('./hooks/reviewer-scope-file-fingerprint.js').ReviewerScopeFileFingerprint[];
|
|
119
|
+
createdAt: number;
|
|
120
|
+
readyAt: number;
|
|
121
|
+
consumedAt: number;
|
|
122
|
+
}
|
|
67
123
|
/**
|
|
68
124
|
* Represents per-session state for guardrail tracking.
|
|
69
125
|
* Budget fields (toolCallCount, consecutiveErrors, etc.) have moved to InvocationWindow.
|
|
@@ -170,8 +226,23 @@ export interface AgentSessionState {
|
|
|
170
226
|
lastScopeViolation: string | null;
|
|
171
227
|
/** Flag for one-shot scope violation warning injection in messagesTransform */
|
|
172
228
|
scopeViolationDetected?: boolean;
|
|
173
|
-
/**
|
|
229
|
+
/** Task-keyed files modified by coder work. Bounded by MAX_TRACKED_TASK_FILE_ATTRIBUTIONS. */
|
|
230
|
+
modifiedFilesByTask: Map<string, string[]>;
|
|
231
|
+
/**
|
|
232
|
+
* Compatibility projection for callers that still inspect the active task.
|
|
233
|
+
* Helpers in this module keep it synchronized only with `currentTaskId`.
|
|
234
|
+
*/
|
|
174
235
|
modifiedFilesThisCoderTask: string[];
|
|
236
|
+
/** Bounded coder generations awaiting exact reviewer claims. */
|
|
237
|
+
reviewerScopeGenerations?: Map<string, ReviewerScopeGeneration>;
|
|
238
|
+
/** Monotonic per-session generation source; call identity remains authoritative. */
|
|
239
|
+
reviewerScopeGenerationCounter?: number;
|
|
240
|
+
/** Non-reused identity for this in-memory parent-session incarnation. */
|
|
241
|
+
reviewerScopeIncarnation?: string;
|
|
242
|
+
/** Latest generation token by task, retained through async validation. */
|
|
243
|
+
reviewerScopeLatestGenerationByTask?: Map<string, ReviewerScopeGenerationIdentity>;
|
|
244
|
+
/** Bounded recent background ownership retained after reviewer consumption. */
|
|
245
|
+
reviewerScopeOwnershipHistory?: Map<string, ReviewerScopeOwnershipTombstone>;
|
|
175
246
|
/** Number of coder revisions in the current task (incremented on each coder delegation completion) */
|
|
176
247
|
coderRevisions: number;
|
|
177
248
|
/** Flag set when coder revisions hit the configured ceiling */
|
|
@@ -449,6 +520,127 @@ export declare function resetSwarmState(): void;
|
|
|
449
520
|
* propagate to caller (no try/catch wrapper).
|
|
450
521
|
*/
|
|
451
522
|
export declare function resetSwarmStatePreservingSingletons(): void;
|
|
523
|
+
/** Match the Stage-B scope builder's hard file-count ceiling. */
|
|
524
|
+
export declare const MAX_REVIEWER_SCOPE_GENERATION_FILES = 256;
|
|
525
|
+
/** One parent session may retain at most this many parallel task generations. */
|
|
526
|
+
export declare const MAX_REVIEWER_SCOPE_GENERATIONS = 256;
|
|
527
|
+
/** Recent consumed owners are bounded to the maximum parallel generation set. */
|
|
528
|
+
export declare const MAX_REVIEWER_SCOPE_OWNERSHIP_HISTORY = 256;
|
|
529
|
+
/** Generation expiry never exceeds the parent session's normal idle TTL. */
|
|
530
|
+
export declare const REVIEWER_SCOPE_GENERATION_TTL_MS = 7200000;
|
|
531
|
+
/** Begin one exact coder generation after the full blocking before-chain passes. */
|
|
532
|
+
export declare function startReviewerScopeGeneration(input: {
|
|
533
|
+
parentSessionID: string;
|
|
534
|
+
taskId: string;
|
|
535
|
+
coderCallID: string;
|
|
536
|
+
background?: boolean;
|
|
537
|
+
declaredFiles?: string[];
|
|
538
|
+
createdAt?: number;
|
|
539
|
+
}): ReviewerScopeGeneration | null;
|
|
540
|
+
/** Route one child-observed write to its exact parent/task/coder generation. */
|
|
541
|
+
export declare function recordReviewerScopeGenerationFile(input: {
|
|
542
|
+
parentSessionID: string;
|
|
543
|
+
taskId: string;
|
|
544
|
+
coderCallID: string;
|
|
545
|
+
file: string;
|
|
546
|
+
now?: number;
|
|
547
|
+
}): boolean;
|
|
548
|
+
/**
|
|
549
|
+
* Record the bounded post-write state only after a guarded child write returns
|
|
550
|
+
* successfully. Pre-write routing in modifiedFiles remains authorization metadata.
|
|
551
|
+
*/
|
|
552
|
+
export declare function recordReviewerScopeGenerationFileFingerprint(input: {
|
|
553
|
+
parentSessionID: string;
|
|
554
|
+
taskId: string;
|
|
555
|
+
coderCallID: string;
|
|
556
|
+
fingerprint: import('./hooks/reviewer-scope-file-fingerprint.js').ReviewerScopeFileFingerprint;
|
|
557
|
+
}): boolean;
|
|
558
|
+
/** Mark the exact coder call terminal; background running placeholders do not call this. */
|
|
559
|
+
export declare function markReviewerScopeGenerationReady(input: {
|
|
560
|
+
parentSessionID: string;
|
|
561
|
+
taskId: string;
|
|
562
|
+
coderCallID: string;
|
|
563
|
+
readyAt?: number;
|
|
564
|
+
}): boolean;
|
|
565
|
+
/** Read one exact coder generation for terminal guardrail/evidence checks. */
|
|
566
|
+
export declare function getReviewerScopeGenerationForCoderCall(input: {
|
|
567
|
+
parentSessionID: string;
|
|
568
|
+
taskId?: string;
|
|
569
|
+
coderCallID: string;
|
|
570
|
+
now?: number;
|
|
571
|
+
}): ReviewerScopeGeneration | null;
|
|
572
|
+
/** Inspect the only ready generation for a task without claiming it. */
|
|
573
|
+
export declare function peekReadyReviewerScopeGeneration(input: {
|
|
574
|
+
parentSessionID: string;
|
|
575
|
+
taskId: string;
|
|
576
|
+
now?: number;
|
|
577
|
+
}): ReviewerScopeGeneration | null;
|
|
578
|
+
/**
|
|
579
|
+
* Claim the only ready generation for an exact task after every blocking
|
|
580
|
+
* reviewer before-hook has passed. Ambiguity fails closed to no receipt.
|
|
581
|
+
*/
|
|
582
|
+
export declare function claimReviewerScopeGeneration(input: {
|
|
583
|
+
parentSessionID: string;
|
|
584
|
+
taskId: string;
|
|
585
|
+
reviewerCallID: string;
|
|
586
|
+
now?: number;
|
|
587
|
+
}): ReviewerScopeGeneration | null;
|
|
588
|
+
/** Bind the immutable scope captured immediately before the reviewer Task dispatch. */
|
|
589
|
+
export declare function attachReviewerScopeGenerationDispatchSnapshot(input: {
|
|
590
|
+
parentSessionID: string;
|
|
591
|
+
taskId: string;
|
|
592
|
+
reviewerCallID: string;
|
|
593
|
+
snapshot: ReviewerScopeDispatchSnapshot;
|
|
594
|
+
}): boolean;
|
|
595
|
+
/** Terminal one-shot consumption by exact task and reviewer Task call. */
|
|
596
|
+
export declare function takeReviewerScopeGeneration(input: {
|
|
597
|
+
parentSessionID: string;
|
|
598
|
+
taskId: string;
|
|
599
|
+
reviewerCallID: string;
|
|
600
|
+
now?: number;
|
|
601
|
+
}): ReviewerScopeGeneration | null;
|
|
602
|
+
/** Read bounded immutable ownership history for delayed background ingestion. */
|
|
603
|
+
export declare function getReviewerScopeOwnershipHistory(input: {
|
|
604
|
+
parentSessionID: string;
|
|
605
|
+
}): ReviewerScopeOwnershipTombstone[];
|
|
606
|
+
/** Inspect one exact reviewer claim without consuming retryable state. */
|
|
607
|
+
export declare function peekReviewerScopeGenerationClaim(input: {
|
|
608
|
+
parentSessionID: string;
|
|
609
|
+
taskId: string;
|
|
610
|
+
reviewerCallID: string;
|
|
611
|
+
now?: number;
|
|
612
|
+
}): ReviewerScopeGeneration | null;
|
|
613
|
+
/** Clear one exact terminal/stale reviewer claim without touching parallel tasks. */
|
|
614
|
+
export declare function discardReviewerScopeGenerationClaim(input: {
|
|
615
|
+
parentSessionID: string;
|
|
616
|
+
taskId?: string;
|
|
617
|
+
reviewerCallID: string;
|
|
618
|
+
}): boolean;
|
|
619
|
+
/**
|
|
620
|
+
* Detect a concurrently collecting coder generation whose declaration overlaps
|
|
621
|
+
* this exact coder call. Shared declared paths cannot be attributed safely from
|
|
622
|
+
* one workspace snapshot, even when child write routing observed both calls.
|
|
623
|
+
*/
|
|
624
|
+
export declare function reviewerScopeGenerationHasDeclaredOverlap(input: {
|
|
625
|
+
parentSessionID: string;
|
|
626
|
+
taskId: string;
|
|
627
|
+
coderCallID: string;
|
|
628
|
+
declaredFiles: string[];
|
|
629
|
+
}): boolean;
|
|
630
|
+
/** Clear one exact collecting/ready coder generation on terminal error/stale. */
|
|
631
|
+
export declare function discardReviewerScopeGenerationForCoderCall(input: {
|
|
632
|
+
parentSessionID: string;
|
|
633
|
+
taskId?: string;
|
|
634
|
+
coderCallID: string;
|
|
635
|
+
}): boolean;
|
|
636
|
+
/** Validate an async result against the latest coder generation for its task. */
|
|
637
|
+
export declare function isReviewerScopeGenerationCurrent(input: {
|
|
638
|
+
parentSessionID: string;
|
|
639
|
+
taskId: string;
|
|
640
|
+
coderCallID: string;
|
|
641
|
+
generation: number;
|
|
642
|
+
sessionIncarnation: string;
|
|
643
|
+
}): boolean;
|
|
452
644
|
/**
|
|
453
645
|
* Evict every agent session whose last tool activity is older than
|
|
454
646
|
* staleDurationMs, and drop the delegation chain keyed by that same sessionID
|
|
@@ -558,6 +750,35 @@ export declare function pruneOldWindows(sessionId: string, maxAgeMs?: number, ma
|
|
|
558
750
|
* @param agentName - Agent name to record (will be normalized)
|
|
559
751
|
*/
|
|
560
752
|
export declare function recordPhaseAgentDispatch(sessionId: string, agentName: string): void;
|
|
753
|
+
/**
|
|
754
|
+
* Atomically replace one task's attributed file list.
|
|
755
|
+
*
|
|
756
|
+
* Returns false without mutation when the task id is invalid or the bounded
|
|
757
|
+
* map has no reclaimable workflow-complete slot.
|
|
758
|
+
*/
|
|
759
|
+
export declare function recordModifiedFilesForTask(session: AgentSessionState, taskId: string, files: readonly string[]): boolean;
|
|
760
|
+
/**
|
|
761
|
+
* Add one file to a task's attribution without disturbing its existing files.
|
|
762
|
+
*/
|
|
763
|
+
export declare function recordModifiedFileForTask(session: AgentSessionState, taskId: string, file: string): boolean;
|
|
764
|
+
/**
|
|
765
|
+
* Return a defensive copy of the files attributed to one task.
|
|
766
|
+
*/
|
|
767
|
+
export declare function getModifiedFilesForTask(session: AgentSessionState, taskId: string): string[];
|
|
768
|
+
/**
|
|
769
|
+
* Reset one task's attribution. `remove` is used at terminal cleanup; the
|
|
770
|
+
* default keeps an empty live-task slot ready for subsequent writes.
|
|
771
|
+
*/
|
|
772
|
+
export declare function resetModifiedFilesForTask(session: AgentSessionState, taskId: string, options?: {
|
|
773
|
+
remove?: boolean;
|
|
774
|
+
}): boolean;
|
|
775
|
+
/**
|
|
776
|
+
* Apply task-completion retention rules.
|
|
777
|
+
*
|
|
778
|
+
* Non-Epic sessions release attribution at the workflow-complete boundary.
|
|
779
|
+
* Epic sessions retain it until `epic_record_divergence` consumes the entry.
|
|
780
|
+
*/
|
|
781
|
+
export declare function completeModifiedFilesForTask(session: AgentSessionState, taskId: string): void;
|
|
561
782
|
/**
|
|
562
783
|
* Advance a task's workflow state. Validates forward-only transitions.
|
|
563
784
|
* Throws 'INVALID_TASK_STATE_TRANSITION: [taskId] [current] → [requested]' on illegal transition.
|
|
@@ -67,7 +67,7 @@ declare function validatePrReviewMicroDispatch(args: DispatchLanesAsyncArgs, dep
|
|
|
67
67
|
export type DispatchLanesArgs = z.infer<typeof DispatchLanesArgsSchema>;
|
|
68
68
|
export type DispatchLanesAsyncArgs = z.infer<typeof DispatchLanesAsyncArgsSchema>;
|
|
69
69
|
export type CollectLaneResultsArgs = z.infer<typeof CollectLaneResultsArgsSchema>;
|
|
70
|
-
export type DispatchLaneStatus = 'pending' | 'completed' | 'failed' | 'rejected' | 'cancelled' | 'stale' | 'consumed';
|
|
70
|
+
export type DispatchLaneStatus = 'pending' | 'completed' | 'failed' | 'rejected' | 'cancelled' | 'stale' | 'ingesting' | 'consumed';
|
|
71
71
|
export interface DispatchLaneResult {
|
|
72
72
|
id: string;
|
|
73
73
|
agent: string;
|
|
@@ -256,6 +256,7 @@ export declare const _test_exports: {
|
|
|
256
256
|
applyCommonPrompt: typeof applyCommonPrompt;
|
|
257
257
|
applyExplorerFormatSuffix: typeof applyExplorerFormatSuffix;
|
|
258
258
|
applyPrWorkflowPromptContract: typeof applyPrWorkflowPromptContract;
|
|
259
|
+
buildCollectResult: typeof buildCollectResult;
|
|
259
260
|
buildReadOnlyTools: typeof buildReadOnlyTools;
|
|
260
261
|
buildLaneSessionCreateArgs: typeof buildLaneSessionCreateArgs;
|
|
261
262
|
extractAssistantTranscript: typeof extractAssistantTranscript;
|
|
@@ -341,6 +342,7 @@ declare function extractAssistantTranscript(messages: Array<{
|
|
|
341
342
|
transcriptIncomplete: boolean;
|
|
342
343
|
};
|
|
343
344
|
declare function nextCollectPollInterval(currentMs: number): number;
|
|
345
|
+
declare function buildCollectResult(batchId: string, records: BackgroundDelegationRecord[], includePending: boolean): CollectLaneResultsResult;
|
|
344
346
|
declare function recordToLaneResult(record: BackgroundDelegationRecord, batchId: string): DispatchLaneResult;
|
|
345
347
|
declare function buildReadOnlyTools(): ReadOnlyToolPermissions;
|
|
346
348
|
type ApplyCommonPromptResult = {
|
|
@@ -6,10 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* 1. Reads the task's DECLARED scope from `.swarm/scopes/scope-{taskId}.json`
|
|
8
8
|
* (the same on-disk record `readScopeFromDisk` consults).
|
|
9
|
-
* 2. Reads the ACTUAL files
|
|
10
|
-
*
|
|
11
|
-
* and reset by Lean Turbo at task-boundaries, so it captures THIS
|
|
12
|
-
* task's writes only.
|
|
9
|
+
* 2. Reads the ACTUAL files attributed to this exact task by the guardrails
|
|
10
|
+
* write hook and background-completion ingestion.
|
|
13
11
|
* 3. Appends one record to `.swarm/epic/divergence.jsonl` via
|
|
14
12
|
* `recordTaskDivergence`. The calibration engine reads that file on the
|
|
15
13
|
* next `epic_decide_phase` invocation (the architect-facing decide
|
|
@@ -28,7 +26,7 @@
|
|
|
28
26
|
import type { ToolDefinition } from '@opencode-ai/plugin/tool';
|
|
29
27
|
import { loadPlanJsonOnly as loadPlanJsonOnly_import } from '../plan/manager.js';
|
|
30
28
|
import { readScopeFromDisk as readScopeFromDisk_import } from '../scope/scope-persistence.js';
|
|
31
|
-
import { getAgentSession as getAgentSession_import, hasActiveEpicMode as hasActiveEpicMode_import } from '../state.js';
|
|
29
|
+
import { getAgentSession as getAgentSession_import, getModifiedFilesForTask as getModifiedFilesForTask_import, hasActiveEpicMode as hasActiveEpicMode_import, resetModifiedFilesForTask as resetModifiedFilesForTask_import } from '../state.js';
|
|
32
30
|
import { recordTaskDivergence as recordTaskDivergence_import } from '../turbo/epic/divergence-recorder.js';
|
|
33
31
|
export interface EpicRecordDivergenceArgs {
|
|
34
32
|
directory: string;
|
|
@@ -65,6 +63,8 @@ export interface EpicRecordDivergenceResult {
|
|
|
65
63
|
export declare const _internals: {
|
|
66
64
|
hasActiveEpicMode: typeof hasActiveEpicMode_import;
|
|
67
65
|
getAgentSession: typeof getAgentSession_import;
|
|
66
|
+
getModifiedFilesForTask: typeof getModifiedFilesForTask_import;
|
|
67
|
+
resetModifiedFilesForTask: typeof resetModifiedFilesForTask_import;
|
|
68
68
|
readScopeFromDisk: typeof readScopeFromDisk_import;
|
|
69
69
|
loadPlanJsonOnly: typeof loadPlanJsonOnly_import;
|
|
70
70
|
recordTaskDivergence: typeof recordTaskDivergence_import;
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* Dispatches a read-only reviewer agent to evaluate a completed Lean Turbo phase.
|
|
5
5
|
*/
|
|
6
6
|
import type { ToolDefinition } from '@opencode-ai/plugin/tool';
|
|
7
|
+
import type { ReviewModelDispatcher } from '../review/contracts.js';
|
|
8
|
+
import type { ReviewAgentModelRegistry } from '../review/runtime.js';
|
|
7
9
|
import { type PhaseReviewerResult } from '../turbo/lean/reviewer';
|
|
8
10
|
/**
|
|
9
11
|
* Arguments for the lean_turbo_review tool
|
|
@@ -27,8 +29,9 @@ export interface LeanTurboReviewResult {
|
|
|
27
29
|
* Execute the lean_turbo_review tool.
|
|
28
30
|
* Dispatches a read-only reviewer agent to evaluate a completed Lean Turbo phase.
|
|
29
31
|
*/
|
|
30
|
-
export declare function executeLeanTurboReview(args: LeanTurboReviewArgs): Promise<LeanTurboReviewResult>;
|
|
32
|
+
export declare function executeLeanTurboReview(args: LeanTurboReviewArgs, dispatcher?: ReviewModelDispatcher, generatedAgentNames?: readonly string[], agentModelRegistry?: ReviewAgentModelRegistry, activeAgentName?: string): Promise<LeanTurboReviewResult>;
|
|
31
33
|
/**
|
|
32
34
|
* Tool definition for lean_turbo_review
|
|
33
35
|
*/
|
|
36
|
+
export declare function createLeanTurboReviewTool(dispatcher?: ReviewModelDispatcher, generatedAgentNames?: readonly string[], agentModelRegistry?: ReviewAgentModelRegistry, getActiveAgentName?: (sessionID: string) => string | undefined): ToolDefinition;
|
|
34
37
|
export declare const lean_turbo_review: ToolDefinition;
|
|
@@ -36,6 +36,7 @@ export interface LeanTurboRunPhaseResult {
|
|
|
36
36
|
/**
|
|
37
37
|
* Test-only dependency-injection seam.
|
|
38
38
|
* Allows tests to inject mocks without mock.module leakage.
|
|
39
|
+
* @tool-opt-out Test-only dependency-injection seam; not a public tool.
|
|
39
40
|
*/
|
|
40
41
|
export declare const _internals: {
|
|
41
42
|
LeanTurboRunner: typeof LeanTurboRunner_import;
|
|
@@ -45,8 +46,9 @@ export declare const _internals: {
|
|
|
45
46
|
* Execute the lean_turbo_run_phase tool.
|
|
46
47
|
* Creates a LeanTurboRunner and executes the specified phase.
|
|
47
48
|
*/
|
|
48
|
-
export declare function executeLeanTurboRunPhase(args: LeanTurboRunPhaseArgs): Promise<LeanTurboRunPhaseResult>;
|
|
49
|
+
export declare function executeLeanTurboRunPhase(args: LeanTurboRunPhaseArgs, generatedAgentNames?: readonly string[]): Promise<LeanTurboRunPhaseResult>;
|
|
49
50
|
/**
|
|
50
51
|
* Tool definition for lean_turbo_run_phase
|
|
51
52
|
*/
|
|
53
|
+
export declare function createLeanTurboRunPhaseTool(generatedAgentNames?: readonly string[]): ToolDefinition;
|
|
52
54
|
export declare const lean_turbo_run_phase: ToolDefinition;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { collectReviewDiff } from '../../../review/diff-source.js';
|
|
2
|
+
import type { GateContext, GateResult } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Evidence-only final review gate.
|
|
5
|
+
*
|
|
6
|
+
* The model dispatch belongs to the phase_complete tool body. This gate performs
|
|
7
|
+
* one bounded, model-free scope collection at the terminal decision point, then
|
|
8
|
+
* verifies that the persisted artifact and in-memory result both describe that
|
|
9
|
+
* current scope and that the configured blocking policy is satisfied.
|
|
10
|
+
*/
|
|
11
|
+
export declare function runFinalReviewGate(ctx: GateContext): Promise<GateResult>;
|
|
12
|
+
/**
|
|
13
|
+
* File-scoped injection seam. Production always uses the bounded Git collector;
|
|
14
|
+
* tests replace only this boundary to avoid process-global module mocks.
|
|
15
|
+
*/
|
|
16
|
+
export declare const _internals: {
|
|
17
|
+
collectReviewDiff: typeof collectReviewDiff;
|
|
18
|
+
};
|
|
@@ -6,6 +6,7 @@ export { runArchitectureSupervisorGate } from './architecture-supervisor-gate.js
|
|
|
6
6
|
export { runCompletionVerifyGate } from './completion-verify-gate.js';
|
|
7
7
|
export { runDriftGate } from './drift-gate.js';
|
|
8
8
|
export { runFinalCouncilGate } from './final-council-gate.js';
|
|
9
|
+
export { runFinalReviewGate } from './final-review-gate.js';
|
|
9
10
|
export { runHallucinationGate } from './hallucination-gate.js';
|
|
10
11
|
export { runMutationGate } from './mutation-gate.js';
|
|
11
12
|
export { runPhaseCouncilGate } from './phase-council-gate.js';
|
|
@@ -40,4 +40,14 @@ export interface GateContext {
|
|
|
40
40
|
loadedRetroBundle?: import('../../../config/evidence-schema').EvidenceBundle | null;
|
|
41
41
|
/** Task id for the accepted retrospective bundle, if one was loaded */
|
|
42
42
|
loadedRetroTaskId?: string | null;
|
|
43
|
+
/** Exact scope produced by the model-dispatching phase_complete body. */
|
|
44
|
+
autoReviewScopeHash?: string;
|
|
45
|
+
/** Completeness of the freshly collected in-memory review scope. */
|
|
46
|
+
autoReviewScopeComplete?: boolean;
|
|
47
|
+
/** Distinguishes ordinary phase review from the final durable plan phase. */
|
|
48
|
+
autoReviewTrigger?: 'phase_completion' | 'plan_completion';
|
|
49
|
+
/** Fresh in-memory disposition from the review run owned by phase_complete. */
|
|
50
|
+
autoReviewBlocked?: boolean;
|
|
51
|
+
/** Machine-readable reason from the current review run, when blocked. */
|
|
52
|
+
autoReviewBlockReason?: import('../../../review/engine').ReviewEngineResult['blockReason'];
|
|
43
53
|
}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
* Core implementation - gathers data, enforces policy, writes event, resets state.
|
|
4
4
|
*/
|
|
5
5
|
import type { ToolDefinition } from '@opencode-ai/plugin/tool';
|
|
6
|
+
import type { ReviewModelDispatcher } from '../review/contracts.js';
|
|
7
|
+
import type { ReviewAgentModelRegistry } from '../review/runtime.js';
|
|
6
8
|
/**
|
|
7
9
|
* Arguments for the phase_complete tool
|
|
8
10
|
*/
|
|
@@ -24,6 +26,14 @@ export interface PhaseCompleteArgs {
|
|
|
24
26
|
/** Calling agent identity (from tool ctx) — gates the override to the architect. */
|
|
25
27
|
callerAgent?: string;
|
|
26
28
|
}
|
|
29
|
+
export interface PhaseCompleteRuntime {
|
|
30
|
+
reviewModelDispatcher?: ReviewModelDispatcher;
|
|
31
|
+
generatedAgentNames?: readonly string[];
|
|
32
|
+
reviewAgentModelRegistry?: ReviewAgentModelRegistry;
|
|
33
|
+
getActiveAgentName?: (sessionID: string) => string | undefined;
|
|
34
|
+
}
|
|
35
|
+
declare function resolvePhaseReviewAgentNames(runtime: PhaseCompleteRuntime): Iterable<string>;
|
|
36
|
+
/** @tool-opt-out Output-size constant, not a tool definition. */
|
|
27
37
|
export declare const MAX_OUTPUT_BYTES = 512000;
|
|
28
38
|
declare function allCompletedTasksHavePassedGateEvidence(directory: string, tasks: Array<{
|
|
29
39
|
id: string;
|
|
@@ -33,7 +43,7 @@ declare function allCompletedTasksHavePassedGateEvidence(directory: string, task
|
|
|
33
43
|
* Execute the phase_complete tool
|
|
34
44
|
* Gathers data, enforces policy, writes event, resets state
|
|
35
45
|
*/
|
|
36
|
-
export declare function executePhaseComplete(args: PhaseCompleteArgs, workingDirectory?: string, directory?: string): Promise<string>;
|
|
46
|
+
export declare function executePhaseComplete(args: PhaseCompleteArgs, workingDirectory?: string, directory?: string, runtime?: PhaseCompleteRuntime): Promise<string>;
|
|
37
47
|
/** @internal exported for testing only */
|
|
38
48
|
export declare function _buildOutputJson(outputData: {
|
|
39
49
|
phase: number;
|
|
@@ -50,8 +60,10 @@ export declare function _buildOutputJson(outputData: {
|
|
|
50
60
|
/**
|
|
51
61
|
* Tool definition for phase_complete
|
|
52
62
|
*/
|
|
63
|
+
export declare function createPhaseCompleteTool(runtime?: PhaseCompleteRuntime): ToolDefinition;
|
|
53
64
|
export declare const phase_complete: ToolDefinition;
|
|
54
65
|
export declare const _test_exports: {
|
|
55
66
|
allCompletedTasksHavePassedGateEvidence: typeof allCompletedTasksHavePassedGateEvidence;
|
|
67
|
+
resolvePhaseReviewAgentNames: typeof resolvePhaseReviewAgentNames;
|
|
56
68
|
};
|
|
57
69
|
export {};
|
|
@@ -12,6 +12,8 @@ import type { ToolDefinition } from '@opencode-ai/plugin/tool';
|
|
|
12
12
|
import type { AgentDefinition } from '../agents/index.js';
|
|
13
13
|
import type { PluginConfig } from '../config/index.js';
|
|
14
14
|
import type { EvaluationModelDispatcher } from '../evaluation/model-dispatcher.js';
|
|
15
|
+
import type { ReviewModelDispatcher } from '../review/contracts.js';
|
|
16
|
+
import type { ReviewAgentModelRegistry } from '../review/runtime.js';
|
|
15
17
|
/**
|
|
16
18
|
* Construct the plugin tool object: one handler per manifest entry, with
|
|
17
19
|
* `swarm_command` overridden by its dependency-injected instance.
|
|
@@ -22,4 +24,4 @@ import type { EvaluationModelDispatcher } from '../evaluation/model-dispatcher.j
|
|
|
22
24
|
*
|
|
23
25
|
* Knowledge tools are conditionally excluded when config.knowledge.enabled = false.
|
|
24
26
|
*/
|
|
25
|
-
export declare function buildPluginToolObject(agents: Record<string, AgentDefinition>, config?: PluginConfig, evaluationModelDispatcher?: EvaluationModelDispatcher): Record<string, ToolDefinition>;
|
|
27
|
+
export declare function buildPluginToolObject(agents: Record<string, AgentDefinition>, config?: PluginConfig, evaluationModelDispatcher?: EvaluationModelDispatcher, reviewModelDispatcher?: ReviewModelDispatcher, generatedAgentNames?: Iterable<string>, reviewAgentModelRegistry?: ReviewAgentModelRegistry, getActiveAgentName?: (sessionID: string) => string | undefined): Record<string, ToolDefinition>;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { AgentDefinition } from '../agents/index.js';
|
|
2
|
+
import type { AutoReviewConfig } from '../config/schema.js';
|
|
2
3
|
import type { EvaluationModelDispatcher } from '../evaluation/model-dispatcher.js';
|
|
4
|
+
import type { ReviewModelDispatcher } from '../review/contracts.js';
|
|
5
|
+
import type { ReviewAgentModelRegistry } from '../review/runtime.js';
|
|
3
6
|
import { createSwarmTool } from './create-tool.js';
|
|
4
|
-
export declare function createSwarmCommandTool(agents: Record<string, AgentDefinition>, evaluationModelDispatcher?: EvaluationModelDispatcher): ReturnType<typeof createSwarmTool>;
|
|
7
|
+
export declare function createSwarmCommandTool(agents: Record<string, AgentDefinition>, evaluationModelDispatcher?: EvaluationModelDispatcher, reviewModelDispatcher?: ReviewModelDispatcher, autoReviewConfig?: AutoReviewConfig, reviewAgentModelRegistry?: ReviewAgentModelRegistry, getActiveAgentName?: (sessionID: string) => string | undefined): ReturnType<typeof createSwarmTool>;
|
|
5
8
|
export declare const swarm_command: ReturnType<typeof createSwarmTool>;
|
|
@@ -34,7 +34,7 @@ export interface ToolMeta {
|
|
|
34
34
|
export declare const TOOL_METADATA: {
|
|
35
35
|
diff: {
|
|
36
36
|
description: string;
|
|
37
|
-
agents: ("reviewer" | "test_engineer" | "coder" | "critic_oversight" | "architect")[];
|
|
37
|
+
agents: ("reviewer" | "test_engineer" | "coder" | "critic_oversight" | "critic_finding_validator" | "architect")[];
|
|
38
38
|
prWorkflow: {
|
|
39
39
|
modes: ("PR_REVIEW" | "PR_FEEDBACK")[];
|
|
40
40
|
capability: "observe";
|
|
@@ -42,7 +42,7 @@ export declare const TOOL_METADATA: {
|
|
|
42
42
|
};
|
|
43
43
|
diff_summary: {
|
|
44
44
|
description: string;
|
|
45
|
-
agents: ("reviewer" | "critic_oversight" | "architect")[];
|
|
45
|
+
agents: ("reviewer" | "critic_oversight" | "critic_finding_validator" | "architect")[];
|
|
46
46
|
prWorkflow: {
|
|
47
47
|
modes: ("PR_REVIEW" | "PR_FEEDBACK")[];
|
|
48
48
|
capability: "observe";
|
|
@@ -58,7 +58,7 @@ export declare const TOOL_METADATA: {
|
|
|
58
58
|
};
|
|
59
59
|
placeholder_scan: {
|
|
60
60
|
description: string;
|
|
61
|
-
agents: ("reviewer" | "architect")[];
|
|
61
|
+
agents: ("reviewer" | "critic_finding_validator" | "architect")[];
|
|
62
62
|
prWorkflow: {
|
|
63
63
|
modes: ("PR_REVIEW" | "PR_FEEDBACK")[];
|
|
64
64
|
capability: "observe";
|
|
@@ -66,7 +66,7 @@ export declare const TOOL_METADATA: {
|
|
|
66
66
|
};
|
|
67
67
|
imports: {
|
|
68
68
|
description: string;
|
|
69
|
-
agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "sme" | "critic" | "critic_sounding_board" | "critic_drift_verifier" | "critic_hallucination_verifier" | "architect" | "researcher" | "docs_design")[];
|
|
69
|
+
agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "sme" | "critic" | "critic_sounding_board" | "critic_drift_verifier" | "critic_hallucination_verifier" | "critic_finding_validator" | "architect" | "researcher" | "docs_design")[];
|
|
70
70
|
prWorkflow: {
|
|
71
71
|
modes: ("PR_REVIEW" | "PR_FEEDBACK")[];
|
|
72
72
|
capability: "observe";
|
|
@@ -74,7 +74,7 @@ export declare const TOOL_METADATA: {
|
|
|
74
74
|
};
|
|
75
75
|
lint: {
|
|
76
76
|
description: string;
|
|
77
|
-
agents: ("reviewer" | "coder" | "architect")[];
|
|
77
|
+
agents: ("reviewer" | "coder" | "critic_finding_validator" | "architect")[];
|
|
78
78
|
prWorkflow: {
|
|
79
79
|
modes: "PR_REVIEW"[];
|
|
80
80
|
capability: "validate";
|
|
@@ -82,7 +82,7 @@ export declare const TOOL_METADATA: {
|
|
|
82
82
|
};
|
|
83
83
|
secretscan: {
|
|
84
84
|
description: string;
|
|
85
|
-
agents: ("reviewer" | "critic_oversight" | "architect")[];
|
|
85
|
+
agents: ("reviewer" | "critic_oversight" | "critic_finding_validator" | "architect")[];
|
|
86
86
|
prWorkflow: {
|
|
87
87
|
modes: "PR_REVIEW"[];
|
|
88
88
|
capability: "validate";
|
|
@@ -90,7 +90,7 @@ export declare const TOOL_METADATA: {
|
|
|
90
90
|
};
|
|
91
91
|
sast_scan: {
|
|
92
92
|
description: string;
|
|
93
|
-
agents: ("reviewer" | "critic_oversight" | "architect")[];
|
|
93
|
+
agents: ("reviewer" | "critic_oversight" | "critic_finding_validator" | "architect")[];
|
|
94
94
|
prWorkflow: {
|
|
95
95
|
modes: "PR_REVIEW"[];
|
|
96
96
|
capability: "validate";
|
|
@@ -102,7 +102,7 @@ export declare const TOOL_METADATA: {
|
|
|
102
102
|
};
|
|
103
103
|
pre_check_batch: {
|
|
104
104
|
description: string;
|
|
105
|
-
agents: ("reviewer" | "architect")[];
|
|
105
|
+
agents: ("reviewer" | "critic_finding_validator" | "architect")[];
|
|
106
106
|
};
|
|
107
107
|
quality_budget: {
|
|
108
108
|
description: string;
|
|
@@ -114,11 +114,11 @@ export declare const TOOL_METADATA: {
|
|
|
114
114
|
};
|
|
115
115
|
symbols: {
|
|
116
116
|
description: string;
|
|
117
|
-
agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "designer" | "sme" | "critic" | "critic_sounding_board" | "critic_drift_verifier" | "critic_hallucination_verifier" | "architect" | "researcher" | "docs_design" | "spec_writer")[];
|
|
117
|
+
agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "designer" | "sme" | "critic" | "critic_sounding_board" | "critic_drift_verifier" | "critic_hallucination_verifier" | "critic_finding_validator" | "architect" | "researcher" | "docs_design" | "spec_writer")[];
|
|
118
118
|
};
|
|
119
119
|
complexity_hotspots: {
|
|
120
120
|
description: string;
|
|
121
|
-
agents: ("reviewer" | "test_engineer" | "explorer" | "sme" | "critic" | "critic_sounding_board" | "critic_drift_verifier" | "critic_hallucination_verifier" | "critic_oversight" | "architect" | "researcher")[];
|
|
121
|
+
agents: ("reviewer" | "test_engineer" | "explorer" | "sme" | "critic" | "critic_sounding_board" | "critic_drift_verifier" | "critic_hallucination_verifier" | "critic_oversight" | "critic_finding_validator" | "architect" | "researcher")[];
|
|
122
122
|
};
|
|
123
123
|
schema_drift: {
|
|
124
124
|
description: string;
|
|
@@ -186,7 +186,7 @@ export declare const TOOL_METADATA: {
|
|
|
186
186
|
};
|
|
187
187
|
pkg_audit: {
|
|
188
188
|
description: string;
|
|
189
|
-
agents: ("reviewer" | "test_engineer" | "critic_hallucination_verifier" | "critic_oversight" | "architect")[];
|
|
189
|
+
agents: ("reviewer" | "test_engineer" | "critic_hallucination_verifier" | "critic_oversight" | "critic_finding_validator" | "architect")[];
|
|
190
190
|
prWorkflow: {
|
|
191
191
|
modes: "PR_REVIEW"[];
|
|
192
192
|
capability: "validate";
|
|
@@ -214,7 +214,7 @@ export declare const TOOL_METADATA: {
|
|
|
214
214
|
};
|
|
215
215
|
test_runner: {
|
|
216
216
|
description: string;
|
|
217
|
-
agents: ("reviewer" | "test_engineer" | "architect")[];
|
|
217
|
+
agents: ("reviewer" | "test_engineer" | "critic_finding_validator" | "architect")[];
|
|
218
218
|
prWorkflow: {
|
|
219
219
|
modes: "PR_REVIEW"[];
|
|
220
220
|
capability: "validate";
|
|
@@ -222,7 +222,7 @@ export declare const TOOL_METADATA: {
|
|
|
222
222
|
};
|
|
223
223
|
test_impact: {
|
|
224
224
|
description: string;
|
|
225
|
-
agents: ("reviewer" | "test_engineer" | "critic_oversight" | "architect")[];
|
|
225
|
+
agents: ("reviewer" | "test_engineer" | "critic_oversight" | "critic_finding_validator" | "architect")[];
|
|
226
226
|
prWorkflow: {
|
|
227
227
|
modes: ("PR_REVIEW" | "PR_FEEDBACK")[];
|
|
228
228
|
capability: "observe";
|
|
@@ -242,7 +242,7 @@ export declare const TOOL_METADATA: {
|
|
|
242
242
|
};
|
|
243
243
|
git_blame: {
|
|
244
244
|
description: string;
|
|
245
|
-
agents: ("reviewer" | "explorer" | "architect")[];
|
|
245
|
+
agents: ("reviewer" | "explorer" | "critic_finding_validator" | "architect")[];
|
|
246
246
|
prWorkflow: {
|
|
247
247
|
modes: ("PR_REVIEW" | "PR_FEEDBACK")[];
|
|
248
248
|
capability: "observe";
|
|
@@ -258,7 +258,7 @@ export declare const TOOL_METADATA: {
|
|
|
258
258
|
};
|
|
259
259
|
retrieve_summary: {
|
|
260
260
|
description: string;
|
|
261
|
-
agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "designer" | "sme" | "critic" | "critic_sounding_board" | "critic_drift_verifier" | "critic_hallucination_verifier" | "critic_architecture_supervisor" | "architect" | "docs_design" | "spec_writer")[];
|
|
261
|
+
agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "designer" | "sme" | "critic" | "critic_sounding_board" | "critic_drift_verifier" | "critic_hallucination_verifier" | "critic_architecture_supervisor" | "critic_finding_validator" | "architect" | "docs_design" | "spec_writer")[];
|
|
262
262
|
prWorkflow: {
|
|
263
263
|
modes: ("PR_REVIEW" | "PR_FEEDBACK")[];
|
|
264
264
|
capability: "observe";
|
|
@@ -338,7 +338,7 @@ export declare const TOOL_METADATA: {
|
|
|
338
338
|
};
|
|
339
339
|
knowledge_recall: {
|
|
340
340
|
description: string;
|
|
341
|
-
agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "designer" | "explorer" | "sme" | "critic" | "critic_sounding_board" | "critic_drift_verifier" | "critic_hallucination_verifier" | "critic_architecture_supervisor" | "critic_oversight" | "architect" | "docs_design" | "curator_init" | "curator_phase" | "skill_improver" | "spec_writer")[];
|
|
341
|
+
agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "designer" | "explorer" | "sme" | "critic" | "critic_sounding_board" | "critic_drift_verifier" | "critic_hallucination_verifier" | "critic_architecture_supervisor" | "critic_oversight" | "critic_finding_validator" | "architect" | "docs_design" | "curator_init" | "curator_phase" | "skill_improver" | "spec_writer")[];
|
|
342
342
|
};
|
|
343
343
|
knowledge_remove: {
|
|
344
344
|
description: string;
|
|
@@ -354,7 +354,7 @@ export declare const TOOL_METADATA: {
|
|
|
354
354
|
};
|
|
355
355
|
search: {
|
|
356
356
|
description: string;
|
|
357
|
-
agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "designer" | "explorer" | "sme" | "critic_hallucination_verifier" | "critic_oversight" | "architect" | "researcher" | "docs_design" | "skill_improver" | "spec_writer")[];
|
|
357
|
+
agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "designer" | "explorer" | "sme" | "critic_hallucination_verifier" | "critic_oversight" | "critic_finding_validator" | "architect" | "researcher" | "docs_design" | "skill_improver" | "spec_writer")[];
|
|
358
358
|
};
|
|
359
359
|
ast_grep: {
|
|
360
360
|
description: string;
|
|
@@ -394,11 +394,11 @@ export declare const TOOL_METADATA: {
|
|
|
394
394
|
};
|
|
395
395
|
batch_symbols: {
|
|
396
396
|
description: string;
|
|
397
|
-
agents: ("reviewer" | "explorer" | "critic_hallucination_verifier" | "critic_oversight" | "architect")[];
|
|
397
|
+
agents: ("reviewer" | "explorer" | "critic_hallucination_verifier" | "critic_oversight" | "critic_finding_validator" | "architect")[];
|
|
398
398
|
};
|
|
399
399
|
suggest_patch: {
|
|
400
400
|
description: string;
|
|
401
|
-
agents: ("reviewer" | "architect")[];
|
|
401
|
+
agents: ("reviewer" | "critic_finding_validator" | "architect")[];
|
|
402
402
|
};
|
|
403
403
|
req_coverage: {
|
|
404
404
|
description: string;
|
|
@@ -410,7 +410,7 @@ export declare const TOOL_METADATA: {
|
|
|
410
410
|
};
|
|
411
411
|
repo_map: {
|
|
412
412
|
description: string;
|
|
413
|
-
agents: ("reviewer" | "coder" | "explorer" | "critic" | "critic_sounding_board" | "critic_drift_verifier" | "critic_hallucination_verifier" | "critic_architecture_supervisor" | "critic_oversight" | "architect")[];
|
|
413
|
+
agents: ("reviewer" | "coder" | "explorer" | "critic" | "critic_sounding_board" | "critic_drift_verifier" | "critic_hallucination_verifier" | "critic_architecture_supervisor" | "critic_oversight" | "critic_finding_validator" | "architect")[];
|
|
414
414
|
prWorkflow: {
|
|
415
415
|
modes: ("PR_REVIEW" | "PR_FEEDBACK")[];
|
|
416
416
|
capability: "observe";
|
|
@@ -478,7 +478,7 @@ export declare const TOOL_METADATA: {
|
|
|
478
478
|
};
|
|
479
479
|
knowledge_receipt: {
|
|
480
480
|
description: string;
|
|
481
|
-
agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "designer" | "sme" | "critic" | "critic_sounding_board" | "critic_drift_verifier" | "critic_hallucination_verifier" | "critic_architecture_supervisor" | "architect" | "docs_design" | "curator_init" | "curator_phase" | "skill_improver" | "spec_writer")[];
|
|
481
|
+
agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "designer" | "sme" | "critic" | "critic_sounding_board" | "critic_drift_verifier" | "critic_hallucination_verifier" | "critic_architecture_supervisor" | "critic_finding_validator" | "architect" | "docs_design" | "curator_init" | "curator_phase" | "skill_improver" | "spec_writer")[];
|
|
482
482
|
};
|
|
483
483
|
knowledge_archive: {
|
|
484
484
|
description: string;
|
|
@@ -494,7 +494,7 @@ export declare const TOOL_METADATA: {
|
|
|
494
494
|
};
|
|
495
495
|
swarm_command: {
|
|
496
496
|
description: string;
|
|
497
|
-
agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "designer" | "explorer" | "sme" | "critic" | "architect" | "researcher" | "docs_design")[];
|
|
497
|
+
agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "designer" | "explorer" | "sme" | "critic" | "critic_finding_validator" | "architect" | "researcher" | "docs_design")[];
|
|
498
498
|
};
|
|
499
499
|
dispatch_lanes: {
|
|
500
500
|
description: string;
|