@jmtrin/opencode-kevin 0.5.0 → 0.6.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 +580 -436
- package/dist/migrations/007_v06_pull.sql +145 -0
- package/dist/plugin/Archiver.js +4 -3
- package/dist/plugin/Archiver.js.map +1 -1
- package/dist/plugin/ArtifactWriter.d.ts +50 -0
- package/dist/plugin/ArtifactWriter.js +240 -0
- package/dist/plugin/ArtifactWriter.js.map +1 -0
- package/dist/plugin/ContextInjector.d.ts +15 -0
- package/dist/plugin/ContextInjector.js +46 -11
- package/dist/plugin/ContextInjector.js.map +1 -1
- package/dist/plugin/Curator.d.ts +96 -0
- package/dist/plugin/Curator.js +252 -0
- package/dist/plugin/Curator.js.map +1 -0
- package/dist/plugin/Feedback.js +4 -3
- package/dist/plugin/Feedback.js.map +1 -1
- package/dist/plugin/Materializer.d.ts +59 -0
- package/dist/plugin/Materializer.js +237 -0
- package/dist/plugin/Materializer.js.map +1 -0
- package/dist/plugin/MemoryService.d.ts +19 -0
- package/dist/plugin/MemoryService.js +150 -19
- package/dist/plugin/MemoryService.js.map +1 -1
- package/dist/plugin/Migrate.js +20 -0
- package/dist/plugin/Migrate.js.map +1 -1
- package/dist/plugin/QualityGate.d.ts +15 -1
- package/dist/plugin/QualityGate.js +12 -0
- package/dist/plugin/QualityGate.js.map +1 -1
- package/dist/plugin/Retrospective.d.ts +1 -0
- package/dist/plugin/Retrospective.js +12 -1
- package/dist/plugin/Retrospective.js.map +1 -1
- package/dist/plugin/capabilities.d.ts +15 -0
- package/dist/plugin/capabilities.js +42 -0
- package/dist/plugin/capabilities.js.map +1 -0
- package/dist/plugin/diff.d.ts +8 -0
- package/dist/plugin/diff.js +183 -0
- package/dist/plugin/diff.js.map +1 -0
- package/dist/plugin/index.d.ts +3 -1
- package/dist/plugin/index.js +221 -2
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/inferability.d.ts +32 -0
- package/dist/plugin/inferability.js +89 -0
- package/dist/plugin/inferability.js.map +1 -0
- package/dist/plugin/kevin_approve.d.ts +34 -0
- package/dist/plugin/kevin_approve.js +50 -0
- package/dist/plugin/kevin_approve.js.map +1 -0
- package/dist/plugin/kevin_audit.d.ts +47 -1
- package/dist/plugin/kevin_audit.js +93 -1
- package/dist/plugin/kevin_audit.js.map +1 -1
- package/dist/plugin/kevin_propose.d.ts +23 -0
- package/dist/plugin/kevin_propose.js +15 -0
- package/dist/plugin/kevin_propose.js.map +1 -0
- package/dist/plugin/kevin_publish.d.ts +38 -0
- package/dist/plugin/kevin_publish.js +19 -0
- package/dist/plugin/kevin_publish.js.map +1 -0
- package/dist/plugin/metrics.d.ts +12 -1
- package/dist/plugin/metrics.js +39 -0
- package/dist/plugin/metrics.js.map +1 -1
- package/dist/plugin/replay-types.d.ts +6 -6
- package/dist/plugin/replay.js +10 -0
- package/dist/plugin/replay.js.map +1 -1
- package/migrations/007_v06_pull.sql +145 -0
- package/package.json +1 -1
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { firstSentence } from "./Curator.js";
|
|
4
|
+
import { normalize } from "./fingerprint.js";
|
|
5
|
+
export const SKILL_TOPIC = "project-knowledge";
|
|
6
|
+
/** Hash-like noise: FNV-1a output is 16 lowercase hex chars; an 8+ hex
|
|
7
|
+
* token is indistinguishable from a fingerprint prefix and must never
|
|
8
|
+
* become a topic (D6-14). */
|
|
9
|
+
const HEX_LIKE_RE = /^[0-9a-f]{8,}$/;
|
|
10
|
+
const TOKEN_RE = /[^a-z0-9]+/;
|
|
11
|
+
/** Conservative English function words; code-adjacent meaning-bearing
|
|
12
|
+
* words (npm, ts2304, cargo...) are deliberately NOT stop-words. */
|
|
13
|
+
const STOP_WORDS = new Set([
|
|
14
|
+
"a",
|
|
15
|
+
"about",
|
|
16
|
+
"after",
|
|
17
|
+
"again",
|
|
18
|
+
"all",
|
|
19
|
+
"also",
|
|
20
|
+
"an",
|
|
21
|
+
"and",
|
|
22
|
+
"any",
|
|
23
|
+
"are",
|
|
24
|
+
"as",
|
|
25
|
+
"at",
|
|
26
|
+
"be",
|
|
27
|
+
"been",
|
|
28
|
+
"before",
|
|
29
|
+
"being",
|
|
30
|
+
"but",
|
|
31
|
+
"by",
|
|
32
|
+
"can",
|
|
33
|
+
"could",
|
|
34
|
+
"did",
|
|
35
|
+
"do",
|
|
36
|
+
"does",
|
|
37
|
+
"for",
|
|
38
|
+
"from",
|
|
39
|
+
"had",
|
|
40
|
+
"has",
|
|
41
|
+
"have",
|
|
42
|
+
"he",
|
|
43
|
+
"her",
|
|
44
|
+
"his",
|
|
45
|
+
"if",
|
|
46
|
+
"in",
|
|
47
|
+
"into",
|
|
48
|
+
"is",
|
|
49
|
+
"it",
|
|
50
|
+
"its",
|
|
51
|
+
"may",
|
|
52
|
+
"might",
|
|
53
|
+
"more",
|
|
54
|
+
"most",
|
|
55
|
+
"must",
|
|
56
|
+
"not",
|
|
57
|
+
"of",
|
|
58
|
+
"on",
|
|
59
|
+
"one",
|
|
60
|
+
"or",
|
|
61
|
+
"our",
|
|
62
|
+
"per",
|
|
63
|
+
"shall",
|
|
64
|
+
"she",
|
|
65
|
+
"so",
|
|
66
|
+
"than",
|
|
67
|
+
"that",
|
|
68
|
+
"the",
|
|
69
|
+
"their",
|
|
70
|
+
"them",
|
|
71
|
+
"then",
|
|
72
|
+
"there",
|
|
73
|
+
"these",
|
|
74
|
+
"they",
|
|
75
|
+
"this",
|
|
76
|
+
"those",
|
|
77
|
+
"through",
|
|
78
|
+
"to",
|
|
79
|
+
"too",
|
|
80
|
+
"under",
|
|
81
|
+
"up",
|
|
82
|
+
"us",
|
|
83
|
+
"via",
|
|
84
|
+
"was",
|
|
85
|
+
"we",
|
|
86
|
+
"were",
|
|
87
|
+
"what",
|
|
88
|
+
"when",
|
|
89
|
+
"where",
|
|
90
|
+
"which",
|
|
91
|
+
"while",
|
|
92
|
+
"who",
|
|
93
|
+
"will",
|
|
94
|
+
"with",
|
|
95
|
+
"would",
|
|
96
|
+
"you",
|
|
97
|
+
"your",
|
|
98
|
+
]);
|
|
99
|
+
/** Sanitize a memory type into a filesystem-safe topic prefix. */
|
|
100
|
+
function sanitizeType(type) {
|
|
101
|
+
const cleaned = type
|
|
102
|
+
.toLowerCase()
|
|
103
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
104
|
+
.replace(/-+/g, "-")
|
|
105
|
+
.replace(/^-|-$/g, "");
|
|
106
|
+
return cleaned === "" ? "memory" : cleaned;
|
|
107
|
+
}
|
|
108
|
+
function tokensOf(content) {
|
|
109
|
+
return normalize(content)
|
|
110
|
+
.split(TOKEN_RE)
|
|
111
|
+
.filter((t) => t !== "" && !STOP_WORDS.has(t) && !HEX_LIKE_RE.test(t));
|
|
112
|
+
}
|
|
113
|
+
/** Highest-frequency non-stop-word token, ties broken lexicographically
|
|
114
|
+
* (smallest wins) so the result is stable. "" when every token is a
|
|
115
|
+
* stop-word or hash-like noise. */
|
|
116
|
+
function dominantToken(rows) {
|
|
117
|
+
const counts = new Map();
|
|
118
|
+
for (const row of rows) {
|
|
119
|
+
for (const token of tokensOf(row.content)) {
|
|
120
|
+
counts.set(token, (counts.get(token) ?? 0) + 1);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
let best = "";
|
|
124
|
+
let bestCount = 0;
|
|
125
|
+
for (const [token, count] of counts) {
|
|
126
|
+
if (count > bestCount || (count === bestCount && token < best)) {
|
|
127
|
+
best = token;
|
|
128
|
+
bestCount = count;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return best;
|
|
132
|
+
}
|
|
133
|
+
function renderRows(rows) {
|
|
134
|
+
const sorted = [...rows].sort((a, b) => a.id.localeCompare(b.id));
|
|
135
|
+
const lines = sorted
|
|
136
|
+
.map((row) => `- ${firstSentence(row.content)}`)
|
|
137
|
+
.filter((line) => line !== "- ");
|
|
138
|
+
return lines.length === 0 ? "" : `${lines.join("\n")}\n`;
|
|
139
|
+
}
|
|
140
|
+
export class Materializer {
|
|
141
|
+
store;
|
|
142
|
+
/** `root` is injectable for tests; production defaults to ~/.opencode-kevin. */
|
|
143
|
+
root;
|
|
144
|
+
constructor(store, options = {}) {
|
|
145
|
+
this.store = store;
|
|
146
|
+
this.root = options.root ?? join(homedir(), ".opencode-kevin");
|
|
147
|
+
}
|
|
148
|
+
/** The curated, active memories — the knowledge the pull channels publish. */
|
|
149
|
+
curatedRows() {
|
|
150
|
+
return this.store
|
|
151
|
+
.prepare(`SELECT id, type, content FROM memories
|
|
152
|
+
WHERE status = 'active' AND curated = 1`)
|
|
153
|
+
.all();
|
|
154
|
+
}
|
|
155
|
+
/** The rendered skill body over all curated memories; "" when empty. */
|
|
156
|
+
skillBody() {
|
|
157
|
+
return renderRows(this.curatedRows());
|
|
158
|
+
}
|
|
159
|
+
/** Group rows by type, deriving each type's topic from its own content. */
|
|
160
|
+
groupByTopic(rows) {
|
|
161
|
+
const byType = new Map();
|
|
162
|
+
for (const row of rows) {
|
|
163
|
+
const list = byType.get(row.type) ?? [];
|
|
164
|
+
list.push(row);
|
|
165
|
+
byType.set(row.type, list);
|
|
166
|
+
}
|
|
167
|
+
const groups = [];
|
|
168
|
+
for (const [type, typeRows] of byType) {
|
|
169
|
+
const token = dominantToken(typeRows);
|
|
170
|
+
if (token === "")
|
|
171
|
+
continue;
|
|
172
|
+
groups.push({
|
|
173
|
+
topic: `${sanitizeType(type)}-${token}`,
|
|
174
|
+
rows: typeRows,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
return groups.sort((a, b) => a.topic.localeCompare(b.topic));
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* The pull-channel targets: the skill file plus one ref file per topic.
|
|
181
|
+
* The order is deterministic (skill first, refs by topic).
|
|
182
|
+
*/
|
|
183
|
+
bundleTargets() {
|
|
184
|
+
const rows = this.curatedRows();
|
|
185
|
+
const targets = [];
|
|
186
|
+
if (rows.length > 0 && renderRows(rows) !== "") {
|
|
187
|
+
targets.push({
|
|
188
|
+
topic: SKILL_TOPIC,
|
|
189
|
+
path: join(this.root, "skills", "project-knowledge.md"),
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
for (const group of this.groupByTopic(rows)) {
|
|
193
|
+
if (renderRows(group.rows) === "")
|
|
194
|
+
continue;
|
|
195
|
+
targets.push({
|
|
196
|
+
topic: group.topic,
|
|
197
|
+
path: join(this.root, "refs", `${group.topic}.md`),
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
return targets;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Regenerate every bundle through the ArtifactWriter (plan + apply).
|
|
204
|
+
* The only call site of `apply()` outside `kevin_approve` — D6-01's
|
|
205
|
+
* single write FUNCTION with two constrained targets: `kevin_approve`
|
|
206
|
+
* reaches `agents_md_path`, this module reaches `~/.opencode-kevin`
|
|
207
|
+
* only (D6-07; enforced by K6-020).
|
|
208
|
+
*/
|
|
209
|
+
materialize(writer) {
|
|
210
|
+
const pending = [];
|
|
211
|
+
const rows = this.curatedRows();
|
|
212
|
+
const skillBody = renderRows(rows);
|
|
213
|
+
if (skillBody !== "") {
|
|
214
|
+
pending.push({
|
|
215
|
+
topic: SKILL_TOPIC,
|
|
216
|
+
path: join(this.root, "skills", "project-knowledge.md"),
|
|
217
|
+
body: skillBody,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
for (const group of this.groupByTopic(rows)) {
|
|
221
|
+
const body = renderRows(group.rows);
|
|
222
|
+
if (body === "")
|
|
223
|
+
continue;
|
|
224
|
+
pending.push({
|
|
225
|
+
topic: group.topic,
|
|
226
|
+
path: join(this.root, "refs", `${group.topic}.md`),
|
|
227
|
+
body,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
return pending.map((bundle) => ({
|
|
231
|
+
topic: bundle.topic,
|
|
232
|
+
path: bundle.path,
|
|
233
|
+
outcome: writer.apply(writer.plan(bundle.path, bundle.body)),
|
|
234
|
+
}));
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=Materializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Materializer.js","sourceRoot":"","sources":["../../plugin/Materializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,16 @@ export interface Memory {
|
|
|
43
43
|
/** v0.5.0 (K5-010 / plan §5.3, D5-02) — human judgement counters,
|
|
44
44
|
* folded into confidence by computeConfidence. */
|
|
45
45
|
feedbackPositive?: number;
|
|
46
|
+
/** v0.6.0 (K6-011 / plan §5.4) — curation state: curated memories have
|
|
47
|
+
* been written to AGENTS.md and are excluded from new candidates. */
|
|
48
|
+
curated?: boolean;
|
|
49
|
+
/** v0.6.0 (K6-011 / plan §5.4) — when the memory was curated (ISO time). */
|
|
50
|
+
curatedAt?: string | null;
|
|
51
|
+
/** v0.6.0 (K6-011 / plan §5.3) — deterministic inferability verdict from
|
|
52
|
+
* `inferability.classify()`; `null` = unknown, never collapsed. */
|
|
53
|
+
inferable?: "inferable" | "non_inferable" | null;
|
|
54
|
+
/** v0.5.0 (K5-010 / plan §5.3, D5-02) — human judgement counters,
|
|
55
|
+
* folded into confidence by computeConfidence. */
|
|
46
56
|
feedbackNegative?: number;
|
|
47
57
|
}
|
|
48
58
|
export interface SaveInput {
|
|
@@ -139,7 +149,16 @@ export declare class MemoryService {
|
|
|
139
149
|
private hasRecurrenceColumn;
|
|
140
150
|
private _hasRecurrenceColumn;
|
|
141
151
|
private hasIgnoredColumn;
|
|
152
|
+
private hasCuratedColumn;
|
|
142
153
|
save(input: SaveInput): string;
|
|
154
|
+
/**
|
|
155
|
+
* v0.6.0 (K6-011 / plan §5.4) — mark memories as curated. Batch in a
|
|
156
|
+
* single statement with an `IN` clause; do not loop. Returns the number
|
|
157
|
+
* of rows matched by the statement (not only rows whose value changed):
|
|
158
|
+
* a second call with the same ids re-matches them, so the caller must
|
|
159
|
+
* re-filter the id list (e.g. by `curated = 0`) to observe 0.
|
|
160
|
+
*/
|
|
161
|
+
markCurated(ids: readonly string[], at: string): number;
|
|
143
162
|
getById(id: string): Memory | null;
|
|
144
163
|
/**
|
|
145
164
|
* v0.4.0 (K4-016) — most recent ACTIVE memory for a fingerprint,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { deterministicFixLine } from "./LessonFixer.js";
|
|
2
2
|
import { computeConfidence } from "./confidence.js";
|
|
3
3
|
import { fingerprint as computeFingerprint } from "./fingerprint.js";
|
|
4
|
+
import { classify } from "./inferability.js";
|
|
4
5
|
import { toMatchClause, tokenizeQuery } from "./query-tokenizer.js";
|
|
5
6
|
import { uuidv7 } from "./uuid.js";
|
|
6
7
|
const MAX_SNIPPET_CHARS = 200;
|
|
@@ -74,31 +75,56 @@ const MEMORY_ROW_SELECT = `id, type, content, scope, relevance_score, source_too
|
|
|
74
75
|
* v0.5.0 (K5-008/009 / plan §5.6) — cached per-store probe for the 006-only
|
|
75
76
|
* `ignored` column (pre-006 DBs must not reference it). Shared by the
|
|
76
77
|
* retrieval filter, the row SELECT, and the save() ignored stamp.
|
|
78
|
+
* v0.6.0 (K6-001a) — positive-only caching: a successful probe is cached,
|
|
79
|
+
* a failed probe is NOT. A Store migrated in place heals on the next call.
|
|
77
80
|
*/
|
|
78
81
|
const ignoredColumnCache = new WeakMap();
|
|
79
82
|
function hasIgnoredColumn(store) {
|
|
80
83
|
const cached = ignoredColumnCache.get(store);
|
|
81
|
-
if (cached
|
|
82
|
-
return
|
|
84
|
+
if (cached === true)
|
|
85
|
+
return true;
|
|
83
86
|
try {
|
|
84
87
|
store.prepare("SELECT ignored FROM memories LIMIT 1").get();
|
|
85
88
|
ignoredColumnCache.set(store, true);
|
|
86
89
|
return true;
|
|
87
90
|
}
|
|
88
91
|
catch {
|
|
89
|
-
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* v0.6.0 (K6-011 / plan §5.4) — cached per-store probe for the 007-only
|
|
97
|
+
* `curated` column (pre-007 DBs must not reference it). Same positive-only
|
|
98
|
+
* caching discipline as `ignored` (K6-001a): a successful probe is cached,
|
|
99
|
+
* a failed probe is NOT.
|
|
100
|
+
*/
|
|
101
|
+
const curatedColumnCache = new WeakMap();
|
|
102
|
+
function hasCuratedColumn(store) {
|
|
103
|
+
const cached = curatedColumnCache.get(store);
|
|
104
|
+
if (cached === true)
|
|
105
|
+
return true;
|
|
106
|
+
try {
|
|
107
|
+
store.prepare("SELECT curated FROM memories LIMIT 1").get();
|
|
108
|
+
curatedColumnCache.set(store, true);
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
90
112
|
return false;
|
|
91
113
|
}
|
|
92
114
|
}
|
|
93
115
|
/**
|
|
94
116
|
* v0.5.0 (K5-009 / plan §5.3) — the 006-only columns are appended when the
|
|
95
117
|
* migration has run (same probe as the `ignored = 0` retrieval filter).
|
|
118
|
+
* v0.6.0 (K6-011) — the 007-only curation columns are appended likewise.
|
|
96
119
|
*/
|
|
97
120
|
function rowSelect(store) {
|
|
98
|
-
|
|
121
|
+
const base = hasIgnoredColumn(store)
|
|
99
122
|
? `${MEMORY_ROW_SELECT}, ignored, superseded_by,
|
|
100
123
|
feedback_positive, feedback_negative`
|
|
101
124
|
: MEMORY_ROW_SELECT;
|
|
125
|
+
return hasCuratedColumn(store)
|
|
126
|
+
? `${base}, curated, curated_at, inferable`
|
|
127
|
+
: base;
|
|
102
128
|
}
|
|
103
129
|
function mapRow(row, score) {
|
|
104
130
|
const mem = {
|
|
@@ -133,6 +159,18 @@ function mapRow(row, score) {
|
|
|
133
159
|
// v0.5.0 (K5-010 / plan §5.3) — human judgement counters.
|
|
134
160
|
feedbackPositive: row.feedback_positive ?? 0,
|
|
135
161
|
feedbackNegative: row.feedback_negative ?? 0,
|
|
162
|
+
// v0.6.0 (K6-011 / plan §5.4) — curation state and the deterministic
|
|
163
|
+
// inferability verdict (absent on pre-007 rows). `NULL` stays `null`
|
|
164
|
+
// — never collapsed, the Curator predicate is `inferable != 1`.
|
|
165
|
+
curated: row.curated === undefined ? undefined : row.curated === 1,
|
|
166
|
+
curatedAt: row.curated_at ?? null,
|
|
167
|
+
inferable: row.inferable === undefined
|
|
168
|
+
? undefined
|
|
169
|
+
: row.inferable === 1
|
|
170
|
+
? "inferable"
|
|
171
|
+
: row.inferable === 0
|
|
172
|
+
? "non_inferable"
|
|
173
|
+
: null,
|
|
136
174
|
};
|
|
137
175
|
if (score !== undefined) {
|
|
138
176
|
if (!mem.metadata)
|
|
@@ -157,6 +195,20 @@ function stripUnbalancedQuotes(s) {
|
|
|
157
195
|
function isNotSearchable(mem) {
|
|
158
196
|
return (mem.metadata?.not_searchable === true);
|
|
159
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* v0.6.0 (K6-011 / plan §5.3) — the SQL-side inferable verdict: `1`
|
|
200
|
+
* (inferable), `0` (non_inferable), `NULL` (unknown). `NULL` stays NULL —
|
|
201
|
+
* collapsing it would silently exclude every unclassified memory from
|
|
202
|
+
* curation (the Curator predicate is `inferable != 1`).
|
|
203
|
+
*/
|
|
204
|
+
function persistInferable(type, content, metadata) {
|
|
205
|
+
const verdict = classify({ type, content, metadata });
|
|
206
|
+
if (verdict === "inferable")
|
|
207
|
+
return 1;
|
|
208
|
+
if (verdict === "non_inferable")
|
|
209
|
+
return 0;
|
|
210
|
+
return null;
|
|
211
|
+
}
|
|
160
212
|
export class MemoryService {
|
|
161
213
|
metrics;
|
|
162
214
|
constructor(store, metrics) {
|
|
@@ -190,6 +242,12 @@ export class MemoryService {
|
|
|
190
242
|
hasIgnoredColumn() {
|
|
191
243
|
return hasIgnoredColumn(this.store);
|
|
192
244
|
}
|
|
245
|
+
// v0.6.0 (K6-011 / plan §5.4) — cached column probe for pre-007 DBs
|
|
246
|
+
// (which lack `curated`); save() and the retrieval SELECTs must not
|
|
247
|
+
// reference the column there.
|
|
248
|
+
hasCuratedColumn() {
|
|
249
|
+
return hasCuratedColumn(this.store);
|
|
250
|
+
}
|
|
193
251
|
save(input) {
|
|
194
252
|
const scope = input.scope ?? "project";
|
|
195
253
|
const relevanceScore = input.relevanceScore ?? 0.5;
|
|
@@ -250,21 +308,57 @@ export class MemoryService {
|
|
|
250
308
|
try {
|
|
251
309
|
// v0.4.0 (BUG-008) — recurrence_count is only persisted when the
|
|
252
310
|
// column exists (migration 005); pre-005 DBs get the legacy shape.
|
|
311
|
+
// v0.6.0 (K6-011 / plan §5.3) — the inferable verdict is persisted
|
|
312
|
+
// on insert when the column exists (migration 007). The column
|
|
313
|
+
// list is assembled so every migration level gets exactly its own
|
|
314
|
+
// shape: 005+ gains recurrence_count, 007+ gains inferable.
|
|
253
315
|
const withRecurrence = this.hasRecurrenceColumn();
|
|
254
|
-
const
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
316
|
+
const withCurated = this.hasCuratedColumn();
|
|
317
|
+
const columns = [
|
|
318
|
+
"id",
|
|
319
|
+
"type",
|
|
320
|
+
"content",
|
|
321
|
+
"scope",
|
|
322
|
+
"relevance_score",
|
|
323
|
+
"source_tool",
|
|
324
|
+
"source_session",
|
|
325
|
+
"metadata",
|
|
326
|
+
"expires_at",
|
|
327
|
+
"project_id",
|
|
328
|
+
"fingerprint",
|
|
329
|
+
"origin",
|
|
330
|
+
"evidence_count",
|
|
331
|
+
"last_verified_at",
|
|
332
|
+
"status",
|
|
333
|
+
];
|
|
334
|
+
const params = [
|
|
335
|
+
id,
|
|
336
|
+
input.type,
|
|
337
|
+
input.content,
|
|
338
|
+
scope,
|
|
339
|
+
relevanceScore,
|
|
340
|
+
input.sourceTool ?? null,
|
|
341
|
+
input.sourceSession ?? null,
|
|
342
|
+
metadata,
|
|
343
|
+
expiresAt,
|
|
344
|
+
projectId,
|
|
345
|
+
fp,
|
|
346
|
+
origin,
|
|
347
|
+
input.evidenceCount ?? 0,
|
|
348
|
+
input.lastVerifiedAt ?? null,
|
|
349
|
+
status,
|
|
350
|
+
];
|
|
351
|
+
if (withRecurrence) {
|
|
352
|
+
columns.push("recurrence_count");
|
|
353
|
+
params.push(input.recurrenceCount ?? 0);
|
|
354
|
+
}
|
|
355
|
+
if (withCurated) {
|
|
356
|
+
columns.push("inferable");
|
|
357
|
+
params.push(persistInferable(input.type, input.content, input.metadata));
|
|
358
|
+
}
|
|
359
|
+
const insert = `INSERT INTO memories (${columns.join(", ")})
|
|
360
|
+
VALUES (${params.map(() => "?").join(", ")})`;
|
|
361
|
+
this.store.prepare(insert).run(...params);
|
|
268
362
|
return id;
|
|
269
363
|
}
|
|
270
364
|
catch (err) {
|
|
@@ -286,14 +380,43 @@ export class MemoryService {
|
|
|
286
380
|
LIMIT 1`)
|
|
287
381
|
.get(projectId, fp);
|
|
288
382
|
this.metrics?.incr("duplicate_suppressions", 1);
|
|
289
|
-
if (existing)
|
|
383
|
+
if (existing) {
|
|
384
|
+
// v0.6.0 (K6-011 / plan §5.3) — dedup path: the stored
|
|
385
|
+
// classification is left alone unless it is NULL; a NULL
|
|
386
|
+
// (unclassified error, e.g. a pre-007 insert) gets the fresh
|
|
387
|
+
// lazy verdict. Guarded so a re-run cannot overwrite a
|
|
388
|
+
// classification produced later by inferability.classify().
|
|
389
|
+
if (this.hasCuratedColumn()) {
|
|
390
|
+
this.store
|
|
391
|
+
.prepare("UPDATE memories SET inferable = ? WHERE id = ? AND inferable IS NULL")
|
|
392
|
+
.run(persistInferable(input.type, input.content, input.metadata), existing.id);
|
|
393
|
+
}
|
|
290
394
|
return existing.id;
|
|
395
|
+
}
|
|
291
396
|
// Defensive: if the unique fired but the lookup returns nothing
|
|
292
397
|
// (concurrent delete race), fall through and rethrow rather than
|
|
293
398
|
// fabricate an id.
|
|
294
399
|
throw err;
|
|
295
400
|
}
|
|
296
401
|
}
|
|
402
|
+
/**
|
|
403
|
+
* v0.6.0 (K6-011 / plan §5.4) — mark memories as curated. Batch in a
|
|
404
|
+
* single statement with an `IN` clause; do not loop. Returns the number
|
|
405
|
+
* of rows matched by the statement (not only rows whose value changed):
|
|
406
|
+
* a second call with the same ids re-matches them, so the caller must
|
|
407
|
+
* re-filter the id list (e.g. by `curated = 0`) to observe 0.
|
|
408
|
+
*/
|
|
409
|
+
markCurated(ids, at) {
|
|
410
|
+
if (ids.length === 0)
|
|
411
|
+
return 0;
|
|
412
|
+
const placeholders = ids.map(() => "?").join(", ");
|
|
413
|
+
this.store
|
|
414
|
+
.prepare(`UPDATE memories SET curated = 1, curated_at = ?
|
|
415
|
+
WHERE id IN (${placeholders})`)
|
|
416
|
+
.run(at, ...ids);
|
|
417
|
+
const row = this.store.prepare("SELECT changes() AS n").get();
|
|
418
|
+
return Number(row.n);
|
|
419
|
+
}
|
|
297
420
|
getById(id) {
|
|
298
421
|
const row = this.store
|
|
299
422
|
.prepare(`SELECT ${rowSelect(this.store)}
|
|
@@ -462,6 +585,10 @@ export class MemoryService {
|
|
|
462
585
|
if (this.hasIgnoredColumn()) {
|
|
463
586
|
sql += ", ignored, superseded_by, feedback_positive, feedback_negative";
|
|
464
587
|
}
|
|
588
|
+
// v0.6.0 (K6-011) — 007-only curation columns, appended when present.
|
|
589
|
+
if (this.hasCuratedColumn()) {
|
|
590
|
+
sql += ", curated, curated_at, inferable";
|
|
591
|
+
}
|
|
465
592
|
sql += `
|
|
466
593
|
FROM memories
|
|
467
594
|
WHERE (expires_at IS NULL OR expires_at > datetime('now'))`;
|
|
@@ -497,6 +624,10 @@ export class MemoryService {
|
|
|
497
624
|
sql +=
|
|
498
625
|
", m.ignored, m.superseded_by, m.feedback_positive, m.feedback_negative";
|
|
499
626
|
}
|
|
627
|
+
// v0.6.0 (K6-011) — 007-only curation columns, appended when present.
|
|
628
|
+
if (this.hasCuratedColumn()) {
|
|
629
|
+
sql += ", m.curated, m.curated_at, m.inferable";
|
|
630
|
+
}
|
|
500
631
|
sql += `,
|
|
501
632
|
bm25(memories_fts) AS score
|
|
502
633
|
FROM memories_fts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryService.js","sourceRoot":"","sources":["../../plugin/MemoryService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MemoryService.js","sourceRoot":"","sources":["../../plugin/MemoryService.ts"],"names":[],"mappings":"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"}
|