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.
- package/README.md +7 -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 +31 -7
- 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
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
|
+
import { timeline } from './store.js';
|
|
3
|
+
/**
|
|
4
|
+
* The query a session-start recall ranks by (issue #258, `retrieval.seam_query`).
|
|
5
|
+
*
|
|
6
|
+
* A session start has no prompt yet, so recall used to send the newest entries
|
|
7
|
+
* only, and a month-old decision behind sixty newer entries never appeared.
|
|
8
|
+
* What the developer is about to work on is usually written down already: the
|
|
9
|
+
* branch name, the files changed and not yet committed, the last few commit
|
|
10
|
+
* subjects, and what the last checkpoint said to do next. This joins them into
|
|
11
|
+
* one search query.
|
|
12
|
+
*
|
|
13
|
+
* Every git call is bounded (`GIT_BUDGET_MS` in all) and fails open: a missing
|
|
14
|
+
* git, a folder that is not a checkout or a slow filesystem leaves that part
|
|
15
|
+
* out, and with nothing at all the recall falls back to newest first.
|
|
16
|
+
*/
|
|
17
|
+
/** The whole time the git calls may take together. */
|
|
18
|
+
export const GIT_BUDGET_MS = 1_000;
|
|
19
|
+
/** Changed files beyond this are not worth the query length. */
|
|
20
|
+
const MAX_FILES = 20;
|
|
21
|
+
const MAX_QUERY_CHARS = 1_500;
|
|
22
|
+
/** One git call within what is left of the budget, or null. */
|
|
23
|
+
function git(cwd, args, deadline, now) {
|
|
24
|
+
const left = deadline - now();
|
|
25
|
+
if (left <= 0)
|
|
26
|
+
return null;
|
|
27
|
+
try {
|
|
28
|
+
return execFileSync('git', args, {
|
|
29
|
+
cwd,
|
|
30
|
+
timeout: left,
|
|
31
|
+
encoding: 'utf8',
|
|
32
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
33
|
+
maxBuffer: 256 * 1024,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** `feat/retry-backoff` → `retry backoff`; the default branches say nothing. */
|
|
41
|
+
export function branchWords(branch) {
|
|
42
|
+
if (!branch || branch === 'HEAD' || /^(main|master|trunk|develop|dev)$/.test(branch))
|
|
43
|
+
return null;
|
|
44
|
+
const words = branch
|
|
45
|
+
.replace(/^(feat|feature|fix|bugfix|hotfix|chore|refactor|docs|test|claude|release)\//i, '')
|
|
46
|
+
.replace(/[/_.-]+/g, ' ')
|
|
47
|
+
.trim();
|
|
48
|
+
return words || null;
|
|
49
|
+
}
|
|
50
|
+
/** File paths from `git status --porcelain`, renames to their new name. */
|
|
51
|
+
export function porcelainFiles(out) {
|
|
52
|
+
const files = [];
|
|
53
|
+
for (const line of out.split('\n')) {
|
|
54
|
+
if (line.length < 4)
|
|
55
|
+
continue;
|
|
56
|
+
const name = line.slice(3).split(' -> ').pop().replace(/^"|"$/g, '').trim();
|
|
57
|
+
if (name && !files.includes(name))
|
|
58
|
+
files.push(name);
|
|
59
|
+
}
|
|
60
|
+
return files.slice(0, MAX_FILES);
|
|
61
|
+
}
|
|
62
|
+
/** The "next steps" part of a checkpoint narrative, or null. */
|
|
63
|
+
export function nextStepsOf(narrative) {
|
|
64
|
+
const match = /(?:^|\n)\s*(?:#+\s*)?next[ _]steps?\s*:?\s*\n?([\s\S]*?)(?:\n\s*\n|$)/i.exec(narrative);
|
|
65
|
+
const text = match?.[1]?.trim();
|
|
66
|
+
return text ? text.slice(0, 600) : null;
|
|
67
|
+
}
|
|
68
|
+
export function seamParts(db, opts, now = Date.now) {
|
|
69
|
+
const parts = { branch: null, files: [], commits: [], nextSteps: null };
|
|
70
|
+
if (opts.cwd) {
|
|
71
|
+
const deadline = now() + GIT_BUDGET_MS;
|
|
72
|
+
parts.branch = branchWords(git(opts.cwd, ['rev-parse', '--abbrev-ref', 'HEAD'], deadline, now)?.trim() ?? null);
|
|
73
|
+
parts.files = porcelainFiles(git(opts.cwd, ['status', '--porcelain', '--untracked-files=normal'], deadline, now) ?? '');
|
|
74
|
+
parts.commits = (git(opts.cwd, ['log', '-3', '--format=%s'], deadline, now) ?? '')
|
|
75
|
+
.split('\n')
|
|
76
|
+
.map((s) => s.trim())
|
|
77
|
+
.filter(Boolean);
|
|
78
|
+
}
|
|
79
|
+
const checkpoint = timeline(db, { project: opts.project, kind: 'session_summary', excludeSuperseded: true, limit: 3 }).find((e) => !opts.sessionId || e.session_id !== opts.sessionId);
|
|
80
|
+
parts.nextSteps = checkpoint ? nextStepsOf(checkpoint.narrative) : null;
|
|
81
|
+
return parts;
|
|
82
|
+
}
|
|
83
|
+
/** The parts as one query, or null when there is nothing to search by. */
|
|
84
|
+
export function seamQueryOf(parts) {
|
|
85
|
+
const text = [parts.branch, ...parts.files, ...parts.commits, parts.nextSteps].filter(Boolean).join(' ').trim();
|
|
86
|
+
return text ? text.slice(0, MAX_QUERY_CHARS) : null;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=seam.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seam.js","sourceRoot":"","sources":["../../src/memory/seam.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/search.js
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
|
-
import { cosine, embedLocal, fromBlob, LOCAL_EMBEDDER } from './embed.js';
|
|
1
|
+
import { cosine, embedLocal, embedLocalV2, fromBlob, LOCAL_EMBEDDER, LOCAL_EMBEDDER_V2 } from './embed.js';
|
|
2
|
+
import { informativeTerms } from './terms.js';
|
|
2
3
|
import { entriesByIds } from './store.js';
|
|
4
|
+
/**
|
|
5
|
+
* How rare each term is among live entries, as an inverse document frequency:
|
|
6
|
+
* `ln(1 + N / (1 + df))`. A term in every entry weighs about 0.7, one in a
|
|
7
|
+
* single entry of a thousand about 6. Read from the keyword index, one count
|
|
8
|
+
* per term, so it costs a handful of index lookups and no scan.
|
|
9
|
+
*/
|
|
10
|
+
export function termRarity(db, terms) {
|
|
11
|
+
const out = new Map();
|
|
12
|
+
if (!terms.length)
|
|
13
|
+
return out;
|
|
14
|
+
const total = db.prepare('SELECT count(*) AS n FROM memory_entries WHERE deleted_at IS NULL').get().n;
|
|
15
|
+
for (const term of terms) {
|
|
16
|
+
let df = 0;
|
|
17
|
+
try {
|
|
18
|
+
df = db.prepare('SELECT count(*) AS n FROM memory_fts WHERE memory_fts MATCH ?').get(`"${term.replace(/"/g, '')}"`).n;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
/* An index that cannot answer leaves the term as good as unseen. */
|
|
22
|
+
}
|
|
23
|
+
out.set(term, Math.log(1 + total / (1 + df)));
|
|
24
|
+
}
|
|
25
|
+
return out;
|
|
26
|
+
}
|
|
3
27
|
/**
|
|
4
28
|
* FTS5 has a query language, and a developer's search box does not. Feeding
|
|
5
29
|
* `fix: auth (retry?)` straight to MATCH is a syntax error, and quoting the
|
|
@@ -53,9 +77,11 @@ export function scopeClause(filter, alias = 'e') {
|
|
|
53
77
|
export function keywordSearch(db, query, filter = {}) {
|
|
54
78
|
const limit = filter.limit ?? 20;
|
|
55
79
|
const scope = scopeClause(filter);
|
|
80
|
+
// title, narrative, facts, files, keywords: names and paths over prose.
|
|
81
|
+
const rankExpr = filter.any ? 'bm25(memory_fts, 8.0, 1.0, 2.0, 6.0, 3.0)' : 'bm25(memory_fts)';
|
|
56
82
|
const run = (match) => {
|
|
57
83
|
const rows = db
|
|
58
|
-
.prepare(`SELECT e.*,
|
|
84
|
+
.prepare(`SELECT e.*, ${rankExpr} AS rank
|
|
59
85
|
FROM memory_fts
|
|
60
86
|
JOIN memory_entries e ON e.id = memory_fts.rowid
|
|
61
87
|
WHERE memory_fts MATCH ? AND ${scope.sql}
|
|
@@ -68,6 +94,8 @@ export function keywordSearch(db, query, filter = {}) {
|
|
|
68
94
|
const andQuery = ftsQuery(query, 'AND');
|
|
69
95
|
if (!andQuery)
|
|
70
96
|
return [];
|
|
97
|
+
if (filter.any)
|
|
98
|
+
return run(ftsQuery(query, 'OR'));
|
|
71
99
|
const exact = run(andQuery);
|
|
72
100
|
if (exact.length || filter.strict)
|
|
73
101
|
return exact;
|
|
@@ -77,26 +105,52 @@ export function keywordSearch(db, query, filter = {}) {
|
|
|
77
105
|
// Same terms as `andQuery`, which was non-null, so this is too.
|
|
78
106
|
return run(ftsQuery(query, 'OR'));
|
|
79
107
|
}
|
|
80
|
-
/**
|
|
108
|
+
/**
|
|
109
|
+
* Bounded scan: cosine over the project's most recent vectors (ADR-03).
|
|
110
|
+
*
|
|
111
|
+
* Each entry is compared using `local-hash-v1`, or with `filter.embedder: 'v2'`
|
|
112
|
+
* its `local-hash-v2` vector when it has one, with the query embedded the same
|
|
113
|
+
* way. The two scales differ, so each hit says which embedder scored it, and
|
|
114
|
+
* `filter.minScore` holds each to its own cut-off before the list is cut.
|
|
115
|
+
*/
|
|
81
116
|
export function semanticSearch(db, query, filter = {}, scanLimit = 5000) {
|
|
82
117
|
const scope = scopeClause(filter);
|
|
83
118
|
const rows = db
|
|
84
|
-
.prepare(`SELECT e.id,
|
|
85
|
-
|
|
86
|
-
|
|
119
|
+
.prepare(`SELECT e.id, COALESCE(v2.vec, v1.vec) AS vec,
|
|
120
|
+
CASE WHEN v2.vec IS NULL THEN 1 ELSE 2 END AS version
|
|
121
|
+
FROM memory_entries e
|
|
122
|
+
LEFT JOIN memory_vectors v2 ON v2.entry_id = e.id AND v2.embedder_id = ?
|
|
123
|
+
LEFT JOIN memory_vectors v1 ON v1.entry_id = e.id AND v1.embedder_id = ?
|
|
124
|
+
WHERE ${scope.sql} AND (v2.vec IS NOT NULL OR v1.vec IS NOT NULL)
|
|
87
125
|
ORDER BY e.occurred_at DESC LIMIT ?`)
|
|
88
|
-
|
|
126
|
+
// With `v1`, the v2 join matches nothing (no embedder has an empty id), so every row is v1.
|
|
127
|
+
.all(filter.embedder === 'v2' ? LOCAL_EMBEDDER_V2 : '', LOCAL_EMBEDDER, ...scope.args, scanLimit);
|
|
89
128
|
if (!rows.length)
|
|
90
129
|
return [];
|
|
91
|
-
|
|
130
|
+
let q1;
|
|
131
|
+
let q2;
|
|
132
|
+
const queryVec = (version) => {
|
|
133
|
+
if (version === 1)
|
|
134
|
+
return (q1 ??= embedLocal(query));
|
|
135
|
+
if (!q2) {
|
|
136
|
+
const rarity = termRarity(db, informativeTerms(query));
|
|
137
|
+
q2 = embedLocalV2(query, (term) => rarity.get(term));
|
|
138
|
+
}
|
|
139
|
+
return q2;
|
|
140
|
+
};
|
|
92
141
|
const scored = rows
|
|
93
|
-
.map((r) => ({ id: r.id, score: cosine(
|
|
94
|
-
.filter((r) => r.score > 0.05)
|
|
142
|
+
.map((r) => ({ id: r.id, version: r.version, score: cosine(queryVec(r.version), fromBlob(r.vec)) }))
|
|
143
|
+
.filter((r) => r.score > 0.05 && r.score >= (filter.minScore?.[r.version === 2 ? LOCAL_EMBEDDER_V2 : LOCAL_EMBEDDER] ?? 0))
|
|
95
144
|
.sort((a, b) => b.score - a.score)
|
|
96
145
|
.slice(0, filter.limit ?? 20);
|
|
97
146
|
const entries = new Map(entriesByIds(db, scored.map((s) => s.id)).map((e) => [e.id, e]));
|
|
98
147
|
return scored
|
|
99
|
-
.map((s) => ({
|
|
148
|
+
.map((s) => ({
|
|
149
|
+
entry: entries.get(s.id),
|
|
150
|
+
score: s.score,
|
|
151
|
+
via: 'semantic',
|
|
152
|
+
embedder: s.version === 2 ? LOCAL_EMBEDDER_V2 : LOCAL_EMBEDDER,
|
|
153
|
+
}))
|
|
100
154
|
.filter((h) => h.entry);
|
|
101
155
|
}
|
|
102
156
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/memory/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/memory/search.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/store.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import crypto from 'node:crypto';
|
|
2
2
|
import { nowIso } from '../time.js';
|
|
3
|
-
import { embedLocal, LOCAL_DIM, LOCAL_EMBEDDER, toBlob } from './embed.js';
|
|
3
|
+
import { embedLocal, embedLocalV2, LOCAL_DIM, LOCAL_DIM_V2, LOCAL_EMBEDDER, LOCAL_EMBEDDER_V2, toBlob } from './embed.js';
|
|
4
4
|
import { entryUid, receiptUid } from './identity.js';
|
|
5
5
|
import { redact } from './privacy.js';
|
|
6
6
|
/**
|
|
@@ -217,6 +217,7 @@ function scrubbed(input) {
|
|
|
217
217
|
title: redact(input.title).text,
|
|
218
218
|
narrative: input.narrative === undefined ? undefined : redact(input.narrative).text,
|
|
219
219
|
facts: input.facts?.map((f) => redact(f).text),
|
|
220
|
+
keywords: input.keywords?.map((k) => redact(k).text),
|
|
220
221
|
};
|
|
221
222
|
}
|
|
222
223
|
/** Writes an entry, its links, its tags and its vector in one transaction. */
|
|
@@ -237,9 +238,9 @@ export function insertEntry(db, raw) {
|
|
|
237
238
|
const id = Number(db
|
|
238
239
|
.prepare(`INSERT INTO memory_entries
|
|
239
240
|
(entry_uid, project, session_id, batch_id, kind, type, title, narrative, facts, files,
|
|
240
|
-
generator, confidence, occurred_at, created_at, import_source)
|
|
241
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
242
|
-
.run(uid, input.project, input.sessionId ?? null, input.batchId ?? null, input.kind ?? 'observation', input.type ?? null, input.title, input.narrative ?? '', input.facts?.length ? JSON.stringify(input.facts) : null, input.files?.length ? JSON.stringify(input.files) : null, input.generator ?? 'local-v1', input.confidence ?? null, occurredAt, nowIso(), input.importSource ?? null).lastInsertRowid);
|
|
241
|
+
generator, confidence, occurred_at, created_at, import_source, keywords)
|
|
242
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
243
|
+
.run(uid, input.project, input.sessionId ?? null, input.batchId ?? null, input.kind ?? 'observation', input.type ?? null, input.title, input.narrative ?? '', input.facts?.length ? JSON.stringify(input.facts) : null, input.files?.length ? JSON.stringify(input.files) : null, input.generator ?? 'local-v1', input.confidence ?? null, occurredAt, nowIso(), input.importSource ?? null, keywordsJson(input.keywords)).lastInsertRowid);
|
|
243
244
|
const tag = db.prepare('INSERT OR IGNORE INTO memory_entry_tags (entry_id, tag) VALUES (?, ?)');
|
|
244
245
|
for (const t of input.tags ?? [])
|
|
245
246
|
tag.run(id, t.toLowerCase());
|
|
@@ -251,7 +252,20 @@ export function insertEntry(db, raw) {
|
|
|
251
252
|
})();
|
|
252
253
|
}
|
|
253
254
|
function vectorText(input) {
|
|
254
|
-
return [
|
|
255
|
+
return [
|
|
256
|
+
input.title,
|
|
257
|
+
input.narrative ?? '',
|
|
258
|
+
(input.facts ?? []).join(' '),
|
|
259
|
+
(input.files ?? []).join(' '),
|
|
260
|
+
(input.keywords ?? []).join(' '),
|
|
261
|
+
].join('\n');
|
|
262
|
+
}
|
|
263
|
+
/** At most 16 keywords of 60 characters, lowercased and unique; null when there are none. */
|
|
264
|
+
function keywordsJson(keywords) {
|
|
265
|
+
const kept = [
|
|
266
|
+
...new Set((keywords ?? []).map((k) => String(k).trim().toLowerCase().slice(0, 60)).filter(Boolean)),
|
|
267
|
+
].slice(0, 16);
|
|
268
|
+
return kept.length ? JSON.stringify(kept) : null;
|
|
255
269
|
}
|
|
256
270
|
/**
|
|
257
271
|
* Rewrites an entry's content in place and re-indexes it.
|
|
@@ -272,11 +286,11 @@ export function replaceEntry(db, id, raw) {
|
|
|
272
286
|
db.transaction(() => {
|
|
273
287
|
db.prepare(`UPDATE memory_entries
|
|
274
288
|
SET type = ?, title = ?, narrative = ?, facts = ?, files = ?, confidence = ?, occurred_at = ?,
|
|
275
|
-
generator = COALESCE(?, generator)
|
|
289
|
+
generator = COALESCE(?, generator), keywords = ?
|
|
276
290
|
WHERE id = ?`).run(input.type ?? null, input.title, input.narrative ?? '', input.facts?.length ? JSON.stringify(input.facts) : null, input.files?.length ? JSON.stringify(input.files) : null, input.confidence ?? null, input.occurredAt ?? nowIso(),
|
|
277
291
|
// Who wrote the row now: a session's roll-up replaced by a model
|
|
278
292
|
// checkpoint must say so, or the next roll-up takes it for its own.
|
|
279
|
-
input.generator ?? null, id);
|
|
293
|
+
input.generator ?? null, keywordsJson(input.keywords), id);
|
|
280
294
|
db.prepare('DELETE FROM memory_entry_tags WHERE entry_id = ?').run(id);
|
|
281
295
|
const tag = db.prepare('INSERT OR IGNORE INTO memory_entry_tags (entry_id, tag) VALUES (?, ?)');
|
|
282
296
|
for (const t of input.tags ?? [])
|
|
@@ -284,10 +298,53 @@ export function replaceEntry(db, id, raw) {
|
|
|
284
298
|
indexVector(db, id, vectorText(input));
|
|
285
299
|
})();
|
|
286
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* Writes the entry's local vectors: `local-hash-v1`, which search uses by
|
|
303
|
+
* default, and `local-hash-v2`, which `retrieval.prompt_gate: terms` uses.
|
|
304
|
+
* Both are kept until the recall replay gate settles which one stays, so
|
|
305
|
+
* switching the setting back is never one-way (issue #258).
|
|
306
|
+
*/
|
|
287
307
|
export function indexVector(db, entryId, text) {
|
|
288
|
-
const
|
|
289
|
-
|
|
290
|
-
|
|
308
|
+
const upsert = db.prepare(`INSERT INTO memory_vectors (entry_id, embedder_id, dim, vec) VALUES (?, ?, ?, ?)
|
|
309
|
+
ON CONFLICT(entry_id, embedder_id) DO UPDATE SET vec = excluded.vec, dim = excluded.dim`);
|
|
310
|
+
upsert.run(entryId, LOCAL_EMBEDDER, LOCAL_DIM, toBlob(embedLocal(text)));
|
|
311
|
+
upsert.run(entryId, LOCAL_EMBEDDER_V2, LOCAL_DIM_V2, toBlob(embedLocalV2(text)));
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Adds a `local-hash-v2` vector to up to `limit` entries that have only a
|
|
315
|
+
* `local-hash-v1` one, newest first, and returns how many it did. The v1
|
|
316
|
+
* vector stays. The worker calls it in the background after its batches.
|
|
317
|
+
*/
|
|
318
|
+
export function reembedLegacy(db, limit = 200) {
|
|
319
|
+
try {
|
|
320
|
+
return reembedBatch(db, limit);
|
|
321
|
+
}
|
|
322
|
+
catch {
|
|
323
|
+
// The next run picks up where this one stopped; search reads both kinds meanwhile.
|
|
324
|
+
return 0;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
function reembedBatch(db, limit) {
|
|
328
|
+
const rows = db
|
|
329
|
+
.prepare(`SELECT e.id, e.title, e.narrative, e.facts, e.files, e.keywords FROM memory_entries e
|
|
330
|
+
WHERE EXISTS (SELECT 1 FROM memory_vectors v WHERE v.entry_id = e.id AND v.embedder_id = ?)
|
|
331
|
+
AND NOT EXISTS (SELECT 1 FROM memory_vectors v WHERE v.entry_id = e.id AND v.embedder_id = ?)
|
|
332
|
+
ORDER BY e.occurred_at DESC LIMIT ?`)
|
|
333
|
+
.all(LOCAL_EMBEDDER, LOCAL_EMBEDDER_V2, limit);
|
|
334
|
+
const list = (json) => (json ? JSON.parse(json) : []);
|
|
335
|
+
db.transaction(() => {
|
|
336
|
+
for (const r of rows) {
|
|
337
|
+
indexVector(db, r.id, vectorText({
|
|
338
|
+
project: '',
|
|
339
|
+
title: r.title,
|
|
340
|
+
narrative: r.narrative,
|
|
341
|
+
facts: list(r.facts),
|
|
342
|
+
files: list(r.files),
|
|
343
|
+
keywords: list(r.keywords),
|
|
344
|
+
}));
|
|
345
|
+
}
|
|
346
|
+
})();
|
|
347
|
+
return rows.length;
|
|
291
348
|
}
|
|
292
349
|
export function entryById(db, id) {
|
|
293
350
|
return db.prepare('SELECT * FROM memory_entries WHERE id = ?').get(id);
|
|
@@ -401,9 +458,9 @@ export function recordReceipt(db, opts) {
|
|
|
401
458
|
const id = Number(db
|
|
402
459
|
.prepare(`INSERT INTO context_receipts
|
|
403
460
|
(receipt_uid, project, session_id, scope, method, base_tokens, delivered_tokens,
|
|
404
|
-
item_count, delivery, created_at)
|
|
405
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
406
|
-
.run(receiptUid(), opts.project, opts.sessionId ?? null, opts.scope, opts.method, base, delivered, opts.items.length, opts.delivery, nowIso()).lastInsertRowid);
|
|
461
|
+
item_count, delivery, created_at, query_terms)
|
|
462
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
463
|
+
.run(receiptUid(), opts.project, opts.sessionId ?? null, opts.scope, opts.method, base, delivered, opts.items.length, opts.delivery, nowIso(), opts.queryTerms ?? null).lastInsertRowid);
|
|
407
464
|
const item = db.prepare(`INSERT OR REPLACE INTO context_receipt_items (receipt_id, entry_id, source_tokens, sent_tokens, stage)
|
|
408
465
|
VALUES (?, ?, ?, ?, ?)`);
|
|
409
466
|
for (const i of opts.items)
|
|
@@ -463,8 +520,10 @@ export function totalsDelivery(totals) {
|
|
|
463
520
|
}
|
|
464
521
|
export function recordRead(db, read) {
|
|
465
522
|
db.prepare(`INSERT INTO memory_reads
|
|
466
|
-
(created_at, project, session_id, tool, receipt_id, entry_ids, outcome, latency_ms, result_tokens
|
|
467
|
-
|
|
523
|
+
(created_at, project, session_id, tool, receipt_id, entry_ids, outcome, latency_ms, result_tokens, query_terms,
|
|
524
|
+
seconds_since_recall)
|
|
525
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
|
526
|
+
(SELECT CAST(strftime('%s', ?) - strftime('%s', created_at) AS INTEGER) FROM context_receipts WHERE id = ?))`).run(nowIso(), read.project, read.sessionId, read.tool, read.receiptId, JSON.stringify(read.entryIds), read.outcome, Math.max(0, Math.round(read.latencyMs)), read.resultTokens, read.queryTerms ?? null, nowIso(), read.receiptId);
|
|
468
527
|
}
|
|
469
528
|
/** Explicit memory reads, linked to a recall or not: consumption no receipt shows. */
|
|
470
529
|
export function readTotals(db, project) {
|
package/dist/memory/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/memory/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/memory/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../src/memory/summarize.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../src/memory/summarize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The informative words of a piece of text (issue #258).
|
|
3
|
+
*
|
|
4
|
+
* The prompt gate used to AND every word of the whole prompt, stopwords
|
|
5
|
+
* included, so "can you look at why the retry loop in fetchUser keeps timing
|
|
6
|
+
* out" matched only an entry that also said "can", "you", "look" and "why".
|
|
7
|
+
* This module keeps what names the subject: identifiers split on case and
|
|
8
|
+
* underscores (`fetchUser` gives `fetch`, `user` and `fetchuser`), file names
|
|
9
|
+
* and their stems, and ordinary words that are not on the stopword list.
|
|
10
|
+
*
|
|
11
|
+
* Pure: no database, no clock. The gate and the `local-hash-v2` embedder both
|
|
12
|
+
* read it, so a word that counts for one counts for the other.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Common English function words, chat filler and coding-request verbs that
|
|
16
|
+
* appear in almost every prompt and so tell the gate nothing. Kept short and
|
|
17
|
+
* explicit rather than borrowed from a library: a word on this list can never
|
|
18
|
+
* open the gate, so each one is a decision.
|
|
19
|
+
*/
|
|
20
|
+
export const STOPWORDS = new Set(('a about above after again all also am an and any are as at be because been before being below between both but by ' +
|
|
21
|
+
'can could did do does doing done down during each else even ever every few for from further get gets got had has ' +
|
|
22
|
+
'have having he her here hers him his how however i if in into is it its itself just let lets like make makes may me ' +
|
|
23
|
+
'might more most much must my need needs no nor not now of off on once one only or other our ours out over own ' +
|
|
24
|
+
'please same see she should so some such than that the their theirs them then there these they thing things this ' +
|
|
25
|
+
'those through to too under until up us use used using very want wants was way we well were what when where which ' +
|
|
26
|
+
'while who whom why will with would yes yet you your yours ' +
|
|
27
|
+
// Request verbs and filler that describe asking, not the subject.
|
|
28
|
+
'add check fix help keep keeps kept look looks run try tell show work works working change changes update thanks thank ok okay ' +
|
|
29
|
+
'sure still again also going go gonna actually maybe something anything everything stuff kind sort bit').split(/\s+/));
|
|
30
|
+
/** A path or file name: contains a slash, or ends in a short extension. */
|
|
31
|
+
const FILE_LIKE = /^[\w@.~-]*(?:\/[\w@.~-]+)+\/?$|^[\w@~-]+\.[a-z][a-z0-9]{0,5}$/i;
|
|
32
|
+
/** `fetchUserById` → fetch, user, by, id. `HTTPServer` → http, server. */
|
|
33
|
+
export function splitIdentifier(word) {
|
|
34
|
+
return word
|
|
35
|
+
.replace(/([a-z0-9])([A-Z])/g, '$1 $2')
|
|
36
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')
|
|
37
|
+
.split(/[\s_\-.]+/)
|
|
38
|
+
.map((p) => p.toLowerCase())
|
|
39
|
+
.filter(Boolean);
|
|
40
|
+
}
|
|
41
|
+
const keep = (t) => t.length > 2 && !STOPWORDS.has(t) && !/^\d+$/.test(t);
|
|
42
|
+
/**
|
|
43
|
+
* Informative terms, lowercased and unique, in first-seen order.
|
|
44
|
+
*
|
|
45
|
+
* A path contributes its file name and the file's stem as whole terms (the
|
|
46
|
+
* FTS index splits `recall.ts` into `recall` and `ts`, so the stem is what
|
|
47
|
+
* matches) and the parts of each segment. An identifier contributes itself
|
|
48
|
+
* whole as well as its parts, because an entry may spell it either way.
|
|
49
|
+
*/
|
|
50
|
+
export function informativeTerms(text) {
|
|
51
|
+
return [...new Set(informativeTermGroups(text).flat())];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The same terms grouped by the word of `text` they came from, each group
|
|
55
|
+
* unique and in first-seen order. `fetchUser` is one group (fetchuser, fetch,
|
|
56
|
+
* user) and `mcp/src/memory/recall.ts` is one group, so a gate that counts
|
|
57
|
+
* matched words can count a word once however many terms it split into.
|
|
58
|
+
* A term already given by an earlier word is not repeated in a later group.
|
|
59
|
+
*/
|
|
60
|
+
export function informativeTermGroups(text) {
|
|
61
|
+
const groups = [];
|
|
62
|
+
const seen = new Set();
|
|
63
|
+
for (const raw of text.split(/[\s"'`()[\]{}<>,;:!?=]+/)) {
|
|
64
|
+
const word = raw.replace(/^[^\p{L}\p{N}_/~.@-]+|[^\p{L}\p{N}_]+$/gu, '');
|
|
65
|
+
if (!word)
|
|
66
|
+
continue;
|
|
67
|
+
const group = [];
|
|
68
|
+
const push = (t) => {
|
|
69
|
+
if (!keep(t) || seen.has(t))
|
|
70
|
+
return;
|
|
71
|
+
seen.add(t);
|
|
72
|
+
group.push(t);
|
|
73
|
+
};
|
|
74
|
+
if (FILE_LIKE.test(word)) {
|
|
75
|
+
const base = word.split('/').filter(Boolean).pop();
|
|
76
|
+
const stem = base.replace(/\.[^.]+$/, '');
|
|
77
|
+
push(stem.toLowerCase());
|
|
78
|
+
for (const segment of word.split('/'))
|
|
79
|
+
for (const part of splitIdentifier(segment))
|
|
80
|
+
push(part);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
for (const token of word.split(/[^\p{L}\p{N}_-]+/u)) {
|
|
84
|
+
if (!token)
|
|
85
|
+
continue;
|
|
86
|
+
const parts = splitIdentifier(token);
|
|
87
|
+
// The joined identifier first: `fetchUser` is the term most likely to be
|
|
88
|
+
// spelled the same way in an entry about it.
|
|
89
|
+
if (parts.length > 1)
|
|
90
|
+
push(token.replace(/[-_]/g, '').toLowerCase());
|
|
91
|
+
for (const part of parts)
|
|
92
|
+
push(part);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (group.length)
|
|
96
|
+
groups.push(group);
|
|
97
|
+
}
|
|
98
|
+
return groups;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=terms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terms.js","sourceRoot":"","sources":["../../src/memory/terms.ts"],"names":[],"mappings":"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"}
|