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.
- package/LICENSE +21 -0
- package/README.md +349 -0
- package/dist/ConversationMemory.d.ts +231 -0
- package/dist/ConversationMemory.d.ts.map +1 -0
- package/dist/ConversationMemory.js +357 -0
- package/dist/ConversationMemory.js.map +1 -0
- package/dist/cache/QueryCache.d.ts +215 -0
- package/dist/cache/QueryCache.d.ts.map +1 -0
- package/dist/cache/QueryCache.js +294 -0
- package/dist/cache/QueryCache.js.map +1 -0
- package/dist/cli/commands.d.ts +9 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +954 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/help.d.ts +16 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +361 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/index.d.ts +30 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +111 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/context/ContextInjector.d.ts +38 -0
- package/dist/context/ContextInjector.d.ts.map +1 -0
- package/dist/context/ContextInjector.js +235 -0
- package/dist/context/ContextInjector.js.map +1 -0
- package/dist/documentation/CodeAnalyzer.d.ts +29 -0
- package/dist/documentation/CodeAnalyzer.d.ts.map +1 -0
- package/dist/documentation/CodeAnalyzer.js +122 -0
- package/dist/documentation/CodeAnalyzer.js.map +1 -0
- package/dist/documentation/ConversationAnalyzer.d.ts +19 -0
- package/dist/documentation/ConversationAnalyzer.d.ts.map +1 -0
- package/dist/documentation/ConversationAnalyzer.js +157 -0
- package/dist/documentation/ConversationAnalyzer.js.map +1 -0
- package/dist/documentation/CrossReferencer.d.ts +67 -0
- package/dist/documentation/CrossReferencer.d.ts.map +1 -0
- package/dist/documentation/CrossReferencer.js +247 -0
- package/dist/documentation/CrossReferencer.js.map +1 -0
- package/dist/documentation/DocumentationGenerator.d.ts +22 -0
- package/dist/documentation/DocumentationGenerator.d.ts.map +1 -0
- package/dist/documentation/DocumentationGenerator.js +57 -0
- package/dist/documentation/DocumentationGenerator.js.map +1 -0
- package/dist/documentation/MarkdownFormatter.d.ts +26 -0
- package/dist/documentation/MarkdownFormatter.d.ts.map +1 -0
- package/dist/documentation/MarkdownFormatter.js +301 -0
- package/dist/documentation/MarkdownFormatter.js.map +1 -0
- package/dist/documentation/types.d.ts +176 -0
- package/dist/documentation/types.d.ts.map +1 -0
- package/dist/documentation/types.js +5 -0
- package/dist/documentation/types.js.map +1 -0
- package/dist/embeddings/ConfigManager.d.ts +46 -0
- package/dist/embeddings/ConfigManager.d.ts.map +1 -0
- package/dist/embeddings/ConfigManager.js +177 -0
- package/dist/embeddings/ConfigManager.js.map +1 -0
- package/dist/embeddings/EmbeddingConfig.d.ts +39 -0
- package/dist/embeddings/EmbeddingConfig.d.ts.map +1 -0
- package/dist/embeddings/EmbeddingConfig.js +132 -0
- package/dist/embeddings/EmbeddingConfig.js.map +1 -0
- package/dist/embeddings/EmbeddingGenerator.d.ts +51 -0
- package/dist/embeddings/EmbeddingGenerator.d.ts.map +1 -0
- package/dist/embeddings/EmbeddingGenerator.js +157 -0
- package/dist/embeddings/EmbeddingGenerator.js.map +1 -0
- package/dist/embeddings/EmbeddingProvider.d.ts +34 -0
- package/dist/embeddings/EmbeddingProvider.d.ts.map +1 -0
- package/dist/embeddings/EmbeddingProvider.js +6 -0
- package/dist/embeddings/EmbeddingProvider.js.map +1 -0
- package/dist/embeddings/ModelRegistry.d.ts +48 -0
- package/dist/embeddings/ModelRegistry.d.ts.map +1 -0
- package/dist/embeddings/ModelRegistry.js +170 -0
- package/dist/embeddings/ModelRegistry.js.map +1 -0
- package/dist/embeddings/VectorStore.d.ts +114 -0
- package/dist/embeddings/VectorStore.d.ts.map +1 -0
- package/dist/embeddings/VectorStore.js +393 -0
- package/dist/embeddings/VectorStore.js.map +1 -0
- package/dist/embeddings/providers/OllamaEmbeddings.d.ts +38 -0
- package/dist/embeddings/providers/OllamaEmbeddings.d.ts.map +1 -0
- package/dist/embeddings/providers/OllamaEmbeddings.js +125 -0
- package/dist/embeddings/providers/OllamaEmbeddings.js.map +1 -0
- package/dist/embeddings/providers/OpenAIEmbeddings.d.ts +40 -0
- package/dist/embeddings/providers/OpenAIEmbeddings.d.ts.map +1 -0
- package/dist/embeddings/providers/OpenAIEmbeddings.js +129 -0
- package/dist/embeddings/providers/OpenAIEmbeddings.js.map +1 -0
- package/dist/embeddings/providers/TransformersEmbeddings.d.ts +38 -0
- package/dist/embeddings/providers/TransformersEmbeddings.d.ts.map +1 -0
- package/dist/embeddings/providers/TransformersEmbeddings.js +115 -0
- package/dist/embeddings/providers/TransformersEmbeddings.js.map +1 -0
- package/dist/handoff/SessionHandoffStore.d.ts +80 -0
- package/dist/handoff/SessionHandoffStore.d.ts.map +1 -0
- package/dist/handoff/SessionHandoffStore.js +314 -0
- package/dist/handoff/SessionHandoffStore.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +115 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server.d.ts +27 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +157 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/memory/WorkingMemoryStore.d.ts +83 -0
- package/dist/memory/WorkingMemoryStore.d.ts.map +1 -0
- package/dist/memory/WorkingMemoryStore.js +318 -0
- package/dist/memory/WorkingMemoryStore.js.map +1 -0
- package/dist/memory/types.d.ts +192 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +8 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/parsers/CodexConversationParser.d.ts +51 -0
- package/dist/parsers/CodexConversationParser.d.ts.map +1 -0
- package/dist/parsers/CodexConversationParser.js +301 -0
- package/dist/parsers/CodexConversationParser.js.map +1 -0
- package/dist/parsers/ConversationParser.d.ts +286 -0
- package/dist/parsers/ConversationParser.d.ts.map +1 -0
- package/dist/parsers/ConversationParser.js +795 -0
- package/dist/parsers/ConversationParser.js.map +1 -0
- package/dist/parsers/DecisionExtractor.d.ts +144 -0
- package/dist/parsers/DecisionExtractor.d.ts.map +1 -0
- package/dist/parsers/DecisionExtractor.js +434 -0
- package/dist/parsers/DecisionExtractor.js.map +1 -0
- package/dist/parsers/GitIntegrator.d.ts +156 -0
- package/dist/parsers/GitIntegrator.d.ts.map +1 -0
- package/dist/parsers/GitIntegrator.js +348 -0
- package/dist/parsers/GitIntegrator.js.map +1 -0
- package/dist/parsers/MistakeExtractor.d.ts +151 -0
- package/dist/parsers/MistakeExtractor.d.ts.map +1 -0
- package/dist/parsers/MistakeExtractor.js +460 -0
- package/dist/parsers/MistakeExtractor.js.map +1 -0
- package/dist/parsers/RequirementsExtractor.d.ts +166 -0
- package/dist/parsers/RequirementsExtractor.d.ts.map +1 -0
- package/dist/parsers/RequirementsExtractor.js +338 -0
- package/dist/parsers/RequirementsExtractor.js.map +1 -0
- package/dist/realtime/ConversationWatcher.d.ts +87 -0
- package/dist/realtime/ConversationWatcher.d.ts.map +1 -0
- package/dist/realtime/ConversationWatcher.js +204 -0
- package/dist/realtime/ConversationWatcher.js.map +1 -0
- package/dist/realtime/IncrementalParser.d.ts +83 -0
- package/dist/realtime/IncrementalParser.d.ts.map +1 -0
- package/dist/realtime/IncrementalParser.js +232 -0
- package/dist/realtime/IncrementalParser.js.map +1 -0
- package/dist/realtime/LiveExtractor.d.ts +72 -0
- package/dist/realtime/LiveExtractor.d.ts.map +1 -0
- package/dist/realtime/LiveExtractor.js +288 -0
- package/dist/realtime/LiveExtractor.js.map +1 -0
- package/dist/search/SemanticSearch.d.ts +121 -0
- package/dist/search/SemanticSearch.d.ts.map +1 -0
- package/dist/search/SemanticSearch.js +823 -0
- package/dist/search/SemanticSearch.js.map +1 -0
- package/dist/storage/BackupManager.d.ts +58 -0
- package/dist/storage/BackupManager.d.ts.map +1 -0
- package/dist/storage/BackupManager.js +223 -0
- package/dist/storage/BackupManager.js.map +1 -0
- package/dist/storage/ConversationStorage.d.ts +341 -0
- package/dist/storage/ConversationStorage.d.ts.map +1 -0
- package/dist/storage/ConversationStorage.js +792 -0
- package/dist/storage/ConversationStorage.js.map +1 -0
- package/dist/storage/DeletionService.d.ts +70 -0
- package/dist/storage/DeletionService.d.ts.map +1 -0
- package/dist/storage/DeletionService.js +253 -0
- package/dist/storage/DeletionService.js.map +1 -0
- package/dist/storage/GlobalIndex.d.ts +133 -0
- package/dist/storage/GlobalIndex.d.ts.map +1 -0
- package/dist/storage/GlobalIndex.js +310 -0
- package/dist/storage/GlobalIndex.js.map +1 -0
- package/dist/storage/SQLiteManager.d.ts +114 -0
- package/dist/storage/SQLiteManager.d.ts.map +1 -0
- package/dist/storage/SQLiteManager.js +636 -0
- package/dist/storage/SQLiteManager.js.map +1 -0
- package/dist/storage/migrations.d.ts +54 -0
- package/dist/storage/migrations.d.ts.map +1 -0
- package/dist/storage/migrations.js +285 -0
- package/dist/storage/migrations.js.map +1 -0
- package/dist/storage/schema.sql +436 -0
- package/dist/tools/ToolDefinitions.d.ts +946 -0
- package/dist/tools/ToolDefinitions.d.ts.map +1 -0
- package/dist/tools/ToolDefinitions.js +937 -0
- package/dist/tools/ToolDefinitions.js.map +1 -0
- package/dist/tools/ToolHandlers.d.ts +791 -0
- package/dist/tools/ToolHandlers.d.ts.map +1 -0
- package/dist/tools/ToolHandlers.js +3262 -0
- package/dist/tools/ToolHandlers.js.map +1 -0
- package/dist/types/ToolTypes.d.ts +824 -0
- package/dist/types/ToolTypes.d.ts.map +1 -0
- package/dist/types/ToolTypes.js +6 -0
- package/dist/types/ToolTypes.js.map +1 -0
- package/dist/utils/Logger.d.ts +70 -0
- package/dist/utils/Logger.d.ts.map +1 -0
- package/dist/utils/Logger.js +131 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/McpConfig.d.ts +54 -0
- package/dist/utils/McpConfig.d.ts.map +1 -0
- package/dist/utils/McpConfig.js +136 -0
- package/dist/utils/McpConfig.js.map +1 -0
- package/dist/utils/ProjectMigration.d.ts +82 -0
- package/dist/utils/ProjectMigration.d.ts.map +1 -0
- package/dist/utils/ProjectMigration.js +416 -0
- package/dist/utils/ProjectMigration.js.map +1 -0
- package/dist/utils/constants.d.ts +75 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +105 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/safeJson.d.ts +37 -0
- package/dist/utils/safeJson.d.ts.map +1 -0
- package/dist/utils/safeJson.js +48 -0
- package/dist/utils/safeJson.js.map +1 -0
- package/dist/utils/sanitization.d.ts +45 -0
- package/dist/utils/sanitization.d.ts.map +1 -0
- package/dist/utils/sanitization.js +153 -0
- package/dist/utils/sanitization.js.map +1 -0
- package/dist/utils/worktree.d.ts +15 -0
- package/dist/utils/worktree.d.ts.map +1 -0
- package/dist/utils/worktree.js +86 -0
- package/dist/utils/worktree.js.map +1 -0
- package/package.json +98 -0
- package/scripts/changelog-check.sh +62 -0
- package/scripts/check-node.js +17 -0
- package/scripts/dev-config.js +56 -0
- 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"}
|