@pleaseai/context-please-core 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.
- package/LICENSE +24 -0
- package/README.md +287 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/context.d.ts +276 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +1072 -0
- package/dist/context.js.map +1 -0
- package/dist/embedding/base-embedding.d.ts +51 -0
- package/dist/embedding/base-embedding.d.ts.map +1 -0
- package/dist/embedding/base-embedding.js +36 -0
- package/dist/embedding/base-embedding.js.map +1 -0
- package/dist/embedding/gemini-embedding.d.ts +53 -0
- package/dist/embedding/gemini-embedding.d.ts.map +1 -0
- package/dist/embedding/gemini-embedding.js +152 -0
- package/dist/embedding/gemini-embedding.js.map +1 -0
- package/dist/embedding/index.d.ts +6 -0
- package/dist/embedding/index.d.ts.map +1 -0
- package/dist/embedding/index.js +24 -0
- package/dist/embedding/index.js.map +1 -0
- package/dist/embedding/ollama-embedding.d.ts +55 -0
- package/dist/embedding/ollama-embedding.d.ts.map +1 -0
- package/dist/embedding/ollama-embedding.js +192 -0
- package/dist/embedding/ollama-embedding.js.map +1 -0
- package/dist/embedding/openai-embedding.d.ts +36 -0
- package/dist/embedding/openai-embedding.d.ts.map +1 -0
- package/dist/embedding/openai-embedding.js +159 -0
- package/dist/embedding/openai-embedding.js.map +1 -0
- package/dist/embedding/voyageai-embedding.d.ts +44 -0
- package/dist/embedding/voyageai-embedding.d.ts.map +1 -0
- package/dist/embedding/voyageai-embedding.js +227 -0
- package/dist/embedding/voyageai-embedding.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/splitter/ast-splitter.d.ts +22 -0
- package/dist/splitter/ast-splitter.d.ts.map +1 -0
- package/dist/splitter/ast-splitter.js +234 -0
- package/dist/splitter/ast-splitter.js.map +1 -0
- package/dist/splitter/index.d.ts +41 -0
- package/dist/splitter/index.d.ts.map +1 -0
- package/dist/splitter/index.js +27 -0
- package/dist/splitter/index.js.map +1 -0
- package/dist/splitter/langchain-splitter.d.ts +13 -0
- package/dist/splitter/langchain-splitter.d.ts.map +1 -0
- package/dist/splitter/langchain-splitter.js +118 -0
- package/dist/splitter/langchain-splitter.js.map +1 -0
- package/dist/sync/merkle.d.ts +26 -0
- package/dist/sync/merkle.d.ts.map +1 -0
- package/dist/sync/merkle.js +112 -0
- package/dist/sync/merkle.js.map +1 -0
- package/dist/sync/synchronizer.d.ts +30 -0
- package/dist/sync/synchronizer.d.ts.map +1 -0
- package/dist/sync/synchronizer.js +339 -0
- package/dist/sync/synchronizer.js.map +1 -0
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/env-manager.d.ts +19 -0
- package/dist/utils/env-manager.d.ts.map +1 -0
- package/dist/utils/env-manager.js +125 -0
- package/dist/utils/env-manager.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/vectordb/base/base-vector-database.d.ts +58 -0
- package/dist/vectordb/base/base-vector-database.d.ts.map +1 -0
- package/dist/vectordb/base/base-vector-database.js +32 -0
- package/dist/vectordb/base/base-vector-database.js.map +1 -0
- package/dist/vectordb/factory.d.ts +80 -0
- package/dist/vectordb/factory.d.ts.map +1 -0
- package/dist/vectordb/factory.js +89 -0
- package/dist/vectordb/factory.js.map +1 -0
- package/dist/vectordb/index.d.ts +12 -0
- package/dist/vectordb/index.d.ts.map +1 -0
- package/dist/vectordb/index.js +27 -0
- package/dist/vectordb/index.js.map +1 -0
- package/dist/vectordb/milvus-restful-vectordb.d.ts +75 -0
- package/dist/vectordb/milvus-restful-vectordb.d.ts.map +1 -0
- package/dist/vectordb/milvus-restful-vectordb.js +707 -0
- package/dist/vectordb/milvus-restful-vectordb.js.map +1 -0
- package/dist/vectordb/milvus-vectordb.d.ts +59 -0
- package/dist/vectordb/milvus-vectordb.d.ts.map +1 -0
- package/dist/vectordb/milvus-vectordb.js +641 -0
- package/dist/vectordb/milvus-vectordb.js.map +1 -0
- package/dist/vectordb/qdrant-vectordb.d.ts +124 -0
- package/dist/vectordb/qdrant-vectordb.d.ts.map +1 -0
- package/dist/vectordb/qdrant-vectordb.js +582 -0
- package/dist/vectordb/qdrant-vectordb.js.map +1 -0
- package/dist/vectordb/sparse/index.d.ts +4 -0
- package/dist/vectordb/sparse/index.d.ts.map +1 -0
- package/dist/vectordb/sparse/index.js +23 -0
- package/dist/vectordb/sparse/index.js.map +1 -0
- package/dist/vectordb/sparse/simple-bm25.d.ts +104 -0
- package/dist/vectordb/sparse/simple-bm25.d.ts.map +1 -0
- package/dist/vectordb/sparse/simple-bm25.js +189 -0
- package/dist/vectordb/sparse/simple-bm25.js.map +1 -0
- package/dist/vectordb/sparse/sparse-vector-generator.d.ts +54 -0
- package/dist/vectordb/sparse/sparse-vector-generator.d.ts.map +1 -0
- package/dist/vectordb/sparse/sparse-vector-generator.js +3 -0
- package/dist/vectordb/sparse/sparse-vector-generator.js.map +1 -0
- package/dist/vectordb/sparse/types.d.ts +38 -0
- package/dist/vectordb/sparse/types.d.ts.map +1 -0
- package/dist/vectordb/sparse/types.js +3 -0
- package/dist/vectordb/sparse/types.js.map +1 -0
- package/dist/vectordb/types.d.ts +120 -0
- package/dist/vectordb/types.d.ts.map +1 -0
- package/dist/vectordb/types.js +9 -0
- package/dist/vectordb/types.js.map +1 -0
- package/dist/vectordb/zilliz-utils.d.ts +135 -0
- package/dist/vectordb/zilliz-utils.d.ts.map +1 -0
- package/dist/vectordb/zilliz-utils.js +192 -0
- package/dist/vectordb/zilliz-utils.js.map +1 -0
- package/package.json +61 -0
@@ -0,0 +1,276 @@
|
|
1
|
+
import { Splitter } from './splitter';
|
2
|
+
import { Embedding } from './embedding';
|
3
|
+
import { VectorDatabase } from './vectordb';
|
4
|
+
import { SemanticSearchResult } from './types';
|
5
|
+
import { FileSynchronizer } from './sync/synchronizer';
|
6
|
+
export interface ContextConfig {
|
7
|
+
embedding?: Embedding;
|
8
|
+
vectorDatabase?: VectorDatabase;
|
9
|
+
codeSplitter?: Splitter;
|
10
|
+
supportedExtensions?: string[];
|
11
|
+
ignorePatterns?: string[];
|
12
|
+
customExtensions?: string[];
|
13
|
+
customIgnorePatterns?: string[];
|
14
|
+
}
|
15
|
+
export declare class Context {
|
16
|
+
private embedding;
|
17
|
+
private vectorDatabase;
|
18
|
+
private codeSplitter;
|
19
|
+
private supportedExtensions;
|
20
|
+
private ignorePatterns;
|
21
|
+
private synchronizers;
|
22
|
+
constructor(config?: ContextConfig);
|
23
|
+
/**
|
24
|
+
* Get embedding instance
|
25
|
+
*/
|
26
|
+
getEmbedding(): Embedding;
|
27
|
+
/**
|
28
|
+
* Get vector database instance
|
29
|
+
*/
|
30
|
+
getVectorDatabase(): VectorDatabase;
|
31
|
+
/**
|
32
|
+
* Get code splitter instance
|
33
|
+
*/
|
34
|
+
getCodeSplitter(): Splitter;
|
35
|
+
/**
|
36
|
+
* Get supported extensions
|
37
|
+
*/
|
38
|
+
getSupportedExtensions(): string[];
|
39
|
+
/**
|
40
|
+
* Get ignore patterns
|
41
|
+
*/
|
42
|
+
getIgnorePatterns(): string[];
|
43
|
+
/**
|
44
|
+
* Get synchronizers map
|
45
|
+
*/
|
46
|
+
getSynchronizers(): Map<string, FileSynchronizer>;
|
47
|
+
/**
|
48
|
+
* Set synchronizer for a collection
|
49
|
+
*/
|
50
|
+
setSynchronizer(collectionName: string, synchronizer: FileSynchronizer): void;
|
51
|
+
/**
|
52
|
+
* Public wrapper for loadIgnorePatterns private method
|
53
|
+
*/
|
54
|
+
getLoadedIgnorePatterns(codebasePath: string): Promise<void>;
|
55
|
+
/**
|
56
|
+
* Public wrapper for prepareCollection private method
|
57
|
+
*/
|
58
|
+
getPreparedCollection(codebasePath: string): Promise<void>;
|
59
|
+
/**
|
60
|
+
* Get isHybrid setting from environment variable with default true
|
61
|
+
*/
|
62
|
+
private getIsHybrid;
|
63
|
+
/**
|
64
|
+
* Generate collection name based on codebase path and hybrid mode
|
65
|
+
*/
|
66
|
+
getCollectionName(codebasePath: string): string;
|
67
|
+
/**
|
68
|
+
* Index a codebase for semantic search
|
69
|
+
* @param codebasePath Codebase root path
|
70
|
+
* @param progressCallback Optional progress callback function
|
71
|
+
* @param forceReindex Whether to recreate the collection even if it exists
|
72
|
+
* @returns Indexing statistics
|
73
|
+
*/
|
74
|
+
indexCodebase(codebasePath: string, progressCallback?: (progress: {
|
75
|
+
phase: string;
|
76
|
+
current: number;
|
77
|
+
total: number;
|
78
|
+
percentage: number;
|
79
|
+
}) => void, forceReindex?: boolean): Promise<{
|
80
|
+
indexedFiles: number;
|
81
|
+
totalChunks: number;
|
82
|
+
status: 'completed' | 'limit_reached';
|
83
|
+
}>;
|
84
|
+
reindexByChange(codebasePath: string, progressCallback?: (progress: {
|
85
|
+
phase: string;
|
86
|
+
current: number;
|
87
|
+
total: number;
|
88
|
+
percentage: number;
|
89
|
+
}) => void): Promise<{
|
90
|
+
added: number;
|
91
|
+
removed: number;
|
92
|
+
modified: number;
|
93
|
+
}>;
|
94
|
+
private deleteFileChunks;
|
95
|
+
/**
|
96
|
+
* Semantic search with unified implementation
|
97
|
+
* @param codebasePath Codebase path to search in
|
98
|
+
* @param query Search query
|
99
|
+
* @param topK Number of results to return
|
100
|
+
* @param threshold Similarity threshold
|
101
|
+
*/
|
102
|
+
semanticSearch(codebasePath: string, query: string, topK?: number, threshold?: number, filterExpr?: string): Promise<SemanticSearchResult[]>;
|
103
|
+
/**
|
104
|
+
* Check if index exists for codebase
|
105
|
+
* @param codebasePath Codebase path to check
|
106
|
+
* @returns Whether index exists
|
107
|
+
*/
|
108
|
+
hasIndex(codebasePath: string): Promise<boolean>;
|
109
|
+
/**
|
110
|
+
* Clear index
|
111
|
+
* @param codebasePath Codebase path to clear index for
|
112
|
+
* @param progressCallback Optional progress callback function
|
113
|
+
*/
|
114
|
+
clearIndex(codebasePath: string, progressCallback?: (progress: {
|
115
|
+
phase: string;
|
116
|
+
current: number;
|
117
|
+
total: number;
|
118
|
+
percentage: number;
|
119
|
+
}) => void): Promise<void>;
|
120
|
+
/**
|
121
|
+
* Update ignore patterns (merges with default patterns and existing patterns)
|
122
|
+
* @param ignorePatterns Array of ignore patterns to add to defaults
|
123
|
+
*/
|
124
|
+
updateIgnorePatterns(ignorePatterns: string[]): void;
|
125
|
+
/**
|
126
|
+
* Add custom ignore patterns (from MCP or other sources) without replacing existing ones
|
127
|
+
* @param customPatterns Array of custom ignore patterns to add
|
128
|
+
*/
|
129
|
+
addCustomIgnorePatterns(customPatterns: string[]): void;
|
130
|
+
/**
|
131
|
+
* Reset ignore patterns to defaults only
|
132
|
+
*/
|
133
|
+
resetIgnorePatternsToDefaults(): void;
|
134
|
+
/**
|
135
|
+
* Update embedding instance
|
136
|
+
* @param embedding New embedding instance
|
137
|
+
*/
|
138
|
+
updateEmbedding(embedding: Embedding): void;
|
139
|
+
/**
|
140
|
+
* Update vector database instance
|
141
|
+
* @param vectorDatabase New vector database instance
|
142
|
+
*/
|
143
|
+
updateVectorDatabase(vectorDatabase: VectorDatabase): void;
|
144
|
+
/**
|
145
|
+
* Update splitter instance
|
146
|
+
* @param splitter New splitter instance
|
147
|
+
*/
|
148
|
+
updateSplitter(splitter: Splitter): void;
|
149
|
+
/**
|
150
|
+
* Prepare vector collection
|
151
|
+
*/
|
152
|
+
private prepareCollection;
|
153
|
+
/**
|
154
|
+
* Recursively get all code files in the codebase
|
155
|
+
*/
|
156
|
+
private getCodeFiles;
|
157
|
+
/**
|
158
|
+
* Process a list of files with streaming chunk processing
|
159
|
+
* @param filePaths Array of file paths to process
|
160
|
+
* @param codebasePath Base path for the codebase
|
161
|
+
* @param onFileProcessed Callback called when each file is processed
|
162
|
+
* @returns Object with processed file count and total chunk count
|
163
|
+
*/
|
164
|
+
private processFileList;
|
165
|
+
/**
|
166
|
+
* Process accumulated chunk buffer
|
167
|
+
*/
|
168
|
+
private processChunkBuffer;
|
169
|
+
/**
|
170
|
+
* Process a batch of chunks
|
171
|
+
*/
|
172
|
+
private processChunkBatch;
|
173
|
+
/**
|
174
|
+
* Get programming language based on file extension
|
175
|
+
*/
|
176
|
+
private getLanguageFromExtension;
|
177
|
+
/**
|
178
|
+
* Generate unique ID based on chunk content and location
|
179
|
+
* @param relativePath Relative path to the file
|
180
|
+
* @param startLine Start line number
|
181
|
+
* @param endLine End line number
|
182
|
+
* @param content Chunk content
|
183
|
+
* @returns Hash-based unique ID
|
184
|
+
*/
|
185
|
+
private generateId;
|
186
|
+
/**
|
187
|
+
* Read ignore patterns from file (e.g., .gitignore)
|
188
|
+
* @param filePath Path to the ignore file
|
189
|
+
* @returns Array of ignore patterns
|
190
|
+
*/
|
191
|
+
static getIgnorePatternsFromFile(filePath: string): Promise<string[]>;
|
192
|
+
/**
|
193
|
+
* Load ignore patterns from various ignore files in the codebase
|
194
|
+
* This method preserves any existing custom patterns that were added before
|
195
|
+
* @param codebasePath Path to the codebase
|
196
|
+
*/
|
197
|
+
private loadIgnorePatterns;
|
198
|
+
/**
|
199
|
+
* Find all .xxxignore files in the codebase directory
|
200
|
+
* @param codebasePath Path to the codebase
|
201
|
+
* @returns Array of ignore file paths
|
202
|
+
*/
|
203
|
+
private findIgnoreFiles;
|
204
|
+
/**
|
205
|
+
* Load global ignore file from ~/.context/.contextignore
|
206
|
+
* @returns Array of ignore patterns
|
207
|
+
*/
|
208
|
+
private loadGlobalIgnoreFile;
|
209
|
+
/**
|
210
|
+
* Load ignore patterns from a specific ignore file
|
211
|
+
* @param filePath Path to the ignore file
|
212
|
+
* @param fileName Display name for logging
|
213
|
+
* @returns Array of ignore patterns
|
214
|
+
*/
|
215
|
+
private loadIgnoreFile;
|
216
|
+
/**
|
217
|
+
* Check if a path matches any ignore pattern
|
218
|
+
* @param filePath Path to check
|
219
|
+
* @param basePath Base path for relative pattern matching
|
220
|
+
* @returns True if path should be ignored
|
221
|
+
*/
|
222
|
+
private matchesIgnorePattern;
|
223
|
+
/**
|
224
|
+
* Simple glob pattern matching
|
225
|
+
* @param filePath File path to test
|
226
|
+
* @param pattern Glob pattern
|
227
|
+
* @returns True if pattern matches
|
228
|
+
*/
|
229
|
+
private isPatternMatch;
|
230
|
+
/**
|
231
|
+
* Simple glob matching supporting * wildcard
|
232
|
+
* @param text Text to test
|
233
|
+
* @param pattern Pattern with * wildcards
|
234
|
+
* @returns True if pattern matches
|
235
|
+
*/
|
236
|
+
private simpleGlobMatch;
|
237
|
+
/**
|
238
|
+
* Get custom extensions from environment variables
|
239
|
+
* Supports CUSTOM_EXTENSIONS as comma-separated list
|
240
|
+
* @returns Array of custom extensions
|
241
|
+
*/
|
242
|
+
private getCustomExtensionsFromEnv;
|
243
|
+
/**
|
244
|
+
* Get custom ignore patterns from environment variables
|
245
|
+
* Supports CUSTOM_IGNORE_PATTERNS as comma-separated list
|
246
|
+
* @returns Array of custom ignore patterns
|
247
|
+
*/
|
248
|
+
private getCustomIgnorePatternsFromEnv;
|
249
|
+
/**
|
250
|
+
* Add custom extensions (from MCP or other sources) without replacing existing ones
|
251
|
+
* @param customExtensions Array of custom extensions to add
|
252
|
+
*/
|
253
|
+
addCustomExtensions(customExtensions: string[]): void;
|
254
|
+
/**
|
255
|
+
* Get current splitter information
|
256
|
+
*/
|
257
|
+
getSplitterInfo(): {
|
258
|
+
type: string;
|
259
|
+
hasBuiltinFallback: boolean;
|
260
|
+
supportedLanguages?: string[];
|
261
|
+
};
|
262
|
+
/**
|
263
|
+
* Check if current splitter supports a specific language
|
264
|
+
* @param language Programming language
|
265
|
+
*/
|
266
|
+
isLanguageSupported(language: string): boolean;
|
267
|
+
/**
|
268
|
+
* Get which strategy would be used for a specific language
|
269
|
+
* @param language Programming language
|
270
|
+
*/
|
271
|
+
getSplitterStrategyForLanguage(language: string): {
|
272
|
+
strategy: 'ast' | 'langchain';
|
273
|
+
reason: string;
|
274
|
+
};
|
275
|
+
}
|
276
|
+
//# sourceMappingURL=context.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|