lance-context 0.1.0 → 1.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/README.md +232 -23
- package/dist/__tests__/ast-chunker.test.d.ts +2 -0
- package/dist/__tests__/ast-chunker.test.d.ts.map +1 -0
- package/dist/__tests__/ast-chunker.test.js +307 -0
- package/dist/__tests__/ast-chunker.test.js.map +1 -0
- package/dist/__tests__/config.test.d.ts +2 -0
- package/dist/__tests__/config.test.d.ts.map +1 -0
- package/dist/__tests__/config.test.js +242 -0
- package/dist/__tests__/config.test.js.map +1 -0
- package/dist/__tests__/dashboard/beads.test.d.ts +2 -0
- package/dist/__tests__/dashboard/beads.test.d.ts.map +1 -0
- package/dist/__tests__/dashboard/beads.test.js +151 -0
- package/dist/__tests__/dashboard/beads.test.js.map +1 -0
- package/dist/__tests__/dashboard/index.test.d.ts +2 -0
- package/dist/__tests__/dashboard/index.test.d.ts.map +1 -0
- package/dist/__tests__/dashboard/index.test.js +116 -0
- package/dist/__tests__/dashboard/index.test.js.map +1 -0
- package/dist/__tests__/dashboard/routes.test.d.ts +2 -0
- package/dist/__tests__/dashboard/routes.test.d.ts.map +1 -0
- package/dist/__tests__/dashboard/routes.test.js +125 -0
- package/dist/__tests__/dashboard/routes.test.js.map +1 -0
- package/dist/__tests__/dashboard/server.test.d.ts +2 -0
- package/dist/__tests__/dashboard/server.test.d.ts.map +1 -0
- package/dist/__tests__/dashboard/server.test.js +75 -0
- package/dist/__tests__/dashboard/server.test.js.map +1 -0
- package/dist/__tests__/dashboard/state.test.d.ts +2 -0
- package/dist/__tests__/dashboard/state.test.d.ts.map +1 -0
- package/dist/__tests__/dashboard/state.test.js +124 -0
- package/dist/__tests__/dashboard/state.test.js.map +1 -0
- package/dist/__tests__/embeddings/factory.test.d.ts +2 -0
- package/dist/__tests__/embeddings/factory.test.d.ts.map +1 -0
- package/dist/__tests__/embeddings/factory.test.js +100 -0
- package/dist/__tests__/embeddings/factory.test.js.map +1 -0
- package/dist/__tests__/embeddings/jina.test.d.ts +2 -0
- package/dist/__tests__/embeddings/jina.test.d.ts.map +1 -0
- package/dist/__tests__/embeddings/jina.test.js +156 -0
- package/dist/__tests__/embeddings/jina.test.js.map +1 -0
- package/dist/__tests__/embeddings/ollama.test.d.ts +2 -0
- package/dist/__tests__/embeddings/ollama.test.d.ts.map +1 -0
- package/dist/__tests__/embeddings/ollama.test.js +172 -0
- package/dist/__tests__/embeddings/ollama.test.js.map +1 -0
- package/dist/__tests__/embeddings/rate-limiter.test.d.ts +2 -0
- package/dist/__tests__/embeddings/rate-limiter.test.d.ts.map +1 -0
- package/dist/__tests__/embeddings/rate-limiter.test.js +163 -0
- package/dist/__tests__/embeddings/rate-limiter.test.js.map +1 -0
- package/dist/__tests__/embeddings/retry.test.d.ts +2 -0
- package/dist/__tests__/embeddings/retry.test.d.ts.map +1 -0
- package/dist/__tests__/embeddings/retry.test.js +260 -0
- package/dist/__tests__/embeddings/retry.test.js.map +1 -0
- package/dist/__tests__/embeddings/types.test.d.ts +2 -0
- package/dist/__tests__/embeddings/types.test.d.ts.map +1 -0
- package/dist/__tests__/embeddings/types.test.js +31 -0
- package/dist/__tests__/embeddings/types.test.js.map +1 -0
- package/dist/__tests__/mocks/embedding-backend.mock.d.ts +10 -0
- package/dist/__tests__/mocks/embedding-backend.mock.d.ts.map +1 -0
- package/dist/__tests__/mocks/embedding-backend.mock.js +39 -0
- package/dist/__tests__/mocks/embedding-backend.mock.js.map +1 -0
- package/dist/__tests__/mocks/fetch.mock.d.ts +38 -0
- package/dist/__tests__/mocks/fetch.mock.d.ts.map +1 -0
- package/dist/__tests__/mocks/fetch.mock.js +74 -0
- package/dist/__tests__/mocks/fetch.mock.js.map +1 -0
- package/dist/__tests__/mocks/lancedb.mock.d.ts +38 -0
- package/dist/__tests__/mocks/lancedb.mock.d.ts.map +1 -0
- package/dist/__tests__/mocks/lancedb.mock.js +63 -0
- package/dist/__tests__/mocks/lancedb.mock.js.map +1 -0
- package/dist/__tests__/search/clustering.test.d.ts +2 -0
- package/dist/__tests__/search/clustering.test.d.ts.map +1 -0
- package/dist/__tests__/search/clustering.test.js +230 -0
- package/dist/__tests__/search/clustering.test.js.map +1 -0
- package/dist/__tests__/search/hybrid-search.test.d.ts +2 -0
- package/dist/__tests__/search/hybrid-search.test.d.ts.map +1 -0
- package/dist/__tests__/search/hybrid-search.test.js +186 -0
- package/dist/__tests__/search/hybrid-search.test.js.map +1 -0
- package/dist/__tests__/search/indexer.test.d.ts +2 -0
- package/dist/__tests__/search/indexer.test.d.ts.map +1 -0
- package/dist/__tests__/search/indexer.test.js +878 -0
- package/dist/__tests__/search/indexer.test.js.map +1 -0
- package/dist/__tests__/search/tree-sitter-chunker.test.d.ts +2 -0
- package/dist/__tests__/search/tree-sitter-chunker.test.d.ts.map +1 -0
- package/dist/__tests__/search/tree-sitter-chunker.test.js +228 -0
- package/dist/__tests__/search/tree-sitter-chunker.test.js.map +1 -0
- package/dist/__tests__/setup.d.ts +2 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/setup.js +11 -0
- package/dist/__tests__/setup.js.map +1 -0
- package/dist/__tests__/utils/concurrency.test.d.ts +2 -0
- package/dist/__tests__/utils/concurrency.test.d.ts.map +1 -0
- package/dist/__tests__/utils/concurrency.test.js +83 -0
- package/dist/__tests__/utils/concurrency.test.js.map +1 -0
- package/dist/__tests__/utils/errors.test.d.ts +2 -0
- package/dist/__tests__/utils/errors.test.d.ts.map +1 -0
- package/dist/__tests__/utils/errors.test.js +136 -0
- package/dist/__tests__/utils/errors.test.js.map +1 -0
- package/dist/__tests__/utils/type-guards.test.d.ts +2 -0
- package/dist/__tests__/utils/type-guards.test.d.ts.map +1 -0
- package/dist/__tests__/utils/type-guards.test.js +80 -0
- package/dist/__tests__/utils/type-guards.test.js.map +1 -0
- package/dist/__tests__/worktree/worktree-manager.test.d.ts +2 -0
- package/dist/__tests__/worktree/worktree-manager.test.d.ts.map +1 -0
- package/dist/__tests__/worktree/worktree-manager.test.js +403 -0
- package/dist/__tests__/worktree/worktree-manager.test.js.map +1 -0
- package/dist/config.d.ts +122 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +508 -0
- package/dist/config.js.map +1 -0
- package/dist/dashboard/beads.d.ts +35 -0
- package/dist/dashboard/beads.d.ts.map +1 -0
- package/dist/dashboard/beads.js +102 -0
- package/dist/dashboard/beads.js.map +1 -0
- package/dist/dashboard/events.d.ts +46 -0
- package/dist/dashboard/events.d.ts.map +1 -0
- package/dist/dashboard/events.js +141 -0
- package/dist/dashboard/events.js.map +1 -0
- package/dist/dashboard/index.d.ts +69 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +93 -0
- package/dist/dashboard/index.js.map +1 -0
- package/dist/dashboard/routes.d.ts +6 -0
- package/dist/dashboard/routes.d.ts.map +1 -0
- package/dist/dashboard/routes.js +245 -0
- package/dist/dashboard/routes.js.map +1 -0
- package/dist/dashboard/server.d.ts +27 -0
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/dashboard/server.js +72 -0
- package/dist/dashboard/server.js.map +1 -0
- package/dist/dashboard/state.d.ts +125 -0
- package/dist/dashboard/state.d.ts.map +1 -0
- package/dist/dashboard/state.js +264 -0
- package/dist/dashboard/state.js.map +1 -0
- package/dist/dashboard/ui.d.ts +6 -0
- package/dist/dashboard/ui.d.ts.map +1 -0
- package/dist/dashboard/ui.js +1421 -0
- package/dist/dashboard/ui.js.map +1 -0
- package/dist/embeddings/index.d.ts +20 -2
- package/dist/embeddings/index.d.ts.map +1 -1
- package/dist/embeddings/index.js +49 -6
- package/dist/embeddings/index.js.map +1 -1
- package/dist/embeddings/jina.d.ts +9 -0
- package/dist/embeddings/jina.d.ts.map +1 -1
- package/dist/embeddings/jina.js +42 -2
- package/dist/embeddings/jina.js.map +1 -1
- package/dist/embeddings/ollama.d.ts +2 -0
- package/dist/embeddings/ollama.d.ts.map +1 -1
- package/dist/embeddings/ollama.js +21 -5
- package/dist/embeddings/ollama.js.map +1 -1
- package/dist/embeddings/rate-limiter.d.ts +75 -0
- package/dist/embeddings/rate-limiter.d.ts.map +1 -0
- package/dist/embeddings/rate-limiter.js +145 -0
- package/dist/embeddings/rate-limiter.js.map +1 -0
- package/dist/embeddings/retry.d.ts +14 -0
- package/dist/embeddings/retry.d.ts.map +1 -0
- package/dist/embeddings/retry.js +89 -0
- package/dist/embeddings/retry.js.map +1 -0
- package/dist/embeddings/types.d.ts +56 -2
- package/dist/embeddings/types.d.ts.map +1 -1
- package/dist/embeddings/types.js +16 -0
- package/dist/embeddings/types.js.map +1 -1
- package/dist/index.js +1871 -44
- package/dist/index.js.map +1 -1
- package/dist/memory/index.d.ts +63 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +168 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/search/ast-chunker.d.ts +34 -0
- package/dist/search/ast-chunker.d.ts.map +1 -0
- package/dist/search/ast-chunker.js +261 -0
- package/dist/search/ast-chunker.js.map +1 -0
- package/dist/search/clustering.d.ts +77 -0
- package/dist/search/clustering.d.ts.map +1 -0
- package/dist/search/clustering.js +455 -0
- package/dist/search/clustering.js.map +1 -0
- package/dist/search/indexer.d.ts +239 -3
- package/dist/search/indexer.d.ts.map +1 -1
- package/dist/search/indexer.js +941 -45
- package/dist/search/indexer.js.map +1 -1
- package/dist/search/tree-sitter-chunker.d.ts +69 -0
- package/dist/search/tree-sitter-chunker.d.ts.map +1 -0
- package/dist/search/tree-sitter-chunker.js +436 -0
- package/dist/search/tree-sitter-chunker.js.map +1 -0
- package/dist/symbols/index.d.ts +14 -0
- package/dist/symbols/index.d.ts.map +1 -0
- package/dist/symbols/index.js +19 -0
- package/dist/symbols/index.js.map +1 -0
- package/dist/symbols/name-path.d.ts +113 -0
- package/dist/symbols/name-path.d.ts.map +1 -0
- package/dist/symbols/name-path.js +194 -0
- package/dist/symbols/name-path.js.map +1 -0
- package/dist/symbols/pattern-search.d.ts +14 -0
- package/dist/symbols/pattern-search.d.ts.map +1 -0
- package/dist/symbols/pattern-search.js +224 -0
- package/dist/symbols/pattern-search.js.map +1 -0
- package/dist/symbols/reference-finder.d.ts +38 -0
- package/dist/symbols/reference-finder.d.ts.map +1 -0
- package/dist/symbols/reference-finder.js +376 -0
- package/dist/symbols/reference-finder.js.map +1 -0
- package/dist/symbols/symbol-editor.d.ts +81 -0
- package/dist/symbols/symbol-editor.d.ts.map +1 -0
- package/dist/symbols/symbol-editor.js +257 -0
- package/dist/symbols/symbol-editor.js.map +1 -0
- package/dist/symbols/symbol-extractor.d.ts +49 -0
- package/dist/symbols/symbol-extractor.d.ts.map +1 -0
- package/dist/symbols/symbol-extractor.js +593 -0
- package/dist/symbols/symbol-extractor.js.map +1 -0
- package/dist/symbols/symbol-renamer.d.ts +81 -0
- package/dist/symbols/symbol-renamer.d.ts.map +1 -0
- package/dist/symbols/symbol-renamer.js +204 -0
- package/dist/symbols/symbol-renamer.js.map +1 -0
- package/dist/symbols/types.d.ts +234 -0
- package/dist/symbols/types.d.ts.map +1 -0
- package/dist/symbols/types.js +106 -0
- package/dist/symbols/types.js.map +1 -0
- package/dist/utils/concurrency.d.ts +32 -0
- package/dist/utils/concurrency.d.ts.map +1 -0
- package/dist/utils/concurrency.js +57 -0
- package/dist/utils/concurrency.js.map +1 -0
- package/dist/utils/errors.d.ts +36 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +91 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/type-guards.d.ts +17 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +25 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/dist/worktree/index.d.ts +6 -0
- package/dist/worktree/index.d.ts.map +1 -0
- package/dist/worktree/index.js +6 -0
- package/dist/worktree/index.js.map +1 -0
- package/dist/worktree/types.d.ts +101 -0
- package/dist/worktree/types.d.ts.map +1 -0
- package/dist/worktree/types.js +6 -0
- package/dist/worktree/types.js.map +1 -0
- package/dist/worktree/worktree-manager.d.ts +80 -0
- package/dist/worktree/worktree-manager.d.ts.map +1 -0
- package/dist/worktree/worktree-manager.js +407 -0
- package/dist/worktree/worktree-manager.js.map +1 -0
- package/package.json +39 -5
- package/scripts/postinstall.js +48 -0
package/dist/search/indexer.d.ts
CHANGED
|
@@ -1,39 +1,275 @@
|
|
|
1
1
|
import type { EmbeddingBackend } from '../embeddings/index.js';
|
|
2
|
+
import { type ConceptCluster, type ClusteringResult, type ClusteringOptions } from './clustering.js';
|
|
3
|
+
/**
|
|
4
|
+
* Represents a chunk of code that has been indexed.
|
|
5
|
+
* Each chunk contains a portion of a source file with its location metadata.
|
|
6
|
+
*/
|
|
2
7
|
export interface CodeChunk {
|
|
8
|
+
/** Unique identifier for this chunk (format: filepath:startLine-endLine) */
|
|
3
9
|
id: string;
|
|
4
|
-
|
|
10
|
+
/** Relative path to the source file from the project root */
|
|
11
|
+
filepath: string;
|
|
12
|
+
/** The actual source code content of this chunk */
|
|
5
13
|
content: string;
|
|
14
|
+
/** Starting line number in the source file (1-indexed) */
|
|
6
15
|
startLine: number;
|
|
16
|
+
/** Ending line number in the source file (1-indexed) */
|
|
7
17
|
endLine: number;
|
|
18
|
+
/** Programming language of the source code */
|
|
8
19
|
language: string;
|
|
20
|
+
/** Vector embedding for semantic search (populated during indexing) */
|
|
9
21
|
embedding?: number[];
|
|
22
|
+
/** Type of code symbol (function, class, method, etc.) - from AST chunking */
|
|
23
|
+
symbolType?: 'function' | 'class' | 'method' | 'interface' | 'type' | 'variable' | 'import' | 'other';
|
|
24
|
+
/** Name of the code symbol (e.g., 'UserService', 'MyClass.constructor') - from AST chunking */
|
|
25
|
+
symbolName?: string;
|
|
10
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Status information about the code index.
|
|
29
|
+
*/
|
|
11
30
|
export interface IndexStatus {
|
|
31
|
+
/** Whether the codebase has been indexed */
|
|
12
32
|
indexed: boolean;
|
|
33
|
+
/** Number of files that have been indexed */
|
|
13
34
|
fileCount: number;
|
|
35
|
+
/** Total number of code chunks in the index */
|
|
14
36
|
chunkCount: number;
|
|
37
|
+
/** ISO timestamp of the last index update, or null if never indexed */
|
|
15
38
|
lastUpdated: string | null;
|
|
39
|
+
/** Path to the LanceDB index directory */
|
|
16
40
|
indexPath: string;
|
|
41
|
+
/** Name of the embedding backend used */
|
|
42
|
+
embeddingBackend?: string;
|
|
43
|
+
/** Model identifier used for embeddings */
|
|
44
|
+
embeddingModel?: string;
|
|
45
|
+
/** Whether index corruption was detected */
|
|
46
|
+
corrupted?: boolean;
|
|
47
|
+
/** Description of detected corruption */
|
|
48
|
+
corruptionReason?: string;
|
|
49
|
+
/** Whether the current embedding backend differs from the indexed backend */
|
|
50
|
+
backendMismatch?: boolean;
|
|
51
|
+
/** Description of the backend mismatch */
|
|
52
|
+
backendMismatchReason?: string;
|
|
53
|
+
/** Whether the index is currently being rebuilt due to backend change */
|
|
54
|
+
isIndexing?: boolean;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Options for searching similar code.
|
|
58
|
+
*/
|
|
59
|
+
export interface SearchSimilarOptions {
|
|
60
|
+
/** File path to find similar code for (relative to project root) */
|
|
61
|
+
filepath?: string;
|
|
62
|
+
/** Starting line number (1-indexed, requires filepath) */
|
|
63
|
+
startLine?: number;
|
|
64
|
+
/** Ending line number (1-indexed, requires filepath) */
|
|
65
|
+
endLine?: number;
|
|
66
|
+
/** Code snippet to find similar code for (alternative to filepath) */
|
|
67
|
+
code?: string;
|
|
68
|
+
/** Maximum number of results to return (default: 10) */
|
|
69
|
+
limit?: number;
|
|
70
|
+
/** Minimum similarity score threshold 0-1 (default: 0) */
|
|
71
|
+
threshold?: number;
|
|
72
|
+
/** Exclude the source chunk from results (default: true) */
|
|
73
|
+
excludeSelf?: boolean;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Result from similar code search, includes similarity score.
|
|
77
|
+
*/
|
|
78
|
+
export interface SimilarCodeResult extends CodeChunk {
|
|
79
|
+
/** Similarity score from 0 to 1 (1 = identical) */
|
|
80
|
+
similarity: number;
|
|
17
81
|
}
|
|
18
82
|
/**
|
|
19
|
-
*
|
|
83
|
+
* Options for searching code.
|
|
20
84
|
*/
|
|
85
|
+
export interface SearchOptions {
|
|
86
|
+
/** Natural language query to search for */
|
|
87
|
+
query: string;
|
|
88
|
+
/** Maximum number of results to return (default: 10) */
|
|
89
|
+
limit?: number;
|
|
90
|
+
/** Glob pattern to filter results by file path (e.g., "src/\**", "!test/\**") */
|
|
91
|
+
pathPattern?: string;
|
|
92
|
+
/** Filter results to specific languages (e.g., ["typescript", "javascript"]) */
|
|
93
|
+
languages?: string[];
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Progress information during indexing operations.
|
|
97
|
+
* Used to report status to callers via the progress callback.
|
|
98
|
+
*/
|
|
99
|
+
export interface IndexProgress {
|
|
100
|
+
/** Current phase of the indexing process */
|
|
101
|
+
phase: 'scanning' | 'chunking' | 'embedding' | 'storing' | 'complete';
|
|
102
|
+
/** Current progress count within the phase */
|
|
103
|
+
current: number;
|
|
104
|
+
/** Total items to process in the current phase */
|
|
105
|
+
total: number;
|
|
106
|
+
/** Human-readable status message */
|
|
107
|
+
message: string;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Callback function for receiving indexing progress updates.
|
|
111
|
+
*/
|
|
112
|
+
export type ProgressCallback = (progress: IndexProgress) => void;
|
|
113
|
+
/**
|
|
114
|
+
* Summary of the codebase structure and concept areas
|
|
115
|
+
*/
|
|
116
|
+
export interface CodebaseSummary {
|
|
117
|
+
/** Total number of files indexed */
|
|
118
|
+
totalFiles: number;
|
|
119
|
+
/** Total number of code chunks */
|
|
120
|
+
totalChunks: number;
|
|
121
|
+
/** Languages detected in the codebase */
|
|
122
|
+
languages: {
|
|
123
|
+
language: string;
|
|
124
|
+
fileCount: number;
|
|
125
|
+
chunkCount: number;
|
|
126
|
+
}[];
|
|
127
|
+
/** Discovered concept clusters */
|
|
128
|
+
concepts: ConceptCluster[];
|
|
129
|
+
/** Quality score for the clustering (silhouette score, -1 to 1) */
|
|
130
|
+
clusteringQuality: number;
|
|
131
|
+
/** Timestamp when summary was generated */
|
|
132
|
+
generatedAt: string;
|
|
133
|
+
}
|
|
21
134
|
export declare class CodeIndexer {
|
|
22
135
|
private db;
|
|
23
136
|
private table;
|
|
137
|
+
private metadataTable;
|
|
24
138
|
private embeddingBackend;
|
|
25
139
|
private indexPath;
|
|
26
140
|
private projectPath;
|
|
141
|
+
private config;
|
|
142
|
+
/** LRU cache for query embeddings to avoid recomputing identical queries */
|
|
143
|
+
private queryEmbeddingCache;
|
|
27
144
|
constructor(projectPath: string, embeddingBackend: EmbeddingBackend);
|
|
28
145
|
initialize(): Promise<void>;
|
|
146
|
+
private get metadataPath();
|
|
147
|
+
/**
|
|
148
|
+
* Save index metadata to disk
|
|
149
|
+
*/
|
|
150
|
+
private saveIndexMetadata;
|
|
151
|
+
/**
|
|
152
|
+
* Load index metadata from disk
|
|
153
|
+
*/
|
|
154
|
+
private loadIndexMetadata;
|
|
155
|
+
/**
|
|
156
|
+
* Get the modification time of a file
|
|
157
|
+
*/
|
|
158
|
+
private getFileMtime;
|
|
159
|
+
/**
|
|
160
|
+
* Get stored metadata for all indexed files
|
|
161
|
+
*/
|
|
162
|
+
private getStoredMetadata;
|
|
163
|
+
/**
|
|
164
|
+
* Detect which files have been added, modified, or deleted
|
|
165
|
+
*/
|
|
166
|
+
private detectFileChanges;
|
|
167
|
+
/**
|
|
168
|
+
* Save metadata for indexed files
|
|
169
|
+
*/
|
|
170
|
+
private saveFileMetadata;
|
|
29
171
|
getStatus(): Promise<IndexStatus>;
|
|
30
|
-
|
|
172
|
+
/**
|
|
173
|
+
* Check if the current embedding backend differs from the one used to create the index.
|
|
174
|
+
* Returns mismatch status and reason if mismatched.
|
|
175
|
+
*/
|
|
176
|
+
private checkBackendMismatch;
|
|
177
|
+
/**
|
|
178
|
+
* Validate index integrity by checking metadata consistency.
|
|
179
|
+
* Returns corruption status and reason if corrupted.
|
|
180
|
+
*/
|
|
181
|
+
private validateIndexIntegrity;
|
|
182
|
+
indexCodebase(patterns?: string[], excludePatterns?: string[], forceReindex?: boolean, onProgress?: ProgressCallback, autoRepair?: boolean): Promise<{
|
|
31
183
|
filesIndexed: number;
|
|
32
184
|
chunksCreated: number;
|
|
185
|
+
incremental: boolean;
|
|
186
|
+
repaired?: boolean;
|
|
33
187
|
}>;
|
|
188
|
+
/**
|
|
189
|
+
* Perform a full reindex of all files
|
|
190
|
+
*/
|
|
191
|
+
private indexFull;
|
|
192
|
+
/**
|
|
193
|
+
* Perform incremental indexing - only process changed files
|
|
194
|
+
*/
|
|
195
|
+
private indexIncremental;
|
|
196
|
+
/**
|
|
197
|
+
* Generate embeddings for chunks in batches
|
|
198
|
+
*/
|
|
199
|
+
private embedChunks;
|
|
34
200
|
private chunkFile;
|
|
201
|
+
/**
|
|
202
|
+
* Chunk a file using AST-aware parsing
|
|
203
|
+
*/
|
|
204
|
+
private chunkFileWithAST;
|
|
205
|
+
/**
|
|
206
|
+
* Chunk a file using tree-sitter AST parsing (Python, Go, Rust, Java, Kotlin)
|
|
207
|
+
*/
|
|
208
|
+
private chunkFileWithTreeSitter;
|
|
209
|
+
/**
|
|
210
|
+
* Chunk a file using line-based splitting (fallback)
|
|
211
|
+
*/
|
|
212
|
+
private chunkFileByLines;
|
|
35
213
|
private getLanguage;
|
|
214
|
+
/**
|
|
215
|
+
* Get query embedding from cache or compute it.
|
|
216
|
+
* Uses LRU eviction when cache is full.
|
|
217
|
+
*/
|
|
218
|
+
private getQueryEmbedding;
|
|
219
|
+
/**
|
|
220
|
+
* Check if a filepath matches a glob pattern.
|
|
221
|
+
* Supports negation patterns starting with '!'.
|
|
222
|
+
*/
|
|
223
|
+
private matchesPathPattern;
|
|
224
|
+
/**
|
|
225
|
+
* Search with options object
|
|
226
|
+
*/
|
|
227
|
+
search(options: SearchOptions): Promise<CodeChunk[]>;
|
|
228
|
+
/**
|
|
229
|
+
* Search with query string and optional limit (backward compatible)
|
|
230
|
+
*/
|
|
36
231
|
search(query: string, limit?: number): Promise<CodeChunk[]>;
|
|
232
|
+
/**
|
|
233
|
+
* Calculate keyword match score for hybrid search
|
|
234
|
+
*/
|
|
235
|
+
private calculateKeywordScore;
|
|
236
|
+
/**
|
|
237
|
+
* Find code chunks semantically similar to a given code snippet or file location.
|
|
238
|
+
* This is useful for finding duplicate logic, similar implementations, or related code.
|
|
239
|
+
*/
|
|
240
|
+
searchSimilar(options: SearchSimilarOptions): Promise<SimilarCodeResult[]>;
|
|
37
241
|
clearIndex(): Promise<void>;
|
|
242
|
+
private get clusteringMetadataPath();
|
|
243
|
+
/**
|
|
244
|
+
* Clear clustering metadata file
|
|
245
|
+
*/
|
|
246
|
+
private clearClusteringMetadata;
|
|
247
|
+
/**
|
|
248
|
+
* Save clustering result to metadata file
|
|
249
|
+
*/
|
|
250
|
+
private saveClusteringMetadata;
|
|
251
|
+
/**
|
|
252
|
+
* Load clustering result from metadata file
|
|
253
|
+
*/
|
|
254
|
+
private loadClusteringMetadata;
|
|
255
|
+
/**
|
|
256
|
+
* Cluster the indexed codebase into semantic concept areas.
|
|
257
|
+
* Uses k-means clustering on embeddings to discover related code groups.
|
|
258
|
+
*/
|
|
259
|
+
clusterConcepts(options?: ClusteringOptions): Promise<ClusteringResult>;
|
|
260
|
+
/**
|
|
261
|
+
* List all discovered concept clusters.
|
|
262
|
+
* Returns cached clustering result if available, otherwise clusters first.
|
|
263
|
+
*/
|
|
264
|
+
listConcepts(forceRecluster?: boolean): Promise<ConceptCluster[]>;
|
|
265
|
+
/**
|
|
266
|
+
* Search for code within a specific concept cluster.
|
|
267
|
+
* Returns chunks that belong to the specified cluster, optionally filtered by query.
|
|
268
|
+
*/
|
|
269
|
+
searchByConcept(conceptId: number, query?: string, limit?: number): Promise<CodeChunk[]>;
|
|
270
|
+
/**
|
|
271
|
+
* Generate a comprehensive summary of the codebase including concept areas.
|
|
272
|
+
*/
|
|
273
|
+
summarizeCodebase(clusteringOptions?: ClusteringOptions): Promise<CodebaseSummary>;
|
|
38
274
|
}
|
|
39
275
|
//# sourceMappingURL=indexer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/search/indexer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/search/indexer.ts"],"names":[],"mappings":"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"}
|