diff --git a/eval/ab/guards-3arm/gen.mts b/eval/ab/guards-3arm/gen.mts new file mode 100644 index 0000000..efb7b38 --- /dev/null +++ b/eval/ab/guards-3arm/gen.mts @@ -0,0 +1,174 @@ +/** + * 3-arm guard eval generator (task: do IDS rows earn their ~290 image tokens/block + * on the Fable path, on top of the text fact sheet?). + * + * Arms (rendered here; queried by run.sh): + * A = production: PNG rendered from appendIdsBlock(text), fact sheet in prompt + * B = fact-sheet only: plain PNG, fact sheet in prompt + * C = none: plain PNG, no fact sheet + * + * Corpus: synthetic session-log JSONL (12-hex ids + unique dur_ms), 2 pages, + * each < DENSE_CONTENT_CHARS_PER_IMAGE so one PNG per page. Query mirrors + * eval/verbatim-15: "which id has dur_ms=X" — association must come from the + * image; guards can only help as exact-spelling correction, which is exactly + * the mechanism under test. + * + * Strata per page (4 golds sampled from each): + * ids+sheet — id is in the in-image IDS block (and therefore in the sheet) + * sheet-only — id is in the 96-token fact sheet but not the 16-row IDS block + * + * No "uncovered" stratum: Fable dense pages cap at 91 rows (728px / 8px cells), so a + * single-image block holds ≤91 log lines and the 96-token sheet budget covers every id + * in it. Uncovered ids only exist on multi-image blocks (one sheet per block, >96 ids). + * Body is capped at 72 lines/page so arm A (body + 17 IDS rows) stays single-image. + * + * Known confound (noted, accepted): tier-0 ranking is length-desc then lexical-asc, + * so strata correlate with leading hex chars. The decision-relevant contrast + * (A vs B, paired per trial) is unaffected — same golds, same strata. + * + * Deterministic: seeded PRNG, no Date/random in emitted content. + * Run: npx tsx eval/ab/guards-3arm/gen.mts + */ +import { writeFileSync } from 'node:fs'; +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { + appendIdsBlock, + extractFactSheetEntries, + factSheetText, +} from '../../../src/core/factsheet.js'; +import { + DENSE_CONTENT_CHARS_PER_IMAGE, + DENSE_CONTENT_COLS, + DENSE_RENDER_STYLE, + renderTextToPngsWithCharLimit, + shrinkColsToContent, +} from '../../../src/core/render.js'; + +const OUT = join(dirname(fileURLToPath(import.meta.url)), 'work'); + +function mulberry32(seed: number): () => number { + let a = seed >>> 0; + return () => { + a = (a + 0x6d2b79f5) | 0; + let t = Math.imul(a ^ (a >>> 15), 1 | a); + t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t; + return ((t ^ (t >>> 14)) >>> 0) / 4294967296; + }; +} +const rnd = mulberry32(0x3a7f00d); +const randInt = (lo: number, hi: number) => lo + Math.floor(rnd() * (hi - lo + 1)); +const HEX = '0123456789abcdef'; +/** 12-hex id guaranteed to contain ≥1 digit (extraction pattern requires it). */ +function id12(): string { + for (;;) { + let s = ''; + for (let i = 0; i < 12; i++) s += HEX[Math.floor(rnd() * 16)]; + if (/\d/.test(s)) return s; + } +} +function shuffle(xs: T[]): T[] { + const a = xs.slice(); + for (let i = a.length - 1; i > 0; i--) { + const j = Math.floor(rnd() * (i + 1)); + [a[i], a[j]] = [a[j], a[i]]; + } + return a; +} + +const OPS = ['render', 'upload', 'fetch', 'decode', 'verify', 'commit', 'snap', 'probe', 'merge', 'flush']; +const PAGES = 3; +const LINES_PER_PAGE = 72; // 72 body + 17 IDS rows ≤ 91-row page → arm A stays single-image +const GOLDS_PER_STRATUM = 4; + +interface Rec { page: number; id: string; dur: number } +const durs = new Set(); +function uniqDur(): number { + for (;;) { + const d = randInt(500, 9499); + if (!durs.has(d)) { durs.add(d); return d; } + } +} + +const trials: Array<{ i: number; page: number; stratum: string; dur: number; gold: string }> = []; +const meta: Record[] = []; + +for (let page = 0; page < PAGES; page++) { + const recs: Rec[] = []; + const lines: string[] = []; + let secs = 4 * 3600 + page * 1200; + for (let n = 0; n < LINES_PER_PAGE; n++) { + const id = id12(); + const dur = uniqDur(); + secs += randInt(1, 9); + const hh = String(Math.floor(secs / 3600)).padStart(2, '0'); + const mm = String(Math.floor((secs % 3600) / 60)).padStart(2, '0'); + const ss = String(secs % 60).padStart(2, '0'); + const ms = String(randInt(0, 999)).padStart(3, '0'); + const line = + `{"ts": "2026-07-12T${hh}:${mm}:${ss}.${ms}Z", "id": "${id}", "op": "${OPS[randInt(0, OPS.length - 1)]}", ` + + `"dur_ms": ${dur}, "ok": ${rnd() < 0.9}, "lane": ${randInt(1, 8)}, "bytes": ${randInt(1000, 99999)}}`; + lines.push(line); + recs.push({ page, id, dur }); + } + const pageText = lines.join('\n'); + + // Guard sets, computed with the real production code paths. + const armAText = appendIdsBlock(pageText); + const idsIdx = armAText.indexOf('\nIDS\n'); + if (idsIdx < 0) throw new Error(`page ${page}: appendIdsBlock added no IDS block`); + const idsTokens = new Set( + armAText.slice(idsIdx + 5).trim().split('\n').map((l) => l.trim().split(/\s+/).pop()!), + ); + const sheetTokens = new Set(extractFactSheetEntries(pageText).map((e) => e.token)); + for (const t of idsTokens) { + if (!sheetTokens.has(t)) console.warn(`page ${page}: IDS token not in sheet (unexpected): ${t}`); + } + const sheet = factSheetText(pageText); + + // Strata. + const s1 = recs.filter((r) => idsTokens.has(r.id)); + const s2 = recs.filter((r) => sheetTokens.has(r.id) && !idsTokens.has(r.id)); + const s3 = recs.filter((r) => !sheetTokens.has(r.id)); + for (const [name, pool] of [['ids+sheet', s1], ['sheet-only', s2], ['uncovered', s3]] as const) { + for (const r of shuffle(pool).slice(0, GOLDS_PER_STRATUM)) { + trials.push({ i: trials.length, page, stratum: name, dur: r.dur, gold: r.id }); + } + } + + // Render both variants with the exact production dense single-col path + // (transform.ts:1362 minus/plus the appendIdsBlock wrap). + const renderOne = async (text: string, file: string) => { + const imgs = await renderTextToPngsWithCharLimit( + text, + shrinkColsToContent(text, DENSE_CONTENT_COLS), + DENSE_CONTENT_CHARS_PER_IMAGE, + DENSE_RENDER_STYLE, + ); + if (imgs.length !== 1) throw new Error(`${file}: expected 1 png, got ${imgs.length}`); + writeFileSync(join(OUT, file), imgs[0].png); + return { w: imgs[0].width, h: imgs[0].height }; + }; + const dimA = await renderOne(armAText, `pageA${page}.png`); + const dimP = await renderOne(pageText, `pageP${page}.png`); + + writeFileSync(join(OUT, `factsheet${page}.txt`), sheet); + writeFileSync(join(OUT, `corpus${page}.txt`), pageText); + meta.push({ + page, + lines: lines.length, + chars: pageText.length, + idsTokens: [...idsTokens], + idsHexCount: [...idsTokens].filter((t) => /^[0-9a-f]{12}$/.test(t)).length, + sheetTokenCount: sheetTokens.size, + sheetHexCount: [...sheetTokens].filter((t) => /^[0-9a-f]{12}$/.test(t)).length, + sheetChars: sheet.length, + strata: { 'ids+sheet': s1.length, 'sheet-only': s2.length, uncovered: s3.length }, + dims: { A: dimA, P: dimP }, + }); +} + +writeFileSync(join(OUT, 'trials.json'), JSON.stringify(trials, null, 1)); +writeFileSync(join(OUT, 'meta.json'), JSON.stringify(meta, null, 1)); +console.log(JSON.stringify(meta, null, 1)); +console.log(`trials: ${trials.length}`); diff --git a/eval/ab/guards-3arm/run.sh b/eval/ab/guards-3arm/run.sh new file mode 100755 index 0000000..90565f1 --- /dev/null +++ b/eval/ab/guards-3arm/run.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# 3-arm guard eval runner. usage: ./run.sh A|B|C [parallelism] +# A = IDS rows in image + fact sheet in prompt (production) +# B = plain image + fact sheet in prompt +# C = plain image, no fact sheet +set -u +cd "$(dirname "$0")/work" +ARM=${1:?arm A|B|C} +PAR=${2:-3} +CLAUDE="$HOME/.claude/local/claude" +python3 -c " +import json +for t in json.load(open('trials.json')): + print(t['i'], t['page'], t['stratum'], t['dur'], t['gold']) +" > trials.txt +run_one() { + local i=$1 page=$2 stratum=$3 dur=$4 gold=$5 + local img prompt ans + if [ "$ARM" = "A" ]; then img="$PWD/pageA${page}.png"; else img="$PWD/pageP${page}.png"; fi + prompt="Read the image at ${img}. Find the JSON line whose dur_ms is exactly ${dur} and report ONLY its 'id' field value (12 hex chars), nothing else. Read it visually from the image; do not use code." + if [ "$ARM" != "C" ]; then + # Fact sheet exactly as production emits it (factSheetText), no extra coaching. + prompt="${prompt} +$(cat "factsheet${page}.txt")" + fi + ans=$("$CLAUDE" -p --model claude-fable-5 "$prompt" 2>/dev/null | tr -d '[:space:]' | grep -oE '[0-9a-f]{12}' | head -1) + if [ "$ans" = "$gold" ]; then + echo "HIT arm=$ARM trial=$i page=$page stratum=$stratum dur=$dur gold=$gold" + else + echo "MISS arm=$ARM trial=$i page=$page stratum=$stratum dur=$dur gold=$gold got=${ans:-EMPTY}" + fi +} +export -f run_one +export ARM CLAUDE +xargs -P "$PAR" -L 1 bash -c 'run_one "$@"' _ < trials.txt | tee "results-${ARM}.log" +echo "arm ${ARM}: $(grep -c '^HIT' "results-${ARM}.log")/$(wc -l < "results-${ARM}.log" | tr -d ' ') hits" diff --git a/eval/ab/guards-3arm/work/corpus0.txt b/eval/ab/guards-3arm/work/corpus0.txt new file mode 100644 index 0000000..923db3a --- /dev/null +++ b/eval/ab/guards-3arm/work/corpus0.txt @@ -0,0 +1,72 @@ +{"ts": "2026-07-12T04:00:01.284Z", "id": "96e8ba1b05c8", "op": "probe", "dur_ms": 6114, "ok": true, "lane": 7, "bytes": 88406} +{"ts": "2026-07-12T04:00:07.634Z", "id": "b872a1e65e6c", "op": "probe", "dur_ms": 6788, "ok": true, "lane": 2, "bytes": 38794} +{"ts": "2026-07-12T04:00:15.320Z", "id": "a1c0068f478f", "op": "commit", "dur_ms": 7602, "ok": true, "lane": 1, "bytes": 39088} +{"ts": "2026-07-12T04:00:20.370Z", "id": "bc76c4b48456", "op": "commit", "dur_ms": 2469, "ok": true, "lane": 1, "bytes": 14672} +{"ts": "2026-07-12T04:00:21.394Z", "id": "303979dfbf14", "op": "upload", "dur_ms": 4898, "ok": true, "lane": 4, "bytes": 9036} +{"ts": "2026-07-12T04:00:30.213Z", "id": "30247f26b574", "op": "upload", "dur_ms": 5406, "ok": true, "lane": 2, "bytes": 71051} +{"ts": "2026-07-12T04:00:37.643Z", "id": "42d1903ed28f", "op": "commit", "dur_ms": 7280, "ok": true, "lane": 8, "bytes": 9865} +{"ts": "2026-07-12T04:00:44.577Z", "id": "7cd052a33d91", "op": "fetch", "dur_ms": 7028, "ok": true, "lane": 2, "bytes": 55966} +{"ts": "2026-07-12T04:00:52.964Z", "id": "3f0c4984a7dd", "op": "decode", "dur_ms": 5521, "ok": true, "lane": 7, "bytes": 45673} +{"ts": "2026-07-12T04:00:56.999Z", "id": "2a66e20fde72", "op": "fetch", "dur_ms": 7152, "ok": true, "lane": 3, "bytes": 75417} +{"ts": "2026-07-12T04:01:03.127Z", "id": "cf4e19530832", "op": "render", "dur_ms": 1636, "ok": true, "lane": 7, "bytes": 49194} +{"ts": "2026-07-12T04:01:10.817Z", "id": "937f8fbf5ed0", "op": "fetch", "dur_ms": 7842, "ok": false, "lane": 5, "bytes": 48861} +{"ts": "2026-07-12T04:01:13.196Z", "id": "c4569b7a2549", "op": "verify", "dur_ms": 509, "ok": true, "lane": 1, "bytes": 55890} +{"ts": "2026-07-12T04:01:19.743Z", "id": "999b06532578", "op": "probe", "dur_ms": 5855, "ok": true, "lane": 6, "bytes": 47182} +{"ts": "2026-07-12T04:01:24.769Z", "id": "b78782f77cd7", "op": "decode", "dur_ms": 1165, "ok": true, "lane": 5, "bytes": 86852} +{"ts": "2026-07-12T04:01:33.975Z", "id": "12c3202cbcd5", "op": "merge", "dur_ms": 7354, "ok": true, "lane": 6, "bytes": 2878} +{"ts": "2026-07-12T04:01:36.200Z", "id": "2d8d0538b555", "op": "commit", "dur_ms": 6562, "ok": true, "lane": 5, "bytes": 20724} +{"ts": "2026-07-12T04:01:37.225Z", "id": "befd54cafac2", "op": "fetch", "dur_ms": 6106, "ok": false, "lane": 5, "bytes": 59283} +{"ts": "2026-07-12T04:01:44.191Z", "id": "b43ebfec7526", "op": "flush", "dur_ms": 5716, "ok": true, "lane": 2, "bytes": 39365} +{"ts": "2026-07-12T04:01:52.035Z", "id": "adc394feebae", "op": "fetch", "dur_ms": 8053, "ok": true, "lane": 7, "bytes": 39331} +{"ts": "2026-07-12T04:01:56.168Z", "id": "b5717301f3c8", "op": "verify", "dur_ms": 4831, "ok": true, "lane": 3, "bytes": 78998} +{"ts": "2026-07-12T04:02:04.499Z", "id": "1dedc2c15310", "op": "upload", "dur_ms": 8163, "ok": true, "lane": 5, "bytes": 62558} +{"ts": "2026-07-12T04:02:05.116Z", "id": "23b9b4f82c57", "op": "decode", "dur_ms": 1648, "ok": true, "lane": 1, "bytes": 96174} +{"ts": "2026-07-12T04:02:11.508Z", "id": "7eff1957fbfb", "op": "commit", "dur_ms": 2597, "ok": true, "lane": 7, "bytes": 73713} +{"ts": "2026-07-12T04:02:19.673Z", "id": "6b6047c13aa5", "op": "fetch", "dur_ms": 3139, "ok": true, "lane": 3, "bytes": 41684} +{"ts": "2026-07-12T04:02:20.547Z", "id": "37bbf1585c5a", "op": "fetch", "dur_ms": 2004, "ok": true, "lane": 2, "bytes": 12980} +{"ts": "2026-07-12T04:02:22.187Z", "id": "baf05ca994d7", "op": "commit", "dur_ms": 6804, "ok": true, "lane": 1, "bytes": 83598} +{"ts": "2026-07-12T04:02:28.322Z", "id": "1cf2e3b36326", "op": "flush", "dur_ms": 3218, "ok": true, "lane": 5, "bytes": 11245} +{"ts": "2026-07-12T04:02:29.038Z", "id": "76fd2b614160", "op": "fetch", "dur_ms": 6470, "ok": true, "lane": 4, "bytes": 31723} +{"ts": "2026-07-12T04:02:31.057Z", "id": "4c648b72149a", "op": "upload", "dur_ms": 1580, "ok": true, "lane": 7, "bytes": 82376} +{"ts": "2026-07-12T04:02:32.400Z", "id": "99b615266049", "op": "snap", "dur_ms": 1613, "ok": true, "lane": 5, "bytes": 53900} +{"ts": "2026-07-12T04:02:34.090Z", "id": "b727b0ad7bdb", "op": "snap", "dur_ms": 9431, "ok": true, "lane": 7, "bytes": 86123} +{"ts": "2026-07-12T04:02:37.461Z", "id": "878996f8e622", "op": "commit", "dur_ms": 5608, "ok": true, "lane": 8, "bytes": 73396} +{"ts": "2026-07-12T04:02:40.266Z", "id": "ceccddf70065", "op": "snap", "dur_ms": 7682, "ok": true, "lane": 2, "bytes": 65720} +{"ts": "2026-07-12T04:02:47.981Z", "id": "a73479e5cec4", "op": "verify", "dur_ms": 7600, "ok": true, "lane": 8, "bytes": 6020} +{"ts": "2026-07-12T04:02:55.641Z", "id": "990c069a30c1", "op": "commit", "dur_ms": 6843, "ok": true, "lane": 7, "bytes": 37526} +{"ts": "2026-07-12T04:02:56.833Z", "id": "660cf8da4361", "op": "fetch", "dur_ms": 7726, "ok": true, "lane": 1, "bytes": 54810} +{"ts": "2026-07-12T04:02:57.657Z", "id": "c3211af2580f", "op": "verify", "dur_ms": 9018, "ok": true, "lane": 1, "bytes": 23944} +{"ts": "2026-07-12T04:02:59.754Z", "id": "a8a8e96e5e03", "op": "upload", "dur_ms": 7485, "ok": false, "lane": 7, "bytes": 46758} +{"ts": "2026-07-12T04:03:06.966Z", "id": "3e0b638403e0", "op": "merge", "dur_ms": 8594, "ok": true, "lane": 1, "bytes": 42923} +{"ts": "2026-07-12T04:03:11.387Z", "id": "7b2144cd8902", "op": "render", "dur_ms": 3413, "ok": true, "lane": 1, "bytes": 71658} +{"ts": "2026-07-12T04:03:13.285Z", "id": "64bbdf72f0cf", "op": "merge", "dur_ms": 2906, "ok": false, "lane": 4, "bytes": 25079} +{"ts": "2026-07-12T04:03:17.635Z", "id": "677d29fe603d", "op": "snap", "dur_ms": 2028, "ok": true, "lane": 5, "bytes": 6436} +{"ts": "2026-07-12T04:03:23.157Z", "id": "190f7fb9a6df", "op": "merge", "dur_ms": 8501, "ok": true, "lane": 7, "bytes": 67563} +{"ts": "2026-07-12T04:03:29.708Z", "id": "266238e62244", "op": "upload", "dur_ms": 2718, "ok": true, "lane": 3, "bytes": 81042} +{"ts": "2026-07-12T04:03:31.061Z", "id": "2aa0f8cb6c9e", "op": "render", "dur_ms": 6563, "ok": true, "lane": 8, "bytes": 63110} +{"ts": "2026-07-12T04:03:33.877Z", "id": "583460031522", "op": "probe", "dur_ms": 2889, "ok": true, "lane": 5, "bytes": 45418} +{"ts": "2026-07-12T04:03:34.405Z", "id": "2e7f71957cc3", "op": "render", "dur_ms": 5588, "ok": true, "lane": 4, "bytes": 81670} +{"ts": "2026-07-12T04:03:42.968Z", "id": "2f3c872127dd", "op": "fetch", "dur_ms": 2164, "ok": true, "lane": 8, "bytes": 38151} +{"ts": "2026-07-12T04:03:48.793Z", "id": "83f4cab655dc", "op": "snap", "dur_ms": 5678, "ok": true, "lane": 4, "bytes": 70822} +{"ts": "2026-07-12T04:03:54.689Z", "id": "692c127b3164", "op": "fetch", "dur_ms": 6984, "ok": true, "lane": 6, "bytes": 62071} +{"ts": "2026-07-12T04:03:55.154Z", "id": "c59f8c757385", "op": "render", "dur_ms": 5307, "ok": true, "lane": 3, "bytes": 10781} +{"ts": "2026-07-12T04:03:58.038Z", "id": "769273b5177e", "op": "fetch", "dur_ms": 8230, "ok": true, "lane": 8, "bytes": 65289} +{"ts": "2026-07-12T04:04:00.835Z", "id": "c9a36f225cca", "op": "render", "dur_ms": 4978, "ok": true, "lane": 6, "bytes": 21022} +{"ts": "2026-07-12T04:04:07.732Z", "id": "89f612ae0fea", "op": "commit", "dur_ms": 2395, "ok": true, "lane": 2, "bytes": 86376} +{"ts": "2026-07-12T04:04:16.615Z", "id": "d0113a8925dd", "op": "upload", "dur_ms": 8062, "ok": true, "lane": 3, "bytes": 4844} +{"ts": "2026-07-12T04:04:21.606Z", "id": "1e72f4a2ca46", "op": "upload", "dur_ms": 9445, "ok": true, "lane": 3, "bytes": 36985} +{"ts": "2026-07-12T04:04:28.931Z", "id": "9f4b9ce18610", "op": "snap", "dur_ms": 1333, "ok": true, "lane": 5, "bytes": 76774} +{"ts": "2026-07-12T04:04:31.257Z", "id": "df08ecef2304", "op": "upload", "dur_ms": 4465, "ok": true, "lane": 5, "bytes": 58959} +{"ts": "2026-07-12T04:04:33.300Z", "id": "428d227615d1", "op": "decode", "dur_ms": 6837, "ok": true, "lane": 3, "bytes": 12702} +{"ts": "2026-07-12T04:04:36.096Z", "id": "6d1fea4bcea3", "op": "merge", "dur_ms": 7510, "ok": true, "lane": 3, "bytes": 23978} +{"ts": "2026-07-12T04:04:42.951Z", "id": "b330bf8a77f0", "op": "flush", "dur_ms": 1612, "ok": true, "lane": 1, "bytes": 92125} +{"ts": "2026-07-12T04:04:50.993Z", "id": "23c296f2446c", "op": "probe", "dur_ms": 6089, "ok": true, "lane": 5, "bytes": 33203} +{"ts": "2026-07-12T04:04:59.643Z", "id": "b1c2cbd7937f", "op": "probe", "dur_ms": 9320, "ok": true, "lane": 5, "bytes": 88708} +{"ts": "2026-07-12T04:05:04.215Z", "id": "5b3d6fa4ef3a", "op": "decode", "dur_ms": 7507, "ok": true, "lane": 2, "bytes": 27438} +{"ts": "2026-07-12T04:05:08.648Z", "id": "9992afa58792", "op": "render", "dur_ms": 4450, "ok": true, "lane": 5, "bytes": 40087} +{"ts": "2026-07-12T04:05:09.826Z", "id": "dd79ed6bf45a", "op": "commit", "dur_ms": 3525, "ok": true, "lane": 4, "bytes": 9433} +{"ts": "2026-07-12T04:05:15.145Z", "id": "fc497fd0c432", "op": "snap", "dur_ms": 6183, "ok": true, "lane": 5, "bytes": 30824} +{"ts": "2026-07-12T04:05:19.013Z", "id": "d56d5e6eaaf8", "op": "fetch", "dur_ms": 3049, "ok": true, "lane": 4, "bytes": 23184} +{"ts": "2026-07-12T04:05:23.979Z", "id": "877702000b16", "op": "merge", "dur_ms": 7278, "ok": true, "lane": 8, "bytes": 56735} +{"ts": "2026-07-12T04:05:25.987Z", "id": "39c66ca82727", "op": "verify", "dur_ms": 7797, "ok": true, "lane": 6, "bytes": 34095} +{"ts": "2026-07-12T04:05:34.142Z", "id": "f7d8c8e64048", "op": "verify", "dur_ms": 8974, "ok": true, "lane": 7, "bytes": 40461} \ No newline at end of file diff --git a/eval/ab/guards-3arm/work/corpus1.txt b/eval/ab/guards-3arm/work/corpus1.txt new file mode 100644 index 0000000..f47a814 --- /dev/null +++ b/eval/ab/guards-3arm/work/corpus1.txt @@ -0,0 +1,72 @@ +{"ts": "2026-07-12T04:20:01.940Z", "id": "080fee9493ef", "op": "decode", "dur_ms": 956, "ok": true, "lane": 5, "bytes": 98565} +{"ts": "2026-07-12T04:20:06.561Z", "id": "29665c38dc6b", "op": "snap", "dur_ms": 1272, "ok": true, "lane": 3, "bytes": 96938} +{"ts": "2026-07-12T04:20:07.808Z", "id": "15bb6dd52c4a", "op": "merge", "dur_ms": 1810, "ok": true, "lane": 5, "bytes": 49575} +{"ts": "2026-07-12T04:20:08.787Z", "id": "ba4b94099c97", "op": "decode", "dur_ms": 4508, "ok": true, "lane": 6, "bytes": 40617} +{"ts": "2026-07-12T04:20:10.544Z", "id": "24bbbc43b69f", "op": "snap", "dur_ms": 2481, "ok": true, "lane": 2, "bytes": 71599} +{"ts": "2026-07-12T04:20:16.830Z", "id": "8107c03fc6c2", "op": "snap", "dur_ms": 8190, "ok": true, "lane": 3, "bytes": 69678} +{"ts": "2026-07-12T04:20:17.735Z", "id": "50826c6969b4", "op": "snap", "dur_ms": 8241, "ok": true, "lane": 8, "bytes": 30942} +{"ts": "2026-07-12T04:20:19.278Z", "id": "bda7875c322f", "op": "merge", "dur_ms": 8476, "ok": true, "lane": 7, "bytes": 17020} +{"ts": "2026-07-12T04:20:24.724Z", "id": "44e3b0403178", "op": "verify", "dur_ms": 3754, "ok": true, "lane": 6, "bytes": 40952} +{"ts": "2026-07-12T04:20:30.669Z", "id": "01a5ad9cf2d7", "op": "upload", "dur_ms": 5028, "ok": true, "lane": 4, "bytes": 48556} +{"ts": "2026-07-12T04:20:33.781Z", "id": "b18ce197d8f0", "op": "upload", "dur_ms": 4488, "ok": true, "lane": 5, "bytes": 5105} +{"ts": "2026-07-12T04:20:34.032Z", "id": "8c1049b4ac7d", "op": "decode", "dur_ms": 5607, "ok": true, "lane": 3, "bytes": 37700} +{"ts": "2026-07-12T04:20:35.694Z", "id": "05c124232adb", "op": "flush", "dur_ms": 8360, "ok": true, "lane": 1, "bytes": 52681} +{"ts": "2026-07-12T04:20:40.210Z", "id": "c8970e40f642", "op": "decode", "dur_ms": 2079, "ok": true, "lane": 2, "bytes": 71384} +{"ts": "2026-07-12T04:20:47.113Z", "id": "534ad728fa40", "op": "commit", "dur_ms": 2186, "ok": true, "lane": 4, "bytes": 64187} +{"ts": "2026-07-12T04:20:48.495Z", "id": "4e55b2ada104", "op": "snap", "dur_ms": 2617, "ok": true, "lane": 6, "bytes": 68400} +{"ts": "2026-07-12T04:20:56.506Z", "id": "d3f618978eca", "op": "upload", "dur_ms": 8711, "ok": false, "lane": 8, "bytes": 30527} +{"ts": "2026-07-12T04:20:58.824Z", "id": "08f0919effa0", "op": "snap", "dur_ms": 7089, "ok": true, "lane": 2, "bytes": 15480} +{"ts": "2026-07-12T04:21:05.377Z", "id": "4727ba037f1d", "op": "flush", "dur_ms": 3890, "ok": true, "lane": 2, "bytes": 17737} +{"ts": "2026-07-12T04:21:07.809Z", "id": "3be3cfd6c825", "op": "render", "dur_ms": 8320, "ok": true, "lane": 1, "bytes": 13511} +{"ts": "2026-07-12T04:21:14.631Z", "id": "b7a58bc9aa7d", "op": "commit", "dur_ms": 8361, "ok": true, "lane": 7, "bytes": 23677} +{"ts": "2026-07-12T04:21:17.525Z", "id": "20c55ef65d1e", "op": "probe", "dur_ms": 7915, "ok": true, "lane": 3, "bytes": 10264} +{"ts": "2026-07-12T04:21:25.800Z", "id": "bfe0dbd3feb6", "op": "render", "dur_ms": 2890, "ok": false, "lane": 1, "bytes": 61033} +{"ts": "2026-07-12T04:21:26.503Z", "id": "9160a43761c3", "op": "upload", "dur_ms": 2499, "ok": true, "lane": 7, "bytes": 14124} +{"ts": "2026-07-12T04:21:30.454Z", "id": "3061e20b1ca2", "op": "commit", "dur_ms": 7718, "ok": true, "lane": 3, "bytes": 71441} +{"ts": "2026-07-12T04:21:31.741Z", "id": "f6504a025128", "op": "snap", "dur_ms": 1273, "ok": true, "lane": 5, "bytes": 5620} +{"ts": "2026-07-12T04:21:33.155Z", "id": "751becdde4cf", "op": "upload", "dur_ms": 1789, "ok": true, "lane": 8, "bytes": 56157} +{"ts": "2026-07-12T04:21:41.541Z", "id": "70d2e6f92528", "op": "decode", "dur_ms": 5675, "ok": true, "lane": 6, "bytes": 18910} +{"ts": "2026-07-12T04:21:44.123Z", "id": "0fc387319a83", "op": "upload", "dur_ms": 593, "ok": true, "lane": 3, "bytes": 78493} +{"ts": "2026-07-12T04:21:53.355Z", "id": "c6ad03792980", "op": "render", "dur_ms": 7343, "ok": true, "lane": 5, "bytes": 7996} +{"ts": "2026-07-12T04:21:57.352Z", "id": "4c84be9b4144", "op": "snap", "dur_ms": 2043, "ok": true, "lane": 8, "bytes": 51850} +{"ts": "2026-07-12T04:22:03.667Z", "id": "849144e04346", "op": "commit", "dur_ms": 7311, "ok": true, "lane": 7, "bytes": 93173} +{"ts": "2026-07-12T04:22:09.167Z", "id": "016adc8a18be", "op": "decode", "dur_ms": 3957, "ok": true, "lane": 7, "bytes": 99143} +{"ts": "2026-07-12T04:22:16.708Z", "id": "9579aa0b286e", "op": "commit", "dur_ms": 7942, "ok": true, "lane": 7, "bytes": 56227} +{"ts": "2026-07-12T04:22:18.043Z", "id": "2231fea910cb", "op": "probe", "dur_ms": 2994, "ok": true, "lane": 4, "bytes": 91030} +{"ts": "2026-07-12T04:22:27.740Z", "id": "b6ebd762d61a", "op": "probe", "dur_ms": 3077, "ok": true, "lane": 8, "bytes": 64300} +{"ts": "2026-07-12T04:22:32.717Z", "id": "c4a85602a95b", "op": "probe", "dur_ms": 8507, "ok": true, "lane": 6, "bytes": 45679} +{"ts": "2026-07-12T04:22:35.368Z", "id": "3669ed721fc1", "op": "probe", "dur_ms": 2684, "ok": true, "lane": 1, "bytes": 23550} +{"ts": "2026-07-12T04:22:43.788Z", "id": "9dcfac302405", "op": "decode", "dur_ms": 1456, "ok": true, "lane": 2, "bytes": 74777} +{"ts": "2026-07-12T04:22:47.172Z", "id": "965665b6aef8", "op": "render", "dur_ms": 2813, "ok": true, "lane": 1, "bytes": 9860} +{"ts": "2026-07-12T04:22:48.550Z", "id": "93afc99f8a80", "op": "commit", "dur_ms": 5064, "ok": true, "lane": 8, "bytes": 68088} +{"ts": "2026-07-12T04:22:54.138Z", "id": "711243211628", "op": "merge", "dur_ms": 7965, "ok": true, "lane": 7, "bytes": 55318} +{"ts": "2026-07-12T04:22:56.962Z", "id": "40f71bd0fd62", "op": "commit", "dur_ms": 4011, "ok": true, "lane": 7, "bytes": 50931} +{"ts": "2026-07-12T04:22:58.362Z", "id": "6a2994ecc326", "op": "fetch", "dur_ms": 5212, "ok": true, "lane": 3, "bytes": 58757} +{"ts": "2026-07-12T04:23:04.547Z", "id": "56a1d5ec6b65", "op": "fetch", "dur_ms": 3942, "ok": true, "lane": 1, "bytes": 68544} +{"ts": "2026-07-12T04:23:09.903Z", "id": "0476ffc03c64", "op": "flush", "dur_ms": 5895, "ok": true, "lane": 2, "bytes": 16469} +{"ts": "2026-07-12T04:23:13.595Z", "id": "f5942dc1fc39", "op": "commit", "dur_ms": 1695, "ok": true, "lane": 8, "bytes": 80288} +{"ts": "2026-07-12T04:23:18.813Z", "id": "76fcc279bfb5", "op": "merge", "dur_ms": 4018, "ok": true, "lane": 5, "bytes": 40125} +{"ts": "2026-07-12T04:23:20.078Z", "id": "188840290415", "op": "upload", "dur_ms": 9229, "ok": true, "lane": 5, "bytes": 19939} +{"ts": "2026-07-12T04:23:26.433Z", "id": "29f7ca808032", "op": "flush", "dur_ms": 4998, "ok": true, "lane": 6, "bytes": 99695} +{"ts": "2026-07-12T04:23:30.433Z", "id": "244bb6cef2d4", "op": "decode", "dur_ms": 1843, "ok": true, "lane": 3, "bytes": 95789} +{"ts": "2026-07-12T04:23:37.068Z", "id": "a6479d0dae49", "op": "commit", "dur_ms": 946, "ok": false, "lane": 4, "bytes": 12110} +{"ts": "2026-07-12T04:23:40.596Z", "id": "a5f5a1318d2d", "op": "probe", "dur_ms": 1027, "ok": true, "lane": 7, "bytes": 8069} +{"ts": "2026-07-12T04:23:48.600Z", "id": "cb660f04681d", "op": "snap", "dur_ms": 8670, "ok": true, "lane": 6, "bytes": 92070} +{"ts": "2026-07-12T04:23:57.842Z", "id": "a6475f77a9bf", "op": "decode", "dur_ms": 7881, "ok": false, "lane": 1, "bytes": 65254} +{"ts": "2026-07-12T04:24:06.655Z", "id": "e975588e7f8b", "op": "upload", "dur_ms": 3393, "ok": true, "lane": 1, "bytes": 90093} +{"ts": "2026-07-12T04:24:10.713Z", "id": "73085fd28ed8", "op": "commit", "dur_ms": 2657, "ok": true, "lane": 5, "bytes": 71894} +{"ts": "2026-07-12T04:24:12.064Z", "id": "fa774ddabb5b", "op": "commit", "dur_ms": 6043, "ok": false, "lane": 7, "bytes": 25121} +{"ts": "2026-07-12T04:24:17.379Z", "id": "861a9cc955fa", "op": "flush", "dur_ms": 5765, "ok": true, "lane": 6, "bytes": 41206} +{"ts": "2026-07-12T04:24:18.050Z", "id": "11024c4d126a", "op": "snap", "dur_ms": 7919, "ok": true, "lane": 2, "bytes": 44806} +{"ts": "2026-07-12T04:24:21.864Z", "id": "b14e41d1395e", "op": "fetch", "dur_ms": 2195, "ok": true, "lane": 5, "bytes": 78331} +{"ts": "2026-07-12T04:24:29.127Z", "id": "1a396f648666", "op": "fetch", "dur_ms": 3330, "ok": true, "lane": 8, "bytes": 57490} +{"ts": "2026-07-12T04:24:32.754Z", "id": "370fa42d7ace", "op": "flush", "dur_ms": 6997, "ok": true, "lane": 8, "bytes": 19365} +{"ts": "2026-07-12T04:24:39.634Z", "id": "c7d649850097", "op": "flush", "dur_ms": 4736, "ok": true, "lane": 2, "bytes": 39177} +{"ts": "2026-07-12T04:24:43.796Z", "id": "a4f2d48c88e4", "op": "upload", "dur_ms": 8499, "ok": true, "lane": 4, "bytes": 19579} +{"ts": "2026-07-12T04:24:48.865Z", "id": "5cb629a9fe42", "op": "probe", "dur_ms": 5496, "ok": true, "lane": 5, "bytes": 18130} +{"ts": "2026-07-12T04:24:55.334Z", "id": "5a02f4946db5", "op": "verify", "dur_ms": 6294, "ok": true, "lane": 1, "bytes": 53494} +{"ts": "2026-07-12T04:25:02.629Z", "id": "d34053d8d5ca", "op": "commit", "dur_ms": 2495, "ok": true, "lane": 2, "bytes": 69380} +{"ts": "2026-07-12T04:25:06.916Z", "id": "68d320d593a0", "op": "upload", "dur_ms": 4129, "ok": true, "lane": 1, "bytes": 21543} +{"ts": "2026-07-12T04:25:15.405Z", "id": "e96afec65ba3", "op": "verify", "dur_ms": 4459, "ok": true, "lane": 2, "bytes": 31311} +{"ts": "2026-07-12T04:25:24.904Z", "id": "a1160ebae03f", "op": "commit", "dur_ms": 9405, "ok": true, "lane": 3, "bytes": 26738} +{"ts": "2026-07-12T04:25:29.258Z", "id": "b924fa5376aa", "op": "render", "dur_ms": 3938, "ok": true, "lane": 7, "bytes": 41808} \ No newline at end of file diff --git a/eval/ab/guards-3arm/work/corpus2.txt b/eval/ab/guards-3arm/work/corpus2.txt new file mode 100644 index 0000000..9f8c767 --- /dev/null +++ b/eval/ab/guards-3arm/work/corpus2.txt @@ -0,0 +1,72 @@ +{"ts": "2026-07-12T04:40:06.564Z", "id": "96ef7a92beb6", "op": "merge", "dur_ms": 3857, "ok": true, "lane": 4, "bytes": 95577} +{"ts": "2026-07-12T04:40:07.532Z", "id": "d71e0acf0e4d", "op": "commit", "dur_ms": 4230, "ok": true, "lane": 3, "bytes": 97561} +{"ts": "2026-07-12T04:40:10.388Z", "id": "bd196d8c9884", "op": "probe", "dur_ms": 4410, "ok": true, "lane": 1, "bytes": 63021} +{"ts": "2026-07-12T04:40:16.013Z", "id": "afdce4064855", "op": "commit", "dur_ms": 6558, "ok": true, "lane": 1, "bytes": 39244} +{"ts": "2026-07-12T04:40:20.001Z", "id": "af7e6404735d", "op": "fetch", "dur_ms": 1741, "ok": true, "lane": 5, "bytes": 99774} +{"ts": "2026-07-12T04:40:27.503Z", "id": "8cdd963a7fce", "op": "flush", "dur_ms": 1771, "ok": true, "lane": 1, "bytes": 66946} +{"ts": "2026-07-12T04:40:30.976Z", "id": "28980059a1ca", "op": "fetch", "dur_ms": 1915, "ok": true, "lane": 4, "bytes": 55784} +{"ts": "2026-07-12T04:40:37.462Z", "id": "517c5976df06", "op": "verify", "dur_ms": 7658, "ok": true, "lane": 8, "bytes": 59621} +{"ts": "2026-07-12T04:40:43.994Z", "id": "d06484c2b779", "op": "render", "dur_ms": 7778, "ok": true, "lane": 5, "bytes": 54073} +{"ts": "2026-07-12T04:40:45.298Z", "id": "4094303ae851", "op": "fetch", "dur_ms": 1370, "ok": true, "lane": 2, "bytes": 22313} +{"ts": "2026-07-12T04:40:46.730Z", "id": "b1535ee7f192", "op": "probe", "dur_ms": 8352, "ok": true, "lane": 7, "bytes": 29337} +{"ts": "2026-07-12T04:40:55.335Z", "id": "35660fc6309a", "op": "upload", "dur_ms": 3200, "ok": true, "lane": 8, "bytes": 57690} +{"ts": "2026-07-12T04:41:02.500Z", "id": "ba54890fcb26", "op": "render", "dur_ms": 8307, "ok": true, "lane": 4, "bytes": 72445} +{"ts": "2026-07-12T04:41:03.680Z", "id": "f221f6bd05a6", "op": "snap", "dur_ms": 9457, "ok": true, "lane": 1, "bytes": 15711} +{"ts": "2026-07-12T04:41:10.030Z", "id": "e02af3d3c256", "op": "merge", "dur_ms": 4119, "ok": true, "lane": 6, "bytes": 89555} +{"ts": "2026-07-12T04:41:17.009Z", "id": "c5602cec608c", "op": "verify", "dur_ms": 2463, "ok": true, "lane": 3, "bytes": 29740} +{"ts": "2026-07-12T04:41:24.792Z", "id": "ba2f9456c62c", "op": "snap", "dur_ms": 5157, "ok": true, "lane": 2, "bytes": 74092} +{"ts": "2026-07-12T04:41:30.939Z", "id": "d20277ff5d75", "op": "fetch", "dur_ms": 8068, "ok": true, "lane": 4, "bytes": 85665} +{"ts": "2026-07-12T04:41:34.328Z", "id": "da4b4c7fee11", "op": "flush", "dur_ms": 8535, "ok": true, "lane": 8, "bytes": 7420} +{"ts": "2026-07-12T04:41:35.409Z", "id": "609b33ec43b4", "op": "upload", "dur_ms": 8503, "ok": true, "lane": 3, "bytes": 25753} +{"ts": "2026-07-12T04:41:43.527Z", "id": "f26eeb4a47c3", "op": "merge", "dur_ms": 4608, "ok": true, "lane": 8, "bytes": 4688} +{"ts": "2026-07-12T04:41:47.273Z", "id": "af88011035f2", "op": "flush", "dur_ms": 3144, "ok": true, "lane": 8, "bytes": 37192} +{"ts": "2026-07-12T04:41:54.978Z", "id": "8da1b7ee83ca", "op": "commit", "dur_ms": 4026, "ok": true, "lane": 6, "bytes": 51729} +{"ts": "2026-07-12T04:42:00.597Z", "id": "965c6340eaed", "op": "upload", "dur_ms": 3847, "ok": true, "lane": 7, "bytes": 33971} +{"ts": "2026-07-12T04:42:03.155Z", "id": "633bda8f07f8", "op": "decode", "dur_ms": 2233, "ok": true, "lane": 7, "bytes": 19949} +{"ts": "2026-07-12T04:42:10.292Z", "id": "3f083199338e", "op": "render", "dur_ms": 9059, "ok": true, "lane": 7, "bytes": 9991} +{"ts": "2026-07-12T04:42:15.843Z", "id": "815e33d5a205", "op": "verify", "dur_ms": 9026, "ok": true, "lane": 2, "bytes": 70480} +{"ts": "2026-07-12T04:42:24.461Z", "id": "a55cd4799946", "op": "merge", "dur_ms": 7489, "ok": false, "lane": 5, "bytes": 3394} +{"ts": "2026-07-12T04:42:32.121Z", "id": "531fd1c87ac2", "op": "upload", "dur_ms": 7887, "ok": true, "lane": 5, "bytes": 17628} +{"ts": "2026-07-12T04:42:34.957Z", "id": "3cdf075e82ba", "op": "snap", "dur_ms": 7052, "ok": true, "lane": 1, "bytes": 80434} +{"ts": "2026-07-12T04:42:38.207Z", "id": "050bf0cfd470", "op": "decode", "dur_ms": 7408, "ok": true, "lane": 3, "bytes": 46050} +{"ts": "2026-07-12T04:42:47.699Z", "id": "0ee78636717b", "op": "decode", "dur_ms": 2378, "ok": true, "lane": 4, "bytes": 59017} +{"ts": "2026-07-12T04:42:48.210Z", "id": "c2ddefb8022d", "op": "commit", "dur_ms": 7988, "ok": true, "lane": 3, "bytes": 98146} +{"ts": "2026-07-12T04:42:49.174Z", "id": "89d735dfdb54", "op": "merge", "dur_ms": 4149, "ok": true, "lane": 6, "bytes": 16869} +{"ts": "2026-07-12T04:42:54.521Z", "id": "55a7e242bb46", "op": "decode", "dur_ms": 8148, "ok": true, "lane": 5, "bytes": 83396} +{"ts": "2026-07-12T04:43:01.582Z", "id": "7f17fcbaae44", "op": "fetch", "dur_ms": 5690, "ok": true, "lane": 6, "bytes": 89930} +{"ts": "2026-07-12T04:43:09.804Z", "id": "d88ad87f428a", "op": "commit", "dur_ms": 7205, "ok": true, "lane": 7, "bytes": 51659} +{"ts": "2026-07-12T04:43:15.183Z", "id": "779f4f2a1d8d", "op": "merge", "dur_ms": 8124, "ok": true, "lane": 1, "bytes": 91401} +{"ts": "2026-07-12T04:43:23.456Z", "id": "ec2598d0a4d4", "op": "probe", "dur_ms": 5661, "ok": true, "lane": 4, "bytes": 39005} +{"ts": "2026-07-12T04:43:24.737Z", "id": "40f91141b559", "op": "decode", "dur_ms": 6767, "ok": true, "lane": 3, "bytes": 41157} +{"ts": "2026-07-12T04:43:32.536Z", "id": "11bb43b24452", "op": "commit", "dur_ms": 8127, "ok": true, "lane": 3, "bytes": 10547} +{"ts": "2026-07-12T04:43:36.842Z", "id": "7741f1b51b92", "op": "fetch", "dur_ms": 2275, "ok": true, "lane": 5, "bytes": 39679} +{"ts": "2026-07-12T04:43:40.279Z", "id": "4a7d76a233ea", "op": "flush", "dur_ms": 5143, "ok": true, "lane": 3, "bytes": 28885} +{"ts": "2026-07-12T04:43:41.733Z", "id": "2665c5acf1e4", "op": "commit", "dur_ms": 2875, "ok": true, "lane": 5, "bytes": 60616} +{"ts": "2026-07-12T04:43:46.745Z", "id": "e85a49ef4ce0", "op": "merge", "dur_ms": 2965, "ok": true, "lane": 6, "bytes": 18888} +{"ts": "2026-07-12T04:43:55.692Z", "id": "15e9b16d1b8a", "op": "probe", "dur_ms": 7167, "ok": true, "lane": 5, "bytes": 8772} +{"ts": "2026-07-12T04:43:56.269Z", "id": "ff12785aec8e", "op": "fetch", "dur_ms": 1939, "ok": true, "lane": 5, "bytes": 38895} +{"ts": "2026-07-12T04:43:58.355Z", "id": "f43eb3579f43", "op": "flush", "dur_ms": 2756, "ok": true, "lane": 3, "bytes": 23991} +{"ts": "2026-07-12T04:44:06.899Z", "id": "dd8c8b232cd7", "op": "upload", "dur_ms": 3447, "ok": true, "lane": 6, "bytes": 12265} +{"ts": "2026-07-12T04:44:12.502Z", "id": "11e7f0ebdd13", "op": "decode", "dur_ms": 1547, "ok": true, "lane": 4, "bytes": 69565} +{"ts": "2026-07-12T04:44:16.004Z", "id": "2730a600dd2a", "op": "snap", "dur_ms": 6790, "ok": true, "lane": 2, "bytes": 95616} +{"ts": "2026-07-12T04:44:17.938Z", "id": "12a4b80452bf", "op": "commit", "dur_ms": 5611, "ok": true, "lane": 3, "bytes": 47902} +{"ts": "2026-07-12T04:44:23.779Z", "id": "267e57996987", "op": "merge", "dur_ms": 5651, "ok": true, "lane": 8, "bytes": 10842} +{"ts": "2026-07-12T04:44:26.355Z", "id": "2e5bbe2e6f55", "op": "snap", "dur_ms": 7884, "ok": true, "lane": 7, "bytes": 4418} +{"ts": "2026-07-12T04:44:29.063Z", "id": "deb733f43772", "op": "flush", "dur_ms": 6148, "ok": true, "lane": 8, "bytes": 53744} +{"ts": "2026-07-12T04:44:35.409Z", "id": "6e35148dbd4e", "op": "render", "dur_ms": 7373, "ok": false, "lane": 3, "bytes": 5591} +{"ts": "2026-07-12T04:44:41.988Z", "id": "4008a9596314", "op": "render", "dur_ms": 4472, "ok": true, "lane": 6, "bytes": 76368} +{"ts": "2026-07-12T04:44:45.225Z", "id": "a69c2aea13f8", "op": "probe", "dur_ms": 4001, "ok": true, "lane": 2, "bytes": 16710} +{"ts": "2026-07-12T04:44:52.739Z", "id": "8f27b42680e8", "op": "probe", "dur_ms": 4876, "ok": true, "lane": 7, "bytes": 55924} +{"ts": "2026-07-12T04:44:58.095Z", "id": "40bf17359ca1", "op": "merge", "dur_ms": 1159, "ok": true, "lane": 8, "bytes": 65565} +{"ts": "2026-07-12T04:45:07.116Z", "id": "2a0fa3550711", "op": "flush", "dur_ms": 5394, "ok": true, "lane": 6, "bytes": 27531} +{"ts": "2026-07-12T04:45:11.092Z", "id": "022bf67ef950", "op": "verify", "dur_ms": 7247, "ok": true, "lane": 1, "bytes": 61253} +{"ts": "2026-07-12T04:45:17.223Z", "id": "14299c46addc", "op": "fetch", "dur_ms": 9151, "ok": true, "lane": 3, "bytes": 23746} +{"ts": "2026-07-12T04:45:19.197Z", "id": "4be5608a9120", "op": "merge", "dur_ms": 6863, "ok": true, "lane": 1, "bytes": 60084} +{"ts": "2026-07-12T04:45:22.902Z", "id": "2343fb217c35", "op": "upload", "dur_ms": 3134, "ok": true, "lane": 4, "bytes": 37260} +{"ts": "2026-07-12T04:45:23.836Z", "id": "73e653805c6a", "op": "upload", "dur_ms": 6162, "ok": true, "lane": 7, "bytes": 73893} +{"ts": "2026-07-12T04:45:28.084Z", "id": "64dcdb97e64f", "op": "decode", "dur_ms": 6193, "ok": false, "lane": 4, "bytes": 45691} +{"ts": "2026-07-12T04:45:32.518Z", "id": "9ac06984d059", "op": "flush", "dur_ms": 7902, "ok": true, "lane": 1, "bytes": 67250} +{"ts": "2026-07-12T04:45:38.293Z", "id": "96b71fc06f1c", "op": "decode", "dur_ms": 2132, "ok": true, "lane": 2, "bytes": 77443} +{"ts": "2026-07-12T04:45:46.390Z", "id": "59df36d69ae3", "op": "fetch", "dur_ms": 1548, "ok": true, "lane": 8, "bytes": 35953} +{"ts": "2026-07-12T04:45:51.026Z", "id": "60b0c5d0ce52", "op": "snap", "dur_ms": 1949, "ok": false, "lane": 2, "bytes": 57222} +{"ts": "2026-07-12T04:45:56.537Z", "id": "8d1122d93e33", "op": "snap", "dur_ms": 4033, "ok": true, "lane": 8, "bytes": 44669} \ No newline at end of file diff --git a/eval/ab/guards-3arm/work/factsheet0.txt b/eval/ab/guards-3arm/work/factsheet0.txt new file mode 100644 index 0000000..69a884a --- /dev/null +++ b/eval/ab/guards-3arm/work/factsheet0.txt @@ -0,0 +1 @@ +[Exact identifiers from the rendered context above (paths, ids, versions, numbers) — quote these verbatim instead of transcribing them from the image: 12c3202cbcd5 · 190f7fb9a6df · 1cf2e3b36326 · 1dedc2c15310 · 1e72f4a2ca46 · 23b9b4f82c57 · 23c296f2446c · 266238e62244 · 2a66e20fde72 · 2aa0f8cb6c9e · 2d8d0538b555 · 2e7f71957cc3 · 2f3c872127dd · 30247f26b574 · 303979dfbf14 · 37bbf1585c5a · 39c66ca82727 · 3e0b638403e0 · 3f0c4984a7dd · 428d227615d1 · 42d1903ed28f · 4c648b72149a · 583460031522 · 5b3d6fa4ef3a · 64bbdf72f0cf · 660cf8da4361 · 677d29fe603d · 692c127b3164 · 6b6047c13aa5 · 6d1fea4bcea3 · 769273b5177e · 76fd2b614160 · 7b2144cd8902 · 7cd052a33d91 · 7eff1957fbfb · 83f4cab655dc · 877702000b16 · 878996f8e622 · 89f612ae0fea · 937f8fbf5ed0 · 96e8ba1b05c8 · 990c069a30c1 · 9992afa58792 · 999b06532578 · 99b615266049 · 9f4b9ce18610 · a1c0068f478f · a73479e5cec4 · a8a8e96e5e03 · adc394feebae · b1c2cbd7937f · b330bf8a77f0 · b43ebfec7526 · b5717301f3c8 · b727b0ad7bdb · b78782f77cd7 · b872a1e65e6c · baf05ca994d7 · bc76c4b48456 · befd54cafac2 · c3211af2580f · c4569b7a2549 · c59f8c757385 · c9a36f225cca · ceccddf70065 · cf4e19530832 · d0113a8925dd · d56d5e6eaaf8 · dd79ed6bf45a · df08ecef2304 · f7d8c8e64048 · fc497fd0c432 · 10781 · 11245 · 12702 · 12980 · 14672 · 20724 · 21022 · 23184 · 23944 · 23978 · 25079 · 27438 · 30824 · 31723 · 33203 · 34095 · 36985 · 37526 · 38151 · 38794 · 39088 · 39331 · 39365 · 40087] \ No newline at end of file diff --git a/eval/ab/guards-3arm/work/factsheet1.txt b/eval/ab/guards-3arm/work/factsheet1.txt new file mode 100644 index 0000000..66404e5 --- /dev/null +++ b/eval/ab/guards-3arm/work/factsheet1.txt @@ -0,0 +1 @@ +[Exact identifiers from the rendered context above (paths, ids, versions, numbers) — quote these verbatim instead of transcribing them from the image: 016adc8a18be · 01a5ad9cf2d7 · 0476ffc03c64 · 05c124232adb · 080fee9493ef · 08f0919effa0 · 0fc387319a83 · 11024c4d126a · 15bb6dd52c4a · 188840290415 · 1a396f648666 · 20c55ef65d1e · 2231fea910cb · 244bb6cef2d4 · 24bbbc43b69f · 29665c38dc6b · 29f7ca808032 · 3061e20b1ca2 · 3669ed721fc1 · 370fa42d7ace · 3be3cfd6c825 · 40f71bd0fd62 · 44e3b0403178 · 4727ba037f1d · 4c84be9b4144 · 4e55b2ada104 · 50826c6969b4 · 534ad728fa40 · 56a1d5ec6b65 · 5a02f4946db5 · 5cb629a9fe42 · 68d320d593a0 · 6a2994ecc326 · 70d2e6f92528 · 711243211628 · 73085fd28ed8 · 751becdde4cf · 76fcc279bfb5 · 8107c03fc6c2 · 849144e04346 · 861a9cc955fa · 8c1049b4ac7d · 9160a43761c3 · 93afc99f8a80 · 9579aa0b286e · 965665b6aef8 · 9dcfac302405 · a1160ebae03f · a4f2d48c88e4 · a5f5a1318d2d · a6475f77a9bf · a6479d0dae49 · b14e41d1395e · b18ce197d8f0 · b6ebd762d61a · b7a58bc9aa7d · b924fa5376aa · ba4b94099c97 · bda7875c322f · bfe0dbd3feb6 · c4a85602a95b · c6ad03792980 · c7d649850097 · c8970e40f642 · cb660f04681d · d34053d8d5ca · d3f618978eca · e96afec65ba3 · e975588e7f8b · f5942dc1fc39 · f6504a025128 · fa774ddabb5b · 10264 · 12110 · 13511 · 14124 · 15480 · 16469 · 17020 · 17737 · 18130 · 18910 · 19365 · 19579 · 19939 · 21543 · 23550 · 23677 · 25121 · 26738 · 30527 · 30942 · 31311 · 37700 · 39177 · 40125] \ No newline at end of file diff --git a/eval/ab/guards-3arm/work/factsheet2.txt b/eval/ab/guards-3arm/work/factsheet2.txt new file mode 100644 index 0000000..b190728 --- /dev/null +++ b/eval/ab/guards-3arm/work/factsheet2.txt @@ -0,0 +1 @@ +[Exact identifiers from the rendered context above (paths, ids, versions, numbers) — quote these verbatim instead of transcribing them from the image: 022bf67ef950 · 050bf0cfd470 · 0ee78636717b · 11bb43b24452 · 11e7f0ebdd13 · 12a4b80452bf · 14299c46addc · 15e9b16d1b8a · 2343fb217c35 · 2665c5acf1e4 · 267e57996987 · 2730a600dd2a · 28980059a1ca · 2a0fa3550711 · 2e5bbe2e6f55 · 35660fc6309a · 3cdf075e82ba · 3f083199338e · 4008a9596314 · 4094303ae851 · 40bf17359ca1 · 40f91141b559 · 4a7d76a233ea · 4be5608a9120 · 517c5976df06 · 531fd1c87ac2 · 55a7e242bb46 · 59df36d69ae3 · 609b33ec43b4 · 60b0c5d0ce52 · 633bda8f07f8 · 64dcdb97e64f · 6e35148dbd4e · 73e653805c6a · 7741f1b51b92 · 779f4f2a1d8d · 7f17fcbaae44 · 815e33d5a205 · 89d735dfdb54 · 8cdd963a7fce · 8d1122d93e33 · 8da1b7ee83ca · 8f27b42680e8 · 965c6340eaed · 96b71fc06f1c · 96ef7a92beb6 · 9ac06984d059 · a55cd4799946 · a69c2aea13f8 · af7e6404735d · af88011035f2 · afdce4064855 · b1535ee7f192 · ba2f9456c62c · ba54890fcb26 · bd196d8c9884 · c2ddefb8022d · c5602cec608c · d06484c2b779 · d20277ff5d75 · d71e0acf0e4d · d88ad87f428a · da4b4c7fee11 · dd8c8b232cd7 · deb733f43772 · e02af3d3c256 · e85a49ef4ce0 · ec2598d0a4d4 · f221f6bd05a6 · f26eeb4a47c3 · f43eb3579f43 · ff12785aec8e · 10547 · 10842 · 12265 · 15711 · 16710 · 16869 · 17628 · 18888 · 19949 · 22313 · 23746 · 23991 · 25753 · 27531 · 28885 · 29337 · 29740 · 33971 · 35953 · 37192 · 37260 · 38895 · 39005 · 39244] \ No newline at end of file diff --git a/eval/ab/guards-3arm/work/meta.json b/eval/ab/guards-3arm/work/meta.json new file mode 100644 index 0000000..54c2109 --- /dev/null +++ b/eval/ab/guards-3arm/work/meta.json @@ -0,0 +1,128 @@ +[ + { + "page": 0, + "lines": 72, + "chars": 9169, + "idsTokens": [ + "12c3202cbcd5", + "190f7fb9a6df", + "1cf2e3b36326", + "1dedc2c15310", + "1e72f4a2ca46", + "23b9b4f82c57", + "23c296f2446c", + "266238e62244", + "2a66e20fde72", + "2aa0f8cb6c9e", + "2d8d0538b555", + "2e7f71957cc3", + "2f3c872127dd", + "30247f26b574", + "303979dfbf14", + "37bbf1585c5a" + ], + "idsHexCount": 16, + "sheetTokenCount": 96, + "sheetHexCount": 72, + "sheetChars": 1421, + "strata": { + "ids+sheet": 16, + "sheet-only": 56, + "uncovered": 0 + }, + "dims": { + "A": { + "w": 648, + "h": 728 + }, + "P": { + "w": 648, + "h": 584 + } + } + }, + { + "page": 1, + "lines": 72, + "chars": 9170, + "idsTokens": [ + "016adc8a18be", + "01a5ad9cf2d7", + "0476ffc03c64", + "05c124232adb", + "080fee9493ef", + "08f0919effa0", + "0fc387319a83", + "11024c4d126a", + "15bb6dd52c4a", + "188840290415", + "1a396f648666", + "20c55ef65d1e", + "2231fea910cb", + "244bb6cef2d4", + "24bbbc43b69f", + "29665c38dc6b" + ], + "idsHexCount": 16, + "sheetTokenCount": 96, + "sheetHexCount": 72, + "sheetChars": 1421, + "strata": { + "ids+sheet": 16, + "sheet-only": 56, + "uncovered": 0 + }, + "dims": { + "A": { + "w": 648, + "h": 728 + }, + "P": { + "w": 648, + "h": 584 + } + } + }, + { + "page": 2, + "lines": 72, + "chars": 9165, + "idsTokens": [ + "022bf67ef950", + "050bf0cfd470", + "0ee78636717b", + "11bb43b24452", + "11e7f0ebdd13", + "12a4b80452bf", + "14299c46addc", + "15e9b16d1b8a", + "2343fb217c35", + "2665c5acf1e4", + "267e57996987", + "2730a600dd2a", + "28980059a1ca", + "2a0fa3550711", + "2e5bbe2e6f55", + "35660fc6309a" + ], + "idsHexCount": 16, + "sheetTokenCount": 96, + "sheetHexCount": 72, + "sheetChars": 1421, + "strata": { + "ids+sheet": 16, + "sheet-only": 56, + "uncovered": 0 + }, + "dims": { + "A": { + "w": 648, + "h": 728 + }, + "P": { + "w": 648, + "h": 584 + } + } + } +] \ No newline at end of file diff --git a/eval/ab/guards-3arm/work/pageA0.png b/eval/ab/guards-3arm/work/pageA0.png new file mode 100644 index 0000000..9fb8480 Binary files /dev/null and b/eval/ab/guards-3arm/work/pageA0.png differ diff --git a/eval/ab/guards-3arm/work/pageA1.png b/eval/ab/guards-3arm/work/pageA1.png new file mode 100644 index 0000000..3fb4365 Binary files /dev/null and b/eval/ab/guards-3arm/work/pageA1.png differ diff --git a/eval/ab/guards-3arm/work/pageA2.png b/eval/ab/guards-3arm/work/pageA2.png new file mode 100644 index 0000000..79cedb9 Binary files /dev/null and b/eval/ab/guards-3arm/work/pageA2.png differ diff --git a/eval/ab/guards-3arm/work/pageP0.png b/eval/ab/guards-3arm/work/pageP0.png new file mode 100644 index 0000000..b6226f5 Binary files /dev/null and b/eval/ab/guards-3arm/work/pageP0.png differ diff --git a/eval/ab/guards-3arm/work/pageP1.png b/eval/ab/guards-3arm/work/pageP1.png new file mode 100644 index 0000000..9924bad Binary files /dev/null and b/eval/ab/guards-3arm/work/pageP1.png differ diff --git a/eval/ab/guards-3arm/work/pageP2.png b/eval/ab/guards-3arm/work/pageP2.png new file mode 100644 index 0000000..c83a8b6 Binary files /dev/null and b/eval/ab/guards-3arm/work/pageP2.png differ diff --git a/eval/ab/guards-3arm/work/trials.json b/eval/ab/guards-3arm/work/trials.json new file mode 100644 index 0000000..fa412d4 --- /dev/null +++ b/eval/ab/guards-3arm/work/trials.json @@ -0,0 +1,170 @@ +[ + { + "i": 0, + "page": 0, + "stratum": "ids+sheet", + "dur": 5588, + "gold": "2e7f71957cc3" + }, + { + "i": 1, + "page": 0, + "stratum": "ids+sheet", + "dur": 3218, + "gold": "1cf2e3b36326" + }, + { + "i": 2, + "page": 0, + "stratum": "ids+sheet", + "dur": 6563, + "gold": "2aa0f8cb6c9e" + }, + { + "i": 3, + "page": 0, + "stratum": "ids+sheet", + "dur": 8163, + "gold": "1dedc2c15310" + }, + { + "i": 4, + "page": 0, + "stratum": "sheet-only", + "dur": 7028, + "gold": "7cd052a33d91" + }, + { + "i": 5, + "page": 0, + "stratum": "sheet-only", + "dur": 2469, + "gold": "bc76c4b48456" + }, + { + "i": 6, + "page": 0, + "stratum": "sheet-only", + "dur": 7280, + "gold": "42d1903ed28f" + }, + { + "i": 7, + "page": 0, + "stratum": "sheet-only", + "dur": 509, + "gold": "c4569b7a2549" + }, + { + "i": 8, + "page": 1, + "stratum": "ids+sheet", + "dur": 2994, + "gold": "2231fea910cb" + }, + { + "i": 9, + "page": 1, + "stratum": "ids+sheet", + "dur": 956, + "gold": "080fee9493ef" + }, + { + "i": 10, + "page": 1, + "stratum": "ids+sheet", + "dur": 7919, + "gold": "11024c4d126a" + }, + { + "i": 11, + "page": 1, + "stratum": "ids+sheet", + "dur": 5028, + "gold": "01a5ad9cf2d7" + }, + { + "i": 12, + "page": 1, + "stratum": "sheet-only", + "dur": 8320, + "gold": "3be3cfd6c825" + }, + { + "i": 13, + "page": 1, + "stratum": "sheet-only", + "dur": 2195, + "gold": "b14e41d1395e" + }, + { + "i": 14, + "page": 1, + "stratum": "sheet-only", + "dur": 7718, + "gold": "3061e20b1ca2" + }, + { + "i": 15, + "page": 1, + "stratum": "sheet-only", + "dur": 2617, + "gold": "4e55b2ada104" + }, + { + "i": 16, + "page": 2, + "stratum": "ids+sheet", + "dur": 1547, + "gold": "11e7f0ebdd13" + }, + { + "i": 17, + "page": 2, + "stratum": "ids+sheet", + "dur": 2378, + "gold": "0ee78636717b" + }, + { + "i": 18, + "page": 2, + "stratum": "ids+sheet", + "dur": 5611, + "gold": "12a4b80452bf" + }, + { + "i": 19, + "page": 2, + "stratum": "ids+sheet", + "dur": 8127, + "gold": "11bb43b24452" + }, + { + "i": 20, + "page": 2, + "stratum": "sheet-only", + "dur": 9059, + "gold": "3f083199338e" + }, + { + "i": 21, + "page": 2, + "stratum": "sheet-only", + "dur": 1771, + "gold": "8cdd963a7fce" + }, + { + "i": 22, + "page": 2, + "stratum": "sheet-only", + "dur": 7052, + "gold": "3cdf075e82ba" + }, + { + "i": 23, + "page": 2, + "stratum": "sheet-only", + "dur": 6162, + "gold": "73e653805c6a" + } +] \ No newline at end of file diff --git a/eval/ab/guards-3arm/work/trials.txt b/eval/ab/guards-3arm/work/trials.txt new file mode 100644 index 0000000..477e610 --- /dev/null +++ b/eval/ab/guards-3arm/work/trials.txt @@ -0,0 +1,24 @@ +0 0 ids+sheet 5588 2e7f71957cc3 +1 0 ids+sheet 3218 1cf2e3b36326 +2 0 ids+sheet 6563 2aa0f8cb6c9e +3 0 ids+sheet 8163 1dedc2c15310 +4 0 sheet-only 7028 7cd052a33d91 +5 0 sheet-only 2469 bc76c4b48456 +6 0 sheet-only 7280 42d1903ed28f +7 0 sheet-only 509 c4569b7a2549 +8 1 ids+sheet 2994 2231fea910cb +9 1 ids+sheet 956 080fee9493ef +10 1 ids+sheet 7919 11024c4d126a +11 1 ids+sheet 5028 01a5ad9cf2d7 +12 1 sheet-only 8320 3be3cfd6c825 +13 1 sheet-only 2195 b14e41d1395e +14 1 sheet-only 7718 3061e20b1ca2 +15 1 sheet-only 2617 4e55b2ada104 +16 2 ids+sheet 1547 11e7f0ebdd13 +17 2 ids+sheet 2378 0ee78636717b +18 2 ids+sheet 5611 12a4b80452bf +19 2 ids+sheet 8127 11bb43b24452 +20 2 sheet-only 9059 3f083199338e +21 2 sheet-only 1771 8cdd963a7fce +22 2 sheet-only 7052 3cdf075e82ba +23 2 sheet-only 6162 73e653805c6a