@thoughtflow/codebase 0.2.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/dist/contexts/context-decomposer.d.ts +13 -0
- package/dist/contexts/context-decomposer.d.ts.map +1 -0
- package/dist/contexts/context-decomposer.js +97 -0
- package/dist/contexts/context-decomposer.js.map +1 -0
- package/dist/contexts/context-document-manager.d.ts +21 -0
- package/dist/contexts/context-document-manager.d.ts.map +1 -0
- package/dist/contexts/context-document-manager.js +69 -0
- package/dist/contexts/context-document-manager.js.map +1 -0
- package/dist/contexts/context-router.d.ts +13 -0
- package/dist/contexts/context-router.d.ts.map +1 -0
- package/dist/contexts/context-router.js +94 -0
- package/dist/contexts/context-router.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/libs/codebase/deep-analyzer.d.ts +58 -0
- package/dist/libs/codebase/deep-analyzer.d.ts.map +1 -0
- package/dist/libs/codebase/deep-analyzer.js +239 -0
- package/dist/libs/codebase/deep-analyzer.js.map +1 -0
- package/dist/libs/codebase/graph/dependency-extractor.d.ts +20 -0
- package/dist/libs/codebase/graph/dependency-extractor.d.ts.map +1 -0
- package/dist/libs/codebase/graph/dependency-extractor.js +174 -0
- package/dist/libs/codebase/graph/dependency-extractor.js.map +1 -0
- package/dist/libs/codebase/graph/graph-analysis.d.ts +42 -0
- package/dist/libs/codebase/graph/graph-analysis.d.ts.map +1 -0
- package/dist/libs/codebase/graph/graph-analysis.js +222 -0
- package/dist/libs/codebase/graph/graph-analysis.js.map +1 -0
- package/dist/libs/codebase/graph/graph-visualizer.d.ts +12 -0
- package/dist/libs/codebase/graph/graph-visualizer.d.ts.map +1 -0
- package/dist/libs/codebase/graph/graph-visualizer.js +99 -0
- package/dist/libs/codebase/graph/graph-visualizer.js.map +1 -0
- package/dist/libs/codebase/indexer/batch-processor.d.ts +18 -0
- package/dist/libs/codebase/indexer/batch-processor.d.ts.map +1 -0
- package/dist/libs/codebase/indexer/batch-processor.js +39 -0
- package/dist/libs/codebase/indexer/batch-processor.js.map +1 -0
- package/dist/libs/codebase/indexer/chunker-markdown.d.ts +19 -0
- package/dist/libs/codebase/indexer/chunker-markdown.d.ts.map +1 -0
- package/dist/libs/codebase/indexer/chunker-markdown.js +138 -0
- package/dist/libs/codebase/indexer/chunker-markdown.js.map +1 -0
- package/dist/libs/codebase/indexer/chunker.d.ts +21 -0
- package/dist/libs/codebase/indexer/chunker.d.ts.map +1 -0
- package/dist/libs/codebase/indexer/chunker.js +133 -0
- package/dist/libs/codebase/indexer/chunker.js.map +1 -0
- package/dist/libs/codebase/indexer/explorer.d.ts +29 -0
- package/dist/libs/codebase/indexer/explorer.d.ts.map +1 -0
- package/dist/libs/codebase/indexer/explorer.js +278 -0
- package/dist/libs/codebase/indexer/explorer.js.map +1 -0
- package/dist/libs/codebase/indexer/indexer.d.ts +35 -0
- package/dist/libs/codebase/indexer/indexer.d.ts.map +1 -0
- package/dist/libs/codebase/indexer/indexer.js +172 -0
- package/dist/libs/codebase/indexer/indexer.js.map +1 -0
- package/dist/libs/codebase/knowledge/cross-referencer.d.ts +32 -0
- package/dist/libs/codebase/knowledge/cross-referencer.d.ts.map +1 -0
- package/dist/libs/codebase/knowledge/cross-referencer.js +132 -0
- package/dist/libs/codebase/knowledge/cross-referencer.js.map +1 -0
- package/dist/libs/codebase/knowledge/markdown-extractor.d.ts +34 -0
- package/dist/libs/codebase/knowledge/markdown-extractor.d.ts.map +1 -0
- package/dist/libs/codebase/knowledge/markdown-extractor.js +273 -0
- package/dist/libs/codebase/knowledge/markdown-extractor.js.map +1 -0
- package/dist/libs/codebase/knowledge/summarizer.d.ts +25 -0
- package/dist/libs/codebase/knowledge/summarizer.d.ts.map +1 -0
- package/dist/libs/codebase/knowledge/summarizer.js +61 -0
- package/dist/libs/codebase/knowledge/summarizer.js.map +1 -0
- package/dist/libs/codebase/search/bm25.d.ts +23 -0
- package/dist/libs/codebase/search/bm25.d.ts.map +1 -0
- package/dist/libs/codebase/search/bm25.js +93 -0
- package/dist/libs/codebase/search/bm25.js.map +1 -0
- package/dist/libs/codebase/search/hybrid-search.d.ts +22 -0
- package/dist/libs/codebase/search/hybrid-search.d.ts.map +1 -0
- package/dist/libs/codebase/search/hybrid-search.js +80 -0
- package/dist/libs/codebase/search/hybrid-search.js.map +1 -0
- package/dist/libs/codebase-index.class.d.ts +66 -0
- package/dist/libs/codebase-index.class.d.ts.map +1 -0
- package/dist/libs/codebase-index.class.js +595 -0
- package/dist/libs/codebase-index.class.js.map +1 -0
- package/dist/tools/codebase/codebase-analyze.tool.d.ts +8 -0
- package/dist/tools/codebase/codebase-analyze.tool.d.ts.map +1 -0
- package/dist/tools/codebase/codebase-analyze.tool.js +20 -0
- package/dist/tools/codebase/codebase-analyze.tool.js.map +1 -0
- package/dist/tools/codebase/codebase-crossref.tool.d.ts +8 -0
- package/dist/tools/codebase/codebase-crossref.tool.d.ts.map +1 -0
- package/dist/tools/codebase/codebase-crossref.tool.js +20 -0
- package/dist/tools/codebase/codebase-crossref.tool.js.map +1 -0
- package/dist/tools/codebase/codebase-flow.tool.d.ts +8 -0
- package/dist/tools/codebase/codebase-flow.tool.d.ts.map +1 -0
- package/dist/tools/codebase/codebase-flow.tool.js +20 -0
- package/dist/tools/codebase/codebase-flow.tool.js.map +1 -0
- package/dist/tools/codebase/codebase-graph-circular.tool.d.ts +8 -0
- package/dist/tools/codebase/codebase-graph-circular.tool.d.ts.map +1 -0
- package/dist/tools/codebase/codebase-graph-circular.tool.js +17 -0
- package/dist/tools/codebase/codebase-graph-circular.tool.js.map +1 -0
- package/dist/tools/codebase/codebase-graph-query.tool.d.ts +8 -0
- package/dist/tools/codebase/codebase-graph-query.tool.d.ts.map +1 -0
- package/dist/tools/codebase/codebase-graph-query.tool.js +21 -0
- package/dist/tools/codebase/codebase-graph-query.tool.js.map +1 -0
- package/dist/tools/codebase/codebase-graph-stats.tool.d.ts +8 -0
- package/dist/tools/codebase/codebase-graph-stats.tool.d.ts.map +1 -0
- package/dist/tools/codebase/codebase-graph-stats.tool.js +17 -0
- package/dist/tools/codebase/codebase-graph-stats.tool.js.map +1 -0
- package/dist/tools/codebase/codebase-graph-visualize.tool.d.ts +8 -0
- package/dist/tools/codebase/codebase-graph-visualize.tool.d.ts.map +1 -0
- package/dist/tools/codebase/codebase-graph-visualize.tool.js +21 -0
- package/dist/tools/codebase/codebase-graph-visualize.tool.js.map +1 -0
- package/dist/tools/codebase/codebase-impact.tool.d.ts +8 -0
- package/dist/tools/codebase/codebase-impact.tool.d.ts.map +1 -0
- package/dist/tools/codebase/codebase-impact.tool.js +21 -0
- package/dist/tools/codebase/codebase-impact.tool.js.map +1 -0
- package/dist/tools/codebase/codebase-index.tool.d.ts +8 -0
- package/dist/tools/codebase/codebase-index.tool.d.ts.map +1 -0
- package/dist/tools/codebase/codebase-index.tool.js +21 -0
- package/dist/tools/codebase/codebase-index.tool.js.map +1 -0
- package/dist/tools/codebase/codebase-knowledge.tool.d.ts +8 -0
- package/dist/tools/codebase/codebase-knowledge.tool.d.ts.map +1 -0
- package/dist/tools/codebase/codebase-knowledge.tool.js +22 -0
- package/dist/tools/codebase/codebase-knowledge.tool.js.map +1 -0
- package/dist/tools/codebase/codebase-search.tool.d.ts +8 -0
- package/dist/tools/codebase/codebase-search.tool.d.ts.map +1 -0
- package/dist/tools/codebase/codebase-search.tool.js +24 -0
- package/dist/tools/codebase/codebase-search.tool.js.map +1 -0
- package/dist/tools/codebase/codebase-status.tool.d.ts +8 -0
- package/dist/tools/codebase/codebase-status.tool.d.ts.map +1 -0
- package/dist/tools/codebase/codebase-status.tool.js +19 -0
- package/dist/tools/codebase/codebase-status.tool.js.map +1 -0
- package/dist/tools/neural/comparative-analysis.tool.d.ts +37 -0
- package/dist/tools/neural/comparative-analysis.tool.d.ts.map +1 -0
- package/dist/tools/neural/comparative-analysis.tool.js +241 -0
- package/dist/tools/neural/comparative-analysis.tool.js.map +1 -0
- package/dist/tools/neural/index.d.ts +12 -0
- package/dist/tools/neural/index.d.ts.map +1 -0
- package/dist/tools/neural/index.js +28 -0
- package/dist/tools/neural/index.js.map +1 -0
- package/dist/tools/neural/neural-deadcode.tool.d.ts +10 -0
- package/dist/tools/neural/neural-deadcode.tool.d.ts.map +1 -0
- package/dist/tools/neural/neural-deadcode.tool.js +133 -0
- package/dist/tools/neural/neural-deadcode.tool.js.map +1 -0
- package/dist/tools/neural/neural-debug.tool.d.ts +11 -0
- package/dist/tools/neural/neural-debug.tool.d.ts.map +1 -0
- package/dist/tools/neural/neural-debug.tool.js +205 -0
- package/dist/tools/neural/neural-debug.tool.js.map +1 -0
- package/dist/tools/neural/neural-explain.tool.d.ts +9 -0
- package/dist/tools/neural/neural-explain.tool.d.ts.map +1 -0
- package/dist/tools/neural/neural-explain.tool.js +100 -0
- package/dist/tools/neural/neural-explain.tool.js.map +1 -0
- package/dist/tools/neural/neural-optimize.tool.d.ts +9 -0
- package/dist/tools/neural/neural-optimize.tool.d.ts.map +1 -0
- package/dist/tools/neural/neural-optimize.tool.js +117 -0
- package/dist/tools/neural/neural-optimize.tool.js.map +1 -0
- package/dist/tools/neural/neural-pattern.tool.d.ts +10 -0
- package/dist/tools/neural/neural-pattern.tool.d.ts.map +1 -0
- package/dist/tools/neural/neural-pattern.tool.js +169 -0
- package/dist/tools/neural/neural-pattern.tool.js.map +1 -0
- package/dist/tools/neural/neural-review.tool.d.ts +11 -0
- package/dist/tools/neural/neural-review.tool.d.ts.map +1 -0
- package/dist/tools/neural/neural-review.tool.js +152 -0
- package/dist/tools/neural/neural-review.tool.js.map +1 -0
- package/dist/tools/neural/neural-security.tool.d.ts +16 -0
- package/dist/tools/neural/neural-security.tool.d.ts.map +1 -0
- package/dist/tools/neural/neural-security.tool.js +256 -0
- package/dist/tools/neural/neural-security.tool.js.map +1 -0
- package/dist/tools/neural/neural-similar.tool.d.ts +9 -0
- package/dist/tools/neural/neural-similar.tool.d.ts.map +1 -0
- package/dist/tools/neural/neural-similar.tool.js +139 -0
- package/dist/tools/neural/neural-similar.tool.js.map +1 -0
- package/dist/tools/neural/neural-smells.tool.d.ts +9 -0
- package/dist/tools/neural/neural-smells.tool.d.ts.map +1 -0
- package/dist/tools/neural/neural-smells.tool.js +123 -0
- package/dist/tools/neural/neural-smells.tool.js.map +1 -0
- package/dist/tools/neural/neural-suggest.tool.d.ts +9 -0
- package/dist/tools/neural/neural-suggest.tool.d.ts.map +1 -0
- package/dist/tools/neural/neural-suggest.tool.js +64 -0
- package/dist/tools/neural/neural-suggest.tool.js.map +1 -0
- package/dist/tools/quality/index.d.ts +8 -0
- package/dist/tools/quality/index.d.ts.map +1 -0
- package/dist/tools/quality/index.js +24 -0
- package/dist/tools/quality/index.js.map +1 -0
- package/dist/tools/quality/quality-complexity.tool.d.ts +11 -0
- package/dist/tools/quality/quality-complexity.tool.d.ts.map +1 -0
- package/dist/tools/quality/quality-complexity.tool.js +152 -0
- package/dist/tools/quality/quality-complexity.tool.js.map +1 -0
- package/dist/tools/quality/quality-coupling.tool.d.ts +9 -0
- package/dist/tools/quality/quality-coupling.tool.d.ts.map +1 -0
- package/dist/tools/quality/quality-coupling.tool.js +51 -0
- package/dist/tools/quality/quality-coupling.tool.js.map +1 -0
- package/dist/tools/quality/quality-coverage.tool.d.ts +9 -0
- package/dist/tools/quality/quality-coverage.tool.d.ts.map +1 -0
- package/dist/tools/quality/quality-coverage.tool.js +104 -0
- package/dist/tools/quality/quality-coverage.tool.js.map +1 -0
- package/dist/tools/quality/quality-deps.tool.d.ts +11 -0
- package/dist/tools/quality/quality-deps.tool.d.ts.map +1 -0
- package/dist/tools/quality/quality-deps.tool.js +119 -0
- package/dist/tools/quality/quality-deps.tool.js.map +1 -0
- package/dist/tools/quality/quality-duplication.tool.d.ts +9 -0
- package/dist/tools/quality/quality-duplication.tool.d.ts.map +1 -0
- package/dist/tools/quality/quality-duplication.tool.js +100 -0
- package/dist/tools/quality/quality-duplication.tool.js.map +1 -0
- package/dist/tools/quality/quality-size.tool.d.ts +9 -0
- package/dist/tools/quality/quality-size.tool.d.ts.map +1 -0
- package/dist/tools/quality/quality-size.tool.js +94 -0
- package/dist/tools/quality/quality-size.tool.js.map +1 -0
- package/dist/tools/quality/quality-types.tool.d.ts +9 -0
- package/dist/tools/quality/quality-types.tool.d.ts.map +1 -0
- package/dist/tools/quality/quality-types.tool.js +95 -0
- package/dist/tools/quality/quality-types.tool.js.map +1 -0
- package/dist/tools/workspace/analyze-project.tool.d.ts +36 -0
- package/dist/tools/workspace/analyze-project.tool.d.ts.map +1 -0
- package/dist/tools/workspace/analyze-project.tool.js +454 -0
- package/dist/tools/workspace/analyze-project.tool.js.map +1 -0
- package/dist/tools/workspace/codebase-research.tool.d.ts +10 -0
- package/dist/tools/workspace/codebase-research.tool.d.ts.map +1 -0
- package/dist/tools/workspace/codebase-research.tool.js +89 -0
- package/dist/tools/workspace/codebase-research.tool.js.map +1 -0
- package/dist/tools/workspace/project-scanner.tool.d.ts +55 -0
- package/dist/tools/workspace/project-scanner.tool.d.ts.map +1 -0
- package/dist/tools/workspace/project-scanner.tool.js +978 -0
- package/dist/tools/workspace/project-scanner.tool.js.map +1 -0
- package/dist/tools/workspace/search-code.tool.d.ts +14 -0
- package/dist/tools/workspace/search-code.tool.d.ts.map +1 -0
- package/dist/tools/workspace/search-code.tool.js +286 -0
- package/dist/tools/workspace/search-code.tool.js.map +1 -0
- package/package.json +17 -0
- package/src/contexts/context-decomposer.ts +113 -0
- package/src/contexts/context-document-manager.ts +70 -0
- package/src/contexts/context-router.ts +121 -0
- package/src/index.ts +65 -0
- package/src/libs/codebase/deep-analyzer.ts +287 -0
- package/src/libs/codebase/graph/dependency-extractor.ts +165 -0
- package/src/libs/codebase/graph/graph-analysis.ts +231 -0
- package/src/libs/codebase/graph/graph-visualizer.ts +124 -0
- package/src/libs/codebase/indexer/batch-processor.ts +47 -0
- package/src/libs/codebase/indexer/chunker-markdown.ts +175 -0
- package/src/libs/codebase/indexer/chunker.ts +126 -0
- package/src/libs/codebase/indexer/explorer.ts +269 -0
- package/src/libs/codebase/indexer/indexer.ts +174 -0
- package/src/libs/codebase/knowledge/cross-referencer.ts +182 -0
- package/src/libs/codebase/knowledge/markdown-extractor.ts +270 -0
- package/src/libs/codebase/knowledge/summarizer.ts +85 -0
- package/src/libs/codebase/search/bm25.ts +109 -0
- package/src/libs/codebase/search/hybrid-search.ts +109 -0
- package/src/libs/codebase-index.class.ts +715 -0
- package/src/tools/codebase/codebase-analyze.tool.ts +18 -0
- package/src/tools/codebase/codebase-crossref.tool.ts +18 -0
- package/src/tools/codebase/codebase-flow.tool.ts +18 -0
- package/src/tools/codebase/codebase-graph-circular.tool.ts +15 -0
- package/src/tools/codebase/codebase-graph-query.tool.ts +19 -0
- package/src/tools/codebase/codebase-graph-stats.tool.ts +15 -0
- package/src/tools/codebase/codebase-graph-visualize.tool.ts +19 -0
- package/src/tools/codebase/codebase-impact.tool.ts +19 -0
- package/src/tools/codebase/codebase-index.tool.ts +19 -0
- package/src/tools/codebase/codebase-knowledge.tool.ts +20 -0
- package/src/tools/codebase/codebase-search.tool.ts +22 -0
- package/src/tools/codebase/codebase-status.tool.ts +17 -0
- package/src/tools/neural/comparative-analysis.tool.ts +309 -0
- package/src/tools/neural/index.ts +11 -0
- package/src/tools/neural/neural-deadcode.tool.ts +105 -0
- package/src/tools/neural/neural-debug.tool.ts +199 -0
- package/src/tools/neural/neural-explain.tool.ts +67 -0
- package/src/tools/neural/neural-optimize.tool.ts +93 -0
- package/src/tools/neural/neural-pattern.tool.ts +141 -0
- package/src/tools/neural/neural-review.tool.ts +145 -0
- package/src/tools/neural/neural-security.tool.ts +226 -0
- package/src/tools/neural/neural-similar.tool.ts +113 -0
- package/src/tools/neural/neural-smells.tool.ts +98 -0
- package/src/tools/neural/neural-suggest.tool.ts +65 -0
- package/src/tools/quality/index.ts +7 -0
- package/src/tools/quality/quality-complexity.tool.ts +132 -0
- package/src/tools/quality/quality-coupling.tool.ts +57 -0
- package/src/tools/quality/quality-coverage.tool.ts +78 -0
- package/src/tools/quality/quality-deps.tool.ts +89 -0
- package/src/tools/quality/quality-duplication.tool.ts +71 -0
- package/src/tools/quality/quality-size.tool.ts +66 -0
- package/src/tools/quality/quality-types.tool.ts +66 -0
- package/src/tools/workspace/analyze-project.tool.ts +429 -0
- package/src/tools/workspace/codebase-research.tool.ts +100 -0
- package/src/tools/workspace/project-scanner.tool.ts +1058 -0
- package/src/tools/workspace/search-code.tool.ts +344 -0
- package/tsconfig.build.json +12 -0
- package/tsconfig.json +9 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CodebaseResearchTool = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const core_1 = require("@thoughtflow/core");
|
|
6
|
+
const codebase_index_class_1 = require("../../libs/codebase-index.class");
|
|
7
|
+
const ACTIONS = ["search", "dependencies", "duplicates", "stats"];
|
|
8
|
+
class CodebaseResearchTool extends core_1.ToolBase {
|
|
9
|
+
rootDir;
|
|
10
|
+
name = "codebaseResearch";
|
|
11
|
+
readonly = true;
|
|
12
|
+
description = "Task-flow helper over CodebaseIndex and dependency analysis. " +
|
|
13
|
+
"search: code/path/symbol search. dependencies: build import graph for provided files. " +
|
|
14
|
+
"duplicates: check whether proposed symbols already exist. stats: index metadata.";
|
|
15
|
+
constructor(rootDir) {
|
|
16
|
+
super(zod_1.z.object({
|
|
17
|
+
action: zod_1.z.enum(ACTIONS),
|
|
18
|
+
query: zod_1.z.string().optional(),
|
|
19
|
+
mode: zod_1.z.enum(["hybrid", "content", "path", "symbol"]).optional(),
|
|
20
|
+
files: zod_1.z.array(zod_1.z.string()).optional(),
|
|
21
|
+
symbols: zod_1.z.array(zod_1.z.string()).optional(),
|
|
22
|
+
limit: zod_1.z.number().int().min(1).max(200).optional(),
|
|
23
|
+
reindex: zod_1.z.boolean().optional(),
|
|
24
|
+
}));
|
|
25
|
+
this.rootDir = rootDir;
|
|
26
|
+
}
|
|
27
|
+
async run(input, _ctx) {
|
|
28
|
+
const action = input["action"];
|
|
29
|
+
const index = await codebase_index_class_1.CodebaseIndex.forRoot(this.rootDir);
|
|
30
|
+
if (!index.isIndexed() || input["reindex"] === true) {
|
|
31
|
+
index.rebuild();
|
|
32
|
+
}
|
|
33
|
+
if (action === "stats") {
|
|
34
|
+
return {
|
|
35
|
+
success: true,
|
|
36
|
+
output: JSON.stringify(index.getStats()),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
if (action === "search") {
|
|
40
|
+
const query = String(input["query"] ?? "").trim();
|
|
41
|
+
const mode = input["mode"] ?? "hybrid";
|
|
42
|
+
const limit = Number(input["limit"] ?? 20);
|
|
43
|
+
const hits = index.search({
|
|
44
|
+
query: query || undefined,
|
|
45
|
+
mode,
|
|
46
|
+
limit,
|
|
47
|
+
offset: 0,
|
|
48
|
+
});
|
|
49
|
+
return {
|
|
50
|
+
success: true,
|
|
51
|
+
output: JSON.stringify({ count: hits.length, hits }),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if (action === "dependencies") {
|
|
55
|
+
const files = input["files"] ?? [];
|
|
56
|
+
if (files.length === 0) {
|
|
57
|
+
return { success: false, error: "dependencies action requires non-empty 'files'" };
|
|
58
|
+
}
|
|
59
|
+
const analyzer = new core_1.DependencyAnalyzer();
|
|
60
|
+
const report = analyzer.analyzeFromFiles(this.rootDir, files);
|
|
61
|
+
return {
|
|
62
|
+
success: true,
|
|
63
|
+
output: JSON.stringify(report),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const symbols = input["symbols"] ?? [];
|
|
67
|
+
if (symbols.length === 0) {
|
|
68
|
+
return { success: false, error: "duplicates action requires non-empty 'symbols'" };
|
|
69
|
+
}
|
|
70
|
+
const duplicates = {};
|
|
71
|
+
for (const symbol of symbols) {
|
|
72
|
+
const hits = index.search({
|
|
73
|
+
query: symbol,
|
|
74
|
+
mode: "symbol",
|
|
75
|
+
limit: 50,
|
|
76
|
+
offset: 0,
|
|
77
|
+
});
|
|
78
|
+
if (hits.length > 0) {
|
|
79
|
+
duplicates[symbol] = hits;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
success: true,
|
|
84
|
+
output: JSON.stringify({ duplicateCount: Object.keys(duplicates).length, duplicates }),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.CodebaseResearchTool = CodebaseResearchTool;
|
|
89
|
+
//# sourceMappingURL=codebase-research.tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codebase-research.tool.js","sourceRoot":"","sources":["../../../src/tools/workspace/codebase-research.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ToolBase, ToolContext, ToolExecutionResult } from "@thoughtflow/core";
|
|
2
|
+
export type TechCategory = "language" | "framework" | "database" | "infra" | "testing" | "build";
|
|
3
|
+
export interface TechRule {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
category: TechCategory;
|
|
7
|
+
/** Files whose existence signals this tech (relative to scanned dir). */
|
|
8
|
+
fileMarkers: string[];
|
|
9
|
+
/** Directories whose existence signals this tech. */
|
|
10
|
+
dirMarkers: string[];
|
|
11
|
+
/** package.json / composer.json dependency names that signal this tech. */
|
|
12
|
+
packageDeps?: string[];
|
|
13
|
+
/** Directories to skip when this tech is detected. */
|
|
14
|
+
ignoreDirs: string[];
|
|
15
|
+
/** Important files worth reading (only shown when they exist). */
|
|
16
|
+
keyFiles: string[];
|
|
17
|
+
/** Glob patterns for find_files exploration. */
|
|
18
|
+
explorePatterns: string[];
|
|
19
|
+
/** Short actionable hints for the LLM. */
|
|
20
|
+
hints: string[];
|
|
21
|
+
}
|
|
22
|
+
export interface MonorepoRule {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
/** Files in root that indicate this monorepo tool. */
|
|
26
|
+
fileMarkers: string[];
|
|
27
|
+
/** Conventional sub-dirs that contain sub-projects (e.g. apps, libs). */
|
|
28
|
+
workspaceDirs: string[];
|
|
29
|
+
ignoreDirs: string[];
|
|
30
|
+
hints: string[];
|
|
31
|
+
}
|
|
32
|
+
export declare const TECH_RULES: TechRule[];
|
|
33
|
+
export declare const MONOREPO_RULES: MonorepoRule[];
|
|
34
|
+
export declare class ProjectScannerTool extends ToolBase {
|
|
35
|
+
private readonly rootDir;
|
|
36
|
+
readonly name = "projectScanner";
|
|
37
|
+
readonly readonly = true;
|
|
38
|
+
readonly description: string;
|
|
39
|
+
constructor(rootDir: string);
|
|
40
|
+
run(input: Record<string, unknown>, _ctx: ToolContext): Promise<ToolExecutionResult>;
|
|
41
|
+
private scan;
|
|
42
|
+
private scanWorkspaceDir;
|
|
43
|
+
/**
|
|
44
|
+
* Fallback: scan top-level dirs that have their own config file
|
|
45
|
+
* (looks like independent projects grouped in a directory).
|
|
46
|
+
*/
|
|
47
|
+
private detectPlainSubProjects;
|
|
48
|
+
private detectTechs;
|
|
49
|
+
private detectByExtension;
|
|
50
|
+
private readPackageJson;
|
|
51
|
+
private readDeps;
|
|
52
|
+
private format;
|
|
53
|
+
private formatSection;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=project-scanner.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-scanner.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/workspace/project-scanner.tool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAmB,MAAM,mBAAmB,CAAC;AAQhG,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,WAAW,GACX,UAAU,GACV,OAAO,GACP,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,yEAAyE;IACzE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,qDAAqD;IACrD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,sDAAsD;IACtD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gDAAgD;IAChD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,yEAAyE;IACzE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAQD,eAAO,MAAM,UAAU,EAAE,QAAQ,EAqiBhC,CAAC;AAMF,eAAO,MAAM,cAAc,EAAE,YAAY,EA4CxC,CAAC;AA8BF,qBAAa,kBAAmB,SAAQ,QAAQ;IAWlC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAVpC,QAAQ,CAAC,IAAI,oBAAoB;IACjC,SAAkB,QAAQ,QAAQ;IAClC,QAAQ,CAAC,WAAW,SAM4B;gBAEnB,OAAO,EAAE,MAAM;IAatC,GAAG,CACP,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,mBAAmB,CAAC;IAgB/B,OAAO,CAAC,IAAI;IAiDZ,OAAO,CAAC,gBAAgB;IA2BxB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA0C9B,OAAO,CAAC,WAAW;IAoCnB,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,QAAQ;IAsChB,OAAO,CAAC,MAAM;IAmDd,OAAO,CAAC,aAAa;CAiDtB"}
|