eklavya 1.94.1 → 1.96.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/README.md +4 -3
- package/dist/assets/dashboard.html +167 -4
- package/dist/cli-economy.js +13 -1
- package/dist/cli-economy.js.map +1 -1
- package/dist/cost-report.js +90 -1
- package/dist/cost-report.js.map +1 -1
- package/dist/dashboard.js +71 -3
- package/dist/dashboard.js.map +1 -1
- package/dist/hooks/session-start.js +2 -2
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/ledger-pending.js +27 -0
- package/dist/ledger-pending.js.map +1 -1
- package/dist/ledger.js +15 -4
- package/dist/ledger.js.map +1 -1
- package/dist/memory/use.js +46 -24
- package/dist/memory/use.js.map +1 -1
- package/dist/migrations/041_session_view.sql +22 -0
- package/dist/plugin/.claude-plugin/plugin.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -126,9 +126,10 @@ npx eklavya --version
|
|
|
126
126
|
|
|
127
127
|
The [CLI reference](https://eklavya-run.web.app/docs/cli/) lists all commands and
|
|
128
128
|
flags. `feedback generate` reviews one of your earlier prompts, using what your later prompts in that session had to add, when `feedback.enabled`,
|
|
129
|
-
memory and `providers.observer` are set. Once a day, after your first answer, the Learning dashboard opens one card on arrival (a milestone, a welcome back, the most overdue concept and so on), chosen by the engine in `assets/daily-card.cjs`; the Daily card switch on Settings, Companion, turns it off. Dashboard counts of 1,000 or more read short (1K, 1.2K, 1M). The dashboard reads the database (its Concepts page shows each concept's tags and filters by one with `?tag=`) and has
|
|
130
|
-
change, a correction of a missed answer (which can also complete a level),
|
|
131
|
-
feedback item (`POST /api/feedback/acknowledge`, `/delete`, `/opened`; the reads are `GET /api/feedback` and `/api/feedback/list`)
|
|
129
|
+
memory and `providers.observer` are set. Once a day, after your first answer, the Learning dashboard opens one card on arrival (a milestone, a welcome back, the most overdue concept and so on), chosen by the engine in `assets/daily-card.cjs`; the Daily card switch on Settings, Companion, turns it off. Dashboard counts of 1,000 or more read short (1K, 1.2K, 1M). The dashboard reads the database (its Concepts page shows each concept's tags and filters by one with `?tag=`) and has guarded writes: a setting
|
|
130
|
+
change, a correction of a missed answer (which can also complete a level), acknowledging, deleting or counting the opening of a
|
|
131
|
+
feedback item (`POST /api/feedback/acknowledge`, `/delete`, `/opened`; the reads are `GET /api/feedback` and `/api/feedback/list`),
|
|
132
|
+
and a clean slate (`POST /api/clean-slate` with `{ "confirm": "clean slate" }`: the database moves aside to `knowledge.db.backup-<time>` and the server swaps in a new, empty one without restarting). `GET /api/session?id=` answers what Eklavya did in one session (cost, transcript path, its tool calls, memory sent, opened and used, and the savings estimates) for the session page Learning, Memory and Cost share. "Used" counts a session resumed after it was first counted (a Claude desktop session stays open for days): once it is quiet again, the next session start counts what is new. An open page listens to
|
|
132
133
|
`GET /api/events`, a stream of the change cursor (a counter that moves on every
|
|
133
134
|
write it would show; `/api/cursor` returns the same value on its own), and redraws in place
|
|
134
135
|
when it moves. In a repository checkout, `node mcp/scripts/dashboard-perf.mjs`
|
|
@@ -799,6 +799,10 @@
|
|
|
799
799
|
.streak__talk .say { margin-bottom:30px; }
|
|
800
800
|
/* Here the archer stands to the right of the bubble, so its tail points right. */
|
|
801
801
|
.streak__talk .say::after { left:auto; right:-9px; border-left:0; border-bottom:0; border-right:1.5px solid var(--ink); border-top:1.5px solid var(--ink); }
|
|
802
|
+
/* The session page and the Cost dashboard: a longer line, so a wider bubble that still fits a phone. */
|
|
803
|
+
.sess-talk { margin:0 0 var(--space-5); }
|
|
804
|
+
.sess-talk .say { flex:1 1 auto; max-width:min(520px, 100%); }
|
|
805
|
+
.sub-h { margin:var(--space-4) 0 var(--space-2); font:500 10.5px/1 var(--font-mono); letter-spacing:.18em; text-transform:uppercase; color:var(--faint); }
|
|
802
806
|
@media (prefers-reduced-motion:reduce) { dialog.daily[open], .daily__flame.is-live { animation:none; }
|
|
803
807
|
.daily__ring .f, .daily__bar > b, .daily__bars i { transition:none; } .daily__confetti { display:none; } }
|
|
804
808
|
dialog.dlg { width:min(460px, calc(100vw - 32px)); margin:auto; padding:0; border:1px solid var(--line-2); border-radius:0;
|
|
@@ -812,6 +816,13 @@
|
|
|
812
816
|
.dlg__f { display:flex; justify-content:flex-end; gap:var(--space-3); padding:var(--space-3) var(--space-5) var(--space-5); }
|
|
813
817
|
.btn--spot { background:var(--spot); border-color:var(--spot); color:var(--spot-ink); }
|
|
814
818
|
.btn--danger { background:var(--error); border-color:var(--error); color:var(--bg); }
|
|
819
|
+
.card.danger { border-color:var(--error); display:grid; gap:var(--space-4); justify-items:start; }
|
|
820
|
+
.card.danger h2 { margin:0; color:var(--error); }
|
|
821
|
+
.card.danger p { margin:0; }
|
|
822
|
+
.card.danger form:not([hidden]) { display:grid; gap:var(--space-3); justify-items:start; }
|
|
823
|
+
#slate-in { font:inherit; font-family:var(--font-mono); padding:8px 10px; width:min(320px, 100%);
|
|
824
|
+
background:var(--bg); color:var(--fg, inherit); border:1px solid var(--line); }
|
|
825
|
+
#slate-in:focus-visible { outline:none; box-shadow:var(--ring); }
|
|
815
826
|
@media (max-width:760px) { .toasts { right:0; left:0; bottom:0; width:100%; padding:0 var(--space-4) var(--space-4); } }
|
|
816
827
|
@media (prefers-reduced-motion:reduce) { .toast { animation:none; } .toast.is-out { transition:none; } }
|
|
817
828
|
|
|
@@ -1391,6 +1402,7 @@ const stamp = (ts) => {
|
|
|
1391
1402
|
const COMPACT = new Intl.NumberFormat('en', { notation:'compact', maximumFractionDigits:1 });
|
|
1392
1403
|
const fmtN = (n) => (typeof n === 'number' && Math.abs(n) >= 1000 ? COMPACT.format(n) : n);
|
|
1393
1404
|
const plural = (n, w) => `${fmtN(n)} ${w}${n === 1 ? '' : 's'}`;
|
|
1405
|
+
const memories = (n) => `${fmtN(n)} ${n === 1 ? 'memory' : 'memories'}`;
|
|
1394
1406
|
|
|
1395
1407
|
const TIER = { 1:'recall', 2:'mechanism', 3:'judgement', 4:'failure modes', 5:'design' };
|
|
1396
1408
|
const tierLabel = (t) => `T${t}${TIER[t] ? ' ' + TIER[t] : ''}`;
|
|
@@ -2432,6 +2444,10 @@ const SLOT_MIN = {
|
|
|
2432
2444
|
'entry-body': 650, 'sess-lookup': 360, 'sess-mem': 160, 'fb-item': 520, settings: 1580,
|
|
2433
2445
|
// Two rows of tiles and the two notes under them, with nothing priced yet (420px at 1280 here, ~465px where the
|
|
2434
2446
|
// notes wrap one line more, as on CI); a Cost list's one empty line.
|
|
2447
|
+
// What Eklavya did in a session: the archer's line, four tiles, the transcript card and its closed folds, 620px at
|
|
2448
|
+
// 1280 here and taller where text wraps one line more, as on CI. Held above both, so it can only shrink: a box smaller
|
|
2449
|
+
// than what comes grows while the memory folds below it shrink, and the footer bounces.
|
|
2450
|
+
'sess-ek': 700,
|
|
2435
2451
|
'cost-main': 480, 'cost-sessions': 94, 'cost-calls': 94, 'cost-guard': 94, 'cost-tools': 94, 'cost-facts': 94,
|
|
2436
2452
|
};
|
|
2437
2453
|
/** A list's room: [how many rows the page knows of, the most one page holds, px a row takes, px around the rows (pager, rule)]. Measured at 1280px. */
|
|
@@ -3141,7 +3157,7 @@ function viewSession(id) {
|
|
|
3141
3157
|
// half, and its lines and answers whatever their age (`learning`).
|
|
3142
3158
|
return slot('sess-lookup', '/api/memory/sessions?' + memScope(new URLSearchParams({ session: id })), (d) => {
|
|
3143
3159
|
const found = sessionFromLookup(id, d);
|
|
3144
|
-
return found ? sessionBody(found) :
|
|
3160
|
+
return found ? sessionBody(found) : sessionEklavya(id, true);
|
|
3145
3161
|
}, { label: 'Looking up this session…', cls: 'stack' });
|
|
3146
3162
|
}
|
|
3147
3163
|
|
|
@@ -3195,6 +3211,8 @@ function sessionBody(s) {
|
|
|
3195
3211
|
], `Session <code class="slug">${esc(s.id)}</code>. The learning half and the memory half are joined on the
|
|
3196
3212
|
session id the host handed both — the one association between them that is recorded rather than inferred.`, back),
|
|
3197
3213
|
|
|
3214
|
+
sessionEklavya(id),
|
|
3215
|
+
|
|
3198
3216
|
work.length
|
|
3199
3217
|
? card('What the work taught', 'Each line is what the agent said the concept was for, in the code it wrote.', lines(work.map(conceptLine)))
|
|
3200
3218
|
: '',
|
|
@@ -3214,6 +3232,95 @@ function sessionBody(s) {
|
|
|
3214
3232
|
].join('');
|
|
3215
3233
|
}
|
|
3216
3234
|
|
|
3235
|
+
/**
|
|
3236
|
+
* What Eklavya did in one session, the same on every workflow's session page: what the session cost and
|
|
3237
|
+
* Eklavya's share of it (measured), where its transcript is, the Eklavya tools it called, what memory gave it
|
|
3238
|
+
* and what it gave memory, and the savings estimates. `alone` draws the page head too, for a session that only
|
|
3239
|
+
* the ledger or memory knows; one with nothing recorded at all is not found.
|
|
3240
|
+
*/
|
|
3241
|
+
function sessionEklavya(id, alone = false) {
|
|
3242
|
+
return slot('sess-ek', '/api/session?id=' + encodeURIComponent(id), (d) => drawSessionEklavya(d, alone),
|
|
3243
|
+
{ label: 'Reading what Eklavya did…', cls: 'stack' });
|
|
3244
|
+
}
|
|
3245
|
+
|
|
3246
|
+
/** The recall estimate in words; never money (issue #259). */
|
|
3247
|
+
const recallSaving = (r) => r.kind === 'saving' ? `${r.percent}% smaller than its sources`
|
|
3248
|
+
: r.kind === 'overhead' ? `${fmtN(r.tokens)} tokens larger than its sources`
|
|
3249
|
+
: r.kind === 'unavailable' ? 'size against its sources unavailable' : 'no context recalled';
|
|
3250
|
+
|
|
3251
|
+
/**
|
|
3252
|
+
* The mascot's line for a session: only figures the page also shows, so it says nothing the numbers do not.
|
|
3253
|
+
* Its face follows them: worried when the loop guard had to step in, happy when memory or a fact was used,
|
|
3254
|
+
* curious when the session was never priced.
|
|
3255
|
+
*/
|
|
3256
|
+
function sessionVerdict(d) {
|
|
3257
|
+
const c = d.cost, m = d.memory, sv = d.savings;
|
|
3258
|
+
const own = d.overhead.reduce((a, o) => a + (o.effective || 0), 0);
|
|
3259
|
+
// Background calls are not in the session's total, so they join both sides of the share.
|
|
3260
|
+
const share = c && c.folded && c.effective ? Math.round((100 * (c.eklavya_effective + own)) / (c.effective + own)) : null;
|
|
3261
|
+
const said = [
|
|
3262
|
+
share === null ? 'This session has not been priced yet.' : `I used ${share}% of this session's effective tokens.`,
|
|
3263
|
+
m.applied.count ? `${memories(m.applied.count)} I recalled ${m.applied.count === 1 ? 'was' : 'were'} put to use.` : '',
|
|
3264
|
+
sv.failures_avoided ? `I kept ${plural(sv.failures_avoided, 'known failure')} away (estimated).` : '',
|
|
3265
|
+
sv.guard.redirect ? `I redirected ${plural(sv.guard.redirect, 'stuck turn')}.` : '',
|
|
3266
|
+
m.remembered ? `I remembered ${plural(m.remembered, 'thing')} from it.` : '',
|
|
3267
|
+
].filter(Boolean).join(' ');
|
|
3268
|
+
const state = sv.guard.redirect ? 'warning' : m.applied.count || sv.failures_avoided ? 'success' : c ? 'info' : 'empty';
|
|
3269
|
+
return `<div class="streak__talk sess-talk"><div class="say">${esc(said)}</div><eklavya-mascot state="${state}" variant="body" size="80"></eklavya-mascot></div>`;
|
|
3270
|
+
}
|
|
3271
|
+
|
|
3272
|
+
function drawSessionEklavya(d, alone) {
|
|
3273
|
+
if (!d.known) return alone ? noSession(d.session_id) : '';
|
|
3274
|
+
const c = d.cost, m = d.memory, sv = d.savings;
|
|
3275
|
+
const own = d.overhead.reduce((a, o) => a + (o.effective || 0), 0);
|
|
3276
|
+
const head = alone
|
|
3277
|
+
? pageHead(esc(c?.project ? pname(c.project) : 'Session'), [
|
|
3278
|
+
c?.started_at ? `${esc(stamp(c.started_at))}${c.ended_at ? ` → ${esc(stamp(c.ended_at))}` : ''}` : 'not priced yet',
|
|
3279
|
+
c ? plural(c.prompts, 'prompt') : '',
|
|
3280
|
+
].filter(Boolean), `Session <code class="slug">${esc(d.session_id)}</code>. It logged no concept and asked no question,
|
|
3281
|
+
so only what Eklavya recorded about its cost and memory is here.`,
|
|
3282
|
+
`<a class="page__back" data-go="${esc(href(CUR.wf, 'sessions'))}">← Sessions</a>`, true)
|
|
3283
|
+
: '';
|
|
3284
|
+
const priced = c && c.folded;
|
|
3285
|
+
const stats = tiles([
|
|
3286
|
+
['Session cost', priced ? c.effective : '—', priced ? `measured · effective tokens · ${c.model ?? 'no model'}${c.unpriced.length ? ' · unpriced' : ''}` : 'priced when the session ends'],
|
|
3287
|
+
['Eklavya\'s share', priced ? c.eklavya_effective + own : '—', priced ? `measured · ${fmtN(c.quiz_effective)} in turns that called its tools, ${fmtN(c.eklavya_effective - c.quiz_effective)} subagents, ${fmtN(own)} background` : 'priced when the session ends'],
|
|
3288
|
+
['Memory used', m.applied.count, m.folded ? `measured · ${m.sent.count} sent, ${m.opened.count} opened` : 'counted once the session is folded'],
|
|
3289
|
+
['Given to memory', m.remembered, `count · ${plural(m.captured, 'event')} captured${m.pending ? `, ${m.pending} waiting` : ''}`],
|
|
3290
|
+
]);
|
|
3291
|
+
const transcript = d.transcript
|
|
3292
|
+
? d.transcript.on_disk
|
|
3293
|
+
? `<div class="cmd"><code>${esc(d.transcript.path)}</code><button type="button" class="cmd__copy" data-copy data-hint="Open it in your editor: one JSON object per line." data-focus="copy:transcript">Copy</button></div>`
|
|
3294
|
+
: `<p class="empty">Claude Code has since deleted it: <code class="slug">${esc(d.transcript.path)}</code></p>`
|
|
3295
|
+
: '<p class="empty">No transcript was recorded: this session started before the cost ledger, or with it off.</p>';
|
|
3296
|
+
const tools = Object.entries(d.tools).sort((a, b) => b[1] - a[1]);
|
|
3297
|
+
// An empty list here is one of three: a plain line, not the mascot's empty state three times over.
|
|
3298
|
+
const entryLines = (list) => !list.count ? '<p class="empty">None.</p>'
|
|
3299
|
+
: lines(list.entries.map((e) => ({ t: esc(e.title), s: esc(e.type ?? ''), go: MH('entry', e.id) })))
|
|
3300
|
+
+ (list.count > list.entries.length ? `<p class="slug">The newest ${list.entries.length} of ${list.count}.</p>` : '');
|
|
3301
|
+
const savings = lines([
|
|
3302
|
+
{ t: 'Recall', s: `estimated · ${plural(m.recalls, 'recall')} · smaller than the files it summarises, not money saved`, v: esc(recallSaving(sv.recall)) },
|
|
3303
|
+
{ t: 'Failures avoided by facts', s: `estimated · ${plural(sv.facts_shown, 'pinned fact')} shown`, v: esc(fmtN(sv.failures_avoided)) },
|
|
3304
|
+
{ t: 'Stuck turns redirected', s: `count · ${sv.guard.notice ?? 0} notices, ${sv.guard.judge ?? 0} judge calls`, v: esc(fmtN(sv.guard.redirect ?? 0)) },
|
|
3305
|
+
]);
|
|
3306
|
+
return [
|
|
3307
|
+
head,
|
|
3308
|
+
sessionVerdict(d),
|
|
3309
|
+
stats,
|
|
3310
|
+
card('Transcript', 'Claude Code\'s own record of the session. Eklavya keeps only its path.', transcript),
|
|
3311
|
+
fold('sess:savings', 'What Eklavya saved', 'estimates', savings,
|
|
3312
|
+
{ hint: 'Each figure is an estimate or a count, never money: the work might have gone the same way without it.' }),
|
|
3313
|
+
fold('sess:given', 'What memory gave it', `${m.sent.count} sent · ${m.opened.count} opened · ${m.applied.count} used`,
|
|
3314
|
+
`<h3 class="sub-h">Used</h3>${entryLines(m.applied)}<h3 class="sub-h">Opened</h3>${entryLines(m.opened)}<h3 class="sub-h">Sent</h3>${entryLines(m.sent)}`,
|
|
3315
|
+
{ hint: 'Sent: recalled into the session. Opened: read in full with memory_get. Used: the session then read or edited one of its files.' }),
|
|
3316
|
+
tools.length
|
|
3317
|
+
? fold('sess:tools', 'Eklavya tools it called', plural(tools.reduce((a, [, n]) => a + n, 0), 'call'),
|
|
3318
|
+
lines(tools.map(([name, n]) => ({ t: `<code class="slug">${esc(name)}</code>`, v: esc(fmtN(n)) }))),
|
|
3319
|
+
{ hint: 'Measured from the transcript when the session was priced: names and counts, never arguments.' })
|
|
3320
|
+
: '',
|
|
3321
|
+
].join('');
|
|
3322
|
+
}
|
|
3323
|
+
|
|
3217
3324
|
/** Where a project was last seen, said plainly. A gone checkout is history, not an error. */
|
|
3218
3325
|
const whereLine = (p) => p.kind === 'global' ? 'work done outside any repository'
|
|
3219
3326
|
: p.kind === 'unattributed' ? 'recorded before projects were tracked, or by a session that named none'
|
|
@@ -4190,10 +4297,13 @@ $('fix').addEventListener('close', () => {
|
|
|
4190
4297
|
$('view').addEventListener('click', (e) => {
|
|
4191
4298
|
const prune = e.target.closest('[data-prune]');
|
|
4192
4299
|
if (prune) prunePress(prune);
|
|
4300
|
+
if (e.target.closest('#slate-open')) { $('slate-form').hidden = false; $('slate-in').focus(); }
|
|
4193
4301
|
if (e.target.closest('#fix-open')) openFix();
|
|
4194
4302
|
if (e.target.closest('#fix-retry')) loadFix(S.artifacts.find((x) => x.id === CUR.param));
|
|
4195
4303
|
});
|
|
4196
4304
|
|
|
4305
|
+
$('view').addEventListener('submit', (e) => { if (e.target.id === 'slate-form') cleanSlateSubmit(e); });
|
|
4306
|
+
|
|
4197
4307
|
/**
|
|
4198
4308
|
* Closing the tab with a correction still open asks first. Browsers show their
|
|
4199
4309
|
* own generic prompt -- a page cannot set its text -- so the bar carries ours.
|
|
@@ -5592,12 +5702,14 @@ const WORKFLOWS = {
|
|
|
5592
5702
|
guard: { label: 'Loop guard', view: () => viewCostPage('guard') },
|
|
5593
5703
|
tools: { label: 'Tool pruning', view: () => viewCostPage('tools') },
|
|
5594
5704
|
facts: { label: 'Pinned facts', view: () => viewCostPage('facts') },
|
|
5705
|
+
session: { parent: 'sessions', view: (p) => viewSession(p) },
|
|
5595
5706
|
},
|
|
5596
5707
|
},
|
|
5597
5708
|
settings: {
|
|
5598
5709
|
name: 'Settings',
|
|
5599
|
-
groups: [],
|
|
5710
|
+
groups: [{ id: 'danger', label: 'Danger', items: ['danger'] }],
|
|
5600
5711
|
pages: {
|
|
5712
|
+
danger: { label: 'Clean slate', view: () => viewDanger() },
|
|
5601
5713
|
dashboard: { label: 'Preferences', view: () => viewSettings('user'), inPage: true },
|
|
5602
5714
|
user: { parent: 'dashboard', view: () => viewSettings('user'), inPage: true, screen: 'dashboard' },
|
|
5603
5715
|
project: { parent: 'dashboard', view: () => viewSettings('project'), inPage: true },
|
|
@@ -5605,6 +5717,45 @@ const WORKFLOWS = {
|
|
|
5605
5717
|
},
|
|
5606
5718
|
};
|
|
5607
5719
|
|
|
5720
|
+
/* ---------- Danger: clean slate ---------- */
|
|
5721
|
+
|
|
5722
|
+
const CLEAN_SLATE = 'clean slate';
|
|
5723
|
+
|
|
5724
|
+
function viewDanger() {
|
|
5725
|
+
return [pageHead('Clean slate', [], `Moves the database aside to a backup file beside it and starts a new, empty one: every answer,
|
|
5726
|
+
mastery score, session, memory and cost record is gone from the dashboard and from recall. Your settings, project settings
|
|
5727
|
+
and artifacts are files and stay. Nothing is deleted: to undo, stop Eklavya and rename the backup back to the database's
|
|
5728
|
+
name. Claude Code sessions that are already open keep writing to the backup until you restart them.`),
|
|
5729
|
+
`<section class="card danger">
|
|
5730
|
+
<h2>Start over with an empty database</h2>
|
|
5731
|
+
<p>Your learning history and project memory leave this dashboard and stop being recalled. The old database is kept as a backup.</p>
|
|
5732
|
+
<button type="button" class="btn btn--danger" id="slate-open">Clean slate…</button>
|
|
5733
|
+
<form id="slate-form" hidden>
|
|
5734
|
+
<label for="slate-in">Type <code>${CLEAN_SLATE}</code> and press Enter to confirm.</label>
|
|
5735
|
+
<input id="slate-in" autocomplete="off" spellcheck="false">
|
|
5736
|
+
<button class="btn btn--danger" id="slate-go">Erase and start over</button>
|
|
5737
|
+
</form>
|
|
5738
|
+
</section>`].join('');
|
|
5739
|
+
}
|
|
5740
|
+
|
|
5741
|
+
function cleanSlateSubmit(e) {
|
|
5742
|
+
e.preventDefault();
|
|
5743
|
+
const field = $('slate-in'), go = $('slate-go');
|
|
5744
|
+
if (field.value.trim().toLowerCase() !== CLEAN_SLATE) {
|
|
5745
|
+
toast.alert(`Type "${CLEAN_SLATE}" exactly to confirm.`, { id: 'slate' });
|
|
5746
|
+
field.focus();
|
|
5747
|
+
return;
|
|
5748
|
+
}
|
|
5749
|
+
go.disabled = true;
|
|
5750
|
+
postJson('/api/clean-slate', { confirm: field.value })
|
|
5751
|
+
.then((r) => ekDialog({ state: 'success', title: 'A clean slate', single: true, ok: 'Open the dashboard',
|
|
5752
|
+
text: `The old database is kept at ${r.backup}. Restart open Claude Code sessions so they use the new one.` }))
|
|
5753
|
+
// The new, empty payload, then the Learning dashboard: the hash change draws it.
|
|
5754
|
+
.then(() => Promise.all([json('/api/state'), json('/api/projects')]))
|
|
5755
|
+
.then(([s, inv]) => { adoptState(s, inv); paintChrome(s, inv); location.hash = href('learning', 'dashboard', undefined, { project: null }); })
|
|
5756
|
+
.catch((err) => { go.disabled = false; toast.alert(String(err.message || err), { id: 'slate' }); });
|
|
5757
|
+
}
|
|
5758
|
+
|
|
5608
5759
|
/* ---------- Cost (issue #259) ---------- */
|
|
5609
5760
|
|
|
5610
5761
|
/**
|
|
@@ -5656,7 +5807,19 @@ function drawCost(d) {
|
|
|
5656
5807
|
? nextStep(`<strong>Memory on vs off:</strong> ${plural(d.experiment.on, 'session')} with memory on, ${plural(d.experiment.off, 'session')} off. Run <code>eklavya experiment memory --report</code> for the medians.`, true)
|
|
5657
5808
|
: '';
|
|
5658
5809
|
const net = nextStep('<strong>Net effect:</strong> not computed. It needs the benchmark run with and without these controls; until then only the measured figures above stand.');
|
|
5659
|
-
return tiles1 + tiles2 + prune + weeks + experiment + net;
|
|
5810
|
+
return costTalk(d, own) + tiles1 + tiles2 + prune + weeks + experiment + net;
|
|
5811
|
+
}
|
|
5812
|
+
|
|
5813
|
+
/** The mascot's summary of the scope, from the tiles' own figures. */
|
|
5814
|
+
function costTalk(d, own) {
|
|
5815
|
+
if (!d.totals.sessions) return '';
|
|
5816
|
+
const share = Math.round((100 * (d.totals.eklavya_in_sessions + own)) / (d.totals.effective + own || 1));
|
|
5817
|
+
const said = [`Across ${plural(d.totals.sessions, 'priced session')} and my own background calls, I used ${share}% of the effective tokens.`,
|
|
5818
|
+
d.memory_use.applied ? `In ${d.days} days, ${memories(d.memory_use.applied)} I recalled ${d.memory_use.applied === 1 ? 'was' : 'were'} put to use.` : '',
|
|
5819
|
+
d.failures_avoided ? `I kept ${plural(d.failures_avoided, 'known failure')} away (estimated).` : '',
|
|
5820
|
+
'Open a session to see what I did in it.'].filter(Boolean).join(' ');
|
|
5821
|
+
const state = d.memory_use.applied || d.failures_avoided ? 'success' : 'info';
|
|
5822
|
+
return `<div class="streak__talk sess-talk"><div class="say">${esc(said)}</div><eklavya-mascot state="${state}" variant="body" size="80"></eklavya-mascot></div>`;
|
|
5660
5823
|
}
|
|
5661
5824
|
|
|
5662
5825
|
function viewCostPage(which) {
|
|
@@ -5693,7 +5856,7 @@ function drawCostPage(which, d) {
|
|
|
5693
5856
|
if (!d.sessions.length) return empty('No session has been priced yet.');
|
|
5694
5857
|
const p = page('costsessions', d.sessions.length);
|
|
5695
5858
|
return table([{ t: 'Session' }, { t: 'Effective', n: 1 }, { t: 'Eklavya', n: 1 }],
|
|
5696
|
-
slice(d.sessions, p).map((s) => `<tr><td>${esc(s.started_at ? fmtDate(s.started_at) : '—')} <span class="slug">${esc(s.project ? pname(s.project) : '—')}</span>
|
|
5859
|
+
slice(d.sessions, p).map((s) => `<tr class="row" data-go="${esc(CH('session', s.session_id))}"><td>${esc(s.started_at ? fmtDate(s.started_at) : '—')} <span class="slug">${esc(s.project ? pname(s.project) : '—')}</span>
|
|
5697
5860
|
<br><code class="slug">${esc(s.model ?? '—')}</code>${s.unpriced ? ' <span class="pill due">unpriced</span>' : ''} <span class="slug">· ${plural(s.prompts, 'prompt')}
|
|
5698
5861
|
· ${fmtN(s.input)} fresh · ${fmtN(s.cache_read)} cached · ${fmtN(s.cache_write_5m + s.cache_write_1h)} written · ${fmtN(s.output)} out</span></td>
|
|
5699
5862
|
<td class="num">${fmtN(s.effective)}</td>
|
package/dist/cli-economy.js
CHANGED
|
@@ -11,7 +11,7 @@ import { foldSessionFacts, injectable, listFacts, retireFact, sessionEvidence }
|
|
|
11
11
|
import { openDb } from './db.js';
|
|
12
12
|
import { initializeGlobalConfig, loadConfig } from './config.js';
|
|
13
13
|
import { identityFor } from './memory/identity.js';
|
|
14
|
-
import { costCsv, foldSession, overheadBySource, quietPending, sessionCosts, weeklyCosts } from './ledger.js';
|
|
14
|
+
import { costCsv, foldSession, memoryUsePending, overheadBySource, quietPending, sessionCosts, weeklyCosts } from './ledger.js';
|
|
15
15
|
import { bold, dim, failText, heading, paint } from './theme.js';
|
|
16
16
|
import { guardCounts, judgeTurn } from './loop-guard.js';
|
|
17
17
|
import { meterProviderCalls } from './ledger.js';
|
|
@@ -62,6 +62,8 @@ export async function foldCommand(args, run = defaultRun) {
|
|
|
62
62
|
process.stdout.write(`refreshed ${n} outdated entr${n === 1 ? 'y' : 'ies'}\n`);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
+
if (args.includes('--pending'))
|
|
66
|
+
refoldMemoryUse(db, config, memoryUsePending(db, Date.now()));
|
|
65
67
|
}
|
|
66
68
|
finally {
|
|
67
69
|
db.close();
|
|
@@ -135,6 +137,16 @@ export async function refreshStale(db, config, project, run) {
|
|
|
135
137
|
}
|
|
136
138
|
return done;
|
|
137
139
|
}
|
|
140
|
+
/** Folds the memory figures again for sessions resumed since their fold; the cost row stays as it was. */
|
|
141
|
+
export function refoldMemoryUse(db, config, ids) {
|
|
142
|
+
for (const id of ids) {
|
|
143
|
+
const { project } = db.prepare('SELECT project FROM econ_sessions WHERE session_id = ?').get(id);
|
|
144
|
+
if (!project)
|
|
145
|
+
continue;
|
|
146
|
+
foldEntryUse(db, config, project, id, fs.existsSync(path.join(project, '.git')) ? project : null);
|
|
147
|
+
process.stdout.write(`${id}: memory use refolded\n`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
138
150
|
/**
|
|
139
151
|
* What else a folded session teaches, each part failing on its own: the
|
|
140
152
|
* tool-use evidence pruning proposes from, a pruned tool that has since become
|
package/dist/cli-economy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-economy.js","sourceRoot":"","sources":["../src/cli-economy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli-economy.js","sourceRoot":"","sources":["../src/cli-economy.ts"],"names":[],"mappings":"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"}
|
package/dist/cost-report.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
1
2
|
import { overheadBySource, sessionCosts, weeklyCosts } from './ledger.js';
|
|
2
3
|
import { guardCounts } from './loop-guard.js';
|
|
3
4
|
import { kept, proposal, writeRecord } from './toolprune-store.js';
|
|
4
5
|
import { listFacts } from './memory/pinned.js';
|
|
5
6
|
import { staleCounts } from './memory/use.js';
|
|
7
|
+
import { DELIVERED } from './memory/store.js';
|
|
8
|
+
import { savingsFrom } from './memory/tokens.js';
|
|
6
9
|
/**
|
|
7
10
|
* The dashboard's Cost workflow (issue #259): one payload, every figure from
|
|
8
11
|
* the same rows `eklavya cost --export csv` reads, each tagged with how it
|
|
@@ -41,6 +44,11 @@ export function costReport(db, config, project, now = Date.now()) {
|
|
|
41
44
|
.prepare(`SELECT COUNT(*) AS n FROM pinned_fact_shown s JOIN pinned_facts f ON f.id = s.fact_id
|
|
42
45
|
WHERE s.avoided = 1 AND s.shown_at >= ? AND (? IS NULL OR f.project = ?)`)
|
|
43
46
|
.get(since, project, project).n;
|
|
47
|
+
// Measured: recalled entries a session folded in the window went on to use.
|
|
48
|
+
const applied = db
|
|
49
|
+
.prepare(`SELECT COUNT(*) AS n FROM memory_session_applied a JOIN memory_use_sessions u ON u.session_id = a.session_id
|
|
50
|
+
JOIN memory_entries e ON e.id = a.entry_id WHERE u.folded_at >= ? AND (? IS NULL OR e.project = ?)`)
|
|
51
|
+
.get(since, project, project).n;
|
|
44
52
|
const sum = (xs) => xs.reduce((a, b) => a + b, 0);
|
|
45
53
|
return {
|
|
46
54
|
days: DAYS,
|
|
@@ -58,7 +66,7 @@ export function costReport(db, config, project, now = Date.now()) {
|
|
|
58
66
|
failures_avoided: avoided,
|
|
59
67
|
guard: guardCounts(db, project, since),
|
|
60
68
|
guard_events: guardEvents,
|
|
61
|
-
memory_use: { recalls, ...reads, ...staleCounts(db, project) },
|
|
69
|
+
memory_use: { recalls, applied, ...reads, ...staleCounts(db, project) },
|
|
62
70
|
experiment: { on: arms.on.length, off: arms.off.length, ran: arms.off.length > 0 },
|
|
63
71
|
tools: project
|
|
64
72
|
? { mode: config.economy.toolprune, proposed: proposal(db, config, project), denied: writeRecord(db, project)?.added ?? [], kept: kept(db, project) }
|
|
@@ -71,4 +79,85 @@ export function costReport(db, config, project, now = Date.now()) {
|
|
|
71
79
|
: [],
|
|
72
80
|
};
|
|
73
81
|
}
|
|
82
|
+
const parse = (text, fallback) => {
|
|
83
|
+
try {
|
|
84
|
+
return text ? JSON.parse(text) : fallback;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return fallback;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
/** At most this many entries are named per list on the session page; the counts stay whole. */
|
|
91
|
+
export const SESSION_ENTRY_LIMIT = 50;
|
|
92
|
+
/**
|
|
93
|
+
* One session as the shared session page reads it, from every workflow: what
|
|
94
|
+
* it cost (measured), where its transcript is, which of Eklavya's tools it
|
|
95
|
+
* called, what memory gave it and what it gave memory, and the savings
|
|
96
|
+
* estimates, each tagged with how it was obtained. Answers for any id: when
|
|
97
|
+
* nothing at all is recorded under it, `known` is false and every figure is empty.
|
|
98
|
+
*/
|
|
99
|
+
export function sessionReport(db, id) {
|
|
100
|
+
const econ = db
|
|
101
|
+
.prepare(`SELECT session_id, project, transcript_path, model, started_at, ended_at, prompts, requests, tool_calls, tool_errors,
|
|
102
|
+
input, cache_read, cache_write_5m, cache_write_1h, output, effective, quiz_effective, eklavya_effective,
|
|
103
|
+
eklavya_tools, unpriced, folded_at
|
|
104
|
+
FROM econ_sessions WHERE session_id = ?`)
|
|
105
|
+
.get(id);
|
|
106
|
+
const overhead = db
|
|
107
|
+
.prepare(`SELECT source, COUNT(*) AS calls, SUM(effective) AS effective FROM econ_overhead
|
|
108
|
+
WHERE session_id = ? AND in_session = 0 GROUP BY source ORDER BY effective DESC`)
|
|
109
|
+
.all(id);
|
|
110
|
+
const entries = (sql) => db.prepare(`SELECT e.id, e.title, e.type FROM memory_entries e WHERE e.id IN (${sql}) ORDER BY e.id DESC`).all(id);
|
|
111
|
+
const sent = entries(`SELECT i.entry_id FROM context_receipt_items i JOIN context_receipts r ON r.id = i.receipt_id WHERE r.session_id = ? AND r.${DELIVERED}`);
|
|
112
|
+
const opened = entries(`SELECT CAST(j.value AS INTEGER) FROM memory_reads m, json_each(m.entry_ids) j WHERE m.session_id = ? AND m.tool = 'memory_get'`);
|
|
113
|
+
const applied = entries('SELECT entry_id FROM memory_session_applied WHERE session_id = ?');
|
|
114
|
+
const receipts = db
|
|
115
|
+
.prepare(`SELECT COUNT(*) AS recalls, COALESCE(SUM(base_tokens), 0) AS base, COALESCE(SUM(delivered_tokens), 0) AS delivered
|
|
116
|
+
FROM context_receipts WHERE session_id = ? AND ${DELIVERED}`)
|
|
117
|
+
.get(id);
|
|
118
|
+
const reads = db
|
|
119
|
+
.prepare(`SELECT COUNT(*) AS n, COALESCE(SUM(outcome = 'empty'), 0) AS empty FROM memory_reads WHERE session_id = ?`)
|
|
120
|
+
.get(id);
|
|
121
|
+
const captured = db
|
|
122
|
+
.prepare(`SELECT COUNT(*) AS events, COALESCE(SUM(status != 'summarized'), 0) AS pending, COALESCE(SUM(redacted), 0) AS redacted
|
|
123
|
+
FROM evidence_events WHERE session_id = ?`)
|
|
124
|
+
.get(id);
|
|
125
|
+
const remembered = db.prepare('SELECT COUNT(*) AS n FROM memory_entries WHERE session_id = ? AND deleted_at IS NULL').get(id).n;
|
|
126
|
+
const facts = db
|
|
127
|
+
.prepare('SELECT COUNT(*) AS shown, COALESCE(SUM(avoided = 1), 0) AS avoided FROM pinned_fact_shown WHERE session_id = ?')
|
|
128
|
+
.get(id);
|
|
129
|
+
const guard = Object.fromEntries(db.prepare('SELECT kind, COUNT(*) AS n FROM econ_guard_events WHERE session_id = ? GROUP BY kind').all(id).map((r) => [r.kind, r.n]));
|
|
130
|
+
const useFolded = Boolean(db.prepare('SELECT 1 FROM memory_use_sessions WHERE session_id = ?').get(id));
|
|
131
|
+
const transcript = econ?.transcript_path ?? null;
|
|
132
|
+
const cap = (xs) => xs.slice(0, SESSION_ENTRY_LIMIT);
|
|
133
|
+
return {
|
|
134
|
+
session_id: id,
|
|
135
|
+
// Whether Eklavya recorded anything under this id: a session the learning half alone knows is still a session.
|
|
136
|
+
known: Boolean(econ || overhead.length || receipts.recalls || reads.n || captured.events || remembered || facts.shown || Object.keys(guard).length),
|
|
137
|
+
cost: econ ? (({ eklavya_tools: _tools, ...row }) => ({ ...row, unpriced: parse(row.unpriced, []), folded: row.folded_at !== null }))(econ) : null,
|
|
138
|
+
transcript: transcript ? { path: transcript, on_disk: fs.existsSync(transcript) } : null,
|
|
139
|
+
// Measured: from the transcript at fold time, names and counts only.
|
|
140
|
+
tools: parse(econ?.eklavya_tools ?? null, {}),
|
|
141
|
+
overhead,
|
|
142
|
+
memory: {
|
|
143
|
+
recalls: receipts.recalls,
|
|
144
|
+
reads: reads.n,
|
|
145
|
+
empty_reads: reads.empty,
|
|
146
|
+
sent: { count: sent.length, entries: cap(sent) },
|
|
147
|
+
opened: { count: opened.length, entries: cap(opened) },
|
|
148
|
+
applied: { count: applied.length, entries: cap(applied) },
|
|
149
|
+
folded: useFolded,
|
|
150
|
+
captured: captured.events,
|
|
151
|
+
pending: captured.pending,
|
|
152
|
+
redacted: captured.redacted,
|
|
153
|
+
remembered,
|
|
154
|
+
},
|
|
155
|
+
savings: {
|
|
156
|
+
recall: savingsFrom({ baseTokens: receipts.base, deliveredTokens: receipts.delivered, delivery: receipts.recalls ? 'emitted' : 'unknown' }),
|
|
157
|
+
failures_avoided: facts.avoided,
|
|
158
|
+
facts_shown: facts.shown,
|
|
159
|
+
guard,
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
}
|
|
74
163
|
//# sourceMappingURL=cost-report.js.map
|
package/dist/cost-report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-report.js","sourceRoot":"","sources":["../src/cost-report.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cost-report.js","sourceRoot":"","sources":["../src/cost-report.ts"],"names":[],"mappings":"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"}
|