aspectcode 0.2.2 → 0.3.1
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/cli.d.ts +15 -47
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +18 -17
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +14 -24
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -60
- package/dist/config.js.map +1 -1
- package/dist/kbBuilder.d.ts +14 -0
- package/dist/kbBuilder.d.ts.map +1 -0
- package/dist/kbBuilder.js +106 -0
- package/dist/kbBuilder.js.map +1 -0
- package/dist/main.d.ts +4 -5
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +45 -124
- package/dist/main.js.map +1 -1
- package/dist/optimize.d.ts +14 -0
- package/dist/optimize.d.ts.map +1 -0
- package/dist/optimize.js +131 -0
- package/dist/optimize.js.map +1 -0
- package/dist/pipeline.d.ts +15 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +212 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/toolIngestion.d.ts +15 -0
- package/dist/toolIngestion.d.ts.map +1 -0
- package/dist/toolIngestion.js +47 -0
- package/dist/toolIngestion.js.map +1 -0
- package/dist/writer.d.ts +17 -0
- package/dist/writer.d.ts.map +1 -0
- package/dist/writer.js +26 -0
- package/dist/writer.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/analysis/analyzer.d.ts +34 -0
- package/node_modules/@aspectcode/core/dist/analysis/analyzer.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/analysis/analyzer.js +240 -0
- package/node_modules/@aspectcode/core/dist/analysis/analyzer.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/analysis/dependencyAdapters.d.ts +32 -0
- package/node_modules/@aspectcode/core/dist/analysis/dependencyAdapters.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/analysis/dependencyAdapters.js +133 -0
- package/node_modules/@aspectcode/core/dist/analysis/dependencyAdapters.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/analysis/importParsers.d.ts +30 -0
- package/node_modules/@aspectcode/core/dist/analysis/importParsers.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/analysis/importParsers.js +92 -0
- package/node_modules/@aspectcode/core/dist/analysis/importParsers.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/analysis/index.d.ts +9 -0
- package/node_modules/@aspectcode/core/dist/analysis/index.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/analysis/index.js +9 -0
- package/node_modules/@aspectcode/core/dist/analysis/index.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/analysis/moduleResolver.d.ts +34 -0
- package/node_modules/@aspectcode/core/dist/analysis/moduleResolver.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/analysis/moduleResolver.js +240 -0
- package/node_modules/@aspectcode/core/dist/analysis/moduleResolver.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/analysis/repo.d.ts +33 -0
- package/node_modules/@aspectcode/core/dist/analysis/repo.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/analysis/repo.js +246 -0
- package/node_modules/@aspectcode/core/dist/analysis/repo.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/classifiers.d.ts +24 -0
- package/node_modules/@aspectcode/core/dist/classifiers.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/classifiers.js +119 -0
- package/node_modules/@aspectcode/core/dist/classifiers.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/fs/exclusions.d.ts +26 -0
- package/node_modules/@aspectcode/core/dist/fs/exclusions.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/fs/exclusions.js +130 -0
- package/node_modules/@aspectcode/core/dist/fs/exclusions.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/fs/fingerprint.d.ts +42 -0
- package/node_modules/@aspectcode/core/dist/fs/fingerprint.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/fs/fingerprint.js +125 -0
- package/node_modules/@aspectcode/core/dist/fs/fingerprint.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/fs/index.d.ts +9 -0
- package/node_modules/@aspectcode/core/dist/fs/index.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/fs/index.js +26 -0
- package/node_modules/@aspectcode/core/dist/fs/index.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/fs/walker.d.ts +23 -0
- package/node_modules/@aspectcode/core/dist/fs/walker.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/fs/walker.js +94 -0
- package/node_modules/@aspectcode/core/dist/fs/walker.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/host.d.ts +38 -0
- package/node_modules/@aspectcode/core/dist/host.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/host.js +110 -0
- package/node_modules/@aspectcode/core/dist/host.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/index.d.ts +23 -0
- package/node_modules/@aspectcode/core/dist/index.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/index.js +59 -0
- package/node_modules/@aspectcode/core/dist/index.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/model.d.ts +90 -0
- package/node_modules/@aspectcode/core/dist/model.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/model.js +9 -0
- package/node_modules/@aspectcode/core/dist/model.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/csharpExtractors.d.ts +17 -0
- package/node_modules/@aspectcode/core/dist/parsers/csharpExtractors.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/csharpExtractors.js +225 -0
- package/node_modules/@aspectcode/core/dist/parsers/csharpExtractors.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/grammarLoader.d.ts +30 -0
- package/node_modules/@aspectcode/core/dist/parsers/grammarLoader.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/grammarLoader.js +71 -0
- package/node_modules/@aspectcode/core/dist/parsers/grammarLoader.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/index.d.ts +13 -0
- package/node_modules/@aspectcode/core/dist/parsers/index.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/index.js +32 -0
- package/node_modules/@aspectcode/core/dist/parsers/index.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/javaExtractors.d.ts +17 -0
- package/node_modules/@aspectcode/core/dist/parsers/javaExtractors.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/javaExtractors.js +182 -0
- package/node_modules/@aspectcode/core/dist/parsers/javaExtractors.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/languages.d.ts +44 -0
- package/node_modules/@aspectcode/core/dist/parsers/languages.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/languages.js +64 -0
- package/node_modules/@aspectcode/core/dist/parsers/languages.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/pythonExtractors.d.ts +18 -0
- package/node_modules/@aspectcode/core/dist/parsers/pythonExtractors.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/pythonExtractors.js +139 -0
- package/node_modules/@aspectcode/core/dist/parsers/pythonExtractors.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/tsJsExtractors.d.ts +22 -0
- package/node_modules/@aspectcode/core/dist/parsers/tsJsExtractors.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/tsJsExtractors.js +240 -0
- package/node_modules/@aspectcode/core/dist/parsers/tsJsExtractors.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/utils.d.ts +7 -0
- package/node_modules/@aspectcode/core/dist/parsers/utils.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/utils.js +11 -0
- package/node_modules/@aspectcode/core/dist/parsers/utils.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/paths.d.ts +27 -0
- package/node_modules/@aspectcode/core/dist/paths.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/paths.js +45 -0
- package/node_modules/@aspectcode/core/dist/paths.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/stats.d.ts +41 -0
- package/node_modules/@aspectcode/core/dist/stats.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/stats.js +88 -0
- package/node_modules/@aspectcode/core/dist/stats.js.map +1 -0
- package/node_modules/@aspectcode/core/package.json +41 -0
- package/node_modules/@aspectcode/core/parsers/c_sharp.wasm +0 -0
- package/node_modules/@aspectcode/core/parsers/java.wasm +0 -0
- package/node_modules/@aspectcode/core/parsers/javascript.wasm +0 -0
- package/node_modules/@aspectcode/core/parsers/python.wasm +0 -0
- package/node_modules/@aspectcode/core/parsers/tree-sitter.wasm +0 -0
- package/node_modules/@aspectcode/core/parsers/tsx.wasm +0 -0
- package/node_modules/@aspectcode/core/parsers/typescript.wasm +0 -0
- package/node_modules/@aspectcode/emitters/dist/emitter.d.ts +72 -0
- package/node_modules/@aspectcode/emitters/dist/emitter.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/emitter.js +10 -0
- package/node_modules/@aspectcode/emitters/dist/emitter.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/host.d.ts +31 -0
- package/node_modules/@aspectcode/emitters/dist/host.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/host.js +86 -0
- package/node_modules/@aspectcode/emitters/dist/host.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/index.d.ts +27 -0
- package/node_modules/@aspectcode/emitters/dist/index.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/index.js +116 -0
- package/node_modules/@aspectcode/emitters/dist/index.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/content.d.ts +15 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/content.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/content.js +289 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/content.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/detection.d.ts +13 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/detection.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/detection.js +55 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/detection.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/formats.d.ts +17 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/formats.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/formats.js +23 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/formats.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/index.d.ts +5 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/index.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/index.js +12 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/index.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/instructionsEmitter.d.ts +9 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/instructionsEmitter.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/instructionsEmitter.js +30 -0
- package/node_modules/@aspectcode/emitters/dist/instructions/instructionsEmitter.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/analyzers.d.ts +64 -0
- package/node_modules/@aspectcode/emitters/dist/kb/analyzers.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/analyzers.js +504 -0
- package/node_modules/@aspectcode/emitters/dist/kb/analyzers.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/architectureEmitter.d.ts +24 -0
- package/node_modules/@aspectcode/emitters/dist/kb/architectureEmitter.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/architectureEmitter.js +238 -0
- package/node_modules/@aspectcode/emitters/dist/kb/architectureEmitter.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/classifiers.d.ts +8 -0
- package/node_modules/@aspectcode/emitters/dist/kb/classifiers.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/classifiers.js +14 -0
- package/node_modules/@aspectcode/emitters/dist/kb/classifiers.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/constants.d.ts +35 -0
- package/node_modules/@aspectcode/emitters/dist/kb/constants.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/constants.js +38 -0
- package/node_modules/@aspectcode/emitters/dist/kb/constants.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/contextEmitter.d.ts +20 -0
- package/node_modules/@aspectcode/emitters/dist/kb/contextEmitter.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/contextEmitter.js +155 -0
- package/node_modules/@aspectcode/emitters/dist/kb/contextEmitter.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/conventions.d.ts +52 -0
- package/node_modules/@aspectcode/emitters/dist/kb/conventions.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/conventions.js +391 -0
- package/node_modules/@aspectcode/emitters/dist/kb/conventions.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/depData.d.ts +18 -0
- package/node_modules/@aspectcode/emitters/dist/kb/depData.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/depData.js +31 -0
- package/node_modules/@aspectcode/emitters/dist/kb/depData.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/detectors.d.ts +18 -0
- package/node_modules/@aspectcode/emitters/dist/kb/detectors.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/detectors.js +317 -0
- package/node_modules/@aspectcode/emitters/dist/kb/detectors.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/entryPoints.d.ts +33 -0
- package/node_modules/@aspectcode/emitters/dist/kb/entryPoints.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/entryPoints.js +323 -0
- package/node_modules/@aspectcode/emitters/dist/kb/entryPoints.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/helpers.d.ts +27 -0
- package/node_modules/@aspectcode/emitters/dist/kb/helpers.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/helpers.js +63 -0
- package/node_modules/@aspectcode/emitters/dist/kb/helpers.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/index.d.ts +27 -0
- package/node_modules/@aspectcode/emitters/dist/kb/index.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/index.js +72 -0
- package/node_modules/@aspectcode/emitters/dist/kb/index.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/kbEmitter.d.ts +21 -0
- package/node_modules/@aspectcode/emitters/dist/kb/kbEmitter.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/kbEmitter.js +125 -0
- package/node_modules/@aspectcode/emitters/dist/kb/kbEmitter.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/mapEmitter.d.ts +26 -0
- package/node_modules/@aspectcode/emitters/dist/kb/mapEmitter.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/mapEmitter.js +255 -0
- package/node_modules/@aspectcode/emitters/dist/kb/mapEmitter.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/policy.d.ts +12 -0
- package/node_modules/@aspectcode/emitters/dist/kb/policy.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/policy.js +29 -0
- package/node_modules/@aspectcode/emitters/dist/kb/policy.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/symbols.d.ts +43 -0
- package/node_modules/@aspectcode/emitters/dist/kb/symbols.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/kb/symbols.js +343 -0
- package/node_modules/@aspectcode/emitters/dist/kb/symbols.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/manifest.d.ts +37 -0
- package/node_modules/@aspectcode/emitters/dist/manifest.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/manifest.js +50 -0
- package/node_modules/@aspectcode/emitters/dist/manifest.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/report.d.ts +22 -0
- package/node_modules/@aspectcode/emitters/dist/report.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/report.js +3 -0
- package/node_modules/@aspectcode/emitters/dist/report.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/stableJson.d.ts +14 -0
- package/node_modules/@aspectcode/emitters/dist/stableJson.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/stableJson.js +40 -0
- package/node_modules/@aspectcode/emitters/dist/stableJson.js.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/transaction.d.ts +29 -0
- package/node_modules/@aspectcode/emitters/dist/transaction.d.ts.map +1 -0
- package/node_modules/@aspectcode/emitters/dist/transaction.js +104 -0
- package/node_modules/@aspectcode/emitters/dist/transaction.js.map +1 -0
- package/node_modules/@aspectcode/emitters/package.json +39 -0
- package/node_modules/@aspectcode/optimizer/dist/agent.d.ts +18 -0
- package/node_modules/@aspectcode/optimizer/dist/agent.d.ts.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/agent.js +123 -0
- package/node_modules/@aspectcode/optimizer/dist/agent.js.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/index.d.ts +15 -0
- package/node_modules/@aspectcode/optimizer/dist/index.d.ts.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/index.js +31 -0
- package/node_modules/@aspectcode/optimizer/dist/index.js.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/prompts.d.ts +39 -0
- package/node_modules/@aspectcode/optimizer/dist/prompts.d.ts.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/prompts.js +156 -0
- package/node_modules/@aspectcode/optimizer/dist/prompts.js.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/anthropic.d.ts +20 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/anthropic.d.ts.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/anthropic.js +126 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/anthropic.js.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/index.d.ts +28 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/index.d.ts.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/index.js +142 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/index.js.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/openai.d.ts +19 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/openai.d.ts.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/openai.js +98 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/openai.js.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/retry.d.ts +19 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/retry.d.ts.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/retry.js +87 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/retry.js.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/types.d.ts +93 -0
- package/node_modules/@aspectcode/optimizer/dist/types.d.ts.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/types.js +20 -0
- package/node_modules/@aspectcode/optimizer/dist/types.js.map +1 -0
- package/node_modules/@aspectcode/optimizer/package.json +41 -0
- package/node_modules/dotenv/CHANGELOG.md +520 -0
- package/node_modules/dotenv/LICENSE +23 -0
- package/node_modules/dotenv/README-es.md +411 -0
- package/node_modules/dotenv/README.md +645 -0
- package/node_modules/dotenv/SECURITY.md +1 -0
- package/node_modules/dotenv/config.d.ts +1 -0
- package/node_modules/dotenv/config.js +9 -0
- package/node_modules/dotenv/lib/cli-options.js +17 -0
- package/node_modules/dotenv/lib/env-options.js +28 -0
- package/node_modules/dotenv/lib/main.d.ts +162 -0
- package/node_modules/dotenv/lib/main.js +386 -0
- package/node_modules/dotenv/package.json +62 -0
- package/package.json +16 -4
- package/dist/commands/deps.d.ts +0 -11
- package/dist/commands/deps.d.ts.map +0 -1
- package/dist/commands/deps.js +0 -197
- package/dist/commands/deps.js.map +0 -1
- package/dist/commands/generate.d.ts +0 -8
- package/dist/commands/generate.d.ts.map +0 -1
- package/dist/commands/generate.js +0 -162
- package/dist/commands/generate.js.map +0 -1
- package/dist/commands/settings.d.ts +0 -9
- package/dist/commands/settings.d.ts.map +0 -1
- package/dist/commands/settings.js +0 -165
- package/dist/commands/settings.js.map +0 -1
- package/dist/commands/watch.d.ts +0 -6
- package/dist/commands/watch.d.ts.map +0 -1
- package/dist/commands/watch.js +0 -180
- package/dist/commands/watch.js.map +0 -1
- package/dist/connections.d.ts +0 -24
- package/dist/connections.d.ts.map +0 -1
- package/dist/connections.js +0 -89
- package/dist/connections.js.map +0 -1
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Entry-point detection — content-aware analysis of source files for
|
|
4
|
+
* runtime entry points, tooling scripts, and barrel/index exports.
|
|
5
|
+
*
|
|
6
|
+
* All functions are pure (no I/O, no vscode).
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.detectEntryPointsWithContent = detectEntryPointsWithContent;
|
|
10
|
+
exports.detectEntryPointsByName = detectEntryPointsByName;
|
|
11
|
+
const core_1 = require("@aspectcode/core");
|
|
12
|
+
const helpers_1 = require("./helpers");
|
|
13
|
+
const classifiers_1 = require("./classifiers");
|
|
14
|
+
// ── Public API ───────────────────────────────────────────────
|
|
15
|
+
/**
|
|
16
|
+
* Detect entry points with language-aware content analysis.
|
|
17
|
+
*
|
|
18
|
+
* Categories:
|
|
19
|
+
* - **runtime** — FastAPI / Flask / Express route handlers, main(), lambda
|
|
20
|
+
* - **tooling** — CLI scripts, `if __name__`, config/build tools
|
|
21
|
+
* - **barrel** — index/mod/__init__ files that primarily re-export
|
|
22
|
+
*/
|
|
23
|
+
function detectEntryPointsWithContent(files, workspaceRoot, fileContentCache) {
|
|
24
|
+
const entryPoints = [];
|
|
25
|
+
const processedPaths = new Set();
|
|
26
|
+
for (const file of files) {
|
|
27
|
+
const relPath = (0, helpers_1.makeRelativePath)(file, workspaceRoot);
|
|
28
|
+
if (processedPaths.has(relPath))
|
|
29
|
+
continue;
|
|
30
|
+
processedPaths.add(relPath);
|
|
31
|
+
const ext = getExtension(file);
|
|
32
|
+
const basename = getBasename(file, ext);
|
|
33
|
+
const content = fileContentCache.get(file) || '';
|
|
34
|
+
if (!content)
|
|
35
|
+
continue;
|
|
36
|
+
const result = analyzeFileForEntryPoint(relPath, basename, ext, content);
|
|
37
|
+
if (result) {
|
|
38
|
+
entryPoints.push(result);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Sort: runtime first (by route count desc), then tooling, then barrel
|
|
42
|
+
const categoryOrder = { runtime: 0, tooling: 1, barrel: 2 };
|
|
43
|
+
const confidenceOrder = { high: 0, medium: 1, low: 2 };
|
|
44
|
+
entryPoints.sort((a, b) => {
|
|
45
|
+
const catDiff = categoryOrder[a.category] - categoryOrder[b.category];
|
|
46
|
+
if (catDiff !== 0)
|
|
47
|
+
return catDiff;
|
|
48
|
+
if (a.category === 'runtime' && b.category === 'runtime') {
|
|
49
|
+
const routeDiff = (b.routeCount || 0) - (a.routeCount || 0);
|
|
50
|
+
if (routeDiff !== 0)
|
|
51
|
+
return routeDiff;
|
|
52
|
+
}
|
|
53
|
+
const confDiff = confidenceOrder[a.confidence] - confidenceOrder[b.confidence];
|
|
54
|
+
if (confDiff !== 0)
|
|
55
|
+
return confDiff;
|
|
56
|
+
return a.path.localeCompare(b.path);
|
|
57
|
+
});
|
|
58
|
+
return entryPoints;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Legacy sync entry-point detection (filename-based only).
|
|
62
|
+
* Used as fallback when content cache is empty.
|
|
63
|
+
*/
|
|
64
|
+
function detectEntryPointsByName(files, workspaceRoot) {
|
|
65
|
+
const entryPoints = [];
|
|
66
|
+
const highConfidence = ['main', '__main__', 'server', 'app'];
|
|
67
|
+
const mediumConfidence = ['index', 'start', 'cli', 'run'];
|
|
68
|
+
const lowConfidence = ['bootstrap', 'init', 'setup'];
|
|
69
|
+
for (const file of files) {
|
|
70
|
+
const ext = getExtension(file);
|
|
71
|
+
const basename = getBasename(file, ext);
|
|
72
|
+
const relPath = (0, helpers_1.makeRelativePath)(file, workspaceRoot);
|
|
73
|
+
if (basename === '__main__' && ext === '.py') {
|
|
74
|
+
entryPoints.push({ path: relPath, reason: 'Python main module', confidence: 'high' });
|
|
75
|
+
}
|
|
76
|
+
else if (highConfidence.includes(basename)) {
|
|
77
|
+
entryPoints.push({ path: relPath, reason: `Entry point (${basename})`, confidence: 'high' });
|
|
78
|
+
}
|
|
79
|
+
else if (mediumConfidence.includes(basename)) {
|
|
80
|
+
entryPoints.push({
|
|
81
|
+
path: relPath,
|
|
82
|
+
reason: `Entry point (${basename})`,
|
|
83
|
+
confidence: 'medium',
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
else if (lowConfidence.includes(basename)) {
|
|
87
|
+
entryPoints.push({
|
|
88
|
+
path: relPath,
|
|
89
|
+
reason: `Possible entry (${basename})`,
|
|
90
|
+
confidence: 'low',
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return entryPoints;
|
|
95
|
+
}
|
|
96
|
+
// ── Dispatcher ───────────────────────────────────────────────
|
|
97
|
+
function analyzeFileForEntryPoint(relPath, basename, ext, content) {
|
|
98
|
+
const pathLower = relPath.toLowerCase();
|
|
99
|
+
// ── Barrel / Index exports ─────────────────────────────────
|
|
100
|
+
if (basename === 'index' || basename === 'mod' || basename === '__init__') {
|
|
101
|
+
const exportLines = (content.match(/^export\s+/gm) || []).length;
|
|
102
|
+
const fromLines = (content.match(/from\s+['"]/gm) || []).length;
|
|
103
|
+
const totalLines = content.split('\n').filter((l) => l.trim()).length;
|
|
104
|
+
if (totalLines > 0 && (exportLines + fromLines) / totalLines > 0.4) {
|
|
105
|
+
return { path: relPath, reason: 'Re-export barrel', confidence: 'medium', category: 'barrel' };
|
|
106
|
+
}
|
|
107
|
+
if (ext === '.py') {
|
|
108
|
+
const pyReexports = (content.match(/^from\s+\./gm) || []).length;
|
|
109
|
+
if (pyReexports > 2 && pyReexports / Math.max(1, totalLines) > 0.3) {
|
|
110
|
+
return { path: relPath, reason: 'Package re-exports', confidence: 'medium', category: 'barrel' };
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// ── Config / Tooling ───────────────────────────────────────
|
|
115
|
+
if ((0, classifiers_1.isConfigOrToolingFile)(relPath)) {
|
|
116
|
+
if (content.includes('module.exports') ||
|
|
117
|
+
content.includes('export default') ||
|
|
118
|
+
content.includes('defineConfig') ||
|
|
119
|
+
content.includes('createConfig')) {
|
|
120
|
+
return { path: relPath, reason: 'Config/Build tool', confidence: 'high', category: 'tooling' };
|
|
121
|
+
}
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
// ── Language-specific ──────────────────────────────────────
|
|
125
|
+
if (ext === '.py')
|
|
126
|
+
return analyzePythonEntryPoint(relPath, basename, content);
|
|
127
|
+
if (['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs'].includes(ext))
|
|
128
|
+
return analyzeTSJSEntryPoint(relPath, basename, pathLower, content);
|
|
129
|
+
if (ext === '.cs')
|
|
130
|
+
return analyzeCSharpEntryPoint(relPath, basename, content);
|
|
131
|
+
if (ext === '.java')
|
|
132
|
+
return analyzeJavaEntryPoint(relPath, basename, content);
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
// ── Python ───────────────────────────────────────────────────
|
|
136
|
+
function analyzePythonEntryPoint(relPath, basename, content) {
|
|
137
|
+
// FastAPI
|
|
138
|
+
const hasFastAPI = content.includes('FastAPI(') || content.includes('from fastapi');
|
|
139
|
+
const fastAPIRoutes = (content.match(/@(app|router)\.(get|post|put|delete|patch|options|head)\s*\(/gi) || []).length;
|
|
140
|
+
if (hasFastAPI && fastAPIRoutes > 0) {
|
|
141
|
+
return { path: relPath, reason: `FastAPI (${fastAPIRoutes} routes)`, confidence: 'high', category: 'runtime', routeCount: fastAPIRoutes };
|
|
142
|
+
}
|
|
143
|
+
// Flask
|
|
144
|
+
const hasFlask = content.includes('Flask(__name__)') || content.includes('from flask import Flask');
|
|
145
|
+
const flaskRoutes = (content.match(/@(app|blueprint|bp)\.(route|get|post|put|delete|patch)\s*\(/gi) || []).length;
|
|
146
|
+
if (hasFlask && flaskRoutes > 0) {
|
|
147
|
+
return { path: relPath, reason: `Flask (${flaskRoutes} routes)`, confidence: 'high', category: 'runtime', routeCount: flaskRoutes };
|
|
148
|
+
}
|
|
149
|
+
// Django URLs
|
|
150
|
+
if (basename === 'urls' && content.includes('urlpatterns')) {
|
|
151
|
+
const urlPatterns = (content.match(/path\s*\(|re_path\s*\(|url\s*\(/g) || []).length;
|
|
152
|
+
return { path: relPath, reason: `Django URLs (${urlPatterns} patterns)`, confidence: 'high', category: 'runtime', routeCount: urlPatterns };
|
|
153
|
+
}
|
|
154
|
+
// Django views
|
|
155
|
+
if (basename === 'views' &&
|
|
156
|
+
(content.includes('def get(') || content.includes('def post(') || content.includes('@api_view'))) {
|
|
157
|
+
return { path: relPath, reason: 'Django views', confidence: 'medium', category: 'runtime', routeCount: 1 };
|
|
158
|
+
}
|
|
159
|
+
// Django WSGI/ASGI
|
|
160
|
+
if ((basename === 'wsgi' || basename === 'asgi') && content.includes('application')) {
|
|
161
|
+
return { path: relPath, reason: `Django ${basename.toUpperCase()} entry`, confidence: 'high', category: 'runtime', routeCount: 1 };
|
|
162
|
+
}
|
|
163
|
+
// __main__.py
|
|
164
|
+
if (basename === '__main__') {
|
|
165
|
+
return { path: relPath, reason: 'Python main module', confidence: 'high', category: 'runtime', routeCount: 1 };
|
|
166
|
+
}
|
|
167
|
+
// CLI via click/typer
|
|
168
|
+
if (content.includes('@click.command') ||
|
|
169
|
+
content.includes('@click.group') ||
|
|
170
|
+
(content.includes('@app.command') && content.includes('import typer'))) {
|
|
171
|
+
return { path: relPath, reason: 'CLI tool (click/typer)', confidence: 'high', category: 'tooling' };
|
|
172
|
+
}
|
|
173
|
+
// if __name__ == "__main__"
|
|
174
|
+
if (content.includes('if __name__') && content.includes('__main__')) {
|
|
175
|
+
if (content.includes('uvicorn.run') || content.includes('app.run(') || content.includes('.serve(')) {
|
|
176
|
+
return { path: relPath, reason: 'Server entry', confidence: 'high', category: 'runtime', routeCount: 1 };
|
|
177
|
+
}
|
|
178
|
+
return { path: relPath, reason: 'Script entry (__main__)', confidence: 'medium', category: 'tooling' };
|
|
179
|
+
}
|
|
180
|
+
// Generic name-based
|
|
181
|
+
if (['main', 'app', 'server', 'application'].includes(basename)) {
|
|
182
|
+
return { path: relPath, reason: `Entry point (${basename})`, confidence: 'medium', category: 'runtime', routeCount: 0 };
|
|
183
|
+
}
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
// ── TypeScript / JavaScript ──────────────────────────────────
|
|
187
|
+
function analyzeTSJSEntryPoint(relPath, basename, pathLower, content) {
|
|
188
|
+
// Next.js API routes
|
|
189
|
+
if (pathLower.includes('pages/api/') || pathLower.includes('app/api/')) {
|
|
190
|
+
if (content.includes('export default') || content.includes('export async function')) {
|
|
191
|
+
return { path: relPath, reason: 'Next.js API route', confidence: 'high', category: 'runtime', routeCount: 1 };
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Next.js middleware
|
|
195
|
+
if (basename === 'middleware' && (pathLower.endsWith('.ts') || pathLower.endsWith('.js'))) {
|
|
196
|
+
if (content.includes('NextRequest') || content.includes('NextResponse')) {
|
|
197
|
+
return { path: relPath, reason: 'Next.js middleware', confidence: 'high', category: 'runtime', routeCount: 1 };
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// Express / Fastify / Koa
|
|
201
|
+
const expressRoutes = (content.match(/\.(get|post|put|delete|patch|use)\s*\(\s*['"]/g) || []).length;
|
|
202
|
+
const hasExpressApp = content.includes('express()') || content.includes('fastify(') || content.includes('new Koa(');
|
|
203
|
+
if (hasExpressApp || expressRoutes > 2) {
|
|
204
|
+
return { path: relPath, reason: `Express/HTTP server (${expressRoutes} routes)`, confidence: expressRoutes > 0 ? 'high' : 'medium', category: 'runtime', routeCount: expressRoutes };
|
|
205
|
+
}
|
|
206
|
+
// NestJS
|
|
207
|
+
if (content.includes('@Controller') || content.includes('@Injectable')) {
|
|
208
|
+
const nestRoutes = (content.match(/@(Get|Post|Put|Delete|Patch|All)\s*\(/g) || []).length;
|
|
209
|
+
if (nestRoutes > 0) {
|
|
210
|
+
return { path: relPath, reason: `NestJS controller (${nestRoutes} routes)`, confidence: 'high', category: 'runtime', routeCount: nestRoutes };
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// Hono
|
|
214
|
+
if (content.includes('new Hono(') || content.includes('Hono.get') || content.includes('app.get(')) {
|
|
215
|
+
const honoRoutes = (content.match(/\.(get|post|put|delete|patch)\s*\(/g) || []).length;
|
|
216
|
+
if (honoRoutes > 0) {
|
|
217
|
+
return { path: relPath, reason: `Hono server (${honoRoutes} routes)`, confidence: 'high', category: 'runtime', routeCount: honoRoutes };
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// require.main === module
|
|
221
|
+
if (content.includes('require.main === module')) {
|
|
222
|
+
return { path: relPath, reason: 'Node.js script entry', confidence: 'medium', category: 'tooling' };
|
|
223
|
+
}
|
|
224
|
+
// bin / CLI
|
|
225
|
+
if (pathLower.includes('/bin/') || pathLower.includes('/cli/')) {
|
|
226
|
+
if (content.includes('#!/') || content.includes('commander') || content.includes('yargs')) {
|
|
227
|
+
return { path: relPath, reason: 'CLI script', confidence: 'medium', category: 'tooling' };
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// Server files by name
|
|
231
|
+
if (['server', 'main', 'app', 'index'].includes(basename)) {
|
|
232
|
+
if (content.includes('.listen(') ||
|
|
233
|
+
content.includes('createServer') ||
|
|
234
|
+
content.includes('http.createServer') ||
|
|
235
|
+
content.includes('https.createServer')) {
|
|
236
|
+
return { path: relPath, reason: 'Server entry', confidence: 'high', category: 'runtime', routeCount: 1 };
|
|
237
|
+
}
|
|
238
|
+
if (basename === 'main' || basename === 'server') {
|
|
239
|
+
return { path: relPath, reason: `Entry point (${basename})`, confidence: 'medium', category: 'runtime', routeCount: 0 };
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
244
|
+
// ── C# ───────────────────────────────────────────────────────
|
|
245
|
+
function analyzeCSharpEntryPoint(relPath, basename, content) {
|
|
246
|
+
if (basename === 'program') {
|
|
247
|
+
if (content.includes('WebApplication.CreateBuilder') ||
|
|
248
|
+
content.includes('CreateHostBuilder') ||
|
|
249
|
+
content.includes('UseStartup') ||
|
|
250
|
+
content.includes('app.Run()')) {
|
|
251
|
+
const mapRoutes = (content.match(/\.Map(Get|Post|Put|Delete|Patch)\s*\(/g) || []).length;
|
|
252
|
+
return {
|
|
253
|
+
path: relPath,
|
|
254
|
+
reason: `ASP.NET entry${mapRoutes > 0 ? ` (${mapRoutes} routes)` : ''}`,
|
|
255
|
+
confidence: 'high',
|
|
256
|
+
category: 'runtime',
|
|
257
|
+
routeCount: mapRoutes || 1,
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
if (content.includes('static void Main') || content.includes('static async Task Main')) {
|
|
261
|
+
return { path: relPath, reason: 'Console app entry', confidence: 'medium', category: 'tooling' };
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
if (content.includes('[ApiController]') || content.includes('[Controller]')) {
|
|
265
|
+
const routes = (content.match(/\[(Http(Get|Post|Put|Delete|Patch)|Route)\]/g) || []).length;
|
|
266
|
+
return {
|
|
267
|
+
path: relPath,
|
|
268
|
+
reason: `ASP.NET controller (${routes} routes)`,
|
|
269
|
+
confidence: routes > 0 ? 'high' : 'medium',
|
|
270
|
+
category: 'runtime',
|
|
271
|
+
routeCount: routes,
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
if (basename === 'startup' && content.includes('ConfigureServices')) {
|
|
275
|
+
return { path: relPath, reason: 'ASP.NET Startup config', confidence: 'high', category: 'runtime', routeCount: 1 };
|
|
276
|
+
}
|
|
277
|
+
return null;
|
|
278
|
+
}
|
|
279
|
+
// ── Java ─────────────────────────────────────────────────────
|
|
280
|
+
function analyzeJavaEntryPoint(relPath, _basename, content) {
|
|
281
|
+
if (content.includes('@SpringBootApplication')) {
|
|
282
|
+
return { path: relPath, reason: 'Spring Boot entry', confidence: 'high', category: 'runtime', routeCount: 1 };
|
|
283
|
+
}
|
|
284
|
+
if (content.includes('@RestController') || content.includes('@Controller')) {
|
|
285
|
+
const mappings = (content.match(/@(Get|Post|Put|Delete|Patch|Request)Mapping/g) || []).length;
|
|
286
|
+
return {
|
|
287
|
+
path: relPath,
|
|
288
|
+
reason: `Spring controller (${mappings} endpoints)`,
|
|
289
|
+
confidence: mappings > 0 ? 'high' : 'medium',
|
|
290
|
+
category: 'runtime',
|
|
291
|
+
routeCount: mappings,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
if (content.includes('@Path(') && (content.includes('@GET') || content.includes('@POST'))) {
|
|
295
|
+
const jaxRoutes = (content.match(/@(GET|POST|PUT|DELETE|PATCH)/g) || []).length;
|
|
296
|
+
return {
|
|
297
|
+
path: relPath,
|
|
298
|
+
reason: `JAX-RS resource (${jaxRoutes} endpoints)`,
|
|
299
|
+
confidence: 'high',
|
|
300
|
+
category: 'runtime',
|
|
301
|
+
routeCount: jaxRoutes,
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
if (content.includes('public static void main(String')) {
|
|
305
|
+
if (!content.includes('@SpringBootApplication')) {
|
|
306
|
+
return { path: relPath, reason: 'Java main class', confidence: 'medium', category: 'tooling' };
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
return null;
|
|
310
|
+
}
|
|
311
|
+
// ── Internal ─────────────────────────────────────────────────
|
|
312
|
+
function getExtension(filePath) {
|
|
313
|
+
const p = (0, core_1.toPosix)(filePath);
|
|
314
|
+
const lastDot = p.lastIndexOf('.');
|
|
315
|
+
return lastDot >= 0 ? p.substring(lastDot).toLowerCase() : '';
|
|
316
|
+
}
|
|
317
|
+
function getBasename(filePath, ext) {
|
|
318
|
+
const p = (0, core_1.toPosix)(filePath);
|
|
319
|
+
const lastSlash = p.lastIndexOf('/');
|
|
320
|
+
const name = lastSlash >= 0 ? p.substring(lastSlash + 1) : p;
|
|
321
|
+
return ext && name.endsWith(ext) ? name.slice(0, -ext.length).toLowerCase() : name.toLowerCase();
|
|
322
|
+
}
|
|
323
|
+
//# sourceMappingURL=entryPoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entryPoints.js","sourceRoot":"","sources":["../../src/kb/entryPoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small, reusable helpers shared across KB emitter modules.
|
|
3
|
+
*
|
|
4
|
+
* All functions are pure (no I/O, no vscode).
|
|
5
|
+
*/
|
|
6
|
+
import { makeRelativePath } from '@aspectcode/core';
|
|
7
|
+
export { makeRelativePath };
|
|
8
|
+
/**
|
|
9
|
+
* Trim content to stay within a line budget, preserving structure.
|
|
10
|
+
* Truncation tries to land on a section boundary (## or ---).
|
|
11
|
+
*/
|
|
12
|
+
export declare function enforceLineBudget(content: string, maxLines: number, _fileName: string, generatedAt: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Deduplicate an array, optionally by a key function.
|
|
15
|
+
* Preserves the first occurrence.
|
|
16
|
+
*/
|
|
17
|
+
export declare function dedupe<T>(items: T[], keyFn?: (item: T) => string): T[];
|
|
18
|
+
/** Standard finding shape used by KB enrichment detectors. */
|
|
19
|
+
export interface KBEnrichingFinding {
|
|
20
|
+
file: string;
|
|
21
|
+
message: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Deduplicate and sort a list of findings by file then message.
|
|
25
|
+
*/
|
|
26
|
+
export declare function dedupeFindings(results: KBEnrichingFinding[]): KBEnrichingFinding[];
|
|
27
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/kb/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIpD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,CAeR;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,CAAC,EAAE,CAQtE;AAED,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAUlF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Small, reusable helpers shared across KB emitter modules.
|
|
4
|
+
*
|
|
5
|
+
* All functions are pure (no I/O, no vscode).
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.makeRelativePath = void 0;
|
|
9
|
+
exports.enforceLineBudget = enforceLineBudget;
|
|
10
|
+
exports.dedupe = dedupe;
|
|
11
|
+
exports.dedupeFindings = dedupeFindings;
|
|
12
|
+
const core_1 = require("@aspectcode/core");
|
|
13
|
+
Object.defineProperty(exports, "makeRelativePath", { enumerable: true, get: function () { return core_1.makeRelativePath; } });
|
|
14
|
+
const policy_1 = require("./policy");
|
|
15
|
+
/**
|
|
16
|
+
* Trim content to stay within a line budget, preserving structure.
|
|
17
|
+
* Truncation tries to land on a section boundary (## or ---).
|
|
18
|
+
*/
|
|
19
|
+
function enforceLineBudget(content, maxLines, _fileName, generatedAt) {
|
|
20
|
+
const lines = (0, policy_1.splitLines)(content);
|
|
21
|
+
if (lines.length <= maxLines)
|
|
22
|
+
return lines.join('\n');
|
|
23
|
+
let truncateAt = maxLines - 3;
|
|
24
|
+
for (let i = maxLines - 3; i > maxLines - 20 && i > 0; i--) {
|
|
25
|
+
if (lines[i].startsWith('##') || lines[i].startsWith('---')) {
|
|
26
|
+
truncateAt = i;
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const truncated = lines.slice(0, truncateAt);
|
|
31
|
+
truncated.push(...(0, policy_1.truncationFooter)(maxLines, lines.length - truncateAt, generatedAt));
|
|
32
|
+
return truncated.join('\n');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Deduplicate an array, optionally by a key function.
|
|
36
|
+
* Preserves the first occurrence.
|
|
37
|
+
*/
|
|
38
|
+
function dedupe(items, keyFn) {
|
|
39
|
+
const seen = new Set();
|
|
40
|
+
return items.filter((item) => {
|
|
41
|
+
const key = keyFn ? keyFn(item) : String(item);
|
|
42
|
+
if (seen.has(key))
|
|
43
|
+
return false;
|
|
44
|
+
seen.add(key);
|
|
45
|
+
return true;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Deduplicate and sort a list of findings by file then message.
|
|
50
|
+
*/
|
|
51
|
+
function dedupeFindings(results) {
|
|
52
|
+
const seen = new Set();
|
|
53
|
+
return results
|
|
54
|
+
.filter((r) => {
|
|
55
|
+
const key = `${r.file}|${r.message}`;
|
|
56
|
+
if (seen.has(key))
|
|
57
|
+
return false;
|
|
58
|
+
seen.add(key);
|
|
59
|
+
return true;
|
|
60
|
+
})
|
|
61
|
+
.sort((a, b) => a.file.localeCompare(b.file) || a.message.localeCompare(b.message));
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/kb/helpers.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAYH,8CAoBC;AAMD,wBAQC;AAWD,wCAUC;AAjED,2CAAoD;AAI3C,iGAJA,uBAAgB,OAIA;AAHzB,qCAAwD;AAKxD;;;GAGG;AACH,SAAgB,iBAAiB,CAC/B,OAAe,EACf,QAAgB,EAChB,SAAiB,EACjB,WAAmB;IAEnB,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,OAAO,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3D,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,UAAU,GAAG,CAAC,CAAC;YACf,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7C,SAAS,CAAC,IAAI,CAAC,GAAG,IAAA,yBAAgB,EAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IACtF,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAI,KAAU,EAAE,KAA2B;IAC/D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAQD;;GAEG;AACH,SAAgB,cAAc,CAAC,OAA6B;IAC1D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACZ,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KB helpers barrel — re-exports all pure KB analysis functions.
|
|
3
|
+
*/
|
|
4
|
+
export { KB_SIZE_LIMITS, KB_SECTION_LIMITS, KB_ENRICHING_RULES } from './constants';
|
|
5
|
+
export { enforceLineBudget, makeRelativePath, dedupe, dedupeFindings } from './helpers';
|
|
6
|
+
export type { KBEnrichingFinding } from './helpers';
|
|
7
|
+
export { classifyFile, isStructuralAppFile, isConfigOrToolingFile } from './classifiers';
|
|
8
|
+
export type { FileKind } from './classifiers';
|
|
9
|
+
export { detectDataModelsLocally, detectExternalIntegrationsLocally, detectGlobalStateLocally, getKBEnrichments, } from './detectors';
|
|
10
|
+
export type { EnrichmentRuleType } from './detectors';
|
|
11
|
+
export { detectEntryPointsWithContent, detectEntryPointsByName } from './entryPoints';
|
|
12
|
+
export type { DetectedEntryPoint } from './entryPoints';
|
|
13
|
+
export { calculateCentralityScores, groupEndpointsByModule, buildEntryPointFlows, detectLayerFlows, findDependencyChains, findModuleClusters, analyzeDirStructure, inferDirPurpose, getSymbolCallers, } from './analyzers';
|
|
14
|
+
export type { ModuleCluster, DirInfo } from './analyzers';
|
|
15
|
+
export { analyzeFileNaming, analyzeFunctionNaming, analyzeClassNaming, analyzeImportPatterns, analyzeTestNaming, analyzeTestOrganization, detectFrameworkPatterns, getFixTemplate, } from './conventions';
|
|
16
|
+
export { extractModelSignature, extractFileSymbolsWithSignatures } from './symbols';
|
|
17
|
+
export type { LoadedGrammars, SymbolExtractor, SymbolExtractors } from './symbols';
|
|
18
|
+
export { buildDepStats } from './depData';
|
|
19
|
+
export { buildArchitectureContent } from './architectureEmitter';
|
|
20
|
+
export type { ArchitectureEmitterInput } from './architectureEmitter';
|
|
21
|
+
export { buildMapContent } from './mapEmitter';
|
|
22
|
+
export type { MapEmitterInput } from './mapEmitter';
|
|
23
|
+
export { buildContextContent } from './contextEmitter';
|
|
24
|
+
export type { ContextEmitterInput } from './contextEmitter';
|
|
25
|
+
export { createKBEmitter, KB_FILENAME } from './kbEmitter';
|
|
26
|
+
export type { KBEmitterOptions } from './kbEmitter';
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kb/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGpF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACzF,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtD,OAAO,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACtF,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG1D,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,GACf,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,MAAM,WAAW,CAAC;AACpF,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGnF,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAI5D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* KB helpers barrel — re-exports all pure KB analysis functions.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.KB_FILENAME = exports.createKBEmitter = exports.buildContextContent = exports.buildMapContent = exports.buildArchitectureContent = exports.buildDepStats = exports.extractFileSymbolsWithSignatures = exports.extractModelSignature = exports.getFixTemplate = exports.detectFrameworkPatterns = exports.analyzeTestOrganization = exports.analyzeTestNaming = exports.analyzeImportPatterns = exports.analyzeClassNaming = exports.analyzeFunctionNaming = exports.analyzeFileNaming = exports.getSymbolCallers = exports.inferDirPurpose = exports.analyzeDirStructure = exports.findModuleClusters = exports.findDependencyChains = exports.detectLayerFlows = exports.buildEntryPointFlows = exports.groupEndpointsByModule = exports.calculateCentralityScores = exports.detectEntryPointsByName = exports.detectEntryPointsWithContent = exports.getKBEnrichments = exports.detectGlobalStateLocally = exports.detectExternalIntegrationsLocally = exports.detectDataModelsLocally = exports.isConfigOrToolingFile = exports.isStructuralAppFile = exports.classifyFile = exports.dedupeFindings = exports.dedupe = exports.makeRelativePath = exports.enforceLineBudget = exports.KB_ENRICHING_RULES = exports.KB_SECTION_LIMITS = exports.KB_SIZE_LIMITS = void 0;
|
|
7
|
+
// Constants & limits
|
|
8
|
+
var constants_1 = require("./constants");
|
|
9
|
+
Object.defineProperty(exports, "KB_SIZE_LIMITS", { enumerable: true, get: function () { return constants_1.KB_SIZE_LIMITS; } });
|
|
10
|
+
Object.defineProperty(exports, "KB_SECTION_LIMITS", { enumerable: true, get: function () { return constants_1.KB_SECTION_LIMITS; } });
|
|
11
|
+
Object.defineProperty(exports, "KB_ENRICHING_RULES", { enumerable: true, get: function () { return constants_1.KB_ENRICHING_RULES; } });
|
|
12
|
+
// Core helpers
|
|
13
|
+
var helpers_1 = require("./helpers");
|
|
14
|
+
Object.defineProperty(exports, "enforceLineBudget", { enumerable: true, get: function () { return helpers_1.enforceLineBudget; } });
|
|
15
|
+
Object.defineProperty(exports, "makeRelativePath", { enumerable: true, get: function () { return helpers_1.makeRelativePath; } });
|
|
16
|
+
Object.defineProperty(exports, "dedupe", { enumerable: true, get: function () { return helpers_1.dedupe; } });
|
|
17
|
+
Object.defineProperty(exports, "dedupeFindings", { enumerable: true, get: function () { return helpers_1.dedupeFindings; } });
|
|
18
|
+
// File classification
|
|
19
|
+
var classifiers_1 = require("./classifiers");
|
|
20
|
+
Object.defineProperty(exports, "classifyFile", { enumerable: true, get: function () { return classifiers_1.classifyFile; } });
|
|
21
|
+
Object.defineProperty(exports, "isStructuralAppFile", { enumerable: true, get: function () { return classifiers_1.isStructuralAppFile; } });
|
|
22
|
+
Object.defineProperty(exports, "isConfigOrToolingFile", { enumerable: true, get: function () { return classifiers_1.isConfigOrToolingFile; } });
|
|
23
|
+
// Pattern detectors
|
|
24
|
+
var detectors_1 = require("./detectors");
|
|
25
|
+
Object.defineProperty(exports, "detectDataModelsLocally", { enumerable: true, get: function () { return detectors_1.detectDataModelsLocally; } });
|
|
26
|
+
Object.defineProperty(exports, "detectExternalIntegrationsLocally", { enumerable: true, get: function () { return detectors_1.detectExternalIntegrationsLocally; } });
|
|
27
|
+
Object.defineProperty(exports, "detectGlobalStateLocally", { enumerable: true, get: function () { return detectors_1.detectGlobalStateLocally; } });
|
|
28
|
+
Object.defineProperty(exports, "getKBEnrichments", { enumerable: true, get: function () { return detectors_1.getKBEnrichments; } });
|
|
29
|
+
// Entry-point detection
|
|
30
|
+
var entryPoints_1 = require("./entryPoints");
|
|
31
|
+
Object.defineProperty(exports, "detectEntryPointsWithContent", { enumerable: true, get: function () { return entryPoints_1.detectEntryPointsWithContent; } });
|
|
32
|
+
Object.defineProperty(exports, "detectEntryPointsByName", { enumerable: true, get: function () { return entryPoints_1.detectEntryPointsByName; } });
|
|
33
|
+
// Graph analysis
|
|
34
|
+
var analyzers_1 = require("./analyzers");
|
|
35
|
+
Object.defineProperty(exports, "calculateCentralityScores", { enumerable: true, get: function () { return analyzers_1.calculateCentralityScores; } });
|
|
36
|
+
Object.defineProperty(exports, "groupEndpointsByModule", { enumerable: true, get: function () { return analyzers_1.groupEndpointsByModule; } });
|
|
37
|
+
Object.defineProperty(exports, "buildEntryPointFlows", { enumerable: true, get: function () { return analyzers_1.buildEntryPointFlows; } });
|
|
38
|
+
Object.defineProperty(exports, "detectLayerFlows", { enumerable: true, get: function () { return analyzers_1.detectLayerFlows; } });
|
|
39
|
+
Object.defineProperty(exports, "findDependencyChains", { enumerable: true, get: function () { return analyzers_1.findDependencyChains; } });
|
|
40
|
+
Object.defineProperty(exports, "findModuleClusters", { enumerable: true, get: function () { return analyzers_1.findModuleClusters; } });
|
|
41
|
+
Object.defineProperty(exports, "analyzeDirStructure", { enumerable: true, get: function () { return analyzers_1.analyzeDirStructure; } });
|
|
42
|
+
Object.defineProperty(exports, "inferDirPurpose", { enumerable: true, get: function () { return analyzers_1.inferDirPurpose; } });
|
|
43
|
+
Object.defineProperty(exports, "getSymbolCallers", { enumerable: true, get: function () { return analyzers_1.getSymbolCallers; } });
|
|
44
|
+
// Convention analysis
|
|
45
|
+
var conventions_1 = require("./conventions");
|
|
46
|
+
Object.defineProperty(exports, "analyzeFileNaming", { enumerable: true, get: function () { return conventions_1.analyzeFileNaming; } });
|
|
47
|
+
Object.defineProperty(exports, "analyzeFunctionNaming", { enumerable: true, get: function () { return conventions_1.analyzeFunctionNaming; } });
|
|
48
|
+
Object.defineProperty(exports, "analyzeClassNaming", { enumerable: true, get: function () { return conventions_1.analyzeClassNaming; } });
|
|
49
|
+
Object.defineProperty(exports, "analyzeImportPatterns", { enumerable: true, get: function () { return conventions_1.analyzeImportPatterns; } });
|
|
50
|
+
Object.defineProperty(exports, "analyzeTestNaming", { enumerable: true, get: function () { return conventions_1.analyzeTestNaming; } });
|
|
51
|
+
Object.defineProperty(exports, "analyzeTestOrganization", { enumerable: true, get: function () { return conventions_1.analyzeTestOrganization; } });
|
|
52
|
+
Object.defineProperty(exports, "detectFrameworkPatterns", { enumerable: true, get: function () { return conventions_1.detectFrameworkPatterns; } });
|
|
53
|
+
Object.defineProperty(exports, "getFixTemplate", { enumerable: true, get: function () { return conventions_1.getFixTemplate; } });
|
|
54
|
+
// Symbol extraction
|
|
55
|
+
var symbols_1 = require("./symbols");
|
|
56
|
+
Object.defineProperty(exports, "extractModelSignature", { enumerable: true, get: function () { return symbols_1.extractModelSignature; } });
|
|
57
|
+
Object.defineProperty(exports, "extractFileSymbolsWithSignatures", { enumerable: true, get: function () { return symbols_1.extractFileSymbolsWithSignatures; } });
|
|
58
|
+
// Dependency stats
|
|
59
|
+
var depData_1 = require("./depData");
|
|
60
|
+
Object.defineProperty(exports, "buildDepStats", { enumerable: true, get: function () { return depData_1.buildDepStats; } });
|
|
61
|
+
// ── KB file emitters (pure content builders) ─────────────────
|
|
62
|
+
var architectureEmitter_1 = require("./architectureEmitter");
|
|
63
|
+
Object.defineProperty(exports, "buildArchitectureContent", { enumerable: true, get: function () { return architectureEmitter_1.buildArchitectureContent; } });
|
|
64
|
+
var mapEmitter_1 = require("./mapEmitter");
|
|
65
|
+
Object.defineProperty(exports, "buildMapContent", { enumerable: true, get: function () { return mapEmitter_1.buildMapContent; } });
|
|
66
|
+
var contextEmitter_1 = require("./contextEmitter");
|
|
67
|
+
Object.defineProperty(exports, "buildContextContent", { enumerable: true, get: function () { return contextEmitter_1.buildContextContent; } });
|
|
68
|
+
// ── KB orchestrator ──────────────────────────────────────────
|
|
69
|
+
var kbEmitter_1 = require("./kbEmitter");
|
|
70
|
+
Object.defineProperty(exports, "createKBEmitter", { enumerable: true, get: function () { return kbEmitter_1.createKBEmitter; } });
|
|
71
|
+
Object.defineProperty(exports, "KB_FILENAME", { enumerable: true, get: function () { return kbEmitter_1.KB_FILENAME; } });
|
|
72
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/kb/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,qBAAqB;AACrB,yCAAoF;AAA3E,2GAAA,cAAc,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AAE9D,eAAe;AACf,qCAAwF;AAA/E,4GAAA,iBAAiB,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AAAE,iGAAA,MAAM,OAAA;AAAE,yGAAA,cAAc,OAAA;AAGpE,sBAAsB;AACtB,6CAAyF;AAAhF,2GAAA,YAAY,OAAA;AAAE,kHAAA,mBAAmB,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AAGjE,oBAAoB;AACpB,yCAKqB;AAJnB,oHAAA,uBAAuB,OAAA;AACvB,8HAAA,iCAAiC,OAAA;AACjC,qHAAA,wBAAwB,OAAA;AACxB,6GAAA,gBAAgB,OAAA;AAIlB,wBAAwB;AACxB,6CAAsF;AAA7E,2HAAA,4BAA4B,OAAA;AAAE,sHAAA,uBAAuB,OAAA;AAG9D,iBAAiB;AACjB,yCAUqB;AATnB,sHAAA,yBAAyB,OAAA;AACzB,mHAAA,sBAAsB,OAAA;AACtB,iHAAA,oBAAoB,OAAA;AACpB,6GAAA,gBAAgB,OAAA;AAChB,iHAAA,oBAAoB,OAAA;AACpB,+GAAA,kBAAkB,OAAA;AAClB,gHAAA,mBAAmB,OAAA;AACnB,4GAAA,eAAe,OAAA;AACf,6GAAA,gBAAgB,OAAA;AAIlB,sBAAsB;AACtB,6CASuB;AARrB,gHAAA,iBAAiB,OAAA;AACjB,oHAAA,qBAAqB,OAAA;AACrB,iHAAA,kBAAkB,OAAA;AAClB,oHAAA,qBAAqB,OAAA;AACrB,gHAAA,iBAAiB,OAAA;AACjB,sHAAA,uBAAuB,OAAA;AACvB,sHAAA,uBAAuB,OAAA;AACvB,6GAAA,cAAc,OAAA;AAGhB,oBAAoB;AACpB,qCAAoF;AAA3E,gHAAA,qBAAqB,OAAA;AAAE,2HAAA,gCAAgC,OAAA;AAGhE,mBAAmB;AACnB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AAEtB,gEAAgE;AAEhE,6DAAiE;AAAxD,+HAAA,wBAAwB,OAAA;AAGjC,2CAA+C;AAAtC,6GAAA,eAAe,OAAA;AAGxB,mDAAuD;AAA9C,qHAAA,mBAAmB,OAAA;AAG5B,gEAAgE;AAEhE,yCAA2D;AAAlD,4GAAA,eAAe,OAAA;AAAE,wGAAA,WAAW,OAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KB Emitter — orchestrates generation of a single `kb.md` file.
|
|
3
|
+
*
|
|
4
|
+
* Implements the Emitter interface. Consumes an AnalysisModel and writes
|
|
5
|
+
* a combined KB file via the EmitterHost abstraction.
|
|
6
|
+
*/
|
|
7
|
+
import type { Emitter } from '../emitter';
|
|
8
|
+
import type { LoadedGrammars } from './symbols';
|
|
9
|
+
export interface KBEmitterOptions {
|
|
10
|
+
/** Pre-loaded tree-sitter grammars (optional). */
|
|
11
|
+
grammars?: LoadedGrammars | null;
|
|
12
|
+
}
|
|
13
|
+
/** The default KB output filename. */
|
|
14
|
+
export declare const KB_FILENAME = "kb.md";
|
|
15
|
+
/**
|
|
16
|
+
* Create a KB emitter that generates a single `kb.md` knowledge base file.
|
|
17
|
+
*
|
|
18
|
+
* @param kbOptions Optional KB-specific options (e.g. tree-sitter grammars).
|
|
19
|
+
*/
|
|
20
|
+
export declare function createKBEmitter(kbOptions?: KBEmitterOptions): Emitter;
|
|
21
|
+
//# sourceMappingURL=kbEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kbEmitter.d.ts","sourceRoot":"","sources":["../../src/kb/kbEmitter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAA2B,MAAM,YAAY,CAAC;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAUhD,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAClC;AAED,sCAAsC;AACtC,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAoGrE"}
|