zelari-code 2.11.1 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/headless.js +16 -5
- package/dist/cli/headless.js.map +1 -1
- package/dist/cli/hooks/useChatTurn.js +17 -4
- package/dist/cli/hooks/useChatTurn.js.map +1 -1
- package/dist/cli/kraken/completionProof.js +176 -0
- package/dist/cli/kraken/completionProof.js.map +1 -0
- package/dist/cli/kraken/nativeVerification.js +12 -5
- package/dist/cli/kraken/nativeVerification.js.map +1 -1
- package/dist/cli/kraken/planner.js +24 -11
- package/dist/cli/kraken/planner.js.map +1 -1
- package/dist/cli/kraken/scriptPlanner.js +18 -6
- package/dist/cli/kraken/scriptPlanner.js.map +1 -1
- package/dist/cli/kraken/verificationBridge.js +5 -1
- package/dist/cli/kraken/verificationBridge.js.map +1 -1
- package/dist/cli/kraken/verifierLifecycle.js +72 -8
- package/dist/cli/kraken/verifierLifecycle.js.map +1 -1
- package/dist/cli/main.bundled.js +983 -402
- package/dist/cli/main.bundled.js.map +4 -4
- package/dist/cli/orchestration/policy.js +88 -0
- package/dist/cli/orchestration/policy.js.map +1 -0
- package/dist/cli/runHeadless.js +49 -0
- package/dist/cli/runHeadless.js.map +1 -1
- package/dist/cli/safety/policyEngine.js +280 -0
- package/dist/cli/safety/policyEngine.js.map +1 -0
- package/dist/cli/safety/toolPermissions.js +38 -0
- package/dist/cli/safety/toolPermissions.js.map +1 -1
- package/dist/cli/toolRegistry.js +59 -12
- package/dist/cli/toolRegistry.js.map +1 -1
- package/dist/cli/tools/krakenModel.js +93 -0
- package/dist/cli/tools/krakenModel.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { VerifierService, } from '@zelari/core/verification';
|
|
2
2
|
import { collectProviderText } from '../tools/krakenSelectTool.js';
|
|
3
|
+
import { resolveCrossModelVerifier } from '../tools/krakenModel.js';
|
|
4
|
+
import { getWorkingDiff } from '../gitOps.js';
|
|
3
5
|
import { loadVerifierModelSelection } from './verifierResolution.js';
|
|
4
6
|
/**
|
|
5
7
|
* Opt-in rule (see module doc): explicit env wins in both directions;
|
|
@@ -37,11 +39,76 @@ export function makeVerifierCallModel(loadStream, identity, timeoutMs = 120_000)
|
|
|
37
39
|
return { text, provider: identity.provider, model: identity.model };
|
|
38
40
|
};
|
|
39
41
|
}
|
|
40
|
-
function resolveIdentity(selection, session) {
|
|
42
|
+
function resolveIdentity(selection, session, familyCandidates, env = process.env) {
|
|
41
43
|
if (selection.mode === 'fixed') {
|
|
42
44
|
return { provider: selection.provider, model: selection.model };
|
|
43
45
|
}
|
|
44
|
-
|
|
46
|
+
if (!session || !session.provider || !session.model)
|
|
47
|
+
return null;
|
|
48
|
+
// P0.6 cross-model: inherit mode may route to a different provider family
|
|
49
|
+
// when family candidates were supplied; otherwise keep session identity.
|
|
50
|
+
if (familyCandidates && familyCandidates.length > 0) {
|
|
51
|
+
const cross = resolveCrossModelVerifier(session, familyCandidates, env);
|
|
52
|
+
if (cross)
|
|
53
|
+
return { provider: cross.provider, model: cross.model };
|
|
54
|
+
}
|
|
55
|
+
return session;
|
|
56
|
+
}
|
|
57
|
+
/** Criterion ids that look like deterministic test/typecheck/build/lint runs. */
|
|
58
|
+
function isTestEvidenceCriterion(criterionId) {
|
|
59
|
+
const id = criterionId.toLowerCase();
|
|
60
|
+
return ['test', 'typecheck', 'build', 'lint'].some((k) => id.includes(k));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Blind evidence excerpt: criterionId + status + detail for deterministic
|
|
64
|
+
* test/typecheck/build/lint criteria, capped at maxChars. Empty when none.
|
|
65
|
+
*/
|
|
66
|
+
export function extractTestOutputExcerpt(results, maxChars = 4000) {
|
|
67
|
+
const lines = [];
|
|
68
|
+
for (const r of results) {
|
|
69
|
+
if (!isTestEvidenceCriterion(r.criterionId))
|
|
70
|
+
continue;
|
|
71
|
+
lines.push([r.criterionId, r.status, r.detail].filter(Boolean).join(' — '));
|
|
72
|
+
}
|
|
73
|
+
if (lines.length === 0)
|
|
74
|
+
return '';
|
|
75
|
+
return lines.join('\n').slice(0, maxChars);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Build the BLIND review input for VerifierService.reviewCompletion:
|
|
79
|
+
* original task, synthetic deterministic-evidence summary, staged git diff
|
|
80
|
+
* summary, and a capped test-output excerpt. Never reads session messages,
|
|
81
|
+
* builder reasoning, or assistant text — the verifier sees evidence only.
|
|
82
|
+
* Every extra input degrades independently (empty/failing diff → omitted).
|
|
83
|
+
*/
|
|
84
|
+
export async function buildBlindReviewInput(evaluation, deps) {
|
|
85
|
+
const results = evaluation.results ?? [];
|
|
86
|
+
const passed = results.filter((r) => r.status === 'pass').length;
|
|
87
|
+
const verdict = evaluation.evaluation?.verdict ?? 'UNKNOWN';
|
|
88
|
+
const summary = `Kraken BUILD turn — deterministic evidence: ${passed}/${results.length} ` +
|
|
89
|
+
`criteria pass, completion verdict ${verdict}.`;
|
|
90
|
+
const task = deps.task?.trim();
|
|
91
|
+
const testOutputExcerpt = extractTestOutputExcerpt(results);
|
|
92
|
+
let diffSummary;
|
|
93
|
+
try {
|
|
94
|
+
const res = await (deps.getDiff ?? getWorkingDiff)({
|
|
95
|
+
cwd: deps.cwd ?? process.cwd(),
|
|
96
|
+
maxChars: 8000,
|
|
97
|
+
staged: true,
|
|
98
|
+
});
|
|
99
|
+
if (res && !res.empty && res.diff)
|
|
100
|
+
diffSummary = res.diff;
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// degrade-and-continue: the blind review proceeds without the diff
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
...(task ? { task } : {}),
|
|
107
|
+
summary,
|
|
108
|
+
...(diffSummary !== undefined ? { diffSummary } : {}),
|
|
109
|
+
...(testOutputExcerpt ? { testOutputExcerpt } : {}),
|
|
110
|
+
results,
|
|
111
|
+
};
|
|
45
112
|
}
|
|
46
113
|
/**
|
|
47
114
|
* Run the advisory completion review and ATTACH it to the evaluation
|
|
@@ -56,7 +123,7 @@ export async function runAdvisoryVerifierReview(evaluation, deps = {}) {
|
|
|
56
123
|
const selection = deps.selection ?? loadVerifierModelSelection();
|
|
57
124
|
if (!verifierReviewEnabled(selection, env))
|
|
58
125
|
return null;
|
|
59
|
-
const identity = resolveIdentity(selection, deps.session);
|
|
126
|
+
const identity = resolveIdentity(selection, deps.session, deps.familyCandidates, env);
|
|
60
127
|
let callModel = deps.callModel;
|
|
61
128
|
if (!callModel) {
|
|
62
129
|
if (!identity || !deps.loadStream)
|
|
@@ -74,12 +141,9 @@ export async function runAdvisoryVerifierReview(evaluation, deps = {}) {
|
|
|
74
141
|
emit: deps.emit,
|
|
75
142
|
env,
|
|
76
143
|
});
|
|
77
|
-
const
|
|
78
|
-
const summary = `Kraken BUILD turn — deterministic evidence: ${passed}/${evaluation.results.length} ` +
|
|
79
|
-
`criteria pass, completion verdict ${evaluation.evaluation.verdict}.`;
|
|
144
|
+
const blind = await buildBlindReviewInput(evaluation, deps);
|
|
80
145
|
const review = await service.reviewCompletion({
|
|
81
|
-
|
|
82
|
-
results: evaluation.results,
|
|
146
|
+
...blind,
|
|
83
147
|
session: deps.session,
|
|
84
148
|
});
|
|
85
149
|
evaluation.review = review;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifierLifecycle.js","sourceRoot":"","sources":["../../../src/cli/kraken/verifierLifecycle.ts"],"names":[],"mappings":"AA+BA,OAAO,EACL,eAAe,
|
|
1
|
+
{"version":3,"file":"verifierLifecycle.js","sourceRoot":"","sources":["../../../src/cli/kraken/verifierLifecycle.ts"],"names":[],"mappings":"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"}
|