@eduardo-afonso/codebase-intelligence 0.1.0 → 2.0.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 +82 -7
- package/README.pt-BR.md +84 -8
- package/dist/ai/CodebaseWithAI.d.ts +91 -0
- package/dist/ai/CodebaseWithAI.d.ts.map +1 -0
- package/dist/ai/CodebaseWithAI.js +149 -0
- package/dist/ai/CodebaseWithAI.js.map +1 -0
- package/dist/ai/RAGPipeline.d.ts +66 -0
- package/dist/ai/RAGPipeline.d.ts.map +1 -0
- package/dist/ai/RAGPipeline.js +102 -0
- package/dist/ai/RAGPipeline.js.map +1 -0
- package/dist/ai/index.d.ts +6 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +5 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/providers/NoopAIProvider.d.ts +23 -0
- package/dist/ai/providers/NoopAIProvider.d.ts.map +1 -0
- package/dist/ai/providers/NoopAIProvider.js +24 -0
- package/dist/ai/providers/NoopAIProvider.js.map +1 -0
- package/dist/cli/index.js +168 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/context/ContextEngine.d.ts +54 -0
- package/dist/context/ContextEngine.d.ts.map +1 -0
- package/dist/context/ContextEngine.js +179 -0
- package/dist/context/ContextEngine.js.map +1 -0
- package/dist/context/FileContextBuilder.d.ts +49 -0
- package/dist/context/FileContextBuilder.d.ts.map +1 -0
- package/dist/context/FileContextBuilder.js +124 -0
- package/dist/context/FileContextBuilder.js.map +1 -0
- package/dist/context/SemanticChunker.d.ts +105 -0
- package/dist/context/SemanticChunker.d.ts.map +1 -0
- package/dist/context/SemanticChunker.js +293 -0
- package/dist/context/SemanticChunker.js.map +1 -0
- package/dist/context/SignatureExtractor.d.ts +49 -0
- package/dist/context/SignatureExtractor.d.ts.map +1 -0
- package/dist/context/SignatureExtractor.js +167 -0
- package/dist/context/SignatureExtractor.js.map +1 -0
- package/dist/context/interfaces.d.ts +149 -0
- package/dist/context/interfaces.d.ts.map +1 -0
- package/dist/context/interfaces.js +13 -0
- package/dist/context/interfaces.js.map +1 -0
- package/dist/context/strategies/ContextBuildStrategy.d.ts +25 -0
- package/dist/context/strategies/ContextBuildStrategy.d.ts.map +1 -0
- package/dist/context/strategies/ContextBuildStrategy.js +3 -0
- package/dist/context/strategies/ContextBuildStrategy.js.map +1 -0
- package/dist/context/strategies/DeepStrategy.d.ts +18 -0
- package/dist/context/strategies/DeepStrategy.d.ts.map +1 -0
- package/dist/context/strategies/DeepStrategy.js +19 -0
- package/dist/context/strategies/DeepStrategy.js.map +1 -0
- package/dist/context/strategies/ShallowStrategy.d.ts +15 -0
- package/dist/context/strategies/ShallowStrategy.d.ts.map +1 -0
- package/dist/context/strategies/ShallowStrategy.js +15 -0
- package/dist/context/strategies/ShallowStrategy.js.map +1 -0
- package/dist/context/strategies/SignatureStrategy.d.ts +20 -0
- package/dist/context/strategies/SignatureStrategy.d.ts.map +1 -0
- package/dist/context/strategies/SignatureStrategy.js +59 -0
- package/dist/context/strategies/SignatureStrategy.js.map +1 -0
- package/dist/context/strategies/index.d.ts +5 -0
- package/dist/context/strategies/index.d.ts.map +1 -0
- package/dist/context/strategies/index.js +4 -0
- package/dist/context/strategies/index.js.map +1 -0
- package/dist/context/types.d.ts +136 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/context/types.js +8 -0
- package/dist/context/types.js.map +1 -0
- package/dist/core/Codebase.d.ts +50 -0
- package/dist/core/Codebase.d.ts.map +1 -1
- package/dist/core/Codebase.js +104 -0
- package/dist/core/Codebase.js.map +1 -1
- package/dist/diff/ChangeSetImpactAnalyzer.d.ts +19 -0
- package/dist/diff/ChangeSetImpactAnalyzer.d.ts.map +1 -0
- package/dist/diff/ChangeSetImpactAnalyzer.js +121 -0
- package/dist/diff/ChangeSetImpactAnalyzer.js.map +1 -0
- package/dist/diff/GitChangeSetProvider.d.ts +86 -0
- package/dist/diff/GitChangeSetProvider.d.ts.map +1 -0
- package/dist/diff/GitChangeSetProvider.js +297 -0
- package/dist/diff/GitChangeSetProvider.js.map +1 -0
- package/dist/diff/errors.d.ts +48 -0
- package/dist/diff/errors.d.ts.map +1 -0
- package/dist/diff/errors.js +70 -0
- package/dist/diff/errors.js.map +1 -0
- package/dist/diff/types.d.ts +159 -0
- package/dist/diff/types.d.ts.map +1 -0
- package/dist/diff/types.js +8 -0
- package/dist/diff/types.js.map +1 -0
- package/dist/explorer/SnapshotBuilder.d.ts +22 -0
- package/dist/explorer/SnapshotBuilder.d.ts.map +1 -0
- package/dist/explorer/SnapshotBuilder.js +225 -0
- package/dist/explorer/SnapshotBuilder.js.map +1 -0
- package/dist/explorer/types.d.ts +88 -0
- package/dist/explorer/types.d.ts.map +1 -0
- package/dist/explorer/types.js +12 -0
- package/dist/explorer/types.js.map +1 -0
- package/dist/explorer/ui/App.d.ts +3 -0
- package/dist/explorer/ui/App.d.ts.map +1 -0
- package/dist/explorer/ui/App.js +43 -0
- package/dist/explorer/ui/App.js.map +1 -0
- package/dist/explorer/ui/main.d.ts +2 -0
- package/dist/explorer/ui/main.d.ts.map +1 -0
- package/dist/explorer/ui/main.js +8 -0
- package/dist/explorer/ui/main.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/ui/assets/index-D4w3JVrv.css +1 -0
- package/dist/ui/assets/index-DBRKE5qL.js +52 -0
- package/dist/ui/index.html +13 -0
- package/package.json +50 -50
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrates the Retrieval-Augmented Generation (RAG) pipeline for a codebase.
|
|
3
|
+
*
|
|
4
|
+
* It coordinates the extraction of semantic chunks, their conversion to
|
|
5
|
+
* embeddings, and storage in a vector database for semantic search.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const pipeline = new RAGPipeline({
|
|
10
|
+
* chunker: new SemanticChunker(),
|
|
11
|
+
* embedder: new OllamaEmbeddingProvider({ model: 'nomic-embed-text' }),
|
|
12
|
+
* store: new QdrantVectorStore({ url: 'http://localhost:6333' }),
|
|
13
|
+
* });
|
|
14
|
+
*
|
|
15
|
+
* await pipeline.index(codebase);
|
|
16
|
+
* const results = await pipeline.search('authentication logic');
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export class RAGPipeline {
|
|
20
|
+
chunker;
|
|
21
|
+
embedder;
|
|
22
|
+
store;
|
|
23
|
+
constructor(options) {
|
|
24
|
+
this.chunker = options.chunker;
|
|
25
|
+
this.embedder = options.embedder;
|
|
26
|
+
this.store = options.store;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Processes the entire codebase: generates semantic chunks, embeds them,
|
|
30
|
+
* and upserts the vectors and metadata into the vector store.
|
|
31
|
+
*
|
|
32
|
+
* @param codebase The fully analyzed codebase.
|
|
33
|
+
*/
|
|
34
|
+
async index(codebase) {
|
|
35
|
+
const chunks = await codebase.chunks();
|
|
36
|
+
if (chunks.length === 0)
|
|
37
|
+
return;
|
|
38
|
+
// We may want to batch this in a real-world scenario if chunks.length is huge.
|
|
39
|
+
// For now, we delegate the batching responsibility to the embedder/store adapters.
|
|
40
|
+
const texts = chunks.map(chunk => chunk.content);
|
|
41
|
+
const vectors = await this.embedder.embed(texts);
|
|
42
|
+
if (vectors.length !== chunks.length) {
|
|
43
|
+
throw new Error(`RAGPipeline: embedding provider returned ${vectors.length} vectors, but expected ${chunks.length}.`);
|
|
44
|
+
}
|
|
45
|
+
const promises = [];
|
|
46
|
+
for (let i = 0; i < chunks.length; i++) {
|
|
47
|
+
const chunk = chunks[i];
|
|
48
|
+
const vector = vectors[i];
|
|
49
|
+
const metadata = {
|
|
50
|
+
file: chunk.file,
|
|
51
|
+
relativePath: chunk.relativePath,
|
|
52
|
+
content: chunk.content,
|
|
53
|
+
symbolKind: chunk.symbolKind,
|
|
54
|
+
startLine: chunk.startLine,
|
|
55
|
+
endLine: chunk.endLine,
|
|
56
|
+
tokenEstimate: chunk.tokenEstimate,
|
|
57
|
+
};
|
|
58
|
+
if (chunk.symbolName !== undefined) {
|
|
59
|
+
metadata.symbolName = chunk.symbolName;
|
|
60
|
+
}
|
|
61
|
+
promises.push(this.store.upsert(chunk.id, vector, metadata));
|
|
62
|
+
}
|
|
63
|
+
// Await all upserts to complete
|
|
64
|
+
await Promise.all(promises);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Performs a semantic search over the indexed codebase.
|
|
68
|
+
*
|
|
69
|
+
* Embeds the query text and retrieves the closest matching chunks
|
|
70
|
+
* from the vector store.
|
|
71
|
+
*
|
|
72
|
+
* @param query The natural language search query.
|
|
73
|
+
* @param topK The maximum number of results to return. Default is 5.
|
|
74
|
+
* @returns The top matching semantic chunks.
|
|
75
|
+
*/
|
|
76
|
+
async search(query, topK = 5) {
|
|
77
|
+
const queryVectors = await this.embedder.embed([query]);
|
|
78
|
+
if (queryVectors.length === 0) {
|
|
79
|
+
return [];
|
|
80
|
+
}
|
|
81
|
+
const queryVector = queryVectors[0];
|
|
82
|
+
const results = await this.store.search(queryVector, topK);
|
|
83
|
+
return results.map(result => {
|
|
84
|
+
const m = result.metadata;
|
|
85
|
+
const chunk = {
|
|
86
|
+
id: result.id,
|
|
87
|
+
file: m.file,
|
|
88
|
+
relativePath: m.relativePath,
|
|
89
|
+
content: m.content,
|
|
90
|
+
symbolKind: m.symbolKind,
|
|
91
|
+
startLine: m.startLine,
|
|
92
|
+
endLine: m.endLine,
|
|
93
|
+
tokenEstimate: m.tokenEstimate,
|
|
94
|
+
};
|
|
95
|
+
if (m.symbolName !== undefined) {
|
|
96
|
+
chunk.symbolName = m.symbolName;
|
|
97
|
+
}
|
|
98
|
+
return chunk;
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=RAGPipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RAGPipeline.js","sourceRoot":"","sources":["../../src/ai/RAGPipeline.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,WAAW;IACd,OAAO,CAAkB;IACzB,QAAQ,CAAoB;IAC5B,KAAK,CAAc;IAE3B,YAAY,OAA2B;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,KAAK,CAAC,QAAkB;QACnC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEhC,+EAA+E;QAC/E,mFAAmF;QACnF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,4CAA4C,OAAO,CAAC,MAAM,0BAA0B,MAAM,CAAC,MAAM,GAAG,CACrG,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACzB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;YAE3B,MAAM,QAAQ,GAA4B;gBACxC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,aAAa,EAAE,KAAK,CAAC,aAAa;aACnC,CAAC;YAEF,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACnC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;YACzC,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,gCAAgC;QAChC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAAI,GAAW,CAAC;QACjD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAE3D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC1B,MAAM,KAAK,GAAkB;gBAC3B,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,CAAC,CAAC,IAAc;gBACtB,YAAY,EAAE,CAAC,CAAC,YAAsB;gBACtC,OAAO,EAAE,CAAC,CAAC,OAAiB;gBAC5B,UAAU,EAAE,CAAC,CAAC,UAAiC;gBAC/C,SAAS,EAAE,CAAC,CAAC,SAAmB;gBAChC,OAAO,EAAE,CAAC,CAAC,OAAiB;gBAC5B,aAAa,EAAE,CAAC,CAAC,aAAuB;aACzC,CAAC;YAEF,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC/B,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,UAAoB,CAAC;YAC5C,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { NoopAIProvider } from './providers/NoopAIProvider.js';
|
|
2
|
+
export { CodebaseWithAI } from './CodebaseWithAI.js';
|
|
3
|
+
export type { ExplainOptions, AskOptions } from './CodebaseWithAI.js';
|
|
4
|
+
export { RAGPipeline } from './RAGPipeline.js';
|
|
5
|
+
export type { RAGPipelineOptions } from './RAGPipeline.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/ai/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { AIProvider } from '../../context/interfaces.js';
|
|
2
|
+
/**
|
|
3
|
+
* A no-operation `AIProvider` that always returns an empty string.
|
|
4
|
+
*
|
|
5
|
+
* Useful for:
|
|
6
|
+
* - Unit tests that exercise the `explain` / `ask` pipeline without
|
|
7
|
+
* making real LLM calls.
|
|
8
|
+
* - Dry-run scenarios where you want to inspect the prompt that *would*
|
|
9
|
+
* be sent without incurring cost or latency.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const result = await codebase
|
|
14
|
+
* .withAI(new NoopAIProvider())
|
|
15
|
+
* .explain('src/auth/AuthService.ts');
|
|
16
|
+
* // result === ''
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class NoopAIProvider implements AIProvider {
|
|
20
|
+
readonly name = "noop";
|
|
21
|
+
complete(_prompt: string, _systemPrompt?: string): Promise<string>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=NoopAIProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoopAIProvider.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/NoopAIProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAe,YAAW,UAAU;IAC/C,SAAgB,IAAI,UAAU;IAEjB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9E;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A no-operation `AIProvider` that always returns an empty string.
|
|
3
|
+
*
|
|
4
|
+
* Useful for:
|
|
5
|
+
* - Unit tests that exercise the `explain` / `ask` pipeline without
|
|
6
|
+
* making real LLM calls.
|
|
7
|
+
* - Dry-run scenarios where you want to inspect the prompt that *would*
|
|
8
|
+
* be sent without incurring cost or latency.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const result = await codebase
|
|
13
|
+
* .withAI(new NoopAIProvider())
|
|
14
|
+
* .explain('src/auth/AuthService.ts');
|
|
15
|
+
* // result === ''
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export class NoopAIProvider {
|
|
19
|
+
name = 'noop';
|
|
20
|
+
async complete(_prompt, _systemPrompt) {
|
|
21
|
+
return '';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=NoopAIProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoopAIProvider.js","sourceRoot":"","sources":["../../../src/ai/providers/NoopAIProvider.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,cAAc;IACT,IAAI,GAAG,MAAM,CAAC;IAEvB,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,aAAsB;QAC3D,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|
package/dist/cli/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import * as path from 'path';
|
|
4
4
|
import * as fs from 'fs';
|
|
5
|
-
import { Codebase } from '../index.js';
|
|
5
|
+
import { Codebase, NoopAIProvider } from '../index.js';
|
|
6
6
|
import { CACHE_DIR_NAME } from '../core/AnalysisCache.js';
|
|
7
7
|
import { Watcher } from './Watcher.js';
|
|
8
8
|
const program = new Command();
|
|
@@ -185,11 +185,84 @@ program
|
|
|
185
185
|
});
|
|
186
186
|
program
|
|
187
187
|
.command('impact')
|
|
188
|
-
.description('Analyze the impact of changing a file'
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
.
|
|
192
|
-
.
|
|
188
|
+
.description('Analyze the impact of changing a file or a set of Git changes.\n\n' +
|
|
189
|
+
' File mode (original): impact <file> [path]\n' +
|
|
190
|
+
' Git diff mode: impact [path] --since <ref> | --staged | --uncommitted')
|
|
191
|
+
.argument('[file-or-path]', 'File path (file mode) or codebase path (diff mode)', '.')
|
|
192
|
+
.argument('[path]', 'Path to the codebase when in file mode', '')
|
|
193
|
+
.option('--since <ref>', 'Changes introduced since <ref> (merge-base comparison)')
|
|
194
|
+
.option('--staged', 'Only staged (indexed) changes')
|
|
195
|
+
.option('--uncommitted', 'All uncommitted changes including untracked files (default Git mode)')
|
|
196
|
+
.option('-f, --format <format>', 'Output format: text | json (default: text)')
|
|
197
|
+
.option('--tests-only', 'Print only related test file paths, one per line')
|
|
198
|
+
.option('-w, --watch', 'Watch for changes and re-run automatically (file mode only)')
|
|
199
|
+
.action(async (fileOrPath, secondPath, opts) => {
|
|
200
|
+
// Determine mode: diff mode if any of --since/--staged/--uncommitted are set
|
|
201
|
+
const isDiffMode = opts.since !== undefined || opts.staged === true || opts.uncommitted === true;
|
|
202
|
+
if (opts.since !== undefined && (opts.staged || opts.uncommitted)) {
|
|
203
|
+
console.error('Error: --since cannot be combined with --staged or --uncommitted.');
|
|
204
|
+
process.exit(1);
|
|
205
|
+
}
|
|
206
|
+
if (opts.staged && opts.uncommitted) {
|
|
207
|
+
console.error('Error: --staged and --uncommitted are mutually exclusive.');
|
|
208
|
+
process.exit(1);
|
|
209
|
+
}
|
|
210
|
+
const format = opts.format === 'json' ? 'json' : 'text';
|
|
211
|
+
// ---- DIFF MODE -------------------------------------------------------
|
|
212
|
+
if (isDiffMode) {
|
|
213
|
+
const targetPath = resolveTarget(fileOrPath || '.');
|
|
214
|
+
try {
|
|
215
|
+
const codebase = await loadAndAnalyze(targetPath);
|
|
216
|
+
const changeOpts = {};
|
|
217
|
+
if (opts.since)
|
|
218
|
+
changeOpts.since = opts.since;
|
|
219
|
+
if (opts.staged)
|
|
220
|
+
changeOpts.staged = true;
|
|
221
|
+
if (opts.uncommitted)
|
|
222
|
+
changeOpts.uncommitted = true;
|
|
223
|
+
const impact = await codebase.impactOfChanges(changeOpts);
|
|
224
|
+
if (opts.testsOnly) {
|
|
225
|
+
impact.tests.forEach(t => process.stdout.write(t + '\n'));
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
if (format === 'json') {
|
|
229
|
+
printJson(impact);
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
// Text output
|
|
233
|
+
const heading = (label) => console.log(`\n${label}`);
|
|
234
|
+
const items = (arr) => arr.length ? arr.forEach(f => console.log(` ${f}`)) : console.log(' (none)');
|
|
235
|
+
console.log('⚠ Granularity: file — all dependents of every changed file are listed.');
|
|
236
|
+
heading('Changed:');
|
|
237
|
+
impact.changed.forEach(c => console.log(` [${c.status.padEnd(8)}] ${c.path}`));
|
|
238
|
+
heading('Direct dependents:');
|
|
239
|
+
items(impact.direct);
|
|
240
|
+
heading('Indirect dependents:');
|
|
241
|
+
items(impact.indirect);
|
|
242
|
+
heading('Related tests:');
|
|
243
|
+
items(impact.tests);
|
|
244
|
+
if (impact.globalChanges.length) {
|
|
245
|
+
heading('Global changes (affect entire codebase):');
|
|
246
|
+
items(impact.globalChanges);
|
|
247
|
+
}
|
|
248
|
+
if (impact.unanalyzable.length) {
|
|
249
|
+
heading('Unanalyzable:');
|
|
250
|
+
impact.unanalyzable.forEach(u => console.log(` [${u.reason}] ${u.path}`));
|
|
251
|
+
}
|
|
252
|
+
if (impact.unresolvedDependencies.length) {
|
|
253
|
+
heading('Unresolved dependencies from changed files:');
|
|
254
|
+
items(impact.unresolvedDependencies);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
catch (err) {
|
|
258
|
+
console.error(`Error: ${err.message}`);
|
|
259
|
+
process.exit(1);
|
|
260
|
+
}
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
// ---- FILE MODE (original, backwards-compat) --------------------------
|
|
264
|
+
const file = fileOrPath;
|
|
265
|
+
const rawPath = secondPath || '.';
|
|
193
266
|
const targetPath = resolveTarget(rawPath);
|
|
194
267
|
const run = (codebase) => {
|
|
195
268
|
const cf = findFile(codebase, file);
|
|
@@ -197,7 +270,18 @@ program
|
|
|
197
270
|
console.error(`Error: File "${file}" not found.`);
|
|
198
271
|
return;
|
|
199
272
|
}
|
|
200
|
-
|
|
273
|
+
if (format === 'json') {
|
|
274
|
+
printJson(codebase.impact(cf.path));
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
const result = codebase.impact(cf.path);
|
|
278
|
+
const items = (arr) => arr.length ? arr.forEach(f => console.log(` ${f}`)) : console.log(' (none)');
|
|
279
|
+
console.log('\nDirect dependents:');
|
|
280
|
+
items(result.direct);
|
|
281
|
+
console.log('\nIndirect dependents:');
|
|
282
|
+
items(result.indirect);
|
|
283
|
+
console.log('\nRelated tests:');
|
|
284
|
+
items(result.tests);
|
|
201
285
|
};
|
|
202
286
|
try {
|
|
203
287
|
if (opts.watch) {
|
|
@@ -210,7 +294,7 @@ program
|
|
|
210
294
|
console.error(`Error: File "${file}" not found.`);
|
|
211
295
|
process.exit(1);
|
|
212
296
|
}
|
|
213
|
-
|
|
297
|
+
run(codebase);
|
|
214
298
|
}
|
|
215
299
|
}
|
|
216
300
|
catch (err) {
|
|
@@ -239,5 +323,81 @@ program
|
|
|
239
323
|
process.exit(1);
|
|
240
324
|
}
|
|
241
325
|
});
|
|
326
|
+
program
|
|
327
|
+
.command('context')
|
|
328
|
+
.description('Generate LLM context for a specific file')
|
|
329
|
+
.argument('<file>', 'File path')
|
|
330
|
+
.argument('[path]', 'Path to the codebase', '.')
|
|
331
|
+
.option('-s, --strategy <strategy>', 'Context strategy (shallow, signature, deep)', 'signature')
|
|
332
|
+
.action(async (file, rawPath, opts) => {
|
|
333
|
+
try {
|
|
334
|
+
const targetPath = resolveTarget(rawPath);
|
|
335
|
+
const codebase = await loadAndAnalyze(targetPath);
|
|
336
|
+
const cf = findFile(codebase, file);
|
|
337
|
+
if (!cf) {
|
|
338
|
+
console.error(`Error: File "${file}" not found.`);
|
|
339
|
+
process.exit(1);
|
|
340
|
+
}
|
|
341
|
+
const cbAI = codebase.withAI(new NoopAIProvider());
|
|
342
|
+
const explainOpts = {};
|
|
343
|
+
if (opts.strategy) {
|
|
344
|
+
explainOpts.strategy = opts.strategy;
|
|
345
|
+
}
|
|
346
|
+
const payload = await cbAI.buildExplainPayload(cf.path, explainOpts);
|
|
347
|
+
console.log(payload.prompt);
|
|
348
|
+
}
|
|
349
|
+
catch (err) {
|
|
350
|
+
console.error(`Error: ${err.message}`);
|
|
351
|
+
process.exit(1);
|
|
352
|
+
}
|
|
353
|
+
});
|
|
354
|
+
program
|
|
355
|
+
.command('chunks')
|
|
356
|
+
.description('Generate semantic chunks for the codebase')
|
|
357
|
+
.argument('[path]', 'Path to the codebase', '.')
|
|
358
|
+
.option('-m, --max-tokens <number>', 'Max tokens per chunk', '512')
|
|
359
|
+
.option('-f, --format <format>', 'Output format (json, pretty)', 'json')
|
|
360
|
+
.action(async (rawPath, opts) => {
|
|
361
|
+
try {
|
|
362
|
+
const targetPath = resolveTarget(rawPath);
|
|
363
|
+
const codebase = await loadAndAnalyze(targetPath);
|
|
364
|
+
const maxChunkTokens = parseInt(opts.maxTokens, 10);
|
|
365
|
+
const chunks = await codebase.chunks({ maxChunkTokens });
|
|
366
|
+
if (opts.format === 'json') {
|
|
367
|
+
printJson(chunks);
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
chunks.forEach((c, i) => {
|
|
371
|
+
console.log(`\n--- Chunk ${i + 1} | ${c.id} | ~${c.tokenEstimate} tokens ---`);
|
|
372
|
+
console.log(c.content);
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
catch (err) {
|
|
377
|
+
console.error(`Error: ${err.message}`);
|
|
378
|
+
process.exit(1);
|
|
379
|
+
}
|
|
380
|
+
});
|
|
381
|
+
program
|
|
382
|
+
.command('tokens')
|
|
383
|
+
.description('Estimate tokens for the codebase')
|
|
384
|
+
.argument('[path]', 'Path to the codebase', '.')
|
|
385
|
+
.action(async (rawPath) => {
|
|
386
|
+
try {
|
|
387
|
+
const targetPath = resolveTarget(rawPath);
|
|
388
|
+
const codebase = await loadAndAnalyze(targetPath);
|
|
389
|
+
const chunks = await codebase.chunks();
|
|
390
|
+
const totalTokens = chunks.reduce((acc, c) => acc + c.tokenEstimate, 0);
|
|
391
|
+
printJson({
|
|
392
|
+
files: codebase.files().length,
|
|
393
|
+
chunks: chunks.length,
|
|
394
|
+
estimatedTokens: totalTokens,
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
catch (err) {
|
|
398
|
+
console.error(`Error: ${err.message}`);
|
|
399
|
+
process.exit(1);
|
|
400
|
+
}
|
|
401
|
+
});
|
|
242
402
|
program.parse();
|
|
243
403
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { IContextEngine } from './interfaces.js';
|
|
2
|
+
import type { LLMContextPayload, ContextOptions } from './types.js';
|
|
3
|
+
import type { DependencyGraph } from '../graph/DependencyGraph.js';
|
|
4
|
+
import type { SymbolIndex } from '../index/SymbolIndex.js';
|
|
5
|
+
import type { FileIndex } from '../index/FileIndex.js';
|
|
6
|
+
/**
|
|
7
|
+
* Builds LLM-ready context payloads from an analysed `Codebase`.
|
|
8
|
+
*
|
|
9
|
+
* Consumers should obtain an instance via `codebase.context()` rather than
|
|
10
|
+
* constructing one directly.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* const payload = await codebase.context().forFile('src/auth/AuthService.ts', {
|
|
15
|
+
* strategy: 'signature',
|
|
16
|
+
* maxTokens: 6000,
|
|
17
|
+
* });
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare class ContextEngine implements IContextEngine {
|
|
21
|
+
private readonly graph;
|
|
22
|
+
private readonly symbolIndex;
|
|
23
|
+
private readonly fileIndex;
|
|
24
|
+
private readonly codebaseRoot;
|
|
25
|
+
private readonly strategies;
|
|
26
|
+
private readonly builder;
|
|
27
|
+
constructor(graph: DependencyGraph, symbolIndex: SymbolIndex, fileIndex: FileIndex, codebaseRoot: string);
|
|
28
|
+
forFile(file: string, options?: ContextOptions): Promise<LLMContextPayload>;
|
|
29
|
+
forSymbol(symbolName: string, options?: ContextOptions): Promise<LLMContextPayload>;
|
|
30
|
+
private buildPayload;
|
|
31
|
+
/**
|
|
32
|
+
* Drops nodes from the *end* of the list (lower priority) until the
|
|
33
|
+
* total token estimate fits within the budget.
|
|
34
|
+
*
|
|
35
|
+
* The first node (the target) is NEVER dropped.
|
|
36
|
+
*/
|
|
37
|
+
private applyTokenBudget;
|
|
38
|
+
/**
|
|
39
|
+
* Resolves a file argument to an absolute path.
|
|
40
|
+
* Accepts both absolute paths and paths relative to the codebase root.
|
|
41
|
+
*/
|
|
42
|
+
private resolveFilePath;
|
|
43
|
+
/**
|
|
44
|
+
* Returns the `CodebaseFile` for the given absolute path.
|
|
45
|
+
* Throws a descriptive error if the file is not in the index.
|
|
46
|
+
*/
|
|
47
|
+
private requireFile;
|
|
48
|
+
/**
|
|
49
|
+
* Finds test files related to `filePath` by naming convention only.
|
|
50
|
+
* No graph proof is used — this mirrors the behaviour of `ImpactAnalyzer`.
|
|
51
|
+
*/
|
|
52
|
+
private findRelatedTests;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=ContextEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextEngine.d.ts","sourceRoot":"","sources":["../../src/context/ContextEngine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACV,iBAAiB,EAEjB,cAAc,EAGf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAWvD;;;;;;;;;;;;;GAaG;AACH,qBAAa,aAAc,YAAW,cAAc;IAUhD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAZ/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAIzB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAEpD,YACmB,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,MAAM,EACnC;IAIS,OAAO,CAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CAI5B;IAEY,SAAS,CACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CAU5B;YAIa,YAAY;IAqE1B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAKvB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAiBnB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAOzB"}
|