@zelari/core 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/mission/continuationPolicy.d.ts +60 -0
- package/dist/mission/continuationPolicy.d.ts.map +1 -0
- package/dist/mission/continuationPolicy.js +113 -0
- package/dist/mission/continuationPolicy.js.map +1 -0
- package/dist/mission/index.d.ts +1 -0
- package/dist/mission/index.d.ts.map +1 -1
- package/dist/mission/index.js +1 -0
- package/dist/mission/index.js.map +1 -1
- package/dist/mission/missionState.d.ts +6 -0
- package/dist/mission/missionState.d.ts.map +1 -1
- package/dist/mission/missionState.js +1 -0
- package/dist/mission/missionState.js.map +1 -1
- package/dist/session/replay.d.ts +6 -0
- package/dist/session/replay.d.ts.map +1 -1
- package/dist/session/replay.js +9 -0
- package/dist/session/replay.js.map +1 -1
- package/dist/session/types.d.ts +3 -1
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js +7 -0
- package/dist/session/types.js.map +1 -1
- package/dist/verification/completionPolicy.d.ts +14 -2
- package/dist/verification/completionPolicy.d.ts.map +1 -1
- package/dist/verification/completionPolicy.js +19 -2
- package/dist/verification/completionPolicy.js.map +1 -1
- package/dist/verification/criteriaPack.v1.d.ts.map +1 -1
- package/dist/verification/criteriaPack.v1.js +5 -3
- package/dist/verification/criteriaPack.v1.js.map +1 -1
- package/dist/verification/engine.d.ts +23 -1
- package/dist/verification/engine.d.ts.map +1 -1
- package/dist/verification/engine.js +99 -21
- package/dist/verification/engine.js.map +1 -1
- package/dist/verification/sessionEvidence.d.ts.map +1 -1
- package/dist/verification/sessionEvidence.js +3 -0
- package/dist/verification/sessionEvidence.js.map +1 -1
- package/dist/verification/types.d.ts +13 -0
- package/dist/verification/types.d.ts.map +1 -1
- package/dist/verification/types.js +26 -1
- package/dist/verification/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mission/continuationPolicy.ts — advisory mission continuation (2.0 Phase 4,
|
|
3
|
+
* doc §6 "mission progress / advisory early-stop").
|
|
4
|
+
*
|
|
5
|
+
* Integrates mission evidence (deterministic progress from the spine) with an
|
|
6
|
+
* optional verifier trend into a CONTINUATION RECOMMENDATION. The policy is
|
|
7
|
+
* advisory-only by construction:
|
|
8
|
+
*
|
|
9
|
+
* - it never rewrites the mission goal (`goalRewrite: false`, literal);
|
|
10
|
+
* - a score alone never marks the mission done (`doneByScore: false`) —
|
|
11
|
+
* final authority stays with the driver + CompletionPolicy;
|
|
12
|
+
* - it NEVER recommends stopping while required criteria are incomplete
|
|
13
|
+
* (no score-based early-stop);
|
|
14
|
+
* - an explicit user steer always wins over any trend.
|
|
15
|
+
*/
|
|
16
|
+
import type { MissionProgress } from './missionState.js';
|
|
17
|
+
export type MissionContinuationRecommendation = 'continue' | 'wind-down' | 'hold-for-user';
|
|
18
|
+
/** Optional verifier trend (from VerifierService.progressScore + review). */
|
|
19
|
+
export interface MissionVerifierTrend {
|
|
20
|
+
tier: 'deterministic' | 'blended';
|
|
21
|
+
value: number | null;
|
|
22
|
+
/** Verifier review verdict when one ran (advisory, never authority). */
|
|
23
|
+
verdict?: 'confirmed' | 'rejected' | 'unknown';
|
|
24
|
+
}
|
|
25
|
+
export interface MissionContinuationInput {
|
|
26
|
+
/** Deterministic progress (last verification / slice evidence). */
|
|
27
|
+
progress: MissionProgress;
|
|
28
|
+
/** Optional verifier trend — recorded as context, never authority. */
|
|
29
|
+
verifier?: MissionVerifierTrend;
|
|
30
|
+
/** Iteration budget state (driver stop rules stay deterministic). */
|
|
31
|
+
budget?: {
|
|
32
|
+
iterationsUsed: number;
|
|
33
|
+
iterationsMax: number;
|
|
34
|
+
};
|
|
35
|
+
/** Explicit user steer — always sovereign over trend-derived advice. */
|
|
36
|
+
userSteer?: 'continue' | 'stop';
|
|
37
|
+
}
|
|
38
|
+
export interface MissionContinuationAdvice {
|
|
39
|
+
recommendation: MissionContinuationRecommendation;
|
|
40
|
+
rationale: string;
|
|
41
|
+
/** Why wind-down is not admissible yet (required criteria gaps). */
|
|
42
|
+
blockers: string[];
|
|
43
|
+
/** Verifier trend as recorded context (absent when no verifier ran). */
|
|
44
|
+
trend?: {
|
|
45
|
+
tier: string;
|
|
46
|
+
value: number | null;
|
|
47
|
+
};
|
|
48
|
+
/** Advisory contract (locked): the policy NEVER rewrites the goal. */
|
|
49
|
+
goalRewrite: false;
|
|
50
|
+
/** Advisory contract (locked): a score alone NEVER marks the mission done. */
|
|
51
|
+
doneByScore: false;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Evaluate the advisory continuation recommendation. Pure and deterministic.
|
|
55
|
+
*
|
|
56
|
+
* Precedence: user steer → budget exhausted → required-incomplete (continue)
|
|
57
|
+
* → verifier-advisory bands on a fully-evidenced PASS.
|
|
58
|
+
*/
|
|
59
|
+
export declare function evaluateMissionContinuation(input: MissionContinuationInput): MissionContinuationAdvice;
|
|
60
|
+
//# sourceMappingURL=continuationPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"continuationPolicy.d.ts","sourceRoot":"","sources":["../../src/mission/continuationPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,MAAM,iCAAiC,GAAG,UAAU,GAAG,WAAW,GAAG,eAAe,CAAC;AAE3F,6EAA6E;AAC7E,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,wEAAwE;IACxE,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;CAChD;AAED,MAAM,WAAW,wBAAwB;IACvC,mEAAmE;IACnE,QAAQ,EAAE,eAAe,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,qEAAqE;IACrE,MAAM,CAAC,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,wEAAwE;IACxE,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,iCAAiC,CAAC;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wEAAwE;IACxE,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC/C,sEAAsE;IACtE,WAAW,EAAE,KAAK,CAAC;IACnB,8EAA8E;IAC9E,WAAW,EAAE,KAAK,CAAC;CACpB;AAsBD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,wBAAwB,GAAG,yBAAyB,CA+EtG"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mission/continuationPolicy.ts — advisory mission continuation (2.0 Phase 4,
|
|
3
|
+
* doc §6 "mission progress / advisory early-stop").
|
|
4
|
+
*
|
|
5
|
+
* Integrates mission evidence (deterministic progress from the spine) with an
|
|
6
|
+
* optional verifier trend into a CONTINUATION RECOMMENDATION. The policy is
|
|
7
|
+
* advisory-only by construction:
|
|
8
|
+
*
|
|
9
|
+
* - it never rewrites the mission goal (`goalRewrite: false`, literal);
|
|
10
|
+
* - a score alone never marks the mission done (`doneByScore: false`) —
|
|
11
|
+
* final authority stays with the driver + CompletionPolicy;
|
|
12
|
+
* - it NEVER recommends stopping while required criteria are incomplete
|
|
13
|
+
* (no score-based early-stop);
|
|
14
|
+
* - an explicit user steer always wins over any trend.
|
|
15
|
+
*/
|
|
16
|
+
/** Conservative bands for the blended (experimental) trend. */
|
|
17
|
+
const CONFIRMED_BLEND = 0.8;
|
|
18
|
+
const REJECTED_BLEND = 0.35;
|
|
19
|
+
function requiredBlockers(progress) {
|
|
20
|
+
const blockers = [];
|
|
21
|
+
if (progress.ratio === null) {
|
|
22
|
+
blockers.push('no verification criteria recorded yet');
|
|
23
|
+
return blockers;
|
|
24
|
+
}
|
|
25
|
+
const missing = progress.criteriaTotal - progress.criteriaPassed;
|
|
26
|
+
if (missing > 0) {
|
|
27
|
+
blockers.push(`${missing}/${progress.criteriaTotal} required criteria not passing`);
|
|
28
|
+
}
|
|
29
|
+
if (progress.criteriaPassed === progress.criteriaTotal && !progress.evidenceComplete) {
|
|
30
|
+
blockers.push('all criteria pass but evidence is incomplete (not event-backed)');
|
|
31
|
+
}
|
|
32
|
+
return blockers;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Evaluate the advisory continuation recommendation. Pure and deterministic.
|
|
36
|
+
*
|
|
37
|
+
* Precedence: user steer → budget exhausted → required-incomplete (continue)
|
|
38
|
+
* → verifier-advisory bands on a fully-evidenced PASS.
|
|
39
|
+
*/
|
|
40
|
+
export function evaluateMissionContinuation(input) {
|
|
41
|
+
const { progress, verifier, budget, userSteer } = input;
|
|
42
|
+
const base = { goalRewrite: false, doneByScore: false };
|
|
43
|
+
const trend = verifier ? { tier: verifier.tier, value: verifier.value } : undefined;
|
|
44
|
+
const blockers = requiredBlockers(progress);
|
|
45
|
+
// 1. User steer is sovereign.
|
|
46
|
+
if (userSteer === 'stop') {
|
|
47
|
+
return {
|
|
48
|
+
...base,
|
|
49
|
+
recommendation: 'wind-down',
|
|
50
|
+
rationale: 'user steer: explicit stop — winding down without claiming done',
|
|
51
|
+
blockers,
|
|
52
|
+
trend,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
if (userSteer === 'continue') {
|
|
56
|
+
return {
|
|
57
|
+
...base,
|
|
58
|
+
recommendation: 'continue',
|
|
59
|
+
rationale: 'user steer: explicit continue — overrides any trend-derived advice',
|
|
60
|
+
blockers,
|
|
61
|
+
trend,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
// 2. Budget exhausted: the driver's stop rule fires regardless; surface it
|
|
65
|
+
// for the operator (raise budget / stop). Never claims done.
|
|
66
|
+
if (budget && budget.iterationsUsed >= budget.iterationsMax) {
|
|
67
|
+
return {
|
|
68
|
+
...base,
|
|
69
|
+
recommendation: 'hold-for-user',
|
|
70
|
+
rationale: `iteration budget exhausted (${budget.iterationsUsed}/${budget.iterationsMax}) — operator decides: raise budget or hand off`,
|
|
71
|
+
blockers,
|
|
72
|
+
trend,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
// 3. Required criteria incomplete → ALWAYS continue. No score-based
|
|
76
|
+
// early-stop, whatever the (experimental) trend says.
|
|
77
|
+
if (blockers.length > 0) {
|
|
78
|
+
const trendNote = verifier
|
|
79
|
+
? ` · verifier trend recorded as context only (tier ${verifier.tier}${verifier.value === null ? '' : `, ${verifier.value.toFixed(2)}`}) — trend is never authority`
|
|
80
|
+
: '';
|
|
81
|
+
return {
|
|
82
|
+
...base,
|
|
83
|
+
recommendation: 'continue',
|
|
84
|
+
rationale: `required criteria incomplete → no early-stop${trendNote}`,
|
|
85
|
+
blockers,
|
|
86
|
+
trend,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
// 4. Fully-evidenced deterministic PASS. The verifier may only add an
|
|
90
|
+
// advisory risk signal — it cannot rewrite the deterministic verdict.
|
|
91
|
+
const blended = verifier?.tier === 'blended' ? verifier.value : null;
|
|
92
|
+
const rejected = verifier?.verdict === 'rejected' || (blended !== null && blended <= REJECTED_BLEND);
|
|
93
|
+
if (rejected) {
|
|
94
|
+
return {
|
|
95
|
+
...base,
|
|
96
|
+
recommendation: 'hold-for-user',
|
|
97
|
+
rationale: 'deterministic evidence is complete and PASSing, but the verifier flags risk — attention requested; the deterministic verdict stands untouched',
|
|
98
|
+
blockers: [],
|
|
99
|
+
trend,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
const confirmed = verifier?.verdict === 'confirmed' || (blended !== null && blended >= CONFIRMED_BLEND);
|
|
103
|
+
return {
|
|
104
|
+
...base,
|
|
105
|
+
recommendation: 'wind-down',
|
|
106
|
+
rationale: confirmed
|
|
107
|
+
? 'required criteria pass with evidence and the verifier confirms — candidate done (final say: driver + CompletionPolicy)'
|
|
108
|
+
: 'required criteria pass with evidence — candidate done on deterministic evidence (final say: driver + CompletionPolicy)',
|
|
109
|
+
blockers: [],
|
|
110
|
+
trend,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=continuationPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"continuationPolicy.js","sourceRoot":"","sources":["../../src/mission/continuationPolicy.ts"],"names":[],"mappings":"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"}
|
package/dist/mission/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mission/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mission/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC"}
|
package/dist/mission/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mission/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mission/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC"}
|
|
@@ -25,6 +25,12 @@ export interface MissionState {
|
|
|
25
25
|
interrupted: boolean;
|
|
26
26
|
/** Direct fork parent (full chain via lineageOf on the store). */
|
|
27
27
|
forkParent?: string;
|
|
28
|
+
/** F4: last advisory continuation record (never authority). */
|
|
29
|
+
lastAdvice?: {
|
|
30
|
+
seq: number;
|
|
31
|
+
recommendation: string;
|
|
32
|
+
rationale: string;
|
|
33
|
+
};
|
|
28
34
|
}
|
|
29
35
|
/**
|
|
30
36
|
* Project a session into mission state.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missionState.d.ts","sourceRoot":"","sources":["../../src/mission/missionState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,sBAAsB,CAAC;AAEtF,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,cAAc,GAAG,MAAM,CAAC;AAIxE,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,uEAAuE;IACvE,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,WAAW,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"missionState.d.ts","sourceRoot":"","sources":["../../src/mission/missionState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,sBAAsB,CAAC;AAEtF,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,cAAc,GAAG,MAAM,CAAC;AAIxE,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,uEAAuE;IACvE,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,WAAW,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,UAAU,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACzE;AAkBD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,iBAAiB,GAAG,YAAY,CA4B9E;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAU3D"}
|
|
@@ -48,6 +48,7 @@ export function deriveMissionState(projection) {
|
|
|
48
48
|
lastSeq: projection.lastSeq,
|
|
49
49
|
interrupted: projection.lastSeq > 0 && projection.endedAt === undefined,
|
|
50
50
|
forkParent: projection.fork?.parentSessionId,
|
|
51
|
+
lastAdvice: projection.missionAdvice[projection.missionAdvice.length - 1],
|
|
51
52
|
};
|
|
52
53
|
}
|
|
53
54
|
/** Serializable mission snapshot (headless/Desktop resume payload). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missionState.js","sourceRoot":"","sources":["../../src/mission/missionState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,YAAY,GAA4B,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"missionState.js","sourceRoot":"","sources":["../../src/mission/missionState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,YAAY,GAA4B,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;AA0B1F,SAAS,YAAY,CAAC,gBAAoD;IACxE,MAAM,OAAO,GAAG,gBAAgB,EAAE,OAAO,IAAI,EAAE,CAAC;IAChD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IACrC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACzE,MAAM,gBAAgB,GACpB,aAAa,GAAG,CAAC;QACjB,cAAc,KAAK,aAAa;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IAC5C,OAAO;QACL,aAAa;QACb,cAAc;QACd,KAAK,EAAE,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,GAAG,aAAa;QAClE,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAA6B;IAC9D,MAAM,gBAAgB,GAAG,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,gBAAgB,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrD,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC,aAAa,CAAC;SAC3C,OAAO,EAAE;SACT,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,YAAkC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAEtE,MAAM,KAAK,GAAiB,QAAQ;QAClC,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,QAAQ;YACR,CAAC,CAAE,QAAQ,CAAC,KAAsB;YAClC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBACnC,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,IAAI,UAAU,CAAC,WAAW,GAAG,CAAC;oBACtD,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,QAAQ,CAAC;IAEnB,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,KAAK;QACL,QAAQ,EAAE,YAAY,CAAC,gBAAgB,CAAC;QACxC,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,MAAM;QAC9C,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,WAAW,EAAE,UAAU,CAAC,OAAO,GAAG,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS;QACvE,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,eAAe;QAC5C,UAAU,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,KAAmB;IACjD,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,MAAM,EAAE,yBAAyB;QACjC,OAAO,EAAE,CAAC;QACV,GAAG,KAAK;KACT,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/session/replay.d.ts
CHANGED
|
@@ -53,6 +53,12 @@ export interface SessionProjection {
|
|
|
53
53
|
seq: number;
|
|
54
54
|
phase: string;
|
|
55
55
|
}>;
|
|
56
|
+
/** F4: advisory continuation advice records (mission.progress events). */
|
|
57
|
+
missionAdvice: Array<{
|
|
58
|
+
seq: number;
|
|
59
|
+
recommendation: string;
|
|
60
|
+
rationale: string;
|
|
61
|
+
}>;
|
|
56
62
|
replans: number;
|
|
57
63
|
issues: ReplayIssue[];
|
|
58
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/session/replay.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExE,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,iBAAiB,GACjB,eAAe,GACf,SAAS,GACT,kBAAkB,CAAC;AAEvB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,4DAA4D;IAC5D,EAAE,EAAE,OAAO,CAAC;CACb;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAoD5E;AAED,mEAAmE;AACnE,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,aAAa,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAmBD,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,EAAE,MAAM,GAAE,WAAW,EAAO,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/session/replay.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExE,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,iBAAiB,GACjB,eAAe,GACf,SAAS,GACT,kBAAkB,CAAC;AAEvB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,4DAA4D;IAC5D,EAAE,EAAE,OAAO,CAAC;CACb;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAoD5E;AAED,mEAAmE;AACnE,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,aAAa,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,0EAA0E;IAC1E,aAAa,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAmBD,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,EAAE,MAAM,GAAE,WAAW,EAAO,GAAG,iBAAiB,CA2DtH"}
|
package/dist/session/replay.js
CHANGED
|
@@ -95,6 +95,7 @@ export function buildProjection(events, issues = []) {
|
|
|
95
95
|
toolResults: 0,
|
|
96
96
|
verifications: [],
|
|
97
97
|
missionPhases: [],
|
|
98
|
+
missionAdvice: [],
|
|
98
99
|
replans: 0,
|
|
99
100
|
issues,
|
|
100
101
|
};
|
|
@@ -130,6 +131,14 @@ export function buildProjection(events, issues = []) {
|
|
|
130
131
|
case 'mission.replan':
|
|
131
132
|
projection.replans += 1;
|
|
132
133
|
break;
|
|
134
|
+
case 'mission.progress':
|
|
135
|
+
projection.missionAdvice.push({
|
|
136
|
+
seq: e.seq,
|
|
137
|
+
recommendation: String(e.data.recommendation ?? ''),
|
|
138
|
+
rationale: String(e.data.rationale ?? ''),
|
|
139
|
+
});
|
|
140
|
+
break;
|
|
141
|
+
break;
|
|
133
142
|
}
|
|
134
143
|
}
|
|
135
144
|
return projection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../../src/session/replay.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../../src/session/replay.ts"],"names":[],"mappings":"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"}
|
package/dist/session/types.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export type SessionActor = z.infer<typeof SessionActorSchema>;
|
|
|
31
31
|
* Surface (model-visible): user.message, assistant.message, tool.call,
|
|
32
32
|
* tool.result, session.compacted. Everything else is state/derived.
|
|
33
33
|
*/
|
|
34
|
-
export declare const SESSION_EVENT_KINDS: readonly ["session.started", "session.resumed", "session.ended", "session.forked", "user.message", "assistant.message", "tool.call", "tool.result", "context.injected", "session.compacted", "task.created", "task.updated", "kraken.task", "council.member", "mission.phase", "mission.replan", "verification.run", "note"];
|
|
34
|
+
export declare const SESSION_EVENT_KINDS: readonly ["session.started", "session.resumed", "session.ended", "session.forked", "user.message", "assistant.message", "tool.call", "tool.result", "context.injected", "session.compacted", "task.created", "task.updated", "kraken.task", "council.member", "mission.phase", "mission.replan", "mission.progress", "verification.run", "verification.evidence", "note"];
|
|
35
35
|
export type SessionEventKind = (typeof SESSION_EVENT_KINDS)[number];
|
|
36
36
|
export declare const SessionEventEnvelopeSchema: z.ZodObject<{
|
|
37
37
|
schemaVersion: z.ZodLiteral<1>;
|
|
@@ -56,7 +56,9 @@ export declare const SessionEventEnvelopeSchema: z.ZodObject<{
|
|
|
56
56
|
"council.member": "council.member";
|
|
57
57
|
"mission.phase": "mission.phase";
|
|
58
58
|
"mission.replan": "mission.replan";
|
|
59
|
+
"mission.progress": "mission.progress";
|
|
59
60
|
"verification.run": "verification.run";
|
|
61
|
+
"verification.evidence": "verification.evidence";
|
|
60
62
|
}>;
|
|
61
63
|
actor: z.ZodObject<{
|
|
62
64
|
type: z.ZodEnum<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,sFAAsF;AACtF,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,eAAO,MAAM,kBAAkB;;;;;;;;;;iBAK7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,sFAAsF;AACtF,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,eAAO,MAAM,kBAAkB;;;;;;;;;;iBAK7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,2WA0BtB,CAAC;AACX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,qFAAqF;AACrF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,0BAA0B;AAC1B,eAAO,MAAM,UAAU,EAAE,YAA+B,CAAC;AACzD,eAAO,MAAM,WAAW,EAAE,YAAgC,CAAC;AAC3D,eAAO,MAAM,YAAY,EAAE,YAAiC,CAAC"}
|
package/dist/session/types.js
CHANGED
|
@@ -42,7 +42,14 @@ export const SESSION_EVENT_KINDS = [
|
|
|
42
42
|
'council.member',
|
|
43
43
|
'mission.phase',
|
|
44
44
|
'mission.replan',
|
|
45
|
+
// F4 (doc §6 advisory continuation): driver → host advice record. State-only
|
|
46
|
+
// (never model-surface): the recommendation must not feed the model loop.
|
|
47
|
+
'mission.progress',
|
|
45
48
|
'verification.run',
|
|
49
|
+
// F3 (ADR-0023 §5 evidence traceability): per-observation state event —
|
|
50
|
+
// the session-log anchor EvidenceRef.seq points at (command output, fs
|
|
51
|
+
// observation, digest). Not model-surface. Schema review per ADR-0021.
|
|
52
|
+
'verification.evidence',
|
|
46
53
|
'note',
|
|
47
54
|
];
|
|
48
55
|
export const SessionEventEnvelopeSchema = z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,sFAAsF;AACtF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7D,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChC,wDAAwD;IACxD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAGH;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,cAAc;IACd,mBAAmB;IACnB,WAAW;IACX,aAAa;IACb,kBAAkB;IAClB,mBAAmB;IACnB,cAAc;IACd,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,MAAM;CACE,CAAC;AAGX,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,6EAA6E;IAC7E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACjC,KAAK,EAAE,kBAAkB;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;CACxC,CAAC,CAAC;AAUH,0BAA0B;AAC1B,MAAM,CAAC,MAAM,UAAU,GAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzD,MAAM,CAAC,MAAM,WAAW,GAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3D,MAAM,CAAC,MAAM,YAAY,GAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,sFAAsF;AACtF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7D,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChC,wDAAwD;IACxD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAGH;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,cAAc;IACd,mBAAmB;IACnB,WAAW;IACX,aAAa;IACb,kBAAkB;IAClB,mBAAmB;IACnB,cAAc;IACd,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,6EAA6E;IAC7E,0EAA0E;IAC1E,kBAAkB;IAClB,kBAAkB;IAClB,wEAAwE;IACxE,uEAAuE;IACvE,uEAAuE;IACvE,uBAAuB;IACvB,MAAM;CACE,CAAC;AAGX,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,6EAA6E;IAC7E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACjC,KAAK,EAAE,kBAAkB;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;CACxC,CAAC,CAAC;AAUH,0BAA0B;AAC1B,MAAM,CAAC,MAAM,UAAU,GAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzD,MAAM,CAAC,MAAM,WAAW,GAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3D,MAAM,CAAC,MAAM,YAAY,GAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* (including "pass without evidence") → BLOCKED. A clean "done" without
|
|
7
7
|
* sufficient evidence is blockable by construction: unknown ≠ pass.
|
|
8
8
|
*/
|
|
9
|
-
import type
|
|
9
|
+
import { type Criterion, type EvidenceRefTier, type VerificationResult } from './types.js';
|
|
10
10
|
export type CompletionVerdict = 'PASS' | 'REPAIR_REQUIRED' | 'BLOCKED';
|
|
11
11
|
export interface CompletionPolicy {
|
|
12
12
|
mode: 'strict';
|
|
@@ -19,11 +19,18 @@ export interface CompletionPolicy {
|
|
|
19
19
|
* (PRINCIPLES P1 — trust tool/terminal output, not narration).
|
|
20
20
|
*/
|
|
21
21
|
admissibleTiers?: readonly EvidenceRefTier[];
|
|
22
|
+
/**
|
|
23
|
+
* F3 / 2.0 (ADR-0026): when true, admissible evidence must ALSO be
|
|
24
|
+
* event-backed — EvidenceRef.seq anchored to a session event. On by
|
|
25
|
+
* default in STRICT_BUILD_POLICY since 2.0.0; set false to restore the
|
|
26
|
+
* alpha behaviour (unanchored notes may still satisfy the gate).
|
|
27
|
+
*/
|
|
28
|
+
requireEventBackedEvidence?: boolean;
|
|
22
29
|
}
|
|
23
30
|
export declare const STRICT_ALL_POLICY: CompletionPolicy;
|
|
24
31
|
/** Tiers produced by deterministic observation: tools, commands, fs, humans. */
|
|
25
32
|
export declare const DETERMINISTIC_EVIDENCE_TIERS: readonly EvidenceRefTier[];
|
|
26
|
-
/** Strict BUILD/mission completion: every required criterion, deterministic evidence
|
|
33
|
+
/** Strict BUILD/mission completion: every required criterion, deterministic + event-backed evidence. */
|
|
27
34
|
export declare const STRICT_BUILD_POLICY: CompletionPolicy;
|
|
28
35
|
export interface UnsatisfiedCriterion {
|
|
29
36
|
id: string;
|
|
@@ -36,6 +43,11 @@ export interface CompletionEvaluation {
|
|
|
36
43
|
unsatisfied: UnsatisfiedCriterion[];
|
|
37
44
|
/** True when every required criterion passed with evidence. */
|
|
38
45
|
evidenceComplete: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* F3 observability: true when every satisfied criterion has at least one
|
|
48
|
+
* admissible evidence ref that is event-backed (seq anchored).
|
|
49
|
+
*/
|
|
50
|
+
eventBackedEvidenceComplete: boolean;
|
|
39
51
|
summary: string;
|
|
40
52
|
}
|
|
41
53
|
export declare function evaluateCompletion(criteria: readonly Criterion[], results: readonly VerificationResult[], policy?: CompletionPolicy): CompletionEvaluation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completionPolicy.d.ts","sourceRoot":"","sources":["../../src/verification/completionPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"completionPolicy.d.ts","sourceRoot":"","sources":["../../src/verification/completionPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,iFAAiF;IACjF,QAAQ,EAAE,GAAG,GAAG,MAAM,EAAE,CAAC;IACzB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,eAAO,MAAM,iBAAiB,EAAE,gBAAoD,CAAC;AAErF,gFAAgF;AAChF,eAAO,MAAM,4BAA4B,EAAE,SAAS,eAAe,EAKlE,CAAC;AAEF,wGAAwG;AACxG,eAAO,MAAM,mBAAmB,EAAE,gBAKjC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,+DAA+D;IAC/D,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,2BAA2B,EAAE,OAAO,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB;AAQD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,OAAO,EAAE,SAAS,kBAAkB,EAAE,EACtC,MAAM,GAAE,gBAAoC,GAC3C,oBAAoB,CA+EtB;AAED,+EAA+E;AAC/E,eAAO,MAAM,eAAe,2BAAqB,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* (including "pass without evidence") → BLOCKED. A clean "done" without
|
|
7
7
|
* sufficient evidence is blockable by construction: unknown ≠ pass.
|
|
8
8
|
*/
|
|
9
|
+
import { isEventBackedEvidence, } from './types.js';
|
|
9
10
|
export const STRICT_ALL_POLICY = { mode: 'strict', required: '*' };
|
|
10
11
|
/** Tiers produced by deterministic observation: tools, commands, fs, humans. */
|
|
11
12
|
export const DETERMINISTIC_EVIDENCE_TIERS = [
|
|
@@ -14,11 +15,12 @@ export const DETERMINISTIC_EVIDENCE_TIERS = [
|
|
|
14
15
|
'fs-observation',
|
|
15
16
|
'human',
|
|
16
17
|
];
|
|
17
|
-
/** Strict BUILD/mission completion: every required criterion, deterministic evidence
|
|
18
|
+
/** Strict BUILD/mission completion: every required criterion, deterministic + event-backed evidence. */
|
|
18
19
|
export const STRICT_BUILD_POLICY = {
|
|
19
20
|
mode: 'strict',
|
|
20
21
|
required: '*',
|
|
21
22
|
admissibleTiers: DETERMINISTIC_EVIDENCE_TIERS,
|
|
23
|
+
requireEventBackedEvidence: true,
|
|
22
24
|
};
|
|
23
25
|
function lastResultById(results) {
|
|
24
26
|
const map = new Map();
|
|
@@ -34,6 +36,7 @@ export function evaluateCompletion(criteria, results, policy = STRICT_ALL_POLICY
|
|
|
34
36
|
const order = new Map(criteria.map((c, i) => [c.id, i]));
|
|
35
37
|
const satisfied = [];
|
|
36
38
|
const unsatisfied = [];
|
|
39
|
+
let unbackedSatisfied = false; // F3: satisfied without event-backed evidence
|
|
37
40
|
const ids = [...requiredIds].sort((a, b) => (order.get(a) ?? 0) - (order.get(b) ?? 0));
|
|
38
41
|
for (const id of ids) {
|
|
39
42
|
const result = byId.get(id);
|
|
@@ -58,7 +61,8 @@ export function evaluateCompletion(criteria, results, policy = STRICT_ALL_POLICY
|
|
|
58
61
|
continue;
|
|
59
62
|
}
|
|
60
63
|
const admissible = policy.admissibleTiers;
|
|
61
|
-
|
|
64
|
+
const tierOk = (e) => !admissible || admissible.includes(e.tier);
|
|
65
|
+
if (!result.evidence.some(tierOk)) {
|
|
62
66
|
const tiers = [...new Set(result.evidence.map((e) => e.tier))].join(', ');
|
|
63
67
|
unsatisfied.push({
|
|
64
68
|
id,
|
|
@@ -67,7 +71,19 @@ export function evaluateCompletion(criteria, results, policy = STRICT_ALL_POLICY
|
|
|
67
71
|
});
|
|
68
72
|
continue;
|
|
69
73
|
}
|
|
74
|
+
// F3: admissible evidence must also be traceable when the policy demands it.
|
|
75
|
+
const backed = result.evidence.filter(tierOk).some(isEventBackedEvidence);
|
|
76
|
+
if (policy.requireEventBackedEvidence && !backed) {
|
|
77
|
+
unsatisfied.push({
|
|
78
|
+
id,
|
|
79
|
+
status: 'unknown',
|
|
80
|
+
reason: 'pass without event-backed evidence — no EvidenceRef.seq anchored to a session event',
|
|
81
|
+
});
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
70
84
|
satisfied.push(id);
|
|
85
|
+
if (!backed)
|
|
86
|
+
unbackedSatisfied = true;
|
|
71
87
|
}
|
|
72
88
|
const verdict = unsatisfied.length === 0
|
|
73
89
|
? 'PASS'
|
|
@@ -79,6 +95,7 @@ export function evaluateCompletion(criteria, results, policy = STRICT_ALL_POLICY
|
|
|
79
95
|
satisfied,
|
|
80
96
|
unsatisfied,
|
|
81
97
|
evidenceComplete: unsatisfied.length === 0,
|
|
98
|
+
eventBackedEvidenceComplete: unsatisfied.length === 0 && !unbackedSatisfied,
|
|
82
99
|
summary: verdict === 'PASS'
|
|
83
100
|
? `complete: ${satisfied.length}/${ids.length} required criteria pass with evidence`
|
|
84
101
|
: `incomplete (${verdict}): ${unsatisfied
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completionPolicy.js","sourceRoot":"","sources":["../../src/verification/completionPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"completionPolicy.js","sourceRoot":"","sources":["../../src/verification/completionPolicy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"criteriaPack.v1.d.ts","sourceRoot":"","sources":["../../src/verification/criteriaPack.v1.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,iBAAsB,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"criteriaPack.v1.d.ts","sourceRoot":"","sources":["../../src/verification/criteriaPack.v1.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,iBAAsB,GAAG,YAAY,CAiDhF"}
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
export const ZELARI_CODING_PACK_ID = 'zelari-coding/v1';
|
|
13
13
|
export function codingCriteriaPack(options = {}) {
|
|
14
14
|
const timeoutMs = options.commandTimeoutMs ?? 600_000;
|
|
15
|
+
/** undefined = use default; null = explicitly unbound (no deterministic check). */
|
|
16
|
+
const withDefault = (o, d) => (o === undefined ? d : o);
|
|
15
17
|
const command = (command) => command ? { kind: 'command', command, timeoutMs } : undefined;
|
|
16
18
|
const criteria = [
|
|
17
19
|
{
|
|
@@ -19,21 +21,21 @@ export function codingCriteriaPack(options = {}) {
|
|
|
19
21
|
text: 'Static checks (typecheck) pass with no new errors.',
|
|
20
22
|
source: 'criteria-pack',
|
|
21
23
|
required: true,
|
|
22
|
-
check: command(options.typecheckCommand
|
|
24
|
+
check: command(withDefault(options.typecheckCommand, 'npm run typecheck')),
|
|
23
25
|
},
|
|
24
26
|
{
|
|
25
27
|
id: 'correctness.specification',
|
|
26
28
|
text: 'The test suite passes — behavior matches the specification.',
|
|
27
29
|
source: 'criteria-pack',
|
|
28
30
|
required: true,
|
|
29
|
-
check: command(options.testCommand
|
|
31
|
+
check: command(withDefault(options.testCommand, 'npm run test')),
|
|
30
32
|
},
|
|
31
33
|
{
|
|
32
34
|
id: 'correctness.observable-output',
|
|
33
35
|
text: 'The project builds successfully (observable output artifact).',
|
|
34
36
|
source: 'criteria-pack',
|
|
35
37
|
required: true,
|
|
36
|
-
check: command(options.buildCommand
|
|
38
|
+
check: command(withDefault(options.buildCommand, 'npm run build')),
|
|
37
39
|
},
|
|
38
40
|
{
|
|
39
41
|
id: 'quality.scope-discipline',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"criteriaPack.v1.js","sourceRoot":"","sources":["../../src/verification/criteriaPack.v1.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAgBxD,MAAM,UAAU,kBAAkB,CAAC,UAA6B,EAAE;IAChE,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC;IACtD,MAAM,OAAO,GAAG,CAAC,OAAkC,EAAsB,EAAE,CACzE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhE,MAAM,QAAQ,GAAgB;QAC5B;YACE,EAAE,EAAE,2BAA2B;YAC/B,IAAI,EAAE,oDAAoD;YAC1D,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"criteriaPack.v1.js","sourceRoot":"","sources":["../../src/verification/criteriaPack.v1.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAgBxD,MAAM,UAAU,kBAAkB,CAAC,UAA6B,EAAE;IAChE,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC;IACtD,mFAAmF;IACnF,MAAM,WAAW,GAAG,CAAC,CAA4B,EAAE,CAAS,EAAiB,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,MAAM,OAAO,GAAG,CAAC,OAAkC,EAAsB,EAAE,CACzE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhE,MAAM,QAAQ,GAAgB;QAC5B;YACE,EAAE,EAAE,2BAA2B;YAC/B,IAAI,EAAE,oDAAoD;YAC1D,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;SAC3E;QACD;YACE,EAAE,EAAE,2BAA2B;YAC/B,IAAI,EAAE,6DAA6D;YACnE,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;SACjE;QACD;YACE,EAAE,EAAE,+BAA+B;YACnC,IAAI,EAAE,+DAA+D;YACrE,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;SACnE;QACD;YACE,EAAE,EAAE,0BAA0B;YAC9B,IAAI,EAAE,uDAAuD;YAC7D,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;SACrC;QACD;YACE,EAAE,EAAE,+BAA+B;YACnC,IAAI,EAAE,iEAAiE;YACvE,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,gEAAgE;aACzE;SACF;KACF,CAAC;IAEF,OAAO,EAAE,EAAE,EAAE,qBAAqB,EAAE,QAAQ,EAAE,CAAC;AACjD,CAAC"}
|
|
@@ -6,6 +6,12 @@
|
|
|
6
6
|
* timeout) is honestly `unknown`. Every result carries EvidenceRef with a
|
|
7
7
|
* sha256 digest of the captured output, and a `verification.run` event is
|
|
8
8
|
* appended to the session spine when an emitter is configured.
|
|
9
|
+
*
|
|
10
|
+
* F3 (ADR-0023 §5): every executed observation is ALSO appended as a single
|
|
11
|
+
* `verification.evidence` state event (command line, exit code, digest,
|
|
12
|
+
* output tails) and, when the emitter resolves to the appended envelope, the
|
|
13
|
+
* assigned seq anchors the EvidenceRef — evidence is traceable to the
|
|
14
|
+
* session event that captured it, not to a narrated summary.
|
|
9
15
|
*/
|
|
10
16
|
import type { FsProvider, ShellProvider } from '../runtime/providers.js';
|
|
11
17
|
import type { SessionEventInput } from '../session/types.js';
|
|
@@ -15,7 +21,11 @@ export interface VerificationServices {
|
|
|
15
21
|
fs?: FsProvider;
|
|
16
22
|
}
|
|
17
23
|
export interface VerificationEngineOptions {
|
|
18
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* Session spine emitter (ExecutionContext.appendSessionEvent). May resolve
|
|
26
|
+
* to the appended envelope (or any `{ seq }`) — the seq anchors the
|
|
27
|
+
* EvidenceRef; a void/absent result leaves the ref unanchored.
|
|
28
|
+
*/
|
|
19
29
|
emit?: (input: SessionEventInput) => Promise<unknown>;
|
|
20
30
|
now?: () => number;
|
|
21
31
|
sha256?: (input: string) => string;
|
|
@@ -28,8 +38,20 @@ export declare class VerificationEngine {
|
|
|
28
38
|
evaluate(criteria: readonly Criterion[], context?: {
|
|
29
39
|
packId?: string;
|
|
30
40
|
}): Promise<VerificationResult[]>;
|
|
41
|
+
/**
|
|
42
|
+
* F3: append one `verification.evidence` state event with the raw
|
|
43
|
+
* observation and resolve to its session seq when the emitter returns it.
|
|
44
|
+
* Spine failures degrade to `undefined` — an unreachable log must never
|
|
45
|
+
* fail verification, it only leaves the evidence unanchored.
|
|
46
|
+
*/
|
|
47
|
+
private emitEvidence;
|
|
31
48
|
private evaluateOne;
|
|
32
49
|
private evalCommand;
|
|
50
|
+
/**
|
|
51
|
+
* F3: the fs observation is logged to the spine (path, existence, optional
|
|
52
|
+
* content digest) and the returned ref carries the event seq when the
|
|
53
|
+
* emitter resolved one.
|
|
54
|
+
*/
|
|
33
55
|
private fsEvidence;
|
|
34
56
|
private evalFileExists;
|
|
35
57
|
private evalFileAbsent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/verification/engine.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/verification/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAe,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE7E,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,EAAE,CAAC,EAAE,UAAU,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC;AAUD,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,QAAQ,GAAE,oBAAyB,EACnC,OAAO,GAAE,yBAA8B;IAG1D,4EAA4E;IACtE,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAkChH;;;;;OAKG;YACW,YAAY;YAiBZ,WAAW;YAqCX,WAAW;IAmDzB;;;;OAIG;YACW,UAAU;YAkBV,cAAc;YAmBd,cAAc;YAiBd,gBAAgB;CAyB/B"}
|
|
@@ -6,6 +6,12 @@
|
|
|
6
6
|
* timeout) is honestly `unknown`. Every result carries EvidenceRef with a
|
|
7
7
|
* sha256 digest of the captured output, and a `verification.run` event is
|
|
8
8
|
* appended to the session spine when an emitter is configured.
|
|
9
|
+
*
|
|
10
|
+
* F3 (ADR-0023 §5): every executed observation is ALSO appended as a single
|
|
11
|
+
* `verification.evidence` state event (command line, exit code, digest,
|
|
12
|
+
* output tails) and, when the emitter resolves to the appended envelope, the
|
|
13
|
+
* assigned seq anchors the EvidenceRef — evidence is traceable to the
|
|
14
|
+
* session event that captured it, not to a narrated summary.
|
|
9
15
|
*/
|
|
10
16
|
import { createHash } from 'node:crypto';
|
|
11
17
|
function defaultSha256(input) {
|
|
@@ -28,21 +34,57 @@ export class VerificationEngine {
|
|
|
28
34
|
results.push(await this.evaluateOne(criterion));
|
|
29
35
|
}
|
|
30
36
|
if (this.options.emit) {
|
|
31
|
-
|
|
32
|
-
|
|
37
|
+
// Degrade-and-stop discipline: a failing spine must never fail
|
|
38
|
+
// verification — the results stand, the run summary is simply not logged.
|
|
39
|
+
try {
|
|
40
|
+
await this.options.emit({
|
|
41
|
+
kind: 'verification.run',
|
|
42
|
+
actor: { type: 'system', role: 'verification' },
|
|
43
|
+
data: {
|
|
44
|
+
source: 'deterministic-engine',
|
|
45
|
+
packId: context.packId,
|
|
46
|
+
results: results.map((r) => ({
|
|
47
|
+
criterionId: r.criterionId,
|
|
48
|
+
status: r.status,
|
|
49
|
+
evidence: r.evidence.map((e) => ({
|
|
50
|
+
tier: e.tier,
|
|
51
|
+
ref: e.ref,
|
|
52
|
+
digest: e.digest,
|
|
53
|
+
...(e.seq !== undefined ? { seq: e.seq } : {}),
|
|
54
|
+
})),
|
|
55
|
+
})),
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
/* spine unreachable — results stand, summary not logged */
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return results;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* F3: append one `verification.evidence` state event with the raw
|
|
67
|
+
* observation and resolve to its session seq when the emitter returns it.
|
|
68
|
+
* Spine failures degrade to `undefined` — an unreachable log must never
|
|
69
|
+
* fail verification, it only leaves the evidence unanchored.
|
|
70
|
+
*/
|
|
71
|
+
async emitEvidence(data) {
|
|
72
|
+
if (!this.options.emit)
|
|
73
|
+
return undefined;
|
|
74
|
+
try {
|
|
75
|
+
const out = await this.options.emit({
|
|
76
|
+
kind: 'verification.evidence',
|
|
33
77
|
actor: { type: 'system', role: 'verification' },
|
|
34
|
-
data
|
|
35
|
-
source: 'deterministic-engine',
|
|
36
|
-
packId: context.packId,
|
|
37
|
-
results: results.map((r) => ({
|
|
38
|
-
criterionId: r.criterionId,
|
|
39
|
-
status: r.status,
|
|
40
|
-
evidence: r.evidence.map((e) => ({ tier: e.tier, ref: e.ref, digest: e.digest })),
|
|
41
|
-
})),
|
|
42
|
-
},
|
|
78
|
+
data,
|
|
43
79
|
});
|
|
80
|
+
if (out && typeof out === 'object' && typeof out.seq === 'number') {
|
|
81
|
+
return out.seq;
|
|
82
|
+
}
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return undefined;
|
|
44
87
|
}
|
|
45
|
-
return results;
|
|
46
88
|
}
|
|
47
89
|
async evaluateOne(criterion) {
|
|
48
90
|
const started = this.options.now?.() ?? Date.now();
|
|
@@ -84,12 +126,24 @@ export class VerificationEngine {
|
|
|
84
126
|
return done({ status: 'unknown', evidence: [], detail: 'shell provider unavailable' });
|
|
85
127
|
}
|
|
86
128
|
const result = await shell.exec(check.command, { timeoutMs: check.timeoutMs });
|
|
129
|
+
const digest = sha256(result.stdout);
|
|
130
|
+
// F3: the raw observation lands on the spine; its seq anchors the ref.
|
|
131
|
+
const seq = await this.emitEvidence({
|
|
132
|
+
observation: 'command',
|
|
133
|
+
command: check.command,
|
|
134
|
+
exitCode: result.exitCode,
|
|
135
|
+
timedOut: result.timedOut,
|
|
136
|
+
digest,
|
|
137
|
+
stdoutTail: tail(result.stdout),
|
|
138
|
+
stderrTail: tail(result.stderr),
|
|
139
|
+
});
|
|
87
140
|
const evidence = [
|
|
88
141
|
{
|
|
89
142
|
tier: 'command-output',
|
|
90
143
|
ref: `${check.command} → exit ${result.exitCode ?? 'signal'}`,
|
|
91
144
|
capturedAt: Date.now(),
|
|
92
|
-
digest
|
|
145
|
+
digest,
|
|
146
|
+
...(seq !== undefined ? { seq } : {}),
|
|
93
147
|
},
|
|
94
148
|
];
|
|
95
149
|
if (result.timedOut) {
|
|
@@ -112,8 +166,21 @@ export class VerificationEngine {
|
|
|
112
166
|
}
|
|
113
167
|
return done({ status: 'pass', evidence });
|
|
114
168
|
}
|
|
115
|
-
|
|
116
|
-
|
|
169
|
+
/**
|
|
170
|
+
* F3: the fs observation is logged to the spine (path, existence, optional
|
|
171
|
+
* content digest) and the returned ref carries the event seq when the
|
|
172
|
+
* emitter resolved one.
|
|
173
|
+
*/
|
|
174
|
+
async fsEvidence(observation, path, sha256, content, extra = {}) {
|
|
175
|
+
const digest = sha256 && content !== undefined ? sha256(content) : undefined;
|
|
176
|
+
const seq = await this.emitEvidence({ observation, path, ...extra, ...(digest ? { digest } : {}) });
|
|
177
|
+
return {
|
|
178
|
+
tier: 'fs-observation',
|
|
179
|
+
ref: path,
|
|
180
|
+
capturedAt: Date.now(),
|
|
181
|
+
...(digest ? { digest } : {}),
|
|
182
|
+
...(seq !== undefined ? { seq } : {}),
|
|
183
|
+
};
|
|
117
184
|
}
|
|
118
185
|
async evalFileExists(check, done) {
|
|
119
186
|
const sha256 = this.options.sha256 ?? defaultSha256;
|
|
@@ -121,19 +188,29 @@ export class VerificationEngine {
|
|
|
121
188
|
if (!fs)
|
|
122
189
|
return done({ status: 'unknown', evidence: [], detail: 'fs provider unavailable' });
|
|
123
190
|
const exists = await fs.exists(check.path);
|
|
124
|
-
if (!exists)
|
|
191
|
+
if (!exists) {
|
|
192
|
+
await this.emitEvidence({ observation: 'file-exists', path: check.path, exists: false });
|
|
125
193
|
return done({ status: 'fail', evidence: [], detail: `file not found: ${check.path}` });
|
|
194
|
+
}
|
|
126
195
|
const content = await fs.readFile(check.path).catch(() => '');
|
|
127
|
-
return done({
|
|
196
|
+
return done({
|
|
197
|
+
status: 'pass',
|
|
198
|
+
evidence: [await this.fsEvidence('file-exists', check.path, sha256, content, { exists: true })],
|
|
199
|
+
});
|
|
128
200
|
}
|
|
129
201
|
async evalFileAbsent(check, done) {
|
|
130
202
|
const fs = this.services.fs;
|
|
131
203
|
if (!fs)
|
|
132
204
|
return done({ status: 'unknown', evidence: [], detail: 'fs provider unavailable' });
|
|
133
205
|
const exists = await fs.exists(check.path);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
206
|
+
if (exists) {
|
|
207
|
+
await this.emitEvidence({ observation: 'file-absent', path: check.path, exists: true });
|
|
208
|
+
return done({ status: 'fail', evidence: [], detail: `file still present: ${check.path}` });
|
|
209
|
+
}
|
|
210
|
+
return done({
|
|
211
|
+
status: 'pass',
|
|
212
|
+
evidence: [await this.fsEvidence('file-absent', check.path, undefined, undefined, { exists: false })],
|
|
213
|
+
});
|
|
137
214
|
}
|
|
138
215
|
async evalFileContains(check, done) {
|
|
139
216
|
const sha256 = this.options.sha256 ?? defaultSha256;
|
|
@@ -145,9 +222,10 @@ export class VerificationEngine {
|
|
|
145
222
|
content = await fs.readFile(check.path);
|
|
146
223
|
}
|
|
147
224
|
catch {
|
|
225
|
+
await this.emitEvidence({ observation: 'file-contains', path: check.path, readable: false });
|
|
148
226
|
return done({ status: 'fail', evidence: [], detail: `file not readable: ${check.path}` });
|
|
149
227
|
}
|
|
150
|
-
const evidence = [this.fsEvidence(check.path,
|
|
228
|
+
const evidence = [await this.fsEvidence('file-contains', check.path, sha256, content)];
|
|
151
229
|
let hit;
|
|
152
230
|
try {
|
|
153
231
|
hit = new RegExp(check.pattern, 'm').test(content);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/verification/engine.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/verification/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionEvidence.d.ts","sourceRoot":"","sources":["../../src/verification/sessionEvidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EAElB,MAAM,uBAAuB,CAAC;AAE/B,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,8DAA8D;AAC9D,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACvC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9D,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AA8BD;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,qBAAqB,GACxB,8BAA8B,GAAG,IAAI,CA8BvC;AAED,qEAAqE;AACrE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,qBAAqB,EAAE,GACvC,8BAA8B,GAAG,IAAI,CAQvC;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,8BAA8B,GACnC,oBAAoB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"sessionEvidence.d.ts","sourceRoot":"","sources":["../../src/verification/sessionEvidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EAElB,MAAM,uBAAuB,CAAC;AAE/B,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,8DAA8D;AAC9D,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACvC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9D,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AA8BD;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,qBAAqB,GACxB,8BAA8B,GAAG,IAAI,CA8BvC;AAED,qEAAqE;AACrE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,qBAAqB,EAAE,GACvC,8BAA8B,GAAG,IAAI,CAQvC;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,8BAA8B,GACnC,oBAAoB,GAAG,IAAI,CAqB7B"}
|
|
@@ -92,6 +92,9 @@ export function snapshotToCompletionEvaluation(snap) {
|
|
|
92
92
|
satisfied: [...snap.satisfied],
|
|
93
93
|
unsatisfied,
|
|
94
94
|
evidenceComplete: snap.evidenceComplete && unsatisfied.length === 0 && verdict === 'PASS',
|
|
95
|
+
// F3: snapshot summaries do not carry per-ref seq — event-backedness is
|
|
96
|
+
// auditable from the raw spine events (verification.evidence), unknown here.
|
|
97
|
+
eventBackedEvidenceComplete: false,
|
|
95
98
|
summary: snap.summary,
|
|
96
99
|
};
|
|
97
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionEvidence.js","sourceRoot":"","sources":["../../src/verification/sessionEvidence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sessionEvidence.js","sourceRoot":"","sources":["../../src/verification/sessionEvidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,6 +114,19 @@ export declare const EvidenceRefSchema: z.ZodObject<{
|
|
|
114
114
|
digest: z.ZodOptional<z.ZodString>;
|
|
115
115
|
}, z.core.$strip>;
|
|
116
116
|
export type EvidenceRef = z.infer<typeof EvidenceRefSchema>;
|
|
117
|
+
/**
|
|
118
|
+
* Tiers that capture raw tool/command/fs observations: in the 2.0 path their
|
|
119
|
+
* evidence is complete only when event-backed — EvidenceRef.seq must anchor
|
|
120
|
+
* to the session event that captured the output (F3 / §5: "the note is
|
|
121
|
+
* never the tool output").
|
|
122
|
+
*/
|
|
123
|
+
export declare const EVENT_BACKED_EVIDENCE_TIERS: readonly EvidenceRefTier[];
|
|
124
|
+
/**
|
|
125
|
+
* True when the ref may count as traceable evidence: advisory tiers
|
|
126
|
+
* (verifier-llm, human) never require a session event; event-backed tiers
|
|
127
|
+
* require a positive EvidenceRef.seq.
|
|
128
|
+
*/
|
|
129
|
+
export declare function isEventBackedEvidence(ref: EvidenceRef): boolean;
|
|
117
130
|
export declare const VerificationStatusSchema: z.ZodEnum<{
|
|
118
131
|
unknown: "unknown";
|
|
119
132
|
pass: "pass";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/verification/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;EAMhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,kBAAkB;;;;;;iBAQ7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;iBAKlC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH,eAAO,MAAM,eAAe;;;iBAG1B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;2BAMnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,kBAAkB;;;;;;EAM7B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/verification/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;EAMhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,kBAAkB;;;;;;iBAQ7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;iBAKlC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH,eAAO,MAAM,eAAe;;;iBAG1B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;2BAMnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,kBAAkB;;;;;;EAM7B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;iBAa5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,eAAe,EAIjE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAG/D;AAED,eAAO,MAAM,wBAAwB;;;;EAAsC,CAAC;AAC5E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,wBAAwB;;;;;EAKnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
|
@@ -64,7 +64,11 @@ export const EvidenceTierSchema = z.enum([
|
|
|
64
64
|
'human',
|
|
65
65
|
]);
|
|
66
66
|
export const EvidenceRefSchema = z.object({
|
|
67
|
-
/**
|
|
67
|
+
/**
|
|
68
|
+
* Seq of the originating session event. Required (by policy) for
|
|
69
|
+
* event-backed tiers on the 2.0 path: evidence without a session anchor
|
|
70
|
+
* is narration, not traceable output (F3 / ADR-0023 §5).
|
|
71
|
+
*/
|
|
68
72
|
seq: z.number().int().positive().optional(),
|
|
69
73
|
tier: EvidenceTierSchema,
|
|
70
74
|
/** Human-readable pointer: command line, file path, tool call id… */
|
|
@@ -73,6 +77,27 @@ export const EvidenceRefSchema = z.object({
|
|
|
73
77
|
/** sha256 of the captured output (audit chain). */
|
|
74
78
|
digest: z.string().optional(),
|
|
75
79
|
});
|
|
80
|
+
/**
|
|
81
|
+
* Tiers that capture raw tool/command/fs observations: in the 2.0 path their
|
|
82
|
+
* evidence is complete only when event-backed — EvidenceRef.seq must anchor
|
|
83
|
+
* to the session event that captured the output (F3 / §5: "the note is
|
|
84
|
+
* never the tool output").
|
|
85
|
+
*/
|
|
86
|
+
export const EVENT_BACKED_EVIDENCE_TIERS = [
|
|
87
|
+
'tool-output',
|
|
88
|
+
'command-output',
|
|
89
|
+
'fs-observation',
|
|
90
|
+
];
|
|
91
|
+
/**
|
|
92
|
+
* True when the ref may count as traceable evidence: advisory tiers
|
|
93
|
+
* (verifier-llm, human) never require a session event; event-backed tiers
|
|
94
|
+
* require a positive EvidenceRef.seq.
|
|
95
|
+
*/
|
|
96
|
+
export function isEventBackedEvidence(ref) {
|
|
97
|
+
if (!EVENT_BACKED_EVIDENCE_TIERS.includes(ref.tier))
|
|
98
|
+
return true;
|
|
99
|
+
return typeof ref.seq === 'number' && ref.seq > 0;
|
|
100
|
+
}
|
|
76
101
|
export const VerificationStatusSchema = z.enum(['pass', 'fail', 'unknown']);
|
|
77
102
|
export const VerificationSourceSchema = z.enum([
|
|
78
103
|
'deterministic-engine',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/verification/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1C,MAAM;IACN,MAAM;IACN,kBAAkB;IAClB,SAAS;IACT,eAAe;CAChB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,sCAAsC;IACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACvC,iCAAiC;IACjC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,uCAAuC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACnE,kBAAkB;IAClB,qBAAqB;IACrB,uBAAuB;IACvB,qBAAqB;IACrB,eAAe;CAChB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,wEAAwE;IACxE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,qBAAqB;IAC7B,qEAAqE;IACrE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,KAAK,EAAE,wBAAwB,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC;IACvC,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,OAAO;CACR,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/verification/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zelari/core",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "Zelari Code core library — provider-neutral agent loop (AgentHarness), multi-agent council orchestration, and built-in skills. Used by the zelari-code CLI; consumable by other agent frontends.",
|
|
5
5
|
"author": "Anathema Studio <https://anathema-studio.com/>",
|
|
6
6
|
"license": "Apache-2.0",
|