@devflow-tools/memory-engine 0.15.0 → 0.16.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 (88) hide show
  1. package/README.md +27 -26
  2. package/dist/consolidator.d.ts.map +1 -1
  3. package/dist/consolidator.js +31 -146
  4. package/dist/consolidator.js.map +1 -1
  5. package/dist/embedding-provider.d.ts +21 -1
  6. package/dist/embedding-provider.d.ts.map +1 -1
  7. package/dist/embedding-provider.js +157 -24
  8. package/dist/embedding-provider.js.map +1 -1
  9. package/dist/event-grouper.d.ts.map +1 -1
  10. package/dist/event-grouper.js +43 -1
  11. package/dist/event-grouper.js.map +1 -1
  12. package/dist/hybrid-search.d.ts +1 -1
  13. package/dist/hybrid-search.d.ts.map +1 -1
  14. package/dist/hybrid-search.js +44 -43
  15. package/dist/hybrid-search.js.map +1 -1
  16. package/dist/index.d.ts +6 -9
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +3 -5
  19. package/dist/index.js.map +1 -1
  20. package/dist/lease-store.d.ts +33 -0
  21. package/dist/lease-store.d.ts.map +1 -0
  22. package/dist/lease-store.js +178 -0
  23. package/dist/lease-store.js.map +1 -0
  24. package/dist/lease-store.test.d.ts +2 -0
  25. package/dist/lease-store.test.d.ts.map +1 -0
  26. package/dist/lease-store.test.js +167 -0
  27. package/dist/lease-store.test.js.map +1 -0
  28. package/dist/memory-engine.d.ts +12 -18
  29. package/dist/memory-engine.d.ts.map +1 -1
  30. package/dist/memory-engine.js +220 -148
  31. package/dist/memory-engine.js.map +1 -1
  32. package/dist/memory-gate.d.ts +64 -39
  33. package/dist/memory-gate.d.ts.map +1 -1
  34. package/dist/memory-gate.js +379 -45
  35. package/dist/memory-gate.js.map +1 -1
  36. package/dist/memory-store.d.ts +36 -1
  37. package/dist/memory-store.d.ts.map +1 -1
  38. package/dist/memory-store.js +142 -21
  39. package/dist/memory-store.js.map +1 -1
  40. package/dist/migrations/v2-to-v3.d.ts +3 -0
  41. package/dist/migrations/v2-to-v3.d.ts.map +1 -0
  42. package/dist/migrations/v2-to-v3.js +122 -0
  43. package/dist/migrations/v2-to-v3.js.map +1 -0
  44. package/dist/migrations/v2-to-v3.test.d.ts +2 -0
  45. package/dist/migrations/v2-to-v3.test.d.ts.map +1 -0
  46. package/dist/migrations/v2-to-v3.test.js +88 -0
  47. package/dist/migrations/v2-to-v3.test.js.map +1 -0
  48. package/dist/observation-types.d.ts +7 -0
  49. package/dist/observation-types.d.ts.map +1 -0
  50. package/dist/observation-types.js +27 -0
  51. package/dist/observation-types.js.map +1 -0
  52. package/dist/project-validator.d.ts.map +1 -1
  53. package/dist/project-validator.js +1 -2
  54. package/dist/project-validator.js.map +1 -1
  55. package/dist/rule-extractor.d.ts +14 -0
  56. package/dist/rule-extractor.d.ts.map +1 -0
  57. package/dist/rule-extractor.js +109 -0
  58. package/dist/rule-extractor.js.map +1 -0
  59. package/dist/session-summarizer.d.ts +16 -8
  60. package/dist/session-summarizer.d.ts.map +1 -1
  61. package/dist/session-summarizer.js +171 -160
  62. package/dist/session-summarizer.js.map +1 -1
  63. package/dist/{signal-detector.d.ts → signal-analyzer.d.ts} +6 -2
  64. package/dist/signal-analyzer.d.ts.map +1 -0
  65. package/dist/{signal-detector.js → signal-analyzer.js} +34 -3
  66. package/dist/signal-analyzer.js.map +1 -0
  67. package/dist/signal-buffer.d.ts +3 -0
  68. package/dist/signal-buffer.d.ts.map +1 -1
  69. package/dist/signal-buffer.js.map +1 -1
  70. package/package.json +6 -6
  71. package/dist/extractor.d.ts +0 -39
  72. package/dist/extractor.d.ts.map +0 -1
  73. package/dist/extractor.js +0 -275
  74. package/dist/extractor.js.map +0 -1
  75. package/dist/l2-evaluator.d.ts +0 -31
  76. package/dist/l2-evaluator.d.ts.map +0 -1
  77. package/dist/l2-evaluator.js +0 -103
  78. package/dist/l2-evaluator.js.map +0 -1
  79. package/dist/llm-provider.d.ts +0 -9
  80. package/dist/llm-provider.d.ts.map +0 -1
  81. package/dist/llm-provider.js +0 -37
  82. package/dist/llm-provider.js.map +0 -1
  83. package/dist/ollama-checker.d.ts +0 -10
  84. package/dist/ollama-checker.d.ts.map +0 -1
  85. package/dist/ollama-checker.js +0 -43
  86. package/dist/ollama-checker.js.map +0 -1
  87. package/dist/signal-detector.d.ts.map +0 -1
  88. package/dist/signal-detector.js.map +0 -1
@@ -1,6 +1,18 @@
1
- import type { IMemoryEngine, UserPrefs, Convention, ProjectContext, SessionEntry, SessionMemory, MemoryCandidate, KnowledgeEntry, MemoryEntryRecord, MemoryFilter, MemorySearchOptions, MemorySearchResult, LLMClient } from '@devflow-tools/sdk';
2
- import type { EmbeddingProvider } from './embedding-provider.js';
1
+ import type { IMemoryEngine, UserPrefs, Convention, ProjectContext, SessionEntry, SessionMemory, MemoryCandidate, KnowledgeEntry, MemoryEntryRecord, MemoryFilter, MemorySearchOptions, MemorySearchResult, SessionEventInput, GetMemoryOptions, GetMemoryResult, MemorySnapshotItem } from '@devflow-tools/sdk';
2
+ import { EmbeddingProvider } from './embedding-provider.js';
3
+ import { type ParsedObservation } from './session-summarizer.js';
4
+ import { LeaseStore } from './lease-store.js';
3
5
  type GateState = 'cold' | 'warming' | 'hot';
6
+ interface PendingDistillData {
7
+ batchId: string;
8
+ sessionIds: string[];
9
+ sessionCount: number;
10
+ eventCount: number;
11
+ groupCount: number;
12
+ systemPrompt: string;
13
+ userPrompt: string;
14
+ eventsJson: string;
15
+ }
4
16
  export declare class MemoryGate implements IMemoryEngine {
5
17
  private buffer;
6
18
  private engine;
@@ -9,13 +21,15 @@ export declare class MemoryGate implements IMemoryEngine {
9
21
  private projectValid;
10
22
  private initPromise;
11
23
  private projectRoot;
12
- private embedder?;
13
- private llmClient?;
24
+ private embedder;
14
25
  private needsColdFlush;
15
- private detector;
26
+ private analyzer;
16
27
  private recentEvents;
17
28
  private pendingUserMessage;
18
- constructor(projectRoot: string, embedder?: EmbeddingProvider, llmClient?: LLMClient);
29
+ private leases;
30
+ private eventWriteQueue;
31
+ private ruleExtractionQueue;
32
+ constructor(projectRoot: string, embedder?: EmbeddingProvider);
19
33
  recordEvent(event: {
20
34
  id: string;
21
35
  sessionId: string;
@@ -25,6 +39,8 @@ export declare class MemoryGate implements IMemoryEngine {
25
39
  stderr?: string;
26
40
  durationMs?: number;
27
41
  createdAt: number;
42
+ kind?: string;
43
+ payload?: Record<string, unknown>;
28
44
  }): Promise<void>;
29
45
  recordUserMessage(message: string): Promise<void>;
30
46
  getGateState(): GateState;
@@ -37,9 +53,26 @@ export declare class MemoryGate implements IMemoryEngine {
37
53
  };
38
54
  forceWarmUp(): Promise<void>;
39
55
  isHot(): boolean;
56
+ setLeaseStore(store: LeaseStore): void;
57
+ /**
58
+ * Returns unprocessed session events grouped and formatted for LLM distillation.
59
+ * The MCP tool memory_request_distill calls this to get data for Claude to process.
60
+ */
61
+ getPendingDistillData(sessionId?: string): Promise<PendingDistillData | null>;
62
+ releasePendingDistillLeases(sessionId?: string): Promise<number>;
63
+ saveDistilledObservationsByBatch(batchId: string, observations: ParsedObservation[]): Promise<number>;
64
+ logInvalidDistillBatch(batchId: string): void;
65
+ /**
66
+ * Saves distilled observations from Claude and marks source events as processed.
67
+ * @deprecated Use saveDistilledObservationsByBatch(batchId, observations) instead.
68
+ */
69
+ saveDistilledObservations(observations: ParsedObservation[], sessionId: string): number;
70
+ /** Returns the count of unprocessed events (for session-start hook). */
71
+ getPendingEventCount(): number;
40
72
  private maybeWarmUp;
41
73
  private _doWarmUp;
42
74
  private requireEngine;
75
+ private getStoreDb;
43
76
  getUserPreferences(): Promise<UserPrefs>;
44
77
  updateUserPreference(key: string, value: unknown): Promise<void>;
45
78
  getProjectContext(): Promise<ProjectContext>;
@@ -51,22 +84,27 @@ export declare class MemoryGate implements IMemoryEngine {
51
84
  closeSession(sessionId: string): Promise<void>;
52
85
  searchGlobal(query: string): Promise<KnowledgeEntry[]>;
53
86
  upsertGlobal(entries: KnowledgeEntry[]): Promise<void>;
54
- getAll(): Promise<{
55
- project: ProjectContext;
56
- user: UserPrefs;
87
+ getAll(options?: string | GetMemoryOptions): Promise<GetMemoryResult & {
57
88
  relevant: KnowledgeEntry[];
58
- } | {
59
- project: {
60
- stack: never[];
61
- conventions: never[];
62
- metadata: {};
63
- };
64
- user: {
65
- preferences: {};
66
- stack: never[];
67
- };
68
- relevant: never[];
69
89
  }>;
90
+ saveExplicitMemoryIntent(content: string, sessionId?: string): Promise<MemorySnapshotItem>;
91
+ listObservationMemories(source?: string): Promise<MemorySnapshotItem[]>;
92
+ backfillObservationVectors(options?: {
93
+ batchSize?: number;
94
+ onProgress?: (progress: {
95
+ processed: number;
96
+ remaining: number;
97
+ lastId?: string;
98
+ }) => void;
99
+ }): Promise<{
100
+ processed: number;
101
+ remaining: number;
102
+ }>;
103
+ getObservationVectorCoverage(): {
104
+ observations: number;
105
+ vectors: number;
106
+ missing: number;
107
+ };
70
108
  getCandidates(): Promise<MemoryCandidate[]>;
71
109
  approveCandidate(id: string): Promise<void>;
72
110
  rejectCandidate(id: string): Promise<void>;
@@ -78,31 +116,18 @@ export declare class MemoryGate implements IMemoryEngine {
78
116
  getPendingMemories(): Promise<MemoryEntryRecord[]>;
79
117
  approveMemory(id: string): Promise<void>;
80
118
  rejectMemory(id: string): Promise<void>;
81
- extractMemories(events: Array<Record<string, unknown>>): Promise<MemoryEntryRecord[]>;
82
119
  extractFromEventsRealtime(events: Array<{
83
120
  tool: string;
84
121
  command?: string;
85
122
  exitCode?: number;
86
123
  stderr?: string;
87
124
  }>): Promise<MemoryEntryRecord[]>;
88
- getOllamaStatus(): Promise<import("./ollama-checker.js").OllamaStatus | {
89
- installed: boolean;
90
- running: boolean;
91
- modelAvailable: boolean;
92
- modelName: string;
93
- }>;
94
- processSessionEvents(): Promise<{
95
- extracted: number;
96
- approved: number;
97
- pending: number;
98
- }>;
99
- /** Drain buffer and run Session Summarizer on the session. Called at session end. */
100
- evaluateBuffer(sessionId: string): Promise<{
101
- l2Evaluated: number;
102
- l2Kept: number;
103
- directWrite: number;
104
- discarded: number;
105
- }>;
125
+ ingestSessionEvent(event: SessionEventInput): Promise<MemoryEntryRecord[]>;
126
+ recordSessionEvent(event: SessionEventInput): Promise<void>;
127
+ extractRecordedSessionRules(sessionId: string): Promise<MemoryEntryRecord[]>;
128
+ private recordSessionEventSerial;
129
+ /** Drain the signal buffer without running summarizer. Events are already persisted. */
130
+ drainBuffer(): void;
106
131
  close(): void;
107
132
  }
108
133
  declare function scoreL1Rules(event: {
@@ -1 +1 @@
1
- {"version":3,"file":"memory-gate.d.ts","sourceRoot":"","sources":["../src/memory-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-gate.d.ts","sourceRoot":"","sources":["../src/memory-gate.ts"],"names":[],"mappings":"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"}