@zelari/core 2.4.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/AgentHarness.d.ts +27 -0
- package/dist/core/AgentHarness.d.ts.map +1 -1
- package/dist/core/AgentHarness.js +43 -0
- package/dist/core/AgentHarness.js.map +1 -1
- package/dist/mission/budgetContinuation.d.ts +36 -0
- package/dist/mission/budgetContinuation.d.ts.map +1 -0
- package/dist/mission/budgetContinuation.js +66 -0
- package/dist/mission/budgetContinuation.js.map +1 -0
- package/dist/runtime/harnessManifest.d.ts +91 -0
- package/dist/runtime/harnessManifest.d.ts.map +1 -0
- package/dist/runtime/harnessManifest.js +113 -0
- package/dist/runtime/harnessManifest.js.map +1 -0
- package/dist/runtime/index.d.ts +4 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +4 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/profiles.d.ts +7 -0
- package/dist/runtime/profiles.d.ts.map +1 -1
- package/dist/runtime/profiles.js +10 -0
- package/dist/runtime/profiles.js.map +1 -1
- package/dist/runtime/resourceBudget.d.ts +69 -0
- package/dist/runtime/resourceBudget.d.ts.map +1 -0
- package/dist/runtime/resourceBudget.js +98 -0
- package/dist/runtime/resourceBudget.js.map +1 -0
- package/dist/runtime/resourcePolicy.d.ts +56 -0
- package/dist/runtime/resourcePolicy.d.ts.map +1 -0
- package/dist/runtime/resourcePolicy.js +77 -0
- package/dist/runtime/resourcePolicy.js.map +1 -0
- package/dist/session/agentAdapter.d.ts +2 -2
- package/dist/session/agentAdapter.d.ts.map +1 -1
- package/dist/session/agentAdapter.js +10 -2
- package/dist/session/agentAdapter.js.map +1 -1
- package/dist/session/compaction.d.ts +36 -0
- package/dist/session/compaction.d.ts.map +1 -0
- package/dist/session/compaction.js +120 -0
- package/dist/session/compaction.js.map +1 -0
- package/dist/session/compactionState.d.ts +50 -0
- package/dist/session/compactionState.d.ts.map +1 -0
- package/dist/session/compactionState.js +243 -0
- package/dist/session/compactionState.js.map +1 -0
- package/dist/session/index.d.ts +2 -0
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +2 -0
- package/dist/session/index.js.map +1 -1
- package/dist/session/invariants.d.ts +5 -0
- package/dist/session/invariants.d.ts.map +1 -1
- package/dist/session/invariants.js +152 -0
- package/dist/session/invariants.js.map +1 -1
- package/dist/session/modelSurface.d.ts +33 -4
- package/dist/session/modelSurface.d.ts.map +1 -1
- package/dist/session/modelSurface.js +98 -4
- package/dist/session/modelSurface.js.map +1 -1
- package/dist/session/taskContract.d.ts +104 -0
- package/dist/session/taskContract.d.ts.map +1 -0
- package/dist/session/taskContract.js +129 -0
- package/dist/session/taskContract.js.map +1 -0
- package/dist/session/types.d.ts +9 -1
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js +17 -0
- package/dist/session/types.js.map +1 -1
- package/dist/shared/events.d.ts +27 -0
- package/dist/shared/events.d.ts.map +1 -1
- package/dist/shared/events.js.map +1 -1
- package/dist/verification/index.d.ts +1 -0
- package/dist/verification/index.d.ts.map +1 -1
- package/dist/verification/index.js +1 -0
- package/dist/verification/index.js.map +1 -1
- package/dist/verification/metrics.d.ts +20 -0
- package/dist/verification/metrics.d.ts.map +1 -1
- package/dist/verification/metrics.js +18 -0
- package/dist/verification/metrics.js.map +1 -1
- package/dist/verification/resourceReserveGate.d.ts +39 -0
- package/dist/verification/resourceReserveGate.d.ts.map +1 -0
- package/dist/verification/resourceReserveGate.js +56 -0
- package/dist/verification/resourceReserveGate.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* session/compaction.ts — durable model-surface replacement (compact the
|
|
3
|
+
* projection, never the ledger).
|
|
4
|
+
*
|
|
5
|
+
* A `session.compacted` event WITH `{fromSeq,toSeq}` shadows that closed
|
|
6
|
+
* interval in `deriveMessages()`. Later coverings swallow earlier
|
|
7
|
+
* checkpoints in their range (chaining). Events without a range stay
|
|
8
|
+
* legacy: the summary is appended, nothing is shadowed.
|
|
9
|
+
*/
|
|
10
|
+
import type { SessionEventEnvelope } from './types.js';
|
|
11
|
+
export type CompactionStrategy = 'extractive' | 'llm';
|
|
12
|
+
export type CompactionCheckpointRole = 'user' | 'system';
|
|
13
|
+
export interface CompactedInterval {
|
|
14
|
+
/** Seq of the `session.compacted` event itself (must be > toSeq). */
|
|
15
|
+
seq: number;
|
|
16
|
+
fromSeq: number;
|
|
17
|
+
toSeq: number;
|
|
18
|
+
role: CompactionCheckpointRole;
|
|
19
|
+
content: string;
|
|
20
|
+
strategy?: CompactionStrategy;
|
|
21
|
+
sourceEventSeqs?: number[];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Parse a range-bearing compact event. Returns null for legacy `{summary}`
|
|
25
|
+
* notes (no shadowing) and for malformed ranges.
|
|
26
|
+
*/
|
|
27
|
+
export declare function parseCompactedEvent(event: SessionEventEnvelope): CompactedInterval | null;
|
|
28
|
+
/**
|
|
29
|
+
* Effective coverings: later compaction that contains an earlier compact
|
|
30
|
+
* event's seq swallows that checkpoint (nested / chained).
|
|
31
|
+
*/
|
|
32
|
+
export declare function coveringCompactions(events: readonly SessionEventEnvelope[]): CompactedInterval[];
|
|
33
|
+
export declare function shadowedSeqSet(coverings: readonly CompactedInterval[]): Set<number>;
|
|
34
|
+
export declare function isSeqShadowed(seq: number, coverings: readonly CompactedInterval[]): boolean;
|
|
35
|
+
export * from './compactionState.js';
|
|
36
|
+
//# sourceMappingURL=compaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../src/session/compaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,KAAK,CAAC;AACtD,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AA6BD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,IAAI,CAmBzF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,oBAAoB,EAAE,GACtC,iBAAiB,EAAE,CAwCrB;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,iBAAiB,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAMnF;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,iBAAiB,EAAE,GAAG,OAAO,CAE3F;AAED,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* session/compaction.ts — durable model-surface replacement (compact the
|
|
3
|
+
* projection, never the ledger).
|
|
4
|
+
*
|
|
5
|
+
* A `session.compacted` event WITH `{fromSeq,toSeq}` shadows that closed
|
|
6
|
+
* interval in `deriveMessages()`. Later coverings swallow earlier
|
|
7
|
+
* checkpoints in their range (chaining). Events without a range stay
|
|
8
|
+
* legacy: the summary is appended, nothing is shadowed.
|
|
9
|
+
*/
|
|
10
|
+
function asPositiveInt(value) {
|
|
11
|
+
return typeof value === 'number' && Number.isInteger(value) && value > 0 ? value : undefined;
|
|
12
|
+
}
|
|
13
|
+
function checkpointContent(data) {
|
|
14
|
+
const cp = data.checkpoint;
|
|
15
|
+
if (cp && typeof cp === 'object') {
|
|
16
|
+
const content = cp.content;
|
|
17
|
+
if (typeof content === 'string')
|
|
18
|
+
return content;
|
|
19
|
+
}
|
|
20
|
+
if (typeof data.summary === 'string')
|
|
21
|
+
return data.summary;
|
|
22
|
+
return '[session compacted]';
|
|
23
|
+
}
|
|
24
|
+
function checkpointRole(data) {
|
|
25
|
+
const cp = data.checkpoint;
|
|
26
|
+
if (cp && typeof cp === 'object') {
|
|
27
|
+
const role = cp.role;
|
|
28
|
+
if (role === 'user' || role === 'system')
|
|
29
|
+
return role;
|
|
30
|
+
}
|
|
31
|
+
return 'system';
|
|
32
|
+
}
|
|
33
|
+
function strategyOf(data) {
|
|
34
|
+
return data.strategy === 'extractive' || data.strategy === 'llm' ? data.strategy : undefined;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Parse a range-bearing compact event. Returns null for legacy `{summary}`
|
|
38
|
+
* notes (no shadowing) and for malformed ranges.
|
|
39
|
+
*/
|
|
40
|
+
export function parseCompactedEvent(event) {
|
|
41
|
+
if (event.kind !== 'session.compacted')
|
|
42
|
+
return null;
|
|
43
|
+
const fromSeq = asPositiveInt(event.data.fromSeq);
|
|
44
|
+
const toSeq = asPositiveInt(event.data.toSeq);
|
|
45
|
+
if (fromSeq === undefined || toSeq === undefined || fromSeq > toSeq)
|
|
46
|
+
return null;
|
|
47
|
+
if (event.seq <= toSeq)
|
|
48
|
+
return null;
|
|
49
|
+
const sourceRaw = event.data.sourceEventSeqs;
|
|
50
|
+
const sourceEventSeqs = Array.isArray(sourceRaw)
|
|
51
|
+
? sourceRaw.filter((n) => typeof n === 'number' && Number.isInteger(n) && n > 0)
|
|
52
|
+
: undefined;
|
|
53
|
+
return {
|
|
54
|
+
seq: event.seq,
|
|
55
|
+
fromSeq,
|
|
56
|
+
toSeq,
|
|
57
|
+
role: checkpointRole(event.data),
|
|
58
|
+
content: checkpointContent(event.data),
|
|
59
|
+
...(strategyOf(event.data) ? { strategy: strategyOf(event.data) } : {}),
|
|
60
|
+
...(sourceEventSeqs && sourceEventSeqs.length > 0 ? { sourceEventSeqs } : {}),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Effective coverings: later compaction that contains an earlier compact
|
|
65
|
+
* event's seq swallows that checkpoint (nested / chained).
|
|
66
|
+
*/
|
|
67
|
+
export function coveringCompactions(events) {
|
|
68
|
+
const effective = events
|
|
69
|
+
.map(parseCompactedEvent)
|
|
70
|
+
.filter((c) => c !== null)
|
|
71
|
+
.map((c) => ({
|
|
72
|
+
...c,
|
|
73
|
+
...(c.sourceEventSeqs ? { sourceEventSeqs: [...c.sourceEventSeqs] } : {}),
|
|
74
|
+
}))
|
|
75
|
+
.sort((a, b) => a.seq - b.seq);
|
|
76
|
+
// Resolve to a fixed point. When a later checkpoint covers the seq of an
|
|
77
|
+
// earlier checkpoint, it inherits the earlier checkpoint's raw interval.
|
|
78
|
+
// Otherwise C2=101..180 swallowing C1(seq=101, range=1..100) would expose
|
|
79
|
+
// raw 1..100 again after C1 disappeared from the visible surface.
|
|
80
|
+
let changed = true;
|
|
81
|
+
while (changed) {
|
|
82
|
+
changed = false;
|
|
83
|
+
for (let i = 0; i < effective.length; i++) {
|
|
84
|
+
const earlier = effective[i];
|
|
85
|
+
let target;
|
|
86
|
+
for (let j = i + 1; j < effective.length; j++) {
|
|
87
|
+
const later = effective[j];
|
|
88
|
+
if (earlier.seq >= later.fromSeq && earlier.seq <= later.toSeq) {
|
|
89
|
+
target = later;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (!target)
|
|
93
|
+
continue;
|
|
94
|
+
target.fromSeq = Math.min(target.fromSeq, earlier.fromSeq);
|
|
95
|
+
target.toSeq = Math.max(target.toSeq, earlier.toSeq);
|
|
96
|
+
if (earlier.sourceEventSeqs?.length) {
|
|
97
|
+
target.sourceEventSeqs = [
|
|
98
|
+
...new Set([...(target.sourceEventSeqs ?? []), ...earlier.sourceEventSeqs]),
|
|
99
|
+
];
|
|
100
|
+
}
|
|
101
|
+
effective.splice(i, 1);
|
|
102
|
+
changed = true;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return effective;
|
|
107
|
+
}
|
|
108
|
+
export function shadowedSeqSet(coverings) {
|
|
109
|
+
const set = new Set();
|
|
110
|
+
for (const c of coverings) {
|
|
111
|
+
for (let s = c.fromSeq; s <= c.toSeq; s++)
|
|
112
|
+
set.add(s);
|
|
113
|
+
}
|
|
114
|
+
return set;
|
|
115
|
+
}
|
|
116
|
+
export function isSeqShadowed(seq, coverings) {
|
|
117
|
+
return coverings.some((c) => seq >= c.fromSeq && seq <= c.toSeq);
|
|
118
|
+
}
|
|
119
|
+
export * from './compactionState.js';
|
|
120
|
+
//# sourceMappingURL=compaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/session/compaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic state retained across durable session compaction.
|
|
3
|
+
*
|
|
4
|
+
* This metadata is derived from the append-only prefix before narrative
|
|
5
|
+
* summarization, so criteria, failures, evidence and mission state do not
|
|
6
|
+
* depend on a lossy prose summary.
|
|
7
|
+
*/
|
|
8
|
+
import type { SessionEventEnvelope } from './types.js';
|
|
9
|
+
export interface CompactionCriterionRef {
|
|
10
|
+
id: string;
|
|
11
|
+
required: boolean;
|
|
12
|
+
status?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface CompactionIssueRef {
|
|
15
|
+
id: string;
|
|
16
|
+
status: string;
|
|
17
|
+
reason?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface RetainedEvidenceRef {
|
|
20
|
+
seq?: number;
|
|
21
|
+
tier?: string;
|
|
22
|
+
ref?: string;
|
|
23
|
+
digest?: string;
|
|
24
|
+
capturedAt?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface CompactionStateSnapshot {
|
|
27
|
+
version: 1;
|
|
28
|
+
activeCriteria: CompactionCriterionRef[];
|
|
29
|
+
unresolvedIssues: CompactionIssueRef[];
|
|
30
|
+
latestVerification?: {
|
|
31
|
+
seq: number;
|
|
32
|
+
verdict?: string;
|
|
33
|
+
summary?: string;
|
|
34
|
+
};
|
|
35
|
+
retainedEvidenceRefs: RetainedEvidenceRef[];
|
|
36
|
+
affectedFiles: string[];
|
|
37
|
+
userConstraints: string[];
|
|
38
|
+
missionState?: {
|
|
39
|
+
phase?: string;
|
|
40
|
+
recommendation?: string;
|
|
41
|
+
blockers?: string[];
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Deterministic state retained beside the narrative checkpoint. Only events
|
|
46
|
+
* inside the compacted prefix contribute; later events remain visible raw.
|
|
47
|
+
*/
|
|
48
|
+
export declare function buildCompactionStateSnapshot(events: readonly SessionEventEnvelope[], toSeq: number): CompactionStateSnapshot;
|
|
49
|
+
export declare function formatCompactionStateSnapshot(snapshot: CompactionStateSnapshot): string;
|
|
50
|
+
//# sourceMappingURL=compactionState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compactionState.d.ts","sourceRoot":"","sources":["../../src/session/compactionState.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAMvD,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,CAAC,CAAC;IACX,cAAc,EAAE,sBAAsB,EAAE,CAAC;IACzC,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,kBAAkB,CAAC,EAAE;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAmFD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,oBAAoB,EAAE,EACvC,KAAK,EAAE,MAAM,GACZ,uBAAuB,CA6IzB;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,CAsBvF"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic state retained across durable session compaction.
|
|
3
|
+
*
|
|
4
|
+
* This metadata is derived from the append-only prefix before narrative
|
|
5
|
+
* summarization, so criteria, failures, evidence and mission state do not
|
|
6
|
+
* depend on a lossy prose summary.
|
|
7
|
+
*/
|
|
8
|
+
function asPositiveInt(value) {
|
|
9
|
+
return typeof value === 'number' && Number.isInteger(value) && value > 0 ? value : undefined;
|
|
10
|
+
}
|
|
11
|
+
function recordOf(value) {
|
|
12
|
+
return value && typeof value === 'object' && !Array.isArray(value)
|
|
13
|
+
? value
|
|
14
|
+
: undefined;
|
|
15
|
+
}
|
|
16
|
+
function recordsOf(value) {
|
|
17
|
+
return Array.isArray(value)
|
|
18
|
+
? value.map(recordOf).filter((v) => v !== undefined)
|
|
19
|
+
: [];
|
|
20
|
+
}
|
|
21
|
+
function stringsOf(value) {
|
|
22
|
+
return Array.isArray(value) ? value.filter((v) => typeof v === 'string') : [];
|
|
23
|
+
}
|
|
24
|
+
function addBounded(target, value, maxLength = 260) {
|
|
25
|
+
const normalized = value.trim().replace(/\\/g, '/');
|
|
26
|
+
if (normalized && normalized.length <= maxLength)
|
|
27
|
+
target.add(normalized);
|
|
28
|
+
}
|
|
29
|
+
function collectPaths(value, target, depth = 0) {
|
|
30
|
+
if (depth > 4 || value === null || value === undefined)
|
|
31
|
+
return;
|
|
32
|
+
if (Array.isArray(value)) {
|
|
33
|
+
for (const item of value)
|
|
34
|
+
collectPaths(item, target, depth + 1);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const record = recordOf(value);
|
|
38
|
+
if (record) {
|
|
39
|
+
for (const [key, item] of Object.entries(record)) {
|
|
40
|
+
if (typeof item === 'string' &&
|
|
41
|
+
['path', 'file', 'filepath', 'filePath', 'file_path', 'target', 'cwd'].includes(key)) {
|
|
42
|
+
addBounded(target, item);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
collectPaths(item, target, depth + 1);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (typeof value !== 'string')
|
|
51
|
+
return;
|
|
52
|
+
const pathLike = /(?:^|[\s"'])((?:[\w.@-]+[\\/])+[\w.@-]+\.[A-Za-z0-9]{1,10})/g;
|
|
53
|
+
let match;
|
|
54
|
+
while ((match = pathLike.exec(value)) !== null && target.size < 64) {
|
|
55
|
+
addBounded(target, match[1]);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function evidenceFromResults(results) {
|
|
59
|
+
const seen = new Set();
|
|
60
|
+
const out = [];
|
|
61
|
+
for (const result of results) {
|
|
62
|
+
for (const raw of recordsOf(result.evidence)) {
|
|
63
|
+
const seq = asPositiveInt(raw.seq);
|
|
64
|
+
const tier = typeof raw.tier === 'string' ? raw.tier : undefined;
|
|
65
|
+
const ref = typeof raw.ref === 'string' ? raw.ref : undefined;
|
|
66
|
+
const digest = typeof raw.digest === 'string' ? raw.digest : undefined;
|
|
67
|
+
const capturedAt = typeof raw.capturedAt === 'number' && Number.isInteger(raw.capturedAt)
|
|
68
|
+
? raw.capturedAt
|
|
69
|
+
: undefined;
|
|
70
|
+
if (seq === undefined && tier === undefined && ref === undefined && digest === undefined)
|
|
71
|
+
continue;
|
|
72
|
+
const key = [seq ?? '', tier ?? '', ref ?? '', digest ?? ''].join('|');
|
|
73
|
+
if (seen.has(key))
|
|
74
|
+
continue;
|
|
75
|
+
seen.add(key);
|
|
76
|
+
out.push({
|
|
77
|
+
...(seq !== undefined ? { seq } : {}),
|
|
78
|
+
...(tier !== undefined ? { tier } : {}),
|
|
79
|
+
...(ref !== undefined ? { ref } : {}),
|
|
80
|
+
...(digest !== undefined ? { digest } : {}),
|
|
81
|
+
...(capturedAt !== undefined ? { capturedAt } : {}),
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return out;
|
|
86
|
+
}
|
|
87
|
+
const CONSTRAINT_RE = /\b(must|never|required|only|do not|don't|constraint|vincolo|deve|devono|non\s+deve|senza)\b/i;
|
|
88
|
+
/**
|
|
89
|
+
* Deterministic state retained beside the narrative checkpoint. Only events
|
|
90
|
+
* inside the compacted prefix contribute; later events remain visible raw.
|
|
91
|
+
*/
|
|
92
|
+
export function buildCompactionStateSnapshot(events, toSeq) {
|
|
93
|
+
const scoped = events.filter((event) => event.seq <= toSeq);
|
|
94
|
+
const latestVerification = [...scoped].reverse().find((event) => event.kind === 'verification.run');
|
|
95
|
+
const verificationData = latestVerification?.data ?? {};
|
|
96
|
+
const native = recordOf(verificationData.native);
|
|
97
|
+
const results = recordsOf(native?.results ?? verificationData.results);
|
|
98
|
+
const criteriaRaw = recordsOf(native?.criteria ?? verificationData.criteria);
|
|
99
|
+
const statusById = new Map(results
|
|
100
|
+
.filter((result) => typeof result.criterionId === 'string')
|
|
101
|
+
.map((result) => [String(result.criterionId), String(result.status ?? 'unknown')]));
|
|
102
|
+
const evidenceState = recordOf(verificationData.evidence);
|
|
103
|
+
const satisfied = stringsOf(evidenceState?.satisfied);
|
|
104
|
+
const unsatisfiedRaw = recordsOf(evidenceState?.unsatisfied);
|
|
105
|
+
const activeCriteria = criteriaRaw
|
|
106
|
+
.filter((criterion) => typeof criterion.id === 'string')
|
|
107
|
+
.map((criterion) => ({
|
|
108
|
+
id: String(criterion.id),
|
|
109
|
+
required: criterion.required !== false,
|
|
110
|
+
...(statusById.has(String(criterion.id))
|
|
111
|
+
? { status: statusById.get(String(criterion.id)) }
|
|
112
|
+
: {}),
|
|
113
|
+
}));
|
|
114
|
+
if (activeCriteria.length === 0) {
|
|
115
|
+
const ids = new Set([
|
|
116
|
+
...results.map((result) => String(result.criterionId ?? '')).filter(Boolean),
|
|
117
|
+
...satisfied,
|
|
118
|
+
...unsatisfiedRaw.map((issue) => String(issue.id ?? '')).filter(Boolean),
|
|
119
|
+
]);
|
|
120
|
+
for (const id of ids) {
|
|
121
|
+
activeCriteria.push({
|
|
122
|
+
id,
|
|
123
|
+
required: true,
|
|
124
|
+
status: statusById.get(id) ?? (satisfied.includes(id) ? 'pass' : 'unknown'),
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const unresolvedIssues = unsatisfiedRaw.length > 0
|
|
129
|
+
? unsatisfiedRaw
|
|
130
|
+
.filter((issue) => typeof issue.id === 'string')
|
|
131
|
+
.map((issue) => ({
|
|
132
|
+
id: String(issue.id),
|
|
133
|
+
status: String(issue.status ?? 'unknown'),
|
|
134
|
+
...(typeof issue.reason === 'string' ? { reason: issue.reason } : {}),
|
|
135
|
+
}))
|
|
136
|
+
: results
|
|
137
|
+
.filter((result) => String(result.status ?? 'unknown') !== 'pass')
|
|
138
|
+
.map((result) => ({
|
|
139
|
+
id: String(result.criterionId ?? 'unknown'),
|
|
140
|
+
status: String(result.status ?? 'unknown'),
|
|
141
|
+
...(typeof result.detail === 'string' ? { reason: result.detail } : {}),
|
|
142
|
+
}));
|
|
143
|
+
const affectedFiles = new Set();
|
|
144
|
+
for (const event of scoped.slice(-500)) {
|
|
145
|
+
if (event.kind === 'tool.call' || event.kind === 'tool.result' || event.kind === 'verification.evidence') {
|
|
146
|
+
collectPaths(event.data, affectedFiles);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
const userConstraints = new Set();
|
|
150
|
+
for (const event of scoped) {
|
|
151
|
+
if (event.kind !== 'user.message')
|
|
152
|
+
continue;
|
|
153
|
+
for (const constraint of stringsOf(event.data.constraints ?? event.data.userConstraints)) {
|
|
154
|
+
addBounded(userConstraints, constraint, 320);
|
|
155
|
+
}
|
|
156
|
+
const messageText = typeof event.data.text === 'string' ? event.data.text : '';
|
|
157
|
+
for (const line of messageText.split(/\r?\n/)) {
|
|
158
|
+
if (CONSTRAINT_RE.test(line))
|
|
159
|
+
addBounded(userConstraints, line, 320);
|
|
160
|
+
if (userConstraints.size >= 12)
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const lastMissionPhase = [...scoped].reverse().find((event) => event.kind === 'mission.phase');
|
|
165
|
+
const lastMissionAdvice = [...scoped].reverse().find((event) => event.kind === 'mission.progress');
|
|
166
|
+
const missionState = lastMissionPhase || lastMissionAdvice
|
|
167
|
+
? {
|
|
168
|
+
...(typeof lastMissionPhase?.data.phase === 'string'
|
|
169
|
+
? { phase: lastMissionPhase.data.phase }
|
|
170
|
+
: {}),
|
|
171
|
+
...(typeof lastMissionAdvice?.data.recommendation === 'string'
|
|
172
|
+
? { recommendation: lastMissionAdvice.data.recommendation }
|
|
173
|
+
: {}),
|
|
174
|
+
...(stringsOf(lastMissionAdvice?.data.blockers).length > 0
|
|
175
|
+
? { blockers: stringsOf(lastMissionAdvice?.data.blockers) }
|
|
176
|
+
: {}),
|
|
177
|
+
}
|
|
178
|
+
: undefined;
|
|
179
|
+
// 2.6 (doc section 14.5): prefer the first-class TaskContract when the
|
|
180
|
+
// session carries one; the regex extraction above stays as fallback.
|
|
181
|
+
const latestContractEvent = [...scoped]
|
|
182
|
+
.reverse()
|
|
183
|
+
.find((event) => event.kind === 'task.contract' || event.kind === 'task.contract_updated');
|
|
184
|
+
const contractRaw = latestContractEvent && typeof latestContractEvent.data.contract === 'object'
|
|
185
|
+
? latestContractEvent.data.contract
|
|
186
|
+
: undefined;
|
|
187
|
+
const contractConstraints = Array.isArray(contractRaw?.constraints)
|
|
188
|
+
? contractRaw.constraints
|
|
189
|
+
.filter((c) => c.source === 'user' && c.required === true && typeof c.text === 'string')
|
|
190
|
+
.map((c) => String(c.text))
|
|
191
|
+
: undefined;
|
|
192
|
+
const contractCriteria = Array.isArray(contractRaw?.acceptanceCriteria)
|
|
193
|
+
? contractRaw.acceptanceCriteria
|
|
194
|
+
.filter((c) => typeof c.id === 'string')
|
|
195
|
+
.map((c) => ({ id: String(c.id), required: c.required === true }))
|
|
196
|
+
: undefined;
|
|
197
|
+
return {
|
|
198
|
+
version: 1,
|
|
199
|
+
activeCriteria: contractCriteria ?? activeCriteria,
|
|
200
|
+
unresolvedIssues,
|
|
201
|
+
...(latestVerification
|
|
202
|
+
? {
|
|
203
|
+
latestVerification: {
|
|
204
|
+
seq: latestVerification.seq,
|
|
205
|
+
...(typeof verificationData.verdict === 'string'
|
|
206
|
+
? { verdict: verificationData.verdict }
|
|
207
|
+
: {}),
|
|
208
|
+
...(typeof verificationData.summary === 'string'
|
|
209
|
+
? { summary: verificationData.summary }
|
|
210
|
+
: {}),
|
|
211
|
+
},
|
|
212
|
+
}
|
|
213
|
+
: {}),
|
|
214
|
+
retainedEvidenceRefs: evidenceFromResults(results),
|
|
215
|
+
affectedFiles: [...affectedFiles].slice(0, 64),
|
|
216
|
+
userConstraints: contractConstraints ?? [...userConstraints].slice(-12),
|
|
217
|
+
...(missionState ? { missionState } : {}),
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
export function formatCompactionStateSnapshot(snapshot) {
|
|
221
|
+
const lines = ['<compaction-state version="1">'];
|
|
222
|
+
if (snapshot.activeCriteria.length > 0) {
|
|
223
|
+
lines.push('activeCriteria: ' + JSON.stringify(snapshot.activeCriteria));
|
|
224
|
+
}
|
|
225
|
+
if (snapshot.unresolvedIssues.length > 0) {
|
|
226
|
+
lines.push('unresolvedIssues: ' + JSON.stringify(snapshot.unresolvedIssues));
|
|
227
|
+
}
|
|
228
|
+
if (snapshot.latestVerification) {
|
|
229
|
+
lines.push('latestVerification: ' + JSON.stringify(snapshot.latestVerification));
|
|
230
|
+
}
|
|
231
|
+
if (snapshot.affectedFiles.length > 0) {
|
|
232
|
+
lines.push('affectedFiles: ' + JSON.stringify(snapshot.affectedFiles));
|
|
233
|
+
}
|
|
234
|
+
if (snapshot.userConstraints.length > 0) {
|
|
235
|
+
lines.push('userConstraints: ' + JSON.stringify(snapshot.userConstraints));
|
|
236
|
+
}
|
|
237
|
+
if (snapshot.missionState) {
|
|
238
|
+
lines.push('missionState: ' + JSON.stringify(snapshot.missionState));
|
|
239
|
+
}
|
|
240
|
+
lines.push('</compaction-state>');
|
|
241
|
+
return lines.join('\n');
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=compactionState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compactionState.js","sourceRoot":"","sources":["../../src/session/compactionState.ts"],"names":[],"mappings":"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"}
|
package/dist/session/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export * from './types.js';
|
|
9
9
|
export * from './modelSurface.js';
|
|
10
|
+
export * from './compaction.js';
|
|
10
11
|
export * from './agentAdapter.js';
|
|
11
12
|
export * from './writer.js';
|
|
12
13
|
export * from './replay.js';
|
|
@@ -15,4 +16,5 @@ export * from './lineage.js';
|
|
|
15
16
|
export * from './exportSession.js';
|
|
16
17
|
export * from './invariants.js';
|
|
17
18
|
export * from './recovery.js';
|
|
19
|
+
export * from './taskContract.js';
|
|
18
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|
package/dist/session/index.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export * from './types.js';
|
|
9
9
|
export * from './modelSurface.js';
|
|
10
|
+
export * from './compaction.js';
|
|
10
11
|
export * from './agentAdapter.js';
|
|
11
12
|
export * from './writer.js';
|
|
12
13
|
export * from './replay.js';
|
|
@@ -15,4 +16,5 @@ export * from './lineage.js';
|
|
|
15
16
|
export * from './exportSession.js';
|
|
16
17
|
export * from './invariants.js';
|
|
17
18
|
export * from './recovery.js';
|
|
19
|
+
export * from './taskContract.js';
|
|
18
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|
|
@@ -13,4 +13,9 @@ export interface SessionInvariantViolation {
|
|
|
13
13
|
}
|
|
14
14
|
export type SessionInvariantMode = 'minimal' | 'strict';
|
|
15
15
|
export declare function validateSessionTrace(events: readonly SessionEventEnvelope[], mode?: SessionInvariantMode): SessionInvariantViolation[];
|
|
16
|
+
/**
|
|
17
|
+
* 2.6 Track A/B relational invariants: resource events + task contract
|
|
18
|
+
* (doc section 24.1). Standalone so replay/CI can opt in per surface.
|
|
19
|
+
*/
|
|
20
|
+
export declare function validateResourceAndContractEvents(events: readonly SessionEventEnvelope[]): SessionInvariantViolation[];
|
|
16
21
|
//# sourceMappingURL=invariants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invariants.d.ts","sourceRoot":"","sources":["../../src/session/invariants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAyBxD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,oBAAoB,EAAE,EACvC,IAAI,GAAE,oBAAgC,GACrC,yBAAyB,EAAE,
|
|
1
|
+
{"version":3,"file":"invariants.d.ts","sourceRoot":"","sources":["../../src/session/invariants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAyBxD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,oBAAoB,EAAE,EACvC,IAAI,GAAE,oBAAgC,GACrC,yBAAyB,EAAE,CA2E7B;AAmGD;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,SAAS,oBAAoB,EAAE,GACtC,yBAAyB,EAAE,CAoD7B"}
|