@su-record/vibe 2.6.23 → 2.6.25

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 (50) hide show
  1. package/commands/vibe.review.md +9 -5
  2. package/commands/vibe.run.md +9 -5
  3. package/commands/vibe.spec.review.md +18 -12
  4. package/dist/lib/MemoryManager.d.ts +11 -0
  5. package/dist/lib/MemoryManager.d.ts.map +1 -1
  6. package/dist/lib/MemoryManager.js +21 -0
  7. package/dist/lib/MemoryManager.js.map +1 -1
  8. package/dist/lib/memory/MemorySearch.d.ts +3 -1
  9. package/dist/lib/memory/MemorySearch.d.ts.map +1 -1
  10. package/dist/lib/memory/MemorySearch.js +60 -0
  11. package/dist/lib/memory/MemorySearch.js.map +1 -1
  12. package/dist/lib/memory/MemoryStorage.d.ts +12 -1
  13. package/dist/lib/memory/MemoryStorage.d.ts.map +1 -1
  14. package/dist/lib/memory/MemoryStorage.js +127 -1
  15. package/dist/lib/memory/MemoryStorage.js.map +1 -1
  16. package/dist/lib/memory/ObservationStore.d.ts +61 -0
  17. package/dist/lib/memory/ObservationStore.d.ts.map +1 -0
  18. package/dist/lib/memory/ObservationStore.js +120 -0
  19. package/dist/lib/memory/ObservationStore.js.map +1 -0
  20. package/dist/lib/memory/SessionSummarizer.d.ts +50 -0
  21. package/dist/lib/memory/SessionSummarizer.d.ts.map +1 -0
  22. package/dist/lib/memory/SessionSummarizer.js +157 -0
  23. package/dist/lib/memory/SessionSummarizer.js.map +1 -0
  24. package/dist/lib/memory/index.d.ts +1 -0
  25. package/dist/lib/memory/index.d.ts.map +1 -1
  26. package/dist/lib/memory/index.js +1 -0
  27. package/dist/lib/memory/index.js.map +1 -1
  28. package/dist/tools/memory/addObservation.d.ts +16 -0
  29. package/dist/tools/memory/addObservation.d.ts.map +1 -0
  30. package/dist/tools/memory/addObservation.js +71 -0
  31. package/dist/tools/memory/addObservation.js.map +1 -0
  32. package/dist/tools/memory/index.d.ts +2 -0
  33. package/dist/tools/memory/index.d.ts.map +1 -1
  34. package/dist/tools/memory/index.js +2 -0
  35. package/dist/tools/memory/index.js.map +1 -1
  36. package/dist/tools/memory/searchMemoriesAdvanced.d.ts.map +1 -1
  37. package/dist/tools/memory/searchMemoriesAdvanced.js +7 -5
  38. package/dist/tools/memory/searchMemoriesAdvanced.js.map +1 -1
  39. package/dist/tools/memory/searchObservations.d.ts +12 -0
  40. package/dist/tools/memory/searchObservations.d.ts.map +1 -0
  41. package/dist/tools/memory/searchObservations.js +67 -0
  42. package/dist/tools/memory/searchObservations.js.map +1 -0
  43. package/dist/tools/memory/startSession.d.ts.map +1 -1
  44. package/dist/tools/memory/startSession.js +16 -2
  45. package/dist/tools/memory/startSession.js.map +1 -1
  46. package/dist/types/tool.d.ts +1 -1
  47. package/dist/types/tool.d.ts.map +1 -1
  48. package/hooks/scripts/code-check.js +49 -1
  49. package/hooks/scripts/context-save.js +21 -1
  50. package/package.json +1 -1
@@ -0,0 +1,61 @@
1
+ import { MemoryStorage } from './MemoryStorage.js';
2
+ export type ObservationType = 'decision' | 'bugfix' | 'feature' | 'refactor' | 'discovery';
3
+ export interface Observation {
4
+ id: number;
5
+ sessionId: string | null;
6
+ type: ObservationType;
7
+ title: string;
8
+ narrative: string | null;
9
+ facts: string[];
10
+ concepts: string[];
11
+ filesModified: string[];
12
+ timestamp: string;
13
+ projectPath: string | null;
14
+ }
15
+ export interface ObservationInput {
16
+ sessionId?: string;
17
+ type: ObservationType;
18
+ title: string;
19
+ narrative?: string;
20
+ facts?: string[];
21
+ concepts?: string[];
22
+ filesModified?: string[];
23
+ projectPath?: string;
24
+ }
25
+ export declare class ObservationStore {
26
+ private db;
27
+ constructor(storage: MemoryStorage);
28
+ /**
29
+ * Add a new observation
30
+ */
31
+ add(input: ObservationInput): number;
32
+ /**
33
+ * Get observations by session ID
34
+ */
35
+ getBySession(sessionId: string, limit?: number): Observation[];
36
+ /**
37
+ * Get recent observations
38
+ */
39
+ getRecent(limit?: number, type?: ObservationType): Observation[];
40
+ /**
41
+ * Get observations by type
42
+ */
43
+ getByType(type: ObservationType, limit?: number): Observation[];
44
+ /**
45
+ * Search observations using FTS5 (with LIKE fallback)
46
+ */
47
+ search(query: string, limit?: number): Observation[];
48
+ /**
49
+ * Get observation statistics
50
+ */
51
+ getStats(): {
52
+ total: number;
53
+ byType: Record<string, number>;
54
+ };
55
+ /**
56
+ * Delete observations by session ID
57
+ */
58
+ deleteBySession(sessionId: string): number;
59
+ private rowToObservation;
60
+ }
61
+ //# sourceMappingURL=ObservationStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObservationStore.d.ts","sourceRoot":"","sources":["../../../src/lib/memory/ObservationStore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;AAE3F,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAeD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAAoB;gBAElB,OAAO,EAAE,aAAa;IAIlC;;OAEG;IACI,GAAG,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAsB3C;;OAEG;IACI,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,WAAW,EAAE;IASzE;;OAEG;IACI,SAAS,CAAC,KAAK,GAAE,MAAW,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,WAAW,EAAE;IAiB3E;;OAEG;IACI,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,GAAE,MAAW,GAAG,WAAW,EAAE;IAS1E;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,WAAW,EAAE;IAyB/D;;OAEG;IACI,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAepE;;OAEG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAKjD,OAAO,CAAC,gBAAgB;CAczB"}
@@ -0,0 +1,120 @@
1
+ // Structured observation storage for automatic tool-use capture
2
+ // Inspired by claude-mem's observation model
3
+ export class ObservationStore {
4
+ db;
5
+ constructor(storage) {
6
+ this.db = storage.getDatabase();
7
+ }
8
+ /**
9
+ * Add a new observation
10
+ */
11
+ add(input) {
12
+ const timestamp = new Date().toISOString();
13
+ const stmt = this.db.prepare(`
14
+ INSERT INTO observations (sessionId, type, title, narrative, facts, concepts, filesModified, timestamp, projectPath)
15
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
16
+ `);
17
+ const result = stmt.run(input.sessionId || null, input.type, input.title, input.narrative || null, input.facts ? JSON.stringify(input.facts) : null, input.concepts ? JSON.stringify(input.concepts) : null, input.filesModified ? JSON.stringify(input.filesModified) : null, timestamp, input.projectPath || null);
18
+ return result.lastInsertRowid;
19
+ }
20
+ /**
21
+ * Get observations by session ID
22
+ */
23
+ getBySession(sessionId, limit = 50) {
24
+ const rows = this.db.prepare(`
25
+ SELECT * FROM observations WHERE sessionId = ?
26
+ ORDER BY timestamp DESC LIMIT ?
27
+ `).all(sessionId, limit);
28
+ return rows.map(this.rowToObservation);
29
+ }
30
+ /**
31
+ * Get recent observations
32
+ */
33
+ getRecent(limit = 10, type) {
34
+ if (type) {
35
+ const rows = this.db.prepare(`
36
+ SELECT * FROM observations WHERE type = ?
37
+ ORDER BY timestamp DESC LIMIT ?
38
+ `).all(type, limit);
39
+ return rows.map(this.rowToObservation);
40
+ }
41
+ const rows = this.db.prepare(`
42
+ SELECT * FROM observations
43
+ ORDER BY timestamp DESC LIMIT ?
44
+ `).all(limit);
45
+ return rows.map(this.rowToObservation);
46
+ }
47
+ /**
48
+ * Get observations by type
49
+ */
50
+ getByType(type, limit = 20) {
51
+ const rows = this.db.prepare(`
52
+ SELECT * FROM observations WHERE type = ?
53
+ ORDER BY timestamp DESC LIMIT ?
54
+ `).all(type, limit);
55
+ return rows.map(this.rowToObservation);
56
+ }
57
+ /**
58
+ * Search observations using FTS5 (with LIKE fallback)
59
+ */
60
+ search(query, limit = 20) {
61
+ try {
62
+ const rows = this.db.prepare(`
63
+ SELECT o.*, bm25(observations_fts) as rank
64
+ FROM observations_fts fts
65
+ JOIN observations o ON o.id = fts.rowid
66
+ WHERE observations_fts MATCH ?
67
+ ORDER BY rank
68
+ LIMIT ?
69
+ `).all(query, limit);
70
+ return rows.map(this.rowToObservation);
71
+ }
72
+ catch {
73
+ // FTS5 not available, fallback to LIKE
74
+ const pattern = `%${query}%`;
75
+ const rows = this.db.prepare(`
76
+ SELECT * FROM observations
77
+ WHERE title LIKE ? OR narrative LIKE ? OR facts LIKE ? OR concepts LIKE ?
78
+ ORDER BY timestamp DESC LIMIT ?
79
+ `).all(pattern, pattern, pattern, pattern, limit);
80
+ return rows.map(this.rowToObservation);
81
+ }
82
+ }
83
+ /**
84
+ * Get observation statistics
85
+ */
86
+ getStats() {
87
+ const types = this.db.prepare(`
88
+ SELECT type, COUNT(*) as count FROM observations GROUP BY type
89
+ `).all();
90
+ const byType = {};
91
+ let total = 0;
92
+ types.forEach(t => {
93
+ byType[t.type] = t.count;
94
+ total += t.count;
95
+ });
96
+ return { total, byType };
97
+ }
98
+ /**
99
+ * Delete observations by session ID
100
+ */
101
+ deleteBySession(sessionId) {
102
+ const result = this.db.prepare(`DELETE FROM observations WHERE sessionId = ?`).run(sessionId);
103
+ return result.changes;
104
+ }
105
+ rowToObservation(row) {
106
+ return {
107
+ id: row.id,
108
+ sessionId: row.sessionId,
109
+ type: row.type,
110
+ title: row.title,
111
+ narrative: row.narrative,
112
+ facts: row.facts ? JSON.parse(row.facts) : [],
113
+ concepts: row.concepts ? JSON.parse(row.concepts) : [],
114
+ filesModified: row.filesModified ? JSON.parse(row.filesModified) : [],
115
+ timestamp: row.timestamp,
116
+ projectPath: row.projectPath,
117
+ };
118
+ }
119
+ }
120
+ //# sourceMappingURL=ObservationStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObservationStore.js","sourceRoot":"","sources":["../../../src/lib/memory/ObservationStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { MemoryStorage } from './MemoryStorage.js';
2
+ export interface SessionSummary {
3
+ id: number;
4
+ sessionId: string;
5
+ request: string | null;
6
+ investigated: string | null;
7
+ learned: string | null;
8
+ completed: string | null;
9
+ nextSteps: string | null;
10
+ filesRead: string[];
11
+ filesEdited: string[];
12
+ timestamp: string;
13
+ }
14
+ export interface SessionSummaryInput {
15
+ sessionId: string;
16
+ request?: string;
17
+ investigated?: string;
18
+ learned?: string;
19
+ completed?: string;
20
+ nextSteps?: string;
21
+ filesRead?: string[];
22
+ filesEdited?: string[];
23
+ }
24
+ export declare class SessionSummarizer {
25
+ private db;
26
+ private observations;
27
+ constructor(storage: MemoryStorage);
28
+ /**
29
+ * Save or update a session summary
30
+ */
31
+ saveSummary(input: SessionSummaryInput): number;
32
+ /**
33
+ * Get recent session summaries
34
+ */
35
+ getRecentSummaries(limit?: number): SessionSummary[];
36
+ /**
37
+ * Get summary for a specific session
38
+ */
39
+ getSummary(sessionId: string): SessionSummary | null;
40
+ /**
41
+ * Auto-generate a session summary from observations
42
+ */
43
+ generateSummaryFromObservations(sessionId: string): SessionSummaryInput;
44
+ /**
45
+ * Generate rich context markdown for session start
46
+ */
47
+ generateSessionContext(tokenBudget?: number): string;
48
+ private rowToSummary;
49
+ }
50
+ //# sourceMappingURL=SessionSummarizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionSummarizer.d.ts","sourceRoot":"","sources":["../../../src/lib/memory/SessionSummarizer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAeD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,YAAY,CAAmB;gBAE3B,OAAO,EAAE,aAAa;IAKlC;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM;IAuBtD;;OAEG;IACI,kBAAkB,CAAC,KAAK,GAAE,MAAU,GAAG,cAAc,EAAE;IAS9D;;OAEG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAQ3D;;OAEG;IACI,+BAA+B,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB;IAmC9E;;OAEG;IACI,sBAAsB,CAAC,WAAW,GAAE,MAAa,GAAG,MAAM;IAuEjE,OAAO,CAAC,YAAY;CAcrB"}
@@ -0,0 +1,157 @@
1
+ // Session summarization and rich context injection
2
+ // Generates session summaries from observations and provides context for next session
3
+ import { ObservationStore } from './ObservationStore.js';
4
+ export class SessionSummarizer {
5
+ db;
6
+ observations;
7
+ constructor(storage) {
8
+ this.db = storage.getDatabase();
9
+ this.observations = new ObservationStore(storage);
10
+ }
11
+ /**
12
+ * Save or update a session summary
13
+ */
14
+ saveSummary(input) {
15
+ const timestamp = new Date().toISOString();
16
+ const stmt = this.db.prepare(`
17
+ INSERT OR REPLACE INTO session_summaries
18
+ (sessionId, request, investigated, learned, completed, nextSteps, filesRead, filesEdited, timestamp)
19
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
20
+ `);
21
+ const result = stmt.run(input.sessionId, input.request || null, input.investigated || null, input.learned || null, input.completed || null, input.nextSteps || null, input.filesRead ? JSON.stringify(input.filesRead) : null, input.filesEdited ? JSON.stringify(input.filesEdited) : null, timestamp);
22
+ return result.lastInsertRowid;
23
+ }
24
+ /**
25
+ * Get recent session summaries
26
+ */
27
+ getRecentSummaries(limit = 3) {
28
+ const rows = this.db.prepare(`
29
+ SELECT * FROM session_summaries
30
+ ORDER BY timestamp DESC LIMIT ?
31
+ `).all(limit);
32
+ return rows.map(this.rowToSummary);
33
+ }
34
+ /**
35
+ * Get summary for a specific session
36
+ */
37
+ getSummary(sessionId) {
38
+ const row = this.db.prepare(`
39
+ SELECT * FROM session_summaries WHERE sessionId = ?
40
+ `).get(sessionId);
41
+ return row ? this.rowToSummary(row) : null;
42
+ }
43
+ /**
44
+ * Auto-generate a session summary from observations
45
+ */
46
+ generateSummaryFromObservations(sessionId) {
47
+ const observations = this.observations.getBySession(sessionId, 50);
48
+ if (observations.length === 0) {
49
+ return { sessionId };
50
+ }
51
+ const decisions = observations.filter(o => o.type === 'decision');
52
+ const discoveries = observations.filter(o => o.type === 'discovery');
53
+ const features = observations.filter(o => o.type === 'feature');
54
+ const bugfixes = observations.filter(o => o.type === 'bugfix');
55
+ const refactors = observations.filter(o => o.type === 'refactor');
56
+ const allFiles = new Set();
57
+ observations.forEach(o => o.filesModified.forEach(f => allFiles.add(f)));
58
+ const learned = [
59
+ ...decisions.map(o => o.title),
60
+ ...discoveries.map(o => o.title),
61
+ ].slice(0, 5).join('; ');
62
+ const completed = [
63
+ ...features.map(o => o.title),
64
+ ...bugfixes.map(o => o.title),
65
+ ...refactors.map(o => o.title),
66
+ ].slice(0, 5).join('; ');
67
+ return {
68
+ sessionId,
69
+ learned: learned || undefined,
70
+ completed: completed || undefined,
71
+ filesEdited: Array.from(allFiles).slice(0, 10),
72
+ };
73
+ }
74
+ /**
75
+ * Generate rich context markdown for session start
76
+ */
77
+ generateSessionContext(tokenBudget = 2000) {
78
+ const charBudget = tokenBudget * 4; // ~4 chars per token
79
+ let context = '';
80
+ // 1. Recent session summaries (최근 3개)
81
+ const summaries = this.getRecentSummaries(3);
82
+ if (summaries.length > 0) {
83
+ context += '\n## Previous Sessions\n';
84
+ for (const s of summaries) {
85
+ const date = new Date(s.timestamp).toLocaleDateString();
86
+ context += `\n### ${date}`;
87
+ if (s.completed)
88
+ context += `\n- Completed: ${s.completed}`;
89
+ if (s.learned)
90
+ context += `\n- Learned: ${s.learned}`;
91
+ if (s.nextSteps)
92
+ context += `\n- Next: ${s.nextSteps}`;
93
+ if (s.filesEdited.length > 0) {
94
+ context += `\n- Files: ${s.filesEdited.slice(0, 5).join(', ')}`;
95
+ }
96
+ }
97
+ context += '\n';
98
+ }
99
+ // 2. Key observations (decision/discovery 우선, 최근 5개)
100
+ if (context.length < charBudget) {
101
+ const keyObs = [
102
+ ...this.observations.getRecent(3, 'decision'),
103
+ ...this.observations.getRecent(3, 'discovery'),
104
+ ].sort((a, b) => b.timestamp.localeCompare(a.timestamp)).slice(0, 5);
105
+ if (keyObs.length > 0) {
106
+ context += '\n## Key Observations\n';
107
+ for (const obs of keyObs) {
108
+ context += `- [${obs.type}] ${obs.title}`;
109
+ if (obs.facts.length > 0) {
110
+ context += `: ${obs.facts[0]}`;
111
+ }
112
+ context += '\n';
113
+ }
114
+ }
115
+ }
116
+ // 3. Recently modified files map
117
+ if (context.length < charBudget) {
118
+ const recentObs = this.observations.getRecent(20);
119
+ const fileMap = new Map();
120
+ for (const obs of recentObs) {
121
+ for (const f of obs.filesModified) {
122
+ fileMap.set(f, (fileMap.get(f) || 0) + 1);
123
+ }
124
+ }
125
+ if (fileMap.size > 0) {
126
+ const sortedFiles = Array.from(fileMap.entries())
127
+ .sort((a, b) => b[1] - a[1])
128
+ .slice(0, 8);
129
+ context += '\n## Recently Modified Files\n';
130
+ for (const [file, count] of sortedFiles) {
131
+ const shortName = file.split(/[\\/]/).slice(-2).join('/');
132
+ context += `- ${shortName} (${count}x)\n`;
133
+ }
134
+ }
135
+ }
136
+ // Truncate if over budget
137
+ if (context.length > charBudget) {
138
+ context = context.substring(0, charBudget) + '\n...(truncated)';
139
+ }
140
+ return context;
141
+ }
142
+ rowToSummary(row) {
143
+ return {
144
+ id: row.id,
145
+ sessionId: row.sessionId,
146
+ request: row.request,
147
+ investigated: row.investigated,
148
+ learned: row.learned,
149
+ completed: row.completed,
150
+ nextSteps: row.nextSteps,
151
+ filesRead: row.filesRead ? JSON.parse(row.filesRead) : [],
152
+ filesEdited: row.filesEdited ? JSON.parse(row.filesEdited) : [],
153
+ timestamp: row.timestamp,
154
+ };
155
+ }
156
+ }
157
+ //# sourceMappingURL=SessionSummarizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionSummarizer.js","sourceRoot":"","sources":["../../../src/lib/memory/SessionSummarizer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export { MemoryStorage, MemoryItem } from './MemoryStorage.js';
2
2
  export { KnowledgeGraph } from './KnowledgeGraph.js';
3
3
  export { MemorySearch, SearchStrategy, SearchOptions } from './MemorySearch.js';
4
+ export { ObservationStore, Observation, ObservationInput, ObservationType } from './ObservationStore.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/memory/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/memory/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -3,6 +3,7 @@
3
3
  export { MemoryStorage } from './MemoryStorage.js';
4
4
  export { KnowledgeGraph } from './KnowledgeGraph.js';
5
5
  export { MemorySearch } from './MemorySearch.js';
6
+ export { ObservationStore } from './ObservationStore.js';
6
7
  // Re-export MemoryManager facade from parent for backward compatibility
7
8
  // Note: MemoryManager is in parent directory, import it from there
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/memory/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,mEAAmE;AAEnE,OAAO,EAAE,aAAa,EAAc,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAiC,MAAM,mBAAmB,CAAC;AAEhF,wEAAwE;AACxE,mEAAmE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/memory/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,mEAAmE;AAEnE,OAAO,EAAE,aAAa,EAAc,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAiC,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAkD,MAAM,uBAAuB,CAAC;AAEzG,wEAAwE;AACxE,mEAAmE"}
@@ -0,0 +1,16 @@
1
+ import { ToolResult, ToolDefinition } from '../../types/tool.js';
2
+ import { ObservationType } from '../../lib/memory/ObservationStore.js';
3
+ export declare const addObservationDefinition: ToolDefinition;
4
+ interface AddObservationArgs {
5
+ type: ObservationType;
6
+ title: string;
7
+ narrative?: string;
8
+ facts?: string[];
9
+ concepts?: string[];
10
+ filesModified?: string[];
11
+ sessionId?: string;
12
+ projectPath?: string;
13
+ }
14
+ export declare function addObservation(args: AddObservationArgs): Promise<ToolResult>;
15
+ export {};
16
+ //# sourceMappingURL=addObservation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addObservation.d.ts","sourceRoot":"","sources":["../../../src/tools/memory/addObservation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,eAAO,MAAM,wBAAwB,EAAE,cAyCtC,CAAC;AAEF,UAAU,kBAAkB;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAyBlF"}
@@ -0,0 +1,71 @@
1
+ // Tool for manually adding structured observations
2
+ import { MemoryManager } from '../../lib/MemoryManager.js';
3
+ export const addObservationDefinition = {
4
+ name: 'add_observation',
5
+ description: 'Record a structured observation (decision, bugfix, feature, refactor, discovery)',
6
+ inputSchema: {
7
+ type: 'object',
8
+ properties: {
9
+ type: {
10
+ type: 'string',
11
+ description: 'Observation type',
12
+ enum: ['decision', 'bugfix', 'feature', 'refactor', 'discovery']
13
+ },
14
+ title: { type: 'string', description: 'Short title for the observation' },
15
+ narrative: { type: 'string', description: 'Detailed description' },
16
+ facts: {
17
+ type: 'array',
18
+ items: { type: 'string' },
19
+ description: 'Key facts as bullet points'
20
+ },
21
+ concepts: {
22
+ type: 'array',
23
+ items: { type: 'string' },
24
+ description: 'Tags/categories for this observation'
25
+ },
26
+ filesModified: {
27
+ type: 'array',
28
+ items: { type: 'string' },
29
+ description: 'Files modified in this observation'
30
+ },
31
+ sessionId: { type: 'string', description: 'Session identifier' },
32
+ projectPath: { type: 'string', description: 'Project directory path' }
33
+ },
34
+ required: ['type', 'title']
35
+ },
36
+ annotations: {
37
+ title: 'Add Observation',
38
+ audience: ['assistant'],
39
+ readOnlyHint: false,
40
+ destructiveHint: false,
41
+ idempotentHint: false,
42
+ openWorldHint: false
43
+ }
44
+ };
45
+ export async function addObservation(args) {
46
+ try {
47
+ const mm = MemoryManager.getInstance(args.projectPath);
48
+ const id = mm.addObservation({
49
+ type: args.type,
50
+ title: args.title,
51
+ narrative: args.narrative,
52
+ facts: args.facts,
53
+ concepts: args.concepts,
54
+ filesModified: args.filesModified,
55
+ sessionId: args.sessionId,
56
+ projectPath: args.projectPath,
57
+ });
58
+ return {
59
+ content: [{
60
+ type: 'text',
61
+ text: `Observation #${id} recorded: [${args.type}] ${args.title}`
62
+ }]
63
+ };
64
+ }
65
+ catch (error) {
66
+ return {
67
+ content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : 'Unknown error'}` }]
68
+ };
69
+ }
70
+ }
71
+ //# sourceMappingURL=addObservation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addObservation.js","sourceRoot":"","sources":["../../../src/tools/memory/addObservation.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAI3D,MAAM,CAAC,MAAM,wBAAwB,GAAmB;IACtD,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,kFAAkF;IAC/F,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC;aACjE;YACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;YACzE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAClE,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,4BAA4B;aAC1C;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,sCAAsC;aACpD;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,oCAAoC;aAClD;YACD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;YAChE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;SACvE;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;KAC5B;IACD,WAAW,EAAE;QACX,KAAK,EAAE,iBAAiB;QACxB,QAAQ,EAAE,CAAC,WAAW,CAAC;QACvB,YAAY,EAAE,KAAK;QACnB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;KACrB;CACF,CAAC;AAaF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAwB;IAC3D,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,gBAAgB,EAAE,eAAe,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE;iBAClE,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC;SACxG,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -16,4 +16,6 @@ export { createMemoryTimeline } from './createMemoryTimeline.js';
16
16
  export { restoreSessionContext } from './restoreSessionContext.js';
17
17
  export { prioritizeMemory } from './prioritizeMemory.js';
18
18
  export { getSessionContext } from './getSessionContext.js';
19
+ export { addObservation } from './addObservation.js';
20
+ export { searchObservations } from './searchObservations.js';
19
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/memory/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/memory/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -16,4 +16,6 @@ export { createMemoryTimeline } from './createMemoryTimeline.js';
16
16
  export { restoreSessionContext } from './restoreSessionContext.js';
17
17
  export { prioritizeMemory } from './prioritizeMemory.js';
18
18
  export { getSessionContext } from './getSessionContext.js';
19
+ export { addObservation } from './addObservation.js';
20
+ export { searchObservations } from './searchObservations.js';
19
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/memory/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/memory/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"searchMemoriesAdvanced.d.ts","sourceRoot":"","sources":["../../../src/tools/memory/searchMemoriesAdvanced.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGjF,eAAO,MAAM,gCAAgC,EAAE,cA+D9C,CAAC;AAEF,UAAU,0BAA0B;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,UAAU,CAAC,CAyFlG"}
1
+ {"version":3,"file":"searchMemoriesAdvanced.d.ts","sourceRoot":"","sources":["../../../src/tools/memory/searchMemoriesAdvanced.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGjF,eAAO,MAAM,gCAAgC,EAAE,cAgE9C,CAAC;AAEF,UAAU,0BAA0B;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,UAAU,CAAC,CAyFlG"}
@@ -7,11 +7,12 @@ export const searchMemoriesAdvancedDefinition = {
7
7
  Keywords: advanced search, find memories, smart search
8
8
 
9
9
  **Search strategies:**
10
- - keyword: Traditional keyword search
10
+ - keyword: Traditional keyword search (FTS5 enhanced)
11
+ - fulltext: Full-text search with bm25 ranking (FTS5)
11
12
  - graph_traversal: Graph-based related memory exploration
12
13
  - temporal: Sort by time
13
14
  - priority: Priority-based
14
- - context_aware: Combined strategy (keyword + priority + recency)
15
+ - context_aware: Combined strategy (FTS5 rank + priority + recency)
15
16
 
16
17
  Usage examples:
17
18
  - "advanced search for authentication-related memories"
@@ -26,7 +27,7 @@ Usage examples:
26
27
  strategy: {
27
28
  type: 'string',
28
29
  description: 'Search strategy',
29
- enum: ['keyword', 'graph_traversal', 'temporal', 'priority', 'context_aware']
30
+ enum: ['keyword', 'fulltext', 'graph_traversal', 'temporal', 'priority', 'context_aware']
30
31
  },
31
32
  limit: {
32
33
  type: 'number',
@@ -140,11 +141,12 @@ Try a different search strategy:
140
141
  }
141
142
  function getStrategyDescription(strategy) {
142
143
  const descriptions = {
143
- keyword: 'Keyword matching',
144
+ keyword: 'Keyword matching (FTS5 enhanced)',
145
+ fulltext: 'Full-text search with bm25 ranking',
144
146
  graph_traversal: 'Graph traversal',
145
147
  temporal: 'Time-based sorting',
146
148
  priority: 'Priority-based',
147
- context_aware: 'Combined strategy (keyword + priority + recency)'
149
+ context_aware: 'Combined strategy (FTS5 rank + priority + recency)'
148
150
  };
149
151
  return descriptions[strategy] || strategy;
150
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"searchMemoriesAdvanced.js","sourceRoot":"","sources":["../../../src/tools/memory/searchMemoriesAdvanced.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,CAAC,MAAM,gCAAgC,GAAmB;IAC9D,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE;;;;;;;;;;;;;wEAayD;IACtE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,cAAc;aAC5B;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iBAAiB;gBAC9B,IAAI,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,CAAC;aAC9E;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yCAAyC;aACvD;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iBAAiB;aAC/B;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0DAA0D;aACxE;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oCAAoC;aAClD;YACD,gBAAgB,EAAE;gBAChB,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,6CAA6C;aAC3D;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oDAAoD;aAClE;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,4BAA4B;QACnC,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;QAC/B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACrB;CACF,CAAC;AAaF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAgC;IAC3E,IAAI,CAAC;QACH,MAAM,EACJ,KAAK,EACL,QAAQ,GAAG,eAAe,EAC1B,KAAK,GAAG,EAAE,EACV,QAAQ,EACR,QAAQ,EACR,KAAK,GAAG,CAAC,EACT,gBAAgB,GAAG,KAAK,EACxB,WAAW,EACZ,GAAG,IAAI,CAAC;QAET,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAE7D,MAAM,OAAO,GAAG,aAAa,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE;YAC5D,KAAK;YACL,QAAQ;YACR,QAAQ;YACR,KAAK;YACL,gBAAgB;SACjB,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,4BAA4B,KAAK;;qBAE5B,QAAQ;EAC3B,QAAQ,CAAC,CAAC,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;gCAMpB;qBACvB,CAAC;aACH,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,GAAG,uBAAuB,KAAK,OAAO,CAAC;QACjD,MAAM,IAAI,iBAAiB,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChE,MAAM,IAAI,qBAAqB,OAAO,CAAC,MAAM,MAAM,CAAC;QAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC;YAC1C,MAAM,IAAI,mBAAmB,MAAM,CAAC,QAAQ,IAAI,CAAC;YACjD,MAAM,IAAI,mBAAmB,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC;YACtD,MAAM,IAAI,kBAAkB,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC7D,MAAM,IAAI,wBAAwB,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;YAEtE,iCAAiC;YACjC,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACjE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM,IAAI,oBAAoB,SAAS,CAAC,MAAM,IAAI,CAAC;oBACnD,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;wBACxC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;wBAC3E,MAAM,IAAI,OAAO,GAAG,CAAC,YAAY,MAAM,KAAK,IAAI,CAAC;oBACnD,CAAC;oBACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzB,MAAM,IAAI,eAAe,SAAS,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC;oBACzD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,qBAAqB;YACrB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;gBACvC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK;gBACxC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACjB,MAAM,IAAI,aAAa,OAAO,cAAc,CAAC;QAC/C,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACb,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;iBACpF,CAAC;SACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAwB;IACtD,MAAM,YAAY,GAAmC;QACnD,OAAO,EAAE,kBAAkB;QAC3B,eAAe,EAAE,iBAAiB;QAClC,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,gBAAgB;QAC1B,aAAa,EAAE,kDAAkD;KAClE,CAAC;IACF,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;AAC5C,CAAC;AAED,SAAS,UAAU,CAAC,UAAkB;IACpC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAClC,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAC,gCAAgC;QACxC,OAAO,UAAU,CAAC;IACpB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"searchMemoriesAdvanced.js","sourceRoot":"","sources":["../../../src/tools/memory/searchMemoriesAdvanced.ts"],"names":[],"mappings":"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"}