@raquezha/notrace 0.1.1 → 0.2.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/CHANGELOG.md +18 -0
- package/dist/notrace/index.d.ts +34 -0
- package/dist/notrace/index.js +144 -118
- package/dist/notrace/report-app/__tests__/analytics.test.d.ts +1 -0
- package/dist/notrace/report-app/__tests__/analytics.test.js +35 -0
- package/dist/notrace/report-app/__tests__/card.test.d.ts +1 -0
- package/dist/notrace/report-app/__tests__/card.test.js +26 -0
- package/dist/notrace/report-app/__tests__/event.test.d.ts +1 -0
- package/dist/notrace/report-app/__tests__/event.test.js +20 -0
- package/dist/notrace/report-app/__tests__/format.test.d.ts +1 -0
- package/dist/notrace/report-app/__tests__/format.test.js +41 -0
- package/dist/notrace/report-app/__tests__/report.test.d.ts +1 -0
- package/dist/notrace/report-app/__tests__/report.test.js +31 -0
- package/dist/notrace/report-app/analytics.d.ts +3 -0
- package/dist/notrace/report-app/analytics.js +78 -0
- package/dist/notrace/report-app/client.d.ts +2 -0
- package/dist/notrace/report-app/client.js +105 -0
- package/dist/notrace/report-app/components/card.d.ts +4 -0
- package/dist/notrace/report-app/components/card.js +36 -0
- package/dist/notrace/report-app/components/dashboard.d.ts +1 -0
- package/dist/notrace/report-app/components/dashboard.js +16 -0
- package/dist/notrace/report-app/components/event.d.ts +5 -0
- package/dist/notrace/report-app/components/event.js +42 -0
- package/dist/notrace/report-app/components/message.d.ts +2 -0
- package/dist/notrace/report-app/components/message.js +43 -0
- package/dist/notrace/report-app/dashboard-report.d.ts +1 -0
- package/dist/notrace/report-app/dashboard-report.js +6 -0
- package/dist/notrace/report-app/escape.d.ts +1 -0
- package/dist/notrace/report-app/escape.js +10 -0
- package/dist/notrace/report-app/format.d.ts +13 -0
- package/dist/notrace/report-app/format.js +102 -0
- package/dist/notrace/report-app/report.d.ts +1 -0
- package/dist/notrace/report-app/report.js +29 -0
- package/dist/notrace/report-app/shell.d.ts +5 -0
- package/dist/notrace/report-app/shell.js +19 -0
- package/dist/notrace/report-app/styles.d.ts +1 -0
- package/dist/notrace/report-app/styles.js +431 -0
- package/dist/notrace/report-app/types.d.ts +28 -0
- package/dist/notrace/report-app/types.js +1 -0
- package/extensions/notrace/__tests__/ghost-session.test.ts +103 -0
- package/extensions/notrace/__tests__/helpers.ts +11 -0
- package/extensions/notrace/__tests__/lock-race.test.ts +176 -0
- package/extensions/notrace/__tests__/usage-normalization.test.ts +80 -0
- package/extensions/notrace/index.ts +160 -124
- package/extensions/notrace/report-app/__tests__/analytics.test.ts +41 -0
- package/extensions/notrace/report-app/__tests__/card.test.ts +29 -0
- package/extensions/notrace/report-app/__tests__/event.test.ts +23 -0
- package/extensions/notrace/report-app/__tests__/format.test.ts +46 -0
- package/extensions/notrace/report-app/__tests__/report.test.ts +33 -0
- package/extensions/notrace/report-app/analytics.ts +79 -0
- package/extensions/notrace/report-app/client.ts +106 -0
- package/extensions/notrace/report-app/components/card.ts +38 -0
- package/extensions/notrace/report-app/components/dashboard.ts +17 -0
- package/extensions/notrace/report-app/components/event.ts +39 -0
- package/extensions/notrace/report-app/components/message.ts +39 -0
- package/extensions/notrace/report-app/dashboard-report.ts +7 -0
- package/extensions/notrace/report-app/escape.ts +10 -0
- package/extensions/notrace/report-app/format.ts +107 -0
- package/extensions/notrace/report-app/report.ts +33 -0
- package/extensions/notrace/report-app/shell.ts +24 -0
- package/extensions/notrace/report-app/styles.ts +431 -0
- package/extensions/notrace/report-app/types.ts +35 -0
- package/package.json +4 -2
- package/templates/dashboard.sample.html +103 -63
- package/templates/dashboard.sample.json +73 -10
- package/templates/render-samples.mjs +119 -1
- package/templates/session.sample.html +125 -168
- package/templates/session.sample.json +66 -7
- package/templates/sessions/019ed2ee-1000-76ee-b353-000000000001/notrace.html +125 -163
- package/templates/sessions/019ed2ee-1000-76ee-b353-000000000001/notrace.json +50 -0
- package/templates/sessions/019ed2ee-1001-76ee-b353-000000000002/notrace.html +125 -162
- package/templates/sessions/019ed2ee-1001-76ee-b353-000000000002/notrace.json +50 -0
- package/templates/sessions/019ed2ee-1002-76ee-b353-000000000003/notrace.html +125 -163
- package/templates/sessions/019ed2ee-1002-76ee-b353-000000000003/notrace.json +50 -0
- package/templates/sessions/019ed2ee-massive/notrace.html +498 -0
- package/templates/sessions/019ed2ee-massive/notrace.json +14660 -0
- package/tsconfig.json +1 -1
- package/dist/notrace/renderer.d.ts +0 -4
- package/dist/notrace/renderer.js +0 -800
- package/extensions/notrace/renderer.ts +0 -810
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
<title>notrace - 019ed2ee-1002-76ee-b353-000000000003</title>
|
|
7
|
-
<link rel="icon" href="data:image/svg+xml,%3Csvg%20width%3D%22100%22%20height%3D%22100%22%20viewBox%3D%220%200%20100%20100%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20role%3D%22img%22%3E%3Ctitle%3Enotrace%20logo%20mark%3C%2Ftitle%3E%3Cdesc%3EA%20wave%20that%20smooths%20into%20a%20flat%20line%2C%20then%20fades%20into%20dots%20%E2%80%94%20color%20shifts%20from%20trace%20orange%20to%20no%20cream%20as%20it%20dissolves.%3C%2Fdesc%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22fadeGrad%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%22100%25%22%20y2%3D%220%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23E2754A%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23EDE2D2%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cg%20id%3D%22trace-icon%22%3E%3Cpath%20d%3D%22M6%2C50%20C16%2C18%2026%2C18%2036%2C50%20C46%2C82%2054%2C82%2060%2C50%20C64%2C30%2068%2C30%2071%2C50%22%20fill%3D%22none%22%20stroke%3D%22url(%23fadeGrad)%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%2F%3E%3Cline%20x1%3D%2274%22%20y1%3D%2250%22%20x2%3D%2279%22%20y2%3D%2250%22%20stroke%3D%22%23D9C9B5%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%20stroke-opacity%3D%220.6%22%2F%3E%3Ccircle%20cx%3D%2285%22%20cy%3D%2250%22%20r%3D%222.2%22%20fill%3D%22%23D9C9B5%22%20opacity%3D%220.5%22%2F%3E%3Ccircle%20cx%3D%2290%22%20cy%3D%2250%22%20r%3D%221.4%22%20fill%3D%22%23EDE2D2%22%20opacity%3D%220.32%22%2F%3E%3Ccircle%20cx%3D%2294%22%20cy%3D%2250%22%20r%3D%220.9%22%20fill%3D%22%23EDE2D2%22%20opacity%3D%220.15%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E">
|
|
8
|
-
<style>
|
|
9
|
-
:root {
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>notrace - 019ed2ee-1002-76ee-b353-000000000003</title><link rel="icon" href="data:image/svg+xml,%3Csvg%20width%3D%22100%22%20height%3D%22100%22%20viewBox%3D%220%200%20100%20100%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20role%3D%22img%22%3E%3Ctitle%3Enotrace%20logo%20mark%3C%2Ftitle%3E%3Cdesc%3EA%20wave%20that%20smooths%20into%20a%20flat%20line%2C%20then%20fades%20into%20dots%20%E2%80%94%20color%20shifts%20from%20trace%20orange%20to%20no%20cream%20as%20it%20dissolves.%3C%2Fdesc%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22fadeGrad%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%22100%25%22%20y2%3D%220%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23E2754A%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23EDE2D2%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cg%20id%3D%22trace-icon%22%3E%3Cpath%20d%3D%22M6%2C50%20C16%2C18%2026%2C18%2036%2C50%20C46%2C82%2054%2C82%2060%2C50%20C64%2C30%2068%2C30%2071%2C50%22%20fill%3D%22none%22%20stroke%3D%22url(%23fadeGrad)%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%2F%3E%3Cline%20x1%3D%2274%22%20y1%3D%2250%22%20x2%3D%2279%22%20y2%3D%2250%22%20stroke%3D%22%23D9C9B5%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%20stroke-opacity%3D%220.6%22%2F%3E%3Ccircle%20cx%3D%2285%22%20cy%3D%2250%22%20r%3D%222.2%22%20fill%3D%22%23D9C9B5%22%20opacity%3D%220.5%22%2F%3E%3Ccircle%20cx%3D%2290%22%20cy%3D%2250%22%20r%3D%221.4%22%20fill%3D%22%23EDE2D2%22%20opacity%3D%220.32%22%2F%3E%3Ccircle%20cx%3D%2294%22%20cy%3D%2250%22%20r%3D%220.9%22%20fill%3D%22%23EDE2D2%22%20opacity%3D%220.15%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"><style>:root {
|
|
10
2
|
--bg: #0c0b0a;
|
|
11
3
|
--panel: rgba(255,255,255,0.04);
|
|
12
4
|
--panel-strong: rgba(255,255,255,0.06);
|
|
@@ -55,6 +47,30 @@
|
|
|
55
47
|
gap: 16px;
|
|
56
48
|
align-items: start;
|
|
57
49
|
}
|
|
50
|
+
.hero-split {
|
|
51
|
+
display: grid;
|
|
52
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
53
|
+
gap: 16px;
|
|
54
|
+
align-items: start;
|
|
55
|
+
}
|
|
56
|
+
.hero-right {
|
|
57
|
+
display: grid;
|
|
58
|
+
gap: 12px;
|
|
59
|
+
justify-items: end;
|
|
60
|
+
min-width: 0;
|
|
61
|
+
}
|
|
62
|
+
.hero-session {
|
|
63
|
+
display: grid;
|
|
64
|
+
gap: 4px;
|
|
65
|
+
text-align: right;
|
|
66
|
+
min-width: 0;
|
|
67
|
+
}
|
|
68
|
+
.hero-meta {
|
|
69
|
+
display: flex;
|
|
70
|
+
flex-wrap: wrap;
|
|
71
|
+
gap: 8px;
|
|
72
|
+
justify-content: flex-end;
|
|
73
|
+
}
|
|
58
74
|
.brand { margin-bottom: 10px; }
|
|
59
75
|
.brand-link {
|
|
60
76
|
display: inline-flex;
|
|
@@ -133,11 +149,52 @@
|
|
|
133
149
|
border: 1px solid var(--border);
|
|
134
150
|
border-radius: 18px;
|
|
135
151
|
padding: 18px;
|
|
152
|
+
min-width: 0;
|
|
136
153
|
}
|
|
137
154
|
.metric-card small { display: block; color: var(--accent); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.72rem; font-weight: 700; }
|
|
138
|
-
.metric-card strong { display: block; margin-top: 8px; font-size: 1.55rem; }
|
|
155
|
+
.metric-card strong { display: block; margin-top: 8px; font-size: clamp(1rem, 2vw, 1.55rem); overflow-wrap: anywhere; }
|
|
139
156
|
.panel { padding: 0; overflow: hidden; }
|
|
140
157
|
.section-title { margin: 0; padding: 20px 22px; border-bottom: 1px solid var(--border); font-size: 1rem; }
|
|
158
|
+
.summary-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
|
|
159
|
+
.kv-grid {
|
|
160
|
+
display: grid;
|
|
161
|
+
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
|
162
|
+
gap: 16px;
|
|
163
|
+
}
|
|
164
|
+
.kv-card {
|
|
165
|
+
background: rgba(0,0,0,0.18);
|
|
166
|
+
border: 1px solid var(--border);
|
|
167
|
+
border-radius: 16px;
|
|
168
|
+
padding: 16px;
|
|
169
|
+
}
|
|
170
|
+
.kv-title {
|
|
171
|
+
font-size: 0.72rem;
|
|
172
|
+
text-transform: uppercase;
|
|
173
|
+
color: var(--accent);
|
|
174
|
+
font-weight: 700;
|
|
175
|
+
letter-spacing: 0.08em;
|
|
176
|
+
margin-bottom: 10px;
|
|
177
|
+
}
|
|
178
|
+
.kv-list { display: grid; gap: 8px; }
|
|
179
|
+
.kv-row { display: flex; justify-content: space-between; gap: 12px; align-items: start; }
|
|
180
|
+
.kv-key { color: var(--muted); }
|
|
181
|
+
.kv-value { color: var(--text); text-align: right; word-break: break-word; }
|
|
182
|
+
.tiny-breakdown {
|
|
183
|
+
margin-top: -10px;
|
|
184
|
+
margin-bottom: 8px;
|
|
185
|
+
color: var(--muted);
|
|
186
|
+
font-size: 0.82rem;
|
|
187
|
+
display: flex;
|
|
188
|
+
flex-wrap: wrap;
|
|
189
|
+
gap: 8px 14px;
|
|
190
|
+
}
|
|
191
|
+
.tiny-breakdown strong { color: var(--text); font-size: inherit; font-weight: 600; }
|
|
192
|
+
.collapsible { margin-top: 24px; }
|
|
193
|
+
.collapsible > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 22px; font-size: 1rem; font-weight: 700; }
|
|
194
|
+
.collapsible > summary::-webkit-details-marker { display: none; }
|
|
195
|
+
.collapsible > summary:hover { background: rgba(255,255,255,0.02); }
|
|
196
|
+
.collapsible > summary::after { content: "▾"; color: var(--muted); font-size: 0.9rem; }
|
|
197
|
+
.collapsible:not([open]) > summary::after { content: "▸"; }
|
|
141
198
|
.empty { padding: 32px 22px; color: var(--muted); }
|
|
142
199
|
table { width: 100%; border-collapse: collapse; }
|
|
143
200
|
th, td { padding: 14px 18px; text-align: left; border-bottom: 1px solid var(--border); vertical-align: top; }
|
|
@@ -279,6 +336,8 @@
|
|
|
279
336
|
margin: 0;
|
|
280
337
|
background: transparent;
|
|
281
338
|
border: none;
|
|
339
|
+
max-height: 400px;
|
|
340
|
+
overflow-y: auto;
|
|
282
341
|
}
|
|
283
342
|
.footer-note {
|
|
284
343
|
margin-top: 22px;
|
|
@@ -333,104 +392,43 @@
|
|
|
333
392
|
border-color: rgba(216,132,98,0.45);
|
|
334
393
|
background: var(--accent-soft);
|
|
335
394
|
}
|
|
395
|
+
.back-to-top {
|
|
396
|
+
position: fixed;
|
|
397
|
+
right: 20px;
|
|
398
|
+
bottom: 20px;
|
|
399
|
+
z-index: 20;
|
|
400
|
+
display: inline-flex;
|
|
401
|
+
align-items: center;
|
|
402
|
+
gap: 8px;
|
|
403
|
+
padding: 10px 14px;
|
|
404
|
+
border: 1px solid var(--border);
|
|
405
|
+
border-radius: 999px;
|
|
406
|
+
background: rgba(12,11,10,0.88);
|
|
407
|
+
color: var(--text);
|
|
408
|
+
text-decoration: none;
|
|
409
|
+
box-shadow: var(--shadow);
|
|
410
|
+
backdrop-filter: blur(10px);
|
|
411
|
+
opacity: 0;
|
|
412
|
+
pointer-events: none;
|
|
413
|
+
transform: translateY(8px);
|
|
414
|
+
transition: opacity 160ms ease, transform 160ms ease, border-color 120ms ease, background 120ms ease;
|
|
415
|
+
}
|
|
416
|
+
.back-to-top.visible {
|
|
417
|
+
opacity: 1;
|
|
418
|
+
pointer-events: auto;
|
|
419
|
+
transform: translateY(0);
|
|
420
|
+
}
|
|
421
|
+
.back-to-top:hover { border-color: rgba(216,132,98,0.45); background: rgba(216,132,98,0.12); }
|
|
336
422
|
.container { padding: 20px 14px 48px; }
|
|
337
423
|
.hero { padding: 20px; }
|
|
338
|
-
.hero-top { grid-template-columns: 1fr; }
|
|
339
|
-
.meta { justify-content: flex-start; margin-top: 8px; }
|
|
340
|
-
.
|
|
424
|
+
.hero-top, .hero-split { grid-template-columns: 1fr; }
|
|
425
|
+
.meta, .hero-meta { justify-content: flex-start; margin-top: 8px; }
|
|
426
|
+
.hero-right, .hero-session { justify-items: start; text-align: left; }
|
|
427
|
+
.wordmark { width: min(280px, 100%); height: auto; }
|
|
428
|
+
.metrics { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
|
|
341
429
|
th:nth-child(5), td:nth-child(5) { display: none; }
|
|
342
430
|
.event summary { align-items: flex-start; }
|
|
343
|
-
}
|
|
344
|
-
</style>
|
|
345
|
-
</head>
|
|
346
|
-
<body><div class="container">
|
|
347
|
-
<section class="hero">
|
|
348
|
-
<div class="hero-top">
|
|
349
|
-
<div>
|
|
350
|
-
<div class="brand"><a class="brand-link" href="../../dashboard.sample.html" onclick="if (window.history.length > 1) { window.history.back(); return false; }"><svg class="wordmark" viewBox="0 0 420 138" aria-label="notrace" role="img" xmlns="http://www.w3.org/2000/svg">
|
|
351
|
-
<defs>
|
|
352
|
-
<linearGradient id="fadeGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
353
|
-
<stop offset="0%" stop-color="#E2754A"/>
|
|
354
|
-
<stop offset="100%" stop-color="#EDE2D2"/>
|
|
355
|
-
</linearGradient>
|
|
356
|
-
</defs>
|
|
357
|
-
<g id="trace-icon" transform="translate(1 -18) scale(0.93)">
|
|
358
|
-
<path d="M6,50 C16,18 26,18 36,50 C46,82 54,82 60,50 C64,30 68,30 71,50"
|
|
359
|
-
fill="none" stroke="url(#fadeGrad)" stroke-width="4" stroke-linecap="round"/>
|
|
360
|
-
<line x1="74" y1="50" x2="79" y2="50" stroke="#D9C9B5" stroke-width="4" stroke-linecap="round" stroke-opacity="0.6"/>
|
|
361
|
-
<circle cx="85" cy="50" r="2.2" fill="#D9C9B5" opacity="0.5"/>
|
|
362
|
-
<circle cx="90" cy="50" r="1.4" fill="#EDE2D2" opacity="0.32"/>
|
|
363
|
-
<circle cx="94" cy="50" r="0.9" fill="#EDE2D2" opacity="0.15"/>
|
|
364
|
-
</g>
|
|
365
|
-
<text x="0" y="114" fill="#ECE3DA" style="fill:#ECE3DA" font-family="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif" font-size="96" font-weight="900" letter-spacing="-7">no</text>
|
|
366
|
-
<text x="82" y="114" fill="#d88462" font-family="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif" font-size="96" font-weight="900" letter-spacing="-7">trace</text>
|
|
367
|
-
</svg></a><p class="subtitle session-subtitle"><span>Session retrospective</span><span class="session-id-chip"><span>019ed2ee-1002-76ee-b353-000000000003</span><button class="copy-btn" type="button" data-copy-value="019ed2ee-1002-76ee-b353-000000000003" aria-label="Copy session ID" title="Copy session ID"><svg width="14" height="14" viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></button></span></p></div>
|
|
368
|
-
</div>
|
|
369
|
-
<div class="meta">
|
|
370
|
-
<span class="pill">nothing</span>
|
|
371
|
-
<span class="pill">Started 2026-06-17 18:14</span>
|
|
372
|
-
<span class="pill">Mode: metadata</span>
|
|
373
|
-
<button class="export-btn" type="button" data-copy-value="{"kind":"notrace-export","traceId":"019ed2ee-1002-76ee-b353-000000000003","repository":"nothing","task":{"workflow":"generic","id":null,"path":null,"dir":null},"metrics":{"inputTokens":5100,"outputTokens":810,"cacheReadTokens":0,"cacheWriteTokens":0,"totalTokens":5910,"totalCostUsd":0.0334},"summary":"compressed 24,110 to 18,332 tokens; saved 5,778 tokens across 3 tool results","events":[{"model":"claude-sonnet-4","input":[{"role":"user","content":"Polish notrace HTML output and unify dashboard/session design."}],"output":"Found renderer split. Will move both pages to one shared shell and standardize styles."}]}" title="Copy session data for LLM/Agent context"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg><span>Export</span></button>
|
|
374
|
-
</div>
|
|
375
|
-
</div>
|
|
376
|
-
<div class="metrics">
|
|
377
|
-
<div class="metric-card"><small>Total Cost</small><strong>$0.03340</strong></div>
|
|
378
|
-
<div class="metric-card"><small>Total Tokens</small><strong>5,910</strong></div>
|
|
379
|
-
<div class="metric-card"><small>Input Tokens</small><strong>5,100</strong></div>
|
|
380
|
-
<div class="metric-card"><small>Output Tokens</small><strong>810</strong></div>
|
|
381
|
-
<div class="metric-card"><small>Tool Calls</small><strong>5</strong></div>
|
|
382
|
-
<div class="metric-card"><small>Events</small><strong>3</strong></div>
|
|
383
|
-
</div>
|
|
384
|
-
</section>
|
|
385
|
-
<section class="panel">
|
|
386
|
-
<h2 class="section-title">Run Summary</h2>
|
|
387
|
-
<div style="padding: 16px;" class="stack">
|
|
388
|
-
<section class="block"><h4>Session</h4><pre>{
|
|
389
|
-
"id": "019ed2ee-1002-76ee-b353-000000000003",
|
|
390
|
-
"startedAt": "2026-06-17T10:14:00.000Z",
|
|
391
|
-
"endedAt": "2026-06-17T10:44:00.000Z",
|
|
392
|
-
"durationMs": 1800000,
|
|
393
|
-
"shutdownReason": "quit"
|
|
394
|
-
}</pre></section>
|
|
395
|
-
<section class="block"><h4>Task</h4><pre>{
|
|
396
|
-
"workflow": "generic",
|
|
397
|
-
"id": null,
|
|
398
|
-
"path": null,
|
|
399
|
-
"dir": null
|
|
400
|
-
}</pre></section>
|
|
401
|
-
<section class="block"><h4>Conditions</h4><pre>{
|
|
402
|
-
"models": [
|
|
403
|
-
"gemini-3.5-flash"
|
|
404
|
-
],
|
|
405
|
-
"providers": [
|
|
406
|
-
"google"
|
|
407
|
-
],
|
|
408
|
-
"extensions": [
|
|
409
|
-
"notrace",
|
|
410
|
-
"noheadroom"
|
|
411
|
-
]
|
|
412
|
-
}</pre></section>
|
|
413
|
-
<section class="block"><h4>Activity</h4><pre>{
|
|
414
|
-
"turnCount": 6,
|
|
415
|
-
"llmCallCount": 6,
|
|
416
|
-
"toolCallCount": 5,
|
|
417
|
-
"toolErrorCount": 2,
|
|
418
|
-
"durationMs": 1800000,
|
|
419
|
-
"totals": {
|
|
420
|
-
"inputTokens": 5100,
|
|
421
|
-
"outputTokens": 810,
|
|
422
|
-
"cacheReadTokens": 0,
|
|
423
|
-
"cacheWriteTokens": 0,
|
|
424
|
-
"totalTokens": 5910,
|
|
425
|
-
"totalCostUsd": 0.0334
|
|
426
|
-
}
|
|
427
|
-
}</pre></section>
|
|
428
|
-
</div>
|
|
429
|
-
</section>
|
|
430
|
-
<section class="panel" style="margin-top: 24px;">
|
|
431
|
-
<h2 class="section-title">Dynamic Extension Telemetry</h2>
|
|
432
|
-
<div style="padding: 16px;" class="stack">
|
|
433
|
-
<section class="block"><h4>noheadroom (Active)</h4><pre>{
|
|
431
|
+
}</style></head><body><div class="container" id="top"><section class="hero"><div class="hero-top"><div><div class="brand"><a class="brand-link" href="../../dashboard.sample.html" onclick="if (window.history.length > 1) { window.history.back(); return false; }"><svg class="wordmark" viewBox="0 0 420 138" aria-label="notrace" role="img" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient id="fadeGrad" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#E2754A"/><stop offset="100%" stop-color="#EDE2D2"/></linearGradient></defs><g id="trace-icon" transform="translate(1 -18) scale(0.93)"><path d="M6,50 C16,18 26,18 36,50 C46,82 54,82 60,50 C64,30 68,30 71,50" fill="none" stroke="url(#fadeGrad)" stroke-width="4" stroke-linecap="round"/><line x1="74" y1="50" x2="79" y2="50" stroke="#D9C9B5" stroke-width="4" stroke-linecap="round" stroke-opacity="0.6"/><circle cx="85" cy="50" r="2.2" fill="#D9C9B5" opacity="0.5"/><circle cx="90" cy="50" r="1.4" fill="#EDE2D2" opacity="0.32"/><circle cx="94" cy="50" r="0.9" fill="#EDE2D2" opacity="0.15"/></g><text x="0" y="114" fill="#ECE3DA" style="fill:#ECE3DA" font-family="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif" font-size="96" font-weight="900" letter-spacing="-7">no</text><text x="82" y="114" fill="#d88462" font-family="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif" font-size="96" font-weight="900" letter-spacing="-7">trace</text></svg></a><p class="subtitle session-subtitle"><span>Session retrospective</span><span class="session-id-chip"><span>019ed2ee-1002-76ee-b353-000000000003</span><button class="copy-btn" type="button" data-copy-value="019ed2ee-1002-76ee-b353-000000000003" aria-label="Copy session ID" title="Copy session ID"><svg width="14" height="14" viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></button></span></p></div></div><div class="meta"><span class="pill">nothing</span><span class="pill">Started 2026-06-17 18:14</span><span class="pill">Mode: metadata</span><button class="export-btn" type="button" data-copy-value="{"kind":"notrace-export","traceId":"019ed2ee-1002-76ee-b353-000000000003","repository":"nothing","task":{"workflow":"generic","id":null,"path":null,"dir":null},"metrics":{"inputTokens":5100,"outputTokens":810,"cacheReadTokens":0,"cacheWriteTokens":0,"totalTokens":5910,"totalCostUsd":0.0334},"summary":"compressed 24,110 to 18,332 tokens; saved 5,778 tokens across 3 tool results","events":[{"model":"claude-sonnet-4","input":[{"role":"user","content":"Polish notrace HTML output and unify dashboard/session design."}],"output":"Found renderer split. Will move both pages to one shared shell and standardize styles."},{"model":"gpt-4o","input":[{"role":"user","content":"massive analysis"}],"output":"done."},{"model":"claude-sonnet-4","input":[{"role":"user","content":"polish"}],"output":"done."}]}" title="Copy session data for LLM/Agent context"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg><span>Export</span></button></div></div><div class="metrics"><div class="metric-card"><small>Total Cost</small><strong>$0.03340</strong></div><div class="metric-card"><small>Total Tokens</small><strong>5,910</strong></div><div class="metric-card"><small>Duration</small><strong>30m 0s</strong></div></div><div class="tiny-breakdown"><span>Input <strong>5.1k</strong></span><span>Output <strong>810</strong></span><span>Cache Read <strong>0</strong></span><span>Cache Write <strong>0</strong></span><span>Switches <strong>2</strong></span><span>Unique Models <strong>2</strong></span><span>Tool Calls <strong>5</strong></span><span>Events <strong>5</strong></span></div></section><details class="panel collapsible"><summary>Run Summary</summary><div><div style="padding: 18px 20px; display: grid; gap: 14px;"><div style="color: var(--muted); line-height: 1.7;"><strong style="color: var(--text);">General session</strong> ran for <strong style="color: var(--text);">30m 0s</strong>, used <strong style="color: var(--text);">5.9k</strong> tokens, cost <strong style="color: var(--text);">$0.03340</strong>.</div><div class="tiny-breakdown" style="margin: 0;"><span>Session <strong>019ed2ee-1002-76ee-b353-000000000003</strong></span><span>Started <strong>2026-06-17 18:14</strong></span><span>Workflow <strong>generic</strong></span><span>LLM Calls <strong>6</strong></span><span>Tool Errors <strong>2</strong></span><span>Providers <strong>google</strong></span></div></div></div></details><details class="panel collapsible"><summary>Timeline</summary><div><div style="padding: 16px;"><div class="timeline"><details class="event" data-lazy-event-body="%3Cdiv%20class%3D%22event-body%22%3E%3Cdiv%20class%3D%22stack%22%3E%3Csection%20class%3D%22block%22%3E%3Ch4%3EArguments%3C%2Fh4%3E%3Cdiv%20class%3D%22msg-content%22%3E%3Cdiv%20class%3D%22chat-tool-use%22%3E%3Cdiv%20class%3D%22chat-tool-header%22%3E%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14.7%206.3a1%201%200%200%200%200%201.4l1.6%201.6a1%201%200%200%200%201.4%200l3.77-3.77a6%206%200%200%201-7.94%207.94l-6.91%206.91a2.12%202.12%200%200%201-3-3l6.91-6.91a6%206%200%200%201%207.94-7.94l-3.76%203.76z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E%20Execution%20Input%3C%2Fdiv%3E%3Cpre%20class%3D%22chat-tool-body%22%3E%7B%0A%20%20%26quot%3Bcommand%26quot%3B%3A%20%26quot%3Bfind%20packages%2Fnotrace%20-maxdepth%203%20-type%20f%26quot%3B%0A%7D%3C%2Fpre%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fsection%3E%3C%2Fdiv%3E%3C%2Fdiv%3E"><summary><div class="event-main"><span class="badge badge-tool">tool_start</span><span class="event-title">functions.bash</span></div><span class="event-time">22:05:04</span></summary></details><details class="event" data-lazy-event-body="%3Cdiv%20class%3D%22event-body%22%3E%3Cdiv%20class%3D%22stack%22%3E%3Csection%20class%3D%22block%22%3E%3Ch4%3EResult%3C%2Fh4%3E%3Cdiv%20class%3D%22msg-content%22%3E%3Cdiv%20class%3D%22chat-tool-use%22%20style%3D%22%22%3E%3Cdiv%20class%3D%22chat-tool-header%22%20style%3D%22color%3A%20var(--muted)%3B%22%3E%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%229%2010%204%2015%209%2020%22%3E%3C%2Fpolyline%3E%3Cpath%20d%3D%22M20%204v7a4%204%200%200%201-4%204H4%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E%20Execution%20Output%3C%2Fdiv%3E%3Cpre%20class%3D%22chat-tool-body%22%3E%7B%0A%20%20%26quot%3Bstdout%26quot%3B%3A%20%26quot%3Bpackages%2Fnotrace%2Fextensions%2Fnotrace%2Findex.ts%5Cnpackages%2Fnotrace%2Fextensions%2Fnotrace%2Frenderer.ts%5Cnpackages%2Fnotrace%2Fpackage.json%26quot%3B%2C%0A%20%20%26quot%3Bstderr%26quot%3B%3A%20%26quot%3B%26quot%3B%2C%0A%20%20%26quot%3BexitCode%26quot%3B%3A%200%0A%7D%3C%2Fpre%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fsection%3E%3C%2Fdiv%3E%3C%2Fdiv%3E"><summary><div class="event-main"><span class="badge badge-tool">tool_end</span><span class="event-title">functions.bash</span></div><span class="event-time">22:05:05</span></summary></details><details class="event" data-lazy-event-body="%3Cdiv%20class%3D%22event-body%22%3E%3Cdiv%20class%3D%22stack%22%3E%3Csection%20class%3D%22block%22%3E%3Ch4%3EInput%20Messages%3C%2Fh4%3E%3Cdiv%20class%3D%22msg%20user%20%22%3E%3Cdiv%20class%3D%22msg-head%22%3E%3Cspan%20class%3D%22msg-role%22%3Euser%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22msg-content%22%3E%3Cdiv%20class%3D%22chat-text%22%3EPolish%20notrace%20HTML%20output%20and%20unify%20dashboard%2Fsession%20design.%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fsection%3E%3Csection%20class%3D%22block%22%3E%3Ch4%3EOutput%3C%2Fh4%3E%3Cdiv%20class%3D%22msg-content%22%3E%3Cdiv%20class%3D%22chat-text%22%3EFound%20renderer%20split.%20Will%20move%20both%20pages%20to%20one%20shared%20shell%20and%20standardize%20styles.%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fsection%3E%3Csection%20class%3D%22block%22%3E%3Ch4%3EUsage%3C%2Fh4%3E%3Cpre%3E%7B%0A%20%20%26quot%3Binput%26quot%3B%3A%202140%2C%0A%20%20%26quot%3Boutput%26quot%3B%3A%20116%2C%0A%20%20%26quot%3BcacheRead%26quot%3B%3A%200%2C%0A%20%20%26quot%3BcacheWrite%26quot%3B%3A%200%2C%0A%20%20%26quot%3BtotalTokens%26quot%3B%3A%202256%2C%0A%20%20%26quot%3Bcost%26quot%3B%3A%20%7B%0A%20%20%20%20%26quot%3Btotal%26quot%3B%3A%200.01451%0A%20%20%7D%0A%7D%3C%2Fpre%3E%3C%2Fsection%3E%3C%2Fdiv%3E%3C%2Fdiv%3E"><summary><div class="event-main"><span class="badge badge-llm">llm_completion</span><span class="event-title">claude-sonnet-4</span></div><span class="event-time">22:05:11</span></summary></details><details class="event" data-lazy-event-body="%3Cdiv%20class%3D%22event-body%22%3E%3Cdiv%20class%3D%22stack%22%3E%3Csection%20class%3D%22block%22%3E%3Ch4%3EInput%20Messages%3C%2Fh4%3E%3Cdiv%20class%3D%22msg%20user%20%22%3E%3Cdiv%20class%3D%22msg-head%22%3E%3Cspan%20class%3D%22msg-role%22%3Euser%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22msg-content%22%3E%3Cdiv%20class%3D%22chat-text%22%3Emassive%20analysis%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fsection%3E%3Csection%20class%3D%22block%22%3E%3Ch4%3EOutput%3C%2Fh4%3E%3Cdiv%20class%3D%22msg-content%22%3E%3Cdiv%20class%3D%22chat-text%22%3Edone.%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fsection%3E%3Csection%20class%3D%22block%22%3E%3Ch4%3EUsage%3C%2Fh4%3E%3Cpre%3E%7B%0A%20%20%26quot%3Binput%26quot%3B%3A%201540000%2C%0A%20%20%26quot%3Boutput%26quot%3B%3A%20450%2C%0A%20%20%26quot%3BcacheRead%26quot%3B%3A%200%2C%0A%20%20%26quot%3BcacheWrite%26quot%3B%3A%200%2C%0A%20%20%26quot%3BtotalTokens%26quot%3B%3A%201540450%2C%0A%20%20%26quot%3Bcost%26quot%3B%3A%20%7B%0A%20%20%20%20%26quot%3Btotal%26quot%3B%3A%207.70225%0A%20%20%7D%0A%7D%3C%2Fpre%3E%3C%2Fsection%3E%3C%2Fdiv%3E%3C%2Fdiv%3E"><summary><div class="event-main"><span class="badge badge-llm">llm_completion</span><span class="event-title">gpt-4o</span></div><span class="event-time">22:05:50</span></summary></details><details class="event" data-lazy-event-body="%3Cdiv%20class%3D%22event-body%22%3E%3Cdiv%20class%3D%22stack%22%3E%3Csection%20class%3D%22block%22%3E%3Ch4%3EInput%20Messages%3C%2Fh4%3E%3Cdiv%20class%3D%22msg%20user%20%22%3E%3Cdiv%20class%3D%22msg-head%22%3E%3Cspan%20class%3D%22msg-role%22%3Euser%3C%2Fspan%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22msg-content%22%3E%3Cdiv%20class%3D%22chat-text%22%3Epolish%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fsection%3E%3Csection%20class%3D%22block%22%3E%3Ch4%3EOutput%3C%2Fh4%3E%3Cdiv%20class%3D%22msg-content%22%3E%3Cdiv%20class%3D%22chat-text%22%3Edone.%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fsection%3E%3Csection%20class%3D%22block%22%3E%3Ch4%3EUsage%3C%2Fh4%3E%3Cpre%3E%7B%0A%20%20%26quot%3Binput%26quot%3B%3A%2084000%2C%0A%20%20%26quot%3Boutput%26quot%3B%3A%20250%2C%0A%20%20%26quot%3BcacheRead%26quot%3B%3A%200%2C%0A%20%20%26quot%3BcacheWrite%26quot%3B%3A%200%2C%0A%20%20%26quot%3BtotalTokens%26quot%3B%3A%2084250%2C%0A%20%20%26quot%3Bcost%26quot%3B%3A%20%7B%0A%20%20%20%20%26quot%3Btotal%26quot%3B%3A%200.42%0A%20%20%7D%0A%7D%3C%2Fpre%3E%3C%2Fsection%3E%3C%2Fdiv%3E%3C%2Fdiv%3E"><summary><div class="event-main"><span class="badge badge-llm">llm_completion</span><span class="event-title">claude-sonnet-4</span></div><span class="event-time">22:06:40</span></summary></details></div></div></div></details><details class="panel collapsible"><summary>Models</summary><div><div style="padding: 16px; border-bottom: 1px solid var(--border); display: grid; gap: 8px;"><div style="color: var(--muted);">Top spender: <strong style="color: var(--text);">gpt-4o</strong></div><div style="color: var(--muted);">Most used: <strong style="color: var(--text);">claude-sonnet-4</strong></div></div><div style="overflow-x: auto;"><table><thead><tr><th>Model</th><th class="num-cell">Calls</th><th class="num-cell">Input</th><th class="num-cell">Output</th><th class="num-cell">Tokens</th><th class="num-cell">Cost</th><th class="num-cell">Avg Cost/Call</th><th class="num-cell">Avg Tokens/Call</th><th class="num-cell">Errors</th></tr></thead><tbody><tr><td><strong>gpt-4o</strong> <span class="badge badge-llm">top spend</span></td><td class="num-cell">1</td><td class="num-cell">1.54M</td><td class="num-cell">450</td><td class="num-cell">1.54M</td><td class="num-cell">$7.70225</td><td class="num-cell">$7.70225</td><td class="num-cell">1.54M</td><td class="num-cell">0</td></tr><tr><td><strong>claude-sonnet-4</strong> <span class="badge badge-tool">most used</span></td><td class="num-cell">2</td><td class="num-cell">86.1k</td><td class="num-cell">366</td><td class="num-cell">86.5k</td><td class="num-cell">$0.43451</td><td class="num-cell">$0.21726</td><td class="num-cell">43.3k</td><td class="num-cell">0</td></tr></tbody></table></div></div></details><details class="panel collapsible"><summary>Model Switches</summary><div><div style="padding: 16px; border-bottom: 1px solid var(--border); color: var(--muted);">Biggest switch cost: <strong style="color: var(--text);">claude-sonnet-4 → gpt-4o ($7.70225)</strong></div><div style="overflow-x: auto;"><table><thead><tr><th>Switch</th><th class="num-cell">Cost Impact</th><th class="num-cell">New Context Tokens</th><th class="num-cell">Provider Changed</th><th>Details</th></tr></thead><tbody><tr><td><span class="badge badge-system">claude-sonnet-4</span> → <span class="badge badge-llm">gpt-4o</span></td><td class="num-cell">$7.70225</td><td class="num-cell">1.54M</td><td class="num-cell">Yes</td><td><span class="session-sub">#2 • 22:05:50 • 39s since previous completion</span></td></tr><tr><td><span class="badge badge-system">gpt-4o</span> → <span class="badge badge-llm">claude-sonnet-4</span></td><td class="num-cell">$0.42000</td><td class="num-cell">84.3k</td><td class="num-cell">Yes</td><td><span class="session-sub">#3 • 22:06:40 • 50s since previous completion</span></td></tr></tbody></table></div></div></details><details class="panel collapsible"><summary>Dynamic Extension Telemetry</summary><div><div style="padding: 16px;" class="stack"><section class="block"><h4>noheadroom (Active)</h4><pre>{
|
|
434
432
|
"summary": "compressed 24,110 to 18,332 tokens; saved 5,778 tokens across 3 tool results",
|
|
435
433
|
"attempts": 2,
|
|
436
434
|
"applied": 1,
|
|
@@ -446,63 +444,7 @@
|
|
|
446
444
|
"tool-result-compression"
|
|
447
445
|
]
|
|
448
446
|
}
|
|
449
|
-
}</pre></section>
|
|
450
|
-
</div>
|
|
451
|
-
</section>
|
|
452
|
-
<section class="panel" style="margin-top: 24px;">
|
|
453
|
-
<h2 class="section-title">Timeline</h2>
|
|
454
|
-
<div style="padding: 16px;">
|
|
455
|
-
<div class="timeline"><details class="event">
|
|
456
|
-
<summary>
|
|
457
|
-
<div class="event-main">
|
|
458
|
-
<span class="badge badge-tool">tool_start</span>
|
|
459
|
-
<span class="event-title">functions.bash</span>
|
|
460
|
-
</div>
|
|
461
|
-
<span class="event-time">22:05:04</span>
|
|
462
|
-
</summary>
|
|
463
|
-
<div class="event-body"><div class="stack"><section class="block"><h4>Arguments</h4><div class="msg-content"><div class="chat-tool-use"><div class="chat-tool-header"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg> Execution Input</div><pre class="chat-tool-body">{
|
|
464
|
-
"command": "find packages/notrace -maxdepth 3 -type f"
|
|
465
|
-
}</pre></div></div></section></div></div>
|
|
466
|
-
</details><details class="event">
|
|
467
|
-
<summary>
|
|
468
|
-
<div class="event-main">
|
|
469
|
-
<span class="badge badge-tool">tool_end</span>
|
|
470
|
-
<span class="event-title">functions.bash</span>
|
|
471
|
-
</div>
|
|
472
|
-
<span class="event-time">22:05:05</span>
|
|
473
|
-
</summary>
|
|
474
|
-
<div class="event-body"><div class="stack"><section class="block"><h4>Result</h4><div class="msg-content"><div class="chat-tool-use" style=""><div class="chat-tool-header" style="color: var(--muted);"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 10 4 15 9 20"></polyline><path d="M20 4v7a4 4 0 0 1-4 4H4"></path></svg> Execution Output</div><pre class="chat-tool-body">{
|
|
475
|
-
"stdout": "packages/notrace/extensions/notrace/index.ts\npackages/notrace/extensions/notrace/renderer.ts\npackages/notrace/package.json",
|
|
476
|
-
"stderr": "",
|
|
477
|
-
"exitCode": 0
|
|
478
|
-
}</pre></div></div></section></div></div>
|
|
479
|
-
</details><details class="event">
|
|
480
|
-
<summary>
|
|
481
|
-
<div class="event-main">
|
|
482
|
-
<span class="badge badge-llm">llm_completion</span>
|
|
483
|
-
<span class="event-title">claude-sonnet-4</span>
|
|
484
|
-
</div>
|
|
485
|
-
<span class="event-time">22:05:11</span>
|
|
486
|
-
</summary>
|
|
487
|
-
<div class="event-body"><div class="stack"><section class="block"><h4>Input Messages</h4><div class="msg user"><div class="msg-head"><span class="msg-role">user</span></div><div class="msg-content"><div class="chat-text">Polish notrace HTML output and unify dashboard/session design.</div></div></div></section><section class="block"><h4>Output</h4><div class="msg-content"><div class="chat-text">Found renderer split. Will move both pages to one shared shell and standardize styles.</div></div></section><section class="block"><h4>Usage</h4><pre>{
|
|
488
|
-
"input": 2140,
|
|
489
|
-
"output": 116,
|
|
490
|
-
"cacheRead": 0,
|
|
491
|
-
"cacheWrite": 0,
|
|
492
|
-
"totalTokens": 2256,
|
|
493
|
-
"cost": {
|
|
494
|
-
"total": 0.01451
|
|
495
|
-
}
|
|
496
|
-
}</pre></section></div></div>
|
|
497
|
-
</details></div>
|
|
498
|
-
</div>
|
|
499
|
-
</section>
|
|
500
|
-
<footer class="footer-note stack">
|
|
501
|
-
<div class="footer-brand">notrace</div>
|
|
502
|
-
<div class="footer-tagline">Local-first retrospective engine</div>
|
|
503
|
-
<div class="footer-meta"><a href="https://opensource.org/licenses/MIT">MIT</a></div>
|
|
504
|
-
</footer>
|
|
505
|
-
</div><script>(() => {
|
|
447
|
+
}</pre></section></div></div></details><footer class="footer-note stack"><div class="footer-brand">notrace</div><div class="footer-tagline">Local-first retrospective engine</div><div class="footer-meta"><a href="https://opensource.org/licenses/MIT">MIT</a></div></footer></div><script>(() => {
|
|
506
448
|
document.querySelectorAll('[data-copy-value]').forEach((button) => {
|
|
507
449
|
button.addEventListener('click', async () => {
|
|
508
450
|
const value = button.getAttribute('data-copy-value') || '';
|
|
@@ -532,5 +474,25 @@
|
|
|
532
474
|
}
|
|
533
475
|
});
|
|
534
476
|
});
|
|
535
|
-
|
|
536
|
-
|
|
477
|
+
|
|
478
|
+
document.querySelectorAll('details[data-lazy-event-body]').forEach((details) => {
|
|
479
|
+
details.addEventListener('toggle', () => {
|
|
480
|
+
if (!details.open) return;
|
|
481
|
+
if (details.querySelector('.event-body')) return;
|
|
482
|
+
const html = decodeURIComponent(details.getAttribute('data-lazy-event-body') || '');
|
|
483
|
+
details.insertAdjacentHTML('beforeend', html);
|
|
484
|
+
}, { once: false });
|
|
485
|
+
});
|
|
486
|
+
|
|
487
|
+
const topBtn = document.querySelector('.back-to-top');
|
|
488
|
+
if (topBtn) {
|
|
489
|
+
const syncTopButton = () => {
|
|
490
|
+
const scrollable = document.documentElement.scrollHeight > window.innerHeight + 24;
|
|
491
|
+
const show = scrollable && window.scrollY > 200;
|
|
492
|
+
topBtn.classList.toggle('visible', show);
|
|
493
|
+
};
|
|
494
|
+
window.addEventListener('scroll', syncTopButton, { passive: true });
|
|
495
|
+
window.addEventListener('resize', syncTopButton);
|
|
496
|
+
syncTopButton();
|
|
497
|
+
}
|
|
498
|
+
})();</script></body></html>
|
|
@@ -126,6 +126,56 @@
|
|
|
126
126
|
}
|
|
127
127
|
},
|
|
128
128
|
"timestamp": 1781705111000
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"type": "llm_completion",
|
|
132
|
+
"model": "gpt-4o",
|
|
133
|
+
"provider": "openai",
|
|
134
|
+
"inputPayload": {
|
|
135
|
+
"messages": [
|
|
136
|
+
{
|
|
137
|
+
"role": "user",
|
|
138
|
+
"content": "massive analysis"
|
|
139
|
+
}
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
"outputContent": "done.",
|
|
143
|
+
"usage": {
|
|
144
|
+
"input": 1540000,
|
|
145
|
+
"output": 450,
|
|
146
|
+
"cacheRead": 0,
|
|
147
|
+
"cacheWrite": 0,
|
|
148
|
+
"totalTokens": 1540450,
|
|
149
|
+
"cost": {
|
|
150
|
+
"total": 7.70225
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"timestamp": 1781705150000
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"type": "llm_completion",
|
|
157
|
+
"model": "claude-sonnet-4",
|
|
158
|
+
"provider": "anthropic",
|
|
159
|
+
"inputPayload": {
|
|
160
|
+
"messages": [
|
|
161
|
+
{
|
|
162
|
+
"role": "user",
|
|
163
|
+
"content": "polish"
|
|
164
|
+
}
|
|
165
|
+
]
|
|
166
|
+
},
|
|
167
|
+
"outputContent": "done.",
|
|
168
|
+
"usage": {
|
|
169
|
+
"input": 84000,
|
|
170
|
+
"output": 250,
|
|
171
|
+
"cacheRead": 0,
|
|
172
|
+
"cacheWrite": 0,
|
|
173
|
+
"totalTokens": 84250,
|
|
174
|
+
"cost": {
|
|
175
|
+
"total": 0.42
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
"timestamp": 1781705200000
|
|
129
179
|
}
|
|
130
180
|
],
|
|
131
181
|
"navigation": {
|