cccmemory 1.8.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 (216) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +349 -0
  3. package/dist/ConversationMemory.d.ts +231 -0
  4. package/dist/ConversationMemory.d.ts.map +1 -0
  5. package/dist/ConversationMemory.js +357 -0
  6. package/dist/ConversationMemory.js.map +1 -0
  7. package/dist/cache/QueryCache.d.ts +215 -0
  8. package/dist/cache/QueryCache.d.ts.map +1 -0
  9. package/dist/cache/QueryCache.js +294 -0
  10. package/dist/cache/QueryCache.js.map +1 -0
  11. package/dist/cli/commands.d.ts +9 -0
  12. package/dist/cli/commands.d.ts.map +1 -0
  13. package/dist/cli/commands.js +954 -0
  14. package/dist/cli/commands.js.map +1 -0
  15. package/dist/cli/help.d.ts +16 -0
  16. package/dist/cli/help.d.ts.map +1 -0
  17. package/dist/cli/help.js +361 -0
  18. package/dist/cli/help.js.map +1 -0
  19. package/dist/cli/index.d.ts +30 -0
  20. package/dist/cli/index.d.ts.map +1 -0
  21. package/dist/cli/index.js +111 -0
  22. package/dist/cli/index.js.map +1 -0
  23. package/dist/context/ContextInjector.d.ts +38 -0
  24. package/dist/context/ContextInjector.d.ts.map +1 -0
  25. package/dist/context/ContextInjector.js +235 -0
  26. package/dist/context/ContextInjector.js.map +1 -0
  27. package/dist/documentation/CodeAnalyzer.d.ts +29 -0
  28. package/dist/documentation/CodeAnalyzer.d.ts.map +1 -0
  29. package/dist/documentation/CodeAnalyzer.js +122 -0
  30. package/dist/documentation/CodeAnalyzer.js.map +1 -0
  31. package/dist/documentation/ConversationAnalyzer.d.ts +19 -0
  32. package/dist/documentation/ConversationAnalyzer.d.ts.map +1 -0
  33. package/dist/documentation/ConversationAnalyzer.js +157 -0
  34. package/dist/documentation/ConversationAnalyzer.js.map +1 -0
  35. package/dist/documentation/CrossReferencer.d.ts +67 -0
  36. package/dist/documentation/CrossReferencer.d.ts.map +1 -0
  37. package/dist/documentation/CrossReferencer.js +247 -0
  38. package/dist/documentation/CrossReferencer.js.map +1 -0
  39. package/dist/documentation/DocumentationGenerator.d.ts +22 -0
  40. package/dist/documentation/DocumentationGenerator.d.ts.map +1 -0
  41. package/dist/documentation/DocumentationGenerator.js +57 -0
  42. package/dist/documentation/DocumentationGenerator.js.map +1 -0
  43. package/dist/documentation/MarkdownFormatter.d.ts +26 -0
  44. package/dist/documentation/MarkdownFormatter.d.ts.map +1 -0
  45. package/dist/documentation/MarkdownFormatter.js +301 -0
  46. package/dist/documentation/MarkdownFormatter.js.map +1 -0
  47. package/dist/documentation/types.d.ts +176 -0
  48. package/dist/documentation/types.d.ts.map +1 -0
  49. package/dist/documentation/types.js +5 -0
  50. package/dist/documentation/types.js.map +1 -0
  51. package/dist/embeddings/ConfigManager.d.ts +46 -0
  52. package/dist/embeddings/ConfigManager.d.ts.map +1 -0
  53. package/dist/embeddings/ConfigManager.js +177 -0
  54. package/dist/embeddings/ConfigManager.js.map +1 -0
  55. package/dist/embeddings/EmbeddingConfig.d.ts +39 -0
  56. package/dist/embeddings/EmbeddingConfig.d.ts.map +1 -0
  57. package/dist/embeddings/EmbeddingConfig.js +132 -0
  58. package/dist/embeddings/EmbeddingConfig.js.map +1 -0
  59. package/dist/embeddings/EmbeddingGenerator.d.ts +51 -0
  60. package/dist/embeddings/EmbeddingGenerator.d.ts.map +1 -0
  61. package/dist/embeddings/EmbeddingGenerator.js +157 -0
  62. package/dist/embeddings/EmbeddingGenerator.js.map +1 -0
  63. package/dist/embeddings/EmbeddingProvider.d.ts +34 -0
  64. package/dist/embeddings/EmbeddingProvider.d.ts.map +1 -0
  65. package/dist/embeddings/EmbeddingProvider.js +6 -0
  66. package/dist/embeddings/EmbeddingProvider.js.map +1 -0
  67. package/dist/embeddings/ModelRegistry.d.ts +48 -0
  68. package/dist/embeddings/ModelRegistry.d.ts.map +1 -0
  69. package/dist/embeddings/ModelRegistry.js +170 -0
  70. package/dist/embeddings/ModelRegistry.js.map +1 -0
  71. package/dist/embeddings/VectorStore.d.ts +114 -0
  72. package/dist/embeddings/VectorStore.d.ts.map +1 -0
  73. package/dist/embeddings/VectorStore.js +393 -0
  74. package/dist/embeddings/VectorStore.js.map +1 -0
  75. package/dist/embeddings/providers/OllamaEmbeddings.d.ts +38 -0
  76. package/dist/embeddings/providers/OllamaEmbeddings.d.ts.map +1 -0
  77. package/dist/embeddings/providers/OllamaEmbeddings.js +125 -0
  78. package/dist/embeddings/providers/OllamaEmbeddings.js.map +1 -0
  79. package/dist/embeddings/providers/OpenAIEmbeddings.d.ts +40 -0
  80. package/dist/embeddings/providers/OpenAIEmbeddings.d.ts.map +1 -0
  81. package/dist/embeddings/providers/OpenAIEmbeddings.js +129 -0
  82. package/dist/embeddings/providers/OpenAIEmbeddings.js.map +1 -0
  83. package/dist/embeddings/providers/TransformersEmbeddings.d.ts +38 -0
  84. package/dist/embeddings/providers/TransformersEmbeddings.d.ts.map +1 -0
  85. package/dist/embeddings/providers/TransformersEmbeddings.js +115 -0
  86. package/dist/embeddings/providers/TransformersEmbeddings.js.map +1 -0
  87. package/dist/handoff/SessionHandoffStore.d.ts +80 -0
  88. package/dist/handoff/SessionHandoffStore.d.ts.map +1 -0
  89. package/dist/handoff/SessionHandoffStore.js +314 -0
  90. package/dist/handoff/SessionHandoffStore.js.map +1 -0
  91. package/dist/index.d.ts +7 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +115 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/mcp-server.d.ts +27 -0
  96. package/dist/mcp-server.d.ts.map +1 -0
  97. package/dist/mcp-server.js +157 -0
  98. package/dist/mcp-server.js.map +1 -0
  99. package/dist/memory/WorkingMemoryStore.d.ts +83 -0
  100. package/dist/memory/WorkingMemoryStore.d.ts.map +1 -0
  101. package/dist/memory/WorkingMemoryStore.js +318 -0
  102. package/dist/memory/WorkingMemoryStore.js.map +1 -0
  103. package/dist/memory/types.d.ts +192 -0
  104. package/dist/memory/types.d.ts.map +1 -0
  105. package/dist/memory/types.js +8 -0
  106. package/dist/memory/types.js.map +1 -0
  107. package/dist/parsers/CodexConversationParser.d.ts +51 -0
  108. package/dist/parsers/CodexConversationParser.d.ts.map +1 -0
  109. package/dist/parsers/CodexConversationParser.js +301 -0
  110. package/dist/parsers/CodexConversationParser.js.map +1 -0
  111. package/dist/parsers/ConversationParser.d.ts +286 -0
  112. package/dist/parsers/ConversationParser.d.ts.map +1 -0
  113. package/dist/parsers/ConversationParser.js +795 -0
  114. package/dist/parsers/ConversationParser.js.map +1 -0
  115. package/dist/parsers/DecisionExtractor.d.ts +144 -0
  116. package/dist/parsers/DecisionExtractor.d.ts.map +1 -0
  117. package/dist/parsers/DecisionExtractor.js +434 -0
  118. package/dist/parsers/DecisionExtractor.js.map +1 -0
  119. package/dist/parsers/GitIntegrator.d.ts +156 -0
  120. package/dist/parsers/GitIntegrator.d.ts.map +1 -0
  121. package/dist/parsers/GitIntegrator.js +348 -0
  122. package/dist/parsers/GitIntegrator.js.map +1 -0
  123. package/dist/parsers/MistakeExtractor.d.ts +151 -0
  124. package/dist/parsers/MistakeExtractor.d.ts.map +1 -0
  125. package/dist/parsers/MistakeExtractor.js +460 -0
  126. package/dist/parsers/MistakeExtractor.js.map +1 -0
  127. package/dist/parsers/RequirementsExtractor.d.ts +166 -0
  128. package/dist/parsers/RequirementsExtractor.d.ts.map +1 -0
  129. package/dist/parsers/RequirementsExtractor.js +338 -0
  130. package/dist/parsers/RequirementsExtractor.js.map +1 -0
  131. package/dist/realtime/ConversationWatcher.d.ts +87 -0
  132. package/dist/realtime/ConversationWatcher.d.ts.map +1 -0
  133. package/dist/realtime/ConversationWatcher.js +204 -0
  134. package/dist/realtime/ConversationWatcher.js.map +1 -0
  135. package/dist/realtime/IncrementalParser.d.ts +83 -0
  136. package/dist/realtime/IncrementalParser.d.ts.map +1 -0
  137. package/dist/realtime/IncrementalParser.js +232 -0
  138. package/dist/realtime/IncrementalParser.js.map +1 -0
  139. package/dist/realtime/LiveExtractor.d.ts +72 -0
  140. package/dist/realtime/LiveExtractor.d.ts.map +1 -0
  141. package/dist/realtime/LiveExtractor.js +288 -0
  142. package/dist/realtime/LiveExtractor.js.map +1 -0
  143. package/dist/search/SemanticSearch.d.ts +121 -0
  144. package/dist/search/SemanticSearch.d.ts.map +1 -0
  145. package/dist/search/SemanticSearch.js +823 -0
  146. package/dist/search/SemanticSearch.js.map +1 -0
  147. package/dist/storage/BackupManager.d.ts +58 -0
  148. package/dist/storage/BackupManager.d.ts.map +1 -0
  149. package/dist/storage/BackupManager.js +223 -0
  150. package/dist/storage/BackupManager.js.map +1 -0
  151. package/dist/storage/ConversationStorage.d.ts +341 -0
  152. package/dist/storage/ConversationStorage.d.ts.map +1 -0
  153. package/dist/storage/ConversationStorage.js +792 -0
  154. package/dist/storage/ConversationStorage.js.map +1 -0
  155. package/dist/storage/DeletionService.d.ts +70 -0
  156. package/dist/storage/DeletionService.d.ts.map +1 -0
  157. package/dist/storage/DeletionService.js +253 -0
  158. package/dist/storage/DeletionService.js.map +1 -0
  159. package/dist/storage/GlobalIndex.d.ts +133 -0
  160. package/dist/storage/GlobalIndex.d.ts.map +1 -0
  161. package/dist/storage/GlobalIndex.js +310 -0
  162. package/dist/storage/GlobalIndex.js.map +1 -0
  163. package/dist/storage/SQLiteManager.d.ts +114 -0
  164. package/dist/storage/SQLiteManager.d.ts.map +1 -0
  165. package/dist/storage/SQLiteManager.js +636 -0
  166. package/dist/storage/SQLiteManager.js.map +1 -0
  167. package/dist/storage/migrations.d.ts +54 -0
  168. package/dist/storage/migrations.d.ts.map +1 -0
  169. package/dist/storage/migrations.js +285 -0
  170. package/dist/storage/migrations.js.map +1 -0
  171. package/dist/storage/schema.sql +436 -0
  172. package/dist/tools/ToolDefinitions.d.ts +946 -0
  173. package/dist/tools/ToolDefinitions.d.ts.map +1 -0
  174. package/dist/tools/ToolDefinitions.js +937 -0
  175. package/dist/tools/ToolDefinitions.js.map +1 -0
  176. package/dist/tools/ToolHandlers.d.ts +791 -0
  177. package/dist/tools/ToolHandlers.d.ts.map +1 -0
  178. package/dist/tools/ToolHandlers.js +3262 -0
  179. package/dist/tools/ToolHandlers.js.map +1 -0
  180. package/dist/types/ToolTypes.d.ts +824 -0
  181. package/dist/types/ToolTypes.d.ts.map +1 -0
  182. package/dist/types/ToolTypes.js +6 -0
  183. package/dist/types/ToolTypes.js.map +1 -0
  184. package/dist/utils/Logger.d.ts +70 -0
  185. package/dist/utils/Logger.d.ts.map +1 -0
  186. package/dist/utils/Logger.js +131 -0
  187. package/dist/utils/Logger.js.map +1 -0
  188. package/dist/utils/McpConfig.d.ts +54 -0
  189. package/dist/utils/McpConfig.d.ts.map +1 -0
  190. package/dist/utils/McpConfig.js +136 -0
  191. package/dist/utils/McpConfig.js.map +1 -0
  192. package/dist/utils/ProjectMigration.d.ts +82 -0
  193. package/dist/utils/ProjectMigration.d.ts.map +1 -0
  194. package/dist/utils/ProjectMigration.js +416 -0
  195. package/dist/utils/ProjectMigration.js.map +1 -0
  196. package/dist/utils/constants.d.ts +75 -0
  197. package/dist/utils/constants.d.ts.map +1 -0
  198. package/dist/utils/constants.js +105 -0
  199. package/dist/utils/constants.js.map +1 -0
  200. package/dist/utils/safeJson.d.ts +37 -0
  201. package/dist/utils/safeJson.d.ts.map +1 -0
  202. package/dist/utils/safeJson.js +48 -0
  203. package/dist/utils/safeJson.js.map +1 -0
  204. package/dist/utils/sanitization.d.ts +45 -0
  205. package/dist/utils/sanitization.d.ts.map +1 -0
  206. package/dist/utils/sanitization.js +153 -0
  207. package/dist/utils/sanitization.js.map +1 -0
  208. package/dist/utils/worktree.d.ts +15 -0
  209. package/dist/utils/worktree.d.ts.map +1 -0
  210. package/dist/utils/worktree.js +86 -0
  211. package/dist/utils/worktree.js.map +1 -0
  212. package/package.json +98 -0
  213. package/scripts/changelog-check.sh +62 -0
  214. package/scripts/check-node.js +17 -0
  215. package/scripts/dev-config.js +56 -0
  216. package/scripts/postinstall.js +117 -0
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Centralized registry of all supported embedding models
3
+ * Single source of truth for model information, dimensions, and metadata
4
+ */
5
+ export interface ModelInfo {
6
+ name: string;
7
+ dimensions: number;
8
+ provider: "ollama" | "transformers" | "openai";
9
+ description: string;
10
+ quality: "low" | "medium" | "high" | "highest";
11
+ installation?: string;
12
+ cost?: string;
13
+ }
14
+ /**
15
+ * Complete registry of all supported embedding models
16
+ */
17
+ export declare const MODEL_REGISTRY: ModelInfo[];
18
+ /**
19
+ * Get all models for a specific provider
20
+ */
21
+ export declare function getModelsByProvider(provider: string): ModelInfo[];
22
+ /**
23
+ * Get model information by name (supports partial matching)
24
+ */
25
+ export declare function getModelInfo(modelName: string): ModelInfo | null;
26
+ /**
27
+ * Get dimensions for a model by name
28
+ * Returns null if model is unknown
29
+ */
30
+ export declare function getModelDimensions(modelName: string): number | null;
31
+ /**
32
+ * Get all models from the registry
33
+ */
34
+ export declare function getAllModels(): ModelInfo[];
35
+ /**
36
+ * Check if a model exists in the registry
37
+ */
38
+ export declare function modelExists(modelName: string): boolean;
39
+ /**
40
+ * Get models by quality level
41
+ */
42
+ export declare function getModelsByQuality(quality: ModelInfo["quality"]): ModelInfo[];
43
+ /**
44
+ * Get recommended model for a provider
45
+ * Returns the highest quality model available for the provider
46
+ */
47
+ export declare function getRecommendedModel(provider: string): ModelInfo | null;
48
+ //# sourceMappingURL=ModelRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelRegistry.d.ts","sourceRoot":"","sources":["../../src/embeddings/ModelRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,GAAG,cAAc,GAAG,QAAQ,CAAC;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,EA0FrC,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAEjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAiBhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGnE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,EAAE,CAE1C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,EAAE,CAE7E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAuBtE"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Centralized registry of all supported embedding models
3
+ * Single source of truth for model information, dimensions, and metadata
4
+ */
5
+ /**
6
+ * Complete registry of all supported embedding models
7
+ */
8
+ export const MODEL_REGISTRY = [
9
+ // Ollama models (local)
10
+ {
11
+ name: "mxbai-embed-large",
12
+ dimensions: 1024,
13
+ provider: "ollama",
14
+ description: "High-quality local embeddings, balanced speed and quality",
15
+ quality: "high",
16
+ installation: "ollama pull mxbai-embed-large",
17
+ },
18
+ {
19
+ name: "nomic-embed-text",
20
+ dimensions: 768,
21
+ provider: "ollama",
22
+ description: "Fast, good quality for general use",
23
+ quality: "medium",
24
+ installation: "ollama pull nomic-embed-text",
25
+ },
26
+ {
27
+ name: "all-minilm",
28
+ dimensions: 384,
29
+ provider: "ollama",
30
+ description: "Lightweight, fast, lower quality",
31
+ quality: "low",
32
+ installation: "ollama pull all-minilm",
33
+ },
34
+ {
35
+ name: "snowflake-arctic-embed",
36
+ dimensions: 1024,
37
+ provider: "ollama",
38
+ description: "High-quality, optimized for retrieval tasks",
39
+ quality: "high",
40
+ installation: "ollama pull snowflake-arctic-embed",
41
+ },
42
+ // Transformers models (offline)
43
+ {
44
+ name: "Xenova/all-MiniLM-L6-v2",
45
+ dimensions: 384,
46
+ provider: "transformers",
47
+ description: "Default model, no setup required, downloads on first use",
48
+ quality: "low",
49
+ },
50
+ {
51
+ name: "Xenova/all-mpnet-base-v2",
52
+ dimensions: 768,
53
+ provider: "transformers",
54
+ description: "Better quality, larger size, no setup required",
55
+ quality: "medium",
56
+ },
57
+ {
58
+ name: "Xenova/bge-small-en-v1.5",
59
+ dimensions: 384,
60
+ provider: "transformers",
61
+ description: "Fast, English-optimized",
62
+ quality: "low",
63
+ },
64
+ {
65
+ name: "Xenova/bge-base-en-v1.5",
66
+ dimensions: 768,
67
+ provider: "transformers",
68
+ description: "Better quality, English-optimized",
69
+ quality: "medium",
70
+ },
71
+ // OpenAI models (cloud)
72
+ {
73
+ name: "text-embedding-3-small",
74
+ dimensions: 1536,
75
+ provider: "openai",
76
+ description: "Cost-effective, high quality cloud embeddings",
77
+ quality: "highest",
78
+ cost: "$0.020 per 1M tokens",
79
+ },
80
+ {
81
+ name: "text-embedding-3-large",
82
+ dimensions: 3072,
83
+ provider: "openai",
84
+ description: "Best quality, higher cost",
85
+ quality: "highest",
86
+ cost: "$0.130 per 1M tokens",
87
+ },
88
+ {
89
+ name: "text-embedding-ada-002",
90
+ dimensions: 1536,
91
+ provider: "openai",
92
+ description: "Legacy model, still supported",
93
+ quality: "high",
94
+ cost: "$0.100 per 1M tokens",
95
+ },
96
+ ];
97
+ /**
98
+ * Get all models for a specific provider
99
+ */
100
+ export function getModelsByProvider(provider) {
101
+ return MODEL_REGISTRY.filter(m => m.provider === provider);
102
+ }
103
+ /**
104
+ * Get model information by name (supports partial matching)
105
+ */
106
+ export function getModelInfo(modelName) {
107
+ // Return null for empty string
108
+ if (!modelName || modelName.trim().length === 0) {
109
+ return null;
110
+ }
111
+ // Try exact match first
112
+ const exactMatch = MODEL_REGISTRY.find(m => m.name === modelName);
113
+ if (exactMatch) {
114
+ return exactMatch;
115
+ }
116
+ // Try partial match (for Ollama-style matching)
117
+ const partialMatch = MODEL_REGISTRY.find(m => modelName.includes(m.name) || m.name.includes(modelName));
118
+ return partialMatch || null;
119
+ }
120
+ /**
121
+ * Get dimensions for a model by name
122
+ * Returns null if model is unknown
123
+ */
124
+ export function getModelDimensions(modelName) {
125
+ const modelInfo = getModelInfo(modelName);
126
+ return modelInfo?.dimensions || null;
127
+ }
128
+ /**
129
+ * Get all models from the registry
130
+ */
131
+ export function getAllModels() {
132
+ return MODEL_REGISTRY;
133
+ }
134
+ /**
135
+ * Check if a model exists in the registry
136
+ */
137
+ export function modelExists(modelName) {
138
+ return getModelInfo(modelName) !== null;
139
+ }
140
+ /**
141
+ * Get models by quality level
142
+ */
143
+ export function getModelsByQuality(quality) {
144
+ return MODEL_REGISTRY.filter(m => m.quality === quality);
145
+ }
146
+ /**
147
+ * Get recommended model for a provider
148
+ * Returns the highest quality model available for the provider
149
+ */
150
+ export function getRecommendedModel(provider) {
151
+ const models = getModelsByProvider(provider);
152
+ // Try to find highest quality first
153
+ const highest = models.find(m => m.quality === "highest");
154
+ if (highest) {
155
+ return highest;
156
+ }
157
+ // Then try high quality
158
+ const high = models.find(m => m.quality === "high");
159
+ if (high) {
160
+ return high;
161
+ }
162
+ // Then try medium quality
163
+ const medium = models.find(m => m.quality === "medium");
164
+ if (medium) {
165
+ return medium;
166
+ }
167
+ // Fall back to first available model (likely "low" quality)
168
+ return models[0] || null;
169
+ }
170
+ //# sourceMappingURL=ModelRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../../src/embeddings/ModelRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Vector Store with sqlite-vec integration
3
+ * Dual-schema support (vector extension or BLOB fallback)
4
+ */
5
+ import type { SQLiteManager } from "../storage/SQLiteManager.js";
6
+ export interface VectorSearchResult {
7
+ id: string;
8
+ content: string;
9
+ similarity: number;
10
+ metadata?: Record<string, unknown>;
11
+ }
12
+ export declare class VectorStore {
13
+ private db;
14
+ private sqliteManager;
15
+ private hasVecExtension;
16
+ private vecTablesInitialized;
17
+ constructor(sqliteManager: SQLiteManager);
18
+ /**
19
+ * Detect if sqlite-vec extension is available
20
+ */
21
+ private detectVecExtension;
22
+ /**
23
+ * Check if vec extension is enabled
24
+ */
25
+ isVecEnabled(): boolean;
26
+ /**
27
+ * Generic helper to get existing embedding IDs from both BLOB and vec tables.
28
+ * @param blobTable - BLOB table name (e.g., "message_embeddings")
29
+ * @param idColumn - Column name for the entity ID (e.g., "message_id")
30
+ * @param vecTable - Vec table name (e.g., "vec_message_embeddings")
31
+ * @param prefix - ID prefix in vec table (e.g., "msg_")
32
+ */
33
+ private getExistingEmbeddingIds;
34
+ /**
35
+ * Get set of message IDs that already have embeddings.
36
+ */
37
+ getExistingMessageEmbeddingIds(): Set<string>;
38
+ /**
39
+ * Get set of decision IDs that already have embeddings.
40
+ */
41
+ getExistingDecisionEmbeddingIds(): Set<string>;
42
+ /**
43
+ * Get set of mistake IDs that already have embeddings.
44
+ */
45
+ getExistingMistakeEmbeddingIds(): Set<string>;
46
+ /**
47
+ * Ensure vec tables exist with correct dimensions
48
+ */
49
+ private ensureVecTables;
50
+ /**
51
+ * Store an embedding for a message
52
+ * @param messageId - The message ID
53
+ * @param content - The message content
54
+ * @param embedding - The embedding vector
55
+ * @param modelName - The model used to generate the embedding (default: all-MiniLM-L6-v2)
56
+ */
57
+ storeMessageEmbedding(messageId: string, content: string, embedding: Float32Array, modelName?: string): Promise<void>;
58
+ /**
59
+ * Store embedding in BLOB table (fallback)
60
+ */
61
+ private storeInBlobTable;
62
+ /**
63
+ * Generic helper to store embeddings for decisions/mistakes (simpler schema without content).
64
+ * @param entityId - The entity ID (decision or mistake)
65
+ * @param embedding - The embedding vector
66
+ * @param blobTable - BLOB table name (e.g., "decision_embeddings")
67
+ * @param idColumn - Column name for entity ID (e.g., "decision_id")
68
+ * @param vecTable - Vec table name (e.g., "vec_decision_embeddings")
69
+ * @param prefix - ID prefix (e.g., "dec_")
70
+ * @param entityType - For logging (e.g., "decision")
71
+ */
72
+ private storeEntityEmbedding;
73
+ /**
74
+ * Store an embedding for a decision
75
+ */
76
+ storeDecisionEmbedding(decisionId: string, embedding: Float32Array): Promise<void>;
77
+ /**
78
+ * Store an embedding for a mistake
79
+ */
80
+ storeMistakeEmbedding(mistakeId: string, embedding: Float32Array): Promise<void>;
81
+ /**
82
+ * Search for similar messages
83
+ */
84
+ searchMessages(queryEmbedding: Float32Array, limit?: number): Promise<VectorSearchResult[]>;
85
+ /**
86
+ * Search using sqlite-vec extension
87
+ */
88
+ private searchWithVecExtension;
89
+ /**
90
+ * Search using manual cosine similarity (fallback)
91
+ */
92
+ private searchWithCosine;
93
+ /**
94
+ * Calculate cosine similarity between two vectors
95
+ */
96
+ private cosineSimilarity;
97
+ /**
98
+ * Convert Float32Array to Buffer for storage
99
+ */
100
+ private float32ArrayToBuffer;
101
+ /**
102
+ * Convert Buffer to Float32Array for retrieval
103
+ */
104
+ private bufferToFloat32Array;
105
+ /**
106
+ * Get embedding count
107
+ */
108
+ getEmbeddingCount(): number;
109
+ /**
110
+ * Clear all embeddings
111
+ */
112
+ clearAllEmbeddings(): void;
113
+ }
114
+ //# sourceMappingURL=VectorStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VectorStore.d.ts","sourceRoot":"","sources":["../../src/embeddings/VectorStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGjE,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,oBAAoB,CAAkB;gBAElC,aAAa,EAAE,aAAa;IAMxC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmC1B;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAwC/B;;OAEG;IACH,8BAA8B,IAAI,GAAG,CAAC,MAAM,CAAC;IAS7C;;OAEG;IACH,+BAA+B,IAAI,GAAG,CAAC,MAAM,CAAC;IAS9C;;OAEG;IACH,8BAA8B,IAAI,GAAG,CAAC,MAAM,CAAC;IAS7C;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;;;;;OAMG;IACG,qBAAqB,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,YAAY,EACvB,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC,IAAI,CAAC;IA6ChB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAkD5B;;OAEG;IACG,sBAAsB,CAC1B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;IACG,qBAAqB,CACzB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;IACG,cAAc,CAClB,cAAc,EAAE,YAAY,EAC5B,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAQhC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAoC9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAO3B;;OAEG;IACH,kBAAkB,IAAI,IAAI;CA2B3B"}