@opencodereview/core 1.9.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/ai/anthropic-provider.d.ts +41 -0
- package/dist/ai/anthropic-provider.d.ts.map +1 -0
- package/dist/ai/anthropic-provider.js +139 -0
- package/dist/ai/anthropic-provider.js.map +1 -0
- package/dist/ai/index.d.ts +39 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +41 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/ollama-provider.d.ts +46 -0
- package/dist/ai/ollama-provider.d.ts.map +1 -0
- package/dist/ai/ollama-provider.js +149 -0
- package/dist/ai/ollama-provider.js.map +1 -0
- package/dist/ai/openai-provider.d.ts +44 -0
- package/dist/ai/openai-provider.d.ts.map +1 -0
- package/dist/ai/openai-provider.js +137 -0
- package/dist/ai/openai-provider.js.map +1 -0
- package/dist/ai/orchestrator.d.ts +60 -0
- package/dist/ai/orchestrator.d.ts.map +1 -0
- package/dist/ai/orchestrator.js +188 -0
- package/dist/ai/orchestrator.js.map +1 -0
- package/dist/ai/prompts.d.ts +27 -0
- package/dist/ai/prompts.d.ts.map +1 -0
- package/dist/ai/prompts.js +112 -0
- package/dist/ai/prompts.js.map +1 -0
- package/dist/ai/types.d.ts +75 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +10 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/ai/v4/embedding/index.d.ts +10 -0
- package/dist/ai/v4/embedding/index.d.ts.map +1 -0
- package/dist/ai/v4/embedding/index.js +10 -0
- package/dist/ai/v4/embedding/index.js.map +1 -0
- package/dist/ai/v4/embedding/local.d.ts +68 -0
- package/dist/ai/v4/embedding/local.d.ts.map +1 -0
- package/dist/ai/v4/embedding/local.js +167 -0
- package/dist/ai/v4/embedding/local.js.map +1 -0
- package/dist/ai/v4/embedding/ollama.d.ts +58 -0
- package/dist/ai/v4/embedding/ollama.d.ts.map +1 -0
- package/dist/ai/v4/embedding/ollama.js +101 -0
- package/dist/ai/v4/embedding/ollama.js.map +1 -0
- package/dist/ai/v4/embedding/openai.d.ts +36 -0
- package/dist/ai/v4/embedding/openai.d.ts.map +1 -0
- package/dist/ai/v4/embedding/openai.js +76 -0
- package/dist/ai/v4/embedding/openai.js.map +1 -0
- package/dist/ai/v4/embedding/similarity.d.ts +36 -0
- package/dist/ai/v4/embedding/similarity.d.ts.map +1 -0
- package/dist/ai/v4/embedding/similarity.js +60 -0
- package/dist/ai/v4/embedding/similarity.js.map +1 -0
- package/dist/ai/v4/index.d.ts +51 -0
- package/dist/ai/v4/index.d.ts.map +1 -0
- package/dist/ai/v4/index.js +54 -0
- package/dist/ai/v4/index.js.map +1 -0
- package/dist/ai/v4/llm/anthropic.d.ts +38 -0
- package/dist/ai/v4/llm/anthropic.d.ts.map +1 -0
- package/dist/ai/v4/llm/anthropic.js +86 -0
- package/dist/ai/v4/llm/anthropic.js.map +1 -0
- package/dist/ai/v4/llm/index.d.ts +9 -0
- package/dist/ai/v4/llm/index.d.ts.map +1 -0
- package/dist/ai/v4/llm/index.js +9 -0
- package/dist/ai/v4/llm/index.js.map +1 -0
- package/dist/ai/v4/llm/ollama.d.ts +39 -0
- package/dist/ai/v4/llm/ollama.d.ts.map +1 -0
- package/dist/ai/v4/llm/ollama.js +95 -0
- package/dist/ai/v4/llm/ollama.js.map +1 -0
- package/dist/ai/v4/llm/openai.d.ts +38 -0
- package/dist/ai/v4/llm/openai.d.ts.map +1 -0
- package/dist/ai/v4/llm/openai.js +88 -0
- package/dist/ai/v4/llm/openai.js.map +1 -0
- package/dist/ai/v4/patterns/defect-patterns.d.ts +57 -0
- package/dist/ai/v4/patterns/defect-patterns.d.ts.map +1 -0
- package/dist/ai/v4/patterns/defect-patterns.js +331 -0
- package/dist/ai/v4/patterns/defect-patterns.js.map +1 -0
- package/dist/ai/v4/patterns/index.d.ts +8 -0
- package/dist/ai/v4/patterns/index.d.ts.map +1 -0
- package/dist/ai/v4/patterns/index.js +7 -0
- package/dist/ai/v4/patterns/index.js.map +1 -0
- package/dist/ai/v4/pipeline.d.ts +74 -0
- package/dist/ai/v4/pipeline.d.ts.map +1 -0
- package/dist/ai/v4/pipeline.js +381 -0
- package/dist/ai/v4/pipeline.js.map +1 -0
- package/dist/ai/v4/sla.d.ts +62 -0
- package/dist/ai/v4/sla.d.ts.map +1 -0
- package/dist/ai/v4/sla.js +136 -0
- package/dist/ai/v4/sla.js.map +1 -0
- package/dist/ai/v4/types.d.ts +117 -0
- package/dist/ai/v4/types.d.ts.map +1 -0
- package/dist/ai/v4/types.js +16 -0
- package/dist/ai/v4/types.js.map +1 -0
- package/dist/ai-healer/prompt-builder.d.ts +33 -0
- package/dist/ai-healer/prompt-builder.d.ts.map +1 -0
- package/dist/ai-healer/prompt-builder.js +89 -0
- package/dist/ai-healer/prompt-builder.js.map +1 -0
- package/dist/config/defaults.d.ts +14 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +57 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +8 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +6 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +33 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +245 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/types.d.ts +58 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +7 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/v4-config.d.ts +77 -0
- package/dist/config/v4-config.d.ts.map +1 -0
- package/dist/config/v4-config.js +336 -0
- package/dist/config/v4-config.js.map +1 -0
- package/dist/detectors/ai-detector.d.ts +38 -0
- package/dist/detectors/ai-detector.d.ts.map +1 -0
- package/dist/detectors/ai-detector.js +62 -0
- package/dist/detectors/ai-detector.js.map +1 -0
- package/dist/detectors/context-break.d.ts +57 -0
- package/dist/detectors/context-break.d.ts.map +1 -0
- package/dist/detectors/context-break.js +199 -0
- package/dist/detectors/context-break.js.map +1 -0
- package/dist/detectors/deep-hallucination.d.ts +42 -0
- package/dist/detectors/deep-hallucination.d.ts.map +1 -0
- package/dist/detectors/deep-hallucination.js +297 -0
- package/dist/detectors/deep-hallucination.js.map +1 -0
- package/dist/detectors/duplication.d.ts +61 -0
- package/dist/detectors/duplication.d.ts.map +1 -0
- package/dist/detectors/duplication.js +204 -0
- package/dist/detectors/duplication.js.map +1 -0
- package/dist/detectors/hallucination.d.ts +80 -0
- package/dist/detectors/hallucination.d.ts.map +1 -0
- package/dist/detectors/hallucination.js +350 -0
- package/dist/detectors/hallucination.js.map +1 -0
- package/dist/detectors/index.d.ts +35 -0
- package/dist/detectors/index.d.ts.map +1 -0
- package/dist/detectors/index.js +33 -0
- package/dist/detectors/index.js.map +1 -0
- package/dist/detectors/logic-gap.d.ts +58 -0
- package/dist/detectors/logic-gap.d.ts.map +1 -0
- package/dist/detectors/logic-gap.js +284 -0
- package/dist/detectors/logic-gap.js.map +1 -0
- package/dist/detectors/over-engineering.d.ts +44 -0
- package/dist/detectors/over-engineering.d.ts.map +1 -0
- package/dist/detectors/over-engineering.js +257 -0
- package/dist/detectors/over-engineering.js.map +1 -0
- package/dist/detectors/security-pattern.d.ts +43 -0
- package/dist/detectors/security-pattern.d.ts.map +1 -0
- package/dist/detectors/security-pattern.js +235 -0
- package/dist/detectors/security-pattern.js.map +1 -0
- package/dist/detectors/stale-api.d.ts +44 -0
- package/dist/detectors/stale-api.d.ts.map +1 -0
- package/dist/detectors/stale-api.js +160 -0
- package/dist/detectors/stale-api.js.map +1 -0
- package/dist/detectors/type-safety.d.ts +41 -0
- package/dist/detectors/type-safety.d.ts.map +1 -0
- package/dist/detectors/type-safety.js +306 -0
- package/dist/detectors/type-safety.js.map +1 -0
- package/dist/detectors/v4/context-coherence.d.ts +67 -0
- package/dist/detectors/v4/context-coherence.d.ts.map +1 -0
- package/dist/detectors/v4/context-coherence.js +319 -0
- package/dist/detectors/v4/context-coherence.js.map +1 -0
- package/dist/detectors/v4/hallucinated-import.d.ts +52 -0
- package/dist/detectors/v4/hallucinated-import.d.ts.map +1 -0
- package/dist/detectors/v4/hallucinated-import.js +206 -0
- package/dist/detectors/v4/hallucinated-import.js.map +1 -0
- package/dist/detectors/v4/index.d.ts +28 -0
- package/dist/detectors/v4/index.d.ts.map +1 -0
- package/dist/detectors/v4/index.js +40 -0
- package/dist/detectors/v4/index.js.map +1 -0
- package/dist/detectors/v4/over-engineering.d.ts +69 -0
- package/dist/detectors/v4/over-engineering.d.ts.map +1 -0
- package/dist/detectors/v4/over-engineering.js +234 -0
- package/dist/detectors/v4/over-engineering.js.map +1 -0
- package/dist/detectors/v4/security-pattern.d.ts +46 -0
- package/dist/detectors/v4/security-pattern.d.ts.map +1 -0
- package/dist/detectors/v4/security-pattern.js +233 -0
- package/dist/detectors/v4/security-pattern.js.map +1 -0
- package/dist/detectors/v4/stale-api.d.ts +59 -0
- package/dist/detectors/v4/stale-api.d.ts.map +1 -0
- package/dist/detectors/v4/stale-api.js +470 -0
- package/dist/detectors/v4/stale-api.js.map +1 -0
- package/dist/detectors/v4/types.d.ts +74 -0
- package/dist/detectors/v4/types.d.ts.map +1 -0
- package/dist/detectors/v4/types.js +10 -0
- package/dist/detectors/v4/types.js.map +1 -0
- package/dist/diff/filter.d.ts +35 -0
- package/dist/diff/filter.d.ts.map +1 -0
- package/dist/diff/filter.js +65 -0
- package/dist/diff/filter.js.map +1 -0
- package/dist/diff/index.d.ts +9 -0
- package/dist/diff/index.d.ts.map +1 -0
- package/dist/diff/index.js +8 -0
- package/dist/diff/index.js.map +1 -0
- package/dist/diff/parser.d.ts +61 -0
- package/dist/diff/parser.d.ts.map +1 -0
- package/dist/diff/parser.js +203 -0
- package/dist/diff/parser.js.map +1 -0
- package/dist/i18n/en.d.ts +18 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/en.js +83 -0
- package/dist/i18n/en.js.map +1 -0
- package/dist/i18n/index.d.ts +13 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +14 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/provider.d.ts +54 -0
- package/dist/i18n/provider.d.ts.map +1 -0
- package/dist/i18n/provider.js +88 -0
- package/dist/i18n/provider.js.map +1 -0
- package/dist/i18n/types.d.ts +37 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +10 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/i18n/zh.d.ts +14 -0
- package/dist/i18n/zh.d.ts.map +1 -0
- package/dist/i18n/zh.js +83 -0
- package/dist/i18n/zh.js.map +1 -0
- package/dist/index.d.ts +113 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +106 -0
- package/dist/index.js.map +1 -0
- package/dist/ir/index.d.ts +10 -0
- package/dist/ir/index.d.ts.map +1 -0
- package/dist/ir/index.js +9 -0
- package/dist/ir/index.js.map +1 -0
- package/dist/ir/types.d.ts +126 -0
- package/dist/ir/types.d.ts.map +1 -0
- package/dist/ir/types.js +33 -0
- package/dist/ir/types.js.map +1 -0
- package/dist/languages/go/index.d.ts +7 -0
- package/dist/languages/go/index.d.ts.map +1 -0
- package/dist/languages/go/index.js +7 -0
- package/dist/languages/go/index.js.map +1 -0
- package/dist/languages/go/parser.d.ts +89 -0
- package/dist/languages/go/parser.d.ts.map +1 -0
- package/dist/languages/go/parser.js +509 -0
- package/dist/languages/go/parser.js.map +1 -0
- package/dist/languages/index.d.ts +13 -0
- package/dist/languages/index.d.ts.map +1 -0
- package/dist/languages/index.js +14 -0
- package/dist/languages/index.js.map +1 -0
- package/dist/languages/java/index.d.ts +7 -0
- package/dist/languages/java/index.d.ts.map +1 -0
- package/dist/languages/java/index.js +7 -0
- package/dist/languages/java/index.js.map +1 -0
- package/dist/languages/java/parser.d.ts +82 -0
- package/dist/languages/java/parser.d.ts.map +1 -0
- package/dist/languages/java/parser.js +492 -0
- package/dist/languages/java/parser.js.map +1 -0
- package/dist/languages/kotlin/index.d.ts +7 -0
- package/dist/languages/kotlin/index.d.ts.map +1 -0
- package/dist/languages/kotlin/index.js +7 -0
- package/dist/languages/kotlin/index.js.map +1 -0
- package/dist/languages/kotlin/parser.d.ts +84 -0
- package/dist/languages/kotlin/parser.d.ts.map +1 -0
- package/dist/languages/kotlin/parser.js +507 -0
- package/dist/languages/kotlin/parser.js.map +1 -0
- package/dist/languages/python/index.d.ts +7 -0
- package/dist/languages/python/index.d.ts.map +1 -0
- package/dist/languages/python/index.js +7 -0
- package/dist/languages/python/index.js.map +1 -0
- package/dist/languages/python/parser.d.ts +91 -0
- package/dist/languages/python/parser.d.ts.map +1 -0
- package/dist/languages/python/parser.js +375 -0
- package/dist/languages/python/parser.js.map +1 -0
- package/dist/languages/registry.d.ts +81 -0
- package/dist/languages/registry.d.ts.map +1 -0
- package/dist/languages/registry.js +150 -0
- package/dist/languages/registry.js.map +1 -0
- package/dist/languages/types.d.ts +137 -0
- package/dist/languages/types.d.ts.map +1 -0
- package/dist/languages/types.js +10 -0
- package/dist/languages/types.js.map +1 -0
- package/dist/languages/typescript/index.d.ts +7 -0
- package/dist/languages/typescript/index.d.ts.map +1 -0
- package/dist/languages/typescript/index.js +7 -0
- package/dist/languages/typescript/index.js.map +1 -0
- package/dist/languages/typescript/parser.d.ts +51 -0
- package/dist/languages/typescript/parser.d.ts.map +1 -0
- package/dist/languages/typescript/parser.js +286 -0
- package/dist/languages/typescript/parser.js.map +1 -0
- package/dist/license/generator.d.ts +43 -0
- package/dist/license/generator.d.ts.map +1 -0
- package/dist/license/generator.js +72 -0
- package/dist/license/generator.js.map +1 -0
- package/dist/license/index.d.ts +11 -0
- package/dist/license/index.d.ts.map +1 -0
- package/dist/license/index.js +12 -0
- package/dist/license/index.js.map +1 -0
- package/dist/license/types.d.ts +85 -0
- package/dist/license/types.d.ts.map +1 -0
- package/dist/license/types.js +10 -0
- package/dist/license/types.js.map +1 -0
- package/dist/license/validator.d.ts +77 -0
- package/dist/license/validator.d.ts.map +1 -0
- package/dist/license/validator.js +275 -0
- package/dist/license/validator.js.map +1 -0
- package/dist/parser/extractor.d.ts +31 -0
- package/dist/parser/extractor.d.ts.map +1 -0
- package/dist/parser/extractor.js +10 -0
- package/dist/parser/extractor.js.map +1 -0
- package/dist/parser/extractors/go.d.ts +21 -0
- package/dist/parser/extractors/go.d.ts.map +1 -0
- package/dist/parser/extractors/go.js +569 -0
- package/dist/parser/extractors/go.js.map +1 -0
- package/dist/parser/extractors/index.d.ts +13 -0
- package/dist/parser/extractors/index.d.ts.map +1 -0
- package/dist/parser/extractors/index.js +13 -0
- package/dist/parser/extractors/index.js.map +1 -0
- package/dist/parser/extractors/java.d.ts +24 -0
- package/dist/parser/extractors/java.d.ts.map +1 -0
- package/dist/parser/extractors/java.js +611 -0
- package/dist/parser/extractors/java.js.map +1 -0
- package/dist/parser/extractors/kotlin.d.ts +25 -0
- package/dist/parser/extractors/kotlin.d.ts.map +1 -0
- package/dist/parser/extractors/kotlin.js +665 -0
- package/dist/parser/extractors/kotlin.js.map +1 -0
- package/dist/parser/extractors/python.d.ts +21 -0
- package/dist/parser/extractors/python.d.ts.map +1 -0
- package/dist/parser/extractors/python.js +514 -0
- package/dist/parser/extractors/python.js.map +1 -0
- package/dist/parser/extractors/typescript.d.ts +23 -0
- package/dist/parser/extractors/typescript.d.ts.map +1 -0
- package/dist/parser/extractors/typescript.js +664 -0
- package/dist/parser/extractors/typescript.js.map +1 -0
- package/dist/parser/index.d.ts +15 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +14 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/manager.d.ts +50 -0
- package/dist/parser/manager.d.ts.map +1 -0
- package/dist/parser/manager.js +159 -0
- package/dist/parser/manager.js.map +1 -0
- package/dist/registry/builtins/go-builtins.d.ts +13 -0
- package/dist/registry/builtins/go-builtins.d.ts.map +1 -0
- package/dist/registry/builtins/go-builtins.js +63 -0
- package/dist/registry/builtins/go-builtins.js.map +1 -0
- package/dist/registry/builtins/java-builtins.d.ts +10 -0
- package/dist/registry/builtins/java-builtins.d.ts.map +1 -0
- package/dist/registry/builtins/java-builtins.js +59 -0
- package/dist/registry/builtins/java-builtins.js.map +1 -0
- package/dist/registry/builtins/kotlin-builtins.d.ts +10 -0
- package/dist/registry/builtins/kotlin-builtins.d.ts.map +1 -0
- package/dist/registry/builtins/kotlin-builtins.js +38 -0
- package/dist/registry/builtins/kotlin-builtins.js.map +1 -0
- package/dist/registry/builtins/node-builtins.d.ts +10 -0
- package/dist/registry/builtins/node-builtins.d.ts.map +1 -0
- package/dist/registry/builtins/node-builtins.js +36 -0
- package/dist/registry/builtins/node-builtins.js.map +1 -0
- package/dist/registry/builtins/python-builtins.d.ts +10 -0
- package/dist/registry/builtins/python-builtins.d.ts.map +1 -0
- package/dist/registry/builtins/python-builtins.js +43 -0
- package/dist/registry/builtins/python-builtins.js.map +1 -0
- package/dist/registry/cache.d.ts +53 -0
- package/dist/registry/cache.d.ts.map +1 -0
- package/dist/registry/cache.js +147 -0
- package/dist/registry/cache.js.map +1 -0
- package/dist/registry/go-registry.d.ts +52 -0
- package/dist/registry/go-registry.d.ts.map +1 -0
- package/dist/registry/go-registry.js +148 -0
- package/dist/registry/go-registry.js.map +1 -0
- package/dist/registry/index.d.ts +18 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +21 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/maven-registry.d.ts +57 -0
- package/dist/registry/maven-registry.d.ts.map +1 -0
- package/dist/registry/maven-registry.js +155 -0
- package/dist/registry/maven-registry.js.map +1 -0
- package/dist/registry/npm-registry.d.ts +40 -0
- package/dist/registry/npm-registry.d.ts.map +1 -0
- package/dist/registry/npm-registry.js +155 -0
- package/dist/registry/npm-registry.js.map +1 -0
- package/dist/registry/pypi-registry.d.ts +49 -0
- package/dist/registry/pypi-registry.d.ts.map +1 -0
- package/dist/registry/pypi-registry.js +175 -0
- package/dist/registry/pypi-registry.js.map +1 -0
- package/dist/registry/registry-manager.d.ts +45 -0
- package/dist/registry/registry-manager.d.ts.map +1 -0
- package/dist/registry/registry-manager.js +107 -0
- package/dist/registry/registry-manager.js.map +1 -0
- package/dist/registry/types.d.ts +83 -0
- package/dist/registry/types.d.ts.map +1 -0
- package/dist/registry/types.js +12 -0
- package/dist/registry/types.js.map +1 -0
- package/dist/reporter/html-reporter.d.ts +20 -0
- package/dist/reporter/html-reporter.d.ts.map +1 -0
- package/dist/reporter/html-reporter.js +612 -0
- package/dist/reporter/html-reporter.js.map +1 -0
- package/dist/reporter/index.d.ts +28 -0
- package/dist/reporter/index.d.ts.map +1 -0
- package/dist/reporter/index.js +48 -0
- package/dist/reporter/index.js.map +1 -0
- package/dist/reporter/markdown-reporter.d.ts +16 -0
- package/dist/reporter/markdown-reporter.d.ts.map +1 -0
- package/dist/reporter/markdown-reporter.js +182 -0
- package/dist/reporter/markdown-reporter.js.map +1 -0
- package/dist/reporter/sarif-reporter.d.ts +67 -0
- package/dist/reporter/sarif-reporter.d.ts.map +1 -0
- package/dist/reporter/sarif-reporter.js +73 -0
- package/dist/reporter/sarif-reporter.js.map +1 -0
- package/dist/reporter/terminal-reporter.d.ts +14 -0
- package/dist/reporter/terminal-reporter.d.ts.map +1 -0
- package/dist/reporter/terminal-reporter.js +126 -0
- package/dist/reporter/terminal-reporter.js.map +1 -0
- package/dist/reporter/types.d.ts +43 -0
- package/dist/reporter/types.d.ts.map +1 -0
- package/dist/reporter/types.js +10 -0
- package/dist/reporter/types.js.map +1 -0
- package/dist/reporter/v4-html.d.ts +24 -0
- package/dist/reporter/v4-html.d.ts.map +1 -0
- package/dist/reporter/v4-html.js +359 -0
- package/dist/reporter/v4-html.js.map +1 -0
- package/dist/reporter/v4-terminal.d.ts +55 -0
- package/dist/reporter/v4-terminal.d.ts.map +1 -0
- package/dist/reporter/v4-terminal.js +199 -0
- package/dist/reporter/v4-terminal.js.map +1 -0
- package/dist/scanner/index.d.ts +9 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +9 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/v4-scanner.d.ts +162 -0
- package/dist/scanner/v4-scanner.d.ts.map +1 -0
- package/dist/scanner/v4-scanner.js +327 -0
- package/dist/scanner/v4-scanner.js.map +1 -0
- package/dist/scorer/report.d.ts +52 -0
- package/dist/scorer/report.d.ts.map +1 -0
- package/dist/scorer/report.js +347 -0
- package/dist/scorer/report.js.map +1 -0
- package/dist/scorer/scoring-engine.d.ts +170 -0
- package/dist/scorer/scoring-engine.d.ts.map +1 -0
- package/dist/scorer/scoring-engine.js +308 -0
- package/dist/scorer/scoring-engine.js.map +1 -0
- package/dist/scorer/v4-adapter.d.ts +87 -0
- package/dist/scorer/v4-adapter.d.ts.map +1 -0
- package/dist/scorer/v4-adapter.js +145 -0
- package/dist/scorer/v4-adapter.js.map +1 -0
- package/dist/sla/index.d.ts +7 -0
- package/dist/sla/index.d.ts.map +1 -0
- package/dist/sla/index.js +6 -0
- package/dist/sla/index.js.map +1 -0
- package/dist/sla/tracker.d.ts +70 -0
- package/dist/sla/tracker.d.ts.map +1 -0
- package/dist/sla/tracker.js +151 -0
- package/dist/sla/tracker.js.map +1 -0
- package/dist/sla/types.d.ts +67 -0
- package/dist/sla/types.d.ts.map +1 -0
- package/dist/sla/types.js +42 -0
- package/dist/sla/types.js.map +1 -0
- package/dist/types.d.ts +172 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +69 -0
- package/dist/types.js.map +1 -0
- package/package.json +97 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SLA Tracker
|
|
3
|
+
*
|
|
4
|
+
* Tracks scan performance against SLA targets.
|
|
5
|
+
* Provides timeout checking and metric collection.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```ts
|
|
9
|
+
* const tracker = new SLATracker(SLALevel.L2_STANDARD, 47);
|
|
10
|
+
* tracker.start();
|
|
11
|
+
*
|
|
12
|
+
* // During scan — check if we should degrade
|
|
13
|
+
* const check = tracker.checkTimeout();
|
|
14
|
+
* if (check.shouldDegrade) {
|
|
15
|
+
* // Skip remaining Tier 2/3 detectors
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* // After scan — collect final metrics
|
|
19
|
+
* const metrics = tracker.finalize(issues, detectorsUsed, detectorsTotal);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import { SLALevel, SLA_TARGET_DURATIONS, SLA_AI_ANALYSIS, } from './types.js';
|
|
23
|
+
export class SLATracker {
|
|
24
|
+
startTime = 0;
|
|
25
|
+
level;
|
|
26
|
+
fileCount;
|
|
27
|
+
_degraded = false;
|
|
28
|
+
_degradeReason;
|
|
29
|
+
/**
|
|
30
|
+
* @param level - SLA level for this scan
|
|
31
|
+
* @param fileCount - Number of files to scan (used for scaling target duration)
|
|
32
|
+
*/
|
|
33
|
+
constructor(level, fileCount = 100) {
|
|
34
|
+
this.level = level;
|
|
35
|
+
this.fileCount = Math.max(1, fileCount);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Start the SLA timer.
|
|
39
|
+
*/
|
|
40
|
+
start() {
|
|
41
|
+
this.startTime = Date.now();
|
|
42
|
+
this._degraded = false;
|
|
43
|
+
this._degradeReason = undefined;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get elapsed time since start (ms).
|
|
47
|
+
*/
|
|
48
|
+
get elapsedMs() {
|
|
49
|
+
if (this.startTime === 0)
|
|
50
|
+
return 0;
|
|
51
|
+
return Date.now() - this.startTime;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Calculate the target duration for the actual file count.
|
|
55
|
+
* Scales linearly from the per-100-files target.
|
|
56
|
+
* Minimum target is 1 second regardless of file count.
|
|
57
|
+
*/
|
|
58
|
+
get targetDurationMs() {
|
|
59
|
+
const baseDuration = SLA_TARGET_DURATIONS[this.level];
|
|
60
|
+
return Math.max(1000, Math.ceil((this.fileCount / 100) * baseDuration));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Check if the scan is exceeding the SLA target.
|
|
64
|
+
* Returns whether degradation should occur.
|
|
65
|
+
*
|
|
66
|
+
* Degradation threshold: 80% of target time consumed → recommend degrading.
|
|
67
|
+
* This gives detectors remaining 20% to wrap up.
|
|
68
|
+
*/
|
|
69
|
+
checkTimeout() {
|
|
70
|
+
const elapsed = this.elapsedMs;
|
|
71
|
+
const target = this.targetDurationMs;
|
|
72
|
+
const threshold = target * 0.8; // 80% threshold
|
|
73
|
+
if (elapsed >= threshold) {
|
|
74
|
+
const reason = `Elapsed ${elapsed}ms exceeds 80% of target ${target}ms for SLA ${this.level}`;
|
|
75
|
+
return {
|
|
76
|
+
shouldDegrade: true,
|
|
77
|
+
reason,
|
|
78
|
+
elapsedMs: elapsed,
|
|
79
|
+
targetMs: target,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
shouldDegrade: false,
|
|
84
|
+
reason: `Within target: ${elapsed}ms / ${target}ms`,
|
|
85
|
+
elapsedMs: elapsed,
|
|
86
|
+
targetMs: target,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Mark this scan as degraded.
|
|
91
|
+
*/
|
|
92
|
+
markDegraded(reason) {
|
|
93
|
+
this._degraded = true;
|
|
94
|
+
this._degradeReason = reason;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Collect final SLA metrics after the scan completes.
|
|
98
|
+
*/
|
|
99
|
+
finalize(issues, detectorsUsed, detectorsTotal) {
|
|
100
|
+
const scanDurationMs = this.elapsedMs;
|
|
101
|
+
const targetDurationMs = this.targetDurationMs;
|
|
102
|
+
// Count issues by severity
|
|
103
|
+
const counts = countBySeverity(issues);
|
|
104
|
+
return {
|
|
105
|
+
level: this.level,
|
|
106
|
+
scanDurationMs,
|
|
107
|
+
filesScanned: this.fileCount,
|
|
108
|
+
detectorsUsed,
|
|
109
|
+
detectorsTotal,
|
|
110
|
+
aiAnalysis: SLA_AI_ANALYSIS[this.level],
|
|
111
|
+
issuesFound: issues.length,
|
|
112
|
+
criticalCount: counts.critical,
|
|
113
|
+
highCount: counts.high,
|
|
114
|
+
mediumCount: counts.medium,
|
|
115
|
+
lowCount: counts.low,
|
|
116
|
+
infoCount: counts.info,
|
|
117
|
+
targetDurationMs,
|
|
118
|
+
withinTarget: scanDurationMs <= targetDurationMs,
|
|
119
|
+
degraded: this._degraded,
|
|
120
|
+
degradeReason: this._degradeReason,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// ─── Helpers ───────────────────────────────────────────────────────
|
|
125
|
+
function countBySeverity(issues) {
|
|
126
|
+
const counts = {
|
|
127
|
+
critical: 0,
|
|
128
|
+
high: 0,
|
|
129
|
+
medium: 0,
|
|
130
|
+
low: 0,
|
|
131
|
+
info: 0,
|
|
132
|
+
};
|
|
133
|
+
for (const issue of issues) {
|
|
134
|
+
counts[issue.severity] = (counts[issue.severity] ?? 0) + 1;
|
|
135
|
+
}
|
|
136
|
+
return counts;
|
|
137
|
+
}
|
|
138
|
+
// ─── SLA Level Helpers ─────────────────────────────────────────────
|
|
139
|
+
/**
|
|
140
|
+
* Parse an SLA level string to enum value.
|
|
141
|
+
*/
|
|
142
|
+
export function parseSLALevel(value) {
|
|
143
|
+
const upper = value.toUpperCase();
|
|
144
|
+
switch (upper) {
|
|
145
|
+
case 'L1': return SLALevel.L1_FAST;
|
|
146
|
+
case 'L2': return SLALevel.L2_STANDARD;
|
|
147
|
+
case 'L3': return SLALevel.L3_DEEP;
|
|
148
|
+
default: return SLALevel.L2_STANDARD;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../src/sla/tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SLA Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Defines SLA levels, metrics, and target thresholds for
|
|
5
|
+
* Open Code Review scanning performance.
|
|
6
|
+
*/
|
|
7
|
+
export declare enum SLALevel {
|
|
8
|
+
/** ≤10s/100files, no AI, ≥80% accuracy */
|
|
9
|
+
L1_FAST = "L1",
|
|
10
|
+
/** ≤30s/100files, optional local AI, ≥85% accuracy */
|
|
11
|
+
L2_STANDARD = "L2",
|
|
12
|
+
/** ≤120s/100files, local+remote AI, ≥90% accuracy */
|
|
13
|
+
L3_DEEP = "L3"
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Target duration per 100 files for each SLA level (in milliseconds).
|
|
17
|
+
*/
|
|
18
|
+
export declare const SLA_TARGET_DURATIONS: Record<SLALevel, number>;
|
|
19
|
+
/**
|
|
20
|
+
* AI analysis type for each SLA level.
|
|
21
|
+
*/
|
|
22
|
+
export declare const SLA_AI_ANALYSIS: Record<SLALevel, 'none' | 'local' | 'local+remote'>;
|
|
23
|
+
/**
|
|
24
|
+
* Target accuracy for each SLA level.
|
|
25
|
+
*/
|
|
26
|
+
export declare const SLA_ACCURACY_TARGETS: Record<SLALevel, number>;
|
|
27
|
+
export interface SLAMetrics {
|
|
28
|
+
/** SLA level used for this scan */
|
|
29
|
+
level: SLALevel;
|
|
30
|
+
/** Total scan duration in milliseconds */
|
|
31
|
+
scanDurationMs: number;
|
|
32
|
+
/** Number of files scanned */
|
|
33
|
+
filesScanned: number;
|
|
34
|
+
/** Number of detectors that actually ran */
|
|
35
|
+
detectorsUsed: number;
|
|
36
|
+
/** Total number of available detectors */
|
|
37
|
+
detectorsTotal: number;
|
|
38
|
+
/** Type of AI analysis used */
|
|
39
|
+
aiAnalysis: 'none' | 'local' | 'local+remote';
|
|
40
|
+
/** Total issues found */
|
|
41
|
+
issuesFound: number;
|
|
42
|
+
/** Issue counts by severity */
|
|
43
|
+
criticalCount: number;
|
|
44
|
+
highCount: number;
|
|
45
|
+
mediumCount: number;
|
|
46
|
+
lowCount: number;
|
|
47
|
+
infoCount: number;
|
|
48
|
+
/** Target duration for the file count (scaled from per-100-files target) */
|
|
49
|
+
targetDurationMs: number;
|
|
50
|
+
/** Whether scan completed within target duration */
|
|
51
|
+
withinTarget: boolean;
|
|
52
|
+
/** Whether the scan was degraded due to timeout */
|
|
53
|
+
degraded: boolean;
|
|
54
|
+
/** Reason for degradation (if any) */
|
|
55
|
+
degradeReason?: string;
|
|
56
|
+
}
|
|
57
|
+
export interface SLATimeoutCheck {
|
|
58
|
+
/** Whether the current scan should degrade to a lower tier */
|
|
59
|
+
shouldDegrade: boolean;
|
|
60
|
+
/** Human-readable reason */
|
|
61
|
+
reason: string;
|
|
62
|
+
/** Elapsed time in ms */
|
|
63
|
+
elapsedMs: number;
|
|
64
|
+
/** Target time in ms */
|
|
65
|
+
targetMs: number;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sla/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,oBAAY,QAAQ;IAClB,0CAA0C;IAC1C,OAAO,OAAO;IACd,sDAAsD;IACtD,WAAW,OAAO;IAClB,qDAAqD;IACrD,OAAO,OAAO;CACf;AAID;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAIzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,CAI/E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAIzD,CAAC;AAIF,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,KAAK,EAAE,QAAQ,CAAC;IAEhB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IAEvB,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IAErB,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAC;IAEtB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IAEvB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;IAE9C,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IAEpB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAElB,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,CAAC;IAEzB,oDAAoD;IACpD,YAAY,EAAE,OAAO,CAAC;IAEtB,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;IAElB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,aAAa,EAAE,OAAO,CAAC;IACvB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SLA Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Defines SLA levels, metrics, and target thresholds for
|
|
5
|
+
* Open Code Review scanning performance.
|
|
6
|
+
*/
|
|
7
|
+
// ─── SLA Level ─────────────────────────────────────────────────────
|
|
8
|
+
export var SLALevel;
|
|
9
|
+
(function (SLALevel) {
|
|
10
|
+
/** ≤10s/100files, no AI, ≥80% accuracy */
|
|
11
|
+
SLALevel["L1_FAST"] = "L1";
|
|
12
|
+
/** ≤30s/100files, optional local AI, ≥85% accuracy */
|
|
13
|
+
SLALevel["L2_STANDARD"] = "L2";
|
|
14
|
+
/** ≤120s/100files, local+remote AI, ≥90% accuracy */
|
|
15
|
+
SLALevel["L3_DEEP"] = "L3";
|
|
16
|
+
})(SLALevel || (SLALevel = {}));
|
|
17
|
+
// ─── SLA Target Durations ──────────────────────────────────────────
|
|
18
|
+
/**
|
|
19
|
+
* Target duration per 100 files for each SLA level (in milliseconds).
|
|
20
|
+
*/
|
|
21
|
+
export const SLA_TARGET_DURATIONS = {
|
|
22
|
+
[SLALevel.L1_FAST]: 10_000, // 10s / 100 files
|
|
23
|
+
[SLALevel.L2_STANDARD]: 30_000, // 30s / 100 files
|
|
24
|
+
[SLALevel.L3_DEEP]: 120_000, // 120s / 100 files
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* AI analysis type for each SLA level.
|
|
28
|
+
*/
|
|
29
|
+
export const SLA_AI_ANALYSIS = {
|
|
30
|
+
[SLALevel.L1_FAST]: 'none',
|
|
31
|
+
[SLALevel.L2_STANDARD]: 'local',
|
|
32
|
+
[SLALevel.L3_DEEP]: 'local+remote',
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Target accuracy for each SLA level.
|
|
36
|
+
*/
|
|
37
|
+
export const SLA_ACCURACY_TARGETS = {
|
|
38
|
+
[SLALevel.L1_FAST]: 0.80,
|
|
39
|
+
[SLALevel.L2_STANDARD]: 0.85,
|
|
40
|
+
[SLALevel.L3_DEEP]: 0.90,
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sla/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sEAAsE;AAEtE,MAAM,CAAN,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,0CAA0C;IAC1C,0BAAc,CAAA;IACd,sDAAsD;IACtD,8BAAkB,CAAA;IAClB,qDAAqD;IACrD,0BAAc,CAAA;AAChB,CAAC,EAPW,QAAQ,KAAR,QAAQ,QAOnB;AAED,sEAAsE;AAEtE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA6B;IAC5D,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAM,kBAAkB;IAClD,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,kBAAkB;IAClD,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAK,mBAAmB;CACpD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAwD;IAClF,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM;IAC1B,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO;IAC/B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc;CACnC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA6B;IAC5D,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI;IACxB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI;IAC5B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI;CACzB,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Open Code Review V3 — Unified Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Core types shared across all modules: detectors, scoring engine,
|
|
5
|
+
* SLA framework, config system, and language adapters.
|
|
6
|
+
*
|
|
7
|
+
* @since 0.3.0
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Classification of AI-specific defect patterns.
|
|
11
|
+
* These categories represent issues unique to AI-generated code
|
|
12
|
+
* that traditional linters typically don't cover.
|
|
13
|
+
*/
|
|
14
|
+
export declare enum AIDefectCategory {
|
|
15
|
+
/** AI references non-existent packages, APIs, or methods */
|
|
16
|
+
HALLUCINATION = "hallucination",
|
|
17
|
+
/** AI uses outdated/deprecated APIs from training data */
|
|
18
|
+
STALE_KNOWLEDGE = "stale-knowledge",
|
|
19
|
+
/** AI loses context across long outputs, causing inconsistencies */
|
|
20
|
+
CONTEXT_LOSS = "context-loss",
|
|
21
|
+
/** AI generates code with security vulnerabilities */
|
|
22
|
+
SECURITY_ANTIPATTERN = "security",
|
|
23
|
+
/** AI over-engineers solutions with unnecessary complexity */
|
|
24
|
+
OVER_ENGINEERING = "over-engineering",
|
|
25
|
+
/** AI leaves incomplete implementations (TODO, stubs, empty catch) */
|
|
26
|
+
INCOMPLETE_IMPL = "incomplete",
|
|
27
|
+
/** AI generates type-unsafe code (excessive any, unsafe casts) */
|
|
28
|
+
TYPE_SAFETY = "type-safety",
|
|
29
|
+
/** AI generates code with missing/incorrect error handling */
|
|
30
|
+
ERROR_HANDLING = "error-handling",
|
|
31
|
+
/** AI duplicates logic that should be extracted */
|
|
32
|
+
DUPLICATION = "duplication",
|
|
33
|
+
/** AI leaks training data patterns (license headers, example code) */
|
|
34
|
+
TRAINING_LEAK = "training-leak"
|
|
35
|
+
}
|
|
36
|
+
/** Severity levels for detected issues, from most to least critical */
|
|
37
|
+
export type Severity = 'critical' | 'high' | 'medium' | 'low' | 'info';
|
|
38
|
+
/** Deduction points per severity level */
|
|
39
|
+
export declare const SEVERITY_DEDUCTIONS: Record<Severity, number>;
|
|
40
|
+
/**
|
|
41
|
+
* Unified Issue format — standard output for ALL detectors.
|
|
42
|
+
* Every detected problem is represented as a UnifiedIssue.
|
|
43
|
+
*/
|
|
44
|
+
export interface UnifiedIssue {
|
|
45
|
+
/** Unique issue ID (e.g. "hallucination:1") */
|
|
46
|
+
id: string;
|
|
47
|
+
/** Name of the detector that found this issue */
|
|
48
|
+
detector: string;
|
|
49
|
+
/** Issue sub-type (e.g. "phantom-package", "empty-catch") */
|
|
50
|
+
type?: string;
|
|
51
|
+
/** AI defect category */
|
|
52
|
+
category: AIDefectCategory;
|
|
53
|
+
/** Severity level */
|
|
54
|
+
severity: Severity;
|
|
55
|
+
/** Human-readable description */
|
|
56
|
+
message: string;
|
|
57
|
+
/** File path */
|
|
58
|
+
file: string;
|
|
59
|
+
/** Line number (1-based) */
|
|
60
|
+
line: number;
|
|
61
|
+
/** Column number (1-based, optional) */
|
|
62
|
+
column?: number;
|
|
63
|
+
/** End line (optional, for range) */
|
|
64
|
+
endLine?: number;
|
|
65
|
+
/** End column (optional, for range) */
|
|
66
|
+
endColumn?: number;
|
|
67
|
+
/** Source code snippet around the issue */
|
|
68
|
+
source?: string;
|
|
69
|
+
/** Suggested fix description */
|
|
70
|
+
suggestion?: string;
|
|
71
|
+
/** Structured fix info */
|
|
72
|
+
fix?: {
|
|
73
|
+
description: string;
|
|
74
|
+
autoFixable: boolean;
|
|
75
|
+
};
|
|
76
|
+
/** Attribution: root cause and frequency */
|
|
77
|
+
attribution?: {
|
|
78
|
+
rootCause: string;
|
|
79
|
+
frequency: 'common' | 'occasional' | 'rare';
|
|
80
|
+
};
|
|
81
|
+
/** Reference links */
|
|
82
|
+
references?: string[] | {
|
|
83
|
+
urls: string[];
|
|
84
|
+
cweId?: string;
|
|
85
|
+
};
|
|
86
|
+
/** Whether auto-fixable */
|
|
87
|
+
autoFixable?: boolean;
|
|
88
|
+
/** Effort to fix */
|
|
89
|
+
fixEffort?: 'trivial' | 'small' | 'medium' | 'large';
|
|
90
|
+
/** Detection confidence (0.0-1.0) */
|
|
91
|
+
confidence?: number;
|
|
92
|
+
/** Detection source */
|
|
93
|
+
detectionSource?: 'static' | 'ai' | 'both';
|
|
94
|
+
}
|
|
95
|
+
/** Result of a detector run on a single file */
|
|
96
|
+
export interface DetectorResult {
|
|
97
|
+
detector: string;
|
|
98
|
+
file: string;
|
|
99
|
+
issues: UnifiedIssue[];
|
|
100
|
+
durationMs: number;
|
|
101
|
+
}
|
|
102
|
+
/** Context passed to detectors during analysis */
|
|
103
|
+
export interface AnalysisContext {
|
|
104
|
+
projectRoot: string;
|
|
105
|
+
config: import('./config/types.js').AICVConfig;
|
|
106
|
+
astCache: Map<string, unknown>;
|
|
107
|
+
registryCache: Map<string, {
|
|
108
|
+
exists: boolean;
|
|
109
|
+
checkedAt: number;
|
|
110
|
+
}>;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Unified Detector interface — all V3 detectors implement this.
|
|
114
|
+
*
|
|
115
|
+
* Tiers:
|
|
116
|
+
* 1 = Fast (regex/AST, <0.5s/100 files) — always enabled
|
|
117
|
+
* 2 = Deep (type-aware, <5s/100 files) — default enabled
|
|
118
|
+
* 3 = AI (LLM analysis) — opt-in with --ai flag
|
|
119
|
+
*
|
|
120
|
+
* Detectors may implement either or both:
|
|
121
|
+
* - detect(files): simplified batch interface (Worker A pattern)
|
|
122
|
+
* - analyze(filePath, source, ctx): per-file with context (Architecture doc pattern)
|
|
123
|
+
*/
|
|
124
|
+
export interface Detector {
|
|
125
|
+
/** Detector identifier */
|
|
126
|
+
readonly name: string;
|
|
127
|
+
/** Semantic version */
|
|
128
|
+
readonly version: string;
|
|
129
|
+
/** Execution tier: 1=fast, 2=deep, 3=AI */
|
|
130
|
+
readonly tier: 1 | 2 | 3;
|
|
131
|
+
/**
|
|
132
|
+
* Batch detection on multiple files.
|
|
133
|
+
* @param files Array of file analysis inputs
|
|
134
|
+
* @returns Array of unified issues found
|
|
135
|
+
*/
|
|
136
|
+
detect(files: FileAnalysis[]): Promise<UnifiedIssue[]>;
|
|
137
|
+
}
|
|
138
|
+
/** Supported language identifiers */
|
|
139
|
+
export type SupportedLanguage = 'typescript' | 'javascript' | 'python' | 'java' | 'go' | 'kotlin';
|
|
140
|
+
/**
|
|
141
|
+
* Input for detector analysis — represents a single file to be analyzed.
|
|
142
|
+
* The `ast` field is optional and populated by the LanguageAdapter if available.
|
|
143
|
+
*/
|
|
144
|
+
export interface FileAnalysis {
|
|
145
|
+
/** Absolute or relative file path */
|
|
146
|
+
path: string;
|
|
147
|
+
/** Full file content */
|
|
148
|
+
content: string;
|
|
149
|
+
/** Programming language identifier */
|
|
150
|
+
language: SupportedLanguage | string;
|
|
151
|
+
/** Parsed AST (language-specific, populated by LanguageAdapter) */
|
|
152
|
+
ast?: unknown;
|
|
153
|
+
}
|
|
154
|
+
/** Grade levels for V3 scoring */
|
|
155
|
+
export type Grade = 'A+' | 'A' | 'B' | 'C' | 'D' | 'F';
|
|
156
|
+
/** Scoring dimension identifier */
|
|
157
|
+
export type ScoringDimensionId = 'aiFaithfulness' | 'codeFreshness' | 'contextCoherence' | 'implementationQuality';
|
|
158
|
+
/** V3 scoring dimension names (short form) */
|
|
159
|
+
export type ScoringDimension = 'faithfulness' | 'freshness' | 'coherence' | 'quality';
|
|
160
|
+
/** Scoring dimension configuration */
|
|
161
|
+
export interface ScoringDimensionConfig {
|
|
162
|
+
weight: number;
|
|
163
|
+
name: string;
|
|
164
|
+
}
|
|
165
|
+
/** V3 scoring dimension weights (must sum to 100) */
|
|
166
|
+
export declare const SCORING_WEIGHTS: Record<ScoringDimension, number>;
|
|
167
|
+
/**
|
|
168
|
+
* Maps each AIDefectCategory to its primary scoring dimension.
|
|
169
|
+
* Used by the scoring engine to route issues to the correct dimension.
|
|
170
|
+
*/
|
|
171
|
+
export declare const CATEGORY_DIMENSION_MAP: Record<AIDefectCategory, ScoringDimension>;
|
|
172
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Open Code Review V3 — Unified Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Core types shared across all modules: detectors, scoring engine,
|
|
5
|
+
* SLA framework, config system, and language adapters.
|
|
6
|
+
*
|
|
7
|
+
* @since 0.3.0
|
|
8
|
+
*/
|
|
9
|
+
// ─── AI Defect Categories ──────────────────────────────────────────
|
|
10
|
+
/**
|
|
11
|
+
* Classification of AI-specific defect patterns.
|
|
12
|
+
* These categories represent issues unique to AI-generated code
|
|
13
|
+
* that traditional linters typically don't cover.
|
|
14
|
+
*/
|
|
15
|
+
export var AIDefectCategory;
|
|
16
|
+
(function (AIDefectCategory) {
|
|
17
|
+
/** AI references non-existent packages, APIs, or methods */
|
|
18
|
+
AIDefectCategory["HALLUCINATION"] = "hallucination";
|
|
19
|
+
/** AI uses outdated/deprecated APIs from training data */
|
|
20
|
+
AIDefectCategory["STALE_KNOWLEDGE"] = "stale-knowledge";
|
|
21
|
+
/** AI loses context across long outputs, causing inconsistencies */
|
|
22
|
+
AIDefectCategory["CONTEXT_LOSS"] = "context-loss";
|
|
23
|
+
/** AI generates code with security vulnerabilities */
|
|
24
|
+
AIDefectCategory["SECURITY_ANTIPATTERN"] = "security";
|
|
25
|
+
/** AI over-engineers solutions with unnecessary complexity */
|
|
26
|
+
AIDefectCategory["OVER_ENGINEERING"] = "over-engineering";
|
|
27
|
+
/** AI leaves incomplete implementations (TODO, stubs, empty catch) */
|
|
28
|
+
AIDefectCategory["INCOMPLETE_IMPL"] = "incomplete";
|
|
29
|
+
/** AI generates type-unsafe code (excessive any, unsafe casts) */
|
|
30
|
+
AIDefectCategory["TYPE_SAFETY"] = "type-safety";
|
|
31
|
+
/** AI generates code with missing/incorrect error handling */
|
|
32
|
+
AIDefectCategory["ERROR_HANDLING"] = "error-handling";
|
|
33
|
+
/** AI duplicates logic that should be extracted */
|
|
34
|
+
AIDefectCategory["DUPLICATION"] = "duplication";
|
|
35
|
+
/** AI leaks training data patterns (license headers, example code) */
|
|
36
|
+
AIDefectCategory["TRAINING_LEAK"] = "training-leak";
|
|
37
|
+
})(AIDefectCategory || (AIDefectCategory = {}));
|
|
38
|
+
/** Deduction points per severity level */
|
|
39
|
+
export const SEVERITY_DEDUCTIONS = {
|
|
40
|
+
critical: 15,
|
|
41
|
+
high: 10,
|
|
42
|
+
medium: 5,
|
|
43
|
+
low: 2,
|
|
44
|
+
info: 0,
|
|
45
|
+
};
|
|
46
|
+
/** V3 scoring dimension weights (must sum to 100) */
|
|
47
|
+
export const SCORING_WEIGHTS = {
|
|
48
|
+
faithfulness: 35,
|
|
49
|
+
freshness: 25,
|
|
50
|
+
coherence: 20,
|
|
51
|
+
quality: 20,
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Maps each AIDefectCategory to its primary scoring dimension.
|
|
55
|
+
* Used by the scoring engine to route issues to the correct dimension.
|
|
56
|
+
*/
|
|
57
|
+
export const CATEGORY_DIMENSION_MAP = {
|
|
58
|
+
[AIDefectCategory.HALLUCINATION]: 'faithfulness',
|
|
59
|
+
[AIDefectCategory.STALE_KNOWLEDGE]: 'freshness',
|
|
60
|
+
[AIDefectCategory.CONTEXT_LOSS]: 'coherence',
|
|
61
|
+
[AIDefectCategory.SECURITY_ANTIPATTERN]: 'faithfulness',
|
|
62
|
+
[AIDefectCategory.OVER_ENGINEERING]: 'quality',
|
|
63
|
+
[AIDefectCategory.INCOMPLETE_IMPL]: 'quality',
|
|
64
|
+
[AIDefectCategory.TYPE_SAFETY]: 'quality',
|
|
65
|
+
[AIDefectCategory.ERROR_HANDLING]: 'quality',
|
|
66
|
+
[AIDefectCategory.DUPLICATION]: 'quality',
|
|
67
|
+
[AIDefectCategory.TRAINING_LEAK]: 'faithfulness',
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,sEAAsE;AAEtE;;;;GAIG;AACH,MAAM,CAAN,IAAY,gBAqBX;AArBD,WAAY,gBAAgB;IAC1B,4DAA4D;IAC5D,mDAA+B,CAAA;IAC/B,0DAA0D;IAC1D,uDAAmC,CAAA;IACnC,oEAAoE;IACpE,iDAA6B,CAAA;IAC7B,sDAAsD;IACtD,qDAAiC,CAAA;IACjC,8DAA8D;IAC9D,yDAAqC,CAAA;IACrC,sEAAsE;IACtE,kDAA8B,CAAA;IAC9B,kEAAkE;IAClE,+CAA2B,CAAA;IAC3B,8DAA8D;IAC9D,qDAAiC,CAAA;IACjC,mDAAmD;IACnD,+CAA2B,CAAA;IAC3B,sEAAsE;IACtE,mDAA+B,CAAA;AACjC,CAAC,EArBW,gBAAgB,KAAhB,gBAAgB,QAqB3B;AAOD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,mBAAmB,GAA6B;IAC3D,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;CACC,CAAC;AAgJX,qDAAqD;AACrD,MAAM,CAAC,MAAM,eAAe,GAAqC;IAC/D,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;CACH,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA+C;IAChF,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,cAAc;IAChD,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,WAAW;IAC/C,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,WAAW;IAC5C,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAAE,cAAc;IACvD,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,SAAS;IAC9C,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,SAAS;IAC7C,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,SAAS;IACzC,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,SAAS;IAC5C,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,SAAS;IACzC,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,cAAc;CACxC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@opencodereview/core",
|
|
3
|
+
"version": "1.9.1",
|
|
4
|
+
"description": "Core detection engine for AI-generated code validation",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
},
|
|
13
|
+
"./scanner": {
|
|
14
|
+
"import": "./dist/scanner/index.js",
|
|
15
|
+
"types": "./dist/scanner/index.d.ts"
|
|
16
|
+
},
|
|
17
|
+
"./detectors/v4": {
|
|
18
|
+
"import": "./dist/detectors/v4/index.js",
|
|
19
|
+
"types": "./dist/detectors/v4/index.d.ts"
|
|
20
|
+
},
|
|
21
|
+
"./i18n": {
|
|
22
|
+
"import": "./dist/i18n/index.js",
|
|
23
|
+
"types": "./dist/i18n/index.d.ts"
|
|
24
|
+
},
|
|
25
|
+
"./config": {
|
|
26
|
+
"import": "./dist/config/v4-config.js",
|
|
27
|
+
"types": "./dist/config/v4-config.d.ts"
|
|
28
|
+
},
|
|
29
|
+
"./reporter": {
|
|
30
|
+
"import": "./dist/reporter/index.js",
|
|
31
|
+
"types": "./dist/reporter/index.d.ts"
|
|
32
|
+
},
|
|
33
|
+
"./reporter/v4-terminal": {
|
|
34
|
+
"import": "./dist/reporter/v4-terminal.js",
|
|
35
|
+
"types": "./dist/reporter/v4-terminal.d.ts"
|
|
36
|
+
},
|
|
37
|
+
"./scorer": {
|
|
38
|
+
"import": "./dist/scorer/scoring-engine.js",
|
|
39
|
+
"types": "./dist/scorer/scoring-engine.d.ts"
|
|
40
|
+
},
|
|
41
|
+
"./scorer/v4-adapter": {
|
|
42
|
+
"import": "./dist/scorer/v4-adapter.js",
|
|
43
|
+
"types": "./dist/scorer/v4-adapter.d.ts"
|
|
44
|
+
},
|
|
45
|
+
"./ai/v4": {
|
|
46
|
+
"import": "./dist/ai/v4/index.js",
|
|
47
|
+
"types": "./dist/ai/v4/index.d.ts"
|
|
48
|
+
},
|
|
49
|
+
"./ir": {
|
|
50
|
+
"import": "./dist/ir/index.js",
|
|
51
|
+
"types": "./dist/ir/index.d.ts"
|
|
52
|
+
},
|
|
53
|
+
"./parser": {
|
|
54
|
+
"import": "./dist/parser/index.js",
|
|
55
|
+
"types": "./dist/parser/index.d.ts"
|
|
56
|
+
},
|
|
57
|
+
"./registry": {
|
|
58
|
+
"import": "./dist/registry/index.js",
|
|
59
|
+
"types": "./dist/registry/index.d.ts"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"files": [
|
|
63
|
+
"dist"
|
|
64
|
+
],
|
|
65
|
+
"publishConfig": {
|
|
66
|
+
"access": "public"
|
|
67
|
+
},
|
|
68
|
+
"keywords": [
|
|
69
|
+
"ai",
|
|
70
|
+
"code-quality",
|
|
71
|
+
"hallucination-detection",
|
|
72
|
+
"ci-cd",
|
|
73
|
+
"quality-gate"
|
|
74
|
+
],
|
|
75
|
+
"author": "Raye Deng <fengsen.deng@gmail.com>",
|
|
76
|
+
"license": "MIT",
|
|
77
|
+
"devDependencies": {
|
|
78
|
+
"@types/node": "^20.11.0",
|
|
79
|
+
"typescript": "^5.4.0",
|
|
80
|
+
"vitest": "^1.6.0"
|
|
81
|
+
},
|
|
82
|
+
"dependencies": {
|
|
83
|
+
"acorn": "^8.11.0",
|
|
84
|
+
"acorn-walk": "^8.3.0",
|
|
85
|
+
"glob": "^10.3.0",
|
|
86
|
+
"oxc-parser": "^0.117.0",
|
|
87
|
+
"tree-sitter-wasms": "^0.1.13",
|
|
88
|
+
"web-tree-sitter": "^0.24.7",
|
|
89
|
+
"yaml": "^2.8.2"
|
|
90
|
+
},
|
|
91
|
+
"scripts": {
|
|
92
|
+
"build": "tsc",
|
|
93
|
+
"test": "vitest run",
|
|
94
|
+
"test:watch": "vitest",
|
|
95
|
+
"lint": "eslint src/"
|
|
96
|
+
}
|
|
97
|
+
}
|