eklavya 1.91.0 → 1.92.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.
Files changed (113) hide show
  1. package/README.md +7 -4
  2. package/dist/assets/dashboard.html +151 -3
  3. package/dist/cli-economy.js +434 -0
  4. package/dist/cli-economy.js.map +1 -0
  5. package/dist/cli-memory.js +4 -1
  6. package/dist/cli-memory.js.map +1 -1
  7. package/dist/cli.js +46 -5
  8. package/dist/cli.js.map +1 -1
  9. package/dist/config-path.js +23 -1
  10. package/dist/config-path.js.map +1 -1
  11. package/dist/config.js +63 -0
  12. package/dist/config.js.map +1 -1
  13. package/dist/cost-report.js +67 -0
  14. package/dist/cost-report.js.map +1 -0
  15. package/dist/dashboard.js +79 -1
  16. package/dist/dashboard.js.map +1 -1
  17. package/dist/economy/LICENSE +202 -0
  18. package/dist/economy/envfacts.js +229 -0
  19. package/dist/economy/envfacts.js.map +1 -0
  20. package/dist/economy/loopguard.js +169 -0
  21. package/dist/economy/loopguard.js.map +1 -0
  22. package/dist/economy/pricing.js +54 -0
  23. package/dist/economy/pricing.js.map +1 -0
  24. package/dist/economy/shell-edits.js +238 -0
  25. package/dist/economy/shell-edits.js.map +1 -0
  26. package/dist/economy/signals.js +164 -0
  27. package/dist/economy/signals.js.map +1 -0
  28. package/dist/economy/toolprune.js +209 -0
  29. package/dist/economy/toolprune.js.map +1 -0
  30. package/dist/economy/transcript.js +290 -0
  31. package/dist/economy/transcript.js.map +1 -0
  32. package/dist/feedback-review.js +1 -1
  33. package/dist/feedback-review.js.map +1 -1
  34. package/dist/feedback.js +3 -0
  35. package/dist/feedback.js.map +1 -1
  36. package/dist/guard-note.js +21 -0
  37. package/dist/guard-note.js.map +1 -0
  38. package/dist/hooks/capture-tool.js +61 -11
  39. package/dist/hooks/capture-tool.js.map +1 -1
  40. package/dist/hooks/economy-lib.js +20 -0
  41. package/dist/hooks/economy-lib.js.map +1 -0
  42. package/dist/hooks/file-context.js +1 -1
  43. package/dist/hooks/file-context.js.map +1 -1
  44. package/dist/hooks/lib.js.map +1 -1
  45. package/dist/hooks/memory-lib.js +17 -1
  46. package/dist/hooks/memory-lib.js.map +1 -1
  47. package/dist/hooks/prompt-submit-nudge.js +15 -1
  48. package/dist/hooks/prompt-submit-nudge.js.map +1 -1
  49. package/dist/hooks/session-end.js +32 -0
  50. package/dist/hooks/session-end.js.map +1 -0
  51. package/dist/hooks/session-start.js +34 -0
  52. package/dist/hooks/session-start.js.map +1 -1
  53. package/dist/hooks/stop-quiz-check.js +20 -0
  54. package/dist/hooks/stop-quiz-check.js.map +1 -1
  55. package/dist/hooks/subagent-start.js +17 -2
  56. package/dist/hooks/subagent-start.js.map +1 -1
  57. package/dist/install.js +31 -7
  58. package/dist/install.js.map +1 -1
  59. package/dist/ledger-pending.js +85 -0
  60. package/dist/ledger-pending.js.map +1 -0
  61. package/dist/ledger.js +144 -0
  62. package/dist/ledger.js.map +1 -0
  63. package/dist/loop-guard.js +190 -0
  64. package/dist/loop-guard.js.map +1 -0
  65. package/dist/memory/capture.js +2 -2
  66. package/dist/memory/capture.js.map +1 -1
  67. package/dist/memory/embed.js +37 -0
  68. package/dist/memory/embed.js.map +1 -1
  69. package/dist/memory/pinned.js +175 -0
  70. package/dist/memory/pinned.js.map +1 -0
  71. package/dist/memory/provider.js +66 -0
  72. package/dist/memory/provider.js.map +1 -1
  73. package/dist/memory/recall.js +111 -33
  74. package/dist/memory/recall.js.map +1 -1
  75. package/dist/memory/seam.js +88 -0
  76. package/dist/memory/seam.js.map +1 -0
  77. package/dist/memory/search.js +65 -11
  78. package/dist/memory/search.js.map +1 -1
  79. package/dist/memory/store.js +74 -15
  80. package/dist/memory/store.js.map +1 -1
  81. package/dist/memory/summarize.js.map +1 -1
  82. package/dist/memory/terms.js +100 -0
  83. package/dist/memory/terms.js.map +1 -0
  84. package/dist/memory/tokens.js +11 -7
  85. package/dist/memory/tokens.js.map +1 -1
  86. package/dist/memory/use.js +123 -0
  87. package/dist/memory/use.js.map +1 -0
  88. package/dist/memory/worker.js +16 -1
  89. package/dist/memory/worker.js.map +1 -1
  90. package/dist/migrations/034_memory_keywords.sql +59 -0
  91. package/dist/migrations/035_econ_ledger.sql +69 -0
  92. package/dist/migrations/036_econ_turns.sql +52 -0
  93. package/dist/migrations/037_econ_toolprune.sql +38 -0
  94. package/dist/migrations/038_pinned_facts.sql +48 -0
  95. package/dist/migrations/039_memory_use.sql +34 -0
  96. package/dist/plugin/.claude-plugin/plugin.json +1 -1
  97. package/dist/plugin/hooks/hooks.json +30 -0
  98. package/dist/plugin/skills/CLAUDE.md +1 -1
  99. package/dist/plugin/skills/memory/SKILL.md +2 -1
  100. package/dist/plugin/skills/toolprune/SKILL.md +31 -0
  101. package/dist/statusline.js +2 -2
  102. package/dist/statusline.js.map +1 -1
  103. package/dist/toolprune-store.js +136 -0
  104. package/dist/toolprune-store.js.map +1 -0
  105. package/dist/tools/config_tools.js +30 -0
  106. package/dist/tools/config_tools.js.map +1 -1
  107. package/dist/tools/index.js +2 -1
  108. package/dist/tools/index.js.map +1 -1
  109. package/dist/tools/memory_read_tools.js +8 -0
  110. package/dist/tools/memory_read_tools.js.map +1 -1
  111. package/dist/tools/memory_write_tools.js +21 -0
  112. package/dist/tools/memory_write_tools.js.map +1 -1
  113. package/package.json +1 -1
@@ -44,13 +44,15 @@ export function savingsFrom(input) {
44
44
  export function savingsLine(s) {
45
45
  switch (s.kind) {
46
46
  case 'none':
47
- return 'Your savings: — no context reused yet';
47
+ return 'Recall: — no context reused yet';
48
48
  case 'unavailable':
49
- return 'Your savings: — unavailable';
49
+ return 'Recall: — size against its sources unavailable';
50
50
  case 'overhead':
51
51
  return `Reuse overhead: ${s.tokens} tokens (estimated)`;
52
52
  case 'saving':
53
- return `Your savings: ${s.percent}% less context from reuse (estimated)`;
53
+ // Smaller than what it summarises, not money saved: the agent might never
54
+ // have read those sources (issue #259).
55
+ return `Recall: ${s.percent}% smaller than its sources (estimated)`;
54
56
  }
55
57
  }
56
58
  const sizeOf = (tokens) => (tokens >= 1000 ? `${(tokens / 1000).toFixed(1)}k` : String(tokens));
@@ -68,7 +70,9 @@ export const toolSearch = (...names) => `ToolSearch select:${names.map((n) => TO
68
70
  * in full, and how to load the tool that opens one. The same estimator as every
69
71
  * receipt, so the number is comparable with the rest.
70
72
  */
71
- export const pullLine = (tokens) => `Full entries behind these titles: ~${sizeOf(tokens)} tokens. To open one, load the tool first (${toolSearch('memory_get', 'memory_search')}), then memory_get({ids: [<id>]}).`;
73
+ export const pullLine = (tokens, style = 'mcp') => style === 'bash'
74
+ ? `Full entries behind these titles: ~${sizeOf(tokens)} tokens. To open one, run \`eklavya memory show <id>\` in Bash; to look further back, \`eklavya memory search "<words>"\`.`
75
+ : `Full entries behind these titles: ~${sizeOf(tokens)} tokens. To open one, load the tool first (${toolSearch('memory_get', 'memory_search')}), then memory_get({ids: [<id>]}).`;
72
76
  /**
73
77
  * The banner line for one session start's recall: what was delivered, which a
74
78
  * receipt proves, then the estimated saving against reading the evidence behind
@@ -77,7 +81,7 @@ export const pullLine = (tokens) => `Full entries behind these titles: ~${sizeOf
77
81
  export function recalledLine(entries, tokens, indexed = 0, percent = 0) {
78
82
  const size = sizeOf(tokens);
79
83
  const titles = indexed ? ` + ${indexed} ${indexed === 1 ? 'title' : 'titles'}` : '';
80
- return `Memory · ${entries} past ${entries === 1 ? 'entry' : 'entries'}${titles} recalled (~${size} tokens)${percent > 0 ? ` · ~${percent}% less context` : ''}`;
84
+ return `Memory · ${entries} past ${entries === 1 ? 'entry' : 'entries'}${titles} recalled (~${size} tokens)${percent > 0 ? ` · ~${percent}% smaller than its sources` : ''}`;
81
85
  }
82
86
  /**
83
87
  * The line that says when to look further, and how, with the receipt the
@@ -92,8 +96,8 @@ export function recalledLine(entries, tokens, indexed = 0, percent = 0) {
92
96
  * Here rather than in `recall.ts` so the file-context hook, which runs before
93
97
  * every Read, can say it too.
94
98
  */
95
- export const RECEIPT_HINT = (receiptId, best = []) => (best.length
99
+ export const RECEIPT_HINT = (receiptId, best = [], style = 'mcp') => (best.length
96
100
  ? `Best match${best.length > 1 ? 'es' : ''}: ${best.map((id) => `#${id}`).join(', ')}. If the task touches ${best.length > 1 ? 'them' : 'it'}, open ${best.length > 1 ? 'them' : 'it'} before answering: `
97
101
  : 'Task needs an earlier decision, fix or unfinished work? Open a matching entry before answering: ') +
98
- `memory_get({ids: [<id>], receipt_id: ${receiptId}}).`;
102
+ (style === 'bash' ? '`eklavya memory show <id>` in Bash.' : `memory_get({ids: [<id>], receipt_id: ${receiptId}}).`);
99
103
  //# sourceMappingURL=tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/memory/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAErC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAA+B;IAC5D,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAoC;IACnE,OAAO,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC;AAcD;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,KAAmB;IAC7C,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACzE,IAAI,IAAI,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACzD,2EAA2E;IAC3E,IAAI,CAAC,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACtG,IAAI,SAAS,GAAG,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7F,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACrG,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,WAAW,CAAC,CAAU;IACpC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,uCAAuC,CAAC;QACjD,KAAK,aAAa;YAChB,OAAO,6BAA6B,CAAC;QACvC,KAAK,UAAU;YACb,OAAO,mBAAmB,CAAC,CAAC,MAAM,qBAAqB,CAAC;QAC1D,KAAK,QAAQ;YACX,OAAO,iBAAiB,CAAC,CAAC,OAAO,uCAAuC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAExG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,+BAA+B,CAAC;AAE3D,mEAAmE;AACnE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAG,KAAe,EAAE,EAAE,CAAC,qBAAqB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAErH;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE,CACzC,sCAAsC,MAAM,CAAC,MAAM,CAAC,8CAA8C,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,oCAAoC,CAAC;AAElL;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,MAAc,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC;IACpF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,OAAO,YAAY,OAAO,SAAS,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,eAAe,IAAI,WAAW,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACnK,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,OAAiB,EAAE,EAAE,EAAE,CACrE,CAAC,IAAI,CAAC,MAAM;IACV,CAAC,CAAC,aAAa,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,qBAAqB;IAC1M,CAAC,CAAC,kGAAkG,CAAC;IACvG,wCAAwC,SAAS,KAAK,CAAC"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/memory/tokens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ /**
5
+ * What recall did for the sessions it served (issue #259): per entry, how
6
+ * often it was sent, opened and applied, a decayed utility score that ranks
7
+ * recall, and whether it may be outdated. Computed by the background fold
8
+ * from rows the hooks and tools already wrote; a hook never runs any of it.
9
+ */
10
+ export const UTILITY_DECAY = 0.8;
11
+ /** Sent this often and never applied: probably not worth its place. */
12
+ export const NEVER_APPLIED_AFTER = 5;
13
+ /** Commits to an entry's files since it was written before it is a stale candidate. */
14
+ export const STALE_COMMITS = 3;
15
+ const GIT_TIMEOUT_MS = 2_000;
16
+ const nowIso = () => new Date().toISOString();
17
+ const list = (json) => {
18
+ try {
19
+ const v = JSON.parse(json ?? '[]');
20
+ return Array.isArray(v) ? v.map(String) : [];
21
+ }
22
+ catch {
23
+ return [];
24
+ }
25
+ };
26
+ /** Commits to `files` since `since`, or null when git cannot say. */
27
+ function commitsSince(repo, since, files) {
28
+ try {
29
+ const out = execFileSync('git', ['log', '--format=%H', `--since=${since}`, '--', ...files], {
30
+ cwd: repo,
31
+ encoding: 'utf8',
32
+ timeout: GIT_TIMEOUT_MS,
33
+ stdio: ['ignore', 'pipe', 'ignore'],
34
+ });
35
+ return out.split('\n').filter(Boolean).length;
36
+ }
37
+ catch {
38
+ return null;
39
+ }
40
+ }
41
+ /**
42
+ * Why an entry may be outdated, or null: one of its files is gone, its files
43
+ * have had `STALE_COMMITS` commits since, or a newer decision or fix covers
44
+ * the same files.
45
+ */
46
+ export function staleReason(db, repo, entry) {
47
+ const files = list(entry.files).filter((f) => !f.startsWith('/') || (repo && f.startsWith(repo)));
48
+ if (!files.length)
49
+ return null;
50
+ if (repo) {
51
+ const missing = files.find((f) => !fs.existsSync(path.isAbsolute(f) ? f : path.join(repo, f)));
52
+ if (missing)
53
+ return `files changed since ${entry.occurred_at.slice(0, 10)}: ${path.basename(missing)} was deleted or renamed`;
54
+ const n = commitsSince(repo, entry.occurred_at, files);
55
+ if (n !== null && n >= STALE_COMMITS)
56
+ return `files changed since ${entry.occurred_at.slice(0, 10)}: ${n} commits to them`;
57
+ }
58
+ const newer = db
59
+ .prepare(`SELECT e.id, e.type FROM memory_entries e
60
+ WHERE e.project = ? AND e.id != ? AND e.occurred_at > ? AND e.type IN ('decision', 'bugfix')
61
+ AND e.deleted_at IS NULL AND e.superseded_by IS NULL AND e.files IS NOT NULL
62
+ AND EXISTS (SELECT 1 FROM json_each(e.files) WHERE json_each.value IN (SELECT value FROM json_each(?)))
63
+ ORDER BY e.occurred_at DESC LIMIT 1`)
64
+ .get(entry.project, entry.id, entry.occurred_at, JSON.stringify(files));
65
+ return newer ? `a newer ${newer.type} (#${newer.id}) covers the same files` : null;
66
+ }
67
+ /**
68
+ * Folds one finished session into the per-entry figures. Once per session.
69
+ * `repo` is the checkout, for the git checks; null skips them.
70
+ */
71
+ export function foldEntryUse(db, config, project, sessionId, repo) {
72
+ if (db.prepare('SELECT 1 FROM memory_use_sessions WHERE session_id = ?').get(sessionId))
73
+ return;
74
+ const sent = new Set(db
75
+ .prepare(`SELECT DISTINCT i.entry_id FROM context_receipt_items i JOIN context_receipts r ON r.id = i.receipt_id
76
+ WHERE r.session_id = ? AND r.delivery IN ('emitted', 'confirmed')`)
77
+ .all(sessionId).map((r) => r.entry_id));
78
+ const opened = new Set(db.prepare(`SELECT entry_ids FROM memory_reads WHERE session_id = ? AND tool = 'memory_get'`).all(sessionId).flatMap((r) => list(r.entry_ids).map(Number)));
79
+ const touched = new Set(db.prepare(`SELECT files FROM evidence_events WHERE session_id = ? AND kind IN ('file_read', 'file_edit') AND files IS NOT NULL`).all(sessionId).flatMap((r) => list(r.files).map((f) => path.basename(f))));
80
+ const at = nowIso();
81
+ const upsert = db.prepare(`INSERT INTO memory_entry_use (entry_id, sent, opened, applied, utility, updated_at) VALUES (?, ?, ?, ?, ?, ?)
82
+ ON CONFLICT(entry_id) DO UPDATE SET sent = sent + excluded.sent, opened = opened + excluded.opened,
83
+ applied = applied + excluded.applied, utility = utility * ${UTILITY_DECAY} + excluded.utility, updated_at = excluded.updated_at`);
84
+ const flag = db.prepare(`UPDATE memory_entry_use SET stale_reason = ?, stale_since = ?, stale_by = 'fold' WHERE entry_id = ? AND stale_reason IS NULL`);
85
+ db.transaction(() => {
86
+ for (const id of new Set([...sent, ...opened])) {
87
+ const entry = db.prepare('SELECT id, project, files, occurred_at FROM memory_entries WHERE id = ?').get(id);
88
+ if (!entry || entry.project !== project)
89
+ continue;
90
+ const applied = list(entry.files).some((f) => touched.has(path.basename(f)));
91
+ upsert.run(id, sent.has(id) ? 1 : 0, opened.has(id) ? 1 : 0, applied ? 1 : 0, applied ? 1 : 0, at);
92
+ if (!config.memory.stale_check)
93
+ continue;
94
+ const use = db.prepare('SELECT sent, applied FROM memory_entry_use WHERE entry_id = ?').get(id);
95
+ const reason = use.sent >= NEVER_APPLIED_AFTER && use.applied === 0 ? `sent ${use.sent} times and never used` : staleReason(db, repo, entry);
96
+ if (reason)
97
+ flag.run(reason, at, id);
98
+ }
99
+ db.prepare('INSERT INTO memory_use_sessions (session_id, folded_at) VALUES (?, ?)').run(sessionId, at);
100
+ })();
101
+ }
102
+ /** The use row of each id that has one. */
103
+ export function entryUse(db, ids) {
104
+ if (!ids.length)
105
+ return new Map();
106
+ const rows = db
107
+ .prepare(`SELECT entry_id, utility, stale_reason, stale_since, stale_by FROM memory_entry_use WHERE entry_id IN (${ids.map(() => '?').join(',')})`)
108
+ .all(...ids);
109
+ return new Map(rows.map(({ entry_id, ...r }) => [entry_id, r]));
110
+ }
111
+ /** Marks an entry as possibly outdated, by the model through `memory_flag_stale`. */
112
+ export function flagStale(db, id, reason) {
113
+ db.prepare(`INSERT INTO memory_entry_use (entry_id, stale_reason, stale_since, stale_by, updated_at) VALUES (?, ?, ?, 'model', ?)
114
+ ON CONFLICT(entry_id) DO UPDATE SET stale_reason = excluded.stale_reason, stale_since = excluded.stale_since, stale_by = 'model', updated_at = excluded.updated_at`).run(id, reason.slice(0, 300), nowIso(), nowIso());
115
+ }
116
+ /** Stale counts for the dashboard: flagged now, and rewritten by a refresh. */
117
+ export function staleCounts(db, project) {
118
+ return db
119
+ .prepare(`SELECT COALESCE(SUM(u.stale_reason IS NOT NULL AND e.superseded_by IS NULL), 0) AS flagged, COALESCE(SUM(u.refreshed_at IS NOT NULL), 0) AS refreshed
120
+ FROM memory_entry_use u JOIN memory_entries e ON e.id = u.entry_id WHERE (? IS NULL OR e.project = ?)`)
121
+ .get(project, project);
122
+ }
123
+ //# sourceMappingURL=use.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../src/memory/use.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
+ import { meterProviderCalls } from '../ledger.js';
2
+ import { foldSessionFacts, fromProposal } from './pinned.js';
1
3
  import crypto from 'node:crypto';
2
4
  import { nowIso, parseStamp } from '../time.js';
3
5
  import { probeLogin, ProviderError, ProviderSummarizer } from './provider.js';
4
6
  import { LocalSummarizer, summarizeSession } from './summarize.js';
5
7
  import { ownWords } from './recall.js';
6
8
  import { handOffWorker, launchWorker, releaseWorker, renewWorker } from './reservation.js';
7
- import { addCandidate, batchById, batchEvents, batchSession, claimJob, deleteEntry, failJob, finishJob, hasClaimableJob, ownsJob, releaseJob, pausesQueue, insertEntry, replaceEntry, resumePaused, timeline, } from './store.js';
9
+ import { addCandidate, batchById, batchEvents, batchSession, claimJob, deleteEntry, failJob, finishJob, hasClaimableJob, ownsJob, releaseJob, pausesQueue, insertEntry, reembedLegacy, replaceEntry, resumePaused, timeline, } from './store.js';
8
10
  /**
9
11
  * The job worker (ADR-05).
10
12
  *
@@ -215,6 +217,8 @@ export async function processPending(db, config, opts = {}) {
215
217
  const maxJobs = opts.maxJobs ?? 3;
216
218
  const summarizer = summarizerFor(config);
217
219
  const result = { processed: 0, entries: 0, failed: 0, skipped: 0, stopped: 'limit' };
220
+ // Every observer call this run makes is charged to the cost ledger.
221
+ meterProviderCalls(db, config);
218
222
  for (let i = 0; i < maxJobs; i++) {
219
223
  if (opts.signal?.aborted) {
220
224
  result.stopped = 'cancelled';
@@ -276,6 +280,7 @@ export async function processPending(db, config, opts = {}) {
276
280
  narrative: draft.narrative,
277
281
  facts: draft.facts,
278
282
  files: draft.files,
283
+ keywords: draft.keywords,
279
284
  tags: draft.tags,
280
285
  generator: summarizer.id,
281
286
  confidence: draft.confidence,
@@ -301,6 +306,12 @@ export async function processPending(db, config, opts = {}) {
301
306
  if (drafts.checkpoint && didWork) {
302
307
  writeCheckpoint(db, batch.project, batch.session_id, drafts.checkpoint, summarizer.id, events[events.length - 1].occurred_at);
303
308
  }
309
+ // Facts the observer proposes start forming; they reach a session only
310
+ // after three sessions confirm them (issue #264).
311
+ if (drafts.pinned?.length && config.economy.envfacts === 'observer') {
312
+ const proposals = drafts.pinned.map((p) => fromProposal(p.kind, p.text)).filter((e) => e !== null);
313
+ foldSessionFacts(db, batch.project, batch.session_id, proposals, { only: true });
314
+ }
304
315
  db.prepare("UPDATE evidence_events SET status = 'summarized' WHERE batch_id = ?").run(batch.id);
305
316
  finishJob(db, job.id, owner);
306
317
  return true;
@@ -424,6 +435,10 @@ export async function superviseWorker(db, token, config, opts) {
424
435
  clearInterval(heartbeat);
425
436
  opts.signal?.removeEventListener('abort', stop);
426
437
  }
438
+ // Move a few hundred entries written before `local-hash-v2` onto it, while
439
+ // this process holds the worker slot anyway (issue #258). Search reads both
440
+ // kinds, so a run that stops halfway leaves nothing broken.
441
+ reembedLegacy(db);
427
442
  // Descendants outlived SIGKILL: keep the slot, so no other worker starts
428
443
  // beside them. The record names the group; recovery can see and end it.
429
444
  /* c8 ignore next -- needs a provider tree that survives SIGKILL, which no test can make on demand */
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/memory/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/memory/worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ -- Write-time keyword expansion (issue #258).
2
+ --
3
+ -- The observer may now add `keywords`: the other words a developer would use
4
+ -- to ask about an observation ("auth", "login", "session cookie" for an entry
5
+ -- titled "Rotate refresh tokens on reuse"). They are stored on the entry and
6
+ -- indexed as a fifth FTS column, so a prompt worded differently from the
7
+ -- entry can still match it without a model call at recall time.
8
+ --
9
+ -- The index is rebuilt from `memory_entries` exactly as migration 020 does,
10
+ -- with the same live-row triggers plus the new column.
11
+
12
+ ALTER TABLE memory_entries ADD COLUMN keywords TEXT;
13
+
14
+ DROP TRIGGER IF EXISTS memory_entries_ai;
15
+ DROP TRIGGER IF EXISTS memory_entries_ad;
16
+ DROP TRIGGER IF EXISTS memory_entries_au;
17
+ DROP TABLE IF EXISTS memory_fts;
18
+ DROP VIEW IF EXISTS memory_fts_live;
19
+
20
+ CREATE VIEW memory_fts_live AS
21
+ SELECT id, title, narrative, facts, files, keywords FROM memory_entries WHERE deleted_at IS NULL;
22
+
23
+ CREATE VIRTUAL TABLE memory_fts USING fts5(
24
+ title, narrative, facts, files, keywords,
25
+ content = 'memory_fts_live',
26
+ content_rowid = 'id',
27
+ tokenize = 'unicode61 remove_diacritics 2'
28
+ );
29
+
30
+ INSERT INTO memory_fts(memory_fts) VALUES ('rebuild');
31
+
32
+ CREATE TRIGGER memory_entries_ai AFTER INSERT ON memory_entries
33
+ WHEN new.deleted_at IS NULL BEGIN
34
+ INSERT INTO memory_fts(rowid, title, narrative, facts, files, keywords)
35
+ VALUES (new.id, new.title, new.narrative, new.facts, new.files, new.keywords);
36
+ END;
37
+
38
+ CREATE TRIGGER memory_entries_ad AFTER DELETE ON memory_entries
39
+ WHEN old.deleted_at IS NULL BEGIN
40
+ INSERT INTO memory_fts(memory_fts, rowid, title, narrative, facts, files, keywords)
41
+ VALUES ('delete', old.id, old.title, old.narrative, old.facts, old.files, old.keywords);
42
+ END;
43
+
44
+ CREATE TRIGGER memory_entries_au AFTER UPDATE ON memory_entries
45
+ WHEN old.title IS NOT new.title
46
+ OR old.narrative IS NOT new.narrative
47
+ OR old.facts IS NOT new.facts
48
+ OR old.files IS NOT new.files
49
+ OR old.keywords IS NOT new.keywords
50
+ OR old.id IS NOT new.id
51
+ OR (old.deleted_at IS NULL) IS NOT (new.deleted_at IS NULL)
52
+ BEGIN
53
+ INSERT INTO memory_fts(memory_fts, rowid, title, narrative, facts, files, keywords)
54
+ SELECT 'delete', old.id, old.title, old.narrative, old.facts, old.files, old.keywords
55
+ WHERE old.deleted_at IS NULL;
56
+ INSERT INTO memory_fts(rowid, title, narrative, facts, files, keywords)
57
+ SELECT new.id, new.title, new.narrative, new.facts, new.files, new.keywords
58
+ WHERE new.deleted_at IS NULL;
59
+ END;
@@ -0,0 +1,69 @@
1
+ -- The cost ledger (issue #261).
2
+ --
3
+ -- `econ_sessions` holds one row per Claude Code session: the token usage read
4
+ -- from its transcript by the background fold, priced per model. Numbers and
5
+ -- names only: no prompt, no tool argument, no output is ever stored. A row is
6
+ -- created `pending` at session start with the transcript's path, and filled
7
+ -- in (`folded_at`) once the session ends or its transcript has been quiet for
8
+ -- ten minutes. A fold can run again; it replaces the row.
9
+ --
10
+ -- `econ_overhead` holds what Eklavya itself spent: each `claude -p` call it
11
+ -- made (observer, feedback review, loop-guard judge, stale refresh), from the
12
+ -- call's JSON envelope, and each Eklavya subagent (the explainer) found in a
13
+ -- session's transcript. A subagent's tokens are already in its session's
14
+ -- totals; its overhead row labels them, it does not add them again
15
+ -- (`in_session` = 1).
16
+
17
+ CREATE TABLE econ_sessions (
18
+ session_id TEXT PRIMARY KEY,
19
+ project TEXT,
20
+ transcript_path TEXT,
21
+ model TEXT,
22
+ claude_version TEXT,
23
+ started_at TEXT,
24
+ ended_at TEXT,
25
+ prompts INTEGER NOT NULL DEFAULT 0,
26
+ requests INTEGER NOT NULL DEFAULT 0,
27
+ tool_calls INTEGER NOT NULL DEFAULT 0,
28
+ tool_errors INTEGER NOT NULL DEFAULT 0,
29
+ input INTEGER NOT NULL DEFAULT 0,
30
+ cache_read INTEGER NOT NULL DEFAULT 0,
31
+ cache_write_5m INTEGER NOT NULL DEFAULT 0,
32
+ cache_write_1h INTEGER NOT NULL DEFAULT 0,
33
+ output INTEGER NOT NULL DEFAULT 0,
34
+ effective INTEGER NOT NULL DEFAULT 0,
35
+ -- The share of `effective` spent on Eklavya: turns that called its tools
36
+ -- (the quiz) and its subagents.
37
+ quiz_effective INTEGER NOT NULL DEFAULT 0,
38
+ eklavya_effective INTEGER NOT NULL DEFAULT 0,
39
+ -- JSON list of models with usage and no price row.
40
+ unpriced TEXT,
41
+ -- JSON: the economy and memory settings in force, for the on/off comparison.
42
+ settings TEXT,
43
+ created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
44
+ folded_at TEXT
45
+ );
46
+ CREATE INDEX econ_sessions_project ON econ_sessions (project, started_at);
47
+ CREATE INDEX econ_sessions_pending ON econ_sessions (folded_at) WHERE folded_at IS NULL;
48
+
49
+ CREATE TABLE econ_overhead (
50
+ id INTEGER PRIMARY KEY,
51
+ occurred_at TEXT NOT NULL,
52
+ project TEXT,
53
+ session_id TEXT,
54
+ -- observer | feedback | judge | stale_refresh | subagent:<agent type>
55
+ source TEXT NOT NULL,
56
+ model TEXT,
57
+ input INTEGER NOT NULL DEFAULT 0,
58
+ cache_read INTEGER NOT NULL DEFAULT 0,
59
+ cache_write_5m INTEGER NOT NULL DEFAULT 0,
60
+ cache_write_1h INTEGER NOT NULL DEFAULT 0,
61
+ output INTEGER NOT NULL DEFAULT 0,
62
+ effective INTEGER NOT NULL DEFAULT 0,
63
+ unpriced INTEGER NOT NULL DEFAULT 0,
64
+ -- What `claude -p` reported it cost, when it did.
65
+ cost_usd REAL,
66
+ in_session INTEGER NOT NULL DEFAULT 0
67
+ );
68
+ CREATE INDEX econ_overhead_time ON econ_overhead (occurred_at);
69
+ CREATE INDEX econ_overhead_session ON econ_overhead (session_id, source);
@@ -0,0 +1,52 @@
1
+ -- The loop guard (issue #262).
2
+ --
3
+ -- `econ_turns` is one prompt-turn per session and agent: the counts the guard
4
+ -- folds on every tool call (`state`, JSON of numbers, file basenames and
5
+ -- command shapes, never output), how many redirects it has sent, and the
6
+ -- judge's verdict when one was asked for. A turn opens at UserPromptSubmit and
7
+ -- closes at Stop with its outcome: green only when a check ran after the last
8
+ -- edit and passed.
9
+ --
10
+ -- `econ_envelope` keeps the call counts of turns that ended green, per
11
+ -- project: how long a turn here usually runs. Only the newest 500 are read.
12
+ --
13
+ -- `econ_guard_events` records every redirect, notice and judge call, so
14
+ -- `eklavya cost` and the dashboard can show them.
15
+
16
+ CREATE TABLE econ_turns (
17
+ id INTEGER PRIMARY KEY,
18
+ session_id TEXT NOT NULL,
19
+ agent_id TEXT NOT NULL DEFAULT '',
20
+ project TEXT,
21
+ opened_at TEXT NOT NULL,
22
+ closed_at TEXT,
23
+ state TEXT NOT NULL,
24
+ nudges INTEGER NOT NULL DEFAULT 0,
25
+ noticed INTEGER NOT NULL DEFAULT 0,
26
+ -- null: never asked; 'pending': a judge is running; 'done': `verdict` holds it.
27
+ judge_status TEXT,
28
+ verdict TEXT,
29
+ outcome TEXT
30
+ );
31
+ CREATE INDEX econ_turns_open ON econ_turns (session_id, agent_id, closed_at);
32
+
33
+ CREATE TABLE econ_envelope (
34
+ id INTEGER PRIMARY KEY,
35
+ project TEXT NOT NULL,
36
+ calls INTEGER NOT NULL,
37
+ snapshot TEXT,
38
+ recorded_at TEXT NOT NULL
39
+ );
40
+ CREATE INDEX econ_envelope_project ON econ_envelope (project, id);
41
+
42
+ CREATE TABLE econ_guard_events (
43
+ id INTEGER PRIMARY KEY,
44
+ at TEXT NOT NULL,
45
+ session_id TEXT,
46
+ project TEXT,
47
+ turn_id INTEGER,
48
+ -- redirect | notice | judge | stop
49
+ kind TEXT NOT NULL,
50
+ reason TEXT
51
+ );
52
+ CREATE INDEX econ_guard_events_at ON econ_guard_events (at);
@@ -0,0 +1,38 @@
1
+ -- Tool pruning (issue #263).
2
+ --
3
+ -- `econ_tool_use` is the evidence, per project and tool: how many prompts and
4
+ -- sessions have passed since a session that loaded the tool last used it.
5
+ -- Updated once per session by the background fold (`econ_sessions.evidence`
6
+ -- marks the sessions already counted, so a fold that runs again adds nothing).
7
+ --
8
+ -- `econ_settings_writes` is what `eklavya toolprune apply` did to a checkout's
9
+ -- `.claude/settings.local.json`: the file's original bytes and the deny
10
+ -- entries Eklavya added, so `restore` removes exactly those.
11
+ --
12
+ -- `econ_toolprune_kept` is the tools a developer restored: never proposed again.
13
+
14
+ CREATE TABLE econ_tool_use (
15
+ project TEXT NOT NULL,
16
+ tool TEXT NOT NULL,
17
+ deferred INTEGER NOT NULL DEFAULT 0,
18
+ first_seen_at TEXT NOT NULL,
19
+ last_used_at TEXT,
20
+ prompts_since INTEGER NOT NULL DEFAULT 0,
21
+ sessions_since INTEGER NOT NULL DEFAULT 0,
22
+ PRIMARY KEY (project, tool)
23
+ );
24
+
25
+ CREATE TABLE econ_settings_writes (
26
+ project TEXT PRIMARY KEY,
27
+ record TEXT NOT NULL,
28
+ applied_at TEXT NOT NULL
29
+ );
30
+
31
+ CREATE TABLE econ_toolprune_kept (
32
+ project TEXT NOT NULL,
33
+ tool TEXT NOT NULL,
34
+ kept_at TEXT NOT NULL,
35
+ PRIMARY KEY (project, tool)
36
+ );
37
+
38
+ ALTER TABLE econ_sessions ADD COLUMN evidence INTEGER NOT NULL DEFAULT 0;
@@ -0,0 +1,48 @@
1
+ -- Pinned facts (issue #264): facts about a project that hold across sessions,
2
+ -- shown first in the session-start recall once they have earned it.
3
+ --
4
+ -- Two sources. Environment facts are learned with no model call from failures
5
+ -- that recur (`economy/envfacts.ts`): "bare `pytest` is not installed here;
6
+ -- `python -m pytest` works". With `economy.envfacts = observer`, the observer
7
+ -- may also propose environment facts, decisions and conventions in free text.
8
+ -- Either way a fact is `forming` until three sessions confirm it, then
9
+ -- `active`; its score decays by 0.8 a session and a contradiction counts five
10
+ -- times, and a fact below zero retires. A retired fact stays as history.
11
+ --
12
+ -- `pinned_fact_shown` records which facts each session was shown, so a fact's
13
+ -- effect on later sessions can be measured.
14
+
15
+ CREATE TABLE pinned_facts (
16
+ id INTEGER PRIMARY KEY,
17
+ project TEXT NOT NULL,
18
+ fact_key TEXT NOT NULL,
19
+ -- form_repair | env_value | boundary | arg_repair | empty_probe | observer
20
+ family TEXT NOT NULL,
21
+ -- env | decision | convention
22
+ kind TEXT NOT NULL,
23
+ text TEXT NOT NULL,
24
+ params TEXT,
25
+ source TEXT NOT NULL,
26
+ state TEXT NOT NULL DEFAULT 'forming',
27
+ score REAL NOT NULL DEFAULT 0,
28
+ confirmations INTEGER NOT NULL DEFAULT 0,
29
+ exercised INTEGER NOT NULL DEFAULT 0,
30
+ applied INTEGER NOT NULL DEFAULT 0,
31
+ contradictions INTEGER NOT NULL DEFAULT 0,
32
+ high INTEGER NOT NULL DEFAULT 0,
33
+ -- JSON list of the sessions already counted, newest last, so a session counts once.
34
+ sessions TEXT NOT NULL DEFAULT '[]',
35
+ created_at TEXT NOT NULL,
36
+ updated_at TEXT NOT NULL,
37
+ retired_at TEXT,
38
+ retired_reason TEXT,
39
+ UNIQUE (project, fact_key)
40
+ );
41
+ CREATE INDEX pinned_facts_live ON pinned_facts (project, state);
42
+
43
+ CREATE TABLE pinned_fact_shown (
44
+ session_id TEXT NOT NULL,
45
+ fact_id INTEGER NOT NULL REFERENCES pinned_facts (id) ON DELETE CASCADE,
46
+ shown_at TEXT NOT NULL,
47
+ PRIMARY KEY (session_id, fact_id)
48
+ );