cursor-recursive-rag 0.2.0-alpha.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 (144) hide show
  1. package/README.md +354 -0
  2. package/bin/cursor-rag.js +18 -0
  3. package/dist/adapters/embeddings/index.d.ts +5 -0
  4. package/dist/adapters/embeddings/index.d.ts.map +1 -0
  5. package/dist/adapters/embeddings/index.js +16 -0
  6. package/dist/adapters/embeddings/index.js.map +1 -0
  7. package/dist/adapters/embeddings/ollama.d.ts +11 -0
  8. package/dist/adapters/embeddings/ollama.d.ts.map +1 -0
  9. package/dist/adapters/embeddings/ollama.js +30 -0
  10. package/dist/adapters/embeddings/ollama.js.map +1 -0
  11. package/dist/adapters/embeddings/openai.d.ts +11 -0
  12. package/dist/adapters/embeddings/openai.d.ts.map +1 -0
  13. package/dist/adapters/embeddings/openai.js +28 -0
  14. package/dist/adapters/embeddings/openai.js.map +1 -0
  15. package/dist/adapters/embeddings/types.d.ts +6 -0
  16. package/dist/adapters/embeddings/types.d.ts.map +1 -0
  17. package/dist/adapters/embeddings/types.js +2 -0
  18. package/dist/adapters/embeddings/types.js.map +1 -0
  19. package/dist/adapters/embeddings/xenova.d.ts +11 -0
  20. package/dist/adapters/embeddings/xenova.d.ts.map +1 -0
  21. package/dist/adapters/embeddings/xenova.js +26 -0
  22. package/dist/adapters/embeddings/xenova.js.map +1 -0
  23. package/dist/adapters/vector/chroma.d.ts +23 -0
  24. package/dist/adapters/vector/chroma.d.ts.map +1 -0
  25. package/dist/adapters/vector/chroma.js +91 -0
  26. package/dist/adapters/vector/chroma.js.map +1 -0
  27. package/dist/adapters/vector/index.d.ts +5 -0
  28. package/dist/adapters/vector/index.d.ts.map +1 -0
  29. package/dist/adapters/vector/index.js +22 -0
  30. package/dist/adapters/vector/index.js.map +1 -0
  31. package/dist/adapters/vector/memory.d.ts +22 -0
  32. package/dist/adapters/vector/memory.d.ts.map +1 -0
  33. package/dist/adapters/vector/memory.js +105 -0
  34. package/dist/adapters/vector/memory.js.map +1 -0
  35. package/dist/adapters/vector/qdrant.d.ts +14 -0
  36. package/dist/adapters/vector/qdrant.d.ts.map +1 -0
  37. package/dist/adapters/vector/qdrant.js +120 -0
  38. package/dist/adapters/vector/qdrant.js.map +1 -0
  39. package/dist/adapters/vector/redis.d.ts +31 -0
  40. package/dist/adapters/vector/redis.d.ts.map +1 -0
  41. package/dist/adapters/vector/redis.js +164 -0
  42. package/dist/adapters/vector/redis.js.map +1 -0
  43. package/dist/adapters/vector/vectorize.d.ts +10 -0
  44. package/dist/adapters/vector/vectorize.d.ts.map +1 -0
  45. package/dist/adapters/vector/vectorize.js +22 -0
  46. package/dist/adapters/vector/vectorize.js.map +1 -0
  47. package/dist/cli/commands/dashboard.d.ts +3 -0
  48. package/dist/cli/commands/dashboard.d.ts.map +1 -0
  49. package/dist/cli/commands/dashboard.js +23 -0
  50. package/dist/cli/commands/dashboard.js.map +1 -0
  51. package/dist/cli/commands/ingest.d.ts +3 -0
  52. package/dist/cli/commands/ingest.d.ts.map +1 -0
  53. package/dist/cli/commands/ingest.js +133 -0
  54. package/dist/cli/commands/ingest.js.map +1 -0
  55. package/dist/cli/commands/search.d.ts +3 -0
  56. package/dist/cli/commands/search.d.ts.map +1 -0
  57. package/dist/cli/commands/search.js +39 -0
  58. package/dist/cli/commands/search.js.map +1 -0
  59. package/dist/cli/commands/setup.d.ts +3 -0
  60. package/dist/cli/commands/setup.d.ts.map +1 -0
  61. package/dist/cli/commands/setup.js +311 -0
  62. package/dist/cli/commands/setup.js.map +1 -0
  63. package/dist/cli/commands/status.d.ts +3 -0
  64. package/dist/cli/commands/status.d.ts.map +1 -0
  65. package/dist/cli/commands/status.js +39 -0
  66. package/dist/cli/commands/status.js.map +1 -0
  67. package/dist/cli/index.d.ts +3 -0
  68. package/dist/cli/index.d.ts.map +1 -0
  69. package/dist/cli/index.js +34 -0
  70. package/dist/cli/index.js.map +1 -0
  71. package/dist/dashboard/public/index.html +819 -0
  72. package/dist/dashboard/server.d.ts +10 -0
  73. package/dist/dashboard/server.d.ts.map +1 -0
  74. package/dist/dashboard/server.js +397 -0
  75. package/dist/dashboard/server.js.map +1 -0
  76. package/dist/integrations/index.d.ts +3 -0
  77. package/dist/integrations/index.d.ts.map +1 -0
  78. package/dist/integrations/index.js +3 -0
  79. package/dist/integrations/index.js.map +1 -0
  80. package/dist/integrations/mcp-gateway.d.ts +91 -0
  81. package/dist/integrations/mcp-gateway.d.ts.map +1 -0
  82. package/dist/integrations/mcp-gateway.js +128 -0
  83. package/dist/integrations/mcp-gateway.js.map +1 -0
  84. package/dist/integrations/openskills.d.ts +67 -0
  85. package/dist/integrations/openskills.d.ts.map +1 -0
  86. package/dist/integrations/openskills.js +223 -0
  87. package/dist/integrations/openskills.js.map +1 -0
  88. package/dist/proxy/index.d.ts +29 -0
  89. package/dist/proxy/index.d.ts.map +1 -0
  90. package/dist/proxy/index.js +124 -0
  91. package/dist/proxy/index.js.map +1 -0
  92. package/dist/server/index.d.ts +2 -0
  93. package/dist/server/index.d.ts.map +1 -0
  94. package/dist/server/index.js +43 -0
  95. package/dist/server/index.js.map +1 -0
  96. package/dist/server/tools/crawl.d.ts +15 -0
  97. package/dist/server/tools/crawl.d.ts.map +1 -0
  98. package/dist/server/tools/crawl.js +97 -0
  99. package/dist/server/tools/crawl.js.map +1 -0
  100. package/dist/server/tools/gateway.d.ts +27 -0
  101. package/dist/server/tools/gateway.d.ts.map +1 -0
  102. package/dist/server/tools/gateway.js +58 -0
  103. package/dist/server/tools/gateway.js.map +1 -0
  104. package/dist/server/tools/index.d.ts +10 -0
  105. package/dist/server/tools/index.d.ts.map +1 -0
  106. package/dist/server/tools/index.js +302 -0
  107. package/dist/server/tools/index.js.map +1 -0
  108. package/dist/server/tools/ingest.d.ts +15 -0
  109. package/dist/server/tools/ingest.d.ts.map +1 -0
  110. package/dist/server/tools/ingest.js +84 -0
  111. package/dist/server/tools/ingest.js.map +1 -0
  112. package/dist/server/tools/list-sources.d.ts +9 -0
  113. package/dist/server/tools/list-sources.d.ts.map +1 -0
  114. package/dist/server/tools/list-sources.js +63 -0
  115. package/dist/server/tools/list-sources.js.map +1 -0
  116. package/dist/server/tools/recursive-query.d.ts +16 -0
  117. package/dist/server/tools/recursive-query.d.ts.map +1 -0
  118. package/dist/server/tools/recursive-query.js +65 -0
  119. package/dist/server/tools/recursive-query.js.map +1 -0
  120. package/dist/server/tools/search.d.ts +15 -0
  121. package/dist/server/tools/search.d.ts.map +1 -0
  122. package/dist/server/tools/search.js +20 -0
  123. package/dist/server/tools/search.js.map +1 -0
  124. package/dist/server/tools/skills.d.ts +30 -0
  125. package/dist/server/tools/skills.d.ts.map +1 -0
  126. package/dist/server/tools/skills.js +85 -0
  127. package/dist/server/tools/skills.js.map +1 -0
  128. package/dist/services/chunker.d.ts +3 -0
  129. package/dist/services/chunker.d.ts.map +1 -0
  130. package/dist/services/chunker.js +75 -0
  131. package/dist/services/chunker.js.map +1 -0
  132. package/dist/services/config.d.ts +8 -0
  133. package/dist/services/config.d.ts.map +1 -0
  134. package/dist/services/config.js +66 -0
  135. package/dist/services/config.js.map +1 -0
  136. package/dist/services/query-decomposer.d.ts +44 -0
  137. package/dist/services/query-decomposer.d.ts.map +1 -0
  138. package/dist/services/query-decomposer.js +79 -0
  139. package/dist/services/query-decomposer.js.map +1 -0
  140. package/dist/types/index.d.ts +93 -0
  141. package/dist/types/index.d.ts.map +1 -0
  142. package/dist/types/index.js +2 -0
  143. package/dist/types/index.js.map +1 -0
  144. package/package.json +56 -0
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Query decomposition for recursive RAG
3
+ *
4
+ * This service breaks down complex queries into sub-questions
5
+ * and generates follow-up questions based on retrieved context.
6
+ */
7
+ /**
8
+ * Decompose a complex query into sub-questions
9
+ *
10
+ * For now, uses simple heuristics. In the future, this could use
11
+ * an LLM to intelligently decompose queries.
12
+ */
13
+ export function decomposeQuery(query) {
14
+ // Simple heuristic: split by "and" or commas if they appear to separate distinct questions
15
+ const parts = query.split(/\s+(?:and|,)\s+/i).filter(p => p.trim().length > 0);
16
+ // If query seems complex (long, multiple clauses), split it
17
+ if (parts.length > 1 && parts.every(p => p.includes('?'))) {
18
+ return parts.map(p => p.trim());
19
+ }
20
+ // Check for multiple question patterns
21
+ const questionMarks = (query.match(/\?/g) || []).length;
22
+ if (questionMarks > 1) {
23
+ // Split by question marks
24
+ return query.split(/\?+/)
25
+ .map(q => q.trim())
26
+ .filter(q => q.length > 0)
27
+ .map(q => q + '?');
28
+ }
29
+ // Single question - return as is
30
+ return [query];
31
+ }
32
+ /**
33
+ * Generate follow-up questions based on retrieved context and original query
34
+ *
35
+ * This is a placeholder for a more sophisticated implementation that would:
36
+ * 1. Analyze gaps in the retrieved context
37
+ * 2. Identify entities or concepts that need more detail
38
+ * 3. Generate targeted follow-up queries
39
+ */
40
+ export function generateFollowUps(originalQuery, context, maxFollowUps = 3) {
41
+ const followUps = [];
42
+ // Simple heuristic: if we have few chunks, generate follow-ups
43
+ const totalChunks = context.reduce((sum, c) => sum + c.chunks.length, 0);
44
+ if (totalChunks < 5) {
45
+ // Try to identify what's missing
46
+ const lowerQuery = originalQuery.toLowerCase();
47
+ if (lowerQuery.includes('how')) {
48
+ followUps.push({
49
+ query: `What are the steps to ${originalQuery.replace(/how\s+/i, '')}`,
50
+ reasoning: 'Need more detailed steps'
51
+ });
52
+ }
53
+ if (lowerQuery.includes('why')) {
54
+ followUps.push({
55
+ query: `What are the reasons for ${originalQuery.replace(/why\s+/i, '')}`,
56
+ reasoning: 'Need more context on reasons'
57
+ });
58
+ }
59
+ }
60
+ return followUps.slice(0, maxFollowUps);
61
+ }
62
+ /**
63
+ * Assess confidence that we have sufficient information to answer the query
64
+ *
65
+ * Simple heuristic based on number of chunks and their relevance scores
66
+ */
67
+ export function assessConfidence(query, context) {
68
+ // Count relevant chunks (score > 0.7)
69
+ const relevantChunks = context.reduce((sum, c) => {
70
+ return sum + c.chunks.filter(chunk => (chunk.score || 0) > 0.7).length;
71
+ }, 0);
72
+ // More chunks = higher confidence (capped)
73
+ const baseConfidence = Math.min(relevantChunks / 10, 0.9);
74
+ // Multiple iterations = we've done some exploration
75
+ const maxIteration = Math.max(...context.map(c => c.iteration || 0));
76
+ const iterationBonus = Math.min(maxIteration * 0.1, 0.2);
77
+ return Math.min(baseConfidence + iterationBonus, 1.0);
78
+ }
79
+ //# sourceMappingURL=query-decomposer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-decomposer.js","sourceRoot":"","sources":["../../src/services/query-decomposer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ export interface VectorStore {
2
+ add(docs: VectorDocument[]): Promise<void>;
3
+ search(embedding: number[], options: SearchOptions): Promise<SearchResult[]>;
4
+ delete(ids: string[]): Promise<void>;
5
+ count(): Promise<number>;
6
+ }
7
+ export interface VectorDocument {
8
+ id: string;
9
+ embedding: number[];
10
+ content: string;
11
+ metadata: Record<string, any>;
12
+ }
13
+ export interface ProxyConfig {
14
+ enabled: boolean;
15
+ driver: 'packetstream' | 'smartproxy' | 'none';
16
+ host?: string;
17
+ port?: number;
18
+ username?: string;
19
+ password?: string;
20
+ }
21
+ export interface SearchResult {
22
+ id: string;
23
+ content: string;
24
+ metadata: Record<string, any>;
25
+ score: number;
26
+ }
27
+ export interface SearchOptions {
28
+ topK: number;
29
+ filter?: Record<string, any>;
30
+ }
31
+ export interface MCPGatewayConfig {
32
+ enabled: boolean;
33
+ url: string;
34
+ apiKey?: string;
35
+ }
36
+ export interface OpenSkillsConfig {
37
+ enabled: boolean;
38
+ autoIngestSkills: boolean;
39
+ skillPaths?: string[];
40
+ }
41
+ export interface RAGConfig {
42
+ vectorStore: 'memory' | 'chroma' | 'qdrant' | 'redis' | 'vectorize';
43
+ embeddings: 'xenova' | 'openai' | 'ollama';
44
+ apiKeys?: {
45
+ openai?: string;
46
+ firecrawl?: string;
47
+ qdrant?: {
48
+ url?: string;
49
+ apiKey?: string;
50
+ };
51
+ redis?: {
52
+ url?: string;
53
+ };
54
+ ollama?: {
55
+ baseUrl?: string;
56
+ model?: string;
57
+ };
58
+ };
59
+ vectorStoreConfig?: {
60
+ chromaUrl?: string;
61
+ redisUrl?: string;
62
+ vectorDim?: number;
63
+ [key: string]: any;
64
+ };
65
+ proxy?: ProxyConfig;
66
+ dashboard?: {
67
+ enabled: boolean;
68
+ port: number;
69
+ auth?: {
70
+ username: string;
71
+ password: string;
72
+ };
73
+ };
74
+ mcpGateway?: MCPGatewayConfig;
75
+ openSkills?: OpenSkillsConfig;
76
+ }
77
+ export interface ChunkOptions {
78
+ chunkSize?: number;
79
+ chunkOverlap?: number;
80
+ respectBoundaries?: boolean;
81
+ }
82
+ export interface Chunk {
83
+ text: string;
84
+ index: number;
85
+ metadata?: Record<string, any>;
86
+ }
87
+ export interface RecursiveQueryResult {
88
+ answer: string;
89
+ sources: SearchResult[];
90
+ iterations: number;
91
+ subQuestions: string[];
92
+ }
93
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "cursor-recursive-rag",
3
+ "version": "0.2.0-alpha.1",
4
+ "description": "Recursive RAG MCP server for Cursor IDE with interactive setup",
5
+ "type": "module",
6
+ "bin": {
7
+ "cursor-rag": "bin/cursor-rag.js"
8
+ },
9
+ "main": "./dist/server/index.js",
10
+ "scripts": {
11
+ "build": "tsc && npm run copy-static",
12
+ "copy-static": "mkdir -p dist/dashboard/public && cp -r src/dashboard/public/* dist/dashboard/public/",
13
+ "dev": "tsx watch src/cli/index.ts",
14
+ "start:server": "node dist/server/index.js",
15
+ "prepublishOnly": "npm run build",
16
+ "version:patch": "npm version patch --no-git-tag-version",
17
+ "version:minor": "npm version minor --no-git-tag-version",
18
+ "version:major": "npm version major --no-git-tag-version",
19
+ "release": "npm run build && git add -A && git commit -m \"chore: release v$(node -p \"require('./package.json').version\")\" && git tag v$(node -p \"require('./package.json').version\") && git push && git push --tags"
20
+ },
21
+ "keywords": [
22
+ "cursor",
23
+ "mcp",
24
+ "rag",
25
+ "recursive-rag",
26
+ "vector-store",
27
+ "embeddings"
28
+ ],
29
+ "author": "garethdaine",
30
+ "license": "MIT",
31
+ "engines": {
32
+ "node": ">=20.0.0"
33
+ },
34
+ "dependencies": {
35
+ "@modelcontextprotocol/sdk": "^1.0.0",
36
+ "@mendable/firecrawl-js": "^1.0.0",
37
+ "@qdrant/js-client-rest": "^1.9.0",
38
+ "@xenova/transformers": "^2.17.0",
39
+ "chalk": "^5.3.0",
40
+ "chromadb": "^1.8.0",
41
+ "commander": "^12.0.0",
42
+ "inquirer": "^9.2.0",
43
+ "ollama": "^0.5.0",
44
+ "openai": "^4.50.0",
45
+ "ora": "^8.0.0",
46
+ "redis": "^4.6.0",
47
+ "tiktoken": "^1.0.0",
48
+ "zod": "^3.23.0"
49
+ },
50
+ "devDependencies": {
51
+ "@types/inquirer": "^9.0.7",
52
+ "@types/node": "^20.11.0",
53
+ "tsx": "^4.7.1",
54
+ "typescript": "^5.3.3"
55
+ }
56
+ }