token-optimizer-opencode 1.0.8 → 1.0.14

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 (55) hide show
  1. package/README.md +15 -23
  2. package/dist/continuity/matcher.d.ts +15 -0
  3. package/dist/continuity/matcher.d.ts.map +1 -1
  4. package/dist/continuity/matcher.js +30 -1
  5. package/dist/continuity/matcher.js.map +1 -1
  6. package/dist/continuity/restore.d.ts +8 -1
  7. package/dist/continuity/restore.d.ts.map +1 -1
  8. package/dist/continuity/restore.js +43 -1
  9. package/dist/continuity/restore.js.map +1 -1
  10. package/dist/continuity/resume-lean.d.ts +126 -0
  11. package/dist/continuity/resume-lean.d.ts.map +1 -0
  12. package/dist/continuity/resume-lean.js +437 -0
  13. package/dist/continuity/resume-lean.js.map +1 -0
  14. package/dist/dashboard/generator.d.ts.map +1 -1
  15. package/dist/dashboard/generator.js +232 -36
  16. package/dist/dashboard/generator.js.map +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +58 -4
  19. package/dist/index.js.map +1 -1
  20. package/dist/nudges/fresh-session-nudge.d.ts +72 -0
  21. package/dist/nudges/fresh-session-nudge.d.ts.map +1 -0
  22. package/dist/nudges/fresh-session-nudge.js +190 -0
  23. package/dist/nudges/fresh-session-nudge.js.map +1 -0
  24. package/dist/nudges/verbosity-steer.d.ts +28 -0
  25. package/dist/nudges/verbosity-steer.d.ts.map +1 -0
  26. package/dist/nudges/verbosity-steer.js +61 -0
  27. package/dist/nudges/verbosity-steer.js.map +1 -0
  28. package/dist/pricing.d.ts +58 -0
  29. package/dist/pricing.d.ts.map +1 -0
  30. package/dist/pricing.js +307 -0
  31. package/dist/pricing.js.map +1 -0
  32. package/dist/savings.baseline.test.d.ts +2 -0
  33. package/dist/savings.baseline.test.d.ts.map +1 -0
  34. package/dist/savings.baseline.test.js +100 -0
  35. package/dist/savings.baseline.test.js.map +1 -0
  36. package/dist/savings.d.ts +41 -3
  37. package/dist/savings.d.ts.map +1 -1
  38. package/dist/savings.js +296 -86
  39. package/dist/savings.js.map +1 -1
  40. package/dist/storage/trends.d.ts +61 -0
  41. package/dist/storage/trends.d.ts.map +1 -1
  42. package/dist/storage/trends.js +149 -0
  43. package/dist/storage/trends.js.map +1 -1
  44. package/dist/util/context-window.d.ts.map +1 -1
  45. package/dist/util/context-window.js +2 -1
  46. package/dist/util/context-window.js.map +1 -1
  47. package/dist/util/env.d.ts +2 -0
  48. package/dist/util/env.d.ts.map +1 -1
  49. package/dist/util/env.js +4 -0
  50. package/dist/util/env.js.map +1 -1
  51. package/package.json +1 -1
  52. package/dist/nudges/tool-call-warn.d.ts +0 -7
  53. package/dist/nudges/tool-call-warn.d.ts.map +0 -1
  54. package/dist/nudges/tool-call-warn.js +0 -20
  55. package/dist/nudges/tool-call-warn.js.map +0 -1
@@ -76,26 +76,58 @@ export function generateDashboard(opts) {
76
76
  --danger: #f85149; --purple: #a855f7;
77
77
  --radius: 8px; --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-6: 24px;
78
78
  }
79
+ /* Light theme — activation order (no FOUC): localStorage 'to-theme' > prefers-color-scheme:light > dark default.
80
+ All color tokens re-derived for light backgrounds; secondary text (#242b35) pushed near-black so small
81
+ description text stays legible (canonical complaint: washed-out grey at 10-13px in light mode). */
82
+ [data-theme="light"] {
83
+ --bg: #eef1f6; --bg-card: #ffffff; --bg-hover: #e4e9f1;
84
+ --border: rgba(14,22,34,0.14); --text: #0e1622; --text-dim: #242b35;
85
+ /* Teal accent verified WCAG AA (4.5:1) on white. */
86
+ --accent: #07697f;
87
+ /* Status colors re-derived for AA legibility on light background. */
88
+ --success: #1a7f37; --warning: #9a6700; --danger: #cf222e; --purple: #7c3aed;
89
+ }
79
90
  * { margin: 0; padding: 0; box-sizing: border-box; }
80
91
  body { background: var(--bg); color: var(--text); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: 14px; line-height: 1.5; }
92
+ /* Focus ring — visible for keyboard users; removed from mouse/touch paths by :focus-visible semantics. */
93
+ :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
94
+ /* Respect user motion preference. */
95
+ @media (prefers-reduced-motion: reduce) {
96
+ *, *::before, *::after { transition: none !important; animation: none !important; }
97
+ }
81
98
  .container { max-width: 1200px; margin: 0 auto; padding: var(--s-6); }
82
99
  .header { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--s-6); padding-bottom: var(--s-4); border-bottom: 1px solid var(--border); }
83
100
  .header h1 { font-size: 20px; font-weight: 600; }
84
101
  .header .sub { color: var(--text-dim); font-size: 13px; }
85
- .nav { display: flex; gap: var(--s-2); margin-bottom: var(--s-6); flex-wrap: wrap; }
102
+ .nav { display: flex; gap: var(--s-2); margin-bottom: var(--s-6); flex-wrap: wrap; align-items: center; }
86
103
  .nav a { padding: var(--s-2) var(--s-3); border-radius: var(--radius); color: var(--text-dim); text-decoration: none; font-size: 13px; cursor: pointer; transition: all 0.15s; }
87
104
  .nav a:hover { background: var(--bg-hover); color: var(--text); }
88
105
  .nav a.active { background: var(--accent); color: #fff; }
106
+ /* Theme toggle — placed in nav row; shows moon icon in dark mode (click to go light) and sun icon in light mode. */
107
+ .theme-toggle {
108
+ margin-left: auto; display: inline-flex; align-items: center; gap: 6px;
109
+ font-size: 12px; color: var(--text-dim); background: var(--bg-card);
110
+ border: 1px solid var(--border); border-radius: var(--radius);
111
+ padding: 5px 10px; cursor: pointer;
112
+ transition: color 0.15s, border-color 0.15s, background 0.15s;
113
+ }
114
+ .theme-toggle:hover { color: var(--text); border-color: var(--accent); }
115
+ .theme-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
116
+ .theme-toggle-icon { width: 14px; height: 14px; display: block; }
117
+ .icon-sun { display: none; }
118
+ .icon-moon { display: block; }
119
+ [data-theme="light"] .icon-sun { display: block; }
120
+ [data-theme="light"] .icon-moon { display: none; }
89
121
  .view { display: none; }
90
122
  .view.active { display: block; }
91
123
  .stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--s-4); margin-bottom: var(--s-6); }
92
124
  .stat { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: var(--s-4); }
93
- .stat-value { font-size: 28px; font-weight: 700; margin-bottom: var(--s-1); }
125
+ .stat-value { font-size: 28px; font-weight: 700; margin-bottom: var(--s-1); font-variant-numeric: tabular-nums; }
94
126
  .stat-label { font-size: 12px; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.5px; }
95
127
  .stat-sub { font-size: 11px; color: var(--text-dim); margin-top: var(--s-1); }
96
128
  table { width: 100%; border-collapse: collapse; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
97
129
  th { text-align: left; padding: var(--s-3) var(--s-4); font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-dim); background: var(--bg-hover); border-bottom: 1px solid var(--border); }
98
- td { padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--border); font-size: 13px; }
130
+ td { padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--border); font-size: 13px; font-variant-numeric: tabular-nums; }
99
131
  tr:last-child td { border-bottom: none; }
100
132
  tr:hover td { background: var(--bg-hover); }
101
133
  .grade { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; font-weight: 700; font-size: 13px; color: #fff; }
@@ -117,6 +149,29 @@ tr:hover td { background: var(--bg-hover); }
117
149
  .oc-social a { color: var(--text-dim); display: inline-flex; transition: color 0.15s; }
118
150
  .oc-social a:hover { color: var(--text); }
119
151
  </style>
152
+ <!-- No-FOUC theme boot: reads localStorage 'to-theme', falls back to prefers-color-scheme:light, defaults to dark.
153
+ Must run before first paint so CSS vars resolve correctly on frame 1. -->
154
+ <script nonce="${nonce}">
155
+ (function () {
156
+ try {
157
+ var stored = null;
158
+ try { stored = window.localStorage.getItem('to-theme'); } catch (e) {}
159
+ var theme;
160
+ if (stored === 'light' || stored === 'dark') {
161
+ theme = stored;
162
+ } else if (window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches) {
163
+ theme = 'light';
164
+ } else {
165
+ theme = 'dark';
166
+ }
167
+ if (theme === 'light') {
168
+ document.documentElement.setAttribute('data-theme', 'light');
169
+ } else {
170
+ document.documentElement.removeAttribute('data-theme');
171
+ }
172
+ } catch (e) { /* dark default already applies */ }
173
+ })();
174
+ </script>
120
175
  </head>
121
176
  <body>
122
177
  <div class="container">
@@ -134,6 +189,22 @@ tr:hover td { background: var(--bg-hover); }
134
189
  <a data-view="quality">Quality Trends</a>
135
190
  <a data-view="sessions">Sessions</a>
136
191
  <a data-view="daily">Daily Stats</a>
192
+ <button type="button" id="theme-toggle" class="theme-toggle"
193
+ aria-pressed="false" aria-label="Toggle light and dark theme"
194
+ title="Toggle light / dark theme">
195
+ <svg class="theme-toggle-icon icon-moon" viewBox="0 0 24 24" fill="none"
196
+ stroke="currentColor" stroke-width="2" stroke-linecap="round"
197
+ stroke-linejoin="round" aria-hidden="true">
198
+ <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/>
199
+ </svg>
200
+ <svg class="theme-toggle-icon icon-sun" viewBox="0 0 24 24" fill="none"
201
+ stroke="currentColor" stroke-width="2" stroke-linecap="round"
202
+ stroke-linejoin="round" aria-hidden="true">
203
+ <circle cx="12" cy="12" r="5"/>
204
+ <path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"/>
205
+ </svg>
206
+ <span class="theme-toggle-label">Dark</span>
207
+ </button>
137
208
  </div>
138
209
 
139
210
  <!-- OVERVIEW -->
@@ -196,46 +267,126 @@ tr:hover td { background: var(--bg-hover); }
196
267
 
197
268
  <!-- SAVINGS -->
198
269
  <div class="view" id="view-savings">
199
- <div class="section-title">Realized Savings</div>
200
- ${!savings.ready ? `
270
+ <div class="section-title">Token Optimizer &middot; Savings</div>
271
+
272
+ ${!savings.ready ? (() => {
273
+ // New-user view: render baseline-building progress card instead of a dead end.
274
+ const bb = savings.baselineBuilding;
275
+ if (bb) {
276
+ const sNeed = bb.sessionsNeeded;
277
+ const sHave = Math.min(sNeed, bb.sessionsInWindow);
278
+ const dLeft = bb.daysLeft;
279
+ const pct = sNeed > 0 ? Math.min(100, Math.round(sHave / sNeed * 100)) : 0;
280
+ return `
281
+ <div style="background:var(--bg-card);border:1px solid var(--accent);border-radius:var(--radius);padding:var(--s-6);margin-bottom:var(--s-4);box-shadow:0 0 0 1px rgba(88,166,255,0.12);">
282
+ <div style="font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--accent);margin-bottom:var(--s-2);">Your savings baseline is still building</div>
283
+ <div style="font-size:14px;color:var(--text-dim);line-height:1.6;margin-bottom:var(--s-3);">
284
+ Token Optimizer measures savings against <strong>your own</strong> pre-optimization baseline, frozen from your first ${bb.earlyWindowDays} days of real sessions. It never uses anyone else's numbers.
285
+ </div>
286
+ <div style="font-size:14px;color:var(--text);margin-bottom:var(--s-3);">
287
+ <strong>${sHave} of ~${sNeed} sessions</strong> collected in your baseline window${dLeft > 0 ? `, about <strong>${dLeft} day${dLeft === 1 ? "" : "s"}</strong> until it locks in` : ""}.
288
+ Until then, the Sessions view shows your current usage.
289
+ </div>
290
+ <div style="height:8px;background:var(--border);border-radius:4px;overflow:hidden;">
291
+ <div style="height:100%;width:${pct}%;background:var(--accent);border-radius:4px;transition:width 0.3s;"></div>
292
+ </div>
293
+ <div style="margin-top:var(--s-2);font-size:11px;color:var(--text-dim);">${pct}% complete &middot; first tracked session: ${esc(bb.firstDate)}</div>
294
+ </div>`;
295
+ }
296
+ // Absolute zero state (no sessions at all).
297
+ return `
201
298
  <div class="empty">
202
- Realized savings need a baseline of your early usage to compare against.<br>
203
- <span style="font-size:13px">${esc(savings.status)}</span>
299
+ No sessions recorded yet install the Token Optimizer plugin and start coding to see savings here.
300
+ </div>`;
301
+ })() : `
302
+ <!-- TRANSFORMATION HERO: the big picture estimated (old way vs now). -->
303
+ <!-- INVARIANT: compressionMeasuredUsd is rendered below as a SEPARATE card -->
304
+ <!-- and is NEVER summed into monthlySavingsUsd. Do not change this. -->
305
+ <div style="background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s-6);margin-bottom:var(--s-4);">
306
+ <div style="font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-dim);margin-bottom:var(--s-2);">The big picture &middot; estimated</div>
307
+ <div style="display:flex;align-items:baseline;gap:var(--s-2);flex-wrap:wrap;margin-bottom:var(--s-3);">
308
+ <span style="font-family:monospace;font-size:52px;font-weight:700;line-height:1;color:var(--success)">${fmtCost(Math.max(0, savings.monthlySavingsUsd))}</span>
309
+ <span style="font-size:20px;color:var(--text-dim);font-family:monospace;">/mo${savings.transformationPct > 0 ? ` &mdash; ~${Math.round(savings.transformationPct * 100)}% lighter` : ""}</span>
310
+ </div>
311
+ <div style="font-size:13px;color:var(--text-dim);line-height:1.6;margin-bottom:var(--s-4);">
312
+ Had you worked this period the way you did before Token Optimizer, you'd have paid about
313
+ <strong style="color:var(--text)">${fmtCost(Math.max(0, savings.monthlySavingsUsd))} more</strong>
314
+ &mdash; est. <strong style="color:var(--text)">${fmtCost(savings.actualMonthlyUsd)}</strong> now vs
315
+ <strong style="color:var(--text)">${fmtCost(savings.counterfactualMonthlyUsd)}</strong> the old way.
316
+ Your volume is held constant on both sides, so this is pure efficiency, not workload growth.
317
+ </div>
318
+ <!-- Old way vs now grid -->
319
+ <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s-4);padding:var(--s-4);background:var(--bg-hover);border-radius:var(--radius);margin-bottom:var(--s-4);">
320
+ <div>
321
+ <div style="font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-dim);margin-bottom:var(--s-1);">The old way</div>
322
+ <div style="font-family:monospace;font-size:22px;font-weight:700;color:var(--text)">${fmtCost(savings.beforeCostPerSession)}<span style="font-size:12px;color:var(--text-dim)">/session</span></div>
323
+ <div style="font-size:12px;color:var(--text-dim);margin-top:var(--s-1)">${esc(savings.beforeMixLabel)}</div>
324
+ </div>
325
+ <div>
326
+ <div style="font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-dim);margin-bottom:var(--s-1);">Now</div>
327
+ <div style="font-family:monospace;font-size:22px;font-weight:700;color:var(--success)">${fmtCost(savings.afterCostPerSession)}<span style="font-size:12px;color:var(--text-dim)">/session</span></div>
328
+ <div style="font-size:12px;color:var(--text-dim);margin-top:var(--s-1)">${esc(savings.afterMixLabel)}</div>
329
+ </div>
330
+ <div>
331
+ <div style="font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-dim);margin-bottom:var(--s-1);">Cut per session</div>
332
+ <div style="font-family:monospace;font-size:22px;font-weight:700;color:var(--success)">${fmtCost(Math.abs(savings.savingsPerSession))}</div>
333
+ <div style="font-size:12px;color:var(--text-dim);margin-top:var(--s-1);">across ~${Math.round(savings.sessionsPerMonth)} sessions/mo</div>
334
+ </div>
335
+ <div>
336
+ <div style="font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-dim);margin-bottom:var(--s-1);">Saved to date</div>
337
+ <div style="font-family:monospace;font-size:22px;font-weight:700;color:var(--success)">${fmtCost(savings.cumulativeSavedUsd)}</div>
338
+ <div style="font-size:12px;color:var(--text-dim);margin-top:var(--s-1);">all sessions since baseline</div>
339
+ </div>
340
+ </div>
341
+ <!-- Waterfall breakdown: levers telescope to the headline. -->
342
+ <div style="font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-dim);margin-bottom:var(--s-2);">Where it comes from</div>
343
+ <table>
344
+ <thead><tr><th>Lever</th><th>Est. $/month</th></tr></thead>
345
+ <tbody>
346
+ ${savings.breakdown.filter((b) => Math.abs(b.monthlyUsd) >= 0.005).map((b) => `<tr>
347
+ <td>${esc(b.label)}</td>
348
+ <td style="font-family:monospace;color:${b.monthlyUsd >= 0 ? "var(--success)" : "var(--danger)"}">${b.monthlyUsd >= 0 ? "" : "+"}${fmtCost(Math.abs(b.monthlyUsd))}/mo</td>
349
+ </tr>`).join("")}
350
+ </tbody>
351
+ </table>
204
352
  </div>
205
- <div class="stat-sub" style="margin-top:var(--s-4)">This measures your actual cost-per-session drop over time, priced from your recorded spend. Until the baseline is set, the Sessions view shows current usage.</div>
206
- ` : `
207
- <div class="stats">
208
- <div class="stat">
209
- <div class="stat-value" style="color:var(--success)">${fmtCost(Math.max(0, savings.monthlySavingsUsd))}</div>
210
- <div class="stat-label">Est. Monthly Savings</div>
211
- <div class="stat-sub">${savings.installDate ? "since " + esc(savings.installDate) : ""}</div>
353
+
354
+ <!-- MEASURED FLOOR card: the proven, event-by-event subset. -->
355
+ <!-- SEPARATE from the transformation hero. Never summed into the headline. -->
356
+ ${savings.compressionMeasuredUsd >= 0.005 ? `
357
+ <div style="background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s-4) var(--s-4) var(--s-3);margin-bottom:var(--s-4);">
358
+ <div style="font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-dim);margin-bottom:var(--s-2);">Counted directly &middot; measured to date</div>
359
+ <div style="display:flex;align-items:baseline;gap:var(--s-2);">
360
+ <span style="font-family:monospace;font-size:32px;font-weight:700;color:var(--text)">${fmtCost(savings.compressionMeasuredUsd)}</span>
361
+ <span style="font-size:14px;color:var(--text-dim);font-family:monospace;">/mo</span>
212
362
  </div>
213
- <div class="stat">
214
- <div class="stat-value">${fmtCost(savings.beforeCostPerSession)} &rarr; ${fmtCost(savings.afterCostPerSession)}</div>
215
- <div class="stat-label">Cost / Session</div>
216
- <div class="stat-sub">${savings.savingsPerSession >= 0 ? "&minus;" : "+"}${fmtCost(Math.abs(savings.savingsPerSession))}/session</div>
363
+ <div style="font-size:12px;color:var(--text-dim);margin-top:var(--s-2);line-height:1.6;">
364
+ Tokens TO removed from your context (tool archives, delta reads, structure maps), as metered, before the baseline-mix reprice.
365
+ This is the proven, event-by-event floor &mdash; a subset of the transformation estimate above, not added to it.
217
366
  </div>
218
- <div class="stat">
219
- <div class="stat-value">${fmtCost(savings.cumulativeSavedUsd)}</div>
220
- <div class="stat-label">Saved So Far</div>
221
- <div class="stat-sub">across all sessions since baseline</div>
367
+ <div style="font-size:12px;color:var(--text-dim);margin-top:var(--s-1);">
368
+ measuring since ${savings.installDate ? esc(savings.installDate) : "your first tracked session"} &mdash; your first tracked session, not necessarily install day
222
369
  </div>
223
- <div class="stat">
224
- <div class="stat-value" style="font-size:18px">${esc(savings.beforeMixLabel)} &rarr; ${esc(savings.afterMixLabel)}</div>
225
- <div class="stat-label">Model Mix Shift</div>
226
- <div class="stat-sub">~${Math.round(savings.sessionsPerMonth)} sessions/mo</div>
370
+ </div>
371
+ ` : ""}
372
+
373
+ <!-- OPPORTUNITY panel: "save more" (amber). -->
374
+ <!-- Realizable savings inputs: OpenCode pipeline does not yet expose -->
375
+ <!-- unused-skill pruning ($) or model-routing potential ($) as separate fields. -->
376
+ <!-- Scaffolding for when those inputs become available; currently shows a -->
377
+ <!-- one-action prompt toward the full /token-optimizer skill flow. -->
378
+ <div style="background:var(--bg-card);border:1px solid var(--warning);border-radius:var(--radius);padding:var(--s-4) var(--s-4) var(--s-3);margin-bottom:var(--s-4);box-shadow:0 0 0 1px rgba(210,153,34,0.14);">
379
+ <div style="font-size:11px;text-transform:uppercase;letter-spacing:0.08em;color:var(--warning);margin-bottom:var(--s-2);">Money on the table &middot; opportunity</div>
380
+ <div style="font-size:13px;color:var(--text-dim);line-height:1.6;margin-bottom:var(--s-3);">
381
+ Real savings you have <strong style="color:var(--text)">not</strong> captured yet &mdash; on top of what you are already saving.
382
+ OpenCode's pipeline does not yet expose per-opportunity $ figures (unused-skill pruning,
383
+ model-routing potential, cache-drop cost), so this panel cannot show a dollar total.
384
+ Run the skill below to surface all actionable opportunities.
385
+ </div>
386
+ <div style="padding:var(--s-3) var(--s-4);background:rgba(210,153,34,0.08);border:1px solid var(--warning);border-radius:var(--radius);font-family:monospace;font-size:13px;color:var(--text);">
387
+ Run <span style="color:var(--warning);">/token-optimizer</span> and follow its suggestions to claim the rest &rarr;
227
388
  </div>
228
389
  </div>
229
- <div class="section-title">Where the savings come from</div>
230
- <table>
231
- <thead><tr><th>Lever</th><th>Est. $/month</th></tr></thead>
232
- <tbody>
233
- ${savings.breakdown.filter((b) => Math.abs(b.monthlyUsd) >= 0.005).map((b) => `<tr>
234
- <td>${esc(b.label)}</td>
235
- <td style="font-family:monospace;color:${b.monthlyUsd >= 0 ? "var(--success)" : "var(--danger)"}">${b.monthlyUsd >= 0 ? "" : "+"}${fmtCost(Math.abs(b.monthlyUsd))}/mo</td>
236
- </tr>`).join("")}
237
- </tbody>
238
- </table>
239
390
  `}
240
391
  </div>
241
392
 
@@ -341,6 +492,51 @@ document.querySelectorAll('.nav a').forEach(a => {
341
492
  document.getElementById('view-' + a.dataset.view).classList.add('active');
342
493
  });
343
494
  });
495
+ // Theme toggle wiring. The boot script in <head> already applied the correct
496
+ // theme before first paint (no FOUC); here we sync aria-pressed + label and wire the click.
497
+ (function setupThemeToggle() {
498
+ var btn = document.getElementById('theme-toggle');
499
+ if (!btn) return;
500
+ function currentTheme() {
501
+ return document.documentElement.getAttribute('data-theme') === 'light' ? 'light' : 'dark';
502
+ }
503
+ function syncButton() {
504
+ var light = currentTheme() === 'light';
505
+ btn.setAttribute('aria-pressed', light ? 'true' : 'false');
506
+ var label = btn.querySelector('.theme-toggle-label');
507
+ if (label) label.textContent = light ? 'Light' : 'Dark';
508
+ }
509
+ function applyTheme(theme) {
510
+ if (theme === 'light') {
511
+ document.documentElement.setAttribute('data-theme', 'light');
512
+ } else {
513
+ document.documentElement.removeAttribute('data-theme');
514
+ }
515
+ try { window.localStorage.setItem('to-theme', theme); } catch (e) {}
516
+ syncButton();
517
+ }
518
+ btn.addEventListener('click', function() {
519
+ applyTheme(currentTheme() === 'light' ? 'dark' : 'light');
520
+ });
521
+ // Follow OS preference live only while the user hasn't made an explicit choice.
522
+ if (window.matchMedia) {
523
+ var mq = window.matchMedia('(prefers-color-scheme: light)');
524
+ var onChange = function(e) {
525
+ var stored = null;
526
+ try { stored = window.localStorage.getItem('to-theme'); } catch (err) {}
527
+ if (stored === 'light' || stored === 'dark') return;
528
+ if (e.matches) {
529
+ document.documentElement.setAttribute('data-theme', 'light');
530
+ } else {
531
+ document.documentElement.removeAttribute('data-theme');
532
+ }
533
+ syncButton();
534
+ };
535
+ if (mq.addEventListener) mq.addEventListener('change', onChange);
536
+ else if (mq.addListener) mq.addListener(onChange);
537
+ }
538
+ syncButton();
539
+ })();
344
540
  // Live GitHub star count (public CORS endpoint; degrades silently to no count).
345
541
  (function () {
346
542
  function fmt(n) { return (typeof n !== 'number' || !isFinite(n) || n < 0) ? null : (n >= 1000 ? (n / 1000).toFixed(1).replace(/\\.0$/, '') + 'k' : String(n)); }
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/dashboard/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/dashboard/generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAqC,MAAM,qBAAqB,CAAC;AAiFrF,eAAO,MAAM,oBAAoB,EAAE,MAwkBlC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAqC,MAAM,qBAAqB,CAAC;AA4FrF,eAAO,MAAM,oBAAoB,EAAE,MAqpBlC,CAAC"}
package/dist/index.js CHANGED
@@ -9,6 +9,8 @@ import { generateCompactionContext } from "./compaction/dynamic-instructions.js"
9
9
  import { captureCheckpoint, pruneCheckpoints } from "./compaction/checkpoint.js";
10
10
  import { restoreCheckpoint } from "./continuity/restore.js";
11
11
  import { checkQualityNudge } from "./nudges/quality-nudge.js";
12
+ import { checkFreshSessionNudge } from "./nudges/fresh-session-nudge.js";
13
+ import { checkVerbositySteer, verbositySteerSavingsEstimate } from "./nudges/verbosity-steer.js";
12
14
  import { detectLoop } from "./nudges/loop-detection.js";
13
15
  import { createTokenStatusTool } from "./tools/token-status.js";
14
16
  import { createDashboardTool } from "./tools/dashboard.js";
@@ -52,6 +54,7 @@ export const TokenOptimizerPlugin = async (ctx, options) => {
52
54
  const store = new SessionStore(dataDir, sessionId);
53
55
  state = {
54
56
  store,
57
+ sessionId,
55
58
  lastQuality: null,
56
59
  lastQualityTime: 0,
57
60
  previousResourceHealth: null,
@@ -61,6 +64,8 @@ export const TokenOptimizerPlugin = async (ctx, options) => {
61
64
  continuityInjected: false,
62
65
  pendingContinuityPrompt: "",
63
66
  regimeChangeEmitted: false,
67
+ freshNudgeFired: false,
68
+ lastContextWindow: 0,
64
69
  recentSummaries: [],
65
70
  toolCallsSinceCap: 0,
66
71
  usageByMessage: new Map(),
@@ -139,6 +144,9 @@ export const TokenOptimizerPlugin = async (ctx, options) => {
139
144
  const store = state.store;
140
145
  try {
141
146
  const contextWindow = contextWindowForModel(state.currentModel ?? "");
147
+ // Store for window-consistency: freshSessionSavingsEstimate must use this
148
+ // exact value, not re-derive it, so token count == fill% of this window.
149
+ state.lastContextWindow = contextWindow;
142
150
  const result = computeQualityScore(store, fillPct, state.currentModel, contextWindow, config);
143
151
  const cache = store.getQualityCache();
144
152
  const enforced = enforceMonotonicity(result, cache?.resource_health ?? null, cache?.compactions ?? 0, store.getCompactionCount());
@@ -173,9 +181,42 @@ export const TokenOptimizerPlugin = async (ctx, options) => {
173
181
  const store = state.store;
174
182
  if (config.features.qualityNudges) {
175
183
  const cache = store.getQualityCache();
176
- const nudge = checkQualityNudge(store, state.lastQuality.resourceHealth, state.previousResourceHealth);
177
- if (nudge.shouldNudge && nudge.message) {
178
- warnings.push(nudge.message);
184
+ // Fresh-session nudge takes precedence: when a session is BOTH long AND degraded,
185
+ // "start fresh (context is preserved)" is the stronger remedy than /compact.
186
+ // Only fall back to the ordinary quality nudge if the fresh-session nudge did not fire.
187
+ const fillPctPct = Math.round(state.lastQuality.fillPct * 100);
188
+ const freshNudge = checkFreshSessionNudge(state.lastQuality.resourceHealth, fillPctPct, state.previousResourceHealth, state.freshNudgeFired, config.features.qualityNudges, config.features.continuity, state.currentModel, state.lastContextWindow || undefined, config.freshNudgeQualityThreshold, config.freshNudgeMinFillPct);
189
+ if (freshNudge.shouldNudge && freshNudge.message) {
190
+ state.freshNudgeFired = true;
191
+ warnings.push(freshNudge.message);
192
+ }
193
+ else {
194
+ const nudge = checkQualityNudge(store, state.lastQuality.resourceHealth, state.previousResourceHealth);
195
+ if (nudge.shouldNudge && nudge.message) {
196
+ warnings.push(nudge.message);
197
+ store.writeQualityCache({
198
+ resource_health: cache?.resource_health ?? state.lastQuality.resourceHealth,
199
+ session_efficiency: cache?.session_efficiency ?? state.lastQuality.sessionEfficiency,
200
+ fill_pct: cache?.fill_pct ?? state.lastQuality.fillPct,
201
+ compactions: cache?.compactions ?? 0,
202
+ tool_calls: cache?.tool_calls ?? 0,
203
+ last_nudge_time: Date.now() / 1000,
204
+ nudge_count: (cache?.nudge_count ?? 0) + 1,
205
+ data: cache?.data ?? null,
206
+ });
207
+ }
208
+ }
209
+ }
210
+ // Verbosity-steer: inject a conciseness nudge when context is under
211
+ // pressure. Shares the quality-cache cooldown counter so the two
212
+ // features don't double-nudge within the same cooldown window.
213
+ if (config.features.qualityNudges) {
214
+ const fillPctPct = Math.round(state.lastQuality.fillPct * 100);
215
+ const vsResult = checkVerbositySteer(store, fillPctPct, state.lastQuality.resourceHealth);
216
+ if (vsResult.shouldNudge && vsResult.message) {
217
+ warnings.push(vsResult.message);
218
+ // Update cooldown counter (shared with quality nudge)
219
+ const cache = store.getQualityCache();
179
220
  store.writeQualityCache({
180
221
  resource_health: cache?.resource_health ?? state.lastQuality.resourceHealth,
181
222
  session_efficiency: cache?.session_efficiency ?? state.lastQuality.sessionEfficiency,
@@ -186,6 +227,12 @@ export const TokenOptimizerPlugin = async (ctx, options) => {
186
227
  nudge_count: (cache?.nudge_count ?? 0) + 1,
187
228
  data: cache?.data ?? null,
188
229
  });
230
+ // Log estimated savings event
231
+ try {
232
+ const [savedTokens, tier] = verbositySteerSavingsEstimate(fillPctPct);
233
+ getTrendsStore().logSavingsEvent("verbosity_steer", savedTokens, state.sessionId, `fill=${Math.round(fillPctPct)}% score=${Math.round(state.lastQuality.resourceHealth)} tier=${tier}`);
234
+ }
235
+ catch { /* best-effort */ }
189
236
  }
190
237
  }
191
238
  if (config.features.loopDetection && state.recentUserMessages.length >= 3) {
@@ -392,7 +439,11 @@ export const TokenOptimizerPlugin = async (ctx, options) => {
392
439
  // Release the pending prompt — no longer needed once we've committed
393
440
  // to this restore attempt (success or miss).
394
441
  state.pendingContinuityPrompt = "";
395
- const match = restoreCheckpoint(dataDir, firstMsg, input.sessionID, config);
442
+ const match = restoreCheckpoint(dataDir, firstMsg, input.sessionID, config,
443
+ // Pass trendsStore + cwd so the resume-lean path can credit savings
444
+ // and scope the same-project filter. ctx.project.worktree is the
445
+ // working directory of the project (the canonical cwd for this session).
446
+ trendsStore ?? undefined, ctx.project.worktree);
396
447
  if (match) {
397
448
  // Fence restored content as untrusted DATA so it can't act as an
398
449
  // instruction in the system prompt (prompt-injection defense).
@@ -460,7 +511,10 @@ export const TokenOptimizerPlugin = async (ctx, options) => {
460
511
  state.recentSummaries = [];
461
512
  state.lastQuality = null;
462
513
  state.lastQualityTime = 0;
514
+ state.previousResourceHealth = null; // reset so first post-compaction check is suppressed (mirrors Python _nudge_previous_score is None guard)
463
515
  state.regimeChangeEmitted = false;
516
+ // freshNudgeFired is intentionally NOT reset here — once-per-session must persist
517
+ // across compactions. Python carries _fresh_nudge_fired in _CARRY_KEYS across compactions.
464
518
  const fillPct = estimateFillFromSession(store, state.currentModel);
465
519
  maybeComputeQuality(state, fillPct);
466
520
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}