zelari-code 2.0.0-alpha.6 → 2.0.1
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 +9 -0
- package/dist/cli/headless.js.map +1 -1
- package/dist/cli/headlessE2eSession.test.js +189 -0
- package/dist/cli/headlessE2eSession.test.js.map +1 -0
- package/dist/cli/headlessSpine.js +6 -0
- package/dist/cli/headlessSpine.js.map +1 -1
- package/dist/cli/hooks/chatState.js.map +1 -1
- package/dist/cli/hooks/eventsToMessages.js.map +1 -1
- package/dist/cli/hooks/useChatTurn.js +5 -3
- package/dist/cli/hooks/useChatTurn.js.map +1 -1
- package/dist/cli/hooks/useSession.js +0 -2
- package/dist/cli/hooks/useSession.js.map +1 -1
- package/dist/cli/kraken/evidenceAnchoring.test.js +92 -0
- package/dist/cli/kraken/evidenceAnchoring.test.js.map +1 -0
- package/dist/cli/kraken/nativeVerification.js +113 -0
- package/dist/cli/kraken/nativeVerification.js.map +1 -0
- package/dist/cli/kraken/nativeVerification.test.js +207 -0
- package/dist/cli/kraken/nativeVerification.test.js.map +1 -0
- package/dist/cli/kraken/strictDefaults.test.js +149 -0
- package/dist/cli/kraken/strictDefaults.test.js.map +1 -0
- package/dist/cli/kraken/verificationBridge.js +86 -8
- package/dist/cli/kraken/verificationBridge.js.map +1 -1
- package/dist/cli/kraken/verificationBridge.session.test.js +2 -2
- package/dist/cli/kraken/verificationBridge.session.test.js.map +1 -1
- package/dist/cli/kraken/verificationBridge.test.js +38 -22
- package/dist/cli/kraken/verificationBridge.test.js.map +1 -1
- package/dist/cli/kraken/verifierAdvisoryLock.test.js +154 -0
- package/dist/cli/kraken/verifierAdvisoryLock.test.js.map +1 -0
- package/dist/cli/kraken/verifierResolution.js +28 -0
- package/dist/cli/kraken/verifierResolution.js.map +1 -0
- package/dist/cli/kraken/verifierRoundTrip.test.js +166 -0
- package/dist/cli/kraken/verifierRoundTrip.test.js.map +1 -0
- package/dist/cli/legacyContextIsolation.test.js +3 -2
- package/dist/cli/legacyContextIsolation.test.js.map +1 -1
- package/dist/cli/main.bundled.js +707 -314
- package/dist/cli/main.bundled.js.map +4 -4
- package/dist/cli/missionContinuation.test.js +117 -0
- package/dist/cli/missionContinuation.test.js.map +1 -0
- package/dist/cli/profileMatrix.test.js +130 -0
- package/dist/cli/profileMatrix.test.js.map +1 -0
- package/dist/cli/runHeadless.js +39 -4
- package/dist/cli/runHeadless.js.map +1 -1
- package/dist/cli/sessionSpine.js +29 -3
- package/dist/cli/sessionSpine.js.map +1 -1
- package/dist/cli/zelariMission.js +16 -0
- package/dist/cli/zelariMission.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* nativeVerification tests — F2 / Exit-2.4: the Zelari Coding Criteria Pack
|
|
3
|
+
* runs natively in the Kraken strict-build path.
|
|
4
|
+
*
|
|
5
|
+
* Locks the composition contract:
|
|
6
|
+
* - pack is opt-in (ZELARI_VERIFY_PACK=1), default off during the alpha;
|
|
7
|
+
* - env overrides replace `npm run <script>` binding (hermetic tests);
|
|
8
|
+
* - required criteria without a bound command are DROPPED, not unknowned;
|
|
9
|
+
* - a failing pack command forces REPAIR_REQUIRED even when every selection
|
|
10
|
+
* check passed with verify-agent evidence (deterministic beats narrative);
|
|
11
|
+
* - all-pass pack + all-pass selection → PASS, and the spine payload
|
|
12
|
+
* carries the native results with command digests.
|
|
13
|
+
*/
|
|
14
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
15
|
+
import { buildNativeCriteria, evaluateNativePack, nativePackEnabled, packTimeoutMs, resolvePackCommands, } from './nativeVerification.js';
|
|
16
|
+
import { evaluateStrictBuildGate, strictGateEventPayload, } from './verificationBridge.js';
|
|
17
|
+
import { resetKrakenCandidates, setKrakenCheckResults, setKrakenSelection } from './candidateRegistry.js';
|
|
18
|
+
const CHECKS = ['session survives concurrent refresh'];
|
|
19
|
+
function emitSeq() {
|
|
20
|
+
let n = 1;
|
|
21
|
+
return async () => ({ seq: n++ });
|
|
22
|
+
}
|
|
23
|
+
function selectWithChecks(checks) {
|
|
24
|
+
resetKrakenCandidates();
|
|
25
|
+
setKrakenSelection({
|
|
26
|
+
status: 'selected',
|
|
27
|
+
winnerIndex: 0,
|
|
28
|
+
rationale: 'test',
|
|
29
|
+
requiredChecks: checks,
|
|
30
|
+
degraded: false,
|
|
31
|
+
verifier: null,
|
|
32
|
+
judgedBy: 'llm',
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/** Deterministic shell stub: map each command to a canned ShellResult. */
|
|
36
|
+
function stubShell(byCommand) {
|
|
37
|
+
return {
|
|
38
|
+
async exec(command) {
|
|
39
|
+
const canned = byCommand[command] ?? { exit: 0, stdout: '' };
|
|
40
|
+
return {
|
|
41
|
+
exitCode: canned.exit ?? 0,
|
|
42
|
+
stdout: canned.stdout ?? '',
|
|
43
|
+
stderr: canned.stderr ?? '',
|
|
44
|
+
durationMs: 1,
|
|
45
|
+
timedOut: false,
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const TYPECHECK = 'fake-typecheck';
|
|
51
|
+
const TEST = 'fake-test';
|
|
52
|
+
const BUILD = 'fake-build';
|
|
53
|
+
function packEnv(overrides = {}) {
|
|
54
|
+
return {
|
|
55
|
+
ZELARI_VERIFY_PACK: '1',
|
|
56
|
+
ZELARI_VERIFY_TYPECHECK_CMD: TYPECHECK,
|
|
57
|
+
ZELARI_VERIFY_TEST_CMD: TEST,
|
|
58
|
+
ZELARI_VERIFY_BUILD_CMD: BUILD,
|
|
59
|
+
...overrides,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
let envPrev;
|
|
63
|
+
beforeEach(() => {
|
|
64
|
+
envPrev = process.env.ZELARI_STRICT_DONE;
|
|
65
|
+
process.env.ZELARI_STRICT_DONE = '1';
|
|
66
|
+
resetKrakenCandidates();
|
|
67
|
+
});
|
|
68
|
+
afterEach(() => {
|
|
69
|
+
if (envPrev === undefined)
|
|
70
|
+
delete process.env.ZELARI_STRICT_DONE;
|
|
71
|
+
else
|
|
72
|
+
process.env.ZELARI_STRICT_DONE = envPrev;
|
|
73
|
+
resetKrakenCandidates();
|
|
74
|
+
});
|
|
75
|
+
describe('nativePackEnabled (alpha opt-in)', () => {
|
|
76
|
+
it('is OFF by default and only enabled by explicit flags', () => {
|
|
77
|
+
expect(nativePackEnabled({})).toBe(false);
|
|
78
|
+
expect(nativePackEnabled({ ZELARI_VERIFY_PACK: '1' })).toBe(true);
|
|
79
|
+
expect(nativePackEnabled({ ZELARI_VERIFY_PACK: 'on' })).toBe(true);
|
|
80
|
+
expect(nativePackEnabled({ ZELARI_VERIFY_PACK: 'true' })).toBe(true);
|
|
81
|
+
expect(nativePackEnabled({ ZELARI_VERIFY_PACK: '0' })).toBe(false);
|
|
82
|
+
expect(nativePackEnabled({ ZELARI_VERIFY_PACK: 'yes' })).toBe(false);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
describe('resolvePackCommands', () => {
|
|
86
|
+
it('binds npm scripts present in package.json', () => {
|
|
87
|
+
const cmds = resolvePackCommands({}, { typecheck: 'tsc -p .', test: 'vitest run' });
|
|
88
|
+
expect(cmds.typecheckCommand).toBe('npm run typecheck');
|
|
89
|
+
expect(cmds.testCommand).toBe('npm run test');
|
|
90
|
+
expect(cmds.buildCommand).toBeNull(); // script absent → unbound
|
|
91
|
+
});
|
|
92
|
+
it('env override wins; empty string explicitly disables', () => {
|
|
93
|
+
const cmds = resolvePackCommands({ ZELARI_VERIFY_TYPECHECK_CMD: 'tsc --noEmit', ZELARI_VERIFY_TEST_CMD: '' }, { typecheck: 'x', test: 'y', build: 'z' });
|
|
94
|
+
expect(cmds.typecheckCommand).toBe('tsc --noEmit');
|
|
95
|
+
expect(cmds.testCommand).toBeNull();
|
|
96
|
+
expect(cmds.buildCommand).toBe('npm run build');
|
|
97
|
+
});
|
|
98
|
+
it('packTimeoutMs clamps to [1, 3600000] and defaults to 600000', () => {
|
|
99
|
+
expect(packTimeoutMs({})).toBe(600_000);
|
|
100
|
+
expect(packTimeoutMs({ ZELARI_VERIFY_TIMEOUT_MS: '5000' })).toBe(5_000);
|
|
101
|
+
expect(packTimeoutMs({ ZELARI_VERIFY_TIMEOUT_MS: '-3' })).toBe(600_000);
|
|
102
|
+
expect(packTimeoutMs({ ZELARI_VERIFY_TIMEOUT_MS: '99999999' })).toBe(3_600_000);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
describe('buildNativeCriteria', () => {
|
|
106
|
+
it('drops required criteria without a bound command; keeps advisory ones', () => {
|
|
107
|
+
const criteria = buildNativeCriteria({ typecheckCommand: 'tsc', testCommand: null, buildCommand: null }, 1_000);
|
|
108
|
+
const ids = criteria.map((c) => c.id);
|
|
109
|
+
expect(ids).toContain('correctness.error-signals');
|
|
110
|
+
expect(ids).not.toContain('correctness.specification');
|
|
111
|
+
expect(ids).not.toContain('correctness.observable-output');
|
|
112
|
+
// advisories stay even unbound — they surface as honest `unknown`
|
|
113
|
+
expect(ids).toContain('evidence.verification-quality');
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
describe('evaluateNativePack', () => {
|
|
117
|
+
it('returns null when disabled or when no command is bound', async () => {
|
|
118
|
+
expect(await evaluateNativePack({ env: {}, shell: stubShell({}) })).toBeNull();
|
|
119
|
+
expect(await evaluateNativePack({
|
|
120
|
+
env: { ZELARI_VERIFY_PACK: '1' },
|
|
121
|
+
cwd: 'Z:/__no_such_repo__',
|
|
122
|
+
shell: stubShell({}),
|
|
123
|
+
})).toBeNull();
|
|
124
|
+
});
|
|
125
|
+
it('runs bound commands through the core engine and returns digested evidence', async () => {
|
|
126
|
+
const pack = await evaluateNativePack({
|
|
127
|
+
env: packEnv(),
|
|
128
|
+
shell: stubShell({
|
|
129
|
+
[TYPECHECK]: { exit: 0, stdout: 'no errors' },
|
|
130
|
+
[TEST]: { exit: 0, stdout: '58 passed' },
|
|
131
|
+
[BUILD]: { exit: 0, stdout: 'bundled' },
|
|
132
|
+
}),
|
|
133
|
+
});
|
|
134
|
+
expect(pack).not.toBeNull();
|
|
135
|
+
const byId = new Map(pack.results.map((r) => [r.criterionId, r]));
|
|
136
|
+
expect(byId.get('correctness.error-signals')?.status).toBe('pass');
|
|
137
|
+
expect(byId.get('correctness.specification')?.status).toBe('pass');
|
|
138
|
+
const ev = byId.get('correctness.specification')?.evidence[0];
|
|
139
|
+
expect(ev?.tier).toBe('command-output');
|
|
140
|
+
expect(ev?.digest).toMatch(/^[0-9a-f]{64}$/);
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
describe('evaluateStrictBuildGate × native pack (F2 lock)', () => {
|
|
144
|
+
it('failing typecheck forces REPAIR_REQUIRED even when every selection check passes with notes', async () => {
|
|
145
|
+
selectWithChecks(CHECKS);
|
|
146
|
+
setKrakenCheckResults([{ check: CHECKS[0], status: 'pass', note: 'vitest 58/58' }]);
|
|
147
|
+
const gate = await evaluateStrictBuildGate('build', {
|
|
148
|
+
env: packEnv(),
|
|
149
|
+
emit: emitSeq(),
|
|
150
|
+
shell: stubShell({
|
|
151
|
+
[TYPECHECK]: { exit: 2, stderr: 'TS2345: argument of type...' },
|
|
152
|
+
[TEST]: { exit: 0, stdout: '58 passed' },
|
|
153
|
+
[BUILD]: { exit: 0, stdout: 'ok' },
|
|
154
|
+
}),
|
|
155
|
+
});
|
|
156
|
+
expect(gate.strict).toBe(true);
|
|
157
|
+
expect(gate.native).not.toBeNull();
|
|
158
|
+
expect(gate.evaluation.verdict).toBe('REPAIR_REQUIRED');
|
|
159
|
+
expect(gate.blocked).toBe(true);
|
|
160
|
+
const failed = gate.evaluation.unsatisfied.find((u) => u.id === 'correctness.error-signals');
|
|
161
|
+
expect(failed?.status).toBe('fail');
|
|
162
|
+
});
|
|
163
|
+
it('all-pass pack + all-pass selection → PASS with native results in the payload', async () => {
|
|
164
|
+
selectWithChecks(CHECKS);
|
|
165
|
+
setKrakenCheckResults([{ check: CHECKS[0], status: 'pass', note: 'vitest 58/58' }]);
|
|
166
|
+
const gate = await evaluateStrictBuildGate('build', {
|
|
167
|
+
env: packEnv(),
|
|
168
|
+
emit: emitSeq(),
|
|
169
|
+
shell: stubShell({
|
|
170
|
+
[TYPECHECK]: { exit: 0 },
|
|
171
|
+
[TEST]: { exit: 0, stdout: '58 passed' },
|
|
172
|
+
[BUILD]: { exit: 0 },
|
|
173
|
+
}),
|
|
174
|
+
});
|
|
175
|
+
expect(gate.evaluation.verdict).toBe('PASS');
|
|
176
|
+
expect(gate.blocked).toBe(false);
|
|
177
|
+
const payload = strictGateEventPayload(gate);
|
|
178
|
+
expect(payload.engine).toBe('kraken-legacy+completion-policy+criteria-pack');
|
|
179
|
+
expect(payload.native).toMatchObject({ packId: 'zelari-coding/v1' });
|
|
180
|
+
const results = payload.native.results;
|
|
181
|
+
expect(results.filter((r) => r.status === 'pass').length).toBeGreaterThanOrEqual(3);
|
|
182
|
+
});
|
|
183
|
+
it('pack disabled (default) → native null and identical legacy-only verdict', async () => {
|
|
184
|
+
selectWithChecks(CHECKS);
|
|
185
|
+
setKrakenCheckResults([{ check: CHECKS[0], status: 'pass', note: 'vitest 58/58' }]);
|
|
186
|
+
const gate = await evaluateStrictBuildGate('build', { env: {}, emit: emitSeq(), shell: stubShell({}) });
|
|
187
|
+
expect(gate.native).toBeNull();
|
|
188
|
+
expect(gate.evaluation.verdict).toBe('PASS');
|
|
189
|
+
expect(strictGateEventPayload(gate).engine).toBe('kraken-legacy+completion-policy');
|
|
190
|
+
});
|
|
191
|
+
it('a pack criterion timing out is unknown — blockers add, unknown never passes silently', async () => {
|
|
192
|
+
selectWithChecks(CHECKS);
|
|
193
|
+
setKrakenCheckResults([{ check: CHECKS[0], status: 'pass', note: 'ok' }]);
|
|
194
|
+
const timeoutShell = {
|
|
195
|
+
async exec(command) {
|
|
196
|
+
if (command === TEST) {
|
|
197
|
+
return { exitCode: null, stdout: '', stderr: '', durationMs: 9, timedOut: true };
|
|
198
|
+
}
|
|
199
|
+
return { exitCode: 0, stdout: '', stderr: '', durationMs: 1, timedOut: false };
|
|
200
|
+
},
|
|
201
|
+
};
|
|
202
|
+
const gate = await evaluateStrictBuildGate('build', { env: packEnv(), emit: emitSeq(), shell: timeoutShell });
|
|
203
|
+
expect(gate.evaluation.verdict).toBe('BLOCKED'); // unknown ≠ pass
|
|
204
|
+
expect(gate.blocked).toBe(true);
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
//# sourceMappingURL=nativeVerification.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeVerification.test.js","sourceRoot":"","sources":["../../../src/cli/kraken/nativeVerification.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAErE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE1G,MAAM,MAAM,GAAG,CAAC,qCAAqC,CAAC,CAAC;AAEvD,SAAS,OAAO;IACd,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAgB;IACxC,qBAAqB,EAAE,CAAC;IACxB,kBAAkB,CAAC;QACjB,MAAM,EAAE,UAAU;QAClB,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,MAAM;QACjB,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;AACL,CAAC;AAED,0EAA0E;AAC1E,SAAS,SAAS,CAAC,SAA8E;IAC/F,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,OAAe;YACxB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAC7D,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;gBAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;gBAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;gBAC3B,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,KAAK;aAChB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,gBAAgB,CAAC;AACnC,MAAM,IAAI,GAAG,WAAW,CAAC;AACzB,MAAM,KAAK,GAAG,YAAY,CAAC;AAE3B,SAAS,OAAO,CAAC,YAAoC,EAAE;IACrD,OAAO;QACL,kBAAkB,EAAE,GAAG;QACvB,2BAA2B,EAAE,SAAS;QACtC,sBAAsB,EAAE,IAAI;QAC5B,uBAAuB,EAAE,KAAK;QAC9B,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,IAAI,OAA2B,CAAC;AAChC,UAAU,CAAC,GAAG,EAAE;IACd,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC;IACrC,qBAAqB,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AACH,SAAS,CAAC,GAAG,EAAE;IACb,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;;QAC5D,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC;IAC9C,qBAAqB,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QACpF,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,0BAA0B;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,IAAI,GAAG,mBAAmB,CAC9B,EAAE,2BAA2B,EAAE,cAAc,EAAE,sBAAsB,EAAE,EAAE,EAAE,EAC3E,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAC1C,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,aAAa,CAAC,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,CAAC,aAAa,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,CAAC,aAAa,CAAC,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,QAAQ,GAAG,mBAAmB,CAClC,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAClE,KAAK,CACN,CAAC;QACF,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QAC3D,kEAAkE;QAClE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,CAAC,MAAM,kBAAkB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/E,MAAM,CACJ,MAAM,kBAAkB,CAAC;YACvB,GAAG,EAAE,EAAE,kBAAkB,EAAE,GAAG,EAAE;YAChC,GAAG,EAAE,qBAAqB;YAC1B,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;SACrB,CAAC,CACH,CAAC,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC;YACpC,GAAG,EAAE,OAAO,EAAE;YACd,KAAK,EAAE,SAAS,CAAC;gBACf,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE;gBAC7C,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE;gBACxC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE;aACxC,CAAC;SACH,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAC/D,EAAE,CAAC,4FAA4F,EAAE,KAAK,IAAI,EAAE;QAC1G,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,OAAO,EAAE;YAClD,GAAG,EAAE,OAAO,EAAE;YACd,IAAI,EAAE,OAAO,EAAE;YACf,KAAK,EAAE,SAAS,CAAC;gBACf,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,6BAA6B,EAAE;gBAC/D,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE;gBACxC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;aACnC,CAAC;SACH,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,UAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,2BAA2B,CAAC,CAAC;QAC9F,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,OAAO,EAAE;YAClD,GAAG,EAAE,OAAO,EAAE;YACd,IAAI,EAAE,OAAO,EAAE;YACf,KAAK,EAAE,SAAS,CAAC;gBACf,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;gBACxB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE;gBACxC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;aACrB,CAAC;SACH,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,UAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC7E,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACrE,MAAM,OAAO,GAAI,OAAO,CAAC,MAAsE,CAAC,OAAO,CAAC;QACxG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACxG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,UAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;QACpG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAkB;YAClC,KAAK,CAAC,IAAI,CAAC,OAAe;gBACxB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBACrB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACnF,CAAC;gBACD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YACjF,CAAC;SACF,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QAC9G,MAAM,CAAC,IAAI,CAAC,UAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB;QACnE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADR-0025 lock tests — strict done defaults per surface.
|
|
3
|
+
*
|
|
4
|
+
* Kraken (default surface): opt-in via ZELARI_STRICT_DONE, else off (1.x compat).
|
|
5
|
+
* Mission: strict evidence gate ON by default; ZELARI_MISSION_STRICT=0|false
|
|
6
|
+
* is the only opt-out. These defaults are product decisions, not accidents —
|
|
7
|
+
* a regression here changes what "done" means for autonomous missions.
|
|
8
|
+
*/
|
|
9
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
10
|
+
import { evaluateStrictBuildGate, strictDoneEnabled, } from './verificationBridge.js';
|
|
11
|
+
import { resetKrakenCandidates, setKrakenCheckResults, setKrakenSelection, } from './candidateRegistry.js';
|
|
12
|
+
const CHECKS = ['mission slice keeps the spine replayable', 'export round-trips'];
|
|
13
|
+
function emitSeq() {
|
|
14
|
+
let n = 1;
|
|
15
|
+
return async () => ({ seq: n++ });
|
|
16
|
+
}
|
|
17
|
+
function selectWithChecks(checks) {
|
|
18
|
+
resetKrakenCandidates();
|
|
19
|
+
setKrakenSelection({
|
|
20
|
+
status: 'selected',
|
|
21
|
+
winnerIndex: 0,
|
|
22
|
+
rationale: 'test',
|
|
23
|
+
requiredChecks: checks,
|
|
24
|
+
degraded: false,
|
|
25
|
+
verifier: null,
|
|
26
|
+
judgedBy: 'llm',
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
let prevKraken;
|
|
30
|
+
let prevMission;
|
|
31
|
+
let prevPack;
|
|
32
|
+
/** Swap both strict envs for the duration of fn; restore in finally. */
|
|
33
|
+
async function withEnv(kraken, mission, fn) {
|
|
34
|
+
const k = process.env.ZELARI_STRICT_DONE;
|
|
35
|
+
const m = process.env.ZELARI_MISSION_STRICT;
|
|
36
|
+
if (kraken === undefined)
|
|
37
|
+
delete process.env.ZELARI_STRICT_DONE;
|
|
38
|
+
else
|
|
39
|
+
process.env.ZELARI_STRICT_DONE = kraken;
|
|
40
|
+
if (mission === undefined)
|
|
41
|
+
delete process.env.ZELARI_MISSION_STRICT;
|
|
42
|
+
else
|
|
43
|
+
process.env.ZELARI_MISSION_STRICT = mission;
|
|
44
|
+
try {
|
|
45
|
+
return await fn();
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
if (k === undefined)
|
|
49
|
+
delete process.env.ZELARI_STRICT_DONE;
|
|
50
|
+
else
|
|
51
|
+
process.env.ZELARI_STRICT_DONE = k;
|
|
52
|
+
if (m === undefined)
|
|
53
|
+
delete process.env.ZELARI_MISSION_STRICT;
|
|
54
|
+
else
|
|
55
|
+
process.env.ZELARI_MISSION_STRICT = m;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
beforeEach(() => {
|
|
59
|
+
prevKraken = process.env.ZELARI_STRICT_DONE;
|
|
60
|
+
prevMission = process.env.ZELARI_MISSION_STRICT;
|
|
61
|
+
prevPack = process.env.ZELARI_VERIFY_PACK;
|
|
62
|
+
delete process.env.ZELARI_VERIFY_PACK;
|
|
63
|
+
resetKrakenCandidates();
|
|
64
|
+
});
|
|
65
|
+
afterEach(() => {
|
|
66
|
+
if (prevKraken === undefined)
|
|
67
|
+
delete process.env.ZELARI_STRICT_DONE;
|
|
68
|
+
else
|
|
69
|
+
process.env.ZELARI_STRICT_DONE = prevKraken;
|
|
70
|
+
if (prevMission === undefined)
|
|
71
|
+
delete process.env.ZELARI_MISSION_STRICT;
|
|
72
|
+
else
|
|
73
|
+
process.env.ZELARI_MISSION_STRICT = prevMission;
|
|
74
|
+
if (prevPack === undefined)
|
|
75
|
+
delete process.env.ZELARI_VERIFY_PACK;
|
|
76
|
+
else
|
|
77
|
+
process.env.ZELARI_VERIFY_PACK = prevPack;
|
|
78
|
+
resetKrakenCandidates();
|
|
79
|
+
});
|
|
80
|
+
describe('strictDoneEnabled defaults (ADR-0025)', () => {
|
|
81
|
+
it('kraken: default OFF, opt-in via ZELARI_STRICT_DONE', async () => {
|
|
82
|
+
await withEnv(undefined, undefined, () => {
|
|
83
|
+
expect(strictDoneEnabled()).toBe(false);
|
|
84
|
+
expect(strictDoneEnabled('kraken')).toBe(false);
|
|
85
|
+
});
|
|
86
|
+
await withEnv('1', undefined, () => expect(strictDoneEnabled()).toBe(true));
|
|
87
|
+
await withEnv('true', undefined, () => expect(strictDoneEnabled()).toBe(true));
|
|
88
|
+
await withEnv('0', undefined, () => expect(strictDoneEnabled()).toBe(false));
|
|
89
|
+
});
|
|
90
|
+
it('mission: default ON regardless of ZELARI_STRICT_DONE', async () => {
|
|
91
|
+
await withEnv(undefined, undefined, () => expect(strictDoneEnabled('mission')).toBe(true));
|
|
92
|
+
await withEnv('0', undefined, () => expect(strictDoneEnabled('mission')).toBe(true));
|
|
93
|
+
await withEnv('false', undefined, () => expect(strictDoneEnabled('mission')).toBe(true));
|
|
94
|
+
});
|
|
95
|
+
it('mission: ZELARI_MISSION_STRICT=0|false is the only opt-out', async () => {
|
|
96
|
+
await withEnv(undefined, '0', () => expect(strictDoneEnabled('mission')).toBe(false));
|
|
97
|
+
await withEnv(undefined, 'false', () => expect(strictDoneEnabled('mission')).toBe(false));
|
|
98
|
+
await withEnv(undefined, '1', () => expect(strictDoneEnabled('mission')).toBe(true));
|
|
99
|
+
await withEnv('1', '0', () => expect(strictDoneEnabled('mission')).toBe(false));
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
describe('evaluateStrictBuildGate surface wiring (ADR-0025)', () => {
|
|
103
|
+
it('mission surface enforces the evidence contract by default (unknown → blocked)', async () => {
|
|
104
|
+
await withEnv(undefined, undefined, async () => {
|
|
105
|
+
selectWithChecks(CHECKS);
|
|
106
|
+
// No check results reported → every required criterion is unknown.
|
|
107
|
+
const gate = await evaluateStrictBuildGate('build', { surface: 'mission' });
|
|
108
|
+
expect(gate.strict).toBe(true);
|
|
109
|
+
expect(gate.blocked).toBe(true);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
it('mission opt-out restores the legacy-only outcome', async () => {
|
|
113
|
+
await withEnv(undefined, '0', async () => {
|
|
114
|
+
selectWithChecks(CHECKS);
|
|
115
|
+
setKrakenCheckResults(CHECKS.map((c) => ({ check: c, status: 'pass', note: 'ok (stub)' })));
|
|
116
|
+
const gate = await evaluateStrictBuildGate('build', { surface: 'mission' });
|
|
117
|
+
expect(gate.strict).toBe(false);
|
|
118
|
+
expect(gate.blocked).toBe(false); // legacy gate green + no strict overlay
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
it('kraken surface (default) stays opt-in even with checks registered', async () => {
|
|
122
|
+
await withEnv(undefined, undefined, async () => {
|
|
123
|
+
selectWithChecks(CHECKS);
|
|
124
|
+
setKrakenCheckResults(CHECKS.map((c) => ({ check: c, status: 'pass', note: 'ok (stub)' })));
|
|
125
|
+
const gate = await evaluateStrictBuildGate('build'); // no surface → kraken
|
|
126
|
+
expect(gate.strict).toBe(false);
|
|
127
|
+
expect(gate.blocked).toBe(false);
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
it('mission default does not run the native pack without ZELARI_VERIFY_PACK', async () => {
|
|
131
|
+
// The mission default gates on the selection contract only; the native
|
|
132
|
+
// criteria pack (real typecheck/test/build commands) stays opt-in so the
|
|
133
|
+
// default never adds process spawns the user did not ask for.
|
|
134
|
+
await withEnv(undefined, undefined, async () => {
|
|
135
|
+
selectWithChecks([CHECKS[0]]);
|
|
136
|
+
setKrakenCheckResults([
|
|
137
|
+
{ check: CHECKS[0], status: 'pass', note: 'spine replay ok (stub)' },
|
|
138
|
+
]);
|
|
139
|
+
const gate = await evaluateStrictBuildGate('build', { surface: 'mission', emit: emitSeq() });
|
|
140
|
+
expect(gate.strict).toBe(true);
|
|
141
|
+
expect(gate.native).toBeNull();
|
|
142
|
+
expect(gate.blocked).toBe(false); // pass with event-backed note → PASS
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
// Type-level lock: the surface union is exactly the two ADR-0025 surfaces.
|
|
147
|
+
const _surfaceUnionLock = ['kraken', 'mission'];
|
|
148
|
+
void _surfaceUnionLock;
|
|
149
|
+
//# sourceMappingURL=strictDefaults.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strictDefaults.test.js","sourceRoot":"","sources":["../../../src/cli/kraken/strictDefaults.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,12 +12,25 @@
|
|
|
12
12
|
* them. A legacy-blocked turn stays blocked; a legacy-open turn can become
|
|
13
13
|
* blocked only when strict evaluation is enabled AND the evidence contract
|
|
14
14
|
* is not satisfied.
|
|
15
|
+
*
|
|
16
|
+
* F2 (Exit-2.4): when the native criteria pack is enabled
|
|
17
|
+
* (ZELARI_VERIFY_PACK=1), the Zelari Coding Criteria Pack v1 joins the SAME
|
|
18
|
+
* CompletionPolicy evaluation with real deterministic checks (typecheck/
|
|
19
|
+
* test/build commands) executed through the core VerificationEngine —
|
|
20
|
+
* see nativeVerification.ts. The pack is additive evidence; it can only add
|
|
21
|
+
* blockers, never remove them, exactly like the rest of the strict layer.
|
|
15
22
|
*/
|
|
16
23
|
import { getKrakenCheckResults, krakenRequiredChecks } from './candidateRegistry.js';
|
|
17
24
|
import { evaluateKrakenCompletionGate } from './completionGate.js';
|
|
25
|
+
import { evaluateNativePack } from './nativeVerification.js';
|
|
18
26
|
import { evaluateCompletion, STRICT_BUILD_POLICY, snapshotToCompletionEvaluation, } from '@zelari/core/verification';
|
|
19
|
-
|
|
20
|
-
|
|
27
|
+
export function strictDoneEnabled(surface = 'kraken') {
|
|
28
|
+
if (surface === 'mission') {
|
|
29
|
+
const v = process.env.ZELARI_MISSION_STRICT;
|
|
30
|
+
if (v === '0' || v === 'false')
|
|
31
|
+
return false;
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
21
34
|
const v = process.env.ZELARI_STRICT_DONE;
|
|
22
35
|
return v === '1' || v === 'true';
|
|
23
36
|
}
|
|
@@ -96,18 +109,57 @@ export function krakenResultsToContract(requiredChecks, results, now = Date.now(
|
|
|
96
109
|
});
|
|
97
110
|
return { criteria, results: verifications };
|
|
98
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* 2.0 (ADR-0026): stamp EvidenceRef.seq on selection-contract notes by
|
|
114
|
+
* appending a `verification.evidence` event. Without an emitter the refs
|
|
115
|
+
* stay unanchored and STRICT_BUILD_POLICY (requireEventBackedEvidence)
|
|
116
|
+
* will BLOCK — that is the RC false-done guard, not a test-only quirk.
|
|
117
|
+
*/
|
|
118
|
+
export async function anchorSelectionEvidence(results, emit) {
|
|
119
|
+
if (!emit)
|
|
120
|
+
return;
|
|
121
|
+
for (const r of results) {
|
|
122
|
+
for (const ev of r.evidence) {
|
|
123
|
+
if (ev.seq !== undefined)
|
|
124
|
+
continue;
|
|
125
|
+
if (ev.tier === 'verifier-llm' || ev.tier === 'human')
|
|
126
|
+
continue;
|
|
127
|
+
try {
|
|
128
|
+
const appended = await emit({
|
|
129
|
+
kind: 'verification.evidence',
|
|
130
|
+
actor: { type: 'system', role: 'verification' },
|
|
131
|
+
data: {
|
|
132
|
+
observation: 'verify-report-note',
|
|
133
|
+
criterionId: r.criterionId,
|
|
134
|
+
ref: ev.ref,
|
|
135
|
+
tier: ev.tier,
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
const seq = appended && typeof appended === 'object' && 'seq' in appended
|
|
139
|
+
? Number(appended.seq)
|
|
140
|
+
: NaN;
|
|
141
|
+
if (Number.isFinite(seq) && seq > 0)
|
|
142
|
+
ev.seq = seq;
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// degrade-and-stop: leave unanchored; policy will BLOCK if required
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
99
150
|
/**
|
|
100
151
|
* Evaluate the BUILD completion gate. When `ZELARI_STRICT_DONE` is enabled
|
|
101
152
|
* and the turn registered required checks, the evidence contract is evaluated
|
|
102
153
|
* as well and the verdicts merged (blockers add up).
|
|
103
154
|
*/
|
|
104
|
-
export function evaluateStrictBuildGate(mode) {
|
|
155
|
+
export async function evaluateStrictBuildGate(mode, options = {}) {
|
|
105
156
|
const gate = evaluateKrakenCompletionGate(mode);
|
|
106
|
-
if (!gate.selectionUsed || gate.total === 0 || !strictDoneEnabled()) {
|
|
157
|
+
if (!gate.selectionUsed || gate.total === 0 || !strictDoneEnabled(options.surface ?? 'kraken')) {
|
|
107
158
|
return {
|
|
108
159
|
gate,
|
|
109
160
|
strict: false,
|
|
110
161
|
evaluation: null,
|
|
162
|
+
native: null,
|
|
111
163
|
blocked: gate.blocked,
|
|
112
164
|
summary: gate.blocked
|
|
113
165
|
? `blocked: ${gate.failedChecks.length} failed, ${gate.unknownChecks.length} unknown`
|
|
@@ -116,16 +168,28 @@ export function evaluateStrictBuildGate(mode) {
|
|
|
116
168
|
}
|
|
117
169
|
const checks = krakenRequiredChecks();
|
|
118
170
|
const contract = krakenResultsToContract(checks, getKrakenCheckResults());
|
|
119
|
-
|
|
171
|
+
await anchorSelectionEvidence(contract.results, options.emit);
|
|
172
|
+
// F2: native criteria pack (opt-in) — real commands via the core engine.
|
|
173
|
+
// A pack failure degrades to the legacy contract only; it never un-blocks.
|
|
174
|
+
const native = await evaluateNativePack({
|
|
175
|
+
cwd: options.cwd,
|
|
176
|
+
env: options.env,
|
|
177
|
+
shell: options.shell,
|
|
178
|
+
emit: options.emit,
|
|
179
|
+
}).catch(() => null);
|
|
180
|
+
const allCriteria = [...contract.criteria, ...(native?.criteria ?? [])];
|
|
181
|
+
const allResults = [...contract.results, ...(native?.results ?? [])];
|
|
182
|
+
const evaluation = evaluateCompletion(allCriteria, allResults, STRICT_BUILD_POLICY);
|
|
120
183
|
const blocked = gate.blocked || evaluation.verdict !== 'PASS';
|
|
121
184
|
return {
|
|
122
185
|
gate,
|
|
123
186
|
strict: true,
|
|
124
187
|
evaluation,
|
|
188
|
+
native,
|
|
125
189
|
blocked,
|
|
126
190
|
summary: blocked
|
|
127
191
|
? `blocked (strict ${evaluation?.verdict ?? 'n/a'}): ${gate.passed}/${gate.total} legacy-pass, evidence ${evaluation?.evidenceComplete ? 'complete' : 'incomplete'}`
|
|
128
|
-
: `open (strict PASS): ${evaluation?.satisfied.length ?? 0}/${
|
|
192
|
+
: `open (strict PASS): ${evaluation?.satisfied.length ?? 0}/${allCriteria.length} criteria pass with evidence`,
|
|
129
193
|
};
|
|
130
194
|
}
|
|
131
195
|
/**
|
|
@@ -138,10 +202,10 @@ export const STRICT_DONE_EXIT_CODE = 4;
|
|
|
138
202
|
export function strictGateExitCode(evaluation) {
|
|
139
203
|
return evaluation.strict && evaluation.blocked ? STRICT_DONE_EXIT_CODE : 0;
|
|
140
204
|
}
|
|
141
|
-
/** Machine-readable record for the session spine `verification.run` event. */
|
|
205
|
+
/** Machine-readable record for the session spine `verification.run` event. */
|
|
142
206
|
export function strictGateEventPayload(evaluation) {
|
|
143
207
|
return {
|
|
144
|
-
engine: 'kraken-legacy+completion-policy',
|
|
208
|
+
engine: evaluation.native ? 'kraken-legacy+completion-policy+criteria-pack' : 'kraken-legacy+completion-policy',
|
|
145
209
|
strict: evaluation.strict,
|
|
146
210
|
verdict: evaluation.evaluation?.verdict ?? (evaluation.blocked ? 'BLOCKED' : 'PASS'),
|
|
147
211
|
legacy: {
|
|
@@ -157,6 +221,19 @@ export function strictGateEventPayload(evaluation) {
|
|
|
157
221
|
complete: evaluation.evaluation.evidenceComplete,
|
|
158
222
|
}
|
|
159
223
|
: null,
|
|
224
|
+
// F2: deterministic pack results — real command evidence, replayable.
|
|
225
|
+
native: evaluation.native
|
|
226
|
+
? {
|
|
227
|
+
packId: evaluation.native.packId,
|
|
228
|
+
criteria: evaluation.native.criteria.map((c) => ({ id: c.id, required: c.required })),
|
|
229
|
+
results: evaluation.native.results.map((r) => ({
|
|
230
|
+
criterionId: r.criterionId,
|
|
231
|
+
status: r.status,
|
|
232
|
+
evidence: r.evidence.map((e) => ({ tier: e.tier, ref: e.ref, digest: e.digest, ...(e.seq !== undefined ? { seq: e.seq } : {}) })),
|
|
233
|
+
detail: r.detail,
|
|
234
|
+
})),
|
|
235
|
+
}
|
|
236
|
+
: null,
|
|
160
237
|
summary: evaluation.summary,
|
|
161
238
|
};
|
|
162
239
|
}
|
|
@@ -177,6 +254,7 @@ export function evaluateStrictBuildGateFromSession(mode, snapshot) {
|
|
|
177
254
|
gate,
|
|
178
255
|
strict: evaluation !== null,
|
|
179
256
|
evaluation,
|
|
257
|
+
native: null, // session replay carries the payload, not in-process results
|
|
180
258
|
blocked,
|
|
181
259
|
summary: evaluation
|
|
182
260
|
? blocked
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verificationBridge.js","sourceRoot":"","sources":["../../../src/cli/kraken/verificationBridge.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"verificationBridge.js","sourceRoot":"","sources":["../../../src/cli/kraken/verificationBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,7 @@ function fakeStrictEvaluation(verdict) {
|
|
|
44
44
|
verdict: 'PASS',
|
|
45
45
|
satisfied: ['check-1-run-tests', 'check-2-lint'],
|
|
46
46
|
unsatisfied: [],
|
|
47
|
-
evidenceComplete: true,
|
|
47
|
+
evidenceComplete: true, eventBackedEvidenceComplete: true,
|
|
48
48
|
summary: 'open (strict PASS): 2/2 criteria pass with evidence',
|
|
49
49
|
},
|
|
50
50
|
blocked: false,
|
|
@@ -58,7 +58,7 @@ function fakeStrictEvaluation(verdict) {
|
|
|
58
58
|
verdict: 'BLOCKED',
|
|
59
59
|
satisfied: ['check-2-lint'],
|
|
60
60
|
unsatisfied: [{ id: 'check-1-run-tests', status: 'fail', reason: 'exit 1' }],
|
|
61
|
-
evidenceComplete: false,
|
|
61
|
+
evidenceComplete: false, eventBackedEvidenceComplete: false,
|
|
62
62
|
summary: 'incomplete (BLOCKED): check-1-run-tests=fail',
|
|
63
63
|
},
|
|
64
64
|
blocked: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verificationBridge.session.test.js","sourceRoot":"","sources":["../../../src/cli/kraken/verificationBridge.session.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,kCAAkC,EAClC,sBAAsB,GAEvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,IAAI,GAAW,CAAC;AAEhB,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH,SAAS,UAAU,CAAC,SAAiB;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,QAAQ,CAAC,OAAgB;IAChC,OAAO;QACL,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1C,aAAa,EAAE,EAAE;QACjB,OAAO;KAC2B,CAAC;AACvC,CAAC;AAED,SAAS,oBAAoB,CAAC,OAA2B;IACvD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;YACrB,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE;gBACV,OAAO,EAAE,MAAM;gBACf,SAAS,EAAE,CAAC,mBAAmB,EAAE,cAAc,CAAC;gBAChD,WAAW,EAAE,EAAE;gBACf,gBAAgB,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"verificationBridge.session.test.js","sourceRoot":"","sources":["../../../src/cli/kraken/verificationBridge.session.test.ts"],"names":[],"mappings":"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"}
|