aspectcode 0.2.2 → 0.3.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/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/package.json +11 -3
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EmitterHost — abstraction for file I/O used by all emitters.
|
|
3
|
+
*
|
|
4
|
+
* The emitter layer MUST NOT depend on `vscode`. This interface lets
|
|
5
|
+
* emitters read/write files and query paths through a host that can be
|
|
6
|
+
* backed by Node.js `fs` (CLI) or VS Code workspace FS (extension).
|
|
7
|
+
*/
|
|
8
|
+
export interface EmitterHost {
|
|
9
|
+
/** Read a file as UTF-8 text. Throws if the file does not exist. */
|
|
10
|
+
readFile(filePath: string): Promise<string>;
|
|
11
|
+
/** Write UTF-8 text to a file, creating parent directories as needed. */
|
|
12
|
+
writeFile(filePath: string, content: string): Promise<void>;
|
|
13
|
+
/** Check whether a file or directory exists. */
|
|
14
|
+
exists(filePath: string): Promise<boolean>;
|
|
15
|
+
/** Recursively create directories (like `mkdir -p`). */
|
|
16
|
+
mkdirp(dirPath: string): Promise<void>;
|
|
17
|
+
/** Rename or move a file or directory. Must be same filesystem/drive. */
|
|
18
|
+
rename(fromPath: string, toPath: string): Promise<void>;
|
|
19
|
+
/** Remove a file or directory recursively (like `rm -rf`). */
|
|
20
|
+
rmrf(targetPath: string): Promise<void>;
|
|
21
|
+
/** Join path segments (platform-aware). */
|
|
22
|
+
join(...segments: string[]): string;
|
|
23
|
+
/** Return a relative path from `from` to `to` (forward-slash normalized). */
|
|
24
|
+
relative(from: string, to: string): string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create an EmitterHost backed by the Node.js `fs` module.
|
|
28
|
+
* Suitable for CLI usage and tests.
|
|
29
|
+
*/
|
|
30
|
+
export declare function createNodeEmitterHost(): EmitterHost;
|
|
31
|
+
//# sourceMappingURL=host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,MAAM,WAAW,WAAW;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C,yEAAyE;IACzE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D,gDAAgD;IAChD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3C,wDAAwD;IACxD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC,yEAAyE;IACzE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD,8DAA8D;IAC9D,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC,2CAA2C;IAC3C,IAAI,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAEpC,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5C;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,CAwCnD"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* EmitterHost — abstraction for file I/O used by all emitters.
|
|
4
|
+
*
|
|
5
|
+
* The emitter layer MUST NOT depend on `vscode`. This interface lets
|
|
6
|
+
* emitters read/write files and query paths through a host that can be
|
|
7
|
+
* backed by Node.js `fs` (CLI) or VS Code workspace FS (extension).
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.createNodeEmitterHost = createNodeEmitterHost;
|
|
44
|
+
const fs = __importStar(require("fs"));
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
// ── Node.js implementation ───────────────────────────────────
|
|
47
|
+
/**
|
|
48
|
+
* Create an EmitterHost backed by the Node.js `fs` module.
|
|
49
|
+
* Suitable for CLI usage and tests.
|
|
50
|
+
*/
|
|
51
|
+
function createNodeEmitterHost() {
|
|
52
|
+
return {
|
|
53
|
+
async readFile(filePath) {
|
|
54
|
+
return fs.promises.readFile(filePath, 'utf-8');
|
|
55
|
+
},
|
|
56
|
+
async writeFile(filePath, content) {
|
|
57
|
+
await fs.promises.mkdir(path.dirname(filePath), { recursive: true });
|
|
58
|
+
await fs.promises.writeFile(filePath, content, 'utf-8');
|
|
59
|
+
},
|
|
60
|
+
async exists(filePath) {
|
|
61
|
+
try {
|
|
62
|
+
await fs.promises.access(filePath);
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
async mkdirp(dirPath) {
|
|
70
|
+
await fs.promises.mkdir(dirPath, { recursive: true });
|
|
71
|
+
},
|
|
72
|
+
async rename(fromPath, toPath) {
|
|
73
|
+
await fs.promises.rename(fromPath, toPath);
|
|
74
|
+
},
|
|
75
|
+
async rmrf(targetPath) {
|
|
76
|
+
await fs.promises.rm(targetPath, { recursive: true, force: true });
|
|
77
|
+
},
|
|
78
|
+
join(...segments) {
|
|
79
|
+
return path.join(...segments);
|
|
80
|
+
},
|
|
81
|
+
relative(from, to) {
|
|
82
|
+
return path.relative(from, to).replace(/\\/g, '/');
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCH,sDAwCC;AA7ED,uCAAyB;AACzB,2CAA6B;AA8B7B,gEAAgE;AAEhE;;;GAGG;AACH,SAAgB,qBAAqB;IACnC,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,QAAgB;YAC7B,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,OAAe;YAC/C,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACrE,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,QAAgB;YAC3B,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACnC,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,OAAe;YAC1B,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,MAAc;YAC3C,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,UAAkB;YAC3B,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,GAAG,QAAkB;YACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,QAAQ,CAAC,IAAY,EAAE,EAAU;YAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @aspectcode/emitters — public API surface.
|
|
3
|
+
*
|
|
4
|
+
* Artifact emitters that consume an AnalysisModel and write KB files,
|
|
5
|
+
* instruction files, and manifests. No vscode dependency.
|
|
6
|
+
*/
|
|
7
|
+
export type { EmitterHost } from './host';
|
|
8
|
+
export { createNodeEmitterHost } from './host';
|
|
9
|
+
export type { Emitter, EmitResult, EmitOptions, InstructionsMode, } from './emitter';
|
|
10
|
+
export type { EmitReport } from './report';
|
|
11
|
+
export type { Manifest, ManifestStats } from './manifest';
|
|
12
|
+
export { buildManifest } from './manifest';
|
|
13
|
+
export * from './kb';
|
|
14
|
+
export { generateCanonicalContentForMode, generateCanonicalContentSafe, generateCanonicalContentPermissive, } from './instructions/content';
|
|
15
|
+
export { createInstructionsEmitter } from './instructions/instructionsEmitter';
|
|
16
|
+
export type { AiToolId } from './instructions/formats';
|
|
17
|
+
export { AI_TOOL_DETECTION_PATHS } from './instructions/formats';
|
|
18
|
+
import type { AnalysisModel } from '@aspectcode/core';
|
|
19
|
+
import type { EmitterHost } from './host';
|
|
20
|
+
import type { EmitOptions } from './emitter';
|
|
21
|
+
import type { EmitReport } from './report';
|
|
22
|
+
/**
|
|
23
|
+
* Run all built-in emitters in sequence.
|
|
24
|
+
* Returns the combined list of files written.
|
|
25
|
+
*/
|
|
26
|
+
export declare function runEmitters(model: AnalysisModel, host: EmitterHost, options: EmitOptions): Promise<EmitReport>;
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAI/C,YAAY,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAEnB,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI3C,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI3C,cAAc,MAAM,CAAC;AAIrB,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,EAC5B,kCAAkC,GACnC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAIjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAuDrB"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @aspectcode/emitters — public API surface.
|
|
4
|
+
*
|
|
5
|
+
* Artifact emitters that consume an AnalysisModel and write KB files,
|
|
6
|
+
* instruction files, and manifests. No vscode dependency.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
25
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
26
|
+
};
|
|
27
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
28
|
+
var ownKeys = function(o) {
|
|
29
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
30
|
+
var ar = [];
|
|
31
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
32
|
+
return ar;
|
|
33
|
+
};
|
|
34
|
+
return ownKeys(o);
|
|
35
|
+
};
|
|
36
|
+
return function (mod) {
|
|
37
|
+
if (mod && mod.__esModule) return mod;
|
|
38
|
+
var result = {};
|
|
39
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
40
|
+
__setModuleDefault(result, mod);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
})();
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.AI_TOOL_DETECTION_PATHS = exports.createInstructionsEmitter = exports.generateCanonicalContentPermissive = exports.generateCanonicalContentSafe = exports.generateCanonicalContentForMode = exports.buildManifest = exports.createNodeEmitterHost = void 0;
|
|
46
|
+
exports.runEmitters = runEmitters;
|
|
47
|
+
var host_1 = require("./host");
|
|
48
|
+
Object.defineProperty(exports, "createNodeEmitterHost", { enumerable: true, get: function () { return host_1.createNodeEmitterHost; } });
|
|
49
|
+
var manifest_1 = require("./manifest");
|
|
50
|
+
Object.defineProperty(exports, "buildManifest", { enumerable: true, get: function () { return manifest_1.buildManifest; } });
|
|
51
|
+
// ── KB helpers ───────────────────────────────────────────────
|
|
52
|
+
__exportStar(require("./kb"), exports);
|
|
53
|
+
// ── Instructions ────────────────────────────────────────────
|
|
54
|
+
var content_1 = require("./instructions/content");
|
|
55
|
+
Object.defineProperty(exports, "generateCanonicalContentForMode", { enumerable: true, get: function () { return content_1.generateCanonicalContentForMode; } });
|
|
56
|
+
Object.defineProperty(exports, "generateCanonicalContentSafe", { enumerable: true, get: function () { return content_1.generateCanonicalContentSafe; } });
|
|
57
|
+
Object.defineProperty(exports, "generateCanonicalContentPermissive", { enumerable: true, get: function () { return content_1.generateCanonicalContentPermissive; } });
|
|
58
|
+
var instructionsEmitter_1 = require("./instructions/instructionsEmitter");
|
|
59
|
+
Object.defineProperty(exports, "createInstructionsEmitter", { enumerable: true, get: function () { return instructionsEmitter_1.createInstructionsEmitter; } });
|
|
60
|
+
var formats_1 = require("./instructions/formats");
|
|
61
|
+
Object.defineProperty(exports, "AI_TOOL_DETECTION_PATHS", { enumerable: true, get: function () { return formats_1.AI_TOOL_DETECTION_PATHS; } });
|
|
62
|
+
const core_1 = require("@aspectcode/core");
|
|
63
|
+
const transaction_1 = require("./transaction");
|
|
64
|
+
/**
|
|
65
|
+
* Run all built-in emitters in sequence.
|
|
66
|
+
* Returns the combined list of files written.
|
|
67
|
+
*/
|
|
68
|
+
async function runEmitters(model, host, options) {
|
|
69
|
+
const _generatedAt = options.generatedAt ?? new Date().toISOString();
|
|
70
|
+
const outDir = options.outDir ?? options.workspaceRoot;
|
|
71
|
+
const opts = { ...options, generatedAt: _generatedAt, outDir };
|
|
72
|
+
const wrote = [];
|
|
73
|
+
const skipped = [];
|
|
74
|
+
// ── KB generation (opt-in) ────────────────────────────
|
|
75
|
+
if (opts.generateKb) {
|
|
76
|
+
const tx = new transaction_1.GenerationTransaction(host);
|
|
77
|
+
const txHost = tx.host;
|
|
78
|
+
const { createKBEmitter } = await Promise.resolve().then(() => __importStar(require('./kb/kbEmitter')));
|
|
79
|
+
const kb = createKBEmitter();
|
|
80
|
+
await kb.emit(model, txHost, opts);
|
|
81
|
+
await tx.commit();
|
|
82
|
+
wrote.push(...tx.getWrites().map((w) => ({ path: w.finalPath, bytes: w.bytes })));
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
skipped.push({ id: 'kb', reason: 'KB generation not enabled (use --kb)' });
|
|
86
|
+
}
|
|
87
|
+
// ── Instructions (AGENTS.md — full file ownership) ─────────
|
|
88
|
+
if (opts.instructionsMode !== 'off') {
|
|
89
|
+
const { createInstructionsEmitter } = await Promise.resolve().then(() => __importStar(require('./instructions/instructionsEmitter')));
|
|
90
|
+
const instructions = createInstructionsEmitter();
|
|
91
|
+
const recordingHost = {
|
|
92
|
+
...host,
|
|
93
|
+
writeFile: async (filePath, content) => {
|
|
94
|
+
const bytes = Buffer.byteLength(content, 'utf8');
|
|
95
|
+
await host.writeFile(filePath, content);
|
|
96
|
+
wrote.push({ path: filePath, bytes });
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
await instructions.emit(model, recordingHost, opts);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
skipped.push({ id: 'instructions', reason: 'Instructions mode is off' });
|
|
103
|
+
}
|
|
104
|
+
const stats = (0, core_1.computeModelStats)(model, 10);
|
|
105
|
+
return {
|
|
106
|
+
schemaVersion: model.schemaVersion,
|
|
107
|
+
wrote,
|
|
108
|
+
skipped: skipped.length > 0 ? skipped : undefined,
|
|
109
|
+
stats: {
|
|
110
|
+
files: stats.fileCount,
|
|
111
|
+
edges: stats.edgeCount,
|
|
112
|
+
hubsTop: stats.topHubs,
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDH,kCA2DC;AA3GD,+BAA+C;AAAtC,6GAAA,qBAAqB,OAAA;AAgB9B,uCAA2C;AAAlC,yGAAA,aAAa,OAAA;AAEtB,gEAAgE;AAEhE,uCAAqB;AAErB,+DAA+D;AAE/D,kDAIgC;AAH9B,0HAAA,+BAA+B,OAAA;AAC/B,uHAAA,4BAA4B,OAAA;AAC5B,6HAAA,kCAAkC,OAAA;AAGpC,0EAA+E;AAAtE,gIAAA,yBAAyB,OAAA;AAGlC,kDAAiE;AAAxD,kHAAA,uBAAuB,OAAA;AAKhC,2CAAqD;AAIrD,+CAAsD;AAEtD;;;GAGG;AACI,KAAK,UAAU,WAAW,CAC/B,KAAoB,EACpB,IAAiB,EACjB,OAAoB;IAEpB,MAAM,YAAY,GAChB,OAAO,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;IACvD,MAAM,IAAI,GAAgB,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAE5E,MAAM,KAAK,GAA2C,EAAE,CAAC;IACzD,MAAM,OAAO,GAA0C,EAAE,CAAC;IAE1D,yDAAyD;IACzD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,EAAE,GAAG,IAAI,mCAAqB,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC;QAEvB,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAC;QAC3D,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;QAC7B,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAEnC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,8DAA8D;IAC9D,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;QACpC,MAAM,EAAE,yBAAyB,EAAE,GAAG,wDAAa,oCAAoC,GAAC,CAAC;QACzF,MAAM,YAAY,GAAG,yBAAyB,EAAE,CAAC;QAEjD,MAAM,aAAa,GAAgB;YACjC,GAAG,IAAI;YACP,SAAS,EAAE,KAAK,EAAE,QAAgB,EAAE,OAAe,EAAE,EAAE;gBACrD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACjD,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACxC,CAAC;SACF,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,wBAAiB,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE3C,OAAO;QACL,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,KAAK;QACL,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACjD,KAAK,EAAE;YACL,KAAK,EAAE,KAAK,CAAC,SAAS;YACtB,KAAK,EAAE,KAAK,CAAC,SAAS;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { InstructionsMode } from '../emitter';
|
|
2
|
+
/**
|
|
3
|
+
* Generates the canonical instruction content.
|
|
4
|
+
*
|
|
5
|
+
* When `kbAvailable` is true, the content references the `kb.md` knowledge
|
|
6
|
+
* base file. When false, it provides standalone rules and guidelines only.
|
|
7
|
+
*
|
|
8
|
+
* All assistant-specific exports are derived from this single source.
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateCanonicalContentForMode(mode: InstructionsMode, kbAvailable?: boolean): string;
|
|
11
|
+
export declare function generateCanonicalContentSafe(): string;
|
|
12
|
+
export declare function generateCanonicalContentPermissive(): string;
|
|
13
|
+
export declare function generateCanonicalContentSafeKB(): string;
|
|
14
|
+
export declare function generateCanonicalContentPermissiveKB(): string;
|
|
15
|
+
//# sourceMappingURL=content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/instructions/content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAUnD;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,gBAAgB,EACtB,WAAW,UAAQ,GAClB,MAAM,CAOR;AAMD,wBAAgB,4BAA4B,IAAI,MAAM,CAsDrD;AAED,wBAAgB,kCAAkC,IAAI,MAAM,CA4C3D;AAMD,wBAAgB,8BAA8B,IAAI,MAAM,CAkGvD;AAED,wBAAgB,oCAAoC,IAAI,MAAM,CAoD7D"}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateCanonicalContentForMode = generateCanonicalContentForMode;
|
|
4
|
+
exports.generateCanonicalContentSafe = generateCanonicalContentSafe;
|
|
5
|
+
exports.generateCanonicalContentPermissive = generateCanonicalContentPermissive;
|
|
6
|
+
exports.generateCanonicalContentSafeKB = generateCanonicalContentSafeKB;
|
|
7
|
+
exports.generateCanonicalContentPermissiveKB = generateCanonicalContentPermissiveKB;
|
|
8
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
9
|
+
// Canonical instruction content - all exports derive from this
|
|
10
|
+
//
|
|
11
|
+
// Two tiers:
|
|
12
|
+
// 1. Rules-only (no KB references) — default when kb.md is not generated
|
|
13
|
+
// 2. KB-aware (references kb.md) — used when generateKb is enabled
|
|
14
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
15
|
+
/**
|
|
16
|
+
* Generates the canonical instruction content.
|
|
17
|
+
*
|
|
18
|
+
* When `kbAvailable` is true, the content references the `kb.md` knowledge
|
|
19
|
+
* base file. When false, it provides standalone rules and guidelines only.
|
|
20
|
+
*
|
|
21
|
+
* All assistant-specific exports are derived from this single source.
|
|
22
|
+
*/
|
|
23
|
+
function generateCanonicalContentForMode(mode, kbAvailable = false) {
|
|
24
|
+
if (mode === 'permissive') {
|
|
25
|
+
return kbAvailable
|
|
26
|
+
? generateCanonicalContentPermissiveKB()
|
|
27
|
+
: generateCanonicalContentPermissive();
|
|
28
|
+
}
|
|
29
|
+
return kbAvailable ? generateCanonicalContentSafeKB() : generateCanonicalContentSafe();
|
|
30
|
+
}
|
|
31
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
32
|
+
// Rules-only content (no KB references)
|
|
33
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
34
|
+
function generateCanonicalContentSafe() {
|
|
35
|
+
return `## Aspect Code — Coding Guidelines
|
|
36
|
+
|
|
37
|
+
**Aspect Code** provides coding guidelines to help you make safer, more informed code changes.
|
|
38
|
+
|
|
39
|
+
## Golden Rules
|
|
40
|
+
|
|
41
|
+
1. **Read before you write.** Open and read the relevant files before multi-file edits.
|
|
42
|
+
2. **Think step-by-step.** Break complex tasks into smaller steps; reason through each before coding.
|
|
43
|
+
3. **Prefer minimal, local changes.** Small patches are safer than large refactors, especially in widely-imported files.
|
|
44
|
+
4. **Never truncate code.** Don't use placeholders like \`// ...rest\` or \`# existing code...\`. Provide complete implementations.
|
|
45
|
+
5. **Don't touch tests, migrations, or third-party code** unless the user explicitly asks you to.
|
|
46
|
+
6. **Never remove referenced logic.** Check all callers before deleting a function, class, or symbol.
|
|
47
|
+
7. **Understand blast radius.** Trace relationships and dependents before refactoring.
|
|
48
|
+
8. **Follow existing naming patterns.** Match the project's existing naming patterns and import styles.
|
|
49
|
+
9. **When unsure, go small.** Propose a minimal, reversible change instead of a sweeping refactor.
|
|
50
|
+
|
|
51
|
+
## Recommended Workflow
|
|
52
|
+
|
|
53
|
+
1. **Understand the task.** Parse requirements; note which files or endpoints are involved.
|
|
54
|
+
2. **Find relevant code.** Locate data models, symbols, and naming conventions.
|
|
55
|
+
3. **Understand relationships.** See which files are commonly edited together and how they connect.
|
|
56
|
+
4. **Trace impact.** Review callers and dependents to gauge the blast radius of changes.
|
|
57
|
+
5. **Gather evidence.** If behavior is unclear, add targeted logging or traces to confirm assumptions.
|
|
58
|
+
6. **Make minimal edits.** Implement the smallest change that solves the task; run tests.
|
|
59
|
+
|
|
60
|
+
## When Changing Code
|
|
61
|
+
|
|
62
|
+
- **Read the COMPLETE file** before modifying it. Preserve all existing exports/functions.
|
|
63
|
+
- **Add, don't reorganize.** Unless the task says "refactor", avoid moving code around.
|
|
64
|
+
- **Check widely-imported files** before editing them — changes ripple to all dependents.
|
|
65
|
+
- **Avoid renaming** widely-used symbols without updating all callers.
|
|
66
|
+
- **No new dependency cycles.** Before adding an import, verify it won't create a circular dependency.
|
|
67
|
+
- **Match conventions.** Follow existing naming patterns (naming, imports, frameworks).
|
|
68
|
+
- **Prefer small, localized changes** in the most relevant module.
|
|
69
|
+
|
|
70
|
+
## When Things Go Wrong
|
|
71
|
+
|
|
72
|
+
If you encounter repeated errors or unexpected behavior:
|
|
73
|
+
|
|
74
|
+
1. **Use git** to see what changed: \`git diff\`, \`git status\`
|
|
75
|
+
2. **Restore lost code** with \`git checkout -- <file>\` if needed
|
|
76
|
+
3. **Re-read the complete file** before making more changes
|
|
77
|
+
4. **Trace data flows** to understand execution paths
|
|
78
|
+
5. **Run actual tests** to verify behavior before assuming something works
|
|
79
|
+
|
|
80
|
+
## General Guidelines
|
|
81
|
+
|
|
82
|
+
- **Start with the most relevant file.** Understand the area before changing it.
|
|
83
|
+
- **Check widely-imported modules.** Know which files have many dependents before editing.
|
|
84
|
+
- **Follow existing conventions.** Match existing naming patterns and coding styles exactly.
|
|
85
|
+
- **Minimal changes.** Make the smallest change that solves the problem correctly.
|
|
86
|
+
- **Acknowledge risk.** If editing a widely-imported file, note the elevated risk.
|
|
87
|
+
`.trim();
|
|
88
|
+
}
|
|
89
|
+
function generateCanonicalContentPermissive() {
|
|
90
|
+
return `## Aspect Code — Coding Guidelines
|
|
91
|
+
|
|
92
|
+
**Aspect Code** provides coding guidelines to help you make informed code changes.
|
|
93
|
+
|
|
94
|
+
Use these guidelines as orientation — not as constraints.
|
|
95
|
+
|
|
96
|
+
### Operating Rules (Pragmatic, Not Rigid)
|
|
97
|
+
|
|
98
|
+
- Read relevant code before large edits; understand boundaries, flows, and ownership
|
|
99
|
+
- If your change creates a conflict with existing structure, either:
|
|
100
|
+
- update the code in a way that keeps the existing intent valid, or
|
|
101
|
+
- explicitly state the mismatch and proceed with a coherent new structure
|
|
102
|
+
|
|
103
|
+
### You May (Explicitly Allowed)
|
|
104
|
+
|
|
105
|
+
- Refactor for clarity: extract functions, split files, consolidate duplicates
|
|
106
|
+
- Reorganize modules/folders when it improves cohesion and discoverability
|
|
107
|
+
- Touch multiple files when the change is conceptually one improvement
|
|
108
|
+
- Change public/internal APIs when it simplifies the design (with follow-through updates)
|
|
109
|
+
- Rename symbols for consistency (types, functions, modules) and update references
|
|
110
|
+
|
|
111
|
+
### You Should
|
|
112
|
+
|
|
113
|
+
- Explain the new structure in terms of the existing architecture
|
|
114
|
+
- Keep changes "conceptually tight": one goal, end-to-end, fully wired
|
|
115
|
+
- Update call sites and imports immediately when you move/rename things
|
|
116
|
+
- Prefer simplification over novelty; remove unnecessary layers when justified
|
|
117
|
+
- Validate that referenced symbols still exist and are still reachable from call sites
|
|
118
|
+
|
|
119
|
+
### Avoid
|
|
120
|
+
|
|
121
|
+
- Deleting or renaming referenced symbols without updating all usages
|
|
122
|
+
- Unnecessary scope creep (adding features unrelated to the request)
|
|
123
|
+
- Blind rewrites that ignore the project's dependency structure and entry points
|
|
124
|
+
- "Rebuild everything" refactors when a targeted restructure achieves the goal
|
|
125
|
+
- Cosmetic churn that obscures meaningful changes
|
|
126
|
+
|
|
127
|
+
## Suggested Workflow
|
|
128
|
+
|
|
129
|
+
1. Read the relevant code for orientation.
|
|
130
|
+
2. Implement the change end-to-end.
|
|
131
|
+
3. Run tests / build.
|
|
132
|
+
`.trim();
|
|
133
|
+
}
|
|
134
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
135
|
+
// KB-aware content (references kb.md)
|
|
136
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
137
|
+
function generateCanonicalContentSafeKB() {
|
|
138
|
+
return `## Aspect Code Knowledge Base
|
|
139
|
+
|
|
140
|
+
**Aspect Code** is a static-analysis tool that generates a Knowledge Base (KB) for your codebase. The KB is in \`kb.md\` at the workspace root and contains these sections:
|
|
141
|
+
|
|
142
|
+
| Section | Purpose |
|
|
143
|
+
|---------|---------|
|
|
144
|
+
| **Architecture** | **Read first.** High-risk hubs, directory layout, entry points—the "Do Not Break" zones |
|
|
145
|
+
| **Map** | Data models with signatures, symbol index, naming conventions |
|
|
146
|
+
| **Context** | Module clusters (co-edited files), external integrations, data flow paths |
|
|
147
|
+
|
|
148
|
+
**Key architectural intelligence:**
|
|
149
|
+
- **High-Risk Hubs** in the Architecture section: Files with many dependents—changes here ripple widely
|
|
150
|
+
- **Entry Points** in the Architecture section: HTTP handlers, CLI commands, event listeners
|
|
151
|
+
- **External Integrations** in the Context section: API clients, database connections, message queues
|
|
152
|
+
- **Data Models** in the Map section: ORM models, dataclasses, TypeScript interfaces with signatures
|
|
153
|
+
|
|
154
|
+
Read the relevant sections of \`kb.md\` **before** making multi-file changes.
|
|
155
|
+
|
|
156
|
+
## Golden Rules
|
|
157
|
+
|
|
158
|
+
1. **Read the KB as a map, not a checklist.** Use \`kb.md\` to understand architecture, not as a to-do list.
|
|
159
|
+
2. **Read before you write.** Open the relevant KB sections before multi-file edits.
|
|
160
|
+
3. **Check architecture first.** Review the Architecture section to understand high-risk zones before coding.
|
|
161
|
+
4. **Think step-by-step.** Break complex tasks into smaller steps; reason through each before coding.
|
|
162
|
+
5. **Prefer minimal, local changes.** Small patches are safer than large refactors, especially in hub files.
|
|
163
|
+
6. **Never truncate code.** Don't use placeholders like \`// ...rest\` or \`# existing code...\`. Provide complete implementations.
|
|
164
|
+
7. **Don't touch tests, migrations, or third-party code** unless the user explicitly asks you to.
|
|
165
|
+
8. **Never remove referenced logic.** If a symbol appears in the Map section, check all callers before deleting.
|
|
166
|
+
9. **Understand blast radius.** Use the Context and Map sections to trace relationships before refactors.
|
|
167
|
+
10. **Follow naming patterns in the Map section.** Match the project's existing naming patterns and import styles.
|
|
168
|
+
11. **When unsure, go small.** Propose a minimal, reversible change instead of a sweeping refactor.
|
|
169
|
+
|
|
170
|
+
## Recommended Workflow
|
|
171
|
+
|
|
172
|
+
1. **Understand the task.** Parse requirements; note which files or endpoints are involved.
|
|
173
|
+
2. **Check architecture.** Open \`kb.md\` → review the Architecture section for high-risk hubs and entry points.
|
|
174
|
+
3. **Find relevant code.** Review the Map section → locate data models, symbols, and naming conventions.
|
|
175
|
+
4. **Understand relationships.** Review the Context section → see module clusters (co-edited files) and integrations.
|
|
176
|
+
5. **Trace impact.** Review "Called by" in the Map section to gauge the blast radius of changes.
|
|
177
|
+
6. **Gather evidence.** If behavior is unclear, add targeted logging or traces to confirm assumptions.
|
|
178
|
+
7. **Make minimal edits.** Implement the smallest change that solves the task; run tests.
|
|
179
|
+
|
|
180
|
+
## When Changing Code
|
|
181
|
+
|
|
182
|
+
- **Read the COMPLETE file** before modifying it. Preserve all existing exports/functions.
|
|
183
|
+
- **Add, don't reorganize.** Unless the task says "refactor", avoid moving code around.
|
|
184
|
+
- **Check high-risk hubs** (Architecture section) before editing widely-imported files.
|
|
185
|
+
- **Avoid renaming** widely-used symbols listed in the Map section without updating all callers.
|
|
186
|
+
- **No new cycles.** Before adding an import, verify it won't create a circular dependency (Architecture section).
|
|
187
|
+
- **Match conventions.** Follow naming patterns shown in the Map section (naming, imports, frameworks).
|
|
188
|
+
- **Check module clusters** (Context section) to understand which files are commonly edited together.
|
|
189
|
+
- **Prefer small, localized changes** in the most relevant app module identified by the KB.
|
|
190
|
+
- **Use the Architecture, Map, and Context sections** to locate the smallest, safest place to make a change.
|
|
191
|
+
|
|
192
|
+
## How to Use kb.md
|
|
193
|
+
|
|
194
|
+
| Section | When to Open | What to Look For |
|
|
195
|
+
|---------|--------------|------------------|
|
|
196
|
+
| Architecture | **First, always** | High-risk hubs, directory layout, entry points, circular dependencies |
|
|
197
|
+
| Map | Before modifying a function | Data models with signatures, symbol index, naming conventions |
|
|
198
|
+
| Context | Before architectural changes | Module clusters, external integrations, data flow patterns |
|
|
199
|
+
|
|
200
|
+
### Quick Reference
|
|
201
|
+
|
|
202
|
+
- **High-risk hubs** → Files with 3+ dependents listed in the Architecture section—changes ripple widely
|
|
203
|
+
- **Entry points** → HTTP handlers, CLI commands, event listeners in the Architecture section
|
|
204
|
+
- **External integrations** → HTTP clients, DB connections, message queues in the Context section
|
|
205
|
+
- **Data models** → ORM models, dataclasses, interfaces with signatures in the Map section
|
|
206
|
+
- **Module clusters** → Files commonly edited together in the Context section
|
|
207
|
+
- **High-impact symbol** → 5+ callers in the Map section "Called by" column
|
|
208
|
+
|
|
209
|
+
## When Things Go Wrong
|
|
210
|
+
|
|
211
|
+
If you encounter repeated errors or unexpected behavior:
|
|
212
|
+
|
|
213
|
+
1. **Use git** to see what changed: \`git diff\`, \`git status\`
|
|
214
|
+
2. **Restore lost code** with \`git checkout -- <file>\` if needed
|
|
215
|
+
3. **Re-read the complete file** before making more changes
|
|
216
|
+
4. **Trace data flows** using the Context section to understand execution paths
|
|
217
|
+
5. **Run actual tests** to verify behavior before assuming something works
|
|
218
|
+
6. **Check module clusters** in the Context section for related files that may need updates
|
|
219
|
+
|
|
220
|
+
## General Guidelines
|
|
221
|
+
|
|
222
|
+
- **Read kb.md first.** Before making changes, consult the relevant knowledge base sections.
|
|
223
|
+
- **Start with the Architecture section.** Understand high-risk hubs and entry points.
|
|
224
|
+
- **Check hub modules.** Know which files have many dependents before editing.
|
|
225
|
+
- **Follow Map section conventions.** Match existing naming patterns and coding styles exactly.
|
|
226
|
+
- **Minimal changes.** Make the smallest change that solves the problem correctly.
|
|
227
|
+
- **Acknowledge risk.** If editing a hub module or high-impact file, note the elevated risk.
|
|
228
|
+
|
|
229
|
+
## Section Headers (Pattern-Matching)
|
|
230
|
+
|
|
231
|
+
**Architecture:** \`## High-Risk Architectural Hubs\`, \`## Directory Layout\`, \`## Entry Points\`, \`## Circular Dependencies\`
|
|
232
|
+
**Map:** \`## Data Models\` (with signatures), \`## Symbol Index\` (with Called By), \`## Conventions\`
|
|
233
|
+
**Context:** \`## Module Clusters\` (co-edited files), \`## External Integrations\`, \`## Critical Flows\`
|
|
234
|
+
`.trim();
|
|
235
|
+
}
|
|
236
|
+
function generateCanonicalContentPermissiveKB() {
|
|
237
|
+
return `## Aspect Code Knowledge Base
|
|
238
|
+
|
|
239
|
+
**Aspect Code** is a static-analysis tool that generates a Knowledge Base (KB) for your codebase. The KB is in \`kb.md\` at the workspace root and contains these sections:
|
|
240
|
+
|
|
241
|
+
| Section | Purpose |
|
|
242
|
+
|---------|---------|
|
|
243
|
+
| **Architecture** | Hubs, directory layout, entry points |
|
|
244
|
+
| **Map** | Data models with signatures, symbol index, naming conventions |
|
|
245
|
+
| **Context** | Module clusters (co-edited files), external integrations, data flow paths |
|
|
246
|
+
|
|
247
|
+
Use the Knowledge Base (KB) as orientation and ground truth for architecture and dependencies—not as a constraint.
|
|
248
|
+
|
|
249
|
+
### Operating Rules (KB-First, Not KB-Locked)
|
|
250
|
+
|
|
251
|
+
- Read \`kb.md\` before large edits; use it to understand boundaries, flows, and ownership
|
|
252
|
+
- Treat the KB as the source of "what connects to what" (entry points, hubs, key types)
|
|
253
|
+
- If your change conflicts with the KB, either:
|
|
254
|
+
- update the code in a way that keeps the KB's intent valid, or
|
|
255
|
+
- explicitly state the mismatch and proceed with a coherent new structure
|
|
256
|
+
|
|
257
|
+
### You May (Explicitly Allowed)
|
|
258
|
+
|
|
259
|
+
- Refactor for clarity: extract functions, split files, consolidate duplicates
|
|
260
|
+
- Reorganize modules/folders when it improves cohesion and discoverability
|
|
261
|
+
- Touch multiple files when the change is conceptually one improvement
|
|
262
|
+
- Change public/internal APIs when it simplifies the design (with follow-through updates)
|
|
263
|
+
- Edit high-risk hubs when needed—do it deliberately, with dependency awareness
|
|
264
|
+
- Rename symbols for consistency (types, functions, modules) and update references
|
|
265
|
+
|
|
266
|
+
### You Should
|
|
267
|
+
|
|
268
|
+
- Explain the new structure in terms of the existing architecture
|
|
269
|
+
- Keep changes "conceptually tight": one goal, end-to-end, fully wired
|
|
270
|
+
- Update call sites and imports immediately when you move/rename things
|
|
271
|
+
- Prefer simplification over novelty; remove unnecessary layers when justified
|
|
272
|
+
- Validate that referenced symbols still exist and are still reachable from call sites
|
|
273
|
+
|
|
274
|
+
### Avoid
|
|
275
|
+
|
|
276
|
+
- Deleting or renaming referenced symbols without updating all usages
|
|
277
|
+
- Unnecessary scope creep (adding features unrelated to the request)
|
|
278
|
+
- Blind rewrites that ignore \`kb.md\`'s dependency map and entry points
|
|
279
|
+
- "Rebuild everything" refactors when a targeted restructure achieves the goal
|
|
280
|
+
- Cosmetic churn that obscures meaningful changes
|
|
281
|
+
|
|
282
|
+
## Suggested Workflow
|
|
283
|
+
|
|
284
|
+
1. Skim the relevant sections of \`kb.md\` for orientation.
|
|
285
|
+
2. Implement the change end-to-end.
|
|
286
|
+
3. Run tests / build.
|
|
287
|
+
`.trim();
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/instructions/content.ts"],"names":[],"mappings":";;AAkBA,0EAUC;AAMD,oEAsDC;AAED,gFA4CC;AAMD,wEAkGC;AAED,oFAoDC;AAlSD,gFAAgF;AAChF,+DAA+D;AAC/D,EAAE;AACF,aAAa;AACb,2EAA2E;AAC3E,qEAAqE;AACrE,gFAAgF;AAEhF;;;;;;;GAOG;AACH,SAAgB,+BAA+B,CAC7C,IAAsB,EACtB,WAAW,GAAG,KAAK;IAEnB,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,OAAO,WAAW;YAChB,CAAC,CAAC,oCAAoC,EAAE;YACxC,CAAC,CAAC,kCAAkC,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,WAAW,CAAC,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,4BAA4B,EAAE,CAAC;AACzF,CAAC;AAED,gFAAgF;AAChF,wCAAwC;AACxC,gFAAgF;AAEhF,SAAgB,4BAA4B;IAC1C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDR,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,SAAgB,kCAAkC;IAChD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CR,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,gFAAgF;AAChF,sCAAsC;AACtC,gFAAgF;AAEhF,SAAgB,8BAA8B;IAC5C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgGR,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,SAAgB,oCAAoC;IAClD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDR,CAAC,IAAI,EAAE,CAAC;AACT,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { EmitterHost } from '../host';
|
|
2
|
+
import type { AiToolId } from './formats';
|
|
3
|
+
export type AssistantId = 'aspectKB' | 'agentsMd';
|
|
4
|
+
/**
|
|
5
|
+
* Detects which Aspect Code artifacts exist (KB, instructions).
|
|
6
|
+
*/
|
|
7
|
+
export declare function detectAssistants(host: EmitterHost, workspaceRoot: string): Promise<Set<AssistantId>>;
|
|
8
|
+
/**
|
|
9
|
+
* Detects which AI coding tools are present in the workspace by checking
|
|
10
|
+
* for their config/instruction files on disk.
|
|
11
|
+
*/
|
|
12
|
+
export declare function detectAiTools(host: EmitterHost, workspaceRoot: string): Promise<Set<AiToolId>>;
|
|
13
|
+
//# sourceMappingURL=detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../src/instructions/detection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAK1C,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC;AAOlD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAuB3B;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAuBxB"}
|