@dotsetlabs/bellwether 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +291 -0
- package/LICENSE +21 -0
- package/README.md +739 -0
- package/dist/auth/credentials.d.ts +64 -0
- package/dist/auth/credentials.js +218 -0
- package/dist/auth/index.d.ts +6 -0
- package/dist/auth/index.js +6 -0
- package/dist/auth/keychain.d.ts +64 -0
- package/dist/auth/keychain.js +268 -0
- package/dist/baseline/ab-testing.d.ts +80 -0
- package/dist/baseline/ab-testing.js +236 -0
- package/dist/baseline/ai-compatibility-scorer.d.ts +95 -0
- package/dist/baseline/ai-compatibility-scorer.js +606 -0
- package/dist/baseline/calibration.d.ts +77 -0
- package/dist/baseline/calibration.js +136 -0
- package/dist/baseline/category-matching.d.ts +85 -0
- package/dist/baseline/category-matching.js +289 -0
- package/dist/baseline/change-impact-analyzer.d.ts +98 -0
- package/dist/baseline/change-impact-analyzer.js +592 -0
- package/dist/baseline/comparator.d.ts +64 -0
- package/dist/baseline/comparator.js +916 -0
- package/dist/baseline/confidence.d.ts +55 -0
- package/dist/baseline/confidence.js +122 -0
- package/dist/baseline/converter.d.ts +61 -0
- package/dist/baseline/converter.js +585 -0
- package/dist/baseline/dependency-analyzer.d.ts +89 -0
- package/dist/baseline/dependency-analyzer.js +567 -0
- package/dist/baseline/deprecation-tracker.d.ts +133 -0
- package/dist/baseline/deprecation-tracker.js +322 -0
- package/dist/baseline/diff.d.ts +55 -0
- package/dist/baseline/diff.js +1584 -0
- package/dist/baseline/documentation-scorer.d.ts +205 -0
- package/dist/baseline/documentation-scorer.js +466 -0
- package/dist/baseline/embeddings.d.ts +118 -0
- package/dist/baseline/embeddings.js +251 -0
- package/dist/baseline/error-analyzer.d.ts +198 -0
- package/dist/baseline/error-analyzer.js +721 -0
- package/dist/baseline/evaluation/evaluator.d.ts +42 -0
- package/dist/baseline/evaluation/evaluator.js +323 -0
- package/dist/baseline/evaluation/expanded-dataset.d.ts +45 -0
- package/dist/baseline/evaluation/expanded-dataset.js +1164 -0
- package/dist/baseline/evaluation/golden-dataset.d.ts +58 -0
- package/dist/baseline/evaluation/golden-dataset.js +717 -0
- package/dist/baseline/evaluation/index.d.ts +15 -0
- package/dist/baseline/evaluation/index.js +15 -0
- package/dist/baseline/evaluation/types.d.ts +186 -0
- package/dist/baseline/evaluation/types.js +8 -0
- package/dist/baseline/external-dependency-detector.d.ts +181 -0
- package/dist/baseline/external-dependency-detector.js +524 -0
- package/dist/baseline/golden-output.d.ts +162 -0
- package/dist/baseline/golden-output.js +636 -0
- package/dist/baseline/health-scorer.d.ts +174 -0
- package/dist/baseline/health-scorer.js +451 -0
- package/dist/baseline/incremental-checker.d.ts +97 -0
- package/dist/baseline/incremental-checker.js +174 -0
- package/dist/baseline/index.d.ts +31 -0
- package/dist/baseline/index.js +42 -0
- package/dist/baseline/migration-generator.d.ts +137 -0
- package/dist/baseline/migration-generator.js +554 -0
- package/dist/baseline/migrations.d.ts +60 -0
- package/dist/baseline/migrations.js +197 -0
- package/dist/baseline/performance-tracker.d.ts +214 -0
- package/dist/baseline/performance-tracker.js +577 -0
- package/dist/baseline/pr-comment-generator.d.ts +117 -0
- package/dist/baseline/pr-comment-generator.js +546 -0
- package/dist/baseline/response-fingerprint.d.ts +127 -0
- package/dist/baseline/response-fingerprint.js +728 -0
- package/dist/baseline/response-schema-tracker.d.ts +129 -0
- package/dist/baseline/response-schema-tracker.js +420 -0
- package/dist/baseline/risk-scorer.d.ts +54 -0
- package/dist/baseline/risk-scorer.js +434 -0
- package/dist/baseline/saver.d.ts +89 -0
- package/dist/baseline/saver.js +554 -0
- package/dist/baseline/scenario-generator.d.ts +151 -0
- package/dist/baseline/scenario-generator.js +905 -0
- package/dist/baseline/schema-compare.d.ts +86 -0
- package/dist/baseline/schema-compare.js +557 -0
- package/dist/baseline/schema-evolution.d.ts +189 -0
- package/dist/baseline/schema-evolution.js +467 -0
- package/dist/baseline/semantic.d.ts +203 -0
- package/dist/baseline/semantic.js +908 -0
- package/dist/baseline/synonyms.d.ts +60 -0
- package/dist/baseline/synonyms.js +386 -0
- package/dist/baseline/telemetry.d.ts +165 -0
- package/dist/baseline/telemetry.js +294 -0
- package/dist/baseline/test-pruner.d.ts +120 -0
- package/dist/baseline/test-pruner.js +387 -0
- package/dist/baseline/types.d.ts +449 -0
- package/dist/baseline/types.js +5 -0
- package/dist/baseline/version.d.ts +138 -0
- package/dist/baseline/version.js +206 -0
- package/dist/cache/index.d.ts +5 -0
- package/dist/cache/index.js +5 -0
- package/dist/cache/response-cache.d.ts +151 -0
- package/dist/cache/response-cache.js +287 -0
- package/dist/ci/index.d.ts +60 -0
- package/dist/ci/index.js +342 -0
- package/dist/cli/commands/auth.d.ts +12 -0
- package/dist/cli/commands/auth.js +352 -0
- package/dist/cli/commands/badge.d.ts +3 -0
- package/dist/cli/commands/badge.js +74 -0
- package/dist/cli/commands/baseline-accept.d.ts +15 -0
- package/dist/cli/commands/baseline-accept.js +178 -0
- package/dist/cli/commands/baseline-migrate.d.ts +12 -0
- package/dist/cli/commands/baseline-migrate.js +164 -0
- package/dist/cli/commands/baseline.d.ts +14 -0
- package/dist/cli/commands/baseline.js +449 -0
- package/dist/cli/commands/beta.d.ts +10 -0
- package/dist/cli/commands/beta.js +231 -0
- package/dist/cli/commands/check.d.ts +11 -0
- package/dist/cli/commands/check.js +820 -0
- package/dist/cli/commands/cloud/badge.d.ts +3 -0
- package/dist/cli/commands/cloud/badge.js +74 -0
- package/dist/cli/commands/cloud/diff.d.ts +6 -0
- package/dist/cli/commands/cloud/diff.js +79 -0
- package/dist/cli/commands/cloud/history.d.ts +6 -0
- package/dist/cli/commands/cloud/history.js +102 -0
- package/dist/cli/commands/cloud/link.d.ts +9 -0
- package/dist/cli/commands/cloud/link.js +119 -0
- package/dist/cli/commands/cloud/login.d.ts +7 -0
- package/dist/cli/commands/cloud/login.js +499 -0
- package/dist/cli/commands/cloud/projects.d.ts +6 -0
- package/dist/cli/commands/cloud/projects.js +44 -0
- package/dist/cli/commands/cloud/shared.d.ts +7 -0
- package/dist/cli/commands/cloud/shared.js +42 -0
- package/dist/cli/commands/cloud/teams.d.ts +8 -0
- package/dist/cli/commands/cloud/teams.js +169 -0
- package/dist/cli/commands/cloud/upload.d.ts +8 -0
- package/dist/cli/commands/cloud/upload.js +181 -0
- package/dist/cli/commands/contract.d.ts +11 -0
- package/dist/cli/commands/contract.js +280 -0
- package/dist/cli/commands/discover.d.ts +3 -0
- package/dist/cli/commands/discover.js +82 -0
- package/dist/cli/commands/eval.d.ts +9 -0
- package/dist/cli/commands/eval.js +187 -0
- package/dist/cli/commands/explore.d.ts +11 -0
- package/dist/cli/commands/explore.js +437 -0
- package/dist/cli/commands/feedback.d.ts +9 -0
- package/dist/cli/commands/feedback.js +174 -0
- package/dist/cli/commands/golden.d.ts +12 -0
- package/dist/cli/commands/golden.js +407 -0
- package/dist/cli/commands/history.d.ts +10 -0
- package/dist/cli/commands/history.js +202 -0
- package/dist/cli/commands/init.d.ts +9 -0
- package/dist/cli/commands/init.js +219 -0
- package/dist/cli/commands/interview.d.ts +3 -0
- package/dist/cli/commands/interview.js +903 -0
- package/dist/cli/commands/link.d.ts +10 -0
- package/dist/cli/commands/link.js +169 -0
- package/dist/cli/commands/login.d.ts +7 -0
- package/dist/cli/commands/login.js +499 -0
- package/dist/cli/commands/preset.d.ts +33 -0
- package/dist/cli/commands/preset.js +297 -0
- package/dist/cli/commands/profile.d.ts +33 -0
- package/dist/cli/commands/profile.js +286 -0
- package/dist/cli/commands/registry.d.ts +11 -0
- package/dist/cli/commands/registry.js +146 -0
- package/dist/cli/commands/shared.d.ts +79 -0
- package/dist/cli/commands/shared.js +196 -0
- package/dist/cli/commands/teams.d.ts +8 -0
- package/dist/cli/commands/teams.js +169 -0
- package/dist/cli/commands/test.d.ts +9 -0
- package/dist/cli/commands/test.js +500 -0
- package/dist/cli/commands/upload.d.ts +8 -0
- package/dist/cli/commands/upload.js +223 -0
- package/dist/cli/commands/validate-config.d.ts +6 -0
- package/dist/cli/commands/validate-config.js +35 -0
- package/dist/cli/commands/verify.d.ts +11 -0
- package/dist/cli/commands/verify.js +283 -0
- package/dist/cli/commands/watch.d.ts +12 -0
- package/dist/cli/commands/watch.js +253 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.js +178 -0
- package/dist/cli/interactive.d.ts +47 -0
- package/dist/cli/interactive.js +216 -0
- package/dist/cli/output/terminal-reporter.d.ts +19 -0
- package/dist/cli/output/terminal-reporter.js +104 -0
- package/dist/cli/output.d.ts +226 -0
- package/dist/cli/output.js +438 -0
- package/dist/cli/utils/env.d.ts +5 -0
- package/dist/cli/utils/env.js +14 -0
- package/dist/cli/utils/progress.d.ts +59 -0
- package/dist/cli/utils/progress.js +206 -0
- package/dist/cli/utils/server-context.d.ts +10 -0
- package/dist/cli/utils/server-context.js +36 -0
- package/dist/cloud/auth.d.ts +144 -0
- package/dist/cloud/auth.js +374 -0
- package/dist/cloud/client.d.ts +24 -0
- package/dist/cloud/client.js +65 -0
- package/dist/cloud/http-client.d.ts +38 -0
- package/dist/cloud/http-client.js +215 -0
- package/dist/cloud/index.d.ts +23 -0
- package/dist/cloud/index.js +25 -0
- package/dist/cloud/mock-client.d.ts +107 -0
- package/dist/cloud/mock-client.js +545 -0
- package/dist/cloud/types.d.ts +515 -0
- package/dist/cloud/types.js +15 -0
- package/dist/config/defaults.d.ts +160 -0
- package/dist/config/defaults.js +169 -0
- package/dist/config/loader.d.ts +24 -0
- package/dist/config/loader.js +122 -0
- package/dist/config/template.d.ts +42 -0
- package/dist/config/template.js +647 -0
- package/dist/config/validator.d.ts +2112 -0
- package/dist/config/validator.js +658 -0
- package/dist/constants/cloud.d.ts +107 -0
- package/dist/constants/cloud.js +110 -0
- package/dist/constants/core.d.ts +521 -0
- package/dist/constants/core.js +556 -0
- package/dist/constants/testing.d.ts +1283 -0
- package/dist/constants/testing.js +1568 -0
- package/dist/constants.d.ts +10 -0
- package/dist/constants.js +10 -0
- package/dist/contract/index.d.ts +6 -0
- package/dist/contract/index.js +5 -0
- package/dist/contract/validator.d.ts +177 -0
- package/dist/contract/validator.js +574 -0
- package/dist/cost/index.d.ts +6 -0
- package/dist/cost/index.js +5 -0
- package/dist/cost/tracker.d.ts +134 -0
- package/dist/cost/tracker.js +313 -0
- package/dist/discovery/discovery.d.ts +16 -0
- package/dist/discovery/discovery.js +173 -0
- package/dist/discovery/types.d.ts +51 -0
- package/dist/discovery/types.js +2 -0
- package/dist/docs/agents.d.ts +3 -0
- package/dist/docs/agents.js +995 -0
- package/dist/docs/contract.d.ts +51 -0
- package/dist/docs/contract.js +1681 -0
- package/dist/docs/generator.d.ts +4 -0
- package/dist/docs/generator.js +4 -0
- package/dist/docs/html-reporter.d.ts +9 -0
- package/dist/docs/html-reporter.js +757 -0
- package/dist/docs/index.d.ts +10 -0
- package/dist/docs/index.js +11 -0
- package/dist/docs/junit-reporter.d.ts +18 -0
- package/dist/docs/junit-reporter.js +210 -0
- package/dist/docs/report.d.ts +14 -0
- package/dist/docs/report.js +44 -0
- package/dist/docs/sarif-reporter.d.ts +19 -0
- package/dist/docs/sarif-reporter.js +335 -0
- package/dist/docs/shared.d.ts +35 -0
- package/dist/docs/shared.js +162 -0
- package/dist/docs/templates.d.ts +12 -0
- package/dist/docs/templates.js +76 -0
- package/dist/errors/index.d.ts +6 -0
- package/dist/errors/index.js +6 -0
- package/dist/errors/retry.d.ts +92 -0
- package/dist/errors/retry.js +323 -0
- package/dist/errors/types.d.ts +321 -0
- package/dist/errors/types.js +584 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.js +32 -0
- package/dist/interview/dependency-resolver.d.ts +11 -0
- package/dist/interview/dependency-resolver.js +32 -0
- package/dist/interview/interviewer.d.ts +232 -0
- package/dist/interview/interviewer.js +1939 -0
- package/dist/interview/mock-response-generator.d.ts +7 -0
- package/dist/interview/mock-response-generator.js +102 -0
- package/dist/interview/orchestrator.d.ts +237 -0
- package/dist/interview/orchestrator.js +1296 -0
- package/dist/interview/rate-limiter.d.ts +15 -0
- package/dist/interview/rate-limiter.js +55 -0
- package/dist/interview/response-validator.d.ts +10 -0
- package/dist/interview/response-validator.js +132 -0
- package/dist/interview/schema-inferrer.d.ts +8 -0
- package/dist/interview/schema-inferrer.js +71 -0
- package/dist/interview/schema-test-generator.d.ts +71 -0
- package/dist/interview/schema-test-generator.js +834 -0
- package/dist/interview/smart-value-generator.d.ts +155 -0
- package/dist/interview/smart-value-generator.js +554 -0
- package/dist/interview/stateful-test-runner.d.ts +19 -0
- package/dist/interview/stateful-test-runner.js +106 -0
- package/dist/interview/types.d.ts +561 -0
- package/dist/interview/types.js +2 -0
- package/dist/llm/anthropic.d.ts +41 -0
- package/dist/llm/anthropic.js +355 -0
- package/dist/llm/client.d.ts +123 -0
- package/dist/llm/client.js +42 -0
- package/dist/llm/factory.d.ts +38 -0
- package/dist/llm/factory.js +145 -0
- package/dist/llm/fallback.d.ts +140 -0
- package/dist/llm/fallback.js +379 -0
- package/dist/llm/index.d.ts +18 -0
- package/dist/llm/index.js +15 -0
- package/dist/llm/ollama.d.ts +37 -0
- package/dist/llm/ollama.js +330 -0
- package/dist/llm/openai.d.ts +25 -0
- package/dist/llm/openai.js +320 -0
- package/dist/llm/token-budget.d.ts +161 -0
- package/dist/llm/token-budget.js +395 -0
- package/dist/logging/logger.d.ts +70 -0
- package/dist/logging/logger.js +130 -0
- package/dist/metrics/collector.d.ts +106 -0
- package/dist/metrics/collector.js +547 -0
- package/dist/metrics/index.d.ts +7 -0
- package/dist/metrics/index.js +7 -0
- package/dist/metrics/prometheus.d.ts +20 -0
- package/dist/metrics/prometheus.js +241 -0
- package/dist/metrics/types.d.ts +209 -0
- package/dist/metrics/types.js +5 -0
- package/dist/persona/builtins.d.ts +54 -0
- package/dist/persona/builtins.js +219 -0
- package/dist/persona/index.d.ts +8 -0
- package/dist/persona/index.js +8 -0
- package/dist/persona/loader.d.ts +30 -0
- package/dist/persona/loader.js +190 -0
- package/dist/persona/types.d.ts +144 -0
- package/dist/persona/types.js +5 -0
- package/dist/persona/validation.d.ts +94 -0
- package/dist/persona/validation.js +332 -0
- package/dist/prompts/index.d.ts +5 -0
- package/dist/prompts/index.js +5 -0
- package/dist/prompts/templates.d.ts +180 -0
- package/dist/prompts/templates.js +431 -0
- package/dist/registry/client.d.ts +49 -0
- package/dist/registry/client.js +191 -0
- package/dist/registry/index.d.ts +7 -0
- package/dist/registry/index.js +6 -0
- package/dist/registry/types.d.ts +140 -0
- package/dist/registry/types.js +6 -0
- package/dist/scenarios/evaluator.d.ts +43 -0
- package/dist/scenarios/evaluator.js +206 -0
- package/dist/scenarios/index.d.ts +10 -0
- package/dist/scenarios/index.js +9 -0
- package/dist/scenarios/loader.d.ts +20 -0
- package/dist/scenarios/loader.js +285 -0
- package/dist/scenarios/types.d.ts +153 -0
- package/dist/scenarios/types.js +8 -0
- package/dist/security/index.d.ts +17 -0
- package/dist/security/index.js +18 -0
- package/dist/security/payloads.d.ts +61 -0
- package/dist/security/payloads.js +268 -0
- package/dist/security/security-tester.d.ts +42 -0
- package/dist/security/security-tester.js +582 -0
- package/dist/security/types.d.ts +166 -0
- package/dist/security/types.js +8 -0
- package/dist/transport/base-transport.d.ts +59 -0
- package/dist/transport/base-transport.js +38 -0
- package/dist/transport/http-transport.d.ts +67 -0
- package/dist/transport/http-transport.js +238 -0
- package/dist/transport/mcp-client.d.ts +141 -0
- package/dist/transport/mcp-client.js +496 -0
- package/dist/transport/sse-transport.d.ts +88 -0
- package/dist/transport/sse-transport.js +316 -0
- package/dist/transport/stdio-transport.d.ts +43 -0
- package/dist/transport/stdio-transport.js +238 -0
- package/dist/transport/types.d.ts +125 -0
- package/dist/transport/types.js +16 -0
- package/dist/utils/concurrency.d.ts +123 -0
- package/dist/utils/concurrency.js +213 -0
- package/dist/utils/formatters.d.ts +16 -0
- package/dist/utils/formatters.js +37 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/jsonpath.d.ts +87 -0
- package/dist/utils/jsonpath.js +326 -0
- package/dist/utils/markdown.d.ts +113 -0
- package/dist/utils/markdown.js +265 -0
- package/dist/utils/network.d.ts +14 -0
- package/dist/utils/network.js +17 -0
- package/dist/utils/sanitize.d.ts +92 -0
- package/dist/utils/sanitize.js +191 -0
- package/dist/utils/semantic.d.ts +194 -0
- package/dist/utils/semantic.js +1051 -0
- package/dist/utils/smart-truncate.d.ts +94 -0
- package/dist/utils/smart-truncate.js +361 -0
- package/dist/utils/timeout.d.ts +153 -0
- package/dist/utils/timeout.js +205 -0
- package/dist/utils/yaml-parser.d.ts +58 -0
- package/dist/utils/yaml-parser.js +86 -0
- package/dist/validation/index.d.ts +32 -0
- package/dist/validation/index.js +32 -0
- package/dist/validation/semantic-test-generator.d.ts +50 -0
- package/dist/validation/semantic-test-generator.js +176 -0
- package/dist/validation/semantic-types.d.ts +66 -0
- package/dist/validation/semantic-types.js +94 -0
- package/dist/validation/semantic-validator.d.ts +38 -0
- package/dist/validation/semantic-validator.js +340 -0
- package/dist/verification/index.d.ts +6 -0
- package/dist/verification/index.js +5 -0
- package/dist/verification/types.d.ts +133 -0
- package/dist/verification/types.js +5 -0
- package/dist/verification/verifier.d.ts +30 -0
- package/dist/verification/verifier.js +309 -0
- package/dist/version.d.ts +19 -0
- package/dist/version.js +48 -0
- package/dist/workflow/auto-generator.d.ts +27 -0
- package/dist/workflow/auto-generator.js +513 -0
- package/dist/workflow/discovery.d.ts +40 -0
- package/dist/workflow/discovery.js +195 -0
- package/dist/workflow/executor.d.ts +82 -0
- package/dist/workflow/executor.js +611 -0
- package/dist/workflow/index.d.ts +10 -0
- package/dist/workflow/index.js +10 -0
- package/dist/workflow/loader.d.ts +24 -0
- package/dist/workflow/loader.js +194 -0
- package/dist/workflow/state-tracker.d.ts +98 -0
- package/dist/workflow/state-tracker.js +424 -0
- package/dist/workflow/types.d.ts +337 -0
- package/dist/workflow/types.js +5 -0
- package/package.json +94 -0
- package/schemas/bellwether-check.schema.json +651 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic comparison utilities for drift detection.
|
|
3
|
+
*
|
|
4
|
+
* This module provides robust comparison that handles LLM non-determinism
|
|
5
|
+
* by normalizing text and extracting structured facts rather than comparing
|
|
6
|
+
* raw prose strings.
|
|
7
|
+
*/
|
|
8
|
+
import type { ChangeConfidence } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Security finding categories (normalized).
|
|
11
|
+
* These map to common vulnerability patterns.
|
|
12
|
+
* Extended to include additional security categories like XXE, timing attacks, etc.
|
|
13
|
+
*/
|
|
14
|
+
export declare const SECURITY_CATEGORIES: readonly ["path_traversal", "command_injection", "sql_injection", "xss", "xxe", "ssrf", "deserialization", "timing_attack", "race_condition", "file_upload", "access_control", "authentication", "authorization", "information_disclosure", "denial_of_service", "input_validation", "output_encoding", "cryptography", "session_management", "error_handling", "logging", "configuration", "prototype_pollution", "open_redirect", "clickjacking", "cors", "csp_bypass", "other"];
|
|
15
|
+
export type SecurityCategory = typeof SECURITY_CATEGORIES[number];
|
|
16
|
+
/**
|
|
17
|
+
* Limitation categories (normalized).
|
|
18
|
+
*/
|
|
19
|
+
export declare const LIMITATION_CATEGORIES: readonly ["size_limit", "rate_limit", "timeout", "encoding", "format", "permission", "platform", "dependency", "concurrency", "memory", "network", "other"];
|
|
20
|
+
export type LimitationCategory = typeof LIMITATION_CATEGORIES[number];
|
|
21
|
+
/**
|
|
22
|
+
* Structured security finding.
|
|
23
|
+
*/
|
|
24
|
+
export interface StructuredSecurityFinding {
|
|
25
|
+
category: SecurityCategory;
|
|
26
|
+
tool: string;
|
|
27
|
+
severity: 'low' | 'medium' | 'high' | 'critical';
|
|
28
|
+
description: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Structured limitation.
|
|
32
|
+
*/
|
|
33
|
+
export interface StructuredLimitation {
|
|
34
|
+
category: LimitationCategory;
|
|
35
|
+
tool: string;
|
|
36
|
+
constraint?: string;
|
|
37
|
+
description: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Normalized assertion for comparison.
|
|
41
|
+
*/
|
|
42
|
+
export interface NormalizedAssertion {
|
|
43
|
+
tool: string;
|
|
44
|
+
aspect: string;
|
|
45
|
+
fingerprint: string;
|
|
46
|
+
description: string;
|
|
47
|
+
isPositive: boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Extract security category from text.
|
|
51
|
+
*/
|
|
52
|
+
export declare function extractSecurityCategory(text: string): SecurityCategory;
|
|
53
|
+
/**
|
|
54
|
+
* Extract limitation category from text.
|
|
55
|
+
*/
|
|
56
|
+
export declare function extractLimitationCategory(text: string): LimitationCategory;
|
|
57
|
+
/**
|
|
58
|
+
* Extract severity from text.
|
|
59
|
+
* Now uses negation-aware extraction to handle phrases like "not critical".
|
|
60
|
+
*/
|
|
61
|
+
export declare function extractSeverity(text: string): 'low' | 'medium' | 'high' | 'critical';
|
|
62
|
+
/**
|
|
63
|
+
* Create a normalized fingerprint from assertion text.
|
|
64
|
+
* This extracts key semantic elements for comparison.
|
|
65
|
+
*
|
|
66
|
+
* For assertions about limitations or security, we primarily use
|
|
67
|
+
* the category to ensure semantic equivalence (e.g., "10MB limit" and
|
|
68
|
+
* "files larger than 10 megabytes" both get category 'size_limit').
|
|
69
|
+
*/
|
|
70
|
+
export declare function createFingerprint(tool: string, aspect: string, text: string): string;
|
|
71
|
+
/**
|
|
72
|
+
* Convert raw security notes to structured findings.
|
|
73
|
+
*/
|
|
74
|
+
export declare function structureSecurityNotes(tool: string, notes: string[]): StructuredSecurityFinding[];
|
|
75
|
+
/**
|
|
76
|
+
* Convert raw limitations to structured limitations.
|
|
77
|
+
*/
|
|
78
|
+
export declare function structureLimitations(tool: string, limitations: string[]): StructuredLimitation[];
|
|
79
|
+
/**
|
|
80
|
+
* Compare two structured security findings.
|
|
81
|
+
* Returns true if they represent the same finding.
|
|
82
|
+
*/
|
|
83
|
+
export declare function securityFindingsMatch(a: StructuredSecurityFinding, b: StructuredSecurityFinding): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Compare two structured security findings with confidence.
|
|
86
|
+
* Returns a confidence score indicating how similar they are.
|
|
87
|
+
*
|
|
88
|
+
* ENHANCED (v1.1.0): Uses multi-category detection and relationship scoring
|
|
89
|
+
* to improve recall. Categories that are related (e.g., authentication and
|
|
90
|
+
* authorization) now get partial credit instead of 0%.
|
|
91
|
+
*
|
|
92
|
+
* ENHANCED (v1.2.0): Added qualifier comparison to prevent false positives from:
|
|
93
|
+
* - Negation mismatches ("Critical vulnerability found" vs "Not a critical vulnerability")
|
|
94
|
+
* - Database type mismatches (SQL injection vs NoSQL injection)
|
|
95
|
+
*
|
|
96
|
+
* ENHANCED (v1.3.0): Improved recall by:
|
|
97
|
+
* - Adding synonym-based similarity detection
|
|
98
|
+
* - Relaxing severity mismatch (no longer blocks matching)
|
|
99
|
+
* - Lowering thresholds when shared security terms are found
|
|
100
|
+
* - Better handling of abbreviations (SQLi, XSS, SSRF)
|
|
101
|
+
*/
|
|
102
|
+
export declare function securityFindingsMatchWithConfidence(a: StructuredSecurityFinding, b: StructuredSecurityFinding): {
|
|
103
|
+
matches: boolean;
|
|
104
|
+
confidence: ChangeConfidence;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Compare two structured limitations.
|
|
108
|
+
* Returns true if they represent the same limitation.
|
|
109
|
+
*/
|
|
110
|
+
export declare function limitationsMatch(a: StructuredLimitation, b: StructuredLimitation): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Compare two structured limitations with confidence.
|
|
113
|
+
* Returns a confidence score indicating how similar they are.
|
|
114
|
+
*
|
|
115
|
+
* ENHANCED (v1.1.0): Uses multi-category detection and relationship scoring
|
|
116
|
+
* to improve recall for limitation paraphrases.
|
|
117
|
+
*
|
|
118
|
+
* ENHANCED (v1.2.0): Added qualifier comparison to prevent false positives from:
|
|
119
|
+
* - Direction mismatches (upload limit vs download limit)
|
|
120
|
+
* - Timeout type mismatches (connection timeout vs read timeout)
|
|
121
|
+
* - Rate time unit mismatches (per minute vs per hour)
|
|
122
|
+
*
|
|
123
|
+
* ENHANCED (v1.3.0): Improved recall by:
|
|
124
|
+
* - Adding synonym-based similarity for limitation descriptions
|
|
125
|
+
* - Time expression normalization (30s = 30 seconds)
|
|
126
|
+
* - Relaxed matching thresholds while maintaining constraint validation
|
|
127
|
+
*
|
|
128
|
+
* IMPORTANT: Two limitations with the same category but significantly different
|
|
129
|
+
* constraint values (e.g., 10MB vs 100MB) are NOT considered matching.
|
|
130
|
+
*/
|
|
131
|
+
export declare function limitationsMatchWithConfidence(a: StructuredLimitation, b: StructuredLimitation): {
|
|
132
|
+
matches: boolean;
|
|
133
|
+
confidence: ChangeConfidence;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* Compare two normalized assertions.
|
|
137
|
+
* Returns true if they have the same fingerprint.
|
|
138
|
+
*/
|
|
139
|
+
export declare function assertionsMatch(a: NormalizedAssertion, b: NormalizedAssertion): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Compare two normalized assertions with confidence.
|
|
142
|
+
* Returns a confidence score indicating how similar they are.
|
|
143
|
+
*
|
|
144
|
+
* ENHANCED (v1.2.0): Added qualifier comparison to prevent false positives from:
|
|
145
|
+
* - Opposite terms (synchronous vs asynchronous, enabled vs disabled)
|
|
146
|
+
* - Status code differences (200 vs 201)
|
|
147
|
+
*
|
|
148
|
+
* ENHANCED (v1.3.0): Improved recall by:
|
|
149
|
+
* - Adding synonym-based similarity for behavioral descriptions
|
|
150
|
+
* - Relaxed fingerprint matching (partial matches now count)
|
|
151
|
+
* - Better polarity detection that handles paraphrasing
|
|
152
|
+
* - Lower thresholds while blocking only clear semantic conflicts
|
|
153
|
+
*/
|
|
154
|
+
export declare function assertionsMatchWithConfidence(a: NormalizedAssertion, b: NormalizedAssertion): {
|
|
155
|
+
matches: boolean;
|
|
156
|
+
confidence: ChangeConfidence;
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Find matching item in array using matcher function.
|
|
160
|
+
*/
|
|
161
|
+
export declare function findMatch<T>(item: T, array: T[], matcher: (a: T, b: T) => boolean): T | undefined;
|
|
162
|
+
/**
|
|
163
|
+
* Compare two arrays using semantic matching.
|
|
164
|
+
* Returns items that are only in first array (removed) and only in second (added).
|
|
165
|
+
*/
|
|
166
|
+
export declare function compareArraysSemantic<T>(previous: T[], current: T[], matcher: (a: T, b: T) => boolean): {
|
|
167
|
+
added: T[];
|
|
168
|
+
removed: T[];
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* Result of a semantic comparison with confidence.
|
|
172
|
+
*/
|
|
173
|
+
export interface SemanticComparisonResult<T> {
|
|
174
|
+
/** Items in current but not in previous */
|
|
175
|
+
added: Array<{
|
|
176
|
+
item: T;
|
|
177
|
+
confidence: ChangeConfidence;
|
|
178
|
+
}>;
|
|
179
|
+
/** Items in previous but not in current */
|
|
180
|
+
removed: Array<{
|
|
181
|
+
item: T;
|
|
182
|
+
confidence: ChangeConfidence;
|
|
183
|
+
}>;
|
|
184
|
+
/** Items that match between versions */
|
|
185
|
+
matched: Array<{
|
|
186
|
+
previous: T;
|
|
187
|
+
current: T;
|
|
188
|
+
confidence: ChangeConfidence;
|
|
189
|
+
}>;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Compare two arrays using semantic matching with confidence scores.
|
|
193
|
+
* Returns detailed comparison results including confidence for each item.
|
|
194
|
+
*/
|
|
195
|
+
export declare function compareArraysSemanticWithConfidence<T>(previous: T[], current: T[], matcherWithConfidence: (a: T, b: T) => {
|
|
196
|
+
matches: boolean;
|
|
197
|
+
confidence: ChangeConfidence;
|
|
198
|
+
}): SemanticComparisonResult<T>;
|
|
199
|
+
/**
|
|
200
|
+
* Calculate overall confidence for a semantic comparison operation.
|
|
201
|
+
*/
|
|
202
|
+
export declare function calculateComparisonConfidence(before: string, after: string, categoryMatch: boolean): ChangeConfidence;
|
|
203
|
+
//# sourceMappingURL=semantic.d.ts.map
|