@agentguard-run/burn 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,55 @@
1
+ # Burn live instrument panel
2
+
3
+ `agentguard-burn live` reads the local session cache and decision ledgers every half second. It does not change admission, write session state, or open a socket. Use `--session ID` to select a session, `--once` for one frame, and `--record run.jsonl` for a local structured recording. `q` quits and `p` pauses display updates. An observed STOP holds its reason for two seconds while intake continues, then releases the latest view.
4
+
5
+ ```sh
6
+ agentguard-burn live --session e86f091b --record local-run.jsonl
7
+ agentguard-burn live --replay local-run.jsonl
8
+ agentguard-burn render local-run.jsonl --mp4 local-run.mp4 --gif local-run.gif
9
+ ```
10
+
11
+ The panel uses the existing Canvas and palette. SPAWNS and TOKENS IN WINDOW are observed bucket sums over the policy's active-minute window, including inherited team thresholds. The rate bar becomes amber at 80 percent of the configured STOP ceiling and red at the ceiling. REPLAY SHARE is session cache-read tokens divided by all observed tokens. It is a cache-read proxy, not measured repeated semantic work. No numeric value is synthesized when the corresponding source is unavailable.
12
+
13
+ The right column shows the last eight locally recorded decisions. Historical ledgers record an action such as `spawn`, rather than the host's precise tool name; the panel displays that action. At fewer than 80 columns the right column is omitted, leaving full-width counters and the STOP card. The tested geometries are 104x35, 80x24 and a 43-column compact view rendered natively at 390 pixels.
14
+
15
+ Colored STOP reports use the same panel without reading files or delaying a hook. Their missing token-window, window-length and elapsed values remain unknown. They do not claim a two-second interactive hold. Existing plain-text cards and hook protocol bytes use their previous paths.
16
+
17
+ ## Verification
18
+
19
+ The full Node22 suite passed **265/265**, zero failures or skips, with `AGENTGUARD_STRESS=1`. The fixture stress test admitted exactly 40 of 240 concurrent hooks, denied 200, and verified the receipt chain. Full output is retained in `/private/tmp/burn-rulepack-panel-tests-final.log`. The first sandboxed attempt could not bind its local conformance server; the full permitted rerun passed.
20
+
21
+ ## September 19 evidence
22
+
23
+ The site figure comes from `assets/stop-capture.txt` and `docs/redesign-2026-09/hero/REPORT.md`, which explicitly disclose prepared synthetic history and a real hook decision (receipt `4cb15245-a57e-463c-aed5-32b143c5d719`). The older `docs/STOP_CLIP_2026-09.md` describes another prepared capture. Those captures do not establish a naturally observed rate storm.
24
+
25
+ The search covered all 13 receipts and 148 decision rows in the current local Burn ledgers, not only the selected session. September 19 UTC contains 11 rows in each ledger and two STOPs; September 19 Pacific contains 12 rows and one STOP. Every STOP uses fanout plus duplicate-work; neither date scope contains a spawn-rate finding. The evidence file records source hashes and both date boundaries. This search does not claim coverage of deleted or alternate-home ledgers.
26
+
27
+ The actual signed receipt is `d2f3ceec-816c-41ad-9e1d-23401eeb44f3`, session digest `3fa090ccbdfeaaa5de7b660af6dfb8dddfac5112e7a95188a0be494a90740263`. Ed25519 verification passed. Its timestamp is `2026-09-19T14:56:57.824Z`. The gate was historical **lifetime fanout: 48 proposed spawns against 40**, with a duplicate-work WARN. It was not the current 16-spawns-per-15-active-minutes gate.
28
+
29
+ The current deduplicating reader, restricted to the receipt timestamp, finds 47 observed spawns, 1,628,919,976 total tokens and 1,599,279,923 cache-read tokens. Its final 15-active-minute window has **one spawn and 8,086,525 tokens**. These are a fresh reconstruction from the parent and its 45 child transcripts. They are not the historical inflated usage totals retained in the signed receipt. Live state and policy were not rewritten.
30
+
31
+ The bounded clip starts at the real usage observation `14:56:18.247Z`. The next observed spawn is at `14:56:57.749Z`, followed 75 milliseconds later by the signed block. The counters show the actual zero-to-one spawn change. The reference rate bar stays below 16. The requested storm and rate-ceiling crossing cannot be substantiated from this event.
32
+
33
+ Original observation times are preserved. One-second display-clock ticks add no observations. The STOP card remains for two seconds, followed by the renderer's one-second final frame. The source observation interval lasts 39.577 seconds; the MP4 lasts 42.577001 seconds. GIF stores centisecond timing and lasts 42.58 seconds. Earlier session activity and later observations are outside the clip; prior decision rows provide context. Every frame says `RECORDED RUN · 1x`.
34
+
35
+ Assets live in `docs/assets/`:
36
+
37
+ - `burn-live-sep19.mp4` and `burn-live-sep19.gif`: 1920x1080.
38
+ - `burn-live-sep19-stop-1920.png`: the actual STOP frame.
39
+ - `burn-live-sep19-stop-390.png`: native compact Canvas rendering at 390x540.
40
+ - `burn-live-sep19.jsonl`: content-free frames written through the actual `live --replay --record` command.
41
+ - `burn-live-sep19.observations.jsonl`: the reconstructed input; CLI output preserves its frame data, timestamps and viewport exactly.
42
+ - `burn-live-sep19.receipt.json`: original signed receipt.
43
+ - `burn-live-sep19.evidence.json`: input hashes, receipt verification, timing, omissions, and media hashes.
44
+ - `burn-live-sep19.mp4.provenance.json`: renderer, font, frame times and encoding command.
45
+
46
+ Re-render the shipped recording without reading any private session data:
47
+
48
+ ```sh
49
+ agentguard-burn live --replay docs/assets/burn-live-sep19.jsonl --once --no-color --record /tmp/burn-review.jsonl
50
+ agentguard-burn render /tmp/burn-review.jsonl --mp4 /tmp/burn-review.mp4 --gif /tmp/burn-review.gif
51
+ ```
52
+
53
+ The non-TTY replay above checks the recording path; its stdout is not a timed terminal capture. The rendered media uses the original frame timestamps. The showcase itself was run through this CLI path, with frame equality checked before encoding.
54
+
55
+ Reconstruct with `npm run build` then `node scripts/record-september19.cjs /tmp/burn-september19-review`. The script requires the matching verified local receipt and transcripts and refuses to overwrite outputs. It exports numbers, opaque identifiers, action labels and detector reasons. It does not export tool inputs, outputs, prompts, source paths or file contents.
@@ -0,0 +1,288 @@
1
+ {
2
+ "receipt_verified": true,
3
+ "ledger_search": [
4
+ {
5
+ "ledger": "receipts.ndjson",
6
+ "scope": "UTC",
7
+ "total_rows": 13,
8
+ "date_rows": 11,
9
+ "stop_rows": 2,
10
+ "spawn_rate_rows": 0
11
+ },
12
+ {
13
+ "ledger": "receipts.ndjson",
14
+ "scope": "Pacific",
15
+ "total_rows": 13,
16
+ "date_rows": 12,
17
+ "stop_rows": 1,
18
+ "spawn_rate_rows": 0
19
+ },
20
+ {
21
+ "ledger": "decisions.ndjson",
22
+ "scope": "UTC",
23
+ "total_rows": 148,
24
+ "date_rows": 11,
25
+ "stop_rows": 2,
26
+ "spawn_rate_rows": 0
27
+ },
28
+ {
29
+ "ledger": "decisions.ndjson",
30
+ "scope": "Pacific",
31
+ "total_rows": 148,
32
+ "date_rows": 12,
33
+ "stop_rows": 1,
34
+ "spawn_rate_rows": 0
35
+ }
36
+ ],
37
+ "site_capture_sources": [
38
+ {
39
+ "relative_path": "assets/stop-capture.txt",
40
+ "sha256": "9da285376fe618a3130955c31c7ab3d35b5e6de45963da0a9911ccaea707ea09",
41
+ "discloses_prepared_history": true
42
+ },
43
+ {
44
+ "relative_path": "docs/redesign-2026-09/hero/REPORT.md",
45
+ "sha256": "b84096959799fa04041b426024d561347239f83fe30890b8618cf96f47dbce5d",
46
+ "discloses_prepared_history": true
47
+ },
48
+ {
49
+ "relative_path": "docs/STOP_CLIP_2026-09.md",
50
+ "sha256": "71f11b67e9fb7b52941bc32ac557eedfbf7ca9fa8cf3d9e0d3b286aca98b41b0",
51
+ "discloses_prepared_history": true
52
+ }
53
+ ],
54
+ "cli_recording": {
55
+ "command": "agentguard-burn live --replay burn-live-sep19.observations.jsonl --once --no-color --record burn-live-sep19.jsonl",
56
+ "frame_data_timestamps_and_viewport_identical": true,
57
+ "stdout_is_not_a_timed_capture": true
58
+ },
59
+ "receipt_sha256": "b46871a3cfeb203fababf81946d30acd22479b7b2af616370092c712d9da948c",
60
+ "receipt_id": "d2f3ceec-816c-41ad-9e1d-23401eeb44f3",
61
+ "session_digest": "3fa090ccbdfeaaa5de7b660af6dfb8dddfac5112e7a95188a0be494a90740263",
62
+ "receipts_ledger_sha256": "b7fa92561e0e9d9a201eebe031a90ed4106dae020d4645506b342ecc09065898",
63
+ "decisions_ledger_sha256": "503331af4e695f28f830302805558075c640f428b52246422c55419bbd3741cd",
64
+ "source_files": [
65
+ {
66
+ "role": "parent transcript",
67
+ "sha256": "e03804372ffa73c526b863096261d9020ff6d1f4ec6ec49d257c843b430a05cd"
68
+ },
69
+ {
70
+ "role": "child transcript",
71
+ "sha256": "fb72efad9b6a3a3f892cc7cdfb13c5e6ce2f6a100b42c1e9ec8f35b08c23c6ed"
72
+ },
73
+ {
74
+ "role": "child transcript",
75
+ "sha256": "a177e5d3f2b2ac692e3855ecc7a956873f327fc25aadf502bfe61eb24a79d7f0"
76
+ },
77
+ {
78
+ "role": "child transcript",
79
+ "sha256": "9a2ec39f738ac309a7562f935484f7d74432571a75ba7a78de12b02a6cb7b201"
80
+ },
81
+ {
82
+ "role": "child transcript",
83
+ "sha256": "5e962fbc8a654b1980dc41fe600638d20778146807cee149f8d7112a99b58e7a"
84
+ },
85
+ {
86
+ "role": "child transcript",
87
+ "sha256": "24cfb0864c80c3e7195942c4ed2ef85b561ed09f5e51f65002e6d2256bbb6199"
88
+ },
89
+ {
90
+ "role": "child transcript",
91
+ "sha256": "283eea347311a0458b899e0c6bb97dc516b1480dc744c66a18fd7ce5fa6aaa5e"
92
+ },
93
+ {
94
+ "role": "child transcript",
95
+ "sha256": "5d980691f48e18d853da98c3afbef5bb6cc6d9202f2dde44b745e16395d3e452"
96
+ },
97
+ {
98
+ "role": "child transcript",
99
+ "sha256": "49d1fc94f4dbdb395f341271b9ef53a3a25166985923a5f0c5113a80df74f47a"
100
+ },
101
+ {
102
+ "role": "child transcript",
103
+ "sha256": "f2d02db65cdc10b429c928e7f270ff6278058a6375d593418f78d1b7f9d2f237"
104
+ },
105
+ {
106
+ "role": "child transcript",
107
+ "sha256": "b11301e2a2a47607b7450de56f6fef328d2b461fd2102493dcd318c530bfca9f"
108
+ },
109
+ {
110
+ "role": "child transcript",
111
+ "sha256": "5b49e66fc92a0a9206460f225eb545896e51df91d0050eb6caf29e4c373a2d1f"
112
+ },
113
+ {
114
+ "role": "child transcript",
115
+ "sha256": "4361b129375583a79da9580bcbb3be8065efb08e917ab4281334a19a1907300d"
116
+ },
117
+ {
118
+ "role": "child transcript",
119
+ "sha256": "ce22debd96b8d85c612dd12d3f3ebf97508f52c95d41470dc3e69a81edd516d0"
120
+ },
121
+ {
122
+ "role": "child transcript",
123
+ "sha256": "31d1b33e684a143879742dfaa2d703903b44d661310e528117a6df9eaedfd58d"
124
+ },
125
+ {
126
+ "role": "child transcript",
127
+ "sha256": "e9dbc8b6eda13e8ca545bcb25dae13d502bf569ac638f8202f45791d66128a7e"
128
+ },
129
+ {
130
+ "role": "child transcript",
131
+ "sha256": "88ea801434684e01ebe3d9b159ca38e0ddd813f24a3f8271e581496edb37214d"
132
+ },
133
+ {
134
+ "role": "child transcript",
135
+ "sha256": "93b3fbf110320d0a54307a0dd265e53a374a70218333baeacc0262ebdcdffaa9"
136
+ },
137
+ {
138
+ "role": "child transcript",
139
+ "sha256": "dbc3df30407aae1d14ae1053e954e57588e17f933013f5ecf41b06fedfb3a028"
140
+ },
141
+ {
142
+ "role": "child transcript",
143
+ "sha256": "796c81f284d2a0be91c05393797ef8a891a9f20baad841449a4d3e434e0df33b"
144
+ },
145
+ {
146
+ "role": "child transcript",
147
+ "sha256": "4894840661069bbe53ee7304740113e3ed8aca4c7ac180f61acd8b112faed08f"
148
+ },
149
+ {
150
+ "role": "child transcript",
151
+ "sha256": "bafd6a55cfd94a992ae4890ee845b0fc7f49b4410f23896afc7f83ec0cbeb494"
152
+ },
153
+ {
154
+ "role": "child transcript",
155
+ "sha256": "e04cc31b3b80dd3b775a534a15ab0b8fef7fc8cfd65f827780e9e0acd29eb4e3"
156
+ },
157
+ {
158
+ "role": "child transcript",
159
+ "sha256": "fe9e02cba15dbfe7676d89d3510f422b8acc8b1f026b8d8f37b5477ce2049c23"
160
+ },
161
+ {
162
+ "role": "child transcript",
163
+ "sha256": "593738b8533015d9504033b0afe66e123b6aedfe71e69ebbaec2f80c422ce2f8"
164
+ },
165
+ {
166
+ "role": "child transcript",
167
+ "sha256": "11da50efa0d68b99fc1c3f39c21f1192d88d631174c98500a3a224e35ca3de0c"
168
+ },
169
+ {
170
+ "role": "child transcript",
171
+ "sha256": "3543da8cb0dc23998cdfb048d8576b98be1562ea2c585055433e3c95fe3eb051"
172
+ },
173
+ {
174
+ "role": "child transcript",
175
+ "sha256": "c6460a8f8d6071af147957033c86b60fbaa684a653ff5743a8261112dc495a41"
176
+ },
177
+ {
178
+ "role": "child transcript",
179
+ "sha256": "5543a25e5979c136308bd1c49b5d20eef53851a01f5a622e5d9b72d9c01ca399"
180
+ },
181
+ {
182
+ "role": "child transcript",
183
+ "sha256": "9833600b9338c297a8fe86d6ae8d783f80403a8510f6b1192baaa03a0736a5bc"
184
+ },
185
+ {
186
+ "role": "child transcript",
187
+ "sha256": "d0d1e705d3b000d91df754fea2c0af93074529980500d94f53e83aac6eefe400"
188
+ },
189
+ {
190
+ "role": "child transcript",
191
+ "sha256": "17848e0ba0d0ee2508ff824478144a435a7b7d12e66c3cb255a1805b84ef5e47"
192
+ },
193
+ {
194
+ "role": "child transcript",
195
+ "sha256": "a5ed36b7d17ec3da2e98ef8e3bb0456e894d18e918012f679ca45a03c0971e84"
196
+ },
197
+ {
198
+ "role": "child transcript",
199
+ "sha256": "e7afa6e688eeb97c224cd687639191bfb5730f77ae2c0f426d253b90d7f22416"
200
+ },
201
+ {
202
+ "role": "child transcript",
203
+ "sha256": "884764f0a6ac584da1a34c2c60270efc068e3b5c1f4cad79d92a5baf1d6151c0"
204
+ },
205
+ {
206
+ "role": "child transcript",
207
+ "sha256": "835365b6736af0c6389925d8490d5a173773093d4cab6a5be0481f97d8c58e73"
208
+ },
209
+ {
210
+ "role": "child transcript",
211
+ "sha256": "454038ed5bf3aec9183bf955ccc8cea9e77ca512a5fcbbf0db9fb4d04795f100"
212
+ },
213
+ {
214
+ "role": "child transcript",
215
+ "sha256": "862a476a9ce4ca026d251216d76549a2fcb46d5421851ed6ac29efb56ebaf169"
216
+ },
217
+ {
218
+ "role": "child transcript",
219
+ "sha256": "082a34a2d20f9c696de84d70c6b24afe72612c2ff588d86f7e07ead995194767"
220
+ },
221
+ {
222
+ "role": "child transcript",
223
+ "sha256": "78a319db493ac9f052551d71c6118fd8ba658080b2b4915a5683d808d66c07b9"
224
+ },
225
+ {
226
+ "role": "child transcript",
227
+ "sha256": "bfb1bd3e7281a3ac79a6c3bd4dbe40e149997e45b82b1e05c05892e888f2730f"
228
+ },
229
+ {
230
+ "role": "child transcript",
231
+ "sha256": "613a74992c51ff6cf42d073e314c938c5484769b1c2b384a431b6a260c68f154"
232
+ },
233
+ {
234
+ "role": "child transcript",
235
+ "sha256": "9f08151f521f16e5795856c32d6206df7c84fb2be7c503a5061ad387298a4623"
236
+ },
237
+ {
238
+ "role": "child transcript",
239
+ "sha256": "3b8c3bce6332be6facf9b2e961580ed21ba69e157d9d0fec0902d15516d61abd"
240
+ },
241
+ {
242
+ "role": "child transcript",
243
+ "sha256": "6e953d95757b5924fc8534712e20be460a7987ff9c0d31dd6cd5bfb88dc56e96"
244
+ },
245
+ {
246
+ "role": "child transcript",
247
+ "sha256": "5e50d304214b48d9023b4c32fa85c01e3de80f1679c21f3afc8301d538265d4f"
248
+ }
249
+ ],
250
+ "clip_start": "2026-09-19T14:56:18.247Z",
251
+ "signed_stop_at": "2026-09-19T14:56:57.824Z",
252
+ "clip_end": "2026-09-19T14:56:59.824Z",
253
+ "original_observation_times": [
254
+ "2026-09-19T14:56:18.247Z",
255
+ "2026-09-19T14:56:57.749Z"
256
+ ],
257
+ "display_ticks": "One-second display-clock ticks plus original transcript and receipt timestamps. Counts change only at original observations. No time compression.",
258
+ "historical_gate": {
259
+ "detector": "fanout",
260
+ "scope": "lifetime",
261
+ "observed": 48,
262
+ "threshold": 40
263
+ },
264
+ "current_reader_at_block": {
265
+ "total_tokens": 1628919976,
266
+ "total_cache_read": 1599279923,
267
+ "completed_spawns": 47,
268
+ "window_spawns": 1,
269
+ "window_tokens": 8086525
270
+ },
271
+ "measurement": "Current deduplicating readAll reader, session plus its own child transcripts, filtered through the signed receipt timestamp. No live state was rewritten.",
272
+ "limits": [
273
+ "The requested 16-spawns-in-15-active-minutes storm is not supported by this event. The displayed current-reference rate bar remains below its ceiling.",
274
+ "The historical receipt retains legacy inflated token totals. The panel uses a fresh deduplicated recount, not those legacy totals.",
275
+ "All observations before the clip start and after the signed block are outside this bounded clip. Prior decisions remain visible as historical context.",
276
+ "The stored decision rows name the action spawn, not the host tool name. No tool name is invented.",
277
+ "Replay share means session cache-read tokens divided by all observed tokens. It is a proxy, not a measurement of repeated semantic work.",
278
+ "The display holds the STOP reason for two seconds after the signed timestamp. The renderer then holds the final released frame for one second."
279
+ ],
280
+ "output_sha256": {
281
+ "burn-live-sep19.jsonl": "2404866fa112d9423918b1d4612bf2c853191c7c5b2a1b4066d667fc53b4127d",
282
+ "burn-live-sep19.observations.jsonl": "1649ba637a7a528aca977a705aa1a90e19a50f6b12de98572615d8f1d6361a8f",
283
+ "burn-live-sep19-stop-390.png": "e6bf186febff7849ddd696f2632e438813dfb2019720bd740fdae22235df12d8",
284
+ "burn-live-sep19.mp4": "c9459e58dfaa18685c0622512178385ed8bd19ed045df14e34935cdab494f697",
285
+ "burn-live-sep19.gif": "bbc6c701e31b2089fa921b8ecd599d5df74e5201162f9471a2e0c75a2fd663f6",
286
+ "burn-live-sep19-stop-1920.png": "54e2c10b857b11987a9fd23c2b4c312eb254b1b3308199047dc0f8192e5bf191"
287
+ }
288
+ }
Binary file