driftdetect-core 0.7.1 → 0.8.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/boundaries/types.d.ts +1 -1
- package/dist/boundaries/types.d.ts.map +1 -1
- package/dist/call-graph/analysis/graph-builder.d.ts.map +1 -1
- package/dist/call-graph/analysis/graph-builder.js +2 -0
- package/dist/call-graph/analysis/graph-builder.js.map +1 -1
- package/dist/call-graph/extractors/cpp-data-access-extractor.d.ts +37 -0
- package/dist/call-graph/extractors/cpp-data-access-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/cpp-data-access-extractor.js +467 -0
- package/dist/call-graph/extractors/cpp-data-access-extractor.js.map +1 -0
- package/dist/call-graph/extractors/cpp-hybrid-extractor.d.ts +89 -0
- package/dist/call-graph/extractors/cpp-hybrid-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/cpp-hybrid-extractor.js +541 -0
- package/dist/call-graph/extractors/cpp-hybrid-extractor.js.map +1 -0
- package/dist/call-graph/extractors/index.d.ts +8 -1
- package/dist/call-graph/extractors/index.d.ts.map +1 -1
- package/dist/call-graph/extractors/index.js +9 -1
- package/dist/call-graph/extractors/index.js.map +1 -1
- package/dist/call-graph/extractors/regex/cpp-regex.d.ts +46 -0
- package/dist/call-graph/extractors/regex/cpp-regex.d.ts.map +1 -0
- package/dist/call-graph/extractors/regex/cpp-regex.js +325 -0
- package/dist/call-graph/extractors/regex/cpp-regex.js.map +1 -0
- package/dist/call-graph/extractors/regex/index.d.ts +2 -0
- package/dist/call-graph/extractors/regex/index.d.ts.map +1 -1
- package/dist/call-graph/extractors/regex/index.js +16 -0
- package/dist/call-graph/extractors/regex/index.js.map +1 -1
- package/dist/call-graph/extractors/regex/rust-regex.d.ts +45 -0
- package/dist/call-graph/extractors/regex/rust-regex.d.ts.map +1 -0
- package/dist/call-graph/extractors/regex/rust-regex.js +517 -0
- package/dist/call-graph/extractors/regex/rust-regex.js.map +1 -0
- package/dist/call-graph/extractors/rust-data-access-extractor.d.ts +35 -0
- package/dist/call-graph/extractors/rust-data-access-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/rust-data-access-extractor.js +349 -0
- package/dist/call-graph/extractors/rust-data-access-extractor.js.map +1 -0
- package/dist/call-graph/extractors/rust-extractor.d.ts +125 -0
- package/dist/call-graph/extractors/rust-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/rust-extractor.js +604 -0
- package/dist/call-graph/extractors/rust-extractor.js.map +1 -0
- package/dist/call-graph/extractors/rust-hybrid-extractor.d.ts +119 -0
- package/dist/call-graph/extractors/rust-hybrid-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/rust-hybrid-extractor.js +548 -0
- package/dist/call-graph/extractors/rust-hybrid-extractor.js.map +1 -0
- package/dist/call-graph/index.d.ts +2 -0
- package/dist/call-graph/index.d.ts.map +1 -1
- package/dist/call-graph/index.js +4 -0
- package/dist/call-graph/index.js.map +1 -1
- package/dist/call-graph/streaming-builder.d.ts +60 -0
- package/dist/call-graph/streaming-builder.d.ts.map +1 -0
- package/dist/call-graph/streaming-builder.js +204 -0
- package/dist/call-graph/streaming-builder.js.map +1 -0
- package/dist/call-graph/types.d.ts +1 -1
- package/dist/call-graph/types.d.ts.map +1 -1
- package/dist/call-graph/unified-provider.d.ts +72 -0
- package/dist/call-graph/unified-provider.d.ts.map +1 -0
- package/dist/call-graph/unified-provider.js +502 -0
- package/dist/call-graph/unified-provider.js.map +1 -0
- package/dist/constants/extractors/regex/rust-regex.d.ts +43 -0
- package/dist/constants/extractors/regex/rust-regex.d.ts.map +1 -0
- package/dist/constants/extractors/regex/rust-regex.js +370 -0
- package/dist/constants/extractors/regex/rust-regex.js.map +1 -0
- package/dist/constants/types.d.ts +1 -1
- package/dist/constants/types.d.ts.map +1 -1
- package/dist/constants/types.js.map +1 -1
- package/dist/constraints/store/constraint-store.d.ts.map +1 -1
- package/dist/constraints/store/constraint-store.js +2 -0
- package/dist/constraints/store/constraint-store.js.map +1 -1
- package/dist/constraints/types.d.ts +1 -1
- package/dist/constraints/types.d.ts.map +1 -1
- package/dist/constraints/types.js +2 -0
- package/dist/constraints/types.js.map +1 -1
- package/dist/context/context-generator.d.ts +38 -0
- package/dist/context/context-generator.d.ts.map +1 -0
- package/dist/context/context-generator.js +392 -0
- package/dist/context/context-generator.js.map +1 -0
- package/dist/context/index.d.ts +13 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +14 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/package-detector.d.ts +53 -0
- package/dist/context/package-detector.d.ts.map +1 -0
- package/dist/context/package-detector.js +672 -0
- package/dist/context/package-detector.js.map +1 -0
- package/dist/context/types.d.ts +258 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/context/types.js +10 -0
- package/dist/context/types.js.map +1 -0
- package/dist/cpp/cpp-analyzer.d.ts +179 -0
- package/dist/cpp/cpp-analyzer.d.ts.map +1 -0
- package/dist/cpp/cpp-analyzer.js +532 -0
- package/dist/cpp/cpp-analyzer.js.map +1 -0
- package/dist/cpp/index.d.ts +9 -0
- package/dist/cpp/index.d.ts.map +1 -0
- package/dist/cpp/index.js +9 -0
- package/dist/cpp/index.js.map +1 -0
- package/dist/decisions/analyzer/decision-mining-analyzer.d.ts.map +1 -1
- package/dist/decisions/analyzer/decision-mining-analyzer.js +4 -0
- package/dist/decisions/analyzer/decision-mining-analyzer.js.map +1 -1
- package/dist/decisions/types.d.ts +1 -1
- package/dist/decisions/types.d.ts.map +1 -1
- package/dist/environment/extractors/cpp-env-extractor.d.ts +58 -0
- package/dist/environment/extractors/cpp-env-extractor.d.ts.map +1 -0
- package/dist/environment/extractors/cpp-env-extractor.js +298 -0
- package/dist/environment/extractors/cpp-env-extractor.js.map +1 -0
- package/dist/environment/extractors/index.d.ts +2 -0
- package/dist/environment/extractors/index.d.ts.map +1 -1
- package/dist/environment/extractors/index.js +2 -0
- package/dist/environment/extractors/index.js.map +1 -1
- package/dist/environment/extractors/rust-env-extractor.d.ts +58 -0
- package/dist/environment/extractors/rust-env-extractor.d.ts.map +1 -0
- package/dist/environment/extractors/rust-env-extractor.js +297 -0
- package/dist/environment/extractors/rust-env-extractor.js.map +1 -0
- package/dist/environment/index.d.ts +1 -1
- package/dist/environment/index.d.ts.map +1 -1
- package/dist/environment/index.js +1 -1
- package/dist/environment/index.js.map +1 -1
- package/dist/environment/types.d.ts +2 -2
- package/dist/environment/types.d.ts.map +1 -1
- package/dist/environment/types.js.map +1 -1
- package/dist/index.d.ts +15 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -2
- package/dist/index.js.map +1 -1
- package/dist/licensing/feature-guard.d.ts +103 -0
- package/dist/licensing/feature-guard.d.ts.map +1 -0
- package/dist/licensing/feature-guard.js +195 -0
- package/dist/licensing/feature-guard.js.map +1 -0
- package/dist/licensing/index.d.ts +46 -0
- package/dist/licensing/index.d.ts.map +1 -0
- package/dist/licensing/index.js +47 -0
- package/dist/licensing/index.js.map +1 -0
- package/dist/licensing/license-manager.d.ts +88 -0
- package/dist/licensing/license-manager.d.ts.map +1 -0
- package/dist/licensing/license-manager.js +251 -0
- package/dist/licensing/license-manager.js.map +1 -0
- package/dist/licensing/license-validator.d.ts +60 -0
- package/dist/licensing/license-validator.d.ts.map +1 -0
- package/dist/licensing/license-validator.js +300 -0
- package/dist/licensing/license-validator.js.map +1 -0
- package/dist/licensing/types.d.ts +76 -0
- package/dist/licensing/types.d.ts.map +1 -0
- package/dist/licensing/types.js +51 -0
- package/dist/licensing/types.js.map +1 -0
- package/dist/parsers/tree-sitter/cpp-loader.d.ts +51 -0
- package/dist/parsers/tree-sitter/cpp-loader.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/cpp-loader.js +162 -0
- package/dist/parsers/tree-sitter/cpp-loader.js.map +1 -0
- package/dist/parsers/tree-sitter/index.d.ts +6 -0
- package/dist/parsers/tree-sitter/index.d.ts.map +1 -1
- package/dist/parsers/tree-sitter/index.js +16 -0
- package/dist/parsers/tree-sitter/index.js.map +1 -1
- package/dist/parsers/tree-sitter/rust-loader.d.ts +50 -0
- package/dist/parsers/tree-sitter/rust-loader.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/rust-loader.js +161 -0
- package/dist/parsers/tree-sitter/rust-loader.js.map +1 -0
- package/dist/parsers/tree-sitter/tree-sitter-cpp-parser.d.ts +198 -0
- package/dist/parsers/tree-sitter/tree-sitter-cpp-parser.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/tree-sitter-cpp-parser.js +671 -0
- package/dist/parsers/tree-sitter/tree-sitter-cpp-parser.js.map +1 -0
- package/dist/parsers/tree-sitter/tree-sitter-rust-parser.d.ts +180 -0
- package/dist/parsers/tree-sitter/tree-sitter-rust-parser.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/tree-sitter-rust-parser.js +478 -0
- package/dist/parsers/tree-sitter/tree-sitter-rust-parser.js.map +1 -0
- package/dist/parsers/types.d.ts +1 -1
- package/dist/parsers/types.d.ts.map +1 -1
- package/dist/patterns/adapters/pattern-store-adapter.d.ts.map +1 -1
- package/dist/patterns/adapters/pattern-store-adapter.js +35 -10
- package/dist/patterns/adapters/pattern-store-adapter.js.map +1 -1
- package/dist/quality-gates/gates/base-gate.d.ts +71 -0
- package/dist/quality-gates/gates/base-gate.d.ts.map +1 -0
- package/dist/quality-gates/gates/base-gate.js +178 -0
- package/dist/quality-gates/gates/base-gate.js.map +1 -0
- package/dist/quality-gates/gates/constraint-verification/constraint-verification-gate.d.ts +62 -0
- package/dist/quality-gates/gates/constraint-verification/constraint-verification-gate.d.ts.map +1 -0
- package/dist/quality-gates/gates/constraint-verification/constraint-verification-gate.js +255 -0
- package/dist/quality-gates/gates/constraint-verification/constraint-verification-gate.js.map +1 -0
- package/dist/quality-gates/gates/constraint-verification/index.d.ts +7 -0
- package/dist/quality-gates/gates/constraint-verification/index.d.ts.map +1 -0
- package/dist/quality-gates/gates/constraint-verification/index.js +7 -0
- package/dist/quality-gates/gates/constraint-verification/index.js.map +1 -0
- package/dist/quality-gates/gates/custom-rules/custom-rules-gate.d.ts +73 -0
- package/dist/quality-gates/gates/custom-rules/custom-rules-gate.d.ts.map +1 -0
- package/dist/quality-gates/gates/custom-rules/custom-rules-gate.js +351 -0
- package/dist/quality-gates/gates/custom-rules/custom-rules-gate.js.map +1 -0
- package/dist/quality-gates/gates/custom-rules/index.d.ts +7 -0
- package/dist/quality-gates/gates/custom-rules/index.d.ts.map +1 -0
- package/dist/quality-gates/gates/custom-rules/index.js +7 -0
- package/dist/quality-gates/gates/custom-rules/index.js.map +1 -0
- package/dist/quality-gates/gates/impact-simulation/impact-simulation-gate.d.ts +61 -0
- package/dist/quality-gates/gates/impact-simulation/impact-simulation-gate.d.ts.map +1 -0
- package/dist/quality-gates/gates/impact-simulation/impact-simulation-gate.js +318 -0
- package/dist/quality-gates/gates/impact-simulation/impact-simulation-gate.js.map +1 -0
- package/dist/quality-gates/gates/impact-simulation/index.d.ts +7 -0
- package/dist/quality-gates/gates/impact-simulation/index.d.ts.map +1 -0
- package/dist/quality-gates/gates/impact-simulation/index.js +7 -0
- package/dist/quality-gates/gates/impact-simulation/index.js.map +1 -0
- package/dist/quality-gates/gates/index.d.ts +13 -0
- package/dist/quality-gates/gates/index.d.ts.map +1 -0
- package/dist/quality-gates/gates/index.js +13 -0
- package/dist/quality-gates/gates/index.js.map +1 -0
- package/dist/quality-gates/gates/pattern-compliance/index.d.ts +7 -0
- package/dist/quality-gates/gates/pattern-compliance/index.d.ts.map +1 -0
- package/dist/quality-gates/gates/pattern-compliance/index.js +7 -0
- package/dist/quality-gates/gates/pattern-compliance/index.js.map +1 -0
- package/dist/quality-gates/gates/pattern-compliance/pattern-compliance-gate.d.ts +61 -0
- package/dist/quality-gates/gates/pattern-compliance/pattern-compliance-gate.d.ts.map +1 -0
- package/dist/quality-gates/gates/pattern-compliance/pattern-compliance-gate.js +261 -0
- package/dist/quality-gates/gates/pattern-compliance/pattern-compliance-gate.js.map +1 -0
- package/dist/quality-gates/gates/regression-detection/index.d.ts +7 -0
- package/dist/quality-gates/gates/regression-detection/index.d.ts.map +1 -0
- package/dist/quality-gates/gates/regression-detection/index.js +7 -0
- package/dist/quality-gates/gates/regression-detection/index.js.map +1 -0
- package/dist/quality-gates/gates/regression-detection/regression-detection-gate.d.ts +69 -0
- package/dist/quality-gates/gates/regression-detection/regression-detection-gate.d.ts.map +1 -0
- package/dist/quality-gates/gates/regression-detection/regression-detection-gate.js +330 -0
- package/dist/quality-gates/gates/regression-detection/regression-detection-gate.js.map +1 -0
- package/dist/quality-gates/gates/security-boundary/index.d.ts +7 -0
- package/dist/quality-gates/gates/security-boundary/index.d.ts.map +1 -0
- package/dist/quality-gates/gates/security-boundary/index.js +7 -0
- package/dist/quality-gates/gates/security-boundary/index.js.map +1 -0
- package/dist/quality-gates/gates/security-boundary/security-boundary-gate.d.ts +65 -0
- package/dist/quality-gates/gates/security-boundary/security-boundary-gate.d.ts.map +1 -0
- package/dist/quality-gates/gates/security-boundary/security-boundary-gate.js +307 -0
- package/dist/quality-gates/gates/security-boundary/security-boundary-gate.js.map +1 -0
- package/dist/quality-gates/index.d.ts +35 -0
- package/dist/quality-gates/index.d.ts.map +1 -0
- package/dist/quality-gates/index.js +43 -0
- package/dist/quality-gates/index.js.map +1 -0
- package/dist/quality-gates/orchestrator/gate-orchestrator.d.ts +79 -0
- package/dist/quality-gates/orchestrator/gate-orchestrator.d.ts.map +1 -0
- package/dist/quality-gates/orchestrator/gate-orchestrator.js +314 -0
- package/dist/quality-gates/orchestrator/gate-orchestrator.js.map +1 -0
- package/dist/quality-gates/orchestrator/gate-registry.d.ts +53 -0
- package/dist/quality-gates/orchestrator/gate-registry.d.ts.map +1 -0
- package/dist/quality-gates/orchestrator/gate-registry.js +141 -0
- package/dist/quality-gates/orchestrator/gate-registry.js.map +1 -0
- package/dist/quality-gates/orchestrator/index.d.ts +10 -0
- package/dist/quality-gates/orchestrator/index.d.ts.map +1 -0
- package/dist/quality-gates/orchestrator/index.js +10 -0
- package/dist/quality-gates/orchestrator/index.js.map +1 -0
- package/dist/quality-gates/orchestrator/parallel-executor.d.ts +35 -0
- package/dist/quality-gates/orchestrator/parallel-executor.d.ts.map +1 -0
- package/dist/quality-gates/orchestrator/parallel-executor.js +70 -0
- package/dist/quality-gates/orchestrator/parallel-executor.js.map +1 -0
- package/dist/quality-gates/orchestrator/result-aggregator.d.ts +27 -0
- package/dist/quality-gates/orchestrator/result-aggregator.d.ts.map +1 -0
- package/dist/quality-gates/orchestrator/result-aggregator.js +70 -0
- package/dist/quality-gates/orchestrator/result-aggregator.js.map +1 -0
- package/dist/quality-gates/policy/default-policies.d.ts +14 -0
- package/dist/quality-gates/policy/default-policies.d.ts.map +1 -0
- package/dist/quality-gates/policy/default-policies.js +266 -0
- package/dist/quality-gates/policy/default-policies.js.map +1 -0
- package/dist/quality-gates/policy/index.d.ts +9 -0
- package/dist/quality-gates/policy/index.d.ts.map +1 -0
- package/dist/quality-gates/policy/index.js +9 -0
- package/dist/quality-gates/policy/index.js.map +1 -0
- package/dist/quality-gates/policy/policy-evaluator.d.ts +43 -0
- package/dist/quality-gates/policy/policy-evaluator.d.ts.map +1 -0
- package/dist/quality-gates/policy/policy-evaluator.js +136 -0
- package/dist/quality-gates/policy/policy-evaluator.js.map +1 -0
- package/dist/quality-gates/policy/policy-loader.d.ts +72 -0
- package/dist/quality-gates/policy/policy-loader.d.ts.map +1 -0
- package/dist/quality-gates/policy/policy-loader.js +228 -0
- package/dist/quality-gates/policy/policy-loader.js.map +1 -0
- package/dist/quality-gates/reporters/github-reporter.d.ts +19 -0
- package/dist/quality-gates/reporters/github-reporter.d.ts.map +1 -0
- package/dist/quality-gates/reporters/github-reporter.js +49 -0
- package/dist/quality-gates/reporters/github-reporter.js.map +1 -0
- package/dist/quality-gates/reporters/gitlab-reporter.d.ts +20 -0
- package/dist/quality-gates/reporters/gitlab-reporter.d.ts.map +1 -0
- package/dist/quality-gates/reporters/gitlab-reporter.js +42 -0
- package/dist/quality-gates/reporters/gitlab-reporter.js.map +1 -0
- package/dist/quality-gates/reporters/index.d.ts +12 -0
- package/dist/quality-gates/reporters/index.d.ts.map +1 -0
- package/dist/quality-gates/reporters/index.js +12 -0
- package/dist/quality-gates/reporters/index.js.map +1 -0
- package/dist/quality-gates/reporters/json-reporter.d.ts +18 -0
- package/dist/quality-gates/reporters/json-reporter.d.ts.map +1 -0
- package/dist/quality-gates/reporters/json-reporter.js +51 -0
- package/dist/quality-gates/reporters/json-reporter.js.map +1 -0
- package/dist/quality-gates/reporters/reporter-interface.d.ts +35 -0
- package/dist/quality-gates/reporters/reporter-interface.d.ts.map +1 -0
- package/dist/quality-gates/reporters/reporter-interface.js +22 -0
- package/dist/quality-gates/reporters/reporter-interface.js.map +1 -0
- package/dist/quality-gates/reporters/sarif-reporter.d.ts +22 -0
- package/dist/quality-gates/reporters/sarif-reporter.d.ts.map +1 -0
- package/dist/quality-gates/reporters/sarif-reporter.js +85 -0
- package/dist/quality-gates/reporters/sarif-reporter.js.map +1 -0
- package/dist/quality-gates/reporters/text-reporter.d.ts +18 -0
- package/dist/quality-gates/reporters/text-reporter.d.ts.map +1 -0
- package/dist/quality-gates/reporters/text-reporter.js +92 -0
- package/dist/quality-gates/reporters/text-reporter.js.map +1 -0
- package/dist/quality-gates/store/gate-run-store.d.ts +37 -0
- package/dist/quality-gates/store/gate-run-store.d.ts.map +1 -0
- package/dist/quality-gates/store/gate-run-store.js +104 -0
- package/dist/quality-gates/store/gate-run-store.js.map +1 -0
- package/dist/quality-gates/store/index.d.ts +8 -0
- package/dist/quality-gates/store/index.d.ts.map +1 -0
- package/dist/quality-gates/store/index.js +8 -0
- package/dist/quality-gates/store/index.js.map +1 -0
- package/dist/quality-gates/store/snapshot-store.d.ts +41 -0
- package/dist/quality-gates/store/snapshot-store.d.ts.map +1 -0
- package/dist/quality-gates/store/snapshot-store.js +117 -0
- package/dist/quality-gates/store/snapshot-store.js.map +1 -0
- package/dist/quality-gates/types.d.ts +992 -0
- package/dist/quality-gates/types.d.ts.map +1 -0
- package/dist/quality-gates/types.js +14 -0
- package/dist/quality-gates/types.js.map +1 -0
- package/dist/rust/index.d.ts +7 -0
- package/dist/rust/index.d.ts.map +1 -0
- package/dist/rust/index.js +8 -0
- package/dist/rust/index.js.map +1 -0
- package/dist/rust/rust-analyzer.d.ts +185 -0
- package/dist/rust/rust-analyzer.d.ts.map +1 -0
- package/dist/rust/rust-analyzer.js +538 -0
- package/dist/rust/rust-analyzer.js.map +1 -0
- package/dist/scanner/file-walker.d.ts.map +1 -1
- package/dist/scanner/file-walker.js +11 -0
- package/dist/scanner/file-walker.js.map +1 -1
- package/dist/simulation/simulation-engine.d.ts +6 -0
- package/dist/simulation/simulation-engine.d.ts.map +1 -1
- package/dist/simulation/simulation-engine.js +6 -0
- package/dist/simulation/simulation-engine.js.map +1 -1
- package/dist/speculative/types.d.ts +1 -1
- package/dist/speculative/types.d.ts.map +1 -1
- package/dist/speculative/types.js +2 -0
- package/dist/speculative/types.js.map +1 -1
- package/dist/store/project-config.d.ts +19 -0
- package/dist/store/project-config.d.ts.map +1 -1
- package/dist/store/project-config.js.map +1 -1
- package/dist/telemetry/index.d.ts +10 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +11 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/telemetry-client.d.ts +127 -0
- package/dist/telemetry/telemetry-client.d.ts.map +1 -0
- package/dist/telemetry/telemetry-client.js +373 -0
- package/dist/telemetry/telemetry-client.js.map +1 -0
- package/dist/telemetry/types.d.ts +160 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +27 -0
- package/dist/telemetry/types.js.map +1 -0
- package/dist/test-topology/extractors/cpp-test-extractor.d.ts +38 -0
- package/dist/test-topology/extractors/cpp-test-extractor.d.ts.map +1 -0
- package/dist/test-topology/extractors/cpp-test-extractor.js +507 -0
- package/dist/test-topology/extractors/cpp-test-extractor.js.map +1 -0
- package/dist/test-topology/extractors/index.d.ts +2 -0
- package/dist/test-topology/extractors/index.d.ts.map +1 -1
- package/dist/test-topology/extractors/index.js +2 -0
- package/dist/test-topology/extractors/index.js.map +1 -1
- package/dist/test-topology/extractors/regex/index.d.ts +1 -0
- package/dist/test-topology/extractors/regex/index.d.ts.map +1 -1
- package/dist/test-topology/extractors/regex/index.js +4 -0
- package/dist/test-topology/extractors/regex/index.js.map +1 -1
- package/dist/test-topology/extractors/regex/rust-test-regex.d.ts +66 -0
- package/dist/test-topology/extractors/regex/rust-test-regex.d.ts.map +1 -0
- package/dist/test-topology/extractors/regex/rust-test-regex.js +565 -0
- package/dist/test-topology/extractors/regex/rust-test-regex.js.map +1 -0
- package/dist/test-topology/extractors/rust-test-extractor.d.ts +49 -0
- package/dist/test-topology/extractors/rust-test-extractor.d.ts.map +1 -0
- package/dist/test-topology/extractors/rust-test-extractor.js +422 -0
- package/dist/test-topology/extractors/rust-test-extractor.js.map +1 -0
- package/dist/test-topology/hybrid-test-topology-analyzer.d.ts.map +1 -1
- package/dist/test-topology/hybrid-test-topology-analyzer.js +2 -0
- package/dist/test-topology/hybrid-test-topology-analyzer.js.map +1 -1
- package/dist/test-topology/test-topology-analyzer.d.ts.map +1 -1
- package/dist/test-topology/test-topology-analyzer.js +2 -0
- package/dist/test-topology/test-topology-analyzer.js.map +1 -1
- package/dist/test-topology/types.d.ts +2 -2
- package/dist/test-topology/types.d.ts.map +1 -1
- package/dist/unified-provider/integration/unified-scanner.d.ts.map +1 -1
- package/dist/unified-provider/integration/unified-scanner.js +3 -0
- package/dist/unified-provider/integration/unified-scanner.js.map +1 -1
- package/dist/unified-provider/matching/diesel-matcher.d.ts +33 -0
- package/dist/unified-provider/matching/diesel-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/diesel-matcher.js +210 -0
- package/dist/unified-provider/matching/diesel-matcher.js.map +1 -0
- package/dist/unified-provider/matching/index.d.ts +3 -1
- package/dist/unified-provider/matching/index.d.ts.map +1 -1
- package/dist/unified-provider/matching/index.js +4 -1
- package/dist/unified-provider/matching/index.js.map +1 -1
- package/dist/unified-provider/matching/matcher-registry.d.ts.map +1 -1
- package/dist/unified-provider/matching/matcher-registry.js +7 -2
- package/dist/unified-provider/matching/matcher-registry.js.map +1 -1
- package/dist/unified-provider/matching/seaorm-matcher.d.ts +35 -0
- package/dist/unified-provider/matching/seaorm-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/seaorm-matcher.js +200 -0
- package/dist/unified-provider/matching/seaorm-matcher.js.map +1 -0
- package/dist/unified-provider/matching/sqlx-matcher.d.ts +19 -24
- package/dist/unified-provider/matching/sqlx-matcher.d.ts.map +1 -1
- package/dist/unified-provider/matching/sqlx-matcher.js +171 -149
- package/dist/unified-provider/matching/sqlx-matcher.js.map +1 -1
- package/dist/unified-provider/normalization/cpp-normalizer.d.ts +62 -0
- package/dist/unified-provider/normalization/cpp-normalizer.d.ts.map +1 -0
- package/dist/unified-provider/normalization/cpp-normalizer.js +581 -0
- package/dist/unified-provider/normalization/cpp-normalizer.js.map +1 -0
- package/dist/unified-provider/normalization/index.d.ts +2 -0
- package/dist/unified-provider/normalization/index.d.ts.map +1 -1
- package/dist/unified-provider/normalization/index.js +11 -1
- package/dist/unified-provider/normalization/index.js.map +1 -1
- package/dist/unified-provider/normalization/rust-normalizer.d.ts +71 -0
- package/dist/unified-provider/normalization/rust-normalizer.d.ts.map +1 -0
- package/dist/unified-provider/normalization/rust-normalizer.js +670 -0
- package/dist/unified-provider/normalization/rust-normalizer.js.map +1 -0
- package/dist/unified-provider/parsing/parser-registry.d.ts.map +1 -1
- package/dist/unified-provider/parsing/parser-registry.js +62 -1
- package/dist/unified-provider/parsing/parser-registry.js.map +1 -1
- package/dist/unified-provider/provider/unified-language-provider.js +1 -1
- package/dist/unified-provider/provider/unified-language-provider.js.map +1 -1
- package/dist/unified-provider/types.d.ts +1 -1
- package/dist/unified-provider/types.d.ts.map +1 -1
- package/dist/wrappers/index.d.ts.map +1 -1
- package/dist/wrappers/index.js +2 -0
- package/dist/wrappers/index.js.map +1 -1
- package/dist/wrappers/integration/adapter.d.ts.map +1 -1
- package/dist/wrappers/integration/adapter.js +2 -0
- package/dist/wrappers/integration/adapter.js.map +1 -1
- package/dist/wrappers/integration/scanner.d.ts.map +1 -1
- package/dist/wrappers/integration/scanner.js +2 -0
- package/dist/wrappers/integration/scanner.js.map +1 -1
- package/dist/wrappers/primitives/registry.d.ts +18 -0
- package/dist/wrappers/primitives/registry.d.ts.map +1 -1
- package/dist/wrappers/primitives/registry.js +190 -0
- package/dist/wrappers/primitives/registry.js.map +1 -1
- package/dist/wrappers/types.d.ts +1 -1
- package/dist/wrappers/types.d.ts.map +1 -1
- package/package.json +5 -2
- package/LICENSE +0 -21
- package/dist/lake/lake.bak/index-store.d.ts +0 -82
- package/dist/lake/lake.bak/index-store.d.ts.map +0 -1
- package/dist/lake/lake.bak/index-store.js +0 -357
- package/dist/lake/lake.bak/index-store.js.map +0 -1
- package/dist/lake/lake.bak/index.d.ts +0 -81
- package/dist/lake/lake.bak/index.d.ts.map +0 -1
- package/dist/lake/lake.bak/index.js +0 -114
- package/dist/lake/lake.bak/index.js.map +0 -1
- package/dist/lake/lake.bak/manifest-store.d.ts +0 -51
- package/dist/lake/lake.bak/manifest-store.d.ts.map +0 -1
- package/dist/lake/lake.bak/manifest-store.js +0 -347
- package/dist/lake/lake.bak/manifest-store.js.map +0 -1
- package/dist/lake/lake.bak/query-engine.d.ts +0 -112
- package/dist/lake/lake.bak/query-engine.d.ts.map +0 -1
- package/dist/lake/lake.bak/query-engine.js +0 -370
- package/dist/lake/lake.bak/query-engine.js.map +0 -1
- package/dist/lake/lake.bak/types.d.ts +0 -428
- package/dist/lake/lake.bak/types.d.ts.map +0 -1
- package/dist/lake/lake.bak/types.js +0 -46
- package/dist/lake/lake.bak/types.js.map +0 -1
- package/dist/lake/lake.bak/view-materializer.d.ts +0 -70
- package/dist/lake/lake.bak/view-materializer.d.ts.map +0 -1
- package/dist/lake/lake.bak/view-materializer.js +0 -314
- package/dist/lake/lake.bak/view-materializer.js.map +0 -1
- package/dist/lake/lake.bak/view-store.d.ts +0 -57
- package/dist/lake/lake.bak/view-store.d.ts.map +0 -1
- package/dist/lake/lake.bak/view-store.js +0 -348
- package/dist/lake/lake.bak/view-store.js.map +0 -1
- package/dist/unified-provider/migration/deprecated-extractors.d.ts +0 -104
- package/dist/unified-provider/migration/deprecated-extractors.d.ts.map +0 -1
- package/dist/unified-provider/migration/deprecated-extractors.js +0 -129
- package/dist/unified-provider/migration/deprecated-extractors.js.map +0 -1
- package/dist/unified-provider/migration/deprecated-scanner.d.ts +0 -40
- package/dist/unified-provider/migration/deprecated-scanner.d.ts.map +0 -1
- package/dist/unified-provider/migration/deprecated-scanner.js +0 -49
- package/dist/unified-provider/migration/deprecated-scanner.js.map +0 -1
- package/dist/unified-provider/migration/index.d.ts +0 -41
- package/dist/unified-provider/migration/index.d.ts.map +0 -1
- package/dist/unified-provider/migration/index.js +0 -43
- package/dist/unified-provider/migration/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/constraints/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/constraints/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA41BH,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAEjD,MAAM,CAAC,MAAM,qBAAqB,GAAyB;IACzD,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,UAAU;IACV,YAAY;IACZ,aAAa;IACb,SAAS;IACT,YAAY;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAyB;IACxD,YAAY;IACZ,YAAY;IACZ,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;CACN,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAuB;IACrD,YAAY;IACZ,UAAU;IACV,SAAS;IACT,QAAQ;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,WAAW;IACX,eAAe;IACf,cAAc;IACd,aAAa;IACb,eAAe;IACf,eAAe;IACf,WAAW;IACX,gBAAgB;IAChB,aAAa;IACb,WAAW;IACX,QAAQ;IACR,WAAW;CACZ,CAAC;AAEF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAE3C,2DAA2D;AAC3D,MAAM,CAAC,MAAM,yBAAyB,GAAiC,SAAS,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package Context Generator
|
|
3
|
+
*
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Generates AI-optimized context for specific packages in a monorepo.
|
|
7
|
+
* Scopes patterns, constraints, and examples to minimize token usage.
|
|
8
|
+
*/
|
|
9
|
+
import { EventEmitter } from 'node:events';
|
|
10
|
+
import type { PackageContextOptions, PackageContext, PackageContextResult, AIContextFormat } from './types.js';
|
|
11
|
+
export declare class PackageContextGenerator extends EventEmitter {
|
|
12
|
+
private readonly rootDir;
|
|
13
|
+
private readonly packageDetector;
|
|
14
|
+
constructor(rootDir: string);
|
|
15
|
+
generate(options: PackageContextOptions): Promise<PackageContextResult>;
|
|
16
|
+
generateAIContext(options: PackageContextOptions): Promise<AIContextFormat>;
|
|
17
|
+
formatForAI(context: PackageContext): AIContextFormat;
|
|
18
|
+
private loadPackagePatterns;
|
|
19
|
+
private processPattern;
|
|
20
|
+
private loadPackageConstraints;
|
|
21
|
+
private extractEntryPoints;
|
|
22
|
+
private extractDataAccessors;
|
|
23
|
+
private findKeyFiles;
|
|
24
|
+
private generateGuidance;
|
|
25
|
+
private loadDependencyPatterns;
|
|
26
|
+
private estimateTokens;
|
|
27
|
+
private countTokens;
|
|
28
|
+
private trimContext;
|
|
29
|
+
private buildSystemPrompt;
|
|
30
|
+
private buildConventions;
|
|
31
|
+
private buildExamples;
|
|
32
|
+
private buildConstraints;
|
|
33
|
+
private isFileInPackage;
|
|
34
|
+
private extractSnippet;
|
|
35
|
+
private emitEvent;
|
|
36
|
+
}
|
|
37
|
+
export declare function createPackageContextGenerator(rootDir: string): PackageContextGenerator;
|
|
38
|
+
//# sourceMappingURL=context-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-generator.d.ts","sourceRoot":"","sources":["../../src/context/context-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EAKpB,eAAe,EAGhB,MAAM,YAAY,CAAC;AAOpB,qBAAa,uBAAwB,SAAQ,YAAY;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;gBAEtC,OAAO,EAAE,MAAM;IAMrB,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA+CvE,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IAQjF,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe;YASvC,mBAAmB;YAqCnB,cAAc;YA4Cd,sBAAsB;YA2BtB,kBAAkB;YAyBlB,oBAAoB;YAsBpB,YAAY;IAa1B,OAAO,CAAC,gBAAgB;YAsBV,sBAAsB;IAYpC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IAEnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,eAAe;YAOT,cAAc;IAc5B,OAAO,CAAC,SAAS;CAKlB;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB,CAEtF"}
|
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package Context Generator
|
|
3
|
+
*
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Generates AI-optimized context for specific packages in a monorepo.
|
|
7
|
+
* Scopes patterns, constraints, and examples to minimize token usage.
|
|
8
|
+
*/
|
|
9
|
+
import * as fs from 'node:fs/promises';
|
|
10
|
+
import * as path from 'node:path';
|
|
11
|
+
import { EventEmitter } from 'node:events';
|
|
12
|
+
import { PackageDetector } from './package-detector.js';
|
|
13
|
+
const DEFAULT_MAX_TOKENS = 8000;
|
|
14
|
+
const TOKENS_PER_CHAR = 0.25;
|
|
15
|
+
const CONTEXT_VERSION = '1.0.0';
|
|
16
|
+
export class PackageContextGenerator extends EventEmitter {
|
|
17
|
+
rootDir;
|
|
18
|
+
packageDetector;
|
|
19
|
+
constructor(rootDir) {
|
|
20
|
+
super();
|
|
21
|
+
this.rootDir = rootDir;
|
|
22
|
+
this.packageDetector = new PackageDetector(rootDir);
|
|
23
|
+
}
|
|
24
|
+
async generate(options) {
|
|
25
|
+
const warnings = [];
|
|
26
|
+
this.emitEvent('context:generating', options.package);
|
|
27
|
+
try {
|
|
28
|
+
const pkg = await this.packageDetector.getPackage(options.package);
|
|
29
|
+
if (!pkg) {
|
|
30
|
+
return { success: false, error: `Package not found: ${options.package}`, warnings, tokenEstimate: 0 };
|
|
31
|
+
}
|
|
32
|
+
const patterns = await this.loadPackagePatterns(pkg, options);
|
|
33
|
+
const constraints = await this.loadPackageConstraints(pkg, options);
|
|
34
|
+
const entryPoints = await this.extractEntryPoints(pkg);
|
|
35
|
+
const dataAccessors = await this.extractDataAccessors(pkg);
|
|
36
|
+
const keyFiles = await this.findKeyFiles(patterns);
|
|
37
|
+
const guidance = this.generateGuidance(patterns, constraints);
|
|
38
|
+
let dependencies;
|
|
39
|
+
if (options.includeDependencies || options.includeInternalDeps) {
|
|
40
|
+
dependencies = await this.loadDependencyPatterns(pkg, options);
|
|
41
|
+
}
|
|
42
|
+
const context = {
|
|
43
|
+
package: { name: pkg.name, path: pkg.path, language: pkg.language, ...(pkg.description ? { description: pkg.description } : {}) },
|
|
44
|
+
summary: { totalPatterns: patterns.length, totalConstraints: constraints.length, totalFiles: keyFiles.length, totalEntryPoints: entryPoints.length, totalDataAccessors: dataAccessors.length, estimatedTokens: 0 },
|
|
45
|
+
patterns, constraints, entryPoints, dataAccessors, keyFiles, guidance,
|
|
46
|
+
...(dependencies && dependencies.length > 0 ? { dependencies } : {}),
|
|
47
|
+
metadata: { generatedAt: new Date().toISOString(), driftVersion: '1.0.0', contextVersion: CONTEXT_VERSION },
|
|
48
|
+
};
|
|
49
|
+
const tokenEstimate = this.estimateTokens(context);
|
|
50
|
+
context.summary.estimatedTokens = tokenEstimate;
|
|
51
|
+
const maxTokens = options.maxTokens ?? DEFAULT_MAX_TOKENS;
|
|
52
|
+
if (tokenEstimate > maxTokens) {
|
|
53
|
+
this.trimContext(context, maxTokens);
|
|
54
|
+
warnings.push(`Context trimmed to fit within ${maxTokens} token limit`);
|
|
55
|
+
}
|
|
56
|
+
this.emitEvent('context:generated', options.package, { patterns: patterns.length, constraints: constraints.length, tokens: context.summary.estimatedTokens });
|
|
57
|
+
return { success: true, context, warnings, tokenEstimate: context.summary.estimatedTokens };
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
this.emitEvent('context:error', options.package, { error: error.message });
|
|
61
|
+
return { success: false, error: `Failed to generate context: ${error.message}`, warnings, tokenEstimate: 0 };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async generateAIContext(options) {
|
|
65
|
+
const result = await this.generate(options);
|
|
66
|
+
if (!result.success || !result.context) {
|
|
67
|
+
return { systemPrompt: `Error: ${result.error}`, conventions: '', examples: '', constraints: '', combined: `Error: ${result.error}`, tokens: { systemPrompt: 0, conventions: 0, examples: 0, constraints: 0, total: 0 } };
|
|
68
|
+
}
|
|
69
|
+
return this.formatForAI(result.context);
|
|
70
|
+
}
|
|
71
|
+
formatForAI(context) {
|
|
72
|
+
const systemPrompt = this.buildSystemPrompt(context);
|
|
73
|
+
const conventions = this.buildConventions(context);
|
|
74
|
+
const examples = this.buildExamples(context);
|
|
75
|
+
const constraintsSection = this.buildConstraints(context);
|
|
76
|
+
const combined = [systemPrompt, conventions, examples, constraintsSection].filter(Boolean).join('\n\n---\n\n');
|
|
77
|
+
return { systemPrompt, conventions, examples, constraints: constraintsSection, combined, tokens: { systemPrompt: this.countTokens(systemPrompt), conventions: this.countTokens(conventions), examples: this.countTokens(examples), constraints: this.countTokens(constraintsSection), total: this.countTokens(combined) } };
|
|
78
|
+
}
|
|
79
|
+
async loadPackagePatterns(pkg, options) {
|
|
80
|
+
const patterns = [];
|
|
81
|
+
const patternsDir = path.join(this.rootDir, '.drift', 'patterns');
|
|
82
|
+
try {
|
|
83
|
+
for (const status of ['approved', 'discovered']) {
|
|
84
|
+
const statusDir = path.join(patternsDir, status);
|
|
85
|
+
try {
|
|
86
|
+
const files = await fs.readdir(statusDir);
|
|
87
|
+
for (const file of files) {
|
|
88
|
+
if (!file.endsWith('.json'))
|
|
89
|
+
continue;
|
|
90
|
+
try {
|
|
91
|
+
const content = await fs.readFile(path.join(statusDir, file), 'utf-8');
|
|
92
|
+
const data = JSON.parse(content);
|
|
93
|
+
// Handle both flat pattern format and nested patterns array format
|
|
94
|
+
const patternList = data['patterns'];
|
|
95
|
+
const category = data['category'] || 'general';
|
|
96
|
+
if (patternList && Array.isArray(patternList)) {
|
|
97
|
+
// Nested format: { category, patterns: [...] }
|
|
98
|
+
for (const pattern of patternList) {
|
|
99
|
+
const result = await this.processPattern(pattern, category, pkg, options);
|
|
100
|
+
if (result)
|
|
101
|
+
patterns.push(result);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// Flat format: single pattern object
|
|
106
|
+
const result = await this.processPattern(data, category, pkg, options);
|
|
107
|
+
if (result)
|
|
108
|
+
patterns.push(result);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch { /* skip invalid files */ }
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch { /* skip missing directories */ }
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch { /* skip if no patterns dir */ }
|
|
118
|
+
return patterns.sort((a, b) => b.occurrences - a.occurrences);
|
|
119
|
+
}
|
|
120
|
+
async processPattern(pattern, category, pkg, options) {
|
|
121
|
+
// Filter by category if specified
|
|
122
|
+
const patternCategory = pattern['category'] || pattern['subcategory'] || category;
|
|
123
|
+
if (options.categories?.length && !options.categories.includes(patternCategory))
|
|
124
|
+
return null;
|
|
125
|
+
// Get confidence - handle both nested and flat formats
|
|
126
|
+
let confidence = 0.5;
|
|
127
|
+
const confidenceObj = pattern['confidence'];
|
|
128
|
+
if (typeof confidenceObj === 'number') {
|
|
129
|
+
confidence = confidenceObj;
|
|
130
|
+
}
|
|
131
|
+
else if (confidenceObj && typeof confidenceObj === 'object') {
|
|
132
|
+
confidence = confidenceObj['score'] ?? 0.5;
|
|
133
|
+
}
|
|
134
|
+
if (options.minConfidence && confidence < options.minConfidence)
|
|
135
|
+
return null;
|
|
136
|
+
// Get locations
|
|
137
|
+
const locations = pattern['locations'] || [];
|
|
138
|
+
const packageLocations = locations.filter(loc => this.isFileInPackage(loc.file, pkg));
|
|
139
|
+
if (packageLocations.length === 0)
|
|
140
|
+
return null;
|
|
141
|
+
const contextPattern = {
|
|
142
|
+
id: pattern['id'] || 'unknown',
|
|
143
|
+
name: pattern['name'] || 'Unknown',
|
|
144
|
+
category: patternCategory,
|
|
145
|
+
confidence,
|
|
146
|
+
occurrences: packageLocations.length,
|
|
147
|
+
files: packageLocations.map(l => l.file).slice(0, 5),
|
|
148
|
+
};
|
|
149
|
+
// Add snippet if requested
|
|
150
|
+
if (options.includeSnippets && packageLocations[0]) {
|
|
151
|
+
const example = await this.extractSnippet(packageLocations[0].file, packageLocations[0].line);
|
|
152
|
+
if (example)
|
|
153
|
+
contextPattern.example = example;
|
|
154
|
+
}
|
|
155
|
+
return contextPattern;
|
|
156
|
+
}
|
|
157
|
+
async loadPackageConstraints(pkg, _options) {
|
|
158
|
+
const constraints = [];
|
|
159
|
+
const constraintsDir = path.join(this.rootDir, '.drift', 'constraints');
|
|
160
|
+
try {
|
|
161
|
+
for (const status of ['approved', 'discovered']) {
|
|
162
|
+
const statusDir = path.join(constraintsDir, status);
|
|
163
|
+
try {
|
|
164
|
+
const files = await fs.readdir(statusDir);
|
|
165
|
+
for (const file of files) {
|
|
166
|
+
if (!file.endsWith('.json'))
|
|
167
|
+
continue;
|
|
168
|
+
try {
|
|
169
|
+
const content = await fs.readFile(path.join(statusDir, file), 'utf-8');
|
|
170
|
+
const constraint = JSON.parse(content);
|
|
171
|
+
const scope = constraint['scope'];
|
|
172
|
+
if (scope) {
|
|
173
|
+
const packages = scope['packages'];
|
|
174
|
+
if (packages && !packages.includes(pkg.name) && !packages.includes('*'))
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
constraints.push({ id: constraint['id'] || file.replace('.json', ''), name: constraint['name'] || 'Unknown', category: constraint['category'] || 'general', enforcement: constraint['enforcement'] || 'warning', condition: constraint['condition'] || '', guidance: constraint['guidance'] || '' });
|
|
178
|
+
}
|
|
179
|
+
catch { /* skip */ }
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
catch { /* skip */ }
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
catch { /* skip */ }
|
|
186
|
+
return constraints;
|
|
187
|
+
}
|
|
188
|
+
async extractEntryPoints(pkg) {
|
|
189
|
+
const entryPoints = [];
|
|
190
|
+
const callgraphDir = path.join(this.rootDir, '.drift', 'lake', 'callgraph', 'files');
|
|
191
|
+
try {
|
|
192
|
+
const files = await fs.readdir(callgraphDir);
|
|
193
|
+
for (const file of files) {
|
|
194
|
+
if (!file.endsWith('.json'))
|
|
195
|
+
continue;
|
|
196
|
+
try {
|
|
197
|
+
const content = await fs.readFile(path.join(callgraphDir, file), 'utf-8');
|
|
198
|
+
const data = JSON.parse(content);
|
|
199
|
+
const filePath = data['file'] || '';
|
|
200
|
+
if (!this.isFileInPackage(filePath, pkg))
|
|
201
|
+
continue;
|
|
202
|
+
const entries = data['entryPoints'] || [];
|
|
203
|
+
for (const entry of entries) {
|
|
204
|
+
const ep = { name: entry['name'] || 'unknown', file: filePath, type: entry['type'] || 'function' };
|
|
205
|
+
if (entry['method'])
|
|
206
|
+
ep.method = entry['method'];
|
|
207
|
+
if (entry['path'])
|
|
208
|
+
ep.path = entry['path'];
|
|
209
|
+
entryPoints.push(ep);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
catch { /* skip */ }
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch { /* skip */ }
|
|
216
|
+
return entryPoints.slice(0, 50);
|
|
217
|
+
}
|
|
218
|
+
async extractDataAccessors(pkg) {
|
|
219
|
+
const accessors = [];
|
|
220
|
+
const securityDir = path.join(this.rootDir, '.drift', 'lake', 'security', 'tables');
|
|
221
|
+
try {
|
|
222
|
+
const files = await fs.readdir(securityDir);
|
|
223
|
+
for (const file of files) {
|
|
224
|
+
if (!file.endsWith('.json'))
|
|
225
|
+
continue;
|
|
226
|
+
try {
|
|
227
|
+
const content = await fs.readFile(path.join(securityDir, file), 'utf-8');
|
|
228
|
+
const data = JSON.parse(content);
|
|
229
|
+
const accesses = data['accesses'] || [];
|
|
230
|
+
for (const access of accesses) {
|
|
231
|
+
const filePath = access['file'] || '';
|
|
232
|
+
if (!this.isFileInPackage(filePath, pkg))
|
|
233
|
+
continue;
|
|
234
|
+
accessors.push({ name: access['function'] || 'unknown', file: filePath, tables: access['tables'] || [], accessesSensitive: access['sensitive'] || false });
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
catch { /* skip */ }
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
catch { /* skip */ }
|
|
241
|
+
return accessors.slice(0, 30);
|
|
242
|
+
}
|
|
243
|
+
async findKeyFiles(patterns) {
|
|
244
|
+
const fileScores = new Map();
|
|
245
|
+
for (const pattern of patterns) {
|
|
246
|
+
for (const file of pattern.files) {
|
|
247
|
+
const existing = fileScores.get(file) || { score: 0, patterns: [] };
|
|
248
|
+
existing.score += pattern.confidence * pattern.occurrences;
|
|
249
|
+
existing.patterns.push(pattern.name);
|
|
250
|
+
fileScores.set(file, existing);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return Array.from(fileScores.entries()).sort((a, b) => b[1].score - a[1].score).slice(0, 10).map(([file, data]) => ({ file, reason: `Contains ${data.patterns.length} patterns`, patterns: [...new Set(data.patterns)].slice(0, 5) }));
|
|
254
|
+
}
|
|
255
|
+
generateGuidance(patterns, constraints) {
|
|
256
|
+
const keyInsights = [];
|
|
257
|
+
const commonPatterns = [];
|
|
258
|
+
const warnings = [];
|
|
259
|
+
const categoryGroups = new Map();
|
|
260
|
+
for (const pattern of patterns) {
|
|
261
|
+
const group = categoryGroups.get(pattern.category) || [];
|
|
262
|
+
group.push(pattern);
|
|
263
|
+
categoryGroups.set(pattern.category, group);
|
|
264
|
+
}
|
|
265
|
+
for (const [category, categoryPatterns] of categoryGroups) {
|
|
266
|
+
if (categoryPatterns.length >= 2)
|
|
267
|
+
keyInsights.push(`${category}: ${categoryPatterns.length} patterns detected`);
|
|
268
|
+
}
|
|
269
|
+
for (const pattern of patterns.filter(p => p.confidence >= 0.8).slice(0, 5)) {
|
|
270
|
+
commonPatterns.push(`${pattern.name} (${pattern.occurrences} occurrences)`);
|
|
271
|
+
}
|
|
272
|
+
for (const constraint of constraints.filter(c => c.enforcement === 'error').slice(0, 3)) {
|
|
273
|
+
warnings.push(constraint.guidance || constraint.name);
|
|
274
|
+
}
|
|
275
|
+
return { keyInsights, commonPatterns, warnings };
|
|
276
|
+
}
|
|
277
|
+
async loadDependencyPatterns(pkg, options) {
|
|
278
|
+
const dependencies = [];
|
|
279
|
+
for (const depName of pkg.internalDependencies) {
|
|
280
|
+
const depPkg = await this.packageDetector.getPackage(depName);
|
|
281
|
+
if (!depPkg)
|
|
282
|
+
continue;
|
|
283
|
+
const depPatterns = await this.loadPackagePatterns(depPkg, { ...options, includeSnippets: false });
|
|
284
|
+
const markedPatterns = depPatterns.map(p => ({ ...p, fromDependency: depName }));
|
|
285
|
+
if (markedPatterns.length > 0)
|
|
286
|
+
dependencies.push({ name: depName, patterns: markedPatterns.slice(0, 10) });
|
|
287
|
+
}
|
|
288
|
+
return dependencies;
|
|
289
|
+
}
|
|
290
|
+
estimateTokens(context) { return Math.ceil(JSON.stringify(context).length * TOKENS_PER_CHAR); }
|
|
291
|
+
countTokens(text) { return Math.ceil(text.length * TOKENS_PER_CHAR); }
|
|
292
|
+
trimContext(context, maxTokens) {
|
|
293
|
+
let currentTokens = this.estimateTokens(context);
|
|
294
|
+
if (currentTokens > maxTokens && context.dependencies) {
|
|
295
|
+
context.dependencies = context.dependencies.slice(0, 2);
|
|
296
|
+
currentTokens = this.estimateTokens(context);
|
|
297
|
+
}
|
|
298
|
+
if (currentTokens > maxTokens) {
|
|
299
|
+
for (const pattern of context.patterns)
|
|
300
|
+
delete pattern.example;
|
|
301
|
+
currentTokens = this.estimateTokens(context);
|
|
302
|
+
}
|
|
303
|
+
if (currentTokens > maxTokens) {
|
|
304
|
+
context.patterns = context.patterns.slice(0, 20);
|
|
305
|
+
currentTokens = this.estimateTokens(context);
|
|
306
|
+
}
|
|
307
|
+
if (currentTokens > maxTokens) {
|
|
308
|
+
context.keyFiles = context.keyFiles.slice(0, 5);
|
|
309
|
+
currentTokens = this.estimateTokens(context);
|
|
310
|
+
}
|
|
311
|
+
if (currentTokens > maxTokens) {
|
|
312
|
+
context.entryPoints = context.entryPoints.slice(0, 10);
|
|
313
|
+
currentTokens = this.estimateTokens(context);
|
|
314
|
+
}
|
|
315
|
+
if (currentTokens > maxTokens) {
|
|
316
|
+
context.dataAccessors = context.dataAccessors.slice(0, 10);
|
|
317
|
+
}
|
|
318
|
+
context.summary.estimatedTokens = this.estimateTokens(context);
|
|
319
|
+
}
|
|
320
|
+
buildSystemPrompt(context) {
|
|
321
|
+
const lines = [`# Package: ${context.package.name}`, '', `Language: ${context.package.language}`, `Path: ${context.package.path}`];
|
|
322
|
+
if (context.package.description)
|
|
323
|
+
lines.push(`Description: ${context.package.description}`);
|
|
324
|
+
lines.push('', '## Summary', `- ${context.summary.totalPatterns} patterns detected`, `- ${context.summary.totalConstraints} constraints apply`, `- ${context.summary.totalEntryPoints} entry points`, `- ${context.summary.totalDataAccessors} data accessors`);
|
|
325
|
+
return lines.join('\n');
|
|
326
|
+
}
|
|
327
|
+
buildConventions(context) {
|
|
328
|
+
if (context.patterns.length === 0)
|
|
329
|
+
return '';
|
|
330
|
+
const lines = ['## Conventions'];
|
|
331
|
+
for (const pattern of context.patterns.slice(0, 10)) {
|
|
332
|
+
lines.push(`\n### ${pattern.name}`, `Category: ${pattern.category}`, `Confidence: ${(pattern.confidence * 100).toFixed(0)}%`, `Occurrences: ${pattern.occurrences}`);
|
|
333
|
+
if (pattern.example)
|
|
334
|
+
lines.push('```', pattern.example, '```');
|
|
335
|
+
}
|
|
336
|
+
return lines.join('\n');
|
|
337
|
+
}
|
|
338
|
+
buildExamples(context) {
|
|
339
|
+
const patternsWithExamples = context.patterns.filter(p => p.example);
|
|
340
|
+
if (patternsWithExamples.length === 0)
|
|
341
|
+
return '';
|
|
342
|
+
const lines = ['## Examples'];
|
|
343
|
+
for (const pattern of patternsWithExamples.slice(0, 5))
|
|
344
|
+
lines.push(`\n### ${pattern.name}`, '```', pattern.example, '```');
|
|
345
|
+
return lines.join('\n');
|
|
346
|
+
}
|
|
347
|
+
buildConstraints(context) {
|
|
348
|
+
if (context.constraints.length === 0)
|
|
349
|
+
return '';
|
|
350
|
+
const lines = ['## Constraints'];
|
|
351
|
+
for (const constraint of context.constraints) {
|
|
352
|
+
lines.push(`\n### ${constraint.name}`, `Level: ${constraint.enforcement}`);
|
|
353
|
+
if (constraint.condition)
|
|
354
|
+
lines.push(`Condition: ${constraint.condition}`);
|
|
355
|
+
if (constraint.guidance)
|
|
356
|
+
lines.push(`Guidance: ${constraint.guidance}`);
|
|
357
|
+
}
|
|
358
|
+
return lines.join('\n');
|
|
359
|
+
}
|
|
360
|
+
isFileInPackage(filePath, pkg) {
|
|
361
|
+
const normalizedFile = filePath.replace(/\\/g, '/');
|
|
362
|
+
const normalizedPkg = pkg.path.replace(/\\/g, '/');
|
|
363
|
+
if (normalizedPkg === '.')
|
|
364
|
+
return !normalizedFile.includes('/packages/') && !normalizedFile.includes('/apps/');
|
|
365
|
+
return normalizedFile.startsWith(normalizedPkg + '/') || normalizedFile === normalizedPkg;
|
|
366
|
+
}
|
|
367
|
+
async extractSnippet(filePath, line) {
|
|
368
|
+
try {
|
|
369
|
+
const fullPath = path.join(this.rootDir, filePath);
|
|
370
|
+
const content = await fs.readFile(fullPath, 'utf-8');
|
|
371
|
+
const lines = content.split('\n');
|
|
372
|
+
if (line !== undefined && line > 0) {
|
|
373
|
+
const start = Math.max(0, line - 3);
|
|
374
|
+
const end = Math.min(lines.length, line + 7);
|
|
375
|
+
return lines.slice(start, end).join('\n');
|
|
376
|
+
}
|
|
377
|
+
return lines.slice(0, 10).join('\n');
|
|
378
|
+
}
|
|
379
|
+
catch {
|
|
380
|
+
return undefined;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
emitEvent(type, packageName, details) {
|
|
384
|
+
const event = { type, timestamp: new Date().toISOString(), ...(packageName ? { packageName } : {}), ...(details ? { details } : {}) };
|
|
385
|
+
this.emit(type, event);
|
|
386
|
+
this.emit('*', event);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
export function createPackageContextGenerator(rootDir) {
|
|
390
|
+
return new PackageContextGenerator(rootDir);
|
|
391
|
+
}
|
|
392
|
+
//# sourceMappingURL=context-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-generator.js","sourceRoot":"","sources":["../../src/context/context-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package Context Module
|
|
3
|
+
*
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Provides package-scoped context generation for monorepos.
|
|
7
|
+
* Enables AI context minimization by scoping patterns, constraints,
|
|
8
|
+
* and examples to specific packages.
|
|
9
|
+
*/
|
|
10
|
+
export type { PackageManager, DetectedPackage, MonorepoStructure, PackageContextOptions, ContextPattern, ContextConstraint, ContextEntryPoint, ContextDataAccessor, PackageContext, PackageContextResult, AIContextFormat, ContextCacheEntry, ContextEventType, ContextEvent, } from './types.js';
|
|
11
|
+
export { PackageDetector, createPackageDetector, } from './package-detector.js';
|
|
12
|
+
export { PackageContextGenerator, createPackageContextGenerator, } from './context-generator.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package Context Module
|
|
3
|
+
*
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Provides package-scoped context generation for monorepos.
|
|
7
|
+
* Enables AI context minimization by scoping patterns, constraints,
|
|
8
|
+
* and examples to specific packages.
|
|
9
|
+
*/
|
|
10
|
+
// Package Detection
|
|
11
|
+
export { PackageDetector, createPackageDetector, } from './package-detector.js';
|
|
12
|
+
// Context Generation
|
|
13
|
+
export { PackageContextGenerator, createPackageContextGenerator, } from './context-generator.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoBH,oBAAoB;AACpB,OAAO,EACL,eAAe,EACf,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,qBAAqB;AACrB,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package Detector
|
|
3
|
+
*
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Detects packages in monorepos across different package managers.
|
|
7
|
+
* Supports npm/pnpm/yarn workspaces, Python, Go, Java, C#, PHP, and Rust.
|
|
8
|
+
*/
|
|
9
|
+
import { EventEmitter } from 'node:events';
|
|
10
|
+
import type { DetectedPackage, MonorepoStructure } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Detects packages in monorepos
|
|
13
|
+
*/
|
|
14
|
+
export declare class PackageDetector extends EventEmitter {
|
|
15
|
+
private readonly rootDir;
|
|
16
|
+
private cache;
|
|
17
|
+
constructor(rootDir: string);
|
|
18
|
+
/**
|
|
19
|
+
* Detect monorepo structure
|
|
20
|
+
*/
|
|
21
|
+
detect(): Promise<MonorepoStructure>;
|
|
22
|
+
/**
|
|
23
|
+
* Get a specific package by name or path
|
|
24
|
+
*/
|
|
25
|
+
getPackage(nameOrPath: string): Promise<DetectedPackage | null>;
|
|
26
|
+
/**
|
|
27
|
+
* Clear cache
|
|
28
|
+
*/
|
|
29
|
+
clearCache(): void;
|
|
30
|
+
private detectNpmWorkspaces;
|
|
31
|
+
private detectPnpmWorkspaces;
|
|
32
|
+
private detectYarnWorkspaces;
|
|
33
|
+
private resolveWorkspaceGlobs;
|
|
34
|
+
private detectLanguageFromPackage;
|
|
35
|
+
private extractInternalDeps;
|
|
36
|
+
private extractExternalDeps;
|
|
37
|
+
private detectPythonPackages;
|
|
38
|
+
private extractPythonDeps;
|
|
39
|
+
private detectGoModules;
|
|
40
|
+
private extractGoDeps;
|
|
41
|
+
private detectMavenModules;
|
|
42
|
+
private detectGradleModules;
|
|
43
|
+
private detectComposerPackages;
|
|
44
|
+
private detectDotNetProjects;
|
|
45
|
+
private detectCargoWorkspaces;
|
|
46
|
+
private detectRootPackage;
|
|
47
|
+
private emitEvent;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create a package detector
|
|
51
|
+
*/
|
|
52
|
+
export declare function createPackageDetector(rootDir: string): PackageDetector;
|
|
53
|
+
//# sourceMappingURL=package-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-detector.d.ts","sourceRoot":"","sources":["../../src/context/package-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAEV,eAAe,EACf,iBAAiB,EAGlB,MAAM,YAAY,CAAC;AAyBpB;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,KAAK,CAAkC;gBAEnC,OAAO,EAAE,MAAM;IAM3B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA8D1C;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAoBrE;;OAEG;IACH,UAAU,IAAI,IAAI;YASJ,mBAAmB;YAuBnB,oBAAoB;YA2BpB,oBAAoB;YAcpB,qBAAqB;IAwDnC,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,mBAAmB;YAUb,oBAAoB;IA6DlC,OAAO,CAAC,iBAAiB;YAoBX,eAAe;IAoD7B,OAAO,CAAC,aAAa;YAoBP,kBAAkB;YAkDlB,mBAAmB;YAsDnB,sBAAsB;YAoCtB,oBAAoB;YA2CpB,qBAAqB;YAuDrB,iBAAiB;IAyD/B,OAAO,CAAC,SAAS;CAelB;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAEtE"}
|