@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.
Files changed (116) hide show
  1. package/LICENSE +24 -0
  2. package/README.md +287 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/context.d.ts +276 -0
  5. package/dist/context.d.ts.map +1 -0
  6. package/dist/context.js +1072 -0
  7. package/dist/context.js.map +1 -0
  8. package/dist/embedding/base-embedding.d.ts +51 -0
  9. package/dist/embedding/base-embedding.d.ts.map +1 -0
  10. package/dist/embedding/base-embedding.js +36 -0
  11. package/dist/embedding/base-embedding.js.map +1 -0
  12. package/dist/embedding/gemini-embedding.d.ts +53 -0
  13. package/dist/embedding/gemini-embedding.d.ts.map +1 -0
  14. package/dist/embedding/gemini-embedding.js +152 -0
  15. package/dist/embedding/gemini-embedding.js.map +1 -0
  16. package/dist/embedding/index.d.ts +6 -0
  17. package/dist/embedding/index.d.ts.map +1 -0
  18. package/dist/embedding/index.js +24 -0
  19. package/dist/embedding/index.js.map +1 -0
  20. package/dist/embedding/ollama-embedding.d.ts +55 -0
  21. package/dist/embedding/ollama-embedding.d.ts.map +1 -0
  22. package/dist/embedding/ollama-embedding.js +192 -0
  23. package/dist/embedding/ollama-embedding.js.map +1 -0
  24. package/dist/embedding/openai-embedding.d.ts +36 -0
  25. package/dist/embedding/openai-embedding.d.ts.map +1 -0
  26. package/dist/embedding/openai-embedding.js +159 -0
  27. package/dist/embedding/openai-embedding.js.map +1 -0
  28. package/dist/embedding/voyageai-embedding.d.ts +44 -0
  29. package/dist/embedding/voyageai-embedding.d.ts.map +1 -0
  30. package/dist/embedding/voyageai-embedding.js +227 -0
  31. package/dist/embedding/voyageai-embedding.js.map +1 -0
  32. package/dist/index.d.ts +8 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +24 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/splitter/ast-splitter.d.ts +22 -0
  37. package/dist/splitter/ast-splitter.d.ts.map +1 -0
  38. package/dist/splitter/ast-splitter.js +234 -0
  39. package/dist/splitter/ast-splitter.js.map +1 -0
  40. package/dist/splitter/index.d.ts +41 -0
  41. package/dist/splitter/index.d.ts.map +1 -0
  42. package/dist/splitter/index.js +27 -0
  43. package/dist/splitter/index.js.map +1 -0
  44. package/dist/splitter/langchain-splitter.d.ts +13 -0
  45. package/dist/splitter/langchain-splitter.d.ts.map +1 -0
  46. package/dist/splitter/langchain-splitter.js +118 -0
  47. package/dist/splitter/langchain-splitter.js.map +1 -0
  48. package/dist/sync/merkle.d.ts +26 -0
  49. package/dist/sync/merkle.d.ts.map +1 -0
  50. package/dist/sync/merkle.js +112 -0
  51. package/dist/sync/merkle.js.map +1 -0
  52. package/dist/sync/synchronizer.d.ts +30 -0
  53. package/dist/sync/synchronizer.d.ts.map +1 -0
  54. package/dist/sync/synchronizer.js +339 -0
  55. package/dist/sync/synchronizer.js.map +1 -0
  56. package/dist/types.d.ts +14 -0
  57. package/dist/types.d.ts.map +1 -0
  58. package/dist/types.js +3 -0
  59. package/dist/types.js.map +1 -0
  60. package/dist/utils/env-manager.d.ts +19 -0
  61. package/dist/utils/env-manager.d.ts.map +1 -0
  62. package/dist/utils/env-manager.js +125 -0
  63. package/dist/utils/env-manager.js.map +1 -0
  64. package/dist/utils/index.d.ts +2 -0
  65. package/dist/utils/index.d.ts.map +1 -0
  66. package/dist/utils/index.js +7 -0
  67. package/dist/utils/index.js.map +1 -0
  68. package/dist/vectordb/base/base-vector-database.d.ts +58 -0
  69. package/dist/vectordb/base/base-vector-database.d.ts.map +1 -0
  70. package/dist/vectordb/base/base-vector-database.js +32 -0
  71. package/dist/vectordb/base/base-vector-database.js.map +1 -0
  72. package/dist/vectordb/factory.d.ts +80 -0
  73. package/dist/vectordb/factory.d.ts.map +1 -0
  74. package/dist/vectordb/factory.js +89 -0
  75. package/dist/vectordb/factory.js.map +1 -0
  76. package/dist/vectordb/index.d.ts +12 -0
  77. package/dist/vectordb/index.d.ts.map +1 -0
  78. package/dist/vectordb/index.js +27 -0
  79. package/dist/vectordb/index.js.map +1 -0
  80. package/dist/vectordb/milvus-restful-vectordb.d.ts +75 -0
  81. package/dist/vectordb/milvus-restful-vectordb.d.ts.map +1 -0
  82. package/dist/vectordb/milvus-restful-vectordb.js +707 -0
  83. package/dist/vectordb/milvus-restful-vectordb.js.map +1 -0
  84. package/dist/vectordb/milvus-vectordb.d.ts +59 -0
  85. package/dist/vectordb/milvus-vectordb.d.ts.map +1 -0
  86. package/dist/vectordb/milvus-vectordb.js +641 -0
  87. package/dist/vectordb/milvus-vectordb.js.map +1 -0
  88. package/dist/vectordb/qdrant-vectordb.d.ts +124 -0
  89. package/dist/vectordb/qdrant-vectordb.d.ts.map +1 -0
  90. package/dist/vectordb/qdrant-vectordb.js +582 -0
  91. package/dist/vectordb/qdrant-vectordb.js.map +1 -0
  92. package/dist/vectordb/sparse/index.d.ts +4 -0
  93. package/dist/vectordb/sparse/index.d.ts.map +1 -0
  94. package/dist/vectordb/sparse/index.js +23 -0
  95. package/dist/vectordb/sparse/index.js.map +1 -0
  96. package/dist/vectordb/sparse/simple-bm25.d.ts +104 -0
  97. package/dist/vectordb/sparse/simple-bm25.d.ts.map +1 -0
  98. package/dist/vectordb/sparse/simple-bm25.js +189 -0
  99. package/dist/vectordb/sparse/simple-bm25.js.map +1 -0
  100. package/dist/vectordb/sparse/sparse-vector-generator.d.ts +54 -0
  101. package/dist/vectordb/sparse/sparse-vector-generator.d.ts.map +1 -0
  102. package/dist/vectordb/sparse/sparse-vector-generator.js +3 -0
  103. package/dist/vectordb/sparse/sparse-vector-generator.js.map +1 -0
  104. package/dist/vectordb/sparse/types.d.ts +38 -0
  105. package/dist/vectordb/sparse/types.d.ts.map +1 -0
  106. package/dist/vectordb/sparse/types.js +3 -0
  107. package/dist/vectordb/sparse/types.js.map +1 -0
  108. package/dist/vectordb/types.d.ts +120 -0
  109. package/dist/vectordb/types.d.ts.map +1 -0
  110. package/dist/vectordb/types.js +9 -0
  111. package/dist/vectordb/types.js.map +1 -0
  112. package/dist/vectordb/zilliz-utils.d.ts +135 -0
  113. package/dist/vectordb/zilliz-utils.d.ts.map +1 -0
  114. package/dist/vectordb/zilliz-utils.js +192 -0
  115. package/dist/vectordb/zilliz-utils.js.map +1 -0
  116. 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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"}