@raquezha/notrace 0.0.5 → 0.0.7

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.
Files changed (97) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +122 -52
  3. package/assets/notrace-logo.svg +20 -0
  4. package/assets/notrace-mark.svg +18 -0
  5. package/assets/notrace-wordmark.svg +4 -0
  6. package/bin/notrace-compare.mjs +153 -0
  7. package/bin/notrace-review.mjs +123 -0
  8. package/dist/notrace/adapters.d.ts +32 -0
  9. package/dist/notrace/adapters.js +83 -0
  10. package/dist/notrace/index.d.ts +2 -0
  11. package/dist/notrace/index.js +335 -0
  12. package/dist/notrace/renderer.d.ts +4 -0
  13. package/dist/notrace/renderer.js +681 -0
  14. package/dist/notrace/types.d.ts +94 -0
  15. package/dist/notrace/types.js +1 -0
  16. package/extensions/notrace/adapters.ts +88 -0
  17. package/extensions/notrace/index.ts +393 -0
  18. package/extensions/notrace/renderer.ts +694 -0
  19. package/extensions/notrace/types.ts +109 -0
  20. package/package.json +10 -3
  21. package/templates/README.md +24 -0
  22. package/templates/dashboard.sample.html +399 -0
  23. package/templates/dashboard.sample.json +113 -0
  24. package/templates/notrace-logo.preview.png +0 -0
  25. package/templates/render-samples.mjs +44 -0
  26. package/templates/session.sample.html +499 -0
  27. package/templates/session.sample.json +127 -0
  28. package/templates/sessions/019ecec4-1c48-7b47-bdbf-cec3500978ed/notrace.html +313 -0
  29. package/templates/sessions/019ecec4-1c48-7b47-bdbf-cec3500978ed/notrace.json +129 -0
  30. package/templates/sessions/019ecfa1-7ac2-7c00-bbe9-541f37751201/notrace.html +313 -0
  31. package/templates/sessions/019ecfa1-7ac2-7c00-bbe9-541f37751201/notrace.json +129 -0
  32. package/templates/sessions/019ed2ee-1000-76ee-b353-000000000001/notrace.html +494 -0
  33. package/templates/sessions/019ed2ee-1000-76ee-b353-000000000001/notrace.json +134 -0
  34. package/templates/sessions/019ed2ee-1001-76ee-b353-000000000002/notrace.html +493 -0
  35. package/templates/sessions/019ed2ee-1001-76ee-b353-000000000002/notrace.json +133 -0
  36. package/templates/sessions/019ed2ee-1002-76ee-b353-000000000003/notrace.html +494 -0
  37. package/templates/sessions/019ed2ee-1002-76ee-b353-000000000003/notrace.json +134 -0
  38. package/templates/sessions/019ed2ee-1003-76ee-b353-000000000004/notrace.html +423 -0
  39. package/templates/sessions/019ed2ee-1003-76ee-b353-000000000004/notrace.json +130 -0
  40. package/templates/sessions/019ed2ee-1004-76ee-b353-000000000005/notrace.html +423 -0
  41. package/templates/sessions/019ed2ee-1004-76ee-b353-000000000005/notrace.json +130 -0
  42. package/templates/sessions/019ed2ee-1005-76ee-b353-000000000006/notrace.html +423 -0
  43. package/templates/sessions/019ed2ee-1005-76ee-b353-000000000006/notrace.json +130 -0
  44. package/templates/sessions/019ed2ee-1006-76ee-b353-000000000007/notrace.html +423 -0
  45. package/templates/sessions/019ed2ee-1006-76ee-b353-000000000007/notrace.json +130 -0
  46. package/templates/sessions/019ed2ee-1007-76ee-b353-000000000008/notrace.html +423 -0
  47. package/templates/sessions/019ed2ee-1007-76ee-b353-000000000008/notrace.json +130 -0
  48. package/templates/sessions/019ed2ee-1008-76ee-b353-000000000009/notrace.html +423 -0
  49. package/templates/sessions/019ed2ee-1008-76ee-b353-000000000009/notrace.json +130 -0
  50. package/templates/sessions/019ed2ee-1009-76ee-b353-000000000010/notrace.html +423 -0
  51. package/templates/sessions/019ed2ee-1009-76ee-b353-000000000010/notrace.json +130 -0
  52. package/templates/sessions/019ed2ee-1010-76ee-b353-000000000011/notrace.html +423 -0
  53. package/templates/sessions/019ed2ee-1010-76ee-b353-000000000011/notrace.json +130 -0
  54. package/templates/sessions/019ed2ee-1011-76ee-b353-000000000012/notrace.html +423 -0
  55. package/templates/sessions/019ed2ee-1011-76ee-b353-000000000012/notrace.json +130 -0
  56. package/templates/sessions/019ed2ee-1012-76ee-b353-000000000013/notrace.html +423 -0
  57. package/templates/sessions/019ed2ee-1012-76ee-b353-000000000013/notrace.json +130 -0
  58. package/templates/sessions/019ed2ee-1013-76ee-b353-000000000014/notrace.html +423 -0
  59. package/templates/sessions/019ed2ee-1013-76ee-b353-000000000014/notrace.json +130 -0
  60. package/templates/sessions/019ed2ee-1014-76ee-b353-000000000015/notrace.html +423 -0
  61. package/templates/sessions/019ed2ee-1014-76ee-b353-000000000015/notrace.json +130 -0
  62. package/templates/sessions/019ed2ee-1015-76ee-b353-000000000016/notrace.html +423 -0
  63. package/templates/sessions/019ed2ee-1015-76ee-b353-000000000016/notrace.json +130 -0
  64. package/templates/sessions/019ed2ee-1016-76ee-b353-000000000017/notrace.html +423 -0
  65. package/templates/sessions/019ed2ee-1016-76ee-b353-000000000017/notrace.json +130 -0
  66. package/templates/sessions/019ed2ee-1017-76ee-b353-000000000018/notrace.html +423 -0
  67. package/templates/sessions/019ed2ee-1017-76ee-b353-000000000018/notrace.json +130 -0
  68. package/templates/sessions/019ed2ee-1018-76ee-b353-000000000019/notrace.html +423 -0
  69. package/templates/sessions/019ed2ee-1018-76ee-b353-000000000019/notrace.json +130 -0
  70. package/templates/sessions/019ed2ee-1019-76ee-b353-000000000020/notrace.html +423 -0
  71. package/templates/sessions/019ed2ee-1019-76ee-b353-000000000020/notrace.json +130 -0
  72. package/templates/sessions/019ed2ee-1020-76ee-b353-000000000021/notrace.html +423 -0
  73. package/templates/sessions/019ed2ee-1020-76ee-b353-000000000021/notrace.json +130 -0
  74. package/templates/sessions/019ed2ee-1021-76ee-b353-000000000022/notrace.html +423 -0
  75. package/templates/sessions/019ed2ee-1021-76ee-b353-000000000022/notrace.json +130 -0
  76. package/templates/sessions/019ed2ee-1022-76ee-b353-000000000023/notrace.html +423 -0
  77. package/templates/sessions/019ed2ee-1022-76ee-b353-000000000023/notrace.json +130 -0
  78. package/templates/sessions/019ed2ee-1023-76ee-b353-000000000024/notrace.html +423 -0
  79. package/templates/sessions/019ed2ee-1023-76ee-b353-000000000024/notrace.json +130 -0
  80. package/templates/sessions/019ed2ee-1024-76ee-b353-000000000025/notrace.html +423 -0
  81. package/templates/sessions/019ed2ee-1024-76ee-b353-000000000025/notrace.json +130 -0
  82. package/templates/sessions/019ed2ee-1025-76ee-b353-000000000026/notrace.html +423 -0
  83. package/templates/sessions/019ed2ee-1025-76ee-b353-000000000026/notrace.json +130 -0
  84. package/templates/sessions/019ed2ee-1026-76ee-b353-000000000027/notrace.html +423 -0
  85. package/templates/sessions/019ed2ee-1026-76ee-b353-000000000027/notrace.json +130 -0
  86. package/templates/sessions/019ed2ee-1027-76ee-b353-000000000028/notrace.html +423 -0
  87. package/templates/sessions/019ed2ee-1027-76ee-b353-000000000028/notrace.json +130 -0
  88. package/templates/sessions/019ed2ee-1028-76ee-b353-000000000029/notrace.html +423 -0
  89. package/templates/sessions/019ed2ee-1028-76ee-b353-000000000029/notrace.json +130 -0
  90. package/templates/sessions/019ed2ee-1029-76ee-b353-000000000030/notrace.html +423 -0
  91. package/templates/sessions/019ed2ee-1029-76ee-b353-000000000030/notrace.json +130 -0
  92. package/templates/sessions/019ed2ee-5252-76ee-b353-ad925a6bad31/notrace.html +313 -0
  93. package/templates/sessions/019ed2ee-5252-76ee-b353-ad925a6bad31/notrace.json +129 -0
  94. package/tsconfig.json +1 -1
  95. package/dist/notrace.d.ts +0 -9
  96. package/dist/notrace.js +0 -914
  97. package/extensions/notrace.ts +0 -965
@@ -0,0 +1,423 @@
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-1026-76ee-b353-000000000027</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 {
10
+ --bg: #0c0b0a;
11
+ --panel: rgba(255,255,255,0.04);
12
+ --panel-strong: rgba(255,255,255,0.06);
13
+ --text: #ece3da;
14
+ --muted: rgba(236,227,218,0.68);
15
+ --accent: #d88462;
16
+ --accent-soft: rgba(216,132,98,0.12);
17
+ --border: rgba(255,255,255,0.08);
18
+ --shadow: 0 20px 50px rgba(0,0,0,0.45);
19
+ --code: #090807;
20
+ --err: #ef7f7f;
21
+ --rpiv-fg: #f3be8a;
22
+ --rpiv-bg: rgba(243,190,138,0.12);
23
+ --rpiv-border: rgba(243,190,138,0.26);
24
+ --research-fg: #8ec5ff;
25
+ --research-bg: rgba(142,197,255,0.12);
26
+ --research-border: rgba(142,197,255,0.24);
27
+ --generic-fg: #b9b4ae;
28
+ --generic-bg: rgba(185,180,174,0.12);
29
+ --generic-border: rgba(185,180,174,0.2);
30
+ }
31
+ * { box-sizing: border-box; }
32
+ html { color-scheme: dark; }
33
+ body {
34
+ margin: 0;
35
+ font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
36
+ background: var(--bg);
37
+ color: var(--text);
38
+ line-height: 1.5;
39
+ background-image: radial-gradient(circle at 50% -10%, rgba(216,132,98,0.14), transparent 45%);
40
+ background-attachment: fixed;
41
+ }
42
+ a { color: inherit; }
43
+ .container { max-width: 1120px; margin: 0 auto; padding: 32px 20px 64px; }
44
+ .hero, .panel {
45
+ background: var(--panel);
46
+ border: 1px solid var(--border);
47
+ border-radius: 24px;
48
+ box-shadow: var(--shadow);
49
+ backdrop-filter: blur(10px);
50
+ }
51
+ .hero { padding: 28px; margin-bottom: 24px; }
52
+ .hero-top {
53
+ display: grid;
54
+ grid-template-columns: minmax(0, 1fr) auto;
55
+ gap: 16px;
56
+ align-items: start;
57
+ }
58
+ .brand { margin-bottom: 10px; }
59
+ .brand-link {
60
+ display: inline-flex;
61
+ align-items: flex-start;
62
+ text-decoration: none;
63
+ }
64
+ .wordmark {
65
+ width: 340px;
66
+ height: 112px;
67
+ display: block;
68
+ overflow: visible;
69
+ }
70
+ .subtitle { margin: 10px 0 0; color: var(--muted); }
71
+ .meta {
72
+ display: flex;
73
+ gap: 8px;
74
+ flex-wrap: wrap;
75
+ justify-content: flex-end;
76
+ align-items: center;
77
+ margin-top: 16px;
78
+ }
79
+ .pill, .workflow-pill, .sort-btn {
80
+ display: inline-flex;
81
+ align-items: center;
82
+ gap: 6px;
83
+ text-decoration: none;
84
+ padding: 8px 12px;
85
+ border: 1px solid var(--border);
86
+ border-radius: 999px;
87
+ background: rgba(255,255,255,0.03);
88
+ color: var(--muted);
89
+ font-size: 0.86rem;
90
+ font-weight: 600;
91
+ }
92
+ .metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 16px; margin: 24px 0; }
93
+ .metric-card {
94
+ background: var(--panel-strong);
95
+ border: 1px solid var(--border);
96
+ border-radius: 18px;
97
+ padding: 18px;
98
+ }
99
+ .metric-card small { display: block; color: var(--accent); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.72rem; font-weight: 700; }
100
+ .metric-card strong { display: block; margin-top: 8px; font-size: 1.55rem; }
101
+ .panel { padding: 0; overflow: hidden; }
102
+ .section-title { margin: 0; padding: 20px 22px; border-bottom: 1px solid var(--border); font-size: 1rem; }
103
+ .empty { padding: 32px 22px; color: var(--muted); }
104
+ table { width: 100%; border-collapse: collapse; }
105
+ th, td { padding: 14px 18px; text-align: left; border-bottom: 1px solid var(--border); vertical-align: top; }
106
+ th { color: var(--muted); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em; }
107
+ tr:last-child td { border-bottom: 0; }
108
+ .col-index { width: 64px; }
109
+ .sortable-head { padding: 10px 18px; }
110
+ .sort-btn {
111
+ padding: 0;
112
+ border: 0;
113
+ border-radius: 0;
114
+ background: transparent;
115
+ font: inherit;
116
+ text-transform: inherit;
117
+ letter-spacing: inherit;
118
+ cursor: pointer;
119
+ }
120
+ .sort-label { color: inherit; }
121
+ .sort-state { color: var(--accent); font-size: 0.9rem; min-width: 16px; text-align: left; line-height: 1; }
122
+ .index-cell { color: var(--muted); font-variant-numeric: tabular-nums; }
123
+ .session-link { text-decoration: none; }
124
+ .session-link strong { display: block; }
125
+ .session-sub { display: block; margin-top: 2px; color: var(--muted); font-size: 0.8rem; }
126
+ .workflow-pill { padding: 6px 10px; font-size: 0.78rem; }
127
+ .workflow-rpiv { color: var(--rpiv-fg); background: var(--rpiv-bg); border-color: var(--rpiv-border); }
128
+ .workflow-research { color: var(--research-fg); background: var(--research-bg); border-color: var(--research-border); }
129
+ .workflow-generic { color: var(--generic-fg); background: var(--generic-bg); border-color: var(--generic-border); }
130
+ .date-cell { display: grid; gap: 2px; }
131
+ .date-cell strong { font-size: 0.92rem; }
132
+ .date-cell span { color: var(--muted); font-size: 0.82rem; }
133
+ .timeline { display: grid; gap: 14px; }
134
+ .event {
135
+ background: var(--panel);
136
+ border: 1px solid var(--border);
137
+ border-radius: 18px;
138
+ overflow: hidden;
139
+ }
140
+ .event summary {
141
+ list-style: none;
142
+ cursor: pointer;
143
+ display: flex;
144
+ justify-content: space-between;
145
+ gap: 14px;
146
+ align-items: center;
147
+ padding: 16px 18px;
148
+ }
149
+ .event summary::-webkit-details-marker { display: none; }
150
+ .event summary:hover { background: rgba(255,255,255,0.02); }
151
+ .event-main { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
152
+ .badge {
153
+ display: inline-flex;
154
+ align-items: center;
155
+ padding: 4px 8px;
156
+ border-radius: 999px;
157
+ font-size: 0.72rem;
158
+ font-weight: 800;
159
+ text-transform: uppercase;
160
+ letter-spacing: 0.06em;
161
+ border: 1px solid var(--border);
162
+ background: rgba(255,255,255,0.03);
163
+ }
164
+ .badge-llm { color: var(--accent); background: var(--accent-soft); border-color: rgba(216,132,98,0.24); }
165
+ .badge-tool { color: #8ec5ff; background: rgba(142,197,255,0.1); border-color: rgba(142,197,255,0.22); }
166
+ .badge-system { color: var(--muted); }
167
+ .badge-error { color: var(--err); background: rgba(239,127,127,0.12); border-color: rgba(239,127,127,0.24); }
168
+ .event-title { font-weight: 700; }
169
+ .event-time { color: var(--muted); font-size: 0.9rem; white-space: nowrap; }
170
+ .event-body { padding: 0 18px 18px; }
171
+ .stack { display: grid; gap: 12px; }
172
+ .block {
173
+ background: rgba(0,0,0,0.18);
174
+ border: 1px solid var(--border);
175
+ border-radius: 14px;
176
+ overflow: hidden;
177
+ }
178
+ .block h4 {
179
+ margin: 0;
180
+ padding: 10px 12px;
181
+ border-bottom: 1px solid var(--border);
182
+ color: var(--muted);
183
+ font-size: 0.8rem;
184
+ text-transform: uppercase;
185
+ letter-spacing: 0.08em;
186
+ }
187
+ pre {
188
+ margin: 0;
189
+ padding: 14px;
190
+ overflow-x: auto;
191
+ white-space: pre-wrap;
192
+ word-break: break-word;
193
+ font-family: "SFMono-Regular", ui-monospace, Menlo, Monaco, Consolas, monospace;
194
+ font-size: 0.84rem;
195
+ background: var(--code);
196
+ }
197
+ .msg { border-bottom: 1px solid var(--border); }
198
+ .msg:last-child { border-bottom: 0; }
199
+ .msg-head {
200
+ display: flex;
201
+ justify-content: space-between;
202
+ gap: 12px;
203
+ padding: 10px 12px;
204
+ border-bottom: 1px solid var(--border);
205
+ background: rgba(255,255,255,0.02);
206
+ }
207
+ .msg-role { font-size: 0.78rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
208
+ .msg.user .msg-role { color: #8ec5ff; }
209
+ .msg.assistant .msg-role { color: var(--accent); }
210
+ .msg-content { padding: 14px; white-space: pre-wrap; word-break: break-word; }
211
+ .footer-note {
212
+ margin-top: 22px;
213
+ color: var(--muted);
214
+ text-align: center;
215
+ padding: 10px 0 0;
216
+ font-family: inherit;
217
+ }
218
+ .footer-note.minimal {
219
+ font-size: 0.84rem;
220
+ font-variant-caps: all-small-caps;
221
+ letter-spacing: 0.14em;
222
+ line-height: 1;
223
+ }
224
+ .footer-note.stack {
225
+ display: grid;
226
+ gap: 6px;
227
+ line-height: 1.2;
228
+ }
229
+ .footer-brand {
230
+ color: var(--text);
231
+ font-size: 0.88rem;
232
+ font-weight: 700;
233
+ font-variant-caps: all-small-caps;
234
+ letter-spacing: 0.16em;
235
+ }
236
+ .footer-tagline {
237
+ font-size: 0.78rem;
238
+ letter-spacing: 0.08em;
239
+ font-variant-caps: all-small-caps;
240
+ }
241
+ .footer-meta {
242
+ font-size: 0.76rem;
243
+ font-variant-caps: all-small-caps;
244
+ letter-spacing: 0.14em;
245
+ }
246
+ .footer-meta a {
247
+ color: inherit;
248
+ text-decoration: none;
249
+ border-bottom: 1px solid rgba(236,227,218,0.22);
250
+ }
251
+ .footer-meta a:hover {
252
+ color: var(--text);
253
+ border-bottom-color: rgba(236,227,218,0.45);
254
+ }
255
+ @media (max-width: 760px) {
256
+ .container { padding: 20px 14px 48px; }
257
+ .hero { padding: 20px; }
258
+ .hero-top { grid-template-columns: 1fr; }
259
+ .meta { justify-content: flex-start; margin-top: 8px; }
260
+ .wordmark { width: 280px; height: 92px; }
261
+ th:nth-child(5), td:nth-child(5) { display: none; }
262
+ .event summary { align-items: flex-start; }
263
+ }
264
+ </style>
265
+ </head>
266
+ <body><div class="container">
267
+ <section class="hero">
268
+ <div class="hero-top">
269
+ <div>
270
+ <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">
271
+ <defs>
272
+ <linearGradient id="fadeGrad" x1="0%" y1="0%" x2="100%" y2="0%">
273
+ <stop offset="0%" stop-color="#E2754A"/>
274
+ <stop offset="100%" stop-color="#EDE2D2"/>
275
+ </linearGradient>
276
+ </defs>
277
+ <g id="trace-icon" transform="translate(1 -18) scale(0.93)">
278
+ <path d="M6,50 C16,18 26,18 36,50 C46,82 54,82 60,50 C64,30 68,30 71,50"
279
+ fill="none" stroke="url(#fadeGrad)" stroke-width="4" stroke-linecap="round"/>
280
+ <line x1="74" y1="50" x2="79" y2="50" stroke="#D9C9B5" stroke-width="4" stroke-linecap="round" stroke-opacity="0.6"/>
281
+ <circle cx="85" cy="50" r="2.2" fill="#D9C9B5" opacity="0.5"/>
282
+ <circle cx="90" cy="50" r="1.4" fill="#EDE2D2" opacity="0.32"/>
283
+ <circle cx="94" cy="50" r="0.9" fill="#EDE2D2" opacity="0.15"/>
284
+ </g>
285
+ <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>
286
+ <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>
287
+ </svg></a><p class="subtitle">Session retrospective for 019ed2ee-1026-76ee-b353-000000000027</p></div>
288
+ </div>
289
+ <div class="meta">
290
+ <span class="pill">nothing</span>
291
+ <span class="pill">Started 2026-06-18 09:02</span>
292
+ </div>
293
+ </div>
294
+ <div class="metrics">
295
+ <div class="metric-card"><small>Cost</small><strong>$0.19420</strong></div>
296
+ <div class="metric-card"><small>Tokens</small><strong>24,006</strong></div>
297
+ <div class="metric-card"><small>Turns</small><strong>6</strong></div>
298
+ <div class="metric-card"><small>Tool Calls</small><strong>9</strong></div>
299
+ <div class="metric-card"><small>Tool Errors</small><strong>2</strong></div>
300
+ <div class="metric-card"><small>Events</small><strong>8</strong></div>
301
+ </div>
302
+ </section>
303
+ <section class="panel">
304
+ <h2 class="section-title">Timeline</h2>
305
+ <div style="padding: 16px;">
306
+ <div class="timeline"><details class="event">
307
+ <summary>
308
+ <div class="event-main">
309
+ <span class="badge badge-tool">tool_start</span>
310
+ <span class="event-title">functions.bash</span>
311
+ </div>
312
+ <span class="event-time">22:05:04</span>
313
+ </summary>
314
+ <div class="event-body"><div class="stack"><section class="block"><h4>Arguments</h4><pre>{
315
+ &quot;command&quot;: &quot;find packages/notrace -maxdepth 3 -type f&quot;
316
+ }</pre></section></div></div>
317
+ </details><details class="event">
318
+ <summary>
319
+ <div class="event-main">
320
+ <span class="badge badge-tool">tool_end</span>
321
+ <span class="event-title">functions.bash</span>
322
+ </div>
323
+ <span class="event-time">22:05:05</span>
324
+ </summary>
325
+ <div class="event-body"><div class="stack"><section class="block"><h4>Result</h4><pre>{
326
+ &quot;stdout&quot;: &quot;packages/notrace/extensions/notrace/index.ts\npackages/notrace/extensions/notrace/renderer.ts\npackages/notrace/package.json&quot;,
327
+ &quot;stderr&quot;: &quot;&quot;,
328
+ &quot;exitCode&quot;: 0
329
+ }</pre></section></div></div>
330
+ </details><details class="event">
331
+ <summary>
332
+ <div class="event-main">
333
+ <span class="badge badge-llm">llm_completion</span>
334
+ <span class="event-title">claude-sonnet-4</span>
335
+ </div>
336
+ <span class="event-time">22:05:11</span>
337
+ </summary>
338
+ <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">Polish notrace HTML output and unify dashboard/session design.</div></div></section><section class="block"><h4>Output</h4><pre>Found renderer split. Will move both pages to one shared shell and standardize styles.</pre></section><section class="block"><h4>Usage</h4><pre>{
339
+ &quot;inputTokens&quot;: 2140,
340
+ &quot;outputTokens&quot;: 116,
341
+ &quot;totalTokens&quot;: 2256,
342
+ &quot;cost&quot;: {
343
+ &quot;total&quot;: 0.01451
344
+ }
345
+ }</pre></section></div></div>
346
+ </details><details class="event">
347
+ <summary>
348
+ <div class="event-main">
349
+ <span class="badge badge-tool">tool_start</span>
350
+ <span class="event-title">functions.edit</span>
351
+ </div>
352
+ <span class="event-time">22:05:20</span>
353
+ </summary>
354
+ <div class="event-body"><div class="stack"><section class="block"><h4>Arguments</h4><pre>{
355
+ &quot;path&quot;: &quot;packages/notrace/extensions/notrace/renderer.ts&quot;,
356
+ &quot;edits&quot;: [
357
+ {
358
+ &quot;oldText&quot;: &quot;old renderer&quot;,
359
+ &quot;newText&quot;: &quot;new renderer&quot;
360
+ }
361
+ ]
362
+ }</pre></section></div></div>
363
+ </details><details class="event">
364
+ <summary>
365
+ <div class="event-main">
366
+ <span class="badge badge-tool">tool_end</span>
367
+ <span class="event-title">functions.edit</span>
368
+ </div>
369
+ <span class="event-time">22:05:20</span>
370
+ </summary>
371
+ <div class="event-body"><div class="stack"><section class="block"><h4>Result</h4><pre>{
372
+ &quot;message&quot;: &quot;Successfully replaced 1 block(s)&quot;
373
+ }</pre></section></div></div>
374
+ </details><details class="event">
375
+ <summary>
376
+ <div class="event-main">
377
+ <span class="badge badge-tool">tool_start</span>
378
+ <span class="event-title">functions.bash</span>
379
+ </div>
380
+ <span class="event-time">22:05:30</span>
381
+ </summary>
382
+ <div class="event-body"><div class="stack"><section class="block"><h4>Arguments</h4><pre>{
383
+ &quot;command&quot;: &quot;cd packages/notrace &amp;&amp; npm run build&quot;
384
+ }</pre></section></div></div>
385
+ </details><details class="event">
386
+ <summary>
387
+ <div class="event-main">
388
+ <span class="badge badge-error">tool_end</span>
389
+ <span class="event-title">functions.bash</span>
390
+ </div>
391
+ <span class="event-time">22:05:34</span>
392
+ </summary>
393
+ <div class="event-body"><div class="stack"><section class="block"><h4>Error Result</h4><pre>{
394
+ &quot;stdout&quot;: &quot;\n&gt; @raquezha/notrace@0.0.5 build\n&gt; tsc\n&quot;,
395
+ &quot;stderr&quot;: &quot;src/renderer.ts:12:4 - error TS1005: &#39;;&#39; expected.&quot;,
396
+ &quot;exitCode&quot;: 2
397
+ }</pre></section></div></div>
398
+ </details><details class="event">
399
+ <summary>
400
+ <div class="event-main">
401
+ <span class="badge badge-llm">llm_completion</span>
402
+ <span class="event-title">claude-sonnet-4</span>
403
+ </div>
404
+ <span class="event-time">22:05:40</span>
405
+ </summary>
406
+ <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">Build failed. Find syntax bug and re-run.</div></div></section><section class="block"><h4>Output</h4><pre>TS syntax bug in arrow fn body. Fixing renderer and rebuilding.</pre></section><section class="block"><h4>Usage</h4><pre>{
407
+ &quot;inputTokens&quot;: 980,
408
+ &quot;outputTokens&quot;: 63,
409
+ &quot;totalTokens&quot;: 1043,
410
+ &quot;cost&quot;: {
411
+ &quot;total&quot;: 0.00613
412
+ }
413
+ }</pre></section></div></div>
414
+ </details></div>
415
+ </div>
416
+ </section>
417
+ <footer class="footer-note stack">
418
+ <div class="footer-brand">notrace</div>
419
+ <div class="footer-tagline">Local-first retrospective engine</div>
420
+ <div class="footer-meta"><a href="https://opensource.org/licenses/MIT">MIT</a></div>
421
+ </footer>
422
+ </div></body>
423
+ </html>
@@ -0,0 +1,130 @@
1
+ {
2
+ "traceId": "019ed2ee-1026-76ee-b353-000000000027",
3
+ "startTime": "2026-06-18T01:02:00.000Z",
4
+ "metrics": {
5
+ "totalTokens": 24006,
6
+ "totalCost": 0.1942,
7
+ "turnCount": 6,
8
+ "toolCallCount": 9,
9
+ "toolErrorCount": 2
10
+ },
11
+ "events": [
12
+ {
13
+ "type": "session_start",
14
+ "timestamp": 1781705100000
15
+ },
16
+ {
17
+ "type": "turn_start",
18
+ "timestamp": 1781705102000
19
+ },
20
+ {
21
+ "type": "tool_start",
22
+ "toolName": "functions.bash",
23
+ "args": {
24
+ "command": "find packages/notrace -maxdepth 3 -type f"
25
+ },
26
+ "timestamp": 1781705104000
27
+ },
28
+ {
29
+ "type": "tool_end",
30
+ "toolName": "functions.bash",
31
+ "result": {
32
+ "stdout": "packages/notrace/extensions/notrace/index.ts\npackages/notrace/extensions/notrace/renderer.ts\npackages/notrace/package.json",
33
+ "stderr": "",
34
+ "exitCode": 0
35
+ },
36
+ "isError": false,
37
+ "timestamp": 1781705105200
38
+ },
39
+ {
40
+ "type": "llm_completion",
41
+ "model": "claude-sonnet-4",
42
+ "inputPayload": {
43
+ "messages": [
44
+ {
45
+ "role": "user",
46
+ "content": "Polish notrace HTML output and unify dashboard/session design."
47
+ }
48
+ ]
49
+ },
50
+ "outputContent": "Found renderer split. Will move both pages to one shared shell and standardize styles.",
51
+ "usage": {
52
+ "inputTokens": 2140,
53
+ "outputTokens": 116,
54
+ "totalTokens": 2256,
55
+ "cost": {
56
+ "total": 0.01451
57
+ }
58
+ },
59
+ "timestamp": 1781705111000
60
+ },
61
+ {
62
+ "type": "tool_start",
63
+ "toolName": "functions.edit",
64
+ "args": {
65
+ "path": "packages/notrace/extensions/notrace/renderer.ts",
66
+ "edits": [
67
+ {
68
+ "oldText": "old renderer",
69
+ "newText": "new renderer"
70
+ }
71
+ ]
72
+ },
73
+ "timestamp": 1781705120000
74
+ },
75
+ {
76
+ "type": "tool_end",
77
+ "toolName": "functions.edit",
78
+ "result": {
79
+ "message": "Successfully replaced 1 block(s)"
80
+ },
81
+ "isError": false,
82
+ "timestamp": 1781705120800
83
+ },
84
+ {
85
+ "type": "tool_start",
86
+ "toolName": "functions.bash",
87
+ "args": {
88
+ "command": "cd packages/notrace && npm run build"
89
+ },
90
+ "timestamp": 1781705130000
91
+ },
92
+ {
93
+ "type": "tool_end",
94
+ "toolName": "functions.bash",
95
+ "result": {
96
+ "stdout": "\n> @raquezha/notrace@0.0.5 build\n> tsc\n",
97
+ "stderr": "src/renderer.ts:12:4 - error TS1005: ';' expected.",
98
+ "exitCode": 2
99
+ },
100
+ "isError": true,
101
+ "timestamp": 1781705134100
102
+ },
103
+ {
104
+ "type": "llm_completion",
105
+ "model": "claude-sonnet-4",
106
+ "inputPayload": {
107
+ "messages": [
108
+ {
109
+ "role": "user",
110
+ "content": "Build failed. Find syntax bug and re-run."
111
+ }
112
+ ]
113
+ },
114
+ "outputContent": "TS syntax bug in arrow fn body. Fixing renderer and rebuilding.",
115
+ "usage": {
116
+ "inputTokens": 980,
117
+ "outputTokens": 63,
118
+ "totalTokens": 1043,
119
+ "cost": {
120
+ "total": 0.00613
121
+ }
122
+ },
123
+ "timestamp": 1781705140000
124
+ }
125
+ ],
126
+ "navigation": {
127
+ "indexHref": "../../dashboard.sample.html"
128
+ },
129
+ "repositoryName": "nothing"
130
+ }