@jmtrin/opencode-kevin 0.4.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 -360
- package/dist/migrations/006_v05_glassbox.sql +118 -0
- package/dist/migrations/007_v06_pull.sql +145 -0
- package/dist/plugin/Archiver.d.ts +42 -0
- package/dist/plugin/Archiver.js +99 -0
- package/dist/plugin/Archiver.js.map +1 -0
- 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 +87 -0
- package/dist/plugin/ContextInjector.js +212 -44
- 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.d.ts +67 -0
- package/dist/plugin/Feedback.js +138 -0
- package/dist/plugin/Feedback.js.map +1 -0
- package/dist/plugin/InjectionLedger.d.ts +9 -2
- package/dist/plugin/InjectionLedger.js +63 -9
- package/dist/plugin/InjectionLedger.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 +38 -0
- package/dist/plugin/MemoryService.js +265 -30
- package/dist/plugin/MemoryService.js.map +1 -1
- package/dist/plugin/Migrate.js +41 -0
- package/dist/plugin/Migrate.js.map +1 -1
- package/dist/plugin/QualityGate.d.ts +53 -0
- package/dist/plugin/QualityGate.js +50 -8
- package/dist/plugin/QualityGate.js.map +1 -1
- package/dist/plugin/Retrospective.d.ts +1 -0
- package/dist/plugin/Retrospective.js +24 -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/confidence.d.ts +3 -1
- package/dist/plugin/confidence.js +14 -2
- package/dist/plugin/confidence.js.map +1 -1
- 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 +371 -0
- 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 +95 -0
- package/dist/plugin/kevin_audit.js +233 -0
- package/dist/plugin/kevin_audit.js.map +1 -0
- 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/kevin_why.js +23 -2
- package/dist/plugin/kevin_why.js.map +1 -1
- package/dist/plugin/metrics.d.ts +32 -1
- package/dist/plugin/metrics.js +86 -2
- package/dist/plugin/metrics.js.map +1 -1
- package/dist/plugin/replay-types.d.ts +327 -0
- package/dist/plugin/replay-types.js +65 -0
- package/dist/plugin/replay-types.js.map +1 -0
- package/dist/plugin/replay.d.ts +36 -0
- package/dist/plugin/replay.js +203 -0
- package/dist/plugin/replay.js.map +1 -0
- package/migrations/006_v05_glassbox.sql +118 -0
- package/migrations/007_v06_pull.sql +145 -0
- package/package.json +3 -2
|
@@ -1,11 +1,45 @@
|
|
|
1
|
-
import { QualityGate } from "./QualityGate.js";
|
|
1
|
+
import { QualityGate, } from "./QualityGate.js";
|
|
2
2
|
import { formatMemories, formatMemorySnippets } from "./memory-format.js";
|
|
3
3
|
import { estimateTokens } from "./metrics.js";
|
|
4
4
|
import { STOP_WORDS } from "./query-tokenizer.js";
|
|
5
5
|
export const QUALITY_GATE_SETTING = "quality_gate_enabled";
|
|
6
6
|
export const SNIPPET_INJECTION_SETTING = "lesson_snippet_injection";
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* v0.6.0 (K6-023 / plan §5.8) — the effective pre-prompt budget shared by
|
|
9
|
+
* `ContextInjector.prePromptCap()` and `kevin_audit`'s channels block
|
|
10
|
+
* (budget_tokens). Single source of truth for the K6-021 clamp:
|
|
11
|
+
* default 400 when the raw value is missing/non-numeric, clamped to
|
|
12
|
+
* [0, 4000]; 0 means "push off".
|
|
13
|
+
*/
|
|
14
|
+
export function effectivePrePromptCap(raw) {
|
|
15
|
+
const n = Number(raw);
|
|
16
|
+
if (!Number.isFinite(n))
|
|
17
|
+
return 400;
|
|
18
|
+
return Math.min(4000, Math.max(0, Math.round(n)));
|
|
19
|
+
}
|
|
20
|
+
// v0.4.0 default pre-prompt budget. v0.5.0 (K5-017 / plan §8.11, D5-11):
|
|
21
|
+
// kept as the compile-time fallback, but the EFFECTIVE cap is read at call
|
|
22
|
+
// time from the `pre_prompt_budget_tokens` setting. v0.6.0 (K6-021 / plan
|
|
23
|
+
// §5.8): the setting's default becomes "400" and the lower clamp bound
|
|
24
|
+
// drops to 0 (off) — the confound fix in K5-005 showed a large share of
|
|
25
|
+
// injections are `inconclusive`, and the roadmap's kill criterion K1
|
|
26
|
+
// requires "off" to be a reachable, supported configuration.
|
|
27
|
+
const SYSTEM_TRANSFORM_TOKENS = 900;
|
|
8
28
|
const COMPACTING_TOKENS = 2000;
|
|
29
|
+
// v0.5.0 (K5-007 / plan §8.10, D5-04) — every rejection reason maps 1:1 to
|
|
30
|
+
// an `injections_blocked_*` counter (principle 16: a rejection you did not
|
|
31
|
+
// count did not happen). Single lookup + null-check at the call site; the
|
|
32
|
+
// `ok` reason admits and must never increment anything.
|
|
33
|
+
const BLOCKED_METRIC = {
|
|
34
|
+
ok: null,
|
|
35
|
+
// v0.6.0 (K6-022 / plan §5.8) — sixth reason, sixth counter.
|
|
36
|
+
low_confidence: "injections_blocked_confidence",
|
|
37
|
+
seen_this_session: "injections_blocked_seen",
|
|
38
|
+
ignored: "injections_blocked_ignored",
|
|
39
|
+
not_active: "injections_blocked_stale",
|
|
40
|
+
recurrence: "injections_blocked_recurrence",
|
|
41
|
+
weak: "injections_blocked_weak",
|
|
42
|
+
};
|
|
9
43
|
function isWordChar(ch) {
|
|
10
44
|
return /[a-z0-9áéíóúüñ]/i.test(ch);
|
|
11
45
|
}
|
|
@@ -142,19 +176,47 @@ Consider adding this convention to AGENTS.md:
|
|
|
142
176
|
* `QualityGate.canInject` (session seen-set + recurrence + strength),
|
|
143
177
|
* and each admitted memory is recorded in the `InjectionLedger`
|
|
144
178
|
* (plan §5.2 — one row per injected memory).
|
|
179
|
+
*
|
|
180
|
+
* v0.5.0 (K5-014 / plan §8.10) — the pipeline is decomposed into
|
|
181
|
+
* `fetchSlice` (ranked retrieval + budget overflow) + `evaluate`
|
|
182
|
+
* (pure gate verdicts) + this orchestrator, so the read-only `plan()`
|
|
183
|
+
* can mirror it without any side effect (D5-08).
|
|
145
184
|
*/
|
|
146
|
-
inject(query, tag, cap, metricKey, sessionId
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
185
|
+
inject(query, tag, cap, metricKey, sessionId,
|
|
186
|
+
// v0.5.0 (K5-007 / plan §8.10, D5-08) — dry-run mode (kevin_trace)
|
|
187
|
+
// must never move a counter, not even the injections_blocked_* ones.
|
|
188
|
+
dryRun = false) {
|
|
189
|
+
const memories = this.fetchSlice(query, cap, tag);
|
|
190
|
+
if (memories.length === 0)
|
|
191
|
+
return "";
|
|
192
|
+
const admitted = this.admit(memories, sessionId, dryRun);
|
|
193
|
+
if (admitted.length === 0)
|
|
194
|
+
return "";
|
|
195
|
+
const block = this.format(admitted, tag);
|
|
196
|
+
this.recordInjections(admitted, sessionId, tag, block);
|
|
197
|
+
this.metrics?.incr(metricKey, estimateTokens(block));
|
|
198
|
+
return block;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* v0.5.0 (K5-014 / plan §8.10) — the ranked-retrieval stage shared by
|
|
202
|
+
* `inject` and `plan`. With `dry = true` it is a strict read:
|
|
203
|
+
*
|
|
204
|
+
* - the probe fetch never bumps (BUG-016), like the live path;
|
|
205
|
+
* - the overflow retry ALSO fetches with `bump: false` (the live path
|
|
206
|
+
* lets the retry fetch bump once — that is the only difference);
|
|
207
|
+
* - the no-retry bump is skipped.
|
|
208
|
+
*
|
|
209
|
+
* This is what lets `plan()` predict the EXACT slice the live path
|
|
210
|
+
* would inject without mutating a single relevance score.
|
|
211
|
+
*/
|
|
212
|
+
fetchSlice(query, cap, tag, dry = false) {
|
|
151
213
|
let memories = this.memoryService.getRelevant({
|
|
152
214
|
query,
|
|
153
215
|
maxTokens: cap,
|
|
154
216
|
bump: false,
|
|
155
217
|
});
|
|
156
218
|
if (memories.length === 0)
|
|
157
|
-
return
|
|
219
|
+
return [];
|
|
158
220
|
const firstBlock = this.format(memories, tag);
|
|
159
221
|
const aggregateTokens = estimateTokens(firstBlock);
|
|
160
222
|
const firstRowProtect = memories[0]
|
|
@@ -168,55 +230,98 @@ Consider adding this convention to AGENTS.md:
|
|
|
168
230
|
memories = this.memoryService.getRelevant({
|
|
169
231
|
query,
|
|
170
232
|
maxTokens: lowerCap,
|
|
233
|
+
bump: dry ? false : undefined,
|
|
171
234
|
});
|
|
172
|
-
if (memories.length === 0)
|
|
173
|
-
return "";
|
|
174
235
|
}
|
|
175
|
-
else {
|
|
236
|
+
else if (!dry) {
|
|
176
237
|
// No retry: the probe slice IS the injected slice — bump it
|
|
177
238
|
// exactly once here.
|
|
178
239
|
this.memoryService.bumpRelevance(memories.map((m) => m.id));
|
|
179
240
|
}
|
|
180
|
-
|
|
181
|
-
if (admitted.length === 0)
|
|
182
|
-
return "";
|
|
183
|
-
const block = this.format(admitted, tag);
|
|
184
|
-
this.recordInjections(admitted, sessionId, tag, block);
|
|
185
|
-
this.metrics?.incr(metricKey, estimateTokens(block));
|
|
186
|
-
return block;
|
|
241
|
+
return memories;
|
|
187
242
|
}
|
|
188
243
|
/**
|
|
189
|
-
* v0.
|
|
190
|
-
*
|
|
191
|
-
* seen-set
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
* class had only re-derived from `metadata.dispatch`:
|
|
196
|
-
* - dispatched code → strong + actionable (rescued errorType);
|
|
197
|
-
* - generic fallback suggestion + no code → weak, NOT actionable
|
|
198
|
-
* (the generic-suggestion ban is now enforced even for legacy
|
|
199
|
-
* lessons without dispatch metadata, as long as the `Suggestion:`
|
|
200
|
-
* text is available);
|
|
201
|
-
* - specific suggestion without code → strong + actionable;
|
|
202
|
-
* - no `Suggestion:` text at all (agent-saved note) → strong +
|
|
203
|
-
* actionable — the agent explicitly asked to remember it;
|
|
204
|
-
* - causal patterns (type='pattern') → always strong + actionable:
|
|
205
|
-
* they are the FIXED form of a fingerprint (K4-025).
|
|
244
|
+
* v0.5.0 (K5-014 / plan §8.10, D5-08) — PUBLIC read-only prediction of
|
|
245
|
+
* what `inject` WOULD do for a query: same retrieval, same gate, zero
|
|
246
|
+
* side effects. Never moves a counter, never writes the seen-set, never
|
|
247
|
+
* bumps relevance, never records ledger rows. `kevin_trace` (K5-015)
|
|
248
|
+
* surfaces this to the agent; tests freeze the clock + settings around
|
|
249
|
+
* it.
|
|
206
250
|
*/
|
|
207
|
-
|
|
251
|
+
plan(query, options = {}) {
|
|
252
|
+
const tag = options.tag ?? "context";
|
|
253
|
+
const cap = options.cap ??
|
|
254
|
+
(tag === "memory" ? COMPACTING_TOKENS : this.prePromptCap());
|
|
255
|
+
const sessionId = options.sessionId ?? "";
|
|
256
|
+
const memories = this.fetchSlice(query, cap, tag, true);
|
|
257
|
+
const { verdicts } = this.evaluate(memories, sessionId);
|
|
258
|
+
const admitted = [];
|
|
259
|
+
const blocked = [];
|
|
260
|
+
const admittedMemories = [];
|
|
261
|
+
for (const v of verdicts) {
|
|
262
|
+
const base = {
|
|
263
|
+
id: v.memory.id,
|
|
264
|
+
type: v.memory.type,
|
|
265
|
+
tokens: estimateTokens(v.memory.content),
|
|
266
|
+
};
|
|
267
|
+
if (v.allowed) {
|
|
268
|
+
admitted.push({ ...base, decision: "admitted" });
|
|
269
|
+
admittedMemories.push(v.memory);
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
blocked.push({
|
|
273
|
+
...base,
|
|
274
|
+
decision: "blocked",
|
|
275
|
+
reason: v.reason,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
const wouldInject = admitted.length > 0;
|
|
280
|
+
const totalTokens = wouldInject
|
|
281
|
+
? estimateTokens(this.format(admittedMemories, tag))
|
|
282
|
+
: 0;
|
|
283
|
+
return {
|
|
284
|
+
query,
|
|
285
|
+
tag,
|
|
286
|
+
cap,
|
|
287
|
+
would_inject: wouldInject,
|
|
288
|
+
total_tokens: totalTokens,
|
|
289
|
+
admitted,
|
|
290
|
+
blocked,
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* v0.5.0 (K5-014 / plan §8.10) — PURE gate evaluation shared by `admit`
|
|
295
|
+
* (live path) and `plan` (read-only path): returns the verdict for every
|
|
296
|
+
* candidate plus the seen-set as it WOULD look afterwards. Never writes
|
|
297
|
+
* state — the caller decides whether to persist.
|
|
298
|
+
*/
|
|
299
|
+
evaluate(memories, sessionId) {
|
|
208
300
|
const qualityGateEnabled = this.memoryService.getSetting(QUALITY_GATE_SETTING, "1") === "1";
|
|
209
|
-
|
|
301
|
+
// v0.6.0 (K6-022 / plan §5.8) — the floor is read ONCE per
|
|
302
|
+
// plan/inject call (this method is the shared gate evaluation),
|
|
303
|
+
// never per memory. A non-numeric setting degrades to undefined,
|
|
304
|
+
// which disables the branch for every memory this call.
|
|
305
|
+
const rawFloor = this.memoryService.getSetting("injection_confidence_floor", "0.6");
|
|
306
|
+
const floor = Number(rawFloor);
|
|
307
|
+
const confidenceFloor = Number.isFinite(floor) ? floor : undefined;
|
|
308
|
+
const seen = new Set(this.seenBySession.get(sessionId) ?? []);
|
|
210
309
|
const recurrences = this.ledger?.postInjectionRecurrencesFor(sessionId) ??
|
|
211
310
|
new Map();
|
|
212
|
-
const
|
|
311
|
+
const verdicts = [];
|
|
213
312
|
for (const m of memories) {
|
|
214
313
|
const q = this.lessonQuality(m);
|
|
215
|
-
|
|
314
|
+
const verdict = QualityGate.canInjectVerdict({
|
|
216
315
|
id: m.id,
|
|
217
316
|
status: m.status ?? undefined,
|
|
218
317
|
strength: q.strength,
|
|
219
318
|
isActionable: q.isActionable,
|
|
319
|
+
// v0.5.0 (K5-009) — the `ignored` flag is now a first-class
|
|
320
|
+
// Memory field via mapRow (D5-07).
|
|
321
|
+
ignored: m.ignored === true,
|
|
322
|
+
// v0.6.0 (K6-022) — the memory's computed confidence
|
|
323
|
+
// (may be null for rows without evidence).
|
|
324
|
+
confidence: m.confidence ?? undefined,
|
|
220
325
|
}, {
|
|
221
326
|
seenThisSession: seen,
|
|
222
327
|
// v0.4.0 (K4-025) — plan §5.1 rule 4: a causal pattern
|
|
@@ -230,12 +335,69 @@ Consider adding this convention to AGENTS.md:
|
|
|
230
335
|
: m.fingerprint
|
|
231
336
|
? (recurrences.get(m.fingerprint) ?? 0)
|
|
232
337
|
: 0,
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
338
|
+
confidenceFloor,
|
|
339
|
+
}, qualityGateEnabled);
|
|
340
|
+
verdicts.push({ ...verdict, memory: m });
|
|
341
|
+
}
|
|
342
|
+
return { verdicts, seen };
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* v0.5.0 (K5-017 / plan §8.11, D5-11) — the effective pre-prompt cap,
|
|
346
|
+
* read at call time from `pre_prompt_budget_tokens` (seeded "900" by
|
|
347
|
+
* migration 006). Clamped to [100, 4000]; a non-numeric value falls
|
|
348
|
+
* back to 900. `kevin_trace` reports the value used via `plan().cap`.
|
|
349
|
+
*
|
|
350
|
+
* v0.6.0 (K6-021 / plan §5.8) — default becomes "400" and the lower
|
|
351
|
+
* clamp bound drops to **0**: the roadmap's kill criterion K1 prescribes
|
|
352
|
+
* cutting the push budget to zero when coverage is poor, and v0.5's
|
|
353
|
+
* [100, 4000] clamp made that response unimplementable. A non-numeric
|
|
354
|
+
* value falls back to 400. `onSystemTransform` treats 0 as off and
|
|
355
|
+
* returns before any retrieval (see K6-021 acceptance).
|
|
356
|
+
*/
|
|
357
|
+
prePromptCap() {
|
|
358
|
+
return effectivePrePromptCap(this.memoryService.getSetting("pre_prompt_budget_tokens", "400"));
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* v0.4.0 (K4-017) — QualityGate admission: filters the ranked slice to
|
|
362
|
+
* memories that may be injected this session, updating the session
|
|
363
|
+
* seen-set.
|
|
364
|
+
*
|
|
365
|
+
* v0.5.0 (K5-007 / plan §5.2, D5-04) — uses `canInjectVerdict` and
|
|
366
|
+
* increments the matching `injections_blocked_*` counter for every
|
|
367
|
+
* rejection, so gate policy becomes measurable. When `dryRun === true`
|
|
368
|
+
* the counters stay untouched (D5-08) — and so does the seen-set
|
|
369
|
+
* (a dry run is a strict read, K5-014).
|
|
370
|
+
*
|
|
371
|
+
* BUG-005 — strength/actionability now go through the REAL
|
|
372
|
+
* `QualityGate.evaluate` semantics (plan §5.1 rules 1-2), which this
|
|
373
|
+
* class had only re-derived from `metadata.dispatch`:
|
|
374
|
+
* - dispatched code → strong + actionable (rescued errorType);
|
|
375
|
+
* - generic fallback suggestion + no code → weak, NOT actionable
|
|
376
|
+
* (the generic-suggestion ban is now enforced even for legacy
|
|
377
|
+
* lessons without dispatch metadata, as long as the `Suggestion:`
|
|
378
|
+
* text is available);
|
|
379
|
+
* - specific suggestion without code → strong + actionable;
|
|
380
|
+
* - no `Suggestion:` text at all (agent-saved note) → strong +
|
|
381
|
+
* actionable — the agent explicitly asked to remember it;
|
|
382
|
+
* - causal patterns (type='pattern') → always strong + actionable:
|
|
383
|
+
* they are the FIXED form of a fingerprint (K4-025).
|
|
384
|
+
*/
|
|
385
|
+
admit(memories, sessionId, dryRun = false) {
|
|
386
|
+
const { verdicts, seen } = this.evaluate(memories, sessionId);
|
|
387
|
+
const admitted = [];
|
|
388
|
+
for (const v of verdicts) {
|
|
389
|
+
if (v.allowed) {
|
|
390
|
+
admitted.push(v.memory);
|
|
391
|
+
seen.add(v.memory.id);
|
|
392
|
+
}
|
|
393
|
+
else if (!dryRun) {
|
|
394
|
+
const key = BLOCKED_METRIC[v.reason];
|
|
395
|
+
if (key)
|
|
396
|
+
this.metrics?.incr(key, 1);
|
|
236
397
|
}
|
|
237
398
|
}
|
|
238
|
-
|
|
399
|
+
if (!dryRun)
|
|
400
|
+
this.seenBySession.set(sessionId, seen);
|
|
239
401
|
return admitted;
|
|
240
402
|
}
|
|
241
403
|
/**
|
|
@@ -336,10 +498,16 @@ Consider adding this convention to AGENTS.md:
|
|
|
336
498
|
return tokens.join(" ");
|
|
337
499
|
}
|
|
338
500
|
onSystemTransform(input, output) {
|
|
501
|
+
// v0.6.0 (K6-021 / plan §5.8) — a cap of 0 means off: return before
|
|
502
|
+
// any retrieval, gate evaluation or metric write. "Off" must not
|
|
503
|
+
// run a hidden query and throw away the result.
|
|
504
|
+
const cap = this.prePromptCap();
|
|
505
|
+
if (cap === 0)
|
|
506
|
+
return;
|
|
339
507
|
const query = this.deriveQuery(input.messages);
|
|
340
508
|
if (!query)
|
|
341
509
|
return;
|
|
342
|
-
const block = this.inject(query, "context",
|
|
510
|
+
const block = this.inject(query, "context", cap, "tokens_injected_pre_prompt", input.sessionID ?? "");
|
|
343
511
|
if (block)
|
|
344
512
|
output.system.push(block);
|
|
345
513
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextInjector.js","sourceRoot":"","sources":["../../plugin/ContextInjector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAgB,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE3D,MAAM,CAAC,MAAM,yBAAyB,GAAG,0BAA0B,CAAC;AAyBpE,MAAM,uBAAuB,GAAG,IAAI,CAAC;AACrC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,SAAS,UAAU,CAAC,EAAU;IAC7B,OAAO,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,OAAe;IAC7C,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACpD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,OAAe;IACjD,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,CAAC;AAED,MAAM,OAAO,eAAe;IAQlB;IACA;IACA;IATD,mBAAmB,GAAG,CAAC,CAAC;IAChC,uEAAuE;IAC/D,mBAAmB,GAAkB,IAAI,CAAC;IAClD,iEAAiE;IAChD,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEhE,YACS,aAA4B,EAC5B,UAA0B,IAAI,EAC9B,SAAiC,IAAI;QAFrC,kBAAa,GAAb,aAAa,CAAe;QAC5B,YAAO,GAAP,OAAO,CAAuB;QAC9B,WAAM,GAAN,MAAM,CAA+B;IAC3C,CAAC;IAEJ;;;OAGG;IACH,gBAAgB,CAAC,SAAiB;QACjC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,KAAa,EAAE,SAAkB;QAC/C,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,mBAAmB,GAAG,SAAS,IAAI,IAAI,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,kBAAkB;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC3C,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE3B,MAAM,WAAW,GAChB,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAC;QAC3E,IAAI,KAAK,GAAkB,IAAI,CAAC;QAChC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC;gBAClB,KAAK,GAAG,EAAE,CAAC;gBACX,QAAQ,GAAG,CAAC,CAAC;YACd,CAAC;QACF,CAAC;QACD,MAAM,OAAO,GAAG,KAAK;YACpB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC;YACvD,CAAC,CAAC,IAAI,CAAC;QAER,mEAAmE;QACnE,6CAA6C;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO;4BACkB,KAAK;;oBAEb,CAAC;QACnB,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;aAC7B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACd,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;aAClC,IAAI,EAAE,CAAC;QACT,MAAM,GAAG,GACR,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;YAC9B,CAAC,CAAC,iBAAiB,OAAO,CAAC,OAAO,KAAK,QAAQ,iBAC7C,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IACvB,gBAAgB,GAAG,KAAK;YACzB,CAAC,CAAC,EAAE,CAAC;QAEN,OAAO;qBACY,OAAO,cAAc,QAAQ;EAChD,OAAO;;IAEL,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;oBACb,CAAC;IACpB,CAAC;IAED;;;OAGG;IACK,eAAe,CAAC,OAAe;QACtC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC1D,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1B,OAAO,GAAG,OAAO,CAAC,OAAO;aACvB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACd,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;aAClC,IAAI,EAAE,2CAA2C,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,MAAM,CACb,KAAa,EACb,GAAyB,EACzB,GAAW,EACX,SAAsE,EACtE,SAAiB;QAEjB,mEAAmE;QACnE,iEAAiE;QACjE,+DAA+D;QAC/D,2CAA2C;QAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;YAC7C,KAAK;YACL,SAAS,EAAE,GAAG;YACd,IAAI,EAAE,KAAK;SACX,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,eAAe,GAAI,QAAQ,CAAC,CAAC,CAAgC;YAClE,EAAE,OAAO,CAAC;QACX,MAAM,qBAAqB,GAAG,eAAe,KAAK,KAAK,CAAC;QACxD,IAAI,eAAe,GAAG,GAAG,GAAG,GAAG,IAAI,qBAAqB,EAAE,CAAC;YAC1D,6DAA6D;YAC7D,2DAA2D;YAC3D,8DAA8D;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;YACpD,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;gBACzC,KAAK;gBACL,SAAS,EAAE,QAAQ;aACnB,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;QACtC,CAAC;aAAM,CAAC;YACP,4DAA4D;YAC5D,qBAAqB;YACrB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACK,KAAK,CAAC,QAAkB,EAAE,SAAiB;QAClD,MAAM,kBAAkB,GACvB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,oBAAoB,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QACpE,MAAM,WAAW,GAChB,IAAI,CAAC,MAAM,EAAE,2BAA2B,CAAC,SAAS,CAAC;YACnD,IAAI,GAAG,EAAkB,CAAC;QAC3B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAChC,IACC,WAAW,CAAC,SAAS,CACpB;gBACC,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;gBAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,YAAY,EAAE,CAAC,CAAC,YAAY;aAC5B,EACD;gBACC,eAAe,EAAE,IAAI;gBACrB,uDAAuD;gBACvD,sDAAsD;gBACtD,uDAAuD;gBACvD,qDAAqD;gBACrD,sDAAsD;gBACtD,cAAc;gBACd,eAAe,EACd,CAAC,CAAC,IAAI,KAAK,SAAS;oBACnB,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,CAAC,WAAW;wBACd,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBACvC,CAAC,CAAC,CAAC;aACN,EACD,kBAAkB,CAClB,EACA,CAAC;gBACF,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC;QACF,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACK,aAAa,CAAC,CAAS;QAK9B,kEAAkE;QAClE,kCAAkC;QAClC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAChE,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAExB,CAAC;QACT,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC;QACxC,MAAM,UAAU,GAAG,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACzB,2DAA2D;YAC3D,yDAAyD;YACzD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAChE,CAAC;QACD,kEAAkE;QAClE,kEAAkE;QAClE,oDAAoD;QACpD,MAAM,SAAS,GAAG,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,WAAW,CAAC,QAAQ,CAC7B,EAAE,SAAS,EAAE,SAAS,IAAI,SAAS,EAAE,UAAU,EAAE,EACjD,QAAQ,EACR,SAAS,IAAI,SAAS,CACtB,CAAC;QACF,OAAO;YACN,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,IAAI,EAAE,CAAC,CAAC,QAAQ,KAAK,MAAM;SAC3B,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,gBAAgB,CACvB,QAAkB,EAClB,SAAiB,EACjB,GAAyB,EACzB,KAAa;QAEb,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO;QACjC,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAClB,QAAQ,EAAE,CAAC,CAAC,EAAE;gBACd,WAAW,EAAE,CAAC,CAAC,WAAqB;gBACpC,SAAS;gBACT,IAAI;gBACJ,MAAM,EAAE,SAAS;aACjB,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CACb,QAA2B,EAC3B,GAAyB;QAEzB,MAAM,UAAU,GACf,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,yBAAyB,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;QACvE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,GAAG,CAAC;YACJ,+DAA+D;YAC/D,0DAA0D;YAC1D,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAW,CAAC,CAAC,IAAI;SAC1C,CAAC,CAAC,CAAC;QACJ,OAAO,UAAU;YAChB,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,WAAW,CAAC,QAAuB;QAClC,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACjC,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACtC,MAAM;YACP,CAAC;QACF,CAAC;QACD,IAAI,CAAC,eAAe;YAAE,OAAO,EAAE,CAAC;QAEhC,MAAM,MAAM,GAAG,eAAe;aAC5B,WAAW,EAAE;aACb,KAAK,CAAC,KAAK,CAAC;aACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACpB,IAAI,UAAU,CAAC,EAAE,CAAC;oBAAE,GAAG,IAAI,EAAE,CAAC;YAC/B,CAAC;YACD,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,iBAAiB,CAChB,KAA2B,EAC3B,MAA6B;QAE7B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CACxB,KAAK,EACL,SAAS,EACT,uBAAuB,EACvB,4BAA4B,EAC5B,KAAK,CAAC,SAAS,IAAI,EAAE,CACrB,CAAC;QACF,IAAI,KAAK;YAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,KAAsB,EAAE,MAAwB;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CACxB,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,4BAA4B,EAC5B,KAAK,CAAC,SAAS,CACf,CAAC;QACF,IAAI,KAAK;YAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"ContextInjector.js","sourceRoot":"","sources":["../../plugin/ContextInjector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { type ArtifactWriter } from "./ArtifactWriter.js";
|
|
2
|
+
import type { MemoryService } from "./MemoryService.js";
|
|
3
|
+
import type { Store } from "./Store.js";
|
|
4
|
+
import type { Metrics } from "./metrics.js";
|
|
5
|
+
/**
|
|
6
|
+
* K6-012/013 — v0.6.0 pull — candidate selection, line rendering and the
|
|
7
|
+
* proposal lifecycle (plan §5.4/§5.5).
|
|
8
|
+
*
|
|
9
|
+
* Deliberately fs-free: this module holds NO filesystem capability — reads
|
|
10
|
+
* and writes are delegated to the `ArtifactWriter` at the call site (D6-01).
|
|
11
|
+
*/
|
|
12
|
+
export interface CurationCandidate {
|
|
13
|
+
readonly memoryId: string;
|
|
14
|
+
/** The single AGENTS.md bullet. */
|
|
15
|
+
readonly line: string;
|
|
16
|
+
readonly confidence: number;
|
|
17
|
+
/** e.g. "verified 3×, last 2026-08-04". */
|
|
18
|
+
readonly evidence: string;
|
|
19
|
+
}
|
|
20
|
+
export type ProposalKind = "agents_md" | "skill" | "reference";
|
|
21
|
+
export type ProposalStatus = "pending" | "approved" | "rejected" | "applied" | "superseded";
|
|
22
|
+
export type ProposalTransition = "approve" | "reject" | "apply" | "supersede";
|
|
23
|
+
/** Plan §5.4 — the row shape of §6's `curation_proposals` table, surfaced. */
|
|
24
|
+
export interface CurationProposal {
|
|
25
|
+
readonly id: string;
|
|
26
|
+
readonly kind: ProposalKind;
|
|
27
|
+
readonly targetPath: string;
|
|
28
|
+
readonly memoryIds: readonly string[];
|
|
29
|
+
readonly proposedText: string;
|
|
30
|
+
readonly diff: string;
|
|
31
|
+
readonly status: ProposalStatus;
|
|
32
|
+
readonly createdAt: string;
|
|
33
|
+
}
|
|
34
|
+
export declare function firstSentence(content: string): string;
|
|
35
|
+
export declare class Curator {
|
|
36
|
+
private readonly store;
|
|
37
|
+
private readonly memoryService;
|
|
38
|
+
private readonly projectId;
|
|
39
|
+
private readonly metrics;
|
|
40
|
+
constructor(store: Store, memoryService: MemoryService, projectId: string, metrics?: Metrics | null);
|
|
41
|
+
/**
|
|
42
|
+
* Plan §5.4 selection predicate — all clauses must hold, evaluated
|
|
43
|
+
* verbatim. The confidence floor cannot be expressed in SQL (it is the
|
|
44
|
+
* two-sided formula of `computeConfidence`), so the cheap clauses run
|
|
45
|
+
* in SQL and confidence is computed and filtered per row in JS.
|
|
46
|
+
*
|
|
47
|
+
* The floor is `confidence >= 0.6` where the feedback arm of D6-09 also
|
|
48
|
+
* clears it: `computeConfidence` credits one positive human verdict at
|
|
49
|
+
* 0.05 (K5-010), so a row with `feedback_positive = 1` and no causal
|
|
50
|
+
* evidence scores 0.55 — yet D6-09's warrant is "either the world
|
|
51
|
+
* verified it twice, or a human verified it once". The disjunction
|
|
52
|
+
* (K6-012 acceptance) is the floor's complement for the feedback arm.
|
|
53
|
+
*
|
|
54
|
+
* Ordered by `confidence DESC, updated_at DESC`, capped at 20 lines and
|
|
55
|
+
* 4000 characters of content, whichever binds first. The char budget
|
|
56
|
+
* counts the raw content length: rendered lines are truncated to 160
|
|
57
|
+
* chars, so a rendered-line budget could never bind before the line cap.
|
|
58
|
+
*/
|
|
59
|
+
candidates(limit?: number): CurationCandidate[];
|
|
60
|
+
/**
|
|
61
|
+
* Renders the block sorted by memory id (D6-10): confidence orders
|
|
62
|
+
* selection, id orders output. Adding one candidate to a set of ten
|
|
63
|
+
* must change exactly one line of the rendered block.
|
|
64
|
+
*/
|
|
65
|
+
renderBlock(candidates: CurationCandidate[]): string;
|
|
66
|
+
/**
|
|
67
|
+
* Plan §5.4 — strict dry run (D5-08): plan only, never write. Returns a
|
|
68
|
+
* pending proposal per call, or [] when no candidate clears the floor.
|
|
69
|
+
*
|
|
70
|
+
* The proposal is a whole-block proposal: the persisted `proposed_text`
|
|
71
|
+
* is the merged block (current block in the file + new candidate lines),
|
|
72
|
+
* so approving it replaces the file block with exactly what was reviewed.
|
|
73
|
+
* The current block is learned from `plan().before` — the Curator has no
|
|
74
|
+
* fs capability, the writer reads (D6-01). Both plan calls are
|
|
75
|
+
* deterministic, so a second propose() with unchanged inputs reproduces
|
|
76
|
+
* the persisted diff byte-identically.
|
|
77
|
+
*
|
|
78
|
+
* A new proposal supersedes prior pending (or rejected) rows for the
|
|
79
|
+
* same (project_id, kind, target_path) triple — §5.5's regeneration
|
|
80
|
+
* arrow. Rows are never deleted (the audit trail is append-only).
|
|
81
|
+
*
|
|
82
|
+
* The schema's `memory_id` column is singular while a whole-block
|
|
83
|
+
* proposal carries several ids; the contributing ids are stored joined
|
|
84
|
+
* by "," (uuidv7 ids contain no comma) and split on read.
|
|
85
|
+
*/
|
|
86
|
+
propose(kind: ProposalKind, writer: ArtifactWriter): CurationProposal[];
|
|
87
|
+
/**
|
|
88
|
+
* Plan §5.5 state machine, as explicit transitions with an exhaustive
|
|
89
|
+
* switch — an unknown transition or an illegal source state throws
|
|
90
|
+
* rather than silently no-oping. `decided_at` stamps approve/reject/
|
|
91
|
+
* supersede, `applied_at` stamps apply.
|
|
92
|
+
*/
|
|
93
|
+
transition(proposalId: string, transition: ProposalTransition): ProposalStatus;
|
|
94
|
+
/** Plan §5.6 target paths. agents_md is a setting; skill/reference live under ~/.opencode-kevin. */
|
|
95
|
+
private targetPathFor;
|
|
96
|
+
}
|