@devflow-tools/memory-engine 0.15.0 → 0.16.1

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
@@ -0,0 +1,167 @@
1
+ import { describe, it, expect, beforeEach } from "vitest";
2
+ import Database from "better-sqlite3";
3
+ import { applyV2ToV3Migration } from "./migrations/v2-to-v3.js";
4
+ import { LeaseStore } from "./lease-store.js";
5
+ describe("LeaseStore", () => {
6
+ let db;
7
+ let store;
8
+ beforeEach(() => {
9
+ db = new Database(":memory:");
10
+ db.exec(`CREATE TABLE schema_versions (version INTEGER PRIMARY KEY, applied_at INTEGER)`);
11
+ db.prepare(`INSERT INTO schema_versions VALUES (2, ?)`).run(Date.now());
12
+ applyV2ToV3Migration(db);
13
+ store = new LeaseStore(db);
14
+ });
15
+ it("createLease returns a ULID and persists", () => {
16
+ const id = store.createLease(["e1", "e2"], ["s1"], 600_000);
17
+ expect(id).toMatch(/^[0-9A-Z]{26}$/);
18
+ const lease = store.getLease(id);
19
+ expect(lease?.status).toBe("pending");
20
+ expect(lease?.eventIds).toEqual(["e1", "e2"]);
21
+ expect(lease?.sessionIds).toEqual(["s1"]);
22
+ expect(lease?.eventCount).toBe(2);
23
+ });
24
+ it("commitLease transitions pending -> committed", () => {
25
+ const id = store.createLease(["e1"], ["s1"]);
26
+ store.commitLease(id);
27
+ expect(store.getLease(id)?.status).toBe("committed");
28
+ });
29
+ it("commitLease throws when lease missing or already committed", () => {
30
+ expect(() => store.commitLease("missing")).toThrow(/not found or already committed/);
31
+ const id = store.createLease(["e1"], ["s1"]);
32
+ store.commitLease(id);
33
+ expect(() => store.commitLease(id)).toThrow();
34
+ });
35
+ it("commitLease throws when lease is overdue but not swept", () => {
36
+ const id = store.createLease(["e1"], ["s1"]);
37
+ db.prepare("UPDATE distill_leases SET expires_at = 0 WHERE batch_id = ?").run(id);
38
+ expect(() => store.commitLease(id)).toThrow(/expired/);
39
+ });
40
+ it("expireOverdueLeases moves expired pending -> expired", () => {
41
+ const id = store.createLease(["e1"], ["s1"]);
42
+ db.prepare("UPDATE distill_leases SET expires_at = 0 WHERE batch_id = ?").run(id);
43
+ const n = store.expireOverdueLeases();
44
+ expect(n).toBe(1);
45
+ expect(store.getLease(id)?.status).toBe("expired");
46
+ });
47
+ it("getPendingEventIds returns only pending lease event_ids", () => {
48
+ const p = store.createLease(["e1", "e2"], ["s1"]);
49
+ const c = store.createLease(["e3"], ["s2"]);
50
+ store.commitLease(c);
51
+ const overdue = store.createLease(["e4"], ["s3"]);
52
+ db.prepare("UPDATE distill_leases SET expires_at = 0 WHERE batch_id = ?").run(overdue);
53
+ const pending = store.getPendingEventIds();
54
+ expect(pending).toEqual(new Set(["e1", "e2"]));
55
+ expect(pending.has("e3")).toBe(false);
56
+ expect(pending.has("e4")).toBe(false); // overdue pending
57
+ });
58
+ it("releases pending leases for one session without consuming other sessions", () => {
59
+ const first = store.createLease(["event-a"], ["session-a"]);
60
+ const second = store.createLease(["event-b"], ["session-b"]);
61
+ expect(store.releasePendingLeases("session-a")).toBe(1);
62
+ expect(store.getLease(first)?.status).toBe("expired");
63
+ expect(store.getLease(second)?.status).toBe("pending");
64
+ });
65
+ it("createLease rejects empty eventIds", () => {
66
+ expect(() => store.createLease([], ["s1"])).toThrow(/nonempty unique array/);
67
+ });
68
+ it.each([
69
+ { label: "blank event ID", eventIds: [" "], sessionIds: ["s1"], ttlMs: 1_000 },
70
+ { label: "non-string event ID", eventIds: [123], sessionIds: ["s1"], ttlMs: 1_000 },
71
+ { label: "duplicate event IDs", eventIds: ["e1", "e1"], sessionIds: ["s1"], ttlMs: 1_000 },
72
+ { label: "blank session ID", eventIds: ["e1"], sessionIds: [" "], ttlMs: 1_000 },
73
+ { label: "non-string session ID", eventIds: ["e1"], sessionIds: [123], ttlMs: 1_000 },
74
+ { label: "duplicate session IDs", eventIds: ["e1"], sessionIds: ["s1", "s1"], ttlMs: 1_000 },
75
+ { label: "zero TTL", eventIds: ["e1"], sessionIds: ["s1"], ttlMs: 0 },
76
+ { label: "negative TTL", eventIds: ["e1"], sessionIds: ["s1"], ttlMs: -1 },
77
+ { label: "fractional TTL", eventIds: ["e1"], sessionIds: ["s1"], ttlMs: 1.5 },
78
+ { label: "non-number TTL", eventIds: ["e1"], sessionIds: ["s1"], ttlMs: "1000" },
79
+ {
80
+ label: "TTL producing an unsafe expiry",
81
+ eventIds: ["e1"],
82
+ sessionIds: ["s1"],
83
+ ttlMs: Number.MAX_SAFE_INTEGER,
84
+ },
85
+ ])("rejects $label before persisting a lease", ({ eventIds, sessionIds, ttlMs }) => {
86
+ expect(() => store.createLease(eventIds, sessionIds, ttlMs)).toThrow();
87
+ expect(db.prepare("SELECT COUNT(*) AS count FROM distill_leases").get())
88
+ .toEqual({ count: 0 });
89
+ });
90
+ it.each([
91
+ ["event_ids", "not-json"],
92
+ ["event_ids", JSON.stringify(["e1", " "])],
93
+ ["event_ids", JSON.stringify(["e1", "e1"])],
94
+ ["session_ids", JSON.stringify([""])],
95
+ ["session_ids", JSON.stringify(["s1", "s1"])],
96
+ ["event_count", 2],
97
+ ["created_at", -1],
98
+ ["expires_at", 1.5],
99
+ ["status", "queued"],
100
+ ])("rejects malformed %s with an actionable typed error", (column, value) => {
101
+ const id = store.createLease(["e1"], ["s1"]);
102
+ if (column === "status")
103
+ db.pragma("ignore_check_constraints = ON");
104
+ db.prepare(`UPDATE distill_leases SET ${column} = ? WHERE batch_id = ?`).run(value, id);
105
+ if (column === "status")
106
+ db.pragma("ignore_check_constraints = OFF");
107
+ expectMalformedLease(id, () => store.getLease(id));
108
+ });
109
+ it("fails closed when an active lease row is malformed", () => {
110
+ const id = store.createLease(["e1"], ["s1"]);
111
+ db.prepare("UPDATE distill_leases SET session_ids = ? WHERE batch_id = ?")
112
+ .run(JSON.stringify([" "]), id);
113
+ expectMalformedLease(id, () => store.getPendingEventIds());
114
+ });
115
+ it("validates a malformed pending expiry before auto-expiring the lease", () => {
116
+ const id = store.createLease(["e1"], ["s1"]);
117
+ db.prepare("UPDATE distill_leases SET expires_at = -1 WHERE batch_id = ?").run(id);
118
+ expectMalformedLease(id, () => store.expireOverdueLeases());
119
+ expect(db.prepare("SELECT status FROM distill_leases WHERE batch_id = ?").get(id))
120
+ .toEqual({ status: "pending" });
121
+ });
122
+ it("accepts safe bigint integer fields and converts them to numbers", () => {
123
+ const id = store.createLease(["e1"], ["s1"]);
124
+ db.defaultSafeIntegers(true);
125
+ const lease = store.getLease(id);
126
+ expect(lease).not.toBeNull();
127
+ expect(lease).toMatchObject({ eventCount: 1, status: "pending" });
128
+ expect(typeof lease.eventCount).toBe("number");
129
+ expect(typeof lease.createdAt).toBe("number");
130
+ expect(typeof lease.expiresAt).toBe("number");
131
+ });
132
+ it.each([
133
+ ["event_count", BigInt(Number.MAX_SAFE_INTEGER) + 1n],
134
+ ["created_at", BigInt(Number.MAX_SAFE_INTEGER) + 1n],
135
+ ["expires_at", BigInt(Number.MAX_SAFE_INTEGER) + 1n],
136
+ ["event_count", -1n],
137
+ ["created_at", -1n],
138
+ ["expires_at", -1n],
139
+ ["event_count", 1.5],
140
+ ["created_at", 1.5],
141
+ ])("rejects unsafe lease integer %s=%s", (column, value) => {
142
+ const id = store.createLease(["e1"], ["s1"]);
143
+ db.prepare(`UPDATE distill_leases SET ${column} = ? WHERE batch_id = ?`).run(value, id);
144
+ expectMalformedLease(id, () => store.getLease(id));
145
+ });
146
+ it("commit is idempotent within same transaction via check-and-update", () => {
147
+ const id = store.createLease(["e1"], ["s1"]);
148
+ store.commitLease(id);
149
+ expect(() => store.commitLease(id)).toThrow();
150
+ });
151
+ });
152
+ function expectMalformedLease(batchId, read) {
153
+ let error;
154
+ try {
155
+ read();
156
+ }
157
+ catch (caught) {
158
+ error = caught;
159
+ }
160
+ expect(error).toMatchObject({
161
+ name: "MalformedDistillLeaseError",
162
+ batchId,
163
+ });
164
+ expect(error.message).toContain(batchId);
165
+ expect(error.message).toMatch(/repair or remove/i);
166
+ }
167
+ //# sourceMappingURL=lease-store.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lease-store.test.js","sourceRoot":"","sources":["../src/lease-store.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { IMemoryEngine, UserPrefs, Convention, ProjectContext, SessionEntry, SessionMemory, MemoryCandidate, KnowledgeEntry, MemoryEntryRecord, MemoryFilter, MemorySearchOptions, MemorySearchResult, LLMClient } from '@devflow-tools/sdk';
1
+ import type { IMemoryEngine, UserPrefs, Convention, ProjectContext, SessionEntry, SessionMemory, MemoryCandidate, KnowledgeEntry, MemoryEntryRecord, MemoryFilter, MemorySearchOptions, MemorySearchResult, GetMemoryOptions, GetMemoryResult, MemorySnapshotItem } from '@devflow-tools/sdk';
2
2
  import { MemoryStore } from './memory-store.js';
3
- import type { Signal } from './signal-detector.js';
3
+ import type { Signal } from './signal-analyzer.js';
4
4
  import { EmbeddingProvider } from './embedding-provider.js';
5
5
  export declare class MemoryEngine implements IMemoryEngine {
6
6
  readonly store: MemoryStore;
@@ -8,7 +8,7 @@ export declare class MemoryEngine implements IMemoryEngine {
8
8
  private searcher;
9
9
  private graph;
10
10
  private rootPath;
11
- constructor(rootPath: string, embedder?: EmbeddingProvider, llmClient?: LLMClient);
11
+ constructor(rootPath: string, embedder?: EmbeddingProvider);
12
12
  private _initPromise;
13
13
  private _embedderAvailable;
14
14
  private ensureInit;
@@ -25,17 +25,19 @@ export declare class MemoryEngine implements IMemoryEngine {
25
25
  closeSession(sessionId: string): Promise<void>;
26
26
  searchGlobal(query: string): Promise<KnowledgeEntry[]>;
27
27
  upsertGlobal(_entries: KnowledgeEntry[]): Promise<void>;
28
- getAll(): Promise<{
29
- project: ProjectContext;
30
- user: UserPrefs;
28
+ getAll(options?: string | GetMemoryOptions): Promise<GetMemoryResult & {
31
29
  relevant: KnowledgeEntry[];
32
30
  }>;
31
+ saveExplicitMemoryIntent(content: string, sessionId?: string): Promise<MemorySnapshotItem>;
32
+ listObservationMemories(source?: string): MemorySnapshotItem[];
33
33
  getCandidates(): Promise<MemoryCandidate[]>;
34
34
  approveCandidate(id: string): Promise<void>;
35
35
  rejectCandidate(id: string): Promise<void>;
36
36
  search(query: string, options?: MemorySearchOptions): Promise<MemorySearchResult[]>;
37
37
  listMemories(filter?: MemoryFilter): Promise<MemoryEntryRecord[]>;
38
38
  addMemory(entry: Omit<MemoryEntryRecord, 'id' | 'createdAt' | 'status'>): Promise<MemoryEntryRecord>;
39
+ private addMemoryWithStatus;
40
+ private reconcileRuleStatus;
39
41
  /** Map internal MemoryRow → SDK MemoryEntryRecord */
40
42
  private _rowToRecord;
41
43
  updateMemory(id: string, updates: Partial<Pick<MemoryEntryRecord, 'content' | 'status' | 'scope'>>): Promise<void>;
@@ -43,8 +45,6 @@ export declare class MemoryEngine implements IMemoryEngine {
43
45
  getPendingMemories(): Promise<MemoryEntryRecord[]>;
44
46
  approveMemory(id: string): Promise<void>;
45
47
  rejectMemory(id: string): Promise<void>;
46
- extractMemories(events: Array<Record<string, unknown>>): Promise<MemoryEntryRecord[]>;
47
- getOllamaStatus(): Promise<import("./ollama-checker.js").OllamaStatus>;
48
48
  consolidateSession(sessionId: string): Promise<MemoryEntryRecord | null>;
49
49
  /**
50
50
  * Pre-write contradiction check with LLM arbitration.
@@ -70,6 +70,8 @@ export declare class MemoryEngine implements IMemoryEngine {
70
70
  l1Score?: number;
71
71
  dialogScore?: number;
72
72
  userMessage?: string;
73
+ kind?: string;
74
+ payload?: Record<string, unknown>;
73
75
  }): Promise<void>;
74
76
  recordSignals(signals: Signal[]): void;
75
77
  getEffectiveConfidence(entry: {
@@ -85,15 +87,7 @@ export declare class MemoryEngine implements IMemoryEngine {
85
87
  exitCode?: number;
86
88
  stderr?: string;
87
89
  }>): Promise<MemoryEntryRecord[]>;
88
- processSessionEvents(): Promise<{
89
- extracted: number;
90
- approved: number;
91
- pending: number;
92
- }>;
93
- /** New: summarize a specific session's events into observations. */
94
- summarizeSessionEvents(sessionId: string, projectRoot: string): Promise<{
95
- observationCount: number;
96
- provider: string;
97
- }>;
90
+ extractRecordedSessionEventsRealtime(sessionId: string): Promise<MemoryEntryRecord[]>;
91
+ private saveRuleMemories;
98
92
  }
99
93
  //# sourceMappingURL=memory-engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-engine.d.ts","sourceRoot":"","sources":["../src/memory-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-engine.d.ts","sourceRoot":"","sources":["../src/memory-engine.ts"],"names":[],"mappings":"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"}