@pleaseai/context-please-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.
@@ -0,0 +1,55 @@
1
+ export interface ContextMcpConfig {
2
+ name: string;
3
+ version: string;
4
+ embeddingProvider: 'OpenAI' | 'VoyageAI' | 'Gemini' | 'Ollama';
5
+ embeddingModel: string;
6
+ openaiApiKey?: string;
7
+ openaiBaseUrl?: string;
8
+ voyageaiApiKey?: string;
9
+ geminiApiKey?: string;
10
+ geminiBaseUrl?: string;
11
+ ollamaModel?: string;
12
+ ollamaHost?: string;
13
+ vectorDbType?: 'milvus' | 'qdrant';
14
+ milvusAddress?: string;
15
+ milvusToken?: string;
16
+ qdrantUrl?: string;
17
+ qdrantApiKey?: string;
18
+ }
19
+ export interface CodebaseSnapshotV1 {
20
+ indexedCodebases: string[];
21
+ indexingCodebases: string[] | Record<string, number>;
22
+ lastUpdated: string;
23
+ }
24
+ interface CodebaseInfoBase {
25
+ lastUpdated: string;
26
+ }
27
+ export interface CodebaseInfoIndexing extends CodebaseInfoBase {
28
+ status: 'indexing';
29
+ indexingPercentage: number;
30
+ }
31
+ export interface CodebaseInfoIndexed extends CodebaseInfoBase {
32
+ status: 'indexed';
33
+ indexedFiles: number;
34
+ totalChunks: number;
35
+ indexStatus: 'completed' | 'limit_reached';
36
+ }
37
+ export interface CodebaseInfoIndexFailed extends CodebaseInfoBase {
38
+ status: 'indexfailed';
39
+ errorMessage: string;
40
+ lastAttemptedPercentage?: number;
41
+ }
42
+ export type CodebaseInfo = CodebaseInfoIndexing | CodebaseInfoIndexed | CodebaseInfoIndexFailed;
43
+ export interface CodebaseSnapshotV2 {
44
+ formatVersion: 'v2';
45
+ codebases: Record<string, CodebaseInfo>;
46
+ lastUpdated: string;
47
+ }
48
+ export type CodebaseSnapshot = CodebaseSnapshotV1 | CodebaseSnapshotV2;
49
+ export declare function getDefaultModelForProvider(provider: string): string;
50
+ export declare function getEmbeddingModelForProvider(provider: string): string;
51
+ export declare function createMcpConfig(): ContextMcpConfig;
52
+ export declare function logConfigurationSummary(config: ContextMcpConfig): void;
53
+ export declare function showHelpMessage(): void;
54
+ export {};
55
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAEhB,iBAAiB,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC/D,cAAc,EAAE,MAAM,CAAC;IAEvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,YAAY,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,kBAAkB;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;CACvB;AAKD,UAAU,gBAAgB;IACtB,WAAW,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC1D,MAAM,EAAE,UAAU,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAGD,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IACzD,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,GAAG,eAAe,CAAC;CAC9C;AAGD,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC7D,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CACpC;AAGD,MAAM,MAAM,YAAY,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,uBAAuB,CAAC;AAEhG,MAAM,WAAW,kBAAkB;IAC/B,aAAa,EAAE,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAGvE,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAanE;AAGD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgBrE;AAED,wBAAgB,eAAe,IAAI,gBAAgB,CAqClD;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAyCtE;AAED,wBAAgB,eAAe,IAAI,IAAI,CA4DtC"}
package/dist/config.js ADDED
@@ -0,0 +1,172 @@
1
+ import { envManager } from "@pleaseai/context-please-core";
2
+ // Helper function to get default model for each provider
3
+ export function getDefaultModelForProvider(provider) {
4
+ switch (provider) {
5
+ case 'OpenAI':
6
+ return 'text-embedding-3-small';
7
+ case 'VoyageAI':
8
+ return 'voyage-code-3';
9
+ case 'Gemini':
10
+ return 'gemini-embedding-001';
11
+ case 'Ollama':
12
+ return 'nomic-embed-text';
13
+ default:
14
+ return 'text-embedding-3-small';
15
+ }
16
+ }
17
+ // Helper function to get embedding model with provider-specific environment variable priority
18
+ export function getEmbeddingModelForProvider(provider) {
19
+ switch (provider) {
20
+ case 'Ollama':
21
+ // For Ollama, prioritize OLLAMA_MODEL over EMBEDDING_MODEL for backward compatibility
22
+ const ollamaModel = envManager.get('OLLAMA_MODEL') || envManager.get('EMBEDDING_MODEL') || getDefaultModelForProvider(provider);
23
+ console.log(`[DEBUG] 🎯 Ollama model selection: OLLAMA_MODEL=${envManager.get('OLLAMA_MODEL') || 'NOT SET'}, EMBEDDING_MODEL=${envManager.get('EMBEDDING_MODEL') || 'NOT SET'}, selected=${ollamaModel}`);
24
+ return ollamaModel;
25
+ case 'OpenAI':
26
+ case 'VoyageAI':
27
+ case 'Gemini':
28
+ default:
29
+ // For all other providers, use EMBEDDING_MODEL or default
30
+ const selectedModel = envManager.get('EMBEDDING_MODEL') || getDefaultModelForProvider(provider);
31
+ console.log(`[DEBUG] 🎯 ${provider} model selection: EMBEDDING_MODEL=${envManager.get('EMBEDDING_MODEL') || 'NOT SET'}, selected=${selectedModel}`);
32
+ return selectedModel;
33
+ }
34
+ }
35
+ export function createMcpConfig() {
36
+ // Debug: Print all environment variables related to Context
37
+ console.log(`[DEBUG] 🔍 Environment Variables Debug:`);
38
+ console.log(`[DEBUG] EMBEDDING_PROVIDER: ${envManager.get('EMBEDDING_PROVIDER') || 'NOT SET'}`);
39
+ console.log(`[DEBUG] EMBEDDING_MODEL: ${envManager.get('EMBEDDING_MODEL') || 'NOT SET'}`);
40
+ console.log(`[DEBUG] OLLAMA_MODEL: ${envManager.get('OLLAMA_MODEL') || 'NOT SET'}`);
41
+ console.log(`[DEBUG] GEMINI_API_KEY: ${envManager.get('GEMINI_API_KEY') ? 'SET (length: ' + envManager.get('GEMINI_API_KEY').length + ')' : 'NOT SET'}`);
42
+ console.log(`[DEBUG] OPENAI_API_KEY: ${envManager.get('OPENAI_API_KEY') ? 'SET (length: ' + envManager.get('OPENAI_API_KEY').length + ')' : 'NOT SET'}`);
43
+ console.log(`[DEBUG] VECTOR_DB_TYPE: ${envManager.get('VECTOR_DB_TYPE') || 'NOT SET'}`);
44
+ console.log(`[DEBUG] MILVUS_ADDRESS: ${envManager.get('MILVUS_ADDRESS') || 'NOT SET'}`);
45
+ console.log(`[DEBUG] QDRANT_URL: ${envManager.get('QDRANT_URL') || 'NOT SET'}`);
46
+ console.log(`[DEBUG] NODE_ENV: ${envManager.get('NODE_ENV') || 'NOT SET'}`);
47
+ const config = {
48
+ name: envManager.get('MCP_SERVER_NAME') || "Context MCP Server",
49
+ version: envManager.get('MCP_SERVER_VERSION') || "1.0.0",
50
+ // Embedding provider configuration
51
+ embeddingProvider: envManager.get('EMBEDDING_PROVIDER') || 'OpenAI',
52
+ embeddingModel: getEmbeddingModelForProvider(envManager.get('EMBEDDING_PROVIDER') || 'OpenAI'),
53
+ // Provider-specific API keys
54
+ openaiApiKey: envManager.get('OPENAI_API_KEY'),
55
+ openaiBaseUrl: envManager.get('OPENAI_BASE_URL'),
56
+ voyageaiApiKey: envManager.get('VOYAGEAI_API_KEY'),
57
+ geminiApiKey: envManager.get('GEMINI_API_KEY'),
58
+ geminiBaseUrl: envManager.get('GEMINI_BASE_URL'),
59
+ // Ollama configuration
60
+ ollamaModel: envManager.get('OLLAMA_MODEL'),
61
+ ollamaHost: envManager.get('OLLAMA_HOST'),
62
+ // Vector database configuration
63
+ vectorDbType: envManager.get('VECTOR_DB_TYPE') || 'milvus',
64
+ milvusAddress: envManager.get('MILVUS_ADDRESS'), // Optional, can be resolved from token
65
+ milvusToken: envManager.get('MILVUS_TOKEN'),
66
+ qdrantUrl: envManager.get('QDRANT_URL'),
67
+ qdrantApiKey: envManager.get('QDRANT_API_KEY')
68
+ };
69
+ return config;
70
+ }
71
+ export function logConfigurationSummary(config) {
72
+ // Log configuration summary before starting server
73
+ console.log(`[MCP] 🚀 Starting Context MCP Server`);
74
+ console.log(`[MCP] Configuration Summary:`);
75
+ console.log(`[MCP] Server: ${config.name} v${config.version}`);
76
+ console.log(`[MCP] Embedding Provider: ${config.embeddingProvider}`);
77
+ console.log(`[MCP] Embedding Model: ${config.embeddingModel}`);
78
+ console.log(`[MCP] Vector Database: ${config.vectorDbType || 'milvus'}`);
79
+ // Log vector database specific configuration
80
+ if (config.vectorDbType === 'qdrant') {
81
+ console.log(`[MCP] Qdrant URL: ${config.qdrantUrl || '[Not configured]'}`);
82
+ console.log(`[MCP] Qdrant API Key: ${config.qdrantApiKey ? '✅ Configured' : '❌ Not configured'}`);
83
+ }
84
+ else {
85
+ console.log(`[MCP] Milvus Address: ${config.milvusAddress || (config.milvusToken ? '[Auto-resolve from token]' : '[Not configured]')}`);
86
+ }
87
+ // Log provider-specific configuration without exposing sensitive data
88
+ switch (config.embeddingProvider) {
89
+ case 'OpenAI':
90
+ console.log(`[MCP] OpenAI API Key: ${config.openaiApiKey ? '✅ Configured' : '❌ Missing'}`);
91
+ if (config.openaiBaseUrl) {
92
+ console.log(`[MCP] OpenAI Base URL: ${config.openaiBaseUrl}`);
93
+ }
94
+ break;
95
+ case 'VoyageAI':
96
+ console.log(`[MCP] VoyageAI API Key: ${config.voyageaiApiKey ? '✅ Configured' : '❌ Missing'}`);
97
+ break;
98
+ case 'Gemini':
99
+ console.log(`[MCP] Gemini API Key: ${config.geminiApiKey ? '✅ Configured' : '❌ Missing'}`);
100
+ if (config.geminiBaseUrl) {
101
+ console.log(`[MCP] Gemini Base URL: ${config.geminiBaseUrl}`);
102
+ }
103
+ break;
104
+ case 'Ollama':
105
+ console.log(`[MCP] Ollama Host: ${config.ollamaHost || 'http://127.0.0.1:11434'}`);
106
+ console.log(`[MCP] Ollama Model: ${config.embeddingModel}`);
107
+ break;
108
+ }
109
+ console.log(`[MCP] 🔧 Initializing server components...`);
110
+ }
111
+ export function showHelpMessage() {
112
+ console.log(`
113
+ Context MCP Server
114
+
115
+ Usage: npx @pleaseai/context-please-mcp@latest [options]
116
+
117
+ Options:
118
+ --help, -h Show this help message
119
+
120
+ Environment Variables:
121
+ MCP_SERVER_NAME Server name
122
+ MCP_SERVER_VERSION Server version
123
+
124
+ Embedding Provider Configuration:
125
+ EMBEDDING_PROVIDER Embedding provider: OpenAI, VoyageAI, Gemini, Ollama (default: OpenAI)
126
+ EMBEDDING_MODEL Embedding model name (works for all providers)
127
+
128
+ Provider-specific API Keys:
129
+ OPENAI_API_KEY OpenAI API key (required for OpenAI provider)
130
+ OPENAI_BASE_URL OpenAI API base URL (optional, for custom endpoints)
131
+ VOYAGEAI_API_KEY VoyageAI API key (required for VoyageAI provider)
132
+ GEMINI_API_KEY Google AI API key (required for Gemini provider)
133
+ GEMINI_BASE_URL Gemini API base URL (optional, for custom endpoints)
134
+
135
+ Ollama Configuration:
136
+ OLLAMA_HOST Ollama server host (default: http://127.0.0.1:11434)
137
+ OLLAMA_MODEL Ollama model name (alternative to EMBEDDING_MODEL for Ollama)
138
+
139
+ Vector Database Configuration:
140
+ VECTOR_DB_TYPE Vector database type: milvus (default) or qdrant
141
+ MILVUS_ADDRESS Milvus address (optional, can be auto-resolved from token)
142
+ MILVUS_TOKEN Milvus token (optional, used for authentication and address resolution)
143
+ QDRANT_URL Qdrant URL (e.g., http://localhost:6333 or cloud URL)
144
+ QDRANT_API_KEY Qdrant API key (optional for self-hosted)
145
+
146
+ Examples:
147
+ # Start MCP server with OpenAI (default) and explicit Milvus address
148
+ OPENAI_API_KEY=sk-xxx MILVUS_ADDRESS=localhost:19530 npx @pleaseai/context-please-mcp@latest
149
+
150
+ # Start MCP server with OpenAI and specific model
151
+ OPENAI_API_KEY=sk-xxx EMBEDDING_MODEL=text-embedding-3-large MILVUS_TOKEN=your-token npx @pleaseai/context-please-mcp@latest
152
+
153
+ # Start MCP server with VoyageAI and specific model
154
+ EMBEDDING_PROVIDER=VoyageAI VOYAGEAI_API_KEY=pa-xxx EMBEDDING_MODEL=voyage-3-large MILVUS_TOKEN=your-token npx @pleaseai/context-please-mcp@latest
155
+
156
+ # Start MCP server with Gemini and specific model
157
+ EMBEDDING_PROVIDER=Gemini GEMINI_API_KEY=xxx EMBEDDING_MODEL=gemini-embedding-001 MILVUS_TOKEN=your-token npx @pleaseai/context-please-mcp@latest
158
+
159
+ # Start MCP server with Ollama and specific model (using OLLAMA_MODEL)
160
+ EMBEDDING_PROVIDER=Ollama OLLAMA_MODEL=mxbai-embed-large MILVUS_TOKEN=your-token npx @pleaseai/context-please-mcp@latest
161
+
162
+ # Start MCP server with Ollama and specific model (using EMBEDDING_MODEL)
163
+ EMBEDDING_PROVIDER=Ollama EMBEDDING_MODEL=nomic-embed-text MILVUS_TOKEN=your-token npx @pleaseai/context-please-mcp@latest
164
+
165
+ # Start MCP server with Qdrant (self-hosted)
166
+ OPENAI_API_KEY=sk-xxx VECTOR_DB_TYPE=qdrant QDRANT_URL=http://localhost:6333 npx @pleaseai/context-please-mcp@latest
167
+
168
+ # Start MCP server with Qdrant Cloud
169
+ OPENAI_API_KEY=sk-xxx VECTOR_DB_TYPE=qdrant QDRANT_URL=https://your-cluster.qdrant.io QDRANT_API_KEY=your-api-key npx @pleaseai/context-please-mcp@latest
170
+ `);
171
+ }
172
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { OpenAIEmbedding, VoyageAIEmbedding, GeminiEmbedding, OllamaEmbedding } from "@pleaseai/context-please-core";
2
+ import { ContextMcpConfig } from "./config.js";
3
+ export declare function createEmbeddingInstance(config: ContextMcpConfig): OpenAIEmbedding | VoyageAIEmbedding | GeminiEmbedding | OllamaEmbedding;
4
+ export declare function logEmbeddingProviderInfo(config: ContextMcpConfig, embedding: OpenAIEmbedding | VoyageAIEmbedding | GeminiEmbedding | OllamaEmbedding): void;
5
+ //# sourceMappingURL=embedding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../src/embedding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe,GAAG,iBAAiB,GAAG,eAAe,GAAG,eAAe,CA2DzI;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,GAAG,iBAAiB,GAAG,eAAe,GAAG,eAAe,GAAG,IAAI,CAmB3J"}
@@ -0,0 +1,77 @@
1
+ import { OpenAIEmbedding, VoyageAIEmbedding, GeminiEmbedding, OllamaEmbedding } from "@pleaseai/context-please-core";
2
+ // Helper function to create embedding instance based on provider
3
+ export function createEmbeddingInstance(config) {
4
+ console.log(`[EMBEDDING] Creating ${config.embeddingProvider} embedding instance...`);
5
+ switch (config.embeddingProvider) {
6
+ case 'OpenAI':
7
+ if (!config.openaiApiKey) {
8
+ console.error(`[EMBEDDING] ❌ OpenAI API key is required but not provided`);
9
+ throw new Error('OPENAI_API_KEY is required for OpenAI embedding provider');
10
+ }
11
+ console.log(`[EMBEDDING] 🔧 Configuring OpenAI with model: ${config.embeddingModel}`);
12
+ const openaiEmbedding = new OpenAIEmbedding({
13
+ apiKey: config.openaiApiKey,
14
+ model: config.embeddingModel,
15
+ ...(config.openaiBaseUrl && { baseURL: config.openaiBaseUrl })
16
+ });
17
+ console.log(`[EMBEDDING] ✅ OpenAI embedding instance created successfully`);
18
+ return openaiEmbedding;
19
+ case 'VoyageAI':
20
+ if (!config.voyageaiApiKey) {
21
+ console.error(`[EMBEDDING] ❌ VoyageAI API key is required but not provided`);
22
+ throw new Error('VOYAGEAI_API_KEY is required for VoyageAI embedding provider');
23
+ }
24
+ console.log(`[EMBEDDING] 🔧 Configuring VoyageAI with model: ${config.embeddingModel}`);
25
+ const voyageEmbedding = new VoyageAIEmbedding({
26
+ apiKey: config.voyageaiApiKey,
27
+ model: config.embeddingModel
28
+ });
29
+ console.log(`[EMBEDDING] ✅ VoyageAI embedding instance created successfully`);
30
+ return voyageEmbedding;
31
+ case 'Gemini':
32
+ if (!config.geminiApiKey) {
33
+ console.error(`[EMBEDDING] ❌ Gemini API key is required but not provided`);
34
+ throw new Error('GEMINI_API_KEY is required for Gemini embedding provider');
35
+ }
36
+ console.log(`[EMBEDDING] 🔧 Configuring Gemini with model: ${config.embeddingModel}`);
37
+ const geminiEmbedding = new GeminiEmbedding({
38
+ apiKey: config.geminiApiKey,
39
+ model: config.embeddingModel,
40
+ ...(config.geminiBaseUrl && { baseURL: config.geminiBaseUrl })
41
+ });
42
+ console.log(`[EMBEDDING] ✅ Gemini embedding instance created successfully`);
43
+ return geminiEmbedding;
44
+ case 'Ollama':
45
+ const ollamaHost = config.ollamaHost || 'http://127.0.0.1:11434';
46
+ console.log(`[EMBEDDING] 🔧 Configuring Ollama with model: ${config.embeddingModel}, host: ${ollamaHost}`);
47
+ const ollamaEmbedding = new OllamaEmbedding({
48
+ model: config.embeddingModel,
49
+ host: config.ollamaHost
50
+ });
51
+ console.log(`[EMBEDDING] ✅ Ollama embedding instance created successfully`);
52
+ return ollamaEmbedding;
53
+ default:
54
+ console.error(`[EMBEDDING] ❌ Unsupported embedding provider: ${config.embeddingProvider}`);
55
+ throw new Error(`Unsupported embedding provider: ${config.embeddingProvider}`);
56
+ }
57
+ }
58
+ export function logEmbeddingProviderInfo(config, embedding) {
59
+ console.log(`[EMBEDDING] ✅ Successfully initialized ${config.embeddingProvider} embedding provider`);
60
+ console.log(`[EMBEDDING] Provider details - Model: ${config.embeddingModel}, Dimension: ${embedding.getDimension()}`);
61
+ // Log provider-specific configuration details
62
+ switch (config.embeddingProvider) {
63
+ case 'OpenAI':
64
+ console.log(`[EMBEDDING] OpenAI configuration - API Key: ${config.openaiApiKey ? '✅ Provided' : '❌ Missing'}, Base URL: ${config.openaiBaseUrl || 'Default'}`);
65
+ break;
66
+ case 'VoyageAI':
67
+ console.log(`[EMBEDDING] VoyageAI configuration - API Key: ${config.voyageaiApiKey ? '✅ Provided' : '❌ Missing'}`);
68
+ break;
69
+ case 'Gemini':
70
+ console.log(`[EMBEDDING] Gemini configuration - API Key: ${config.geminiApiKey ? '✅ Provided' : '❌ Missing'}, Base URL: ${config.geminiBaseUrl || 'Default'}`);
71
+ break;
72
+ case 'Ollama':
73
+ console.log(`[EMBEDDING] Ollama configuration - Host: ${config.ollamaHost || 'http://127.0.0.1:11434'}, Model: ${config.embeddingModel}`);
74
+ break;
75
+ }
76
+ }
77
+ //# sourceMappingURL=embedding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../src/embedding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { Context } from "@pleaseai/context-please-core";
2
+ import { SnapshotManager } from "./snapshot.js";
3
+ export declare class ToolHandlers {
4
+ private context;
5
+ private snapshotManager;
6
+ private indexingStats;
7
+ private currentWorkspace;
8
+ constructor(context: Context, snapshotManager: SnapshotManager);
9
+ /**
10
+ * Sync indexed codebases from Zilliz Cloud collections
11
+ * This method fetches all collections from the vector database,
12
+ * gets the first document from each collection to extract codebasePath from metadata,
13
+ * and updates the snapshot with discovered codebases.
14
+ *
15
+ * Logic: Compare mcp-codebase-snapshot.json with zilliz cloud collections
16
+ * - If local snapshot has extra directories (not in cloud), remove them
17
+ * - If local snapshot is missing directories (exist in cloud), ignore them
18
+ */
19
+ private syncIndexedCodebasesFromCloud;
20
+ handleIndexCodebase(args: any): Promise<{
21
+ content: {
22
+ type: string;
23
+ text: string;
24
+ }[];
25
+ isError: boolean;
26
+ } | {
27
+ content: {
28
+ type: string;
29
+ text: string;
30
+ }[];
31
+ isError?: undefined;
32
+ }>;
33
+ private startBackgroundIndexing;
34
+ handleSearchCode(args: any): Promise<{
35
+ content: {
36
+ type: string;
37
+ text: string;
38
+ }[];
39
+ isError: boolean;
40
+ } | {
41
+ content: {
42
+ type: string;
43
+ text: string;
44
+ }[];
45
+ isError?: undefined;
46
+ }>;
47
+ handleClearIndex(args: any): Promise<{
48
+ content: {
49
+ type: string;
50
+ text: string;
51
+ }[];
52
+ isError?: undefined;
53
+ } | {
54
+ content: {
55
+ type: string;
56
+ text: string;
57
+ }[];
58
+ isError: boolean;
59
+ }>;
60
+ handleGetIndexingStatus(args: any): Promise<{
61
+ content: {
62
+ type: string;
63
+ text: string;
64
+ }[];
65
+ isError: boolean;
66
+ } | {
67
+ content: {
68
+ type: string;
69
+ text: string;
70
+ }[];
71
+ isError?: undefined;
72
+ }>;
73
+ }
74
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAA4B,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,qBAAa,YAAY;IACrB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,aAAa,CAA8D;IACnF,OAAO,CAAC,gBAAgB,CAAS;gBAErB,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe;IAO9D;;;;;;;;;OASG;YACW,6BAA6B;IAiH9B,mBAAmB,CAAC,IAAI,EAAE,GAAG;;;;;;;;;;;;;YAoL5B,uBAAuB;IA0FxB,gBAAgB,CAAC,IAAI,EAAE,GAAG;;;;;;;;;;;;;IA6J1B,gBAAgB,CAAC,IAAI,EAAE,GAAG;;;;;;;;;;;;;IAwH1B,uBAAuB,CAAC,IAAI,EAAE,GAAG;;;;;;;;;;;;;CA6GjD"}