@jmtrin/opencode-kevin 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +108 -35
  2. package/dist/migrations/004_v03_knowledge.sql +138 -0
  3. package/dist/migrations/005_v04_signal.sql +57 -0
  4. package/dist/plugin/CausalChain.d.ts +22 -0
  5. package/dist/plugin/CausalChain.js +179 -0
  6. package/dist/plugin/CausalChain.js.map +1 -0
  7. package/dist/plugin/ContextInjector.d.ts +89 -1
  8. package/dist/plugin/ContextInjector.js +276 -71
  9. package/dist/plugin/ContextInjector.js.map +1 -1
  10. package/dist/plugin/InjectionLedger.d.ts +85 -0
  11. package/dist/plugin/InjectionLedger.js +189 -0
  12. package/dist/plugin/InjectionLedger.js.map +1 -0
  13. package/dist/plugin/LessonFixer.d.ts +44 -0
  14. package/dist/plugin/LessonFixer.js +46 -0
  15. package/dist/plugin/LessonFixer.js.map +1 -0
  16. package/dist/plugin/MemoryService.d.ts +123 -2
  17. package/dist/plugin/MemoryService.js +439 -31
  18. package/dist/plugin/MemoryService.js.map +1 -1
  19. package/dist/plugin/Migrate.js +22 -0
  20. package/dist/plugin/Migrate.js.map +1 -1
  21. package/dist/plugin/QualityGate.d.ts +71 -0
  22. package/dist/plugin/QualityGate.js +78 -0
  23. package/dist/plugin/QualityGate.js.map +1 -0
  24. package/dist/plugin/Reflector.d.ts +33 -0
  25. package/dist/plugin/Reflector.js +126 -32
  26. package/dist/plugin/Reflector.js.map +1 -1
  27. package/dist/plugin/Retrospective.js +10 -1
  28. package/dist/plugin/Retrospective.js.map +1 -1
  29. package/dist/plugin/ToolCallObserver.d.ts +1 -0
  30. package/dist/plugin/ToolCallObserver.js +16 -9
  31. package/dist/plugin/ToolCallObserver.js.map +1 -1
  32. package/dist/plugin/confidence.d.ts +6 -0
  33. package/dist/plugin/confidence.js +23 -0
  34. package/dist/plugin/confidence.js.map +1 -0
  35. package/dist/plugin/index.d.ts +5 -0
  36. package/dist/plugin/index.js +336 -44
  37. package/dist/plugin/index.js.map +1 -1
  38. package/dist/plugin/kevin_why.d.ts +23 -0
  39. package/dist/plugin/kevin_why.js +108 -0
  40. package/dist/plugin/kevin_why.js.map +1 -0
  41. package/dist/plugin/memory-format.d.ts +12 -0
  42. package/dist/plugin/memory-format.js +45 -5
  43. package/dist/plugin/memory-format.js.map +1 -1
  44. package/dist/plugin/metrics.d.ts +7 -1
  45. package/dist/plugin/metrics.js +19 -0
  46. package/dist/plugin/metrics.js.map +1 -1
  47. package/dist/plugin/okf-export.d.ts +3 -0
  48. package/dist/plugin/okf-export.js +127 -0
  49. package/dist/plugin/okf-export.js.map +1 -0
  50. package/dist/plugin/okf-import.d.ts +76 -0
  51. package/dist/plugin/okf-import.js +272 -0
  52. package/dist/plugin/okf-import.js.map +1 -0
  53. package/dist/plugin/query-tokenizer.d.ts +13 -0
  54. package/dist/plugin/query-tokenizer.js +86 -0
  55. package/dist/plugin/query-tokenizer.js.map +1 -0
  56. package/migrations/004_v03_knowledge.sql +138 -0
  57. package/migrations/005_v04_signal.sql +57 -0
  58. package/package.json +1 -1
@@ -3,7 +3,9 @@ import { homedir } from "node:os";
3
3
  import { dirname, join } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import { tool } from "@opencode-ai/plugin";
6
+ import { CausalChain } from "./CausalChain.js";
6
7
  import { ContextInjector } from "./ContextInjector.js";
8
+ import { InjectionLedger } from "./InjectionLedger.js";
7
9
  import { MemoryService, } from "./MemoryService.js";
8
10
  import { Migrate } from "./Migrate.js";
9
11
  import { PatternMiner } from "./PatternMiner.js";
@@ -11,10 +13,23 @@ import { ERROR_LINE_RE, Reflector, STRONG_ERROR_RE } from "./Reflector.js";
11
13
  import { Retrospective } from "./Retrospective.js";
12
14
  import { Store } from "./Store.js";
13
15
  import { ToolCallObserver } from "./ToolCallObserver.js";
14
- import { formatMemories } from "./memory-format.js";
15
- import { Metrics, estimateTokens } from "./metrics.js";
16
- const SYSTEM_TRANSFORM_TOKENS = 1500;
17
- const COMPACTING_TOKENS = 2000;
16
+ import { fingerprint } from "./fingerprint.js";
17
+ import { kevinWhy } from "./kevin_why.js";
18
+ import { Metrics } from "./metrics.js";
19
+ import { exportMarkdown, exportOkf } from "./okf-export.js";
20
+ import { importOkf } from "./okf-import.js";
21
+ /**
22
+ * v0.4.0 (K4-021) — settings surfaced by `kevin_config` (plan §8.8).
23
+ * Unknown keys are rejected on `set` unless `strict: false`.
24
+ */
25
+ export const KEVIN_CONFIG_KEYS = [
26
+ "quality_gate_enabled",
27
+ "lesson_snippet_injection",
28
+ "patternminer_enabled",
29
+ "cross_project_enabled",
30
+ "llm_reflection_enabled",
31
+ "tool_calls_dedup_enabled",
32
+ ];
18
33
  function resolveMigrationsDir() {
19
34
  const here = dirname(fileURLToPath(import.meta.url));
20
35
  return join(here, "..", "migrations");
@@ -31,16 +46,48 @@ export const KevinPlugin = async (input, options) => {
31
46
  const migrationsDir = opts.migrationsDir ?? resolveMigrationsDir();
32
47
  await new Migrate(store, migrationsDir).run();
33
48
  const metrics = new Metrics(store);
49
+ // v0.4.0 (K4-019): the plugin hooks expose no project field, so the
50
+ // project id is derived once from the plugin host's working directory
51
+ // (plan §5.7 fallback; D2-11 project scoping wired into the live path).
52
+ const projectId = fingerprint(process.cwd());
34
53
  const memoryService = new MemoryService(store, metrics);
35
54
  const observer = new ToolCallObserver(store, metrics);
36
- const reflector = new Reflector(memoryService, { throttleMs: opts.throttleMs }, metrics);
37
- const injector = new ContextInjector(memoryService, metrics);
55
+ // v0.3.0 fix Prepared UPDATE used by Reflector.onLinkError to stamp
56
+ // tool_calls.error_fingerprint with the stderr-based fingerprint the
57
+ // matching error memory uses. Closes the feedback-loop fingerprint
58
+ // mismatch (plan §B6.10 / bug #2): without this, the recurrence
59
+ // queries in boostPositiveReflectors / penalizeRecurringReflectors
60
+ // never match because tool_calls.fingerprint is keyed on
61
+ // `${tool}|${args}|${success}` (set by ToolCallObserver) while error
62
+ // memories use a hash of stderr/stdout (set by Reflector). The
63
+ // callback is a no-op for legacy rows without an id column.
64
+ const linkErrorStmt = store.prepare("UPDATE tool_calls SET error_fingerprint = ? WHERE id = ?");
65
+ const reflector = new Reflector(memoryService, {
66
+ throttleMs: opts.throttleMs,
67
+ onLinkError: (callID, fp) => {
68
+ linkErrorStmt.run(fp, callID);
69
+ },
70
+ }, metrics);
71
+ // v0.4.0 (K4-017): the single injection path. The inline transform/
72
+ // compacting logic was removed; the ContextInjector now owns the whole
73
+ // pipeline (QualityGate admission + snippet payload + ledger rows),
74
+ // so ledger and injector share the same store.
75
+ const ledger = new InjectionLedger(store, metrics);
76
+ const injector = new ContextInjector(memoryService, metrics, ledger);
38
77
  const retrospective = new Retrospective(store, memoryService, {
39
78
  dir: opts.retrospectivesDir,
40
79
  }, metrics);
41
80
  const patternMiner = new PatternMiner(store, memoryService, metrics);
81
+ const causalChain = new CausalChain(store, memoryService, metrics);
42
82
  let currentSessionId = null;
83
+ // BUG-011 — process-global last derived query. Cleared on
84
+ // `session.idle`; the per-session map below is the preferred source.
43
85
  let lastUserQuery = null;
86
+ // v0.4.0 (K4-018) — compaction may fire without a recent chat.message
87
+ // (auto-compact after a long tool turn, resumed sessions). Keep the
88
+ // last derived query PER SESSION so the compacting hook can always
89
+ // resolve a query for the session it runs in.
90
+ const lastUserQueryBySession = new Map();
44
91
  const pending = new Set();
45
92
  const toolCache = new Map();
46
93
  const TOOL_CACHE_MAX = 500;
@@ -84,6 +131,8 @@ export const KevinPlugin = async (input, options) => {
84
131
  exitCode: undefined,
85
132
  errorType,
86
133
  sessionId: sessionID,
134
+ callID,
135
+ projectId,
87
136
  }));
88
137
  }
89
138
  return {
@@ -91,7 +140,14 @@ export const KevinPlugin = async (input, options) => {
91
140
  kevin_save: tool({
92
141
  description: "Guarda una memoria en el conocimiento persistente de Kevin (error, pattern, decision o context).",
93
142
  args: {
94
- type: tool.schema.enum(["error", "pattern", "decision", "context"]),
143
+ type: tool.schema.enum([
144
+ "error",
145
+ "pattern",
146
+ "decision",
147
+ "context",
148
+ "rule",
149
+ "solution",
150
+ ]),
95
151
  content: tool.schema.string().min(1),
96
152
  scope: tool.schema.enum(["project", "session"]).default("project"),
97
153
  metadata: tool.schema
@@ -119,13 +175,24 @@ export const KevinPlugin = async (input, options) => {
119
175
  args: {
120
176
  query: tool.schema.string().min(1),
121
177
  type: tool.schema
122
- .enum(["error", "pattern", "decision", "context"])
178
+ .enum([
179
+ "error",
180
+ "pattern",
181
+ "decision",
182
+ "context",
183
+ "rule",
184
+ "solution",
185
+ ])
123
186
  .optional(),
124
187
  limit: tool.schema.number().int().positive().default(10),
125
188
  full: tool.schema
126
189
  .boolean()
127
190
  .optional()
128
191
  .describe("Cuando true, retorna el contenido completo (v0.1.x). Default false (slim)."),
192
+ evidence: tool.schema
193
+ .boolean()
194
+ .optional()
195
+ .describe("Cuando true, incluye confidence, evidence_count y last_verified_at en el payload slim (v0.3.0)."),
129
196
  },
130
197
  async execute(args) {
131
198
  const memories = memoryService.query({
@@ -133,6 +200,10 @@ export const KevinPlugin = async (input, options) => {
133
200
  type: args.type,
134
201
  limit: args.limit,
135
202
  full: args.full === true,
203
+ // BUG-001 — pass the flag through so the slim mapper
204
+ // can include the evidence fields (the old code cast
205
+ // SlimMemory rows to Memory and read undefined fields).
206
+ evidence: args.evidence === true,
136
207
  });
137
208
  const rows = args.full === true
138
209
  ? memories.map((m) => ({
@@ -141,13 +212,27 @@ export const KevinPlugin = async (input, options) => {
141
212
  content: m.content,
142
213
  scope: m.scope,
143
214
  }))
144
- : memories.map((m) => ({
145
- id: m.id,
146
- type: m.type,
147
- scope: m.scope,
148
- score: m.score,
149
- snippet: m.snippet,
150
- }));
215
+ : memories.map((m) => {
216
+ const base = {
217
+ id: m.id,
218
+ type: m.type,
219
+ scope: m.scope,
220
+ score: m.score,
221
+ snippet: m.snippet,
222
+ };
223
+ if (args.evidence === true) {
224
+ // SlimMemoryWithEvidence — carried by the
225
+ // mapper, no per-row getById needed.
226
+ const ev = m;
227
+ return {
228
+ ...base,
229
+ confidence: ev.confidence ?? null,
230
+ evidence_count: ev.evidence_count ?? null,
231
+ last_verified_at: ev.last_verified_at ?? null,
232
+ };
233
+ }
234
+ return base;
235
+ });
151
236
  return {
152
237
  title: "Resultados query",
153
238
  output: JSON.stringify(rows),
@@ -187,6 +272,15 @@ export const KevinPlugin = async (input, options) => {
187
272
  fingerprint: mem.fingerprint ?? null,
188
273
  origin: mem.origin ?? null,
189
274
  metadata: mem.metadata ?? null,
275
+ // BUG-010 — v0.3/v0.4 evidence fields so kevin_get
276
+ // is the full-fidelity read path (mapRow already
277
+ // computes confidence via computeConfidence).
278
+ confidence: mem.confidence ?? null,
279
+ evidence_count: mem.evidenceCount ?? null,
280
+ recurrence_count: mem.recurrenceCount ?? null,
281
+ last_verified_at: mem.lastVerifiedAt ?? null,
282
+ status: mem.status ?? "active",
283
+ fix_args: mem.fixArgs ?? null,
190
284
  }),
191
285
  };
192
286
  },
@@ -244,6 +338,26 @@ export const KevinPlugin = async (input, options) => {
244
338
  const memoriesReflector = byOrigin.reflector ?? 0;
245
339
  const memoriesAgent = byOrigin.agent ?? 0;
246
340
  const memoriesPattern = byOrigin.pattern ?? 0;
341
+ const memoriesCausal = byOrigin.causal ?? 0;
342
+ // v0.4.0 (K4-024): per-origin recurrence_count totals
343
+ // (plan §8.8 — honest negative-evidence breakdown).
344
+ // Best-effort: DBs pre-005 lack the column; the rest of
345
+ // the block must still work (same pattern as
346
+ // ledger.settle in session.idle).
347
+ let recurrenceByOrigin = {};
348
+ try {
349
+ const recRows = store
350
+ .prepare(`SELECT origin, SUM(recurrence_count) as c
351
+ FROM memories
352
+ GROUP BY origin`)
353
+ .all();
354
+ for (const r of recRows) {
355
+ recurrenceByOrigin[r.origin ?? "agent"] = r.c;
356
+ }
357
+ }
358
+ catch {
359
+ recurrenceByOrigin = {};
360
+ }
247
361
  return {
248
362
  title: "Estado de Kevin",
249
363
  output: JSON.stringify({
@@ -251,9 +365,22 @@ export const KevinPlugin = async (input, options) => {
251
365
  memories_reflector: memoriesReflector,
252
366
  memories_agent: memoriesAgent,
253
367
  memories_pattern: memoriesPattern,
368
+ memories_causal: memoriesCausal,
254
369
  tool_calls: toolCallCount.c,
255
370
  retrospectives: retroCount.c,
256
371
  metrics: metrics.snapshot(),
372
+ // v0.4.0 (K4-008): precision block. The
373
+ // human-facing "patterns promoted" reading is
374
+ // `patterns_promoted_new` (K4-009 corrected the
375
+ // inflated `patterns_causal` counter; its key
376
+ // stays frozen in metrics for compatibility).
377
+ precision_rate: metrics.precisionRate(),
378
+ injections_total: metrics.get("injections_total"),
379
+ injections_effective: metrics.get("injections_effective"),
380
+ injections_ineffective: metrics.get("injections_ineffective"),
381
+ patterns_promoted_new: metrics.get("patterns_promoted_new"),
382
+ // v0.4.0 (K4-024): per-origin recurrence totals.
383
+ recurrence_by_origin: recurrenceByOrigin,
257
384
  }),
258
385
  };
259
386
  },
@@ -287,6 +414,120 @@ export const KevinPlugin = async (input, options) => {
287
414
  };
288
415
  },
289
416
  }),
417
+ kevin_why: tool({
418
+ description: "Explica por que Kevin recuerda un hecho (v0.3.0). Retorna summary, confidence, trace de eventos y related_rules.",
419
+ args: {
420
+ query: tool.schema.string().min(1),
421
+ },
422
+ async execute(args) {
423
+ const result = kevinWhy(store, args.query);
424
+ if (!result) {
425
+ return {
426
+ title: "Sin explicacion",
427
+ output: JSON.stringify({
428
+ message: `No causal patterns found for "${args.query}".`,
429
+ }),
430
+ };
431
+ }
432
+ return {
433
+ title: "Explicacion causal",
434
+ output: JSON.stringify(result),
435
+ };
436
+ },
437
+ }),
438
+ kevin_export: tool({
439
+ description: "Exporta memorias curadas (decision, rule, pattern) como markdown o formato OKF. v0.3.0.",
440
+ args: {
441
+ format: tool.schema
442
+ .enum(["okf", "markdown"])
443
+ .default("okf")
444
+ .describe("okf | markdown"),
445
+ },
446
+ async execute(args) {
447
+ const output = args.format === "markdown"
448
+ ? exportMarkdown(store)
449
+ : exportOkf(store);
450
+ return {
451
+ title: "Export completado",
452
+ output,
453
+ };
454
+ },
455
+ }),
456
+ kevin_import: tool({
457
+ description: "Importa un bundle markdown de conocimiento (v0.3.0). Cada entrada se guarda como context con origin='imported'.",
458
+ args: {
459
+ bundle: tool.schema.string().min(1),
460
+ },
461
+ async execute(args) {
462
+ const result = importOkf(args.bundle, memoryService);
463
+ return {
464
+ title: "Import completado",
465
+ output: JSON.stringify(result),
466
+ };
467
+ },
468
+ }),
469
+ kevin_config: tool({
470
+ description: "Lee o modifica settings de Kevin sin SQL (v0.4.0). list: todas las settings de kevin_settings. set: upsert de una key conocida (rechaza keys desconocidas salvo strict:false).",
471
+ args: {
472
+ action: tool.schema.enum(["list", "set"]).describe("list | set"),
473
+ key: tool.schema
474
+ .string()
475
+ .optional()
476
+ .describe("Clave a modificar (action=set)."),
477
+ value: tool.schema
478
+ .string()
479
+ .optional()
480
+ .describe("Nuevo valor (action=set). Default '1'."),
481
+ strict: tool.schema
482
+ .boolean()
483
+ .default(true)
484
+ .optional()
485
+ .describe("Con strict=true (default) se rechazan keys desconocidas."),
486
+ },
487
+ async execute(args) {
488
+ if (args.action === "list") {
489
+ const rows = store
490
+ .prepare("SELECT key, value FROM kevin_settings ORDER BY key")
491
+ .all();
492
+ const settings = {};
493
+ for (const r of rows)
494
+ settings[r.key] = r.value;
495
+ return {
496
+ title: "Configuracion de Kevin",
497
+ output: JSON.stringify(settings),
498
+ };
499
+ }
500
+ if (!args.key) {
501
+ return {
502
+ title: "kevin_config",
503
+ output: JSON.stringify({
504
+ error: "missing_key",
505
+ action: "set",
506
+ }),
507
+ };
508
+ }
509
+ const known = KEVIN_CONFIG_KEYS.includes(args.key);
510
+ if (!known && args.strict !== false) {
511
+ return {
512
+ title: "kevin_config",
513
+ output: JSON.stringify({
514
+ error: "unknown_key",
515
+ key: args.key,
516
+ known_keys: [...KEVIN_CONFIG_KEYS],
517
+ }),
518
+ };
519
+ }
520
+ const value = args.value ?? "1";
521
+ store
522
+ .prepare(`INSERT INTO kevin_settings (key, value) VALUES (?, ?)
523
+ ON CONFLICT(key) DO UPDATE SET value = excluded.value`)
524
+ .run(args.key, value);
525
+ return {
526
+ title: "kevin_config",
527
+ output: JSON.stringify({ ok: true, key: args.key, value }),
528
+ };
529
+ },
530
+ }),
290
531
  },
291
532
  "tool.execute.before": async (hookInput, output) => {
292
533
  rememberToolCall(hookInput.callID, hookInput.tool, output.args);
@@ -295,6 +536,7 @@ export const KevinPlugin = async (input, options) => {
295
536
  args: output.args,
296
537
  sessionId: hookInput.sessionID,
297
538
  callID: hookInput.callID,
539
+ projectId,
298
540
  }, {});
299
541
  },
300
542
  "tool.execute.after": async (hookInput, output) => {
@@ -322,6 +564,7 @@ export const KevinPlugin = async (input, options) => {
322
564
  args: hookInput.args,
323
565
  sessionId: hookInput.sessionID,
324
566
  callID: hookInput.callID,
567
+ projectId,
325
568
  }, { success, stdout, stderr, exitCode });
326
569
  if (!success) {
327
570
  const errorType = observer.inferErrorType(stderr, stdout, exitCode);
@@ -333,10 +576,15 @@ export const KevinPlugin = async (input, options) => {
333
576
  exitCode,
334
577
  errorType,
335
578
  sessionId: hookInput.sessionID,
579
+ callID: hookInput.callID,
580
+ projectId,
336
581
  }));
337
582
  }
583
+ else {
584
+ causalChain.onSuccess(hookInput.tool, hookInput.args, projectId, hookInput.sessionID);
585
+ }
338
586
  },
339
- "chat.message": async (_hookInput, output) => {
587
+ "chat.message": async (hookInput, output) => {
340
588
  const text = output.parts
341
589
  .map((p) => p)
342
590
  .filter((p) => p.type === "text")
@@ -345,52 +593,96 @@ export const KevinPlugin = async (input, options) => {
345
593
  if (text.trim()) {
346
594
  const derived = injector.deriveQuery([{ role: "user", content: text }]);
347
595
  lastUserQuery = derived.length > 0 ? derived : null;
596
+ if (hookInput.sessionID && lastUserQuery) {
597
+ lastUserQueryBySession.set(hookInput.sessionID, lastUserQuery);
598
+ }
348
599
  }
349
600
  },
350
- "experimental.chat.system.transform": async (_hookInput, output) => {
351
- if (!lastUserQuery)
352
- return;
353
- const memories = memoryService.getRelevant({
354
- query: lastUserQuery,
355
- maxTokens: SYSTEM_TRANSFORM_TOKENS,
356
- scope: "project",
357
- });
358
- const block = formatMemories(memories, "context");
359
- if (block) {
360
- output.system.push(block);
361
- metrics.incr("tokens_injected_pre_prompt", estimateTokens(block));
362
- }
363
- },
364
- "experimental.session.compacting": async (_hookInput, output) => {
365
- const query = lastUserQuery;
601
+ "experimental.chat.system.transform": async (hookInput, output) => {
602
+ // BUG-011 — prefer the per-session query so a new session whose
603
+ // first transform fires before any chat.message cannot reuse the
604
+ // previous session's query (the global is cleared on idle).
605
+ const query = lastUserQueryBySession.get(hookInput.sessionID ?? "") ?? lastUserQuery;
366
606
  if (!query)
367
607
  return;
368
- const memories = memoryService.getRelevant({
369
- query,
370
- maxTokens: COMPACTING_TOKENS,
371
- scope: "project",
372
- });
373
- const block = formatMemories(memories, "memory");
374
- if (block) {
375
- output.context.push(block);
376
- metrics.incr("tokens_injected_compacting", estimateTokens(block));
377
- }
608
+ const suggestion = injector.generateSuggestion();
609
+ if (suggestion)
610
+ output.system.push(suggestion);
611
+ injector.onSystemTransform({
612
+ sessionID: hookInput.sessionID ?? undefined,
613
+ messages: [{ role: "user", content: query }],
614
+ }, output);
615
+ },
616
+ "experimental.session.compacting": async (hookInput, output) => {
617
+ // v0.4.0 (K4-018) — plan §5.6: compaction often fires with no
618
+ // recent chat.message (auto-compact after a long tool turn,
619
+ // resumed sessions). Resolve a query per session first, then
620
+ // the global fallback, then any messages the runtime may
621
+ // provide (defensive — the current SDK contract only exposes
622
+ // sessionID).
623
+ // BUG-012 — the HITL suggestion fires AT MOST ONCE per session:
624
+ // whichever hook (transform or compacting) runs first consumes
625
+ // the pending recurrence signal (generateSuggestion resets it).
626
+ const suggestion = injector.generateSuggestion();
627
+ if (suggestion)
628
+ output.context.push(suggestion);
629
+ const sid = hookInput.sessionID;
630
+ const sessionQuery = lastUserQueryBySession.get(sid) ?? lastUserQuery;
631
+ const runtimeMessages = hookInput
632
+ .messages;
633
+ const messages = sessionQuery != null
634
+ ? [{ role: "user", content: sessionQuery }]
635
+ : (runtimeMessages ?? []);
636
+ injector.onCompacting({
637
+ sessionID: sid,
638
+ messages,
639
+ }, output);
378
640
  },
379
641
  event: async ({ event }) => {
380
642
  const type = event.type;
381
643
  const props = event.properties ?? {};
382
644
  if (type === "session.created") {
383
645
  const info = props.info;
384
- if (info?.id)
646
+ if (info?.id) {
385
647
  currentSessionId = info.id;
648
+ // BUG-011 — a fresh session must not inherit the
649
+ // previous session's derived query (the global may
650
+ // still hold it if no idle fired).
651
+ lastUserQueryBySession.delete(info.id);
652
+ // v0.4.0 (K4-017) — plan §5.1 rule 3: the per-session
653
+ // seen-set resets when a session is created.
654
+ injector.onSessionCreated(info.id);
655
+ }
386
656
  }
387
657
  else if (type === "session.idle") {
388
658
  const sid = props.sessionID;
389
659
  if (sid) {
390
660
  toolCache.clear();
661
+ // BUG-011 — the session is done: drop the global query
662
+ // so the next session cannot reuse it.
663
+ lastUserQuery = null;
664
+ // v0.4.0 (K4-024) — plan §5.2: settle the session's
665
+ // unmeasured injections (effective/ineffective +
666
+ // recurrence_count charges) at idle. Best-effort: a
667
+ // legacy DB without migration 005 has no ledger table.
668
+ try {
669
+ ledger.settle(sid);
670
+ }
671
+ catch {
672
+ // best-effort: a legacy DB without the ledger
673
+ // table must not break the idle path
674
+ }
391
675
  fireAndForget(retrospective.generate(sid));
392
676
  memoryService.boostPositiveReflectors(sid);
393
- patternMiner.mine();
677
+ const recurred = memoryService.penalizeRecurringReflectors(sid);
678
+ injector.setRecurrences(recurred, sid);
679
+ patternMiner.mine(projectId);
680
+ fireAndForget(Promise.resolve()
681
+ .then(() => causalChain.onSessionIdle(sid))
682
+ // non-blocking — promote is a best-effort pass
683
+ // (legacy DBs pre-005 lack the recurrence_count
684
+ // column)
685
+ .catch(() => { }));
394
686
  }
395
687
  metrics.flush();
396
688
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../plugin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../plugin/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { Store } from "./Store.js";
2
+ export interface WhyInput {
3
+ query: string;
4
+ }
5
+ export interface WhyTraceEvent {
6
+ event: "failure" | "fix";
7
+ fingerprint: string;
8
+ session: string;
9
+ ts: string;
10
+ }
11
+ export interface WhyResult {
12
+ summary: string;
13
+ confidence: number;
14
+ evidence_count: number;
15
+ /** v0.4.0 (K4-020) — negative evidence for the honest phrasing. */
16
+ recurrence_count: number;
17
+ /** v0.4.0 (K4-020) — deterministic "Fixed by:" raw material, if any. */
18
+ fix_args: string | null;
19
+ last_verified: string | null;
20
+ trace: WhyTraceEvent[];
21
+ related_rules: string[];
22
+ }
23
+ export declare function kevinWhy(store: Store, query: string): WhyResult | null;