@claudexor/event-log 5.0.2 → 6.0.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.
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type RunEvent } from "@claudexor/schema";
|
|
2
2
|
export declare const RETAINED_OUTPUT_PATH = "final/retained-output.md";
|
|
3
3
|
/** What a caller already passes on, so the projection does not repeat it. */
|
|
4
4
|
interface CarriedOutput {
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Accepted so earlier callers still compile, and ignored: carried
|
|
7
|
+
* prose identifies no recorded event, so it never removes a block (#568).
|
|
8
|
+
*/
|
|
6
9
|
text?: string;
|
|
7
10
|
/** The native try (attempt, process session) whose answer is carried. Its answer is
|
|
8
11
|
* the LAST typed final AnswerAssembly accepts (a later native turn's final wins),
|
|
9
|
-
* so only that final
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
+
* so only that final's own block is omitted: its keyed fragments (with the run a
|
|
13
|
+
* joined frame names), its exact adjacent delta, flush and complete forms, and the
|
|
14
|
+
* streamed blocks it exactly repeats. Its earlier finals and other narration stay,
|
|
15
|
+
* whatever their text. Without an accepted final its joined narration is the answer
|
|
16
|
+
* and the whole try is omitted. Text never decides what is represented. */
|
|
12
17
|
represented?: {
|
|
13
18
|
attempt: string;
|
|
14
19
|
session: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retained-output.d.ts","sourceRoot":"","sources":["../src/retained-output.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"retained-output.d.ts","sourceRoot":"","sources":["../src/retained-output.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGjE,eAAO,MAAM,oBAAoB,6BAA6B,CAAC;AAqC/D,6EAA6E;AAC7E,UAAU,aAAa;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;+EAM2E;IAC3E,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAC5B,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAC1B,SAAS,SAAI,EACb,cAAc,UAAQ,EACtB,OAAO,GAAE,aAAkB,GAC1B,MAAM,GAAG,IAAI,CAqHf;AA8HD,4FAA4F;AAC5F,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;IAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EACjD,cAAc,UAAQ,GACrB,MAAM,GAAG,IAAI,CAYf"}
|
package/dist/retained-output.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { dirname, join } from "node:path";
|
|
2
2
|
import { renameSync, rmSync } from "node:fs";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
|
-
import {
|
|
4
|
+
import { HarnessSpeech } from "@claudexor/schema";
|
|
5
|
+
import { StreamEcho, writeText } from "@claudexor/util";
|
|
5
6
|
export const RETAINED_OUTPUT_PATH = "final/retained-output.md";
|
|
6
7
|
/** Evidence projection only: never chooses an answer, validates a verdict or starts work. */
|
|
7
8
|
export function retainedOutput(events, malformed = 0, onlyAdditional = false, carried = {}) {
|
|
@@ -31,14 +32,18 @@ export function retainedOutput(events, malformed = 0, onlyAdditional = false, ca
|
|
|
31
32
|
harness,
|
|
32
33
|
session,
|
|
33
34
|
blocks: [],
|
|
35
|
+
keyed: new Map(),
|
|
34
36
|
openDelta: false,
|
|
35
37
|
pendingFlush: false,
|
|
38
|
+
echo: new StreamEcho(),
|
|
39
|
+
fragments: [],
|
|
36
40
|
};
|
|
37
41
|
sources.set(key, source);
|
|
38
42
|
const payload = p["payload"];
|
|
39
43
|
if (p["type"] !== "message" || payload?.["auth_switched"] === true) {
|
|
40
44
|
source.openDelta = false;
|
|
41
45
|
source.pendingFlush = false;
|
|
46
|
+
source.echo.interrupt();
|
|
42
47
|
continue;
|
|
43
48
|
}
|
|
44
49
|
const text = p["text"];
|
|
@@ -56,27 +61,12 @@ export function retainedOutput(events, malformed = 0, onlyAdditional = false, ca
|
|
|
56
61
|
source.answer = null;
|
|
57
62
|
continue;
|
|
58
63
|
}
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
if (delta && source.openDelta && last) {
|
|
62
|
-
last.text += text;
|
|
63
|
-
last.last = seq;
|
|
64
|
-
}
|
|
65
|
-
else if (!delta &&
|
|
66
|
-
last?.text === text &&
|
|
67
|
-
(source.openDelta || source.pendingFlush || final || payload?.["buffered"] === true)) {
|
|
68
|
-
// Exact adjacent delta/flush/final repetition, never a semantic or substring match.
|
|
69
|
-
last.last = seq;
|
|
70
|
-
last.delta = false;
|
|
71
|
-
last.final ||= final;
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
source.blocks.push({ text, first: seq, last: seq, delta, final });
|
|
75
|
-
}
|
|
64
|
+
const block = textBlock(source, event.seq ?? 0, text, delta, final, p["speech"], payload);
|
|
65
|
+
source.current = block;
|
|
76
66
|
source.openDelta = delta;
|
|
77
67
|
source.pendingFlush = payload?.["buffered"] === true;
|
|
78
68
|
if (accepted)
|
|
79
|
-
source.answer = text.trim() ?
|
|
69
|
+
source.answer = text.trim() ? block : null;
|
|
80
70
|
}
|
|
81
71
|
const observed = [...sources.values()]
|
|
82
72
|
.flatMap((source) => source.blocks)
|
|
@@ -88,17 +78,19 @@ export function retainedOutput(events, malformed = 0, onlyAdditional = false, ca
|
|
|
88
78
|
carried.represented.session === source.session;
|
|
89
79
|
const answer = represented ? source.answer : undefined;
|
|
90
80
|
const blocks = source.blocks.filter((block) => {
|
|
91
|
-
const text = block.text.trim();
|
|
92
|
-
if (!text || carried.text?.includes(text))
|
|
93
|
-
return false;
|
|
94
81
|
if (!represented)
|
|
95
82
|
return true;
|
|
96
83
|
// No accepted final: the joined narration is the answer.
|
|
97
84
|
if (answer === undefined)
|
|
98
85
|
return false;
|
|
99
|
-
|
|
86
|
+
// Only the carried final's own block and the streamed blocks it exactly
|
|
87
|
+
// repeats are represented: equal or contained text elsewhere (another turn,
|
|
88
|
+
// a short "OK" inside "NOT OK") is its own evidence.
|
|
89
|
+
return block !== answer && !answer?.forms?.includes(block);
|
|
100
90
|
});
|
|
101
|
-
|
|
91
|
+
// A section needs visible text; a whitespace-only block (a separator fragment
|
|
92
|
+
// between tool calls) stays exact inside one.
|
|
93
|
+
if (!blocks.some((block) => block.text.trim()))
|
|
102
94
|
return [];
|
|
103
95
|
return [
|
|
104
96
|
`## Attempt ${source.attempt} · ${source.harness}\n\nSession: \`${source.session}\`\n\n` +
|
|
@@ -125,6 +117,116 @@ export function retainedOutput(events, malformed = 0, onlyAdditional = false, ca
|
|
|
125
117
|
sections.join("\n\n---\n\n") +
|
|
126
118
|
"\n");
|
|
127
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* The block one text event belongs to. A keyed event (`speech`, typed only) is
|
|
122
|
+
* its key's block wherever that block began: fragments extend it verbatim until
|
|
123
|
+
* the harness's complete text replaces them, and another key is another block
|
|
124
|
+
* even for equal words. An unkeyed event has no identity of its own: it
|
|
125
|
+
* continues only the block the last text event reached, and only in the shapes
|
|
126
|
+
* one speech takes on the wire (an open unkeyed delta run, or an exact
|
|
127
|
+
* repetition of text just streamed or flushed, or of that block by a typed
|
|
128
|
+
* final), or completes the keyed run its adapter names (`joinedRun`). A block
|
|
129
|
+
* that holds a typed final is closed, since what follows is another native
|
|
130
|
+
* turn. An unkeyed complete message that exactly repeats this stream's unkeyed
|
|
131
|
+
* fragments across tool calls (`StreamEcho`: an Antigravity result repeating
|
|
132
|
+
* its whole turn, an ACP final the text after its last tool) adds no block: its
|
|
133
|
+
* text stays in the streamed blocks it names. Anything else is a separate
|
|
134
|
+
* segment.
|
|
135
|
+
*/
|
|
136
|
+
function textBlock(source, seq, text, delta, final, rawSpeech, payload) {
|
|
137
|
+
const speech = HarnessSpeech.safeParse(rawSpeech).data;
|
|
138
|
+
if (speech && speech.op !== "abandoned") {
|
|
139
|
+
// Keyed text is linked by its key, never by the unkeyed echo's words.
|
|
140
|
+
source.echo.reset();
|
|
141
|
+
source.fragments = [];
|
|
142
|
+
const known = source.keyed.get(speech.key);
|
|
143
|
+
if (!known) {
|
|
144
|
+
const block = {
|
|
145
|
+
text,
|
|
146
|
+
first: seq,
|
|
147
|
+
last: seq,
|
|
148
|
+
delta: speech.op === "fragment",
|
|
149
|
+
final,
|
|
150
|
+
key: speech.key,
|
|
151
|
+
complete: speech.op === "complete",
|
|
152
|
+
};
|
|
153
|
+
source.blocks.push(block);
|
|
154
|
+
source.keyed.set(speech.key, block);
|
|
155
|
+
return block;
|
|
156
|
+
}
|
|
157
|
+
if (speech.op === "complete") {
|
|
158
|
+
known.text = text;
|
|
159
|
+
known.complete = true;
|
|
160
|
+
known.delta = false;
|
|
161
|
+
}
|
|
162
|
+
else if (!known.complete)
|
|
163
|
+
known.text += text;
|
|
164
|
+
known.last = seq;
|
|
165
|
+
known.final ||= final;
|
|
166
|
+
return known;
|
|
167
|
+
}
|
|
168
|
+
const current = source.current;
|
|
169
|
+
if (delta) {
|
|
170
|
+
const continues = source.echo.fragment(text);
|
|
171
|
+
let block = current;
|
|
172
|
+
if (continues && block) {
|
|
173
|
+
block.text += text;
|
|
174
|
+
block.last = seq;
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
block = { text, first: seq, last: seq, delta, final };
|
|
178
|
+
source.blocks.push(block);
|
|
179
|
+
}
|
|
180
|
+
source.fragments.push(block);
|
|
181
|
+
return block;
|
|
182
|
+
}
|
|
183
|
+
const buffered = payload?.["buffered"] === true;
|
|
184
|
+
const repeated = source.echo.complete(text, { buffered, final });
|
|
185
|
+
const repeats = typeof repeated === "number" ? [...new Set(source.fragments.slice(repeated))] : [];
|
|
186
|
+
source.fragments = [];
|
|
187
|
+
const joined = joinedRun(source, seq, text, final, payload);
|
|
188
|
+
if (joined)
|
|
189
|
+
return joined;
|
|
190
|
+
if (current &&
|
|
191
|
+
!current.final &&
|
|
192
|
+
current.text === text &&
|
|
193
|
+
(source.openDelta || source.pendingFlush || final || buffered)) {
|
|
194
|
+
// Exact adjacent delta/flush/final repetition, never a semantic or substring match.
|
|
195
|
+
current.last = seq;
|
|
196
|
+
current.delta = false;
|
|
197
|
+
current.final ||= final;
|
|
198
|
+
return current;
|
|
199
|
+
}
|
|
200
|
+
if (repeated !== null)
|
|
201
|
+
return { text, first: seq, last: seq, delta, final, forms: repeats };
|
|
202
|
+
const block = { text, first: seq, last: seq, delta, final };
|
|
203
|
+
source.blocks.push(block);
|
|
204
|
+
return block;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* A frame whose adapter names the keyed run it joins (`payload.joined_speech_keys`,
|
|
208
|
+
* Claude's `text_runs_joined` frame) is that run's complete form only when the
|
|
209
|
+
* named blocks are this source's last blocks in that order, none complete or
|
|
210
|
+
* final, and its text is exactly theirs joined. They become one block; on any
|
|
211
|
+
* other shape every block stays as recorded and the frame is its own segment.
|
|
212
|
+
*/
|
|
213
|
+
function joinedRun(source, seq, text, final, payload) {
|
|
214
|
+
const keys = payload?.["joined_speech_keys"];
|
|
215
|
+
if (!Array.isArray(keys) || keys.length === 0)
|
|
216
|
+
return undefined;
|
|
217
|
+
const run = source.blocks.slice(-keys.length);
|
|
218
|
+
if (run.length !== keys.length ||
|
|
219
|
+
run.some((block, i) => block.key !== keys[i] || block.complete || block.final) ||
|
|
220
|
+
run.map((block) => block.text).join("") !== text) {
|
|
221
|
+
return undefined;
|
|
222
|
+
}
|
|
223
|
+
const [block, ...rest] = run;
|
|
224
|
+
source.blocks.length -= rest.length;
|
|
225
|
+
for (const other of rest)
|
|
226
|
+
source.keyed.set(other.key, block);
|
|
227
|
+
Object.assign(block, { text, last: seq, delta: false, complete: true, final });
|
|
228
|
+
return block;
|
|
229
|
+
}
|
|
128
230
|
/** Publish a derived artifact atomically; a failed write never announces a partial file. */
|
|
129
231
|
export function writeRetainedOutput(runDir, source, onlyAdditional = false) {
|
|
130
232
|
const text = retainedOutput(source.events, source.malformed, onlyAdditional);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retained-output.js","sourceRoot":"","sources":["../src/retained-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"retained-output.js","sourceRoot":"","sources":["../src/retained-output.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claudexor/event-log",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Append-only JSONL run-event log (a projection-friendly evidence ledger).",
|
|
6
6
|
"type": "module",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"dist"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@claudexor/util": "
|
|
20
|
-
"@claudexor/schema": "
|
|
19
|
+
"@claudexor/util": "6.0.0",
|
|
20
|
+
"@claudexor/schema": "6.0.0"
|
|
21
21
|
},
|
|
22
22
|
"repository": {
|
|
23
23
|
"type": "git",
|