@su-record/vibe 2.6.26 → 2.6.27
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.
- package/CLAUDE.md +49 -0
- package/README.md +31 -0
- package/dist/lib/MemoryManager.d.ts +30 -0
- package/dist/lib/MemoryManager.d.ts.map +1 -1
- package/dist/lib/MemoryManager.js +74 -0
- package/dist/lib/MemoryManager.js.map +1 -1
- package/dist/lib/memory/SessionRAGRetriever.d.ts +66 -0
- package/dist/lib/memory/SessionRAGRetriever.d.ts.map +1 -0
- package/dist/lib/memory/SessionRAGRetriever.js +196 -0
- package/dist/lib/memory/SessionRAGRetriever.js.map +1 -0
- package/dist/lib/memory/SessionRAGRetriever.test.d.ts +2 -0
- package/dist/lib/memory/SessionRAGRetriever.test.d.ts.map +1 -0
- package/dist/lib/memory/SessionRAGRetriever.test.js +180 -0
- package/dist/lib/memory/SessionRAGRetriever.test.js.map +1 -0
- package/dist/lib/memory/SessionRAGStore.d.ts +153 -0
- package/dist/lib/memory/SessionRAGStore.d.ts.map +1 -0
- package/dist/lib/memory/SessionRAGStore.js +673 -0
- package/dist/lib/memory/SessionRAGStore.js.map +1 -0
- package/dist/lib/memory/SessionRAGStore.test.d.ts +2 -0
- package/dist/lib/memory/SessionRAGStore.test.d.ts.map +1 -0
- package/dist/lib/memory/SessionRAGStore.test.js +326 -0
- package/dist/lib/memory/SessionRAGStore.test.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory/index.d.ts +3 -0
- package/dist/tools/memory/index.d.ts.map +1 -1
- package/dist/tools/memory/index.js +4 -0
- package/dist/tools/memory/index.js.map +1 -1
- package/dist/tools/memory/manageGoals.d.ts +11 -0
- package/dist/tools/memory/manageGoals.d.ts.map +1 -0
- package/dist/tools/memory/manageGoals.js +152 -0
- package/dist/tools/memory/manageGoals.js.map +1 -0
- package/dist/tools/memory/retrieveSessionContext.d.ts +9 -0
- package/dist/tools/memory/retrieveSessionContext.d.ts.map +1 -0
- package/dist/tools/memory/retrieveSessionContext.js +140 -0
- package/dist/tools/memory/retrieveSessionContext.js.map +1 -0
- package/dist/tools/memory/saveSessionItem.d.ts +26 -0
- package/dist/tools/memory/saveSessionItem.d.ts.map +1 -0
- package/dist/tools/memory/saveSessionItem.js +218 -0
- package/dist/tools/memory/saveSessionItem.js.map +1 -0
- package/dist/tools/memory/startSession.d.ts.map +1 -1
- package/dist/tools/memory/startSession.js +29 -0
- package/dist/tools/memory/startSession.js.map +1 -1
- package/package.json +1 -1
package/CLAUDE.md
CHANGED
|
@@ -110,16 +110,65 @@ SPEC documents use: `<role>` `<context>` `<task>` `<constraints>` `<output_forma
|
|
|
110
110
|
|
|
111
111
|
## Built-in Tools
|
|
112
112
|
|
|
113
|
+
### Semantic & Quality
|
|
114
|
+
|
|
113
115
|
| Tool | Purpose |
|
|
114
116
|
|-------------------------------|----------------------------------|
|
|
115
117
|
| `vibe_find_symbol` | Find symbol definitions |
|
|
116
118
|
| `vibe_find_references` | Find references |
|
|
117
119
|
| `vibe_analyze_complexity` | Analyze complexity |
|
|
118
120
|
| `vibe_validate_code_quality` | Validate quality |
|
|
121
|
+
|
|
122
|
+
### Memory & Session
|
|
123
|
+
|
|
124
|
+
| Tool | Purpose |
|
|
125
|
+
|-------------------------------|----------------------------------|
|
|
119
126
|
| `vibe_start_session` | Restore previous session context |
|
|
120
127
|
| `vibe_auto_save_context` | Save current state |
|
|
121
128
|
| `vibe_save_memory` | Save important decisions |
|
|
122
129
|
|
|
130
|
+
### Session RAG (v2.6.27)
|
|
131
|
+
|
|
132
|
+
구조화된 세션 컨텍스트를 저장/검색하는 시스템. SQLite + FTS5 BM25 하이브리드 검색.
|
|
133
|
+
|
|
134
|
+
| Tool | Purpose |
|
|
135
|
+
|-------------------------------|----------------------------------|
|
|
136
|
+
| `save_session_item` | Decision/Constraint/Goal/Evidence 저장 |
|
|
137
|
+
| `retrieve_session_context` | 하이브리드 검색 (BM25 + recency + priority) |
|
|
138
|
+
| `manage_goals` | Goal 생명주기 관리 (list/update/complete) |
|
|
139
|
+
|
|
140
|
+
**4가지 엔티티:**
|
|
141
|
+
|
|
142
|
+
| Entity | Description | Key Fields |
|
|
143
|
+
|--------|-------------|------------|
|
|
144
|
+
| Decision | 사용자 확인 결정사항 | title, rationale, alternatives, impact, priority |
|
|
145
|
+
| Constraint | 명시적 제약조건 | title, type (technical/business/resource/quality), severity |
|
|
146
|
+
| Goal | 현재 목표 스택 (계층 지원) | title, status, priority, progressPercent, successCriteria |
|
|
147
|
+
| Evidence | 검증/테스트 결과 | title, type (test/build/lint/coverage), status, metrics |
|
|
148
|
+
|
|
149
|
+
**자동 주입:** `start_session` 호출 시 활성 Goals, 중요 Constraints, 최근 Decisions가 자동으로 세션 컨텍스트에 포함됨.
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
import { saveSessionItem, retrieveSessionContext, manageGoals } from '@su-record/vibe/tools';
|
|
153
|
+
|
|
154
|
+
// 결정 저장
|
|
155
|
+
await saveSessionItem({ itemType: 'decision', title: 'Use Vitest', rationale: 'Fast and modern' });
|
|
156
|
+
|
|
157
|
+
// 제약 저장
|
|
158
|
+
await saveSessionItem({ itemType: 'constraint', title: 'No vector DB', type: 'technical', severity: 'high' });
|
|
159
|
+
|
|
160
|
+
// 목표 저장
|
|
161
|
+
await saveSessionItem({ itemType: 'goal', title: 'Implement Session RAG', priority: 2 });
|
|
162
|
+
|
|
163
|
+
// 컨텍스트 검색
|
|
164
|
+
await retrieveSessionContext({ query: 'testing' });
|
|
165
|
+
|
|
166
|
+
// 목표 관리
|
|
167
|
+
await manageGoals({ action: 'list' });
|
|
168
|
+
await manageGoals({ action: 'update', goalId: 1, progressPercent: 80 });
|
|
169
|
+
await manageGoals({ action: 'complete', goalId: 1 });
|
|
170
|
+
```
|
|
171
|
+
|
|
123
172
|
## Agents
|
|
124
173
|
|
|
125
174
|
- **Review (12)**: security, performance, architecture, complexity, simplicity, data-integrity, test-coverage, git-history, python, typescript, rails, react reviewers → `.claude/agents/review/`
|
package/README.md
CHANGED
|
@@ -152,6 +152,37 @@ Prompt → Complexity Analysis → Split Decision
|
|
|
152
152
|
|
|
153
153
|
Tasks are scored by complexity. When the score exceeds the threshold (default: 15), the task is automatically split into subtasks and processed in parallel.
|
|
154
154
|
|
|
155
|
+
## Session RAG
|
|
156
|
+
|
|
157
|
+
Structured session context storage with hybrid BM25 search. Keeps decisions, constraints, goals, and evidence across sessions.
|
|
158
|
+
|
|
159
|
+
| Entity | Description | Auto-injected |
|
|
160
|
+
|--------|-------------|---------------|
|
|
161
|
+
| **Decision** | User-confirmed choices with rationale | Recent active decisions |
|
|
162
|
+
| **Constraint** | Technical/business limitations | High/critical severity |
|
|
163
|
+
| **Goal** | Objective stack with progress tracking | Active goals |
|
|
164
|
+
| **Evidence** | Test/build/lint verification results | - |
|
|
165
|
+
|
|
166
|
+
**Tools:**
|
|
167
|
+
|
|
168
|
+
| Tool | Purpose |
|
|
169
|
+
|------|---------|
|
|
170
|
+
| `save_session_item` | Save decision/constraint/goal/evidence |
|
|
171
|
+
| `retrieve_session_context` | Hybrid search (BM25 + recency + priority) |
|
|
172
|
+
| `manage_goals` | Goal lifecycle (list/update/complete) |
|
|
173
|
+
|
|
174
|
+
Active goals and key constraints are automatically injected at session start via `start_session`.
|
|
175
|
+
|
|
176
|
+
```typescript
|
|
177
|
+
import { saveSessionItem, retrieveSessionContext, manageGoals } from '@su-record/vibe/tools';
|
|
178
|
+
|
|
179
|
+
await saveSessionItem({ itemType: 'decision', title: 'Use Vitest', rationale: 'Fast and modern' });
|
|
180
|
+
await saveSessionItem({ itemType: 'constraint', title: 'No vector DB', type: 'technical', severity: 'high' });
|
|
181
|
+
await saveSessionItem({ itemType: 'goal', title: 'Implement login', priority: 2 });
|
|
182
|
+
await retrieveSessionContext({ query: 'testing strategy' });
|
|
183
|
+
await manageGoals({ action: 'complete', goalId: 1 });
|
|
184
|
+
```
|
|
185
|
+
|
|
155
186
|
## Requirements Traceability
|
|
156
187
|
|
|
157
188
|
Track from requirements to tests with `/vibe.trace`:
|
|
@@ -2,13 +2,19 @@ import { MemoryRelation, MemoryGraph } from '../types/tool.js';
|
|
|
2
2
|
import { MemoryItem } from './memory/MemoryStorage.js';
|
|
3
3
|
import { SearchStrategy, SearchOptions } from './memory/MemorySearch.js';
|
|
4
4
|
import { Observation, ObservationInput, ObservationType } from './memory/ObservationStore.js';
|
|
5
|
+
import { Decision, DecisionInput, Constraint, ConstraintInput, Goal, GoalInput, Evidence, EvidenceInput, SessionRAGStats, DecisionStatus, ConstraintType, ConstraintSeverity, GoalStatus, EvidenceType, EvidenceStatus } from './memory/SessionRAGStore.js';
|
|
6
|
+
import { RetrievalOptions, SessionRAGResult } from './memory/SessionRAGRetriever.js';
|
|
5
7
|
export { MemoryItem } from './memory/MemoryStorage.js';
|
|
6
8
|
export { Observation, ObservationInput, ObservationType } from './memory/ObservationStore.js';
|
|
9
|
+
export { Decision, DecisionInput, Constraint, ConstraintInput, Goal, GoalInput, Evidence, EvidenceInput, SessionRAGStats, DecisionStatus, ConstraintType, ConstraintSeverity, GoalStatus, EvidenceType, EvidenceStatus } from './memory/SessionRAGStore.js';
|
|
10
|
+
export { RetrievalOptions, SessionRAGResult } from './memory/SessionRAGRetriever.js';
|
|
7
11
|
export declare class MemoryManager {
|
|
8
12
|
private storage;
|
|
9
13
|
private graph;
|
|
10
14
|
private memorySearch;
|
|
11
15
|
private observations;
|
|
16
|
+
private sessionRAG;
|
|
17
|
+
private ragRetriever;
|
|
12
18
|
private static instances;
|
|
13
19
|
private static instance;
|
|
14
20
|
private static cleanupRegistered;
|
|
@@ -50,6 +56,30 @@ export declare class MemoryManager {
|
|
|
50
56
|
total: number;
|
|
51
57
|
byType: Record<string, number>;
|
|
52
58
|
};
|
|
59
|
+
addDecision(input: DecisionInput): number;
|
|
60
|
+
getDecision(id: number): Decision | null;
|
|
61
|
+
updateDecision(id: number, updates: Partial<DecisionInput>): boolean;
|
|
62
|
+
listDecisions(sessionId?: string, status?: DecisionStatus, limit?: number): Decision[];
|
|
63
|
+
searchDecisions(query: string, limit?: number): Decision[];
|
|
64
|
+
addConstraint(input: ConstraintInput): number;
|
|
65
|
+
getConstraint(id: number): Constraint | null;
|
|
66
|
+
updateConstraint(id: number, updates: Partial<ConstraintInput>): boolean;
|
|
67
|
+
listConstraints(sessionId?: string, type?: ConstraintType, severity?: ConstraintSeverity, limit?: number): Constraint[];
|
|
68
|
+
addGoal(input: GoalInput): number;
|
|
69
|
+
getGoal(id: number): Goal | null;
|
|
70
|
+
updateGoal(id: number, updates: Partial<GoalInput>): boolean;
|
|
71
|
+
getActiveGoals(limit?: number): Goal[];
|
|
72
|
+
listGoals(sessionId?: string, status?: GoalStatus, limit?: number): Goal[];
|
|
73
|
+
addEvidence(input: EvidenceInput): number;
|
|
74
|
+
getEvidence(id: number): Evidence | null;
|
|
75
|
+
listEvidence(sessionId?: string, type?: EvidenceType, status?: EvidenceStatus, limit?: number): Evidence[];
|
|
76
|
+
retrieveSessionContext(options: RetrievalOptions): SessionRAGResult;
|
|
77
|
+
retrieveActiveContext(): {
|
|
78
|
+
goals: Goal[];
|
|
79
|
+
constraints: Constraint[];
|
|
80
|
+
decisions: Decision[];
|
|
81
|
+
};
|
|
82
|
+
getSessionRAGStats(): SessionRAGStats;
|
|
53
83
|
close(): void;
|
|
54
84
|
static resetInstance(projectPath?: string): void;
|
|
55
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryManager.d.ts","sourceRoot":"","sources":["../../src/lib/MemoryManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAiB,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,EAAgB,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAoB,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryManager.d.ts","sourceRoot":"","sources":["../../src/lib/MemoryManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,15 @@ import { MemoryStorage } from './memory/MemoryStorage.js';
|
|
|
6
6
|
import { KnowledgeGraph } from './memory/KnowledgeGraph.js';
|
|
7
7
|
import { MemorySearch } from './memory/MemorySearch.js';
|
|
8
8
|
import { ObservationStore } from './memory/ObservationStore.js';
|
|
9
|
+
import { SessionRAGStore } from './memory/SessionRAGStore.js';
|
|
10
|
+
import { SessionRAGRetriever } from './memory/SessionRAGRetriever.js';
|
|
9
11
|
export class MemoryManager {
|
|
10
12
|
storage;
|
|
11
13
|
graph;
|
|
12
14
|
memorySearch;
|
|
13
15
|
observations;
|
|
16
|
+
sessionRAG;
|
|
17
|
+
ragRetriever;
|
|
14
18
|
// Map of projectPath -> MemoryManager instance (for project-based memory)
|
|
15
19
|
static instances = new Map();
|
|
16
20
|
// Legacy single instance (for backward compatibility)
|
|
@@ -49,6 +53,8 @@ export class MemoryManager {
|
|
|
49
53
|
this.graph = new KnowledgeGraph(this.storage);
|
|
50
54
|
this.memorySearch = new MemorySearch(this.storage, this.graph);
|
|
51
55
|
this.observations = new ObservationStore(this.storage);
|
|
56
|
+
this.sessionRAG = new SessionRAGStore(this.storage);
|
|
57
|
+
this.ragRetriever = new SessionRAGRetriever(this.storage, this.sessionRAG);
|
|
52
58
|
}
|
|
53
59
|
/**
|
|
54
60
|
* Check if the given path is the vibe package itself
|
|
@@ -184,6 +190,74 @@ export class MemoryManager {
|
|
|
184
190
|
return this.observations.getStats();
|
|
185
191
|
}
|
|
186
192
|
// ============================================================================
|
|
193
|
+
// Session RAG Operations (delegated to SessionRAGStore/Retriever)
|
|
194
|
+
// ============================================================================
|
|
195
|
+
// Decisions
|
|
196
|
+
addDecision(input) {
|
|
197
|
+
return this.sessionRAG.addDecision(input);
|
|
198
|
+
}
|
|
199
|
+
getDecision(id) {
|
|
200
|
+
return this.sessionRAG.getDecision(id);
|
|
201
|
+
}
|
|
202
|
+
updateDecision(id, updates) {
|
|
203
|
+
return this.sessionRAG.updateDecision(id, updates);
|
|
204
|
+
}
|
|
205
|
+
listDecisions(sessionId, status, limit) {
|
|
206
|
+
return this.sessionRAG.listDecisions(sessionId, status, limit);
|
|
207
|
+
}
|
|
208
|
+
searchDecisions(query, limit) {
|
|
209
|
+
return this.sessionRAG.searchDecisions(query, limit);
|
|
210
|
+
}
|
|
211
|
+
// Constraints
|
|
212
|
+
addConstraint(input) {
|
|
213
|
+
return this.sessionRAG.addConstraint(input);
|
|
214
|
+
}
|
|
215
|
+
getConstraint(id) {
|
|
216
|
+
return this.sessionRAG.getConstraint(id);
|
|
217
|
+
}
|
|
218
|
+
updateConstraint(id, updates) {
|
|
219
|
+
return this.sessionRAG.updateConstraint(id, updates);
|
|
220
|
+
}
|
|
221
|
+
listConstraints(sessionId, type, severity, limit) {
|
|
222
|
+
return this.sessionRAG.listConstraints(sessionId, type, severity, limit);
|
|
223
|
+
}
|
|
224
|
+
// Goals
|
|
225
|
+
addGoal(input) {
|
|
226
|
+
return this.sessionRAG.addGoal(input);
|
|
227
|
+
}
|
|
228
|
+
getGoal(id) {
|
|
229
|
+
return this.sessionRAG.getGoal(id);
|
|
230
|
+
}
|
|
231
|
+
updateGoal(id, updates) {
|
|
232
|
+
return this.sessionRAG.updateGoal(id, updates);
|
|
233
|
+
}
|
|
234
|
+
getActiveGoals(limit) {
|
|
235
|
+
return this.sessionRAG.getActiveGoals(limit);
|
|
236
|
+
}
|
|
237
|
+
listGoals(sessionId, status, limit) {
|
|
238
|
+
return this.sessionRAG.listGoals(sessionId, status, limit);
|
|
239
|
+
}
|
|
240
|
+
// Evidence
|
|
241
|
+
addEvidence(input) {
|
|
242
|
+
return this.sessionRAG.addEvidence(input);
|
|
243
|
+
}
|
|
244
|
+
getEvidence(id) {
|
|
245
|
+
return this.sessionRAG.getEvidence(id);
|
|
246
|
+
}
|
|
247
|
+
listEvidence(sessionId, type, status, limit) {
|
|
248
|
+
return this.sessionRAG.listEvidence(sessionId, type, status, limit);
|
|
249
|
+
}
|
|
250
|
+
// Retrieval
|
|
251
|
+
retrieveSessionContext(options) {
|
|
252
|
+
return this.ragRetriever.retrieve(options);
|
|
253
|
+
}
|
|
254
|
+
retrieveActiveContext() {
|
|
255
|
+
return this.ragRetriever.retrieveActiveContext();
|
|
256
|
+
}
|
|
257
|
+
getSessionRAGStats() {
|
|
258
|
+
return this.sessionRAG.getStats();
|
|
259
|
+
}
|
|
260
|
+
// ============================================================================
|
|
187
261
|
// Lifecycle Management
|
|
188
262
|
// ============================================================================
|
|
189
263
|
close() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryManager.js","sourceRoot":"","sources":["../../src/lib/MemoryManager.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+DAA+D;AAE/D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC,OAAO,EAAE,aAAa,EAAc,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAiC,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAkD,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryManager.js","sourceRoot":"","sources":["../../src/lib/MemoryManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { MemoryStorage } from './MemoryStorage.js';
|
|
2
|
+
import { SessionRAGStore, Decision, Constraint, Goal, Evidence } from './SessionRAGStore.js';
|
|
3
|
+
export interface RetrievalOptions {
|
|
4
|
+
query: string;
|
|
5
|
+
sessionId?: string;
|
|
6
|
+
limit?: number;
|
|
7
|
+
recencyWeight?: number;
|
|
8
|
+
priorityWeight?: number;
|
|
9
|
+
bm25Weight?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ScoreBreakdown {
|
|
12
|
+
bm25: number;
|
|
13
|
+
recency: number;
|
|
14
|
+
priority: number;
|
|
15
|
+
}
|
|
16
|
+
export interface ScoredItem<T> {
|
|
17
|
+
item: T;
|
|
18
|
+
score: number;
|
|
19
|
+
breakdown: ScoreBreakdown;
|
|
20
|
+
}
|
|
21
|
+
export interface SessionRAGResult {
|
|
22
|
+
decisions: ScoredItem<Decision>[];
|
|
23
|
+
constraints: ScoredItem<Constraint>[];
|
|
24
|
+
goals: ScoredItem<Goal>[];
|
|
25
|
+
evidence: ScoredItem<Evidence>[];
|
|
26
|
+
queryTime: number;
|
|
27
|
+
}
|
|
28
|
+
export declare class SessionRAGRetriever {
|
|
29
|
+
private db;
|
|
30
|
+
private store;
|
|
31
|
+
private fts5Available;
|
|
32
|
+
constructor(storage: MemoryStorage, store: SessionRAGStore);
|
|
33
|
+
/**
|
|
34
|
+
* Retrieve relevant session context with hybrid scoring
|
|
35
|
+
*/
|
|
36
|
+
retrieve(options: RetrievalOptions): SessionRAGResult;
|
|
37
|
+
/**
|
|
38
|
+
* Retrieve only active goals and high-severity constraints (for session start injection)
|
|
39
|
+
*/
|
|
40
|
+
retrieveActiveContext(): {
|
|
41
|
+
goals: Goal[];
|
|
42
|
+
constraints: Constraint[];
|
|
43
|
+
decisions: Decision[];
|
|
44
|
+
};
|
|
45
|
+
private scoreDecisions;
|
|
46
|
+
private scoreConstraints;
|
|
47
|
+
private scoreGoals;
|
|
48
|
+
private scoreEvidence;
|
|
49
|
+
private getCandidateDecisions;
|
|
50
|
+
private getCandidateConstraints;
|
|
51
|
+
private getCandidateGoals;
|
|
52
|
+
private getCandidateEvidence;
|
|
53
|
+
private getBM25Scores;
|
|
54
|
+
/**
|
|
55
|
+
* Normalize BM25 score to 0-1 range.
|
|
56
|
+
* BM25 returns negative values where more negative = better match.
|
|
57
|
+
* We convert to 0-1 where 1 = best match.
|
|
58
|
+
*/
|
|
59
|
+
private normalizeBM25;
|
|
60
|
+
/**
|
|
61
|
+
* Calculate recency score with exponential decay.
|
|
62
|
+
* Returns 0-1 where 1 = just now, 0.5 = half-life ago.
|
|
63
|
+
*/
|
|
64
|
+
private calculateRecency;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=SessionRAGRetriever.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionRAGRetriever.d.ts","sourceRoot":"","sources":["../../../src/lib/memory/SessionRAGRetriever.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,eAAe,EACf,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAM9B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;IAClC,WAAW,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;IACtC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1B,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAYD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,aAAa,CAAU;gBAEnB,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe;IAM1D;;OAEG;IACI,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB;IA0B5D;;OAEG;IACI,qBAAqB,IAAI;QAC9B,KAAK,EAAE,IAAI,EAAE,CAAC;QACd,WAAW,EAAE,UAAU,EAAE,CAAC;QAC1B,SAAS,EAAE,QAAQ,EAAE,CAAC;KACvB;IAaD,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,aAAa;IAyBrB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAQrB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAKzB"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
// Session RAG Retriever - Hybrid search with BM25 + metadata scoring
|
|
2
|
+
// Retrieves relevant session context (decisions/constraints/goals/evidence)
|
|
3
|
+
const DEFAULT_LIMIT = 5;
|
|
4
|
+
const DEFAULT_BM25_WEIGHT = 0.4;
|
|
5
|
+
const DEFAULT_RECENCY_WEIGHT = 0.3;
|
|
6
|
+
const DEFAULT_PRIORITY_WEIGHT = 0.3;
|
|
7
|
+
const RECENCY_HALF_LIFE_MS = 7 * 24 * 60 * 60 * 1000; // 7 days
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// SessionRAGRetriever
|
|
10
|
+
// ============================================================================
|
|
11
|
+
export class SessionRAGRetriever {
|
|
12
|
+
db;
|
|
13
|
+
store;
|
|
14
|
+
fts5Available;
|
|
15
|
+
constructor(storage, store) {
|
|
16
|
+
this.db = storage.getDatabase();
|
|
17
|
+
this.store = store;
|
|
18
|
+
this.fts5Available = storage.isFTS5Available();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Retrieve relevant session context with hybrid scoring
|
|
22
|
+
*/
|
|
23
|
+
retrieve(options) {
|
|
24
|
+
const startTime = Date.now();
|
|
25
|
+
const { query, limit = DEFAULT_LIMIT, recencyWeight = DEFAULT_RECENCY_WEIGHT, priorityWeight = DEFAULT_PRIORITY_WEIGHT, bm25Weight = DEFAULT_BM25_WEIGHT, } = options;
|
|
26
|
+
const weights = { bm25Weight, recencyWeight, priorityWeight };
|
|
27
|
+
const decisions = this.scoreDecisions(query, limit, weights);
|
|
28
|
+
const constraints = this.scoreConstraints(query, limit, weights);
|
|
29
|
+
const goals = this.scoreGoals(query, limit, weights);
|
|
30
|
+
const evidence = this.scoreEvidence(query, limit, weights);
|
|
31
|
+
return {
|
|
32
|
+
decisions,
|
|
33
|
+
constraints,
|
|
34
|
+
goals,
|
|
35
|
+
evidence,
|
|
36
|
+
queryTime: Date.now() - startTime,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Retrieve only active goals and high-severity constraints (for session start injection)
|
|
41
|
+
*/
|
|
42
|
+
retrieveActiveContext() {
|
|
43
|
+
return {
|
|
44
|
+
goals: this.store.getActiveGoals(5),
|
|
45
|
+
constraints: this.store.listConstraints(undefined, undefined, undefined, 10)
|
|
46
|
+
.filter(c => c.severity === 'critical' || c.severity === 'high'),
|
|
47
|
+
decisions: this.store.listDecisions(undefined, 'active', 5),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// ==========================================================================
|
|
51
|
+
// Scoring per entity type
|
|
52
|
+
// ==========================================================================
|
|
53
|
+
scoreDecisions(query, limit, weights) {
|
|
54
|
+
const bm25Scores = this.getBM25Scores('session_decisions', 'session_decisions_fts', query, limit * 3);
|
|
55
|
+
const candidates = this.getCandidateDecisions(query, bm25Scores, limit * 3);
|
|
56
|
+
return candidates
|
|
57
|
+
.map(item => {
|
|
58
|
+
const bm25 = this.normalizeBM25(bm25Scores.get(item.id) ?? 0);
|
|
59
|
+
const recency = this.calculateRecency(item.timestamp);
|
|
60
|
+
const priority = item.priority / 2; // normalize 0-2 → 0-1
|
|
61
|
+
const score = bm25 * weights.bm25Weight +
|
|
62
|
+
recency * weights.recencyWeight +
|
|
63
|
+
priority * weights.priorityWeight;
|
|
64
|
+
return { item, score, breakdown: { bm25, recency, priority } };
|
|
65
|
+
})
|
|
66
|
+
.sort((a, b) => b.score - a.score)
|
|
67
|
+
.slice(0, limit);
|
|
68
|
+
}
|
|
69
|
+
scoreConstraints(query, limit, weights) {
|
|
70
|
+
const bm25Scores = this.getBM25Scores('session_constraints', 'session_constraints_fts', query, limit * 3);
|
|
71
|
+
const candidates = this.getCandidateConstraints(query, bm25Scores, limit * 3);
|
|
72
|
+
const severityMap = { critical: 1.0, high: 0.75, medium: 0.5, low: 0.25 };
|
|
73
|
+
return candidates
|
|
74
|
+
.map(item => {
|
|
75
|
+
const bm25 = this.normalizeBM25(bm25Scores.get(item.id) ?? 0);
|
|
76
|
+
const recency = this.calculateRecency(item.timestamp);
|
|
77
|
+
const priority = severityMap[item.severity] ?? 0.5;
|
|
78
|
+
const score = bm25 * weights.bm25Weight +
|
|
79
|
+
recency * weights.recencyWeight +
|
|
80
|
+
priority * weights.priorityWeight;
|
|
81
|
+
return { item, score, breakdown: { bm25, recency, priority } };
|
|
82
|
+
})
|
|
83
|
+
.sort((a, b) => b.score - a.score)
|
|
84
|
+
.slice(0, limit);
|
|
85
|
+
}
|
|
86
|
+
scoreGoals(query, limit, weights) {
|
|
87
|
+
const bm25Scores = this.getBM25Scores('session_goals', 'session_goals_fts', query, limit * 3);
|
|
88
|
+
const candidates = this.getCandidateGoals(query, bm25Scores, limit * 3);
|
|
89
|
+
return candidates
|
|
90
|
+
.map(item => {
|
|
91
|
+
const bm25 = this.normalizeBM25(bm25Scores.get(item.id) ?? 0);
|
|
92
|
+
const recency = this.calculateRecency(item.timestamp);
|
|
93
|
+
const priority = item.priority / 2;
|
|
94
|
+
const score = bm25 * weights.bm25Weight +
|
|
95
|
+
recency * weights.recencyWeight +
|
|
96
|
+
priority * weights.priorityWeight;
|
|
97
|
+
return { item, score, breakdown: { bm25, recency, priority } };
|
|
98
|
+
})
|
|
99
|
+
.sort((a, b) => b.score - a.score)
|
|
100
|
+
.slice(0, limit);
|
|
101
|
+
}
|
|
102
|
+
scoreEvidence(query, limit, weights) {
|
|
103
|
+
const bm25Scores = this.getBM25Scores('session_evidence', 'session_evidence_fts', query, limit * 3);
|
|
104
|
+
const candidates = this.getCandidateEvidence(query, bm25Scores, limit * 3);
|
|
105
|
+
const statusMap = { fail: 1.0, warning: 0.75, pass: 0.5, info: 0.25 };
|
|
106
|
+
return candidates
|
|
107
|
+
.map(item => {
|
|
108
|
+
const bm25 = this.normalizeBM25(bm25Scores.get(item.id) ?? 0);
|
|
109
|
+
const recency = this.calculateRecency(item.timestamp);
|
|
110
|
+
const priority = statusMap[item.status] ?? 0.5;
|
|
111
|
+
const score = bm25 * weights.bm25Weight +
|
|
112
|
+
recency * weights.recencyWeight +
|
|
113
|
+
priority * weights.priorityWeight;
|
|
114
|
+
return { item, score, breakdown: { bm25, recency, priority } };
|
|
115
|
+
})
|
|
116
|
+
.sort((a, b) => b.score - a.score)
|
|
117
|
+
.slice(0, limit);
|
|
118
|
+
}
|
|
119
|
+
// ==========================================================================
|
|
120
|
+
// Candidate retrieval (FTS5 or LIKE fallback)
|
|
121
|
+
// ==========================================================================
|
|
122
|
+
getCandidateDecisions(query, bm25Scores, limit) {
|
|
123
|
+
if (bm25Scores.size > 0) {
|
|
124
|
+
return this.store.searchDecisions(query, limit);
|
|
125
|
+
}
|
|
126
|
+
// No BM25 results, get all recent ones for scoring
|
|
127
|
+
return this.store.listDecisions(undefined, undefined, limit);
|
|
128
|
+
}
|
|
129
|
+
getCandidateConstraints(query, bm25Scores, limit) {
|
|
130
|
+
if (bm25Scores.size > 0) {
|
|
131
|
+
return this.store.searchConstraints(query, limit);
|
|
132
|
+
}
|
|
133
|
+
return this.store.listConstraints(undefined, undefined, undefined, limit);
|
|
134
|
+
}
|
|
135
|
+
getCandidateGoals(query, bm25Scores, limit) {
|
|
136
|
+
if (bm25Scores.size > 0) {
|
|
137
|
+
return this.store.searchGoals(query, limit);
|
|
138
|
+
}
|
|
139
|
+
return this.store.listGoals(undefined, undefined, limit);
|
|
140
|
+
}
|
|
141
|
+
getCandidateEvidence(query, bm25Scores, limit) {
|
|
142
|
+
if (bm25Scores.size > 0) {
|
|
143
|
+
return this.store.searchEvidence(query, limit);
|
|
144
|
+
}
|
|
145
|
+
return this.store.listEvidence(undefined, undefined, undefined, limit);
|
|
146
|
+
}
|
|
147
|
+
// ==========================================================================
|
|
148
|
+
// BM25 scoring helpers
|
|
149
|
+
// ==========================================================================
|
|
150
|
+
getBM25Scores(table, ftsTable, query, limit) {
|
|
151
|
+
const scores = new Map();
|
|
152
|
+
if (!this.fts5Available)
|
|
153
|
+
return scores;
|
|
154
|
+
try {
|
|
155
|
+
const rows = this.db.prepare(`
|
|
156
|
+
SELECT t.id, bm25(${ftsTable}) as rank
|
|
157
|
+
FROM ${ftsTable} fts
|
|
158
|
+
JOIN ${table} t ON t.id = fts.rowid
|
|
159
|
+
WHERE ${ftsTable} MATCH ?
|
|
160
|
+
ORDER BY rank
|
|
161
|
+
LIMIT ?
|
|
162
|
+
`).all(query, limit);
|
|
163
|
+
for (const row of rows) {
|
|
164
|
+
scores.set(row.id, row.rank);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
// FTS5 query failed
|
|
169
|
+
}
|
|
170
|
+
return scores;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Normalize BM25 score to 0-1 range.
|
|
174
|
+
* BM25 returns negative values where more negative = better match.
|
|
175
|
+
* We convert to 0-1 where 1 = best match.
|
|
176
|
+
*/
|
|
177
|
+
normalizeBM25(rawScore) {
|
|
178
|
+
if (rawScore === 0)
|
|
179
|
+
return 0;
|
|
180
|
+
// BM25 returns negative scores; -20 is a strong match, 0 is no match
|
|
181
|
+
// Clamp to [-20, 0] then normalize
|
|
182
|
+
const clamped = Math.max(rawScore, -20);
|
|
183
|
+
return Math.abs(clamped) / 20;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Calculate recency score with exponential decay.
|
|
187
|
+
* Returns 0-1 where 1 = just now, 0.5 = half-life ago.
|
|
188
|
+
*/
|
|
189
|
+
calculateRecency(timestamp) {
|
|
190
|
+
const age = Date.now() - new Date(timestamp).getTime();
|
|
191
|
+
if (age <= 0)
|
|
192
|
+
return 1;
|
|
193
|
+
return Math.exp(-age * Math.LN2 / RECENCY_HALF_LIFE_MS);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=SessionRAGRetriever.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionRAGRetriever.js","sourceRoot":"","sources":["../../../src/lib/memory/SessionRAGRetriever.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionRAGRetriever.test.d.ts","sourceRoot":"","sources":["../../../src/lib/memory/SessionRAGRetriever.test.ts"],"names":[],"mappings":""}
|