cursor-recursive-rag 0.2.0-alpha.2 → 0.2.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 (210) hide show
  1. package/README.md +179 -203
  2. package/dist/adapters/llm/anthropic.d.ts +27 -0
  3. package/dist/adapters/llm/anthropic.d.ts.map +1 -0
  4. package/dist/adapters/llm/anthropic.js +287 -0
  5. package/dist/adapters/llm/anthropic.js.map +1 -0
  6. package/dist/adapters/llm/base.d.ts +62 -0
  7. package/dist/adapters/llm/base.d.ts.map +1 -0
  8. package/dist/adapters/llm/base.js +140 -0
  9. package/dist/adapters/llm/base.js.map +1 -0
  10. package/dist/adapters/llm/deepseek.d.ts +24 -0
  11. package/dist/adapters/llm/deepseek.d.ts.map +1 -0
  12. package/dist/adapters/llm/deepseek.js +228 -0
  13. package/dist/adapters/llm/deepseek.js.map +1 -0
  14. package/dist/adapters/llm/groq.d.ts +25 -0
  15. package/dist/adapters/llm/groq.d.ts.map +1 -0
  16. package/dist/adapters/llm/groq.js +265 -0
  17. package/dist/adapters/llm/groq.js.map +1 -0
  18. package/dist/adapters/llm/index.d.ts +62 -0
  19. package/dist/adapters/llm/index.d.ts.map +1 -0
  20. package/dist/adapters/llm/index.js +380 -0
  21. package/dist/adapters/llm/index.js.map +1 -0
  22. package/dist/adapters/llm/ollama.d.ts +23 -0
  23. package/dist/adapters/llm/ollama.d.ts.map +1 -0
  24. package/dist/adapters/llm/ollama.js +261 -0
  25. package/dist/adapters/llm/ollama.js.map +1 -0
  26. package/dist/adapters/llm/openai.d.ts +22 -0
  27. package/dist/adapters/llm/openai.d.ts.map +1 -0
  28. package/dist/adapters/llm/openai.js +232 -0
  29. package/dist/adapters/llm/openai.js.map +1 -0
  30. package/dist/adapters/llm/openrouter.d.ts +27 -0
  31. package/dist/adapters/llm/openrouter.d.ts.map +1 -0
  32. package/dist/adapters/llm/openrouter.js +305 -0
  33. package/dist/adapters/llm/openrouter.js.map +1 -0
  34. package/dist/adapters/vector/index.d.ts.map +1 -1
  35. package/dist/adapters/vector/index.js +8 -0
  36. package/dist/adapters/vector/index.js.map +1 -1
  37. package/dist/adapters/vector/redis-native.d.ts +35 -0
  38. package/dist/adapters/vector/redis-native.d.ts.map +1 -0
  39. package/dist/adapters/vector/redis-native.js +170 -0
  40. package/dist/adapters/vector/redis-native.js.map +1 -0
  41. package/dist/cli/commands/chat.d.ts +4 -0
  42. package/dist/cli/commands/chat.d.ts.map +1 -0
  43. package/dist/cli/commands/chat.js +374 -0
  44. package/dist/cli/commands/chat.js.map +1 -0
  45. package/dist/cli/commands/maintenance.d.ts +4 -0
  46. package/dist/cli/commands/maintenance.d.ts.map +1 -0
  47. package/dist/cli/commands/maintenance.js +237 -0
  48. package/dist/cli/commands/maintenance.js.map +1 -0
  49. package/dist/cli/commands/rules.d.ts +9 -0
  50. package/dist/cli/commands/rules.d.ts.map +1 -0
  51. package/dist/cli/commands/rules.js +639 -0
  52. package/dist/cli/commands/rules.js.map +1 -0
  53. package/dist/cli/commands/setup.js +5 -4
  54. package/dist/cli/commands/setup.js.map +1 -1
  55. package/dist/cli/index.js +6 -0
  56. package/dist/cli/index.js.map +1 -1
  57. package/dist/config/memoryConfig.d.ts +427 -0
  58. package/dist/config/memoryConfig.d.ts.map +1 -0
  59. package/dist/config/memoryConfig.js +258 -0
  60. package/dist/config/memoryConfig.js.map +1 -0
  61. package/dist/config/rulesConfig.d.ts +486 -0
  62. package/dist/config/rulesConfig.d.ts.map +1 -0
  63. package/dist/config/rulesConfig.js +345 -0
  64. package/dist/config/rulesConfig.js.map +1 -0
  65. package/dist/dashboard/coreTools.d.ts +14 -0
  66. package/dist/dashboard/coreTools.d.ts.map +1 -0
  67. package/dist/dashboard/coreTools.js +413 -0
  68. package/dist/dashboard/coreTools.js.map +1 -0
  69. package/dist/dashboard/public/index.html +1982 -13
  70. package/dist/dashboard/server.d.ts +1 -8
  71. package/dist/dashboard/server.d.ts.map +1 -1
  72. package/dist/dashboard/server.js +846 -13
  73. package/dist/dashboard/server.js.map +1 -1
  74. package/dist/dashboard/toolRegistry.d.ts +192 -0
  75. package/dist/dashboard/toolRegistry.d.ts.map +1 -0
  76. package/dist/dashboard/toolRegistry.js +322 -0
  77. package/dist/dashboard/toolRegistry.js.map +1 -0
  78. package/dist/proxy/index.d.ts +1 -1
  79. package/dist/proxy/index.d.ts.map +1 -1
  80. package/dist/proxy/index.js +9 -6
  81. package/dist/proxy/index.js.map +1 -1
  82. package/dist/server/index.js +21 -0
  83. package/dist/server/index.js.map +1 -1
  84. package/dist/server/tools/crawl.d.ts.map +1 -1
  85. package/dist/server/tools/crawl.js +8 -0
  86. package/dist/server/tools/crawl.js.map +1 -1
  87. package/dist/server/tools/index.d.ts.map +1 -1
  88. package/dist/server/tools/index.js +19 -1
  89. package/dist/server/tools/index.js.map +1 -1
  90. package/dist/server/tools/ingest.d.ts.map +1 -1
  91. package/dist/server/tools/ingest.js +5 -0
  92. package/dist/server/tools/ingest.js.map +1 -1
  93. package/dist/server/tools/memory.d.ts +250 -0
  94. package/dist/server/tools/memory.d.ts.map +1 -0
  95. package/dist/server/tools/memory.js +472 -0
  96. package/dist/server/tools/memory.js.map +1 -0
  97. package/dist/server/tools/recursive-query.d.ts.map +1 -1
  98. package/dist/server/tools/recursive-query.js +6 -0
  99. package/dist/server/tools/recursive-query.js.map +1 -1
  100. package/dist/server/tools/search.d.ts.map +1 -1
  101. package/dist/server/tools/search.js +6 -0
  102. package/dist/server/tools/search.js.map +1 -1
  103. package/dist/services/activity-log.d.ts +10 -0
  104. package/dist/services/activity-log.d.ts.map +1 -0
  105. package/dist/services/activity-log.js +53 -0
  106. package/dist/services/activity-log.js.map +1 -0
  107. package/dist/services/categoryManager.d.ts +110 -0
  108. package/dist/services/categoryManager.d.ts.map +1 -0
  109. package/dist/services/categoryManager.js +549 -0
  110. package/dist/services/categoryManager.js.map +1 -0
  111. package/dist/services/contextEnvironment.d.ts +206 -0
  112. package/dist/services/contextEnvironment.d.ts.map +1 -0
  113. package/dist/services/contextEnvironment.js +481 -0
  114. package/dist/services/contextEnvironment.js.map +1 -0
  115. package/dist/services/conversationProcessor.d.ts +99 -0
  116. package/dist/services/conversationProcessor.d.ts.map +1 -0
  117. package/dist/services/conversationProcessor.js +311 -0
  118. package/dist/services/conversationProcessor.js.map +1 -0
  119. package/dist/services/cursorChatReader.d.ts +129 -0
  120. package/dist/services/cursorChatReader.d.ts.map +1 -0
  121. package/dist/services/cursorChatReader.js +419 -0
  122. package/dist/services/cursorChatReader.js.map +1 -0
  123. package/dist/services/decayCalculator.d.ts +85 -0
  124. package/dist/services/decayCalculator.d.ts.map +1 -0
  125. package/dist/services/decayCalculator.js +182 -0
  126. package/dist/services/decayCalculator.js.map +1 -0
  127. package/dist/services/enhancedVectorStore.d.ts +102 -0
  128. package/dist/services/enhancedVectorStore.d.ts.map +1 -0
  129. package/dist/services/enhancedVectorStore.js +245 -0
  130. package/dist/services/enhancedVectorStore.js.map +1 -0
  131. package/dist/services/hybridScorer.d.ts +120 -0
  132. package/dist/services/hybridScorer.d.ts.map +1 -0
  133. package/dist/services/hybridScorer.js +334 -0
  134. package/dist/services/hybridScorer.js.map +1 -0
  135. package/dist/services/knowledgeExtractor.d.ts +45 -0
  136. package/dist/services/knowledgeExtractor.d.ts.map +1 -0
  137. package/dist/services/knowledgeExtractor.js +436 -0
  138. package/dist/services/knowledgeExtractor.js.map +1 -0
  139. package/dist/services/knowledgeStorage.d.ts +102 -0
  140. package/dist/services/knowledgeStorage.d.ts.map +1 -0
  141. package/dist/services/knowledgeStorage.js +383 -0
  142. package/dist/services/knowledgeStorage.js.map +1 -0
  143. package/dist/services/maintenanceScheduler.d.ts +89 -0
  144. package/dist/services/maintenanceScheduler.d.ts.map +1 -0
  145. package/dist/services/maintenanceScheduler.js +479 -0
  146. package/dist/services/maintenanceScheduler.js.map +1 -0
  147. package/dist/services/memoryMetadataStore.d.ts +62 -0
  148. package/dist/services/memoryMetadataStore.d.ts.map +1 -0
  149. package/dist/services/memoryMetadataStore.js +570 -0
  150. package/dist/services/memoryMetadataStore.js.map +1 -0
  151. package/dist/services/recursiveRetrieval.d.ts +122 -0
  152. package/dist/services/recursiveRetrieval.d.ts.map +1 -0
  153. package/dist/services/recursiveRetrieval.js +443 -0
  154. package/dist/services/recursiveRetrieval.js.map +1 -0
  155. package/dist/services/relationshipGraph.d.ts +77 -0
  156. package/dist/services/relationshipGraph.d.ts.map +1 -0
  157. package/dist/services/relationshipGraph.js +411 -0
  158. package/dist/services/relationshipGraph.js.map +1 -0
  159. package/dist/services/rlmSafeguards.d.ts +273 -0
  160. package/dist/services/rlmSafeguards.d.ts.map +1 -0
  161. package/dist/services/rlmSafeguards.js +705 -0
  162. package/dist/services/rlmSafeguards.js.map +1 -0
  163. package/dist/services/rulesAnalyzer.d.ts +119 -0
  164. package/dist/services/rulesAnalyzer.d.ts.map +1 -0
  165. package/dist/services/rulesAnalyzer.js +768 -0
  166. package/dist/services/rulesAnalyzer.js.map +1 -0
  167. package/dist/services/rulesMerger.d.ts +75 -0
  168. package/dist/services/rulesMerger.d.ts.map +1 -0
  169. package/dist/services/rulesMerger.js +404 -0
  170. package/dist/services/rulesMerger.js.map +1 -0
  171. package/dist/services/rulesParser.d.ts +127 -0
  172. package/dist/services/rulesParser.d.ts.map +1 -0
  173. package/dist/services/rulesParser.js +594 -0
  174. package/dist/services/rulesParser.js.map +1 -0
  175. package/dist/services/smartChunker.d.ts +110 -0
  176. package/dist/services/smartChunker.d.ts.map +1 -0
  177. package/dist/services/smartChunker.js +520 -0
  178. package/dist/services/smartChunker.js.map +1 -0
  179. package/dist/types/categories.d.ts +105 -0
  180. package/dist/types/categories.d.ts.map +1 -0
  181. package/dist/types/categories.js +108 -0
  182. package/dist/types/categories.js.map +1 -0
  183. package/dist/types/extractedKnowledge.d.ts +233 -0
  184. package/dist/types/extractedKnowledge.d.ts.map +1 -0
  185. package/dist/types/extractedKnowledge.js +56 -0
  186. package/dist/types/extractedKnowledge.js.map +1 -0
  187. package/dist/types/index.d.ts +9 -2
  188. package/dist/types/index.d.ts.map +1 -1
  189. package/dist/types/index.js +12 -1
  190. package/dist/types/index.js.map +1 -1
  191. package/dist/types/llmProvider.d.ts +282 -0
  192. package/dist/types/llmProvider.d.ts.map +1 -0
  193. package/dist/types/llmProvider.js +48 -0
  194. package/dist/types/llmProvider.js.map +1 -0
  195. package/dist/types/memory.d.ts +227 -0
  196. package/dist/types/memory.d.ts.map +1 -0
  197. package/dist/types/memory.js +76 -0
  198. package/dist/types/memory.js.map +1 -0
  199. package/dist/types/relationships.d.ts +167 -0
  200. package/dist/types/relationships.d.ts.map +1 -0
  201. package/dist/types/relationships.js +106 -0
  202. package/dist/types/relationships.js.map +1 -0
  203. package/dist/types/rulesOptimizer.d.ts +345 -0
  204. package/dist/types/rulesOptimizer.d.ts.map +1 -0
  205. package/dist/types/rulesOptimizer.js +22 -0
  206. package/dist/types/rulesOptimizer.js.map +1 -0
  207. package/docs/cursor-recursive-rag-memory-spec.md +4569 -0
  208. package/docs/cursor-recursive-rag-tasks.md +1355 -0
  209. package/package.json +6 -3
  210. package/restart-rag.sh +16 -0
@@ -0,0 +1,273 @@
1
+ /**
2
+ * RLM Safeguards - Anti-Pattern Mitigations
3
+ *
4
+ * Based on the Recursive Language Models paper's Negative Results (Appendix A),
5
+ * this service implements safeguards to prevent common anti-patterns:
6
+ *
7
+ * 1. Model-specific configurations (not one-size-fits-all)
8
+ * 2. Capability detection for code execution ability
9
+ * 3. Token budget management (reserve for answers)
10
+ * 4. Multi-signal termination detection (not just tags)
11
+ * 5. Sub-call throttling and caching
12
+ * 6. Circuit breaker for runaway trajectories
13
+ * 7. Model prior-based pre-filtering
14
+ */
15
+ import type { EnhancedChunk } from '../types/memory.js';
16
+ import type { LLMService } from './contextEnvironment.js';
17
+ export type CodeExecutionCapability = 'excellent' | 'good' | 'limited' | 'none';
18
+ export type RetrievalStrategy = 'direct' | 'iterative' | 'recursive';
19
+ export type CircuitBreakerState = 'closed' | 'open' | 'half-open';
20
+ export interface ModelCapabilities {
21
+ codeExecution: CodeExecutionCapability;
22
+ contextWindow: number;
23
+ outputTokens: number;
24
+ supportsStreaming: boolean;
25
+ supportsToolUse: boolean;
26
+ }
27
+ export interface ModelConfig {
28
+ maxSubCalls: number;
29
+ maxIterations: number;
30
+ warnOnExcessiveCalls: boolean;
31
+ costMultiplier: number;
32
+ requiresExtraWarnings: boolean;
33
+ preferredChunkSize: number;
34
+ }
35
+ export declare const DEFAULT_MODEL_CAPABILITIES: ModelCapabilities;
36
+ export declare const MODEL_CONFIGS: Record<string, ModelConfig>;
37
+ export declare const MODEL_CAPABILITIES: Record<string, ModelCapabilities>;
38
+ export interface TokenBudget {
39
+ totalOutputTokens: number;
40
+ reservedForAnswer: number;
41
+ maxThinkingTokens: number;
42
+ currentUsed: number;
43
+ }
44
+ export interface TerminationSignals {
45
+ explicitTag: boolean;
46
+ confidenceStatement: boolean;
47
+ noMoreActions: boolean;
48
+ answerValidation: boolean;
49
+ iterationLimitReached: boolean;
50
+ budgetExhausted: boolean;
51
+ }
52
+ export interface ValidationResult {
53
+ valid: boolean;
54
+ reason?: string;
55
+ confidence?: number;
56
+ }
57
+ /**
58
+ * Get model configuration, with fallback to default
59
+ */
60
+ export declare function getModelConfig(modelName: string): ModelConfig;
61
+ /**
62
+ * Get model capabilities, with fallback to default
63
+ */
64
+ export declare function getModelCapabilities(modelName: string): ModelCapabilities;
65
+ /**
66
+ * Choose retrieval strategy based on model capabilities and query complexity
67
+ */
68
+ export declare function chooseRetrievalStrategy(capabilities: ModelCapabilities, queryComplexity: 'simple' | 'moderate' | 'complex'): RetrievalStrategy;
69
+ /**
70
+ * Token Budget Manager
71
+ * Reserves output tokens for final answers to prevent running out
72
+ */
73
+ export declare class TokenBudgetManager {
74
+ private budget;
75
+ constructor(modelName: string, reserveRatio?: number);
76
+ canUseTokens(count: number): boolean;
77
+ useTokens(count: number): void;
78
+ getRemainingThinkingTokens(): number;
79
+ getReservedForAnswer(): number;
80
+ getBudget(): TokenBudget;
81
+ reset(): void;
82
+ }
83
+ /**
84
+ * Multi-Signal Termination Detector
85
+ * Uses multiple signals to determine when to terminate, not just tags
86
+ */
87
+ export declare class TerminationDetector {
88
+ private signals;
89
+ private requiredSignals;
90
+ constructor(requiredSignals?: number);
91
+ /**
92
+ * Check if response contains explicit termination tags
93
+ */
94
+ checkExplicitTag(response: string): boolean;
95
+ /**
96
+ * Check if response expresses confidence in the answer
97
+ */
98
+ checkConfidenceStatement(response: string): boolean;
99
+ /**
100
+ * Check if response doesn't request more operations
101
+ */
102
+ checkNoMoreActions(response: string): boolean;
103
+ /**
104
+ * Validate that answer is actually an answer, not a plan
105
+ */
106
+ validateAnswer(answer: string, query: string): ValidationResult;
107
+ /**
108
+ * Set iteration limit reached
109
+ */
110
+ setIterationLimitReached(): void;
111
+ /**
112
+ * Set budget exhausted
113
+ */
114
+ setBudgetExhausted(): void;
115
+ /**
116
+ * Check if we should terminate based on multiple signals
117
+ */
118
+ shouldTerminate(): {
119
+ terminate: boolean;
120
+ reason: string;
121
+ confidence: number;
122
+ };
123
+ /**
124
+ * Get current signals
125
+ */
126
+ getSignals(): TerminationSignals;
127
+ /**
128
+ * Reset signals
129
+ */
130
+ reset(): void;
131
+ }
132
+ /**
133
+ * Circuit Breaker for runaway trajectories
134
+ * Prevents excessive failures from consuming resources
135
+ */
136
+ export declare class CircuitBreaker {
137
+ private failures;
138
+ private lastFailure;
139
+ private state;
140
+ private threshold;
141
+ private resetTimeMs;
142
+ constructor(threshold?: number, resetTimeMs?: number);
143
+ execute<T>(operation: () => Promise<T>): Promise<T>;
144
+ private onSuccess;
145
+ private onFailure;
146
+ getState(): CircuitBreakerState;
147
+ getFailures(): number;
148
+ reset(): void;
149
+ }
150
+ /**
151
+ * Sub-Call Throttler with Caching
152
+ * Prevents excessive sub-calls and caches results
153
+ */
154
+ export declare class SubCallThrottler {
155
+ private callCounts;
156
+ private cache;
157
+ private maxCallsPerKey;
158
+ private cacheTtlMs;
159
+ constructor(maxCallsPerKey?: number, cacheTtlMs?: number);
160
+ throttledCall(key: string, llm: LLMService, prompt: string, options?: {
161
+ maxTokens?: number;
162
+ temperature?: number;
163
+ }): Promise<string>;
164
+ private hashPrompt;
165
+ getCallCount(key: string): number;
166
+ getCacheSize(): number;
167
+ clearCache(): void;
168
+ reset(): void;
169
+ }
170
+ /**
171
+ * Model Prior-Based Pre-Filter
172
+ * Filters context using patterns before semantic analysis
173
+ */
174
+ export declare class PriorBasedFilter {
175
+ /**
176
+ * Pre-filter chunks using keyword patterns
177
+ */
178
+ filterByKeywords(chunks: EnhancedChunk[], keywords: string[], options?: {
179
+ matchAll?: boolean;
180
+ caseSensitive?: boolean;
181
+ }): EnhancedChunk[];
182
+ /**
183
+ * Extract keywords from query using heuristics
184
+ */
185
+ extractQueryKeywords(query: string): string[];
186
+ /**
187
+ * Smart pre-filter that combines multiple strategies
188
+ */
189
+ smartPreFilter(chunks: EnhancedChunk[], query: string, maxChunks?: number): EnhancedChunk[];
190
+ }
191
+ /**
192
+ * RLM Safeguards Coordinator
193
+ * Combines all safeguards into a single interface
194
+ */
195
+ export declare class RLMSafeguards {
196
+ private tokenBudget;
197
+ private terminationDetector;
198
+ private circuitBreaker;
199
+ private throttler;
200
+ private priorFilter;
201
+ private modelConfig;
202
+ private modelCapabilities;
203
+ constructor(modelName: string, options?: {
204
+ requiredTerminationSignals?: number;
205
+ circuitBreakerThreshold?: number;
206
+ circuitBreakerResetMs?: number;
207
+ maxSubCallsPerKey?: number;
208
+ cacheTtlMs?: number;
209
+ });
210
+ /**
211
+ * Choose appropriate retrieval strategy
212
+ */
213
+ chooseStrategy(queryComplexity: 'simple' | 'moderate' | 'complex'): RetrievalStrategy;
214
+ /**
215
+ * Pre-filter chunks before processing
216
+ */
217
+ preFilter(chunks: EnhancedChunk[], query: string, maxChunks?: number): EnhancedChunk[];
218
+ /**
219
+ * Execute a sub-call with all safeguards
220
+ */
221
+ safeSubCall(key: string, llm: LLMService, prompt: string, options?: {
222
+ maxTokens?: number;
223
+ temperature?: number;
224
+ }): Promise<string>;
225
+ /**
226
+ * Check response and update termination signals
227
+ */
228
+ checkResponse(response: string, query: string): {
229
+ terminate: boolean;
230
+ reason: string;
231
+ confidence: number;
232
+ };
233
+ /**
234
+ * Mark iteration limit reached
235
+ */
236
+ markIterationLimitReached(): void;
237
+ /**
238
+ * Mark budget exhausted
239
+ */
240
+ markBudgetExhausted(): void;
241
+ /**
242
+ * Get model configuration
243
+ */
244
+ getModelConfig(): ModelConfig;
245
+ /**
246
+ * Get model capabilities
247
+ */
248
+ getModelCapabilities(): ModelCapabilities;
249
+ /**
250
+ * Get current state
251
+ */
252
+ getState(): {
253
+ tokenBudget: TokenBudget;
254
+ terminationSignals: TerminationSignals;
255
+ circuitBreakerState: CircuitBreakerState;
256
+ cacheSize: number;
257
+ };
258
+ /**
259
+ * Reset all state
260
+ */
261
+ reset(): void;
262
+ }
263
+ export interface RLMSafeguardsOptions {
264
+ requiredTerminationSignals?: number;
265
+ circuitBreakerThreshold?: number;
266
+ circuitBreakerResetMs?: number;
267
+ maxSubCallsPerKey?: number;
268
+ cacheTtlMs?: number;
269
+ }
270
+ export declare function createRLMSafeguards(modelName: string, options?: RLMSafeguardsOptions): RLMSafeguards;
271
+ export declare function getRLMSafeguards(modelName?: string, options?: RLMSafeguardsOptions): RLMSafeguards;
272
+ export declare function resetRLMSafeguards(): void;
273
+ //# sourceMappingURL=rlmSafeguards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rlmSafeguards.d.ts","sourceRoot":"","sources":["../../src/services/rlmSafeguards.ts"],"names":[],"mappings":"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"}