eklavya 1.97.0 → 1.98.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 +2 -2
- package/dist/assets/dashboard.html +167 -36
- package/dist/cli-economy.js +1 -1
- package/dist/cli-economy.js.map +1 -1
- package/dist/cli.js +12 -6
- package/dist/cli.js.map +1 -1
- package/dist/config-path.js +14 -2
- package/dist/config-path.js.map +1 -1
- package/dist/config.js +16 -1
- package/dist/config.js.map +1 -1
- package/dist/cost-report.js +51 -1
- package/dist/cost-report.js.map +1 -1
- package/dist/dashboard.js +38 -8
- package/dist/dashboard.js.map +1 -1
- package/dist/feedback-review.js +2 -1
- package/dist/feedback-review.js.map +1 -1
- package/dist/feedback.js +9 -4
- package/dist/feedback.js.map +1 -1
- package/dist/ledger.js +12 -5
- package/dist/ledger.js.map +1 -1
- package/dist/memory/provider.js +2 -1
- package/dist/memory/provider.js.map +1 -1
- package/dist/memory/summarize.js.map +1 -1
- package/dist/memory/worker.js +3 -2
- package/dist/memory/worker.js.map +1 -1
- package/dist/migrations/042_econ_overhead_links.sql +22 -0
- package/dist/onboard.js +10 -10
- package/dist/onboard.js.map +1 -1
- package/dist/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/plugin/skills/setup/SKILL.md +1 -1
- package/dist/tools/config_tools.js +5 -1
- package/dist/tools/config_tools.js.map +1 -1
- package/dist/user-skill/eklavya/SKILL.md +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ choices. It registers the plugin, installs the managed runtime and chat/artifact
|
|
|
17
17
|
skills, adds a short memory section to `~/.claude/CLAUDE.md` so Claude opens
|
|
18
18
|
what Eklavya recalls (`--skip-claude-md` to skip it), and prepares local storage. New installs have the quiz side panel,
|
|
19
19
|
memory and prompt feedback on. Memory summaries and prompt feedback use
|
|
20
|
-
`claude-
|
|
20
|
+
`claude-haiku-5-5` through your Claude Code login, so captured session evidence
|
|
21
21
|
goes to that model. [Memory](https://eklavya-run.web.app/docs/memory/) explains
|
|
22
22
|
what is captured, when batches close (a quiet session's leftovers after 20 minutes, in any project) and how to use local summaries instead.
|
|
23
23
|
If Claude Mem is installed, it keeps recording and Eklavya memory stays off
|
|
@@ -127,7 +127,7 @@ npx eklavya --version
|
|
|
127
127
|
|
|
128
128
|
The [CLI reference](https://eklavya-run.web.app/docs/cli/) lists all commands and
|
|
129
129
|
flags. `feedback generate` reviews one of your earlier prompts, using what your later prompts in that session had to add, when `feedback.enabled`,
|
|
130
|
-
memory and `providers.observer` are
|
|
130
|
+
memory and a model are set (`providers.feedback`, or `providers.observer` when that is `null`; both are on the dashboard's Settings → Models tab). 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
|
|
131
131
|
change, a correction of a missed answer (which can also complete a level), acknowledging, deleting or counting the opening of a
|
|
132
132
|
feedback item (`POST /api/feedback/acknowledge`, `/delete`, `/opened`; the reads are `GET /api/feedback` and `/api/feedback/list`),
|
|
133
133
|
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
|
|
@@ -209,6 +209,9 @@
|
|
|
209
209
|
.nav__toggle svg { width:12px; height:12px; transition:transform var(--duration-fast) var(--ease); }
|
|
210
210
|
.nav__toggle[aria-expanded="false"] svg { transform:rotate(-90deg); }
|
|
211
211
|
.nav__items[hidden] { display:none; }
|
|
212
|
+
/* Settings pins its Danger group (Clean slate) to the foot of the nav, apart from Preferences. */
|
|
213
|
+
nav.side__nav[data-workflow="settings"] { flex:1 0 auto; }
|
|
214
|
+
nav.side__nav[data-workflow="settings"] > .nav__group:last-child { margin-top:auto; }
|
|
212
215
|
|
|
213
216
|
/* ---------- phone chrome: a top bar and a drawer ---------- */
|
|
214
217
|
.topbar { display:none; }
|
|
@@ -802,6 +805,7 @@
|
|
|
802
805
|
/* The session page and the Cost dashboard: a longer line, so a wider bubble that still fits a phone. */
|
|
803
806
|
.sess-talk { margin:0 0 var(--space-5); }
|
|
804
807
|
.sess-talk .say { flex:1 1 auto; max-width:min(520px, 100%); }
|
|
808
|
+
#sess-ek .sess-talk { justify-content:flex-end; }
|
|
805
809
|
.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); }
|
|
806
810
|
@media (prefers-reduced-motion:reduce) { dialog.daily[open], .daily__flame.is-live { animation:none; }
|
|
807
811
|
.daily__ring .f, .daily__bar > b, .daily__bars i { transition:none; } .daily__confetti { display:none; } }
|
|
@@ -1157,17 +1161,8 @@
|
|
|
1157
1161
|
.sw__scope[aria-current="page"] svg { color:var(--spot); }
|
|
1158
1162
|
.sw__none { margin:var(--space-1) var(--space-2) var(--space-2); color:var(--faint); font-size:12.5px; }
|
|
1159
1163
|
.sw__pane { min-width:0; display:flex; flex-direction:column; gap:var(--space-5); }
|
|
1160
|
-
/* The pane's
|
|
1164
|
+
/* The pane's two regions add no box: their contents are the pane's flex items, as they were before there were regions. */
|
|
1161
1165
|
.sw__pane > [data-region] { display:contents; }
|
|
1162
|
-
.sw__tabs { display:flex; gap:0; border-bottom:1px solid var(--line-2); overflow-x:auto; scrollbar-width:none; }
|
|
1163
|
-
.sw__tabs::-webkit-scrollbar { display:none; }
|
|
1164
|
-
.sw__tab { display:flex; align-items:center; gap:6px; padding:10px 9px; margin-bottom:-1px; white-space:nowrap;
|
|
1165
|
-
font-family:var(--font-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
|
|
1166
|
-
color:var(--faint); text-decoration:none; border-bottom:2px solid transparent;
|
|
1167
|
-
transition:color var(--duration-fast) var(--ease); }
|
|
1168
|
-
.sw__tab:hover { color:var(--ink); }
|
|
1169
|
-
.sw__tab[aria-current="page"] { color:var(--ink); border-bottom-color:var(--spot); }
|
|
1170
|
-
.sw__tab i { font-style:normal; color:var(--spot); }
|
|
1171
1166
|
.card.sw__list { padding:0; }
|
|
1172
1167
|
.sw__list .set, .sw__list .set:first-child, .sw__list .set:last-child { padding:var(--space-4) var(--space-5); border-bottom:1px solid var(--line); }
|
|
1173
1168
|
.sw__list .set:last-child { border-bottom:none; }
|
|
@@ -2449,6 +2444,8 @@ const SLOT_MIN = {
|
|
|
2449
2444
|
// than what comes grows while the memory folds below it shrink, and the footer bounces.
|
|
2450
2445
|
'sess-ek': 700,
|
|
2451
2446
|
'cost-main': 480, 'cost-sessions': 94, 'cost-calls': 94, 'cost-guard': 94, 'cost-tools': 94, 'cost-facts': 94,
|
|
2447
|
+
// One of Eklavya's calls: its head, four tiles, two cards and a closed fold, 943px at 1280. Held above it, so it can only shrink.
|
|
2448
|
+
'cost-call': 1000,
|
|
2452
2449
|
};
|
|
2453
2450
|
/** 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. */
|
|
2454
2451
|
const SLOT_ROWS = {
|
|
@@ -4974,7 +4971,9 @@ function settingControl(f, v, disabled) {
|
|
|
4974
4971
|
inputmode="${f.int ? 'numeric' : 'decimal'}"${f.nullable ? ' placeholder="none"' : ' required'}>`;
|
|
4975
4972
|
}
|
|
4976
4973
|
if (f.type === 'list') return `<textarea ${attrs} rows="3">${esc((v ?? []).join('\n'))}</textarea>`;
|
|
4977
|
-
|
|
4974
|
+
// Text with `options` (a model name) suggests them and still takes any other name.
|
|
4975
|
+
const list = f.options ? `<datalist id="${id}-o">${f.options.map((o) => `<option value="${esc(o)}">`).join('')}</datalist>` : '';
|
|
4976
|
+
return `<input type="text" ${attrs}${list ? ` list="${id}-o"` : ''} value="${esc(v ?? '')}" maxlength="${f.maxLength}" placeholder="none">${list}`;
|
|
4978
4977
|
}
|
|
4979
4978
|
|
|
4980
4979
|
/** What a field accepts, said under its help: the range is part of the setting. */
|
|
@@ -5062,11 +5061,12 @@ const companionSwitch = (attr, label, help, on) => `<div class="cmp__row"><div><
|
|
|
5062
5061
|
<div class="ground" role="group" aria-label="${esc(label)}">${['on', 'off'].map((v) => `<button type="button" data-${attr}="${v}" data-focus="${attr}:${v}" aria-pressed="${on === (v === 'on')}">${v}</button>`).join('')}</div></div>`;
|
|
5063
5062
|
|
|
5064
5063
|
/**
|
|
5065
|
-
* The switchboard. On the
|
|
5066
|
-
* one project.
|
|
5067
|
-
* category
|
|
5068
|
-
*
|
|
5069
|
-
* what
|
|
5064
|
+
* The switchboard. On the right, the scope: you (user settings, the default) or
|
|
5065
|
+
* one project. In the middle, that scope's settings one category at a time, each
|
|
5066
|
+
* category an entry in the Settings sidebar and a segment of the URL
|
|
5067
|
+
* (`#/settings/dashboard/memory`, `SETTINGS_TABS`). Picking another scope keeps the
|
|
5068
|
+
* category. `Terminal` lists what stays a typed command; `Changed` lists what this
|
|
5069
|
+
* scope's file actually sets.
|
|
5070
5070
|
*/
|
|
5071
5071
|
function drawSettings(d, scope) {
|
|
5072
5072
|
const tabParam = (id) => (id === swTab(d.fields[0].group) ? null : id);
|
|
@@ -5075,9 +5075,9 @@ function drawSettings(d, scope) {
|
|
|
5075
5075
|
const groups = [...new Set(d.fields.map((f) => f.group))];
|
|
5076
5076
|
const tabs = groups.map((g) => {
|
|
5077
5077
|
const fields = d.fields.filter((f) => f.group === g);
|
|
5078
|
-
return { id: swTab(g), label: g, fields
|
|
5078
|
+
return { id: swTab(g), label: g, fields };
|
|
5079
5079
|
});
|
|
5080
|
-
tabs.push({ id: 'terminal', label: 'Terminal'
|
|
5080
|
+
tabs.push({ id: 'terminal', label: 'Terminal' }, { id: 'companion', label: 'Companion' }, { id: 'changed', label: 'Changed' });
|
|
5081
5081
|
const here = tabs.find((t) => t.id === CUR.param) ?? tabs[0];
|
|
5082
5082
|
|
|
5083
5083
|
const scopeLink = (label, icon, to, current) =>
|
|
@@ -5099,20 +5099,17 @@ function drawSettings(d, scope) {
|
|
|
5099
5099
|
<code>eklavya config set <key> <value></code> (with <code>--project</code> for a project), and
|
|
5100
5100
|
<b>Inherit</b> / <b>Reset</b> is <code>eklavya config unset</code>. Nothing is written inside a repository.`;
|
|
5101
5101
|
|
|
5102
|
-
// The pane is
|
|
5103
|
-
// frame around them; new data redraws what changed, and leaves the body alone while the reader is
|
|
5104
|
-
// (`swapRegions`), so the
|
|
5105
|
-
const pane = (head,
|
|
5102
|
+
// The pane is two regions and the rail a third, which never nest. A category (picked in the sidebar) redraws what it
|
|
5103
|
+
// changes and keeps the frame around them; new data redraws what changed, and leaves the body alone while the reader is
|
|
5104
|
+
// using a control in it (`swapRegions`), so the head and its counts are still brought up to date.
|
|
5105
|
+
const pane = (head, body) => `<div class="sw"><div class="sw__pane">${region('sw-head', head)}${region('sw-body', body)}</div>${rail}</div>`;
|
|
5106
5106
|
|
|
5107
5107
|
if (!file) {
|
|
5108
5108
|
return pane(pageHead('Project settings', [], about) + nextStep(PROJECT
|
|
5109
5109
|
? `<strong>${esc(scopeName())}</strong> has no git checkout on this machine, so there is no project file to change. Pick another project on the right.`
|
|
5110
|
-
: 'Pick a project on the right to change its settings.'), ''
|
|
5110
|
+
: 'Pick a project on the right to change its settings.'), '');
|
|
5111
5111
|
}
|
|
5112
5112
|
|
|
5113
|
-
const tabBar = `<nav class="sw__tabs" aria-label="Setting categories" data-keep-scroll="sw-tabs">${tabs.map((t) =>
|
|
5114
|
-
`<a class="sw__tab" href="${esc(SH(page, tabParam(t.id)))}" data-focus="tab:${esc(t.id)}"${t.id === here.id ? ' aria-current="page"' : ''}>${esc(t.label)}${t.n ? `<i title="${t.n} set in this scope">${t.n}</i>` : ''}</a>`).join('')}</nav>`;
|
|
5115
|
-
|
|
5116
5113
|
let body;
|
|
5117
5114
|
if (here.id === 'terminal') {
|
|
5118
5115
|
body = card('Changed from the terminal', 'These send work off this machine or run a command, so they stay a typed command: eklavya config set <key> <value>.',
|
|
@@ -5142,7 +5139,7 @@ function drawSettings(d, scope) {
|
|
|
5142
5139
|
pageHead(scope === 'project' ? `${esc(d.project.name)} settings` : 'User settings',
|
|
5143
5140
|
[`<span class="mono">${esc(file.path)}</span>`, `${Object.keys(file.set).length} set here`], about, '', true)
|
|
5144
5141
|
+ (d.problem ? nextStep(`<strong>A config file is not being read.</strong> ${esc(d.problem)}`) : ''),
|
|
5145
|
-
|
|
5142
|
+
body);
|
|
5146
5143
|
}
|
|
5147
5144
|
|
|
5148
5145
|
/* ============================================================
|
|
@@ -5609,6 +5606,7 @@ const ICONS = {
|
|
|
5609
5606
|
history: '<circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/>',
|
|
5610
5607
|
user: '<circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0 1 16 0"/>',
|
|
5611
5608
|
project: '<path d="M3 7l9-4 9 4-9 4-9-4z"/><path d="M3 12l9 4 9-4M3 17l9 4 9-4"/>',
|
|
5609
|
+
danger: '<path d="m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21"/><path d="M22 21H7"/><path d="m5 11 9 9"/>',
|
|
5612
5610
|
// The four areas a prompt can leave the agent to guess, and the Feedback item's two actions.
|
|
5613
5611
|
outcome: '<circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/>',
|
|
5614
5612
|
context: '<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"/><path d="M14 2v4a2 2 0 0 0 2 2h4"/>',
|
|
@@ -5621,6 +5619,27 @@ const svg = (paths, cls = '') =>
|
|
|
5621
5619
|
`<svg${cls ? ` class="${cls}"` : ''} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7"
|
|
5622
5620
|
stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${paths}</svg>`;
|
|
5623
5621
|
|
|
5622
|
+
/**
|
|
5623
|
+
* The Preferences screen's categories, in its order: the groups of `SETTINGS` in dashboard.ts (as `swTab` names
|
|
5624
|
+
* them), then the page's own three. Each is a Settings sidebar entry that opens the category in the scope on show
|
|
5625
|
+
* (`navHref`), not a page of its own: the route stays `#/settings/dashboard/<id>` (`/project/<id>` for a project),
|
|
5626
|
+
* the first one bare. `dashboard.test.ts` holds this list to the registry's groups.
|
|
5627
|
+
*/
|
|
5628
|
+
const SETTINGS_TABS = {
|
|
5629
|
+
questions: { label: 'Questions', icon: '<circle cx="12" cy="12" r="10"/><path d="M9.1 9a3 3 0 0 1 5.8 1c0 2-3 3-3 3"/><path d="M12 17h.01"/>' },
|
|
5630
|
+
pacing: { label: 'Pacing', icon: '<path d="M10 2h4"/><path d="M12 14l3-3"/><circle cx="12" cy="14" r="8"/>' },
|
|
5631
|
+
levels: { label: 'Levels', icon: '<path d="M5 20v-5M12 20V10M19 20V4"/>' },
|
|
5632
|
+
memory: { label: 'Memory', icon: ICONS.memory },
|
|
5633
|
+
feedback: { label: 'Feedback', icon: ICONS.feedback },
|
|
5634
|
+
models: { label: 'Models', icon: '<rect x="5" y="5" width="14" height="14" rx="2"/><rect x="9" y="9" width="6" height="6"/><path d="M9 2v3M15 2v3M9 19v3M15 19v3M2 9h3M2 15h3M19 9h3M19 15h3"/>' },
|
|
5635
|
+
privacy: { label: 'Privacy', icon: '<rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/>' },
|
|
5636
|
+
cost: { label: 'Cost', icon: ICONS.cost },
|
|
5637
|
+
'this-machine': { label: 'This machine', icon: '<rect x="3" y="4" width="18" height="12" rx="2"/><path d="M8 20h8M12 16v4"/>' },
|
|
5638
|
+
terminal: { label: 'Terminal', icon: ICONS.calls },
|
|
5639
|
+
companion: { label: 'Companion', icon: '<circle cx="12" cy="12" r="10"/><path d="M8 14s1.5 2 4 2 4-2 4-2"/><path d="M9 9h.01M15 9h.01"/>' },
|
|
5640
|
+
changed: { label: 'Changed', icon: '<path d="M12 20h9"/><path d="M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z"/>' },
|
|
5641
|
+
};
|
|
5642
|
+
|
|
5624
5643
|
/**
|
|
5625
5644
|
* `pages[key]` is `{ label, view }` for a page with a sidebar entry and
|
|
5626
5645
|
* `{ parent, view }` for a detail page: a detail keeps its parent highlighted.
|
|
@@ -5703,11 +5722,18 @@ const WORKFLOWS = {
|
|
|
5703
5722
|
tools: { label: 'Tool pruning', view: () => viewCostPage('tools') },
|
|
5704
5723
|
facts: { label: 'Pinned facts', view: () => viewCostPage('facts') },
|
|
5705
5724
|
session: { parent: 'sessions', view: (p) => viewSession(p) },
|
|
5725
|
+
call: { parent: 'calls', view: (p) => viewCall(p) },
|
|
5706
5726
|
},
|
|
5707
5727
|
},
|
|
5708
5728
|
settings: {
|
|
5709
5729
|
name: 'Settings',
|
|
5710
|
-
|
|
5730
|
+
// No Dashboard link at the top: the Preferences screen is its categories, each an entry of its own.
|
|
5731
|
+
home: false,
|
|
5732
|
+
tabs: SETTINGS_TABS,
|
|
5733
|
+
groups: [
|
|
5734
|
+
{ id: 'prefs', label: 'Preferences', items: Object.keys(SETTINGS_TABS) },
|
|
5735
|
+
{ id: 'danger', label: 'Danger', items: ['danger'] },
|
|
5736
|
+
],
|
|
5711
5737
|
pages: {
|
|
5712
5738
|
danger: { label: 'Clean slate', view: () => viewDanger() },
|
|
5713
5739
|
dashboard: { label: 'Preferences', view: () => viewSettings('user'), inPage: true },
|
|
@@ -5766,7 +5792,7 @@ function cleanSlateSubmit(e) {
|
|
|
5766
5792
|
const COST_ABOUT = `Effective tokens are a session's usage in fresh-input-token equivalents of the model that
|
|
5767
5793
|
served it: cache reads weigh 0.1, 5-minute cache writes 1.25, 1-hour writes 2 and output 5. Measured figures are
|
|
5768
5794
|
read from Claude Code's transcripts and from the JSON each of Eklavya's own claude -p calls returns; nothing but
|
|
5769
|
-
numbers
|
|
5795
|
+
numbers, tool names and the ids of what a call worked on is stored, never a prompt or a reply. A model with no price row is shown as unpriced, never guessed. Failures avoided
|
|
5770
5796
|
by facts is an estimate: the sessions shown a pinned fact that ran its command and never its failing form, which
|
|
5771
5797
|
some of them may have done without reading the fact.`;
|
|
5772
5798
|
const costUrl = () => '/api/cost' + (PROJECT !== null ? '?project=' + encodeURIComponent(PROJECT) : '');
|
|
@@ -5837,6 +5863,95 @@ function viewCostPage(which) {
|
|
|
5837
5863
|
return [pageHead(titles[which], [], COST_ABOUT), slots[which]()].join('');
|
|
5838
5864
|
}
|
|
5839
5865
|
|
|
5866
|
+
/** What each source of Eklavya's own calls was doing, said plainly. */
|
|
5867
|
+
const CALL_SOURCE = {
|
|
5868
|
+
observer: 'The memory observer: it read a batch of evidence captured from your work and wrote observations from it.',
|
|
5869
|
+
feedback: 'The prompt review: it read one of your prompts and wrote the feedback on it.',
|
|
5870
|
+
judge: 'The loop guard\'s judge: it read a turn that looked stuck and decided whether to step in.',
|
|
5871
|
+
stale_refresh: 'A memory refresh: it rewrote an observation flagged as outdated against what has changed since.',
|
|
5872
|
+
};
|
|
5873
|
+
const callSource = (s) => CALL_SOURCE[s]
|
|
5874
|
+
?? (s.startsWith('subagent:') ? `Eklavya's ${s.slice(9)} subagent, run inside a Claude Code session. Its tokens are already in that session's total.` : s);
|
|
5875
|
+
|
|
5876
|
+
/**
|
|
5877
|
+
* What a call wrote, from the ids the ledger keeps (`produced` in `/api/cost/call`): the entries a memory batch
|
|
5878
|
+
* wrote and the evidence it read while retention still keeps it, the entry a refresh rewrote, or the feedback item.
|
|
5879
|
+
*/
|
|
5880
|
+
function drawProduced(c) {
|
|
5881
|
+
const p = c.produced;
|
|
5882
|
+
const entryLines = (list, none) => lines(list.map((e) => ({ t: esc(e.title), s: esc(e.type ?? ''), go: MH('entry', e.id) })), none);
|
|
5883
|
+
if (p.kind === 'feedback') {
|
|
5884
|
+
return p.exists
|
|
5885
|
+
? lines([{ t: 'Feedback item', s: `Item <code class="slug">${esc(c.feedback_id)}</code>: the review this call wrote.`, go: href('feedback', 'item', c.feedback_id) }])
|
|
5886
|
+
: mascotMessage(`<p class="empty">This call wrote feedback item ${esc(c.feedback_id)}, which has since been deleted.</p>`);
|
|
5887
|
+
}
|
|
5888
|
+
if (p.kind === 'refresh') {
|
|
5889
|
+
return lines([p.refreshed
|
|
5890
|
+
? { t: esc(p.refreshed.title), s: 'The entry it was asked to rewrite, kept as history.', go: MH('entry', p.refreshed.id) }
|
|
5891
|
+
: { t: `Entry ${esc(c.entry_id)}`, s: 'The entry it was asked to rewrite, since deleted.' }])
|
|
5892
|
+
+ entryLines(p.entries, 'The rewrite was not saved: the reply was not a usable entry, so the old one stays flagged.');
|
|
5893
|
+
}
|
|
5894
|
+
const read = p.events === null
|
|
5895
|
+
? 'The batch record itself is no longer kept, so neither is what it read.'
|
|
5896
|
+
: p.kept === p.events
|
|
5897
|
+
? `It read ${plural(p.events, 'event')} of one session: ${p.kinds.map((k) => `${fmtN(k.n)} ${esc(k.kind.replace('_', ' '))}`).join(', ')}.`
|
|
5898
|
+
: `It read ${plural(p.events, 'event')}; ${p.kept ? fmtN(p.kept) : 'none'} still kept. `
|
|
5899
|
+
+ (c.retention_days
|
|
5900
|
+
? `memory.retention_days keeps raw evidence for ${plural(c.retention_days, 'day')}, and the rest has expired.`
|
|
5901
|
+
: 'The rest was removed by an earlier retention setting or a cleanup.');
|
|
5902
|
+
return `<p class="counts" style="margin:0 0 var(--space-4)">${read}</p>` + entryLines(p.entries, 'It wrote nothing: the batch held nothing worth remembering, or a later write replaced it.');
|
|
5903
|
+
}
|
|
5904
|
+
|
|
5905
|
+
/** One of Eklavya's own model calls: everything the ledger holds for it, which is numbers and names, never its text. */
|
|
5906
|
+
function viewCall(id) {
|
|
5907
|
+
return slot('cost-call', '/api/cost/call?id=' + encodeURIComponent(id), drawCall, { label: 'Reading the ledger…', cls: 'stack' });
|
|
5908
|
+
}
|
|
5909
|
+
|
|
5910
|
+
function drawCall(c) {
|
|
5911
|
+
const when = new Date(c.occurred_at);
|
|
5912
|
+
const back = `<a class="page__back" data-go="${esc(CH('calls'))}">← Eklavya's calls</a>`;
|
|
5913
|
+
const head = pageHead(`${esc(c.source)} call`, [
|
|
5914
|
+
esc(isNaN(when) ? c.occurred_at : when.toLocaleString()),
|
|
5915
|
+
`<code class="slug">${esc(c.model ?? '—')}</code>${c.unpriced ? ' <span class="pill due">unpriced</span>' : ''}`,
|
|
5916
|
+
], `Call <code class="slug">${esc(c.id)}</code> in the cost ledger, recorded from the JSON envelope its
|
|
5917
|
+
<code>claude -p</code> run returned. ${COST_ABOUT}`, back, true);
|
|
5918
|
+
const stats = tiles([
|
|
5919
|
+
['Effective tokens', c.effective, c.unpriced ? 'measured · no price row for this model' : 'measured · fresh-input equivalents'],
|
|
5920
|
+
['Reported cost', c.cost_usd === null ? '—' : '$' + c.cost_usd.toFixed(3), 'as claude -p reported it'],
|
|
5921
|
+
['Input', c.input + c.cache_read + c.cache_write_5m + c.cache_write_1h, `measured · ${fmtN(c.input)} fresh, ${fmtN(c.cache_read)} cached`],
|
|
5922
|
+
['Output', c.output, 'measured · tokens written'],
|
|
5923
|
+
]);
|
|
5924
|
+
const tokens = lines([
|
|
5925
|
+
{ t: 'Fresh input', s: 'weighs 1', v: esc(fmtN(c.input)) },
|
|
5926
|
+
{ t: 'Cache read', s: 'weighs 0.1', v: esc(fmtN(c.cache_read)) },
|
|
5927
|
+
{ t: 'Cache written, 5 minutes', s: 'weighs 1.25', v: esc(fmtN(c.cache_write_5m)) },
|
|
5928
|
+
{ t: 'Cache written, 1 hour', s: 'weighs 2', v: esc(fmtN(c.cache_write_1h)) },
|
|
5929
|
+
{ t: 'Output', s: 'weighs 5', v: esc(fmtN(c.output)) },
|
|
5930
|
+
{ t: 'Effective', s: c.unpriced ? 'not computed: the model has no price row' : 'the weighted sum', v: esc(fmtN(c.effective)) },
|
|
5931
|
+
]);
|
|
5932
|
+
const where = lines([
|
|
5933
|
+
{ t: 'What it was', s: esc(callSource(c.source)) },
|
|
5934
|
+
{ t: 'Project', s: esc(c.project ? pname(c.project) : 'None recorded: this call was not made for one project.') },
|
|
5935
|
+
c.session_id
|
|
5936
|
+
? { t: 'Session', s: `<code class="slug">${esc(c.session_id)}</code>`, go: CH('session', c.session_id) }
|
|
5937
|
+
: { t: 'Session', s: 'None recorded: this call was not made inside or for one session.' },
|
|
5938
|
+
]);
|
|
5939
|
+
const text = c.source.startsWith('subagent:') && c.session_id
|
|
5940
|
+
? `<p class="empty">Eklavya does not keep the text of its own calls. This one ran inside a session, so Claude Code's
|
|
5941
|
+
transcript of that session holds it: <a data-go="${esc(CH('session', c.session_id))}">open the session</a> for its path.</p>`
|
|
5942
|
+
: `<p class="empty">Eklavya does not keep the text of its own calls. The ledger records the numbers on this page and
|
|
5943
|
+
nothing of what was sent or returned${c.produced ? '' : ', and no record says which observation or review this call produced'}.</p>`;
|
|
5944
|
+
return [
|
|
5945
|
+
head,
|
|
5946
|
+
stats,
|
|
5947
|
+
card('Input and output', 'What was sent to the model and what it answered.', mascotMessage(text)),
|
|
5948
|
+
c.produced ? card('What it produced', 'Read from the rows the call wrote, which Eklavya keeps anyway.', drawProduced(c)) : '',
|
|
5949
|
+
card('Where it came from', '', where),
|
|
5950
|
+
fold('call:tokens', 'Tokens', `${fmtN(c.effective)} effective`, tokens,
|
|
5951
|
+
{ hint: 'Effective tokens weigh each kind by what it costs against fresh input.' }),
|
|
5952
|
+
].join('');
|
|
5953
|
+
}
|
|
5954
|
+
|
|
5840
5955
|
/** Apply or Restore on the Tool pruning page: one write, then the page is read again. */
|
|
5841
5956
|
function prunePress(b) {
|
|
5842
5957
|
b.disabled = true;
|
|
@@ -5867,7 +5982,7 @@ function drawCostPage(which, d) {
|
|
|
5867
5982
|
if (!d.overhead_rows.length) return empty('Eklavya has made no model call that was recorded.');
|
|
5868
5983
|
const p = page('costcalls', d.overhead_rows.length);
|
|
5869
5984
|
return table([{ t: 'When' }, { t: 'Source' }, { t: 'Model' }, { t: 'Effective', n: 1 }, { t: 'Reported $', n: 1 }],
|
|
5870
|
-
slice(d.overhead_rows, p).map((o) => `<tr><td>${esc(fmtDate(o.occurred_at))}</td><td>${esc(o.source)}${o.in_session ? ' <span class="pill">in a session</span>' : ''}</td>
|
|
5985
|
+
slice(d.overhead_rows, p).map((o) => `<tr class="row" data-go="${esc(CH('call', o.id))}"><td>${esc(fmtDate(o.occurred_at))}</td><td>${esc(o.source)}${o.in_session ? ' <span class="pill">in a session</span>' : ''}</td>
|
|
5871
5986
|
<td><code class="slug">${esc(o.model ?? '—')}</code>${o.unpriced ? ' <span class="pill due">unpriced</span>' : ''}</td>
|
|
5872
5987
|
<td class="num">${fmtN(o.effective)}</td><td class="num">${o.cost_usd === null ? '—' : esc(o.cost_usd.toFixed(3))}</td></tr>`))
|
|
5873
5988
|
+ pager('costcalls', d.overhead_rows.length, p);
|
|
@@ -6052,6 +6167,21 @@ function collapsedFor(wf, active) {
|
|
|
6052
6167
|
return collapsed;
|
|
6053
6168
|
}
|
|
6054
6169
|
|
|
6170
|
+
const isSettingsTab = (wf, key) => !!WORKFLOWS[wf].tabs && Object.hasOwn(WORKFLOWS[wf].tabs, key);
|
|
6171
|
+
/**
|
|
6172
|
+
* Where a sidebar entry goes: its page, or for a Settings category, that category in the scope on show (a
|
|
6173
|
+
* project's settings stay that project's; any other Settings page opens user settings). The first category is the
|
|
6174
|
+
* bare route, which is what `drawSettings`' links have always written.
|
|
6175
|
+
*/
|
|
6176
|
+
function navHref(wf, key) {
|
|
6177
|
+
if (!isSettingsTab(wf, key)) return href(wf, key);
|
|
6178
|
+
const page = CUR.wf === 'settings' && CUR.page === 'project' ? 'project' : 'dashboard';
|
|
6179
|
+
return SH(page, key === Object.keys(SETTINGS_TABS)[0] ? null : key);
|
|
6180
|
+
}
|
|
6181
|
+
/** The entry to mark current for page `active`: on the Preferences screen, the category in the URL (the first when it names none it knows). */
|
|
6182
|
+
const navCurrent = (wf, active) => (wf === 'settings' && active === 'dashboard'
|
|
6183
|
+
? (isSettingsTab(wf, CUR.param) ? CUR.param : Object.keys(SETTINGS_TABS)[0]) : active);
|
|
6184
|
+
|
|
6055
6185
|
/**
|
|
6056
6186
|
* The sidebar for a navigation. It is built when the workflow changes (the first draw, and a switch to the
|
|
6057
6187
|
* other workflow: another set of groups, links and icons) and kept otherwise: another page of the same workflow, a
|
|
@@ -6070,14 +6200,15 @@ function renderNav(wf, active) {
|
|
|
6070
6200
|
const collapsed = collapsedFor(wf, active);
|
|
6071
6201
|
|
|
6072
6202
|
const item = (key) => {
|
|
6073
|
-
const
|
|
6203
|
+
const tab = W.tabs && Object.hasOwn(W.tabs, key) ? W.tabs[key] : null;
|
|
6204
|
+
const pg = tab ?? W.pages[key];
|
|
6074
6205
|
const n = counts[key];
|
|
6075
|
-
return `<a href="${esc(
|
|
6076
|
-
${svg(ICONS[key] ?? ICONS.dashboard)}${esc(pg.label)}${n !== undefined ? `<i class="${key === 'review' && n ? 'hot' : ''}">${n}</i>` : ''}
|
|
6206
|
+
return `<a href="${esc(navHref(wf, key))}"${key === active ? ' aria-current="page"' : ''} data-nav="${key}">
|
|
6207
|
+
${svg(tab?.icon ?? ICONS[key] ?? ICONS.dashboard)}${esc(pg.label)}${n !== undefined ? `<i class="${key === 'review' && n ? 'hot' : ''}">${n}</i>` : ''}
|
|
6077
6208
|
</a>`;
|
|
6078
6209
|
};
|
|
6079
6210
|
nav.setAttribute('aria-label', `${W.name} sections`);
|
|
6080
|
-
nav.innerHTML = `<div>${item('dashboard')}</div>` + W.groups.map((g) => {
|
|
6211
|
+
nav.innerHTML = (W.home === false ? '' : `<div>${item('dashboard')}</div>`) + W.groups.map((g) => {
|
|
6081
6212
|
const open = !collapsed.has(g.id);
|
|
6082
6213
|
const id = `grp-${wf}-${g.id}`;
|
|
6083
6214
|
return `<div class="nav__group">
|
|
@@ -6099,7 +6230,7 @@ function syncNav(wf, active) {
|
|
|
6099
6230
|
const counts = navCounts(wf);
|
|
6100
6231
|
for (const a of $('nav').querySelectorAll('a[data-nav]')) {
|
|
6101
6232
|
const key = a.dataset.nav;
|
|
6102
|
-
const to =
|
|
6233
|
+
const to = navHref(wf, key);
|
|
6103
6234
|
if (a.getAttribute('href') !== to) a.setAttribute('href', to);
|
|
6104
6235
|
if (key === active) a.setAttribute('aria-current', 'page'); else a.removeAttribute('aria-current');
|
|
6105
6236
|
const n = counts[key];
|
|
@@ -6611,7 +6742,7 @@ function syncFromUrl() {
|
|
|
6611
6742
|
function render(opts) {
|
|
6612
6743
|
const W = WORKFLOWS[CUR.wf];
|
|
6613
6744
|
const pg = CUR.missing ? null : W.pages[CUR.page];
|
|
6614
|
-
const active = pg ? (pg.parent ?? CUR.page) : null;
|
|
6745
|
+
const active = pg ? navCurrent(CUR.wf, pg.parent ?? CUR.page) : null;
|
|
6615
6746
|
const adjusting = !opts?.nav && isAdjustment(pg);
|
|
6616
6747
|
GEN += 1;
|
|
6617
6748
|
if (adjusting) {
|
package/dist/cli-economy.js
CHANGED
|
@@ -119,7 +119,7 @@ export async function refreshStale(db, config, project, run) {
|
|
|
119
119
|
changes = '(no commit history available)';
|
|
120
120
|
}
|
|
121
121
|
try {
|
|
122
|
-
const out = (await run(config.providers.observer.model, `<entry>\n${JSON.stringify({ title: e.title, type: e.type, narrative: e.narrative, facts: e.facts, files: e.files, written: e.occurred_at })}\n</entry>\n<changes>\n${changes}\n</changes>`, { schema: REFRESH_SCHEMA, system: REFRESH_SYSTEM, source: 'stale_refresh' }));
|
|
122
|
+
const out = (await run(config.providers.observer.model, `<entry>\n${JSON.stringify({ title: e.title, type: e.type, narrative: e.narrative, facts: e.facts, files: e.files, written: e.occurred_at })}\n</entry>\n<changes>\n${changes}\n</changes>`, { schema: REFRESH_SCHEMA, system: REFRESH_SYSTEM, source: 'stale_refresh', link: { entryId: e.id } }));
|
|
123
123
|
if (typeof out?.title !== 'string' || !out.title.trim() || typeof out.narrative !== 'string')
|
|
124
124
|
continue;
|
|
125
125
|
const strings = (v) => (Array.isArray(v) ? v.filter((x) => typeof x === 'string').slice(0, 12) : []);
|
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/cli.js
CHANGED
|
@@ -48,8 +48,11 @@ Usage:
|
|
|
48
48
|
quiz.only_on_changes true|false,
|
|
49
49
|
quiz.panel true|false (experimental side panel),
|
|
50
50
|
feedback.enabled true|false (review one of your prompts per
|
|
51
|
-
session; needs memory and
|
|
52
|
-
providers.observer <model> (
|
|
51
|
+
session; needs memory and a model),
|
|
52
|
+
providers.observer <model> (writes the memories),
|
|
53
|
+
providers.feedback <model> (reviews prompts; null uses
|
|
54
|
+
providers.observer), providers.judge <model> (loop guard)
|
|
55
|
+
— each a model name, or JSON, or null
|
|
53
56
|
focus project|concept|learn, cadence as-you-go|end,
|
|
54
57
|
difficulty auto|easy|medium|hard,
|
|
55
58
|
explain_on_wrong true|false, delegate_work true|false
|
|
@@ -66,7 +69,8 @@ Usage:
|
|
|
66
69
|
eklavya dashboard status|stop Show or stop the background dashboard
|
|
67
70
|
eklavya feedback generate Review one of your prompts from an earlier session: what your later
|
|
68
71
|
prompts show it left out, and a better version (needs
|
|
69
|
-
feedback.enabled, memory and providers.
|
|
72
|
+
feedback.enabled, memory and providers.feedback or
|
|
73
|
+
providers.observer);
|
|
70
74
|
one item at a time, shown on the dashboard's Feedback page
|
|
71
75
|
eklavya artifacts new <title> Start a page under ~/.eklavya/artifacts/<project>/ from the
|
|
72
76
|
Eklavya template and print its path [--description <text>]
|
|
@@ -161,8 +165,10 @@ Config namespaces (nested; edit ~/.eklavya/config.json or this project's file di
|
|
|
161
165
|
privacy.{exclude_paths, exclude_tools, redact_patterns}
|
|
162
166
|
retrieval.{mode: keyword|semantic|hybrid, max_items, max_tokens, cross_project,
|
|
163
167
|
seam_query, prompt_gate: strict|terms, timeline_items}
|
|
164
|
-
providers.{observer, embeddings, judge} — each null or {kind, model};
|
|
165
|
-
runs through Claude Code on your subscription.
|
|
168
|
+
providers.{observer, feedback, embeddings, judge} — each null or {kind, model};
|
|
169
|
+
the model runs through Claude Code on your subscription. observer
|
|
170
|
+
writes the memories (default claude-haiku-5-5); feedback reviews
|
|
171
|
+
prompts (default null: the observer's model); judge reads a digest
|
|
166
172
|
of a stuck turn for the loop guard (default null)
|
|
167
173
|
notifications.{enabled, sinks} — sinks are {kind: webhook|command|file, target,
|
|
168
174
|
args, events}; off by default, and a send cannot be recalled
|
|
@@ -490,7 +496,7 @@ async function feedbackCommand(args) {
|
|
|
490
496
|
say({
|
|
491
497
|
off: dim('off'),
|
|
492
498
|
needs_memory: dim('needs memory'),
|
|
493
|
-
needs_observer: dim('needs providers.observer'),
|
|
499
|
+
needs_observer: dim('needs a model: providers.feedback or providers.observer'),
|
|
494
500
|
pending: dim('a feedback item is waiting: acknowledge it first'),
|
|
495
501
|
nothing: dim('nothing to review'),
|
|
496
502
|
later: paint.warn(later),
|