claude-conversation-memory-mcp 0.1.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 (116) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +223 -0
  3. package/dist/ConversationMemory.d.ts +80 -0
  4. package/dist/ConversationMemory.d.ts.map +1 -0
  5. package/dist/ConversationMemory.js +203 -0
  6. package/dist/ConversationMemory.js.map +1 -0
  7. package/dist/documentation/CodeAnalyzer.d.ts +29 -0
  8. package/dist/documentation/CodeAnalyzer.d.ts.map +1 -0
  9. package/dist/documentation/CodeAnalyzer.js +122 -0
  10. package/dist/documentation/CodeAnalyzer.js.map +1 -0
  11. package/dist/documentation/ConversationAnalyzer.d.ts +19 -0
  12. package/dist/documentation/ConversationAnalyzer.d.ts.map +1 -0
  13. package/dist/documentation/ConversationAnalyzer.js +156 -0
  14. package/dist/documentation/ConversationAnalyzer.js.map +1 -0
  15. package/dist/documentation/CrossReferencer.d.ts +67 -0
  16. package/dist/documentation/CrossReferencer.d.ts.map +1 -0
  17. package/dist/documentation/CrossReferencer.js +247 -0
  18. package/dist/documentation/CrossReferencer.js.map +1 -0
  19. package/dist/documentation/DocumentationGenerator.d.ts +22 -0
  20. package/dist/documentation/DocumentationGenerator.d.ts.map +1 -0
  21. package/dist/documentation/DocumentationGenerator.js +57 -0
  22. package/dist/documentation/DocumentationGenerator.js.map +1 -0
  23. package/dist/documentation/MarkdownFormatter.d.ts +26 -0
  24. package/dist/documentation/MarkdownFormatter.d.ts.map +1 -0
  25. package/dist/documentation/MarkdownFormatter.js +301 -0
  26. package/dist/documentation/MarkdownFormatter.js.map +1 -0
  27. package/dist/documentation/types.d.ts +176 -0
  28. package/dist/documentation/types.d.ts.map +1 -0
  29. package/dist/documentation/types.js +5 -0
  30. package/dist/documentation/types.js.map +1 -0
  31. package/dist/embeddings/EmbeddingConfig.d.ts +39 -0
  32. package/dist/embeddings/EmbeddingConfig.d.ts.map +1 -0
  33. package/dist/embeddings/EmbeddingConfig.js +132 -0
  34. package/dist/embeddings/EmbeddingConfig.js.map +1 -0
  35. package/dist/embeddings/EmbeddingGenerator.d.ts +45 -0
  36. package/dist/embeddings/EmbeddingGenerator.d.ts.map +1 -0
  37. package/dist/embeddings/EmbeddingGenerator.js +129 -0
  38. package/dist/embeddings/EmbeddingGenerator.js.map +1 -0
  39. package/dist/embeddings/EmbeddingProvider.d.ts +34 -0
  40. package/dist/embeddings/EmbeddingProvider.d.ts.map +1 -0
  41. package/dist/embeddings/EmbeddingProvider.js +6 -0
  42. package/dist/embeddings/EmbeddingProvider.js.map +1 -0
  43. package/dist/embeddings/VectorStore.d.ts +75 -0
  44. package/dist/embeddings/VectorStore.d.ts.map +1 -0
  45. package/dist/embeddings/VectorStore.js +220 -0
  46. package/dist/embeddings/VectorStore.js.map +1 -0
  47. package/dist/embeddings/providers/OllamaEmbeddings.d.ts +38 -0
  48. package/dist/embeddings/providers/OllamaEmbeddings.d.ts.map +1 -0
  49. package/dist/embeddings/providers/OllamaEmbeddings.js +132 -0
  50. package/dist/embeddings/providers/OllamaEmbeddings.js.map +1 -0
  51. package/dist/embeddings/providers/OpenAIEmbeddings.d.ts +40 -0
  52. package/dist/embeddings/providers/OpenAIEmbeddings.d.ts.map +1 -0
  53. package/dist/embeddings/providers/OpenAIEmbeddings.js +128 -0
  54. package/dist/embeddings/providers/OpenAIEmbeddings.js.map +1 -0
  55. package/dist/embeddings/providers/TransformersEmbeddings.d.ts +38 -0
  56. package/dist/embeddings/providers/TransformersEmbeddings.d.ts.map +1 -0
  57. package/dist/embeddings/providers/TransformersEmbeddings.js +114 -0
  58. package/dist/embeddings/providers/TransformersEmbeddings.js.map +1 -0
  59. package/dist/index.d.ts +7 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +127 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/parsers/ConversationParser.d.ts +138 -0
  64. package/dist/parsers/ConversationParser.d.ts.map +1 -0
  65. package/dist/parsers/ConversationParser.js +325 -0
  66. package/dist/parsers/ConversationParser.js.map +1 -0
  67. package/dist/parsers/DecisionExtractor.d.ts +76 -0
  68. package/dist/parsers/DecisionExtractor.d.ts.map +1 -0
  69. package/dist/parsers/DecisionExtractor.js +305 -0
  70. package/dist/parsers/DecisionExtractor.js.map +1 -0
  71. package/dist/parsers/GitIntegrator.d.ts +71 -0
  72. package/dist/parsers/GitIntegrator.d.ts.map +1 -0
  73. package/dist/parsers/GitIntegrator.js +283 -0
  74. package/dist/parsers/GitIntegrator.js.map +1 -0
  75. package/dist/parsers/MistakeExtractor.d.ts +86 -0
  76. package/dist/parsers/MistakeExtractor.d.ts.map +1 -0
  77. package/dist/parsers/MistakeExtractor.js +341 -0
  78. package/dist/parsers/MistakeExtractor.js.map +1 -0
  79. package/dist/parsers/RequirementsExtractor.d.ts +70 -0
  80. package/dist/parsers/RequirementsExtractor.d.ts.map +1 -0
  81. package/dist/parsers/RequirementsExtractor.js +252 -0
  82. package/dist/parsers/RequirementsExtractor.js.map +1 -0
  83. package/dist/search/SemanticSearch.d.ts +90 -0
  84. package/dist/search/SemanticSearch.d.ts.map +1 -0
  85. package/dist/search/SemanticSearch.js +352 -0
  86. package/dist/search/SemanticSearch.js.map +1 -0
  87. package/dist/storage/ConversationStorage.d.ts +53 -0
  88. package/dist/storage/ConversationStorage.d.ts.map +1 -0
  89. package/dist/storage/ConversationStorage.js +249 -0
  90. package/dist/storage/ConversationStorage.js.map +1 -0
  91. package/dist/storage/SQLiteManager.d.ts +88 -0
  92. package/dist/storage/SQLiteManager.d.ts.map +1 -0
  93. package/dist/storage/SQLiteManager.js +281 -0
  94. package/dist/storage/SQLiteManager.js.map +1 -0
  95. package/dist/storage/migrations.d.ts +54 -0
  96. package/dist/storage/migrations.d.ts.map +1 -0
  97. package/dist/storage/migrations.js +153 -0
  98. package/dist/storage/migrations.js.map +1 -0
  99. package/dist/storage/schema.sql +321 -0
  100. package/dist/tools/ToolDefinitions.d.ts +265 -0
  101. package/dist/tools/ToolDefinitions.d.ts.map +1 -0
  102. package/dist/tools/ToolDefinitions.js +261 -0
  103. package/dist/tools/ToolDefinitions.js.map +1 -0
  104. package/dist/tools/ToolHandlers.d.ts +56 -0
  105. package/dist/tools/ToolHandlers.d.ts.map +1 -0
  106. package/dist/tools/ToolHandlers.js +431 -0
  107. package/dist/tools/ToolHandlers.js.map +1 -0
  108. package/dist/types/ToolTypes.d.ts +333 -0
  109. package/dist/types/ToolTypes.d.ts.map +1 -0
  110. package/dist/types/ToolTypes.js +6 -0
  111. package/dist/types/ToolTypes.js.map +1 -0
  112. package/dist/utils/sanitization.d.ts +35 -0
  113. package/dist/utils/sanitization.d.ts.map +1 -0
  114. package/dist/utils/sanitization.js +97 -0
  115. package/dist/utils/sanitization.js.map +1 -0
  116. package/package.json +87 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VectorStore.js","sourceRoot":"","sources":["../../src/embeddings/VectorStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Ollama Embeddings Provider
3
+ * Uses local Ollama API for embeddings
4
+ */
5
+ import type { EmbeddingProvider, ModelInfo } from "../EmbeddingProvider.js";
6
+ export declare class OllamaEmbeddings implements EmbeddingProvider {
7
+ private baseUrl;
8
+ private model;
9
+ private dimensions;
10
+ private available;
11
+ private initializationError;
12
+ constructor(baseUrl?: string, model?: string, dimensions?: number);
13
+ /**
14
+ * Initialize by checking if Ollama is available
15
+ */
16
+ initialize(): Promise<void>;
17
+ /**
18
+ * Check if embeddings are available
19
+ */
20
+ isAvailable(): boolean;
21
+ /**
22
+ * Generate embedding for a single text
23
+ */
24
+ embed(text: string): Promise<Float32Array>;
25
+ /**
26
+ * Generate embeddings for multiple texts (batched)
27
+ */
28
+ embedBatch(texts: string[], batchSize?: number): Promise<Float32Array[]>;
29
+ /**
30
+ * Get model information
31
+ */
32
+ getModelInfo(): ModelInfo;
33
+ /**
34
+ * Get default dimensions for common Ollama models
35
+ */
36
+ private getDefaultDimensions;
37
+ }
38
+ //# sourceMappingURL=OllamaEmbeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OllamaEmbeddings.d.ts","sourceRoot":"","sources":["../../../src/embeddings/providers/OllamaEmbeddings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAM5E,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,mBAAmB,CAAsB;gBAErC,OAAO,GAAE,MAAiC,EAAE,KAAK,GAAE,MAA4B,EAAE,UAAU,CAAC,EAAE,MAAM;IAMhH;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiCjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA+BhD;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA0BlF;;OAEG;IACH,YAAY,IAAI,SAAS;IASzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAsB7B"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Ollama Embeddings Provider
3
+ * Uses local Ollama API for embeddings
4
+ */
5
+ export class OllamaEmbeddings {
6
+ baseUrl;
7
+ model;
8
+ dimensions;
9
+ available = false;
10
+ initializationError = null;
11
+ constructor(baseUrl = "http://localhost:11434", model = "mxbai-embed-large", dimensions) {
12
+ this.baseUrl = baseUrl.replace(/\/$/, ""); // Remove trailing slash
13
+ this.model = model;
14
+ this.dimensions = dimensions || this.getDefaultDimensions(model);
15
+ }
16
+ /**
17
+ * Initialize by checking if Ollama is available
18
+ */
19
+ async initialize() {
20
+ try {
21
+ // Check if Ollama is running
22
+ const response = await fetch(`${this.baseUrl}/api/tags`, {
23
+ method: "GET",
24
+ });
25
+ if (!response.ok) {
26
+ throw new Error(`Ollama API returned ${response.status}`);
27
+ }
28
+ // Check if model is available
29
+ const data = (await response.json());
30
+ const hasModel = data.models.some((m) => m.name.includes(this.model));
31
+ if (!hasModel) {
32
+ console.warn(`⚠️ Model '${this.model}' not found in Ollama. Available models: ${data.models.map((m) => m.name).join(", ")}`);
33
+ console.warn(` Pull the model with: ollama pull ${this.model}`);
34
+ throw new Error(`Model ${this.model} not available in Ollama`);
35
+ }
36
+ this.available = true;
37
+ console.log(`✓ Ollama embeddings ready (${this.model})`);
38
+ }
39
+ catch (error) {
40
+ this.initializationError = error;
41
+ this.available = false;
42
+ console.warn("⚠️ Ollama not available:", error.message);
43
+ console.warn(" Make sure Ollama is running: ollama serve");
44
+ }
45
+ }
46
+ /**
47
+ * Check if embeddings are available
48
+ */
49
+ isAvailable() {
50
+ return this.available;
51
+ }
52
+ /**
53
+ * Generate embedding for a single text
54
+ */
55
+ async embed(text) {
56
+ if (!this.available) {
57
+ throw new Error(`Ollama embeddings not available: ${this.initializationError?.message || "Not initialized"}`);
58
+ }
59
+ try {
60
+ const response = await fetch(`${this.baseUrl}/api/embeddings`, {
61
+ method: "POST",
62
+ headers: {
63
+ "Content-Type": "application/json",
64
+ },
65
+ body: JSON.stringify({
66
+ model: this.model,
67
+ prompt: text,
68
+ }),
69
+ });
70
+ if (!response.ok) {
71
+ throw new Error(`Ollama API error: ${response.status} ${response.statusText}`);
72
+ }
73
+ const data = (await response.json());
74
+ return new Float32Array(data.embedding);
75
+ }
76
+ catch (error) {
77
+ console.error("Error generating embedding with Ollama:", error);
78
+ throw error;
79
+ }
80
+ }
81
+ /**
82
+ * Generate embeddings for multiple texts (batched)
83
+ */
84
+ async embedBatch(texts, batchSize = 32) {
85
+ if (!this.available) {
86
+ throw new Error("Ollama embeddings not initialized");
87
+ }
88
+ const embeddings = [];
89
+ // Process in batches
90
+ for (let i = 0; i < texts.length; i += batchSize) {
91
+ const batch = texts.slice(i, i + batchSize);
92
+ console.log(`Generating embeddings for batch ${Math.floor(i / batchSize) + 1}/${Math.ceil(texts.length / batchSize)} (Ollama)`);
93
+ // Ollama doesn't have batch endpoint, so we do parallel requests
94
+ const batchEmbeddings = await Promise.all(batch.map((text) => this.embed(text)));
95
+ embeddings.push(...batchEmbeddings);
96
+ }
97
+ return embeddings;
98
+ }
99
+ /**
100
+ * Get model information
101
+ */
102
+ getModelInfo() {
103
+ return {
104
+ provider: "ollama",
105
+ model: this.model,
106
+ dimensions: this.dimensions,
107
+ available: this.available,
108
+ };
109
+ }
110
+ /**
111
+ * Get default dimensions for common Ollama models
112
+ */
113
+ getDefaultDimensions(model) {
114
+ // Common Ollama embedding models and their dimensions
115
+ const modelDimensions = {
116
+ "nomic-embed-text": 768,
117
+ "mxbai-embed-large": 1024,
118
+ "all-minilm": 384,
119
+ "snowflake-arctic-embed": 1024,
120
+ };
121
+ // Check if model name contains any known model
122
+ for (const [knownModel, dims] of Object.entries(modelDimensions)) {
123
+ if (model.includes(knownModel)) {
124
+ return dims;
125
+ }
126
+ }
127
+ // Default to 768 if unknown (most common)
128
+ console.warn(`Unknown model dimensions for '${model}', defaulting to 768. Specify dimensions in config if different.`);
129
+ return 768;
130
+ }
131
+ }
132
+ //# sourceMappingURL=OllamaEmbeddings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OllamaEmbeddings.js","sourceRoot":"","sources":["../../../src/embeddings/providers/OllamaEmbeddings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * OpenAI Embeddings Provider
3
+ * Uses OpenAI API for high-quality embeddings
4
+ */
5
+ import type { EmbeddingProvider, ModelInfo } from "../EmbeddingProvider.js";
6
+ export declare class OpenAIEmbeddings implements EmbeddingProvider {
7
+ private client;
8
+ private model;
9
+ private dimensions;
10
+ private apiKey;
11
+ private available;
12
+ private initializationError;
13
+ constructor(apiKey: string, model?: string, dimensions?: number);
14
+ /**
15
+ * Initialize OpenAI client
16
+ */
17
+ initialize(): Promise<void>;
18
+ /**
19
+ * Check if embeddings are available
20
+ */
21
+ isAvailable(): boolean;
22
+ /**
23
+ * Generate embedding for a single text
24
+ */
25
+ embed(text: string): Promise<Float32Array>;
26
+ /**
27
+ * Generate embeddings for multiple texts (batched)
28
+ * OpenAI supports batch requests natively
29
+ */
30
+ embedBatch(texts: string[], batchSize?: number): Promise<Float32Array[]>;
31
+ /**
32
+ * Get model information
33
+ */
34
+ getModelInfo(): ModelInfo;
35
+ /**
36
+ * Get default dimensions for OpenAI models
37
+ */
38
+ private getDefaultDimensions;
39
+ }
40
+ //# sourceMappingURL=OpenAIEmbeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAIEmbeddings.d.ts","sourceRoot":"","sources":["../../../src/embeddings/providers/OpenAIEmbeddings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAc5E,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,mBAAmB,CAAsB;gBAErC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAiC,EAAE,UAAU,CAAC,EAAE,MAAM;IAMzF;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAkCjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAoBhD;;;OAGG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,MAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAoCnF;;OAEG;IACH,YAAY,IAAI,SAAS;IASzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAS7B"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * OpenAI Embeddings Provider
3
+ * Uses OpenAI API for high-quality embeddings
4
+ */
5
+ export class OpenAIEmbeddings {
6
+ client = null;
7
+ model;
8
+ dimensions;
9
+ apiKey;
10
+ available = false;
11
+ initializationError = null;
12
+ constructor(apiKey, model = "text-embedding-3-small", dimensions) {
13
+ this.apiKey = apiKey;
14
+ this.model = model;
15
+ this.dimensions = dimensions || this.getDefaultDimensions(model);
16
+ }
17
+ /**
18
+ * Initialize OpenAI client
19
+ */
20
+ async initialize() {
21
+ try {
22
+ if (!this.apiKey) {
23
+ throw new Error("OpenAI API key required. Set OPENAI_API_KEY environment variable.");
24
+ }
25
+ // Dynamic import of OpenAI SDK (optional dependency)
26
+ // @ts-expect-error - openai is an optional dependency
27
+ const OpenAI = (await import("openai")).default;
28
+ this.client = new OpenAI({
29
+ apiKey: this.apiKey,
30
+ });
31
+ // Test the API key with a small request
32
+ await this.client.embeddings.create({
33
+ model: this.model,
34
+ input: "test",
35
+ });
36
+ this.available = true;
37
+ console.log(`✓ OpenAI embeddings ready (${this.model})`);
38
+ }
39
+ catch (error) {
40
+ this.initializationError = error;
41
+ this.available = false;
42
+ if (error.message.includes("Cannot find module")) {
43
+ console.warn("⚠️ OpenAI SDK not installed");
44
+ console.warn(" Install with: npm install openai");
45
+ }
46
+ else {
47
+ console.warn("⚠️ OpenAI initialization failed:", error.message);
48
+ }
49
+ }
50
+ }
51
+ /**
52
+ * Check if embeddings are available
53
+ */
54
+ isAvailable() {
55
+ return this.available;
56
+ }
57
+ /**
58
+ * Generate embedding for a single text
59
+ */
60
+ async embed(text) {
61
+ if (!this.available || !this.client) {
62
+ throw new Error(`OpenAI embeddings not available: ${this.initializationError?.message || "Not initialized"}`);
63
+ }
64
+ try {
65
+ const response = await this.client.embeddings.create({
66
+ model: this.model,
67
+ input: text,
68
+ });
69
+ return new Float32Array(response.data[0].embedding);
70
+ }
71
+ catch (error) {
72
+ console.error("Error generating embedding with OpenAI:", error);
73
+ throw error;
74
+ }
75
+ }
76
+ /**
77
+ * Generate embeddings for multiple texts (batched)
78
+ * OpenAI supports batch requests natively
79
+ */
80
+ async embedBatch(texts, batchSize = 100) {
81
+ if (!this.available || !this.client) {
82
+ throw new Error("OpenAI embeddings not initialized");
83
+ }
84
+ const embeddings = [];
85
+ // OpenAI allows up to 2048 inputs per request, but we use smaller batches for reliability
86
+ for (let i = 0; i < texts.length; i += batchSize) {
87
+ const batch = texts.slice(i, i + batchSize);
88
+ console.log(`Generating embeddings for batch ${Math.floor(i / batchSize) + 1}/${Math.ceil(texts.length / batchSize)} (OpenAI)`);
89
+ try {
90
+ const response = await this.client.embeddings.create({
91
+ model: this.model,
92
+ input: batch,
93
+ });
94
+ // Convert all embeddings in the batch
95
+ const batchEmbeddings = response.data.map((item) => new Float32Array(item.embedding));
96
+ embeddings.push(...batchEmbeddings);
97
+ }
98
+ catch (error) {
99
+ console.error("Error in batch embedding:", error);
100
+ throw error;
101
+ }
102
+ }
103
+ return embeddings;
104
+ }
105
+ /**
106
+ * Get model information
107
+ */
108
+ getModelInfo() {
109
+ return {
110
+ provider: "openai",
111
+ model: this.model,
112
+ dimensions: this.dimensions,
113
+ available: this.available,
114
+ };
115
+ }
116
+ /**
117
+ * Get default dimensions for OpenAI models
118
+ */
119
+ getDefaultDimensions(model) {
120
+ const modelDimensions = {
121
+ "text-embedding-3-small": 1536,
122
+ "text-embedding-3-large": 3072,
123
+ "text-embedding-ada-002": 1536,
124
+ };
125
+ return modelDimensions[model] || 1536;
126
+ }
127
+ }
128
+ //# sourceMappingURL=OpenAIEmbeddings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAIEmbeddings.js","sourceRoot":"","sources":["../../../src/embeddings/providers/OpenAIEmbeddings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Transformers.js Embeddings Provider
3
+ * Uses @xenova/transformers for local, offline embeddings
4
+ */
5
+ import type { EmbeddingProvider, ModelInfo } from "../EmbeddingProvider.js";
6
+ export declare class TransformersEmbeddings implements EmbeddingProvider {
7
+ private pipeline;
8
+ private model;
9
+ private dimensions;
10
+ private available;
11
+ private initializationError;
12
+ constructor(model?: string, dimensions?: number);
13
+ /**
14
+ * Initialize the embedding pipeline
15
+ */
16
+ initialize(): Promise<void>;
17
+ /**
18
+ * Check if embeddings are available
19
+ */
20
+ isAvailable(): boolean;
21
+ /**
22
+ * Generate embedding for text
23
+ */
24
+ embed(text: string): Promise<Float32Array>;
25
+ /**
26
+ * Generate embeddings for multiple texts (batched)
27
+ */
28
+ embedBatch(texts: string[], batchSize?: number): Promise<Float32Array[]>;
29
+ /**
30
+ * Get model information
31
+ */
32
+ getModelInfo(): ModelInfo;
33
+ /**
34
+ * Get default dimensions for common transformer models
35
+ */
36
+ private getDefaultDimensions;
37
+ }
38
+ //# sourceMappingURL=TransformersEmbeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransformersEmbeddings.d.ts","sourceRoot":"","sources":["../../../src/embeddings/providers/TransformersEmbeddings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAK5E,qBAAa,sBAAuB,YAAW,iBAAiB;IAC9D,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,mBAAmB,CAAsB;gBAErC,KAAK,GAAE,MAAkC,EAAE,UAAU,CAAC,EAAE,MAAM;IAK1E;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA4BhD;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAyBlF;;OAEG;IACH,YAAY,IAAI,SAAS;IASzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAU7B"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Transformers.js Embeddings Provider
3
+ * Uses @xenova/transformers for local, offline embeddings
4
+ */
5
+ export class TransformersEmbeddings {
6
+ pipeline = null;
7
+ model;
8
+ dimensions;
9
+ available = false;
10
+ initializationError = null;
11
+ constructor(model = "Xenova/all-MiniLM-L6-v2", dimensions) {
12
+ this.model = model;
13
+ this.dimensions = dimensions || this.getDefaultDimensions(model);
14
+ }
15
+ /**
16
+ * Initialize the embedding pipeline
17
+ */
18
+ async initialize() {
19
+ if (this.available) {
20
+ return;
21
+ }
22
+ try {
23
+ // Try to import @xenova/transformers
24
+ const { pipeline } = await import("@xenova/transformers");
25
+ console.log(`Loading embedding model: ${this.model}...`);
26
+ this.pipeline = (await pipeline("feature-extraction", this.model));
27
+ this.available = true;
28
+ console.log(`✓ Transformers.js embeddings ready (${this.model})`);
29
+ }
30
+ catch (error) {
31
+ this.initializationError = error;
32
+ this.available = false;
33
+ if (error.message.includes("Cannot find module")) {
34
+ console.warn("⚠️ @xenova/transformers not installed");
35
+ console.warn(" Install with: npm install @xenova/transformers");
36
+ }
37
+ else {
38
+ console.warn("⚠️ Could not load embedding model:", error.message);
39
+ }
40
+ }
41
+ }
42
+ /**
43
+ * Check if embeddings are available
44
+ */
45
+ isAvailable() {
46
+ return this.available && this.pipeline !== null;
47
+ }
48
+ /**
49
+ * Generate embedding for text
50
+ */
51
+ async embed(text) {
52
+ if (!this.isAvailable()) {
53
+ throw new Error(`Transformers embeddings not available: ${this.initializationError?.message || "Not initialized"}`);
54
+ }
55
+ if (!this.pipeline) {
56
+ throw new Error("Pipeline not initialized");
57
+ }
58
+ try {
59
+ // Generate embedding
60
+ const output = await this.pipeline(text, {
61
+ pooling: "mean",
62
+ normalize: true,
63
+ });
64
+ // Extract the embedding array
65
+ const embedding = output.data;
66
+ return new Float32Array(embedding);
67
+ }
68
+ catch (error) {
69
+ console.error("Error generating embedding:", error);
70
+ throw error;
71
+ }
72
+ }
73
+ /**
74
+ * Generate embeddings for multiple texts (batched)
75
+ */
76
+ async embedBatch(texts, batchSize = 32) {
77
+ if (!this.isAvailable()) {
78
+ throw new Error("Transformers embeddings not initialized");
79
+ }
80
+ const embeddings = [];
81
+ // Process in batches
82
+ for (let i = 0; i < texts.length; i += batchSize) {
83
+ const batch = texts.slice(i, i + batchSize);
84
+ console.log(`Generating embeddings for batch ${Math.floor(i / batchSize) + 1}/${Math.ceil(texts.length / batchSize)} (Transformers.js)`);
85
+ const batchEmbeddings = await Promise.all(batch.map((text) => this.embed(text)));
86
+ embeddings.push(...batchEmbeddings);
87
+ }
88
+ return embeddings;
89
+ }
90
+ /**
91
+ * Get model information
92
+ */
93
+ getModelInfo() {
94
+ return {
95
+ provider: "transformers",
96
+ model: this.model,
97
+ dimensions: this.dimensions,
98
+ available: this.available,
99
+ };
100
+ }
101
+ /**
102
+ * Get default dimensions for common transformer models
103
+ */
104
+ getDefaultDimensions(model) {
105
+ const modelDimensions = {
106
+ "Xenova/all-MiniLM-L6-v2": 384,
107
+ "Xenova/all-mpnet-base-v2": 768,
108
+ "Xenova/bge-small-en-v1.5": 384,
109
+ "Xenova/bge-base-en-v1.5": 768,
110
+ };
111
+ return modelDimensions[model] || 384;
112
+ }
113
+ }
114
+ //# sourceMappingURL=TransformersEmbeddings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransformersEmbeddings.js","sourceRoot":"","sources":["../../../src/embeddings/providers/TransformersEmbeddings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Claude Conversation Memory - MCP Server
4
+ * Main entry point with stdio transport
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG"}