@cleocode/core 2026.4.35 → 2026.4.36

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 (91) hide show
  1. package/dist/config.d.ts.map +1 -1
  2. package/dist/config.js +7 -0
  3. package/dist/config.js.map +1 -1
  4. package/dist/hooks/handlers/conduit-hooks.d.ts +72 -0
  5. package/dist/hooks/handlers/conduit-hooks.d.ts.map +1 -0
  6. package/dist/hooks/handlers/conduit-hooks.js +229 -0
  7. package/dist/hooks/handlers/conduit-hooks.js.map +1 -0
  8. package/dist/hooks/handlers/index.d.ts +2 -0
  9. package/dist/hooks/handlers/index.d.ts.map +1 -1
  10. package/dist/hooks/handlers/index.js +3 -0
  11. package/dist/hooks/handlers/index.js.map +1 -1
  12. package/dist/hooks/handlers/session-hooks.d.ts +14 -0
  13. package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
  14. package/dist/hooks/handlers/session-hooks.js +33 -0
  15. package/dist/hooks/handlers/session-hooks.js.map +1 -1
  16. package/dist/hooks/handlers/task-hooks.d.ts +2 -0
  17. package/dist/hooks/handlers/task-hooks.d.ts.map +1 -1
  18. package/dist/hooks/handlers/task-hooks.js +14 -0
  19. package/dist/hooks/handlers/task-hooks.js.map +1 -1
  20. package/dist/index.js +54918 -46845
  21. package/dist/index.js.map +4 -4
  22. package/dist/internal.d.ts +2 -0
  23. package/dist/internal.d.ts.map +1 -1
  24. package/dist/internal.js +1 -0
  25. package/dist/internal.js.map +1 -1
  26. package/dist/memory/anthropic-key-resolver.d.ts +35 -0
  27. package/dist/memory/anthropic-key-resolver.d.ts.map +1 -0
  28. package/dist/memory/anthropic-key-resolver.js +105 -0
  29. package/dist/memory/anthropic-key-resolver.js.map +1 -0
  30. package/dist/memory/auto-extract.d.ts +38 -42
  31. package/dist/memory/auto-extract.d.ts.map +1 -1
  32. package/dist/memory/auto-extract.js +38 -57
  33. package/dist/memory/auto-extract.js.map +1 -1
  34. package/dist/memory/brain-retrieval.d.ts +6 -0
  35. package/dist/memory/brain-retrieval.d.ts.map +1 -1
  36. package/dist/memory/brain-retrieval.js +145 -13
  37. package/dist/memory/brain-retrieval.js.map +1 -1
  38. package/dist/memory/brain-search.d.ts +82 -15
  39. package/dist/memory/brain-search.d.ts.map +1 -1
  40. package/dist/memory/brain-search.js +178 -93
  41. package/dist/memory/brain-search.js.map +1 -1
  42. package/dist/memory/engine-compat.d.ts +16 -1
  43. package/dist/memory/engine-compat.d.ts.map +1 -1
  44. package/dist/memory/engine-compat.js +0 -3
  45. package/dist/memory/engine-compat.js.map +1 -1
  46. package/dist/memory/learnings.d.ts.map +1 -1
  47. package/dist/memory/learnings.js +4 -3
  48. package/dist/memory/learnings.js.map +1 -1
  49. package/dist/memory/llm-extraction.d.ts +107 -0
  50. package/dist/memory/llm-extraction.d.ts.map +1 -0
  51. package/dist/memory/llm-extraction.js +425 -0
  52. package/dist/memory/llm-extraction.js.map +1 -0
  53. package/dist/memory/memory-bridge.js +23 -11
  54. package/dist/memory/memory-bridge.js.map +1 -1
  55. package/dist/memory/observer-reflector.d.ts +157 -0
  56. package/dist/memory/observer-reflector.d.ts.map +1 -0
  57. package/dist/memory/observer-reflector.js +626 -0
  58. package/dist/memory/observer-reflector.js.map +1 -0
  59. package/dist/store/brain-schema.d.ts +131 -0
  60. package/dist/store/brain-schema.d.ts.map +1 -1
  61. package/dist/store/brain-schema.js +30 -0
  62. package/dist/store/brain-schema.js.map +1 -1
  63. package/dist/store/brain-sqlite.js +41 -1
  64. package/dist/store/brain-sqlite.js.map +1 -1
  65. package/dist/tasks/complete.d.ts.map +1 -1
  66. package/dist/tasks/complete.js +7 -8
  67. package/dist/tasks/complete.js.map +1 -1
  68. package/package.json +13 -12
  69. package/src/config.ts +7 -0
  70. package/src/hooks/handlers/__tests__/conduit-hooks.test.ts +356 -0
  71. package/src/hooks/handlers/conduit-hooks.ts +258 -0
  72. package/src/hooks/handlers/index.ts +7 -0
  73. package/src/hooks/handlers/session-hooks.ts +37 -0
  74. package/src/hooks/handlers/task-hooks.ts +14 -0
  75. package/src/internal.ts +8 -0
  76. package/src/memory/__tests__/auto-extract.test.ts +43 -114
  77. package/src/memory/__tests__/brain-automation.test.ts +16 -39
  78. package/src/memory/__tests__/brain-rrf.test.ts +431 -0
  79. package/src/memory/__tests__/llm-extraction.test.ts +342 -0
  80. package/src/memory/__tests__/observer-reflector.test.ts +475 -0
  81. package/src/memory/anthropic-key-resolver.ts +113 -0
  82. package/src/memory/auto-extract.ts +40 -72
  83. package/src/memory/brain-retrieval.ts +187 -18
  84. package/src/memory/brain-search.ts +196 -128
  85. package/src/memory/engine-compat.ts +16 -4
  86. package/src/memory/learnings.ts +4 -3
  87. package/src/memory/llm-extraction.ts +524 -0
  88. package/src/memory/memory-bridge.ts +29 -12
  89. package/src/memory/observer-reflector.ts +829 -0
  90. package/src/store/brain-schema.ts +44 -0
  91. package/src/tasks/complete.ts +7 -10
@@ -671,8 +671,52 @@ export const brainPageEdges = sqliteTable(
671
671
  ],
672
672
  );
673
673
 
674
+ // ============================================================================
675
+ // RETRIEVAL LOG — tracks which entries are retrieved together (T549 §6)
676
+ // ============================================================================
677
+
678
+ /**
679
+ * Retrieval log tracks which brain entries are returned together in search
680
+ * results. This data drives:
681
+ * - Co-retrieval edge strengthening (consolidation step 6)
682
+ * - Memory quality instrumentation (retrieval frequency tracking)
683
+ * - Citation count validation (corroboration for tier promotion)
684
+ *
685
+ * Each row records one retrieval event: the query, which entries were returned,
686
+ * and the retrieval source (find/fetch/hybrid).
687
+ */
688
+ export const brainRetrievalLog = sqliteTable(
689
+ 'brain_retrieval_log',
690
+ {
691
+ id: integer('id').primaryKey({ autoIncrement: true }),
692
+
693
+ /** The search query or fetch IDs that triggered this retrieval. */
694
+ query: text('query').notNull(),
695
+
696
+ /** Comma-separated list of entry IDs returned in this retrieval. */
697
+ entryIds: text('entry_ids').notNull(),
698
+
699
+ /** Number of entries returned. */
700
+ entryCount: integer('entry_count').notNull(),
701
+
702
+ /** Retrieval source: 'find' | 'fetch' | 'hybrid' | 'timeline' | 'budget' */
703
+ source: text('source').notNull(),
704
+
705
+ /** Estimated tokens consumed by this retrieval. */
706
+ tokensUsed: integer('tokens_used'),
707
+
708
+ createdAt: text('created_at').notNull().default(sql`(datetime('now'))`),
709
+ },
710
+ (table) => [
711
+ index('idx_retrieval_log_created').on(table.createdAt),
712
+ index('idx_retrieval_log_source').on(table.source),
713
+ ],
714
+ );
715
+
674
716
  // === TYPE EXPORTS ===
675
717
 
718
+ export type BrainRetrievalLogRow = typeof brainRetrievalLog.$inferSelect;
719
+ export type NewBrainRetrievalLogRow = typeof brainRetrievalLog.$inferInsert;
676
720
  export type BrainDecisionRow = typeof brainDecisions.$inferSelect;
677
721
  export type NewBrainDecisionRow = typeof brainDecisions.$inferInsert;
678
722
  export type BrainPatternRow = typeof brainPatterns.$inferSelect;
@@ -288,18 +288,15 @@ export async function completeTask(
288
288
  // NOTE: Memory bridge refresh is now handled by the onToolComplete hook
289
289
  // via memory-bridge-refresh.ts (T138). No direct call needed here.
290
290
 
291
- // Auto-extract memory from task completion (best-effort, T-audit)
292
- import('../memory/auto-extract.js')
293
- .then(({ extractTaskCompletionMemory }) =>
294
- extractTaskCompletionMemory(cwd ?? process.cwd(), task),
295
- )
296
- .catch(() => {
297
- /* Memory extraction is best-effort */
298
- });
291
+ // Task-completion memory is intentionally NOT written here.
292
+ // The legacy extractTaskCompletionMemory function was removed (produced
293
+ // O(tasks x labels) noise — see T523 CA1 spec). Durable knowledge is now
294
+ // extracted from session transcripts at session end via the LLM extraction
295
+ // gate in memory/llm-extraction.ts.
299
296
 
300
297
  // Auto-populate brain graph nodes for the completed task (best-effort, T537).
301
- // Runs SEPARATE from the gutted extractTaskCompletionMemorythis only writes
302
- // graph topology, not memory table rows.
298
+ // Graph topology is still written here — only the noise-producing memory
299
+ // row writes were removed.
303
300
  import('../memory/graph-auto-populate.js')
304
301
  .then(({ upsertGraphNode, addGraphEdge }) =>
305
302
  (async () => {