eklavya 1.91.1 → 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.
- package/README.md +6 -4
- package/dist/assets/dashboard.html +151 -3
- package/dist/cli-economy.js +434 -0
- package/dist/cli-economy.js.map +1 -0
- package/dist/cli-memory.js +4 -1
- package/dist/cli-memory.js.map +1 -1
- package/dist/cli.js +46 -5
- package/dist/cli.js.map +1 -1
- package/dist/config-path.js +23 -1
- package/dist/config-path.js.map +1 -1
- package/dist/config.js +63 -0
- package/dist/config.js.map +1 -1
- package/dist/cost-report.js +67 -0
- package/dist/cost-report.js.map +1 -0
- package/dist/dashboard.js +79 -1
- package/dist/dashboard.js.map +1 -1
- package/dist/economy/LICENSE +202 -0
- package/dist/economy/envfacts.js +229 -0
- package/dist/economy/envfacts.js.map +1 -0
- package/dist/economy/loopguard.js +169 -0
- package/dist/economy/loopguard.js.map +1 -0
- package/dist/economy/pricing.js +54 -0
- package/dist/economy/pricing.js.map +1 -0
- package/dist/economy/shell-edits.js +238 -0
- package/dist/economy/shell-edits.js.map +1 -0
- package/dist/economy/signals.js +164 -0
- package/dist/economy/signals.js.map +1 -0
- package/dist/economy/toolprune.js +209 -0
- package/dist/economy/toolprune.js.map +1 -0
- package/dist/economy/transcript.js +290 -0
- package/dist/economy/transcript.js.map +1 -0
- package/dist/feedback-review.js +1 -1
- package/dist/feedback-review.js.map +1 -1
- package/dist/feedback.js +3 -0
- package/dist/feedback.js.map +1 -1
- package/dist/guard-note.js +21 -0
- package/dist/guard-note.js.map +1 -0
- package/dist/hooks/capture-tool.js +61 -11
- package/dist/hooks/capture-tool.js.map +1 -1
- package/dist/hooks/economy-lib.js +20 -0
- package/dist/hooks/economy-lib.js.map +1 -0
- package/dist/hooks/file-context.js +1 -1
- package/dist/hooks/file-context.js.map +1 -1
- package/dist/hooks/lib.js.map +1 -1
- package/dist/hooks/memory-lib.js +17 -1
- package/dist/hooks/memory-lib.js.map +1 -1
- package/dist/hooks/prompt-submit-nudge.js +15 -1
- package/dist/hooks/prompt-submit-nudge.js.map +1 -1
- package/dist/hooks/session-end.js +32 -0
- package/dist/hooks/session-end.js.map +1 -0
- package/dist/hooks/session-start.js +34 -0
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/hooks/stop-quiz-check.js +20 -0
- package/dist/hooks/stop-quiz-check.js.map +1 -1
- package/dist/hooks/subagent-start.js +17 -2
- package/dist/hooks/subagent-start.js.map +1 -1
- package/dist/install.js +5 -1
- package/dist/install.js.map +1 -1
- package/dist/ledger-pending.js +85 -0
- package/dist/ledger-pending.js.map +1 -0
- package/dist/ledger.js +144 -0
- package/dist/ledger.js.map +1 -0
- package/dist/loop-guard.js +190 -0
- package/dist/loop-guard.js.map +1 -0
- package/dist/memory/capture.js +2 -2
- package/dist/memory/capture.js.map +1 -1
- package/dist/memory/embed.js +37 -0
- package/dist/memory/embed.js.map +1 -1
- package/dist/memory/pinned.js +175 -0
- package/dist/memory/pinned.js.map +1 -0
- package/dist/memory/provider.js +66 -0
- package/dist/memory/provider.js.map +1 -1
- package/dist/memory/recall.js +111 -33
- package/dist/memory/recall.js.map +1 -1
- package/dist/memory/seam.js +88 -0
- package/dist/memory/seam.js.map +1 -0
- package/dist/memory/search.js +65 -11
- package/dist/memory/search.js.map +1 -1
- package/dist/memory/store.js +74 -15
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/summarize.js.map +1 -1
- package/dist/memory/terms.js +100 -0
- package/dist/memory/terms.js.map +1 -0
- package/dist/memory/tokens.js +11 -7
- package/dist/memory/tokens.js.map +1 -1
- package/dist/memory/use.js +123 -0
- package/dist/memory/use.js.map +1 -0
- package/dist/memory/worker.js +16 -1
- package/dist/memory/worker.js.map +1 -1
- package/dist/migrations/034_memory_keywords.sql +59 -0
- package/dist/migrations/035_econ_ledger.sql +69 -0
- package/dist/migrations/036_econ_turns.sql +52 -0
- package/dist/migrations/037_econ_toolprune.sql +38 -0
- package/dist/migrations/038_pinned_facts.sql +48 -0
- package/dist/migrations/039_memory_use.sql +34 -0
- package/dist/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/plugin/hooks/hooks.json +30 -0
- package/dist/plugin/skills/CLAUDE.md +1 -1
- package/dist/plugin/skills/memory/SKILL.md +2 -1
- package/dist/plugin/skills/toolprune/SKILL.md +31 -0
- package/dist/statusline.js +2 -2
- package/dist/statusline.js.map +1 -1
- package/dist/toolprune-store.js +136 -0
- package/dist/toolprune-store.js.map +1 -0
- package/dist/tools/config_tools.js +30 -0
- package/dist/tools/config_tools.js.map +1 -1
- package/dist/tools/index.js +2 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory_read_tools.js +8 -0
- package/dist/tools/memory_read_tools.js.map +1 -1
- package/dist/tools/memory_write_tools.js +21 -0
- package/dist/tools/memory_write_tools.js.map +1 -1
- package/package.json +1 -1
package/dist/memory/tokens.js
CHANGED
|
@@ -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 '
|
|
47
|
+
return 'Recall: — no context reused yet';
|
|
48
48
|
case 'unavailable':
|
|
49
|
-
return '
|
|
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
|
-
|
|
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
|
|
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}%
|
|
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,
|
|
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,iCAAiC,CAAC;QAC3C,KAAK,aAAa;YAChB,OAAO,gDAAgD,CAAC;QAC1D,KAAK,UAAU;YACb,OAAO,mBAAmB,CAAC,CAAC,MAAM,qBAAqB,CAAC;QAC1D,KAAK,QAAQ;YACX,0EAA0E;YAC1E,wCAAwC;YACxC,OAAO,WAAW,CAAC,CAAC,OAAO,wCAAwC,CAAC;IACxE,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,QAAqB,KAAK,EAAE,EAAE,CACrE,KAAK,KAAK,MAAM;IACd,CAAC,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,4HAA4H;IAClL,CAAC,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,8CAA8C,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,oCAAoC,CAAC;AAStL;;;;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,4BAA4B,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC/K,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,OAAiB,EAAE,EAAE,QAAqB,KAAK,EAAE,EAAE,CACjG,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,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,wCAAwC,SAAS,KAAK,CAAC,CAAC"}
|
|
@@ -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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"}
|
package/dist/memory/worker.js
CHANGED
|
@@ -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
|
+
);
|