@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,1283 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Change impact analysis configuration.
|
|
3
|
+
* Used by change-impact-analyzer.ts for semantic breaking change detection.
|
|
4
|
+
*/
|
|
5
|
+
export declare const CHANGE_IMPACT: {
|
|
6
|
+
/** Risk weights for different schema change types (0-100 scale) */
|
|
7
|
+
readonly RISK_WEIGHTS: {
|
|
8
|
+
readonly parameter_removed: 100;
|
|
9
|
+
readonly parameter_required_added: 90;
|
|
10
|
+
readonly parameter_type_changed: 85;
|
|
11
|
+
readonly enum_value_removed: 80;
|
|
12
|
+
readonly constraint_tightened: 60;
|
|
13
|
+
readonly format_changed: 50;
|
|
14
|
+
readonly constraint_added: 40;
|
|
15
|
+
readonly default_changed: 30;
|
|
16
|
+
readonly constraint_removed: 20;
|
|
17
|
+
readonly parameter_required_removed: 15;
|
|
18
|
+
readonly enum_value_added: 10;
|
|
19
|
+
readonly parameter_added: 10;
|
|
20
|
+
readonly description_changed: 5;
|
|
21
|
+
readonly constraint_relaxed: 5;
|
|
22
|
+
};
|
|
23
|
+
/** Migration complexity thresholds (number of breaking changes) */
|
|
24
|
+
readonly COMPLEXITY_THRESHOLDS: {
|
|
25
|
+
/** 0-1 breaking changes = trivial migration */
|
|
26
|
+
readonly trivial: 1;
|
|
27
|
+
/** 2-3 breaking changes = simple migration */
|
|
28
|
+
readonly simple: 3;
|
|
29
|
+
/** 4-6 breaking changes = moderate migration */
|
|
30
|
+
readonly moderate: 6;
|
|
31
|
+
};
|
|
32
|
+
/** Risk score thresholds for severity classification */
|
|
33
|
+
readonly SEVERITY_THRESHOLDS: {
|
|
34
|
+
readonly info: 20;
|
|
35
|
+
readonly warning: 50;
|
|
36
|
+
readonly breaking: 70;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Check command configuration defaults.
|
|
41
|
+
* Used by check.ts and incremental-checker.ts.
|
|
42
|
+
*/
|
|
43
|
+
export declare const CHECK: {
|
|
44
|
+
/** Default cache age for incremental checking (1 week in hours) */
|
|
45
|
+
readonly DEFAULT_INCREMENTAL_CACHE_HOURS: 168;
|
|
46
|
+
/** Minimum cache age (1 hour) */
|
|
47
|
+
readonly MIN_INCREMENTAL_CACHE_HOURS: 1;
|
|
48
|
+
/** Maximum cache age (30 days in hours) */
|
|
49
|
+
readonly MAX_INCREMENTAL_CACHE_HOURS: 720;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Performance tracking configuration.
|
|
53
|
+
* Used by performance-tracker.ts for latency regression detection.
|
|
54
|
+
*/
|
|
55
|
+
export declare const PERFORMANCE_TRACKING: {
|
|
56
|
+
/** Default regression threshold (10% = tool is 10% slower) */
|
|
57
|
+
readonly DEFAULT_REGRESSION_THRESHOLD: 0.1;
|
|
58
|
+
/** Warning threshold for minor regressions (5%) */
|
|
59
|
+
readonly WARNING_THRESHOLD: 0.05;
|
|
60
|
+
/** Minimum samples required for reliable metrics */
|
|
61
|
+
readonly MIN_SAMPLES: 3;
|
|
62
|
+
/** Trend detection thresholds */
|
|
63
|
+
readonly TREND_THRESHOLDS: {
|
|
64
|
+
/** Performance is "improving" if p50 is at least 5% faster */
|
|
65
|
+
readonly improving: -0.05;
|
|
66
|
+
/** Performance is "degrading" if p50 is at least 5% slower */
|
|
67
|
+
readonly degrading: 0.05;
|
|
68
|
+
};
|
|
69
|
+
/** Percentiles to calculate for latency analysis */
|
|
70
|
+
readonly PERCENTILES: readonly number[];
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Performance confidence scoring configuration.
|
|
74
|
+
* Used by performance-tracker.ts for statistical validity assessment.
|
|
75
|
+
*
|
|
76
|
+
* Confidence levels indicate how reliable performance baselines are:
|
|
77
|
+
* - HIGH: Enough samples with low variability - baselines are reliable
|
|
78
|
+
* - MEDIUM: Moderate samples or variability - use with caution
|
|
79
|
+
* - LOW: Few samples or high variability - consider collecting more data
|
|
80
|
+
*/
|
|
81
|
+
export declare const PERFORMANCE_CONFIDENCE: {
|
|
82
|
+
/** Thresholds for high confidence level */
|
|
83
|
+
readonly HIGH: {
|
|
84
|
+
/** Minimum samples required for high confidence */
|
|
85
|
+
readonly MIN_SAMPLES: 10;
|
|
86
|
+
/** Maximum coefficient of variation for high confidence (0.3 = 30%) */
|
|
87
|
+
readonly MAX_CV: 0.3;
|
|
88
|
+
};
|
|
89
|
+
/** Thresholds for medium confidence level */
|
|
90
|
+
readonly MEDIUM: {
|
|
91
|
+
/** Minimum samples required for medium confidence */
|
|
92
|
+
readonly MIN_SAMPLES: 5;
|
|
93
|
+
/** Maximum coefficient of variation for medium confidence (0.5 = 50%) */
|
|
94
|
+
readonly MAX_CV: 0.5;
|
|
95
|
+
};
|
|
96
|
+
/** Warmup configuration for excluding cold-start overhead from variance */
|
|
97
|
+
readonly WARMUP: {
|
|
98
|
+
/** Default number of warmup runs before timing (0 = include first sample in variance) */
|
|
99
|
+
readonly DEFAULT_RUNS: 1;
|
|
100
|
+
/** Whether to exclude warmup from variance calculation by default */
|
|
101
|
+
readonly EXCLUDE_FROM_VARIANCE: true;
|
|
102
|
+
};
|
|
103
|
+
/** Display labels for confidence levels */
|
|
104
|
+
readonly LABELS: {
|
|
105
|
+
readonly high: "HIGH";
|
|
106
|
+
readonly medium: "MEDIUM";
|
|
107
|
+
readonly low: "LOW";
|
|
108
|
+
};
|
|
109
|
+
/** Emoji indicators for confidence levels (used in Markdown) */
|
|
110
|
+
readonly INDICATORS: {
|
|
111
|
+
readonly high: "✓";
|
|
112
|
+
readonly medium: "~";
|
|
113
|
+
readonly low: "!";
|
|
114
|
+
};
|
|
115
|
+
/** Recommendation messages for low confidence */
|
|
116
|
+
readonly RECOMMENDATIONS: {
|
|
117
|
+
/** Message when sample count is too low */
|
|
118
|
+
readonly LOW_SAMPLES: (current: number, target: number) => string;
|
|
119
|
+
/** Message when variability is too high */
|
|
120
|
+
readonly HIGH_VARIABILITY: "High variability in response times; consider investigating causes";
|
|
121
|
+
/** Message when no samples collected */
|
|
122
|
+
readonly NO_SAMPLES: "No performance samples collected";
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* Deprecation lifecycle configuration.
|
|
127
|
+
* Used by deprecation-tracker.ts for tool deprecation management.
|
|
128
|
+
*/
|
|
129
|
+
export declare const DEPRECATION: {
|
|
130
|
+
/** Default configuration values */
|
|
131
|
+
readonly DEFAULTS: {
|
|
132
|
+
/** Warn when using deprecated tools */
|
|
133
|
+
readonly warnOnUsage: true;
|
|
134
|
+
/** Fail when using tools past their removal date */
|
|
135
|
+
readonly failOnExpired: true;
|
|
136
|
+
/** Default grace period in days after removal date */
|
|
137
|
+
readonly gracePeriodDays: 90;
|
|
138
|
+
};
|
|
139
|
+
/** Days thresholds for warning levels */
|
|
140
|
+
readonly THRESHOLDS: {
|
|
141
|
+
/** Warn about upcoming removal within this many days */
|
|
142
|
+
readonly upcomingRemovalDays: 30;
|
|
143
|
+
/** Critical warning within this many days */
|
|
144
|
+
readonly criticalRemovalDays: 7;
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* Verification tier thresholds for the Verified by Bellwether program.
|
|
149
|
+
* Used by verifier.ts to determine verification tier based on test coverage.
|
|
150
|
+
*/
|
|
151
|
+
export declare const SCHEMA_EVOLUTION: {
|
|
152
|
+
/** Default maximum versions to keep per tool */
|
|
153
|
+
readonly DEFAULT_MAX_VERSIONS_PER_TOOL: 50;
|
|
154
|
+
/** Default limit for "most active tools" queries */
|
|
155
|
+
readonly DEFAULT_ACTIVE_TOOLS_LIMIT: 10;
|
|
156
|
+
/** Default number of versions to display in formatted output */
|
|
157
|
+
readonly DEFAULT_DISPLAY_VERSIONS: 10;
|
|
158
|
+
/** Default number of changes to display per version */
|
|
159
|
+
readonly DEFAULT_DISPLAY_CHANGES: 5;
|
|
160
|
+
/** Default width for visual timeline */
|
|
161
|
+
readonly DEFAULT_VISUAL_TIMELINE_WIDTH: 80;
|
|
162
|
+
/** Maximum versions to show in visual timeline */
|
|
163
|
+
readonly MAX_VISUAL_TIMELINE_VERSIONS: 20;
|
|
164
|
+
/** Minimum samples required for meaningful stability assessment */
|
|
165
|
+
readonly MIN_SAMPLES_FOR_STABILITY: 3;
|
|
166
|
+
/** Minimum samples for high confidence stability assessment */
|
|
167
|
+
readonly HIGH_CONFIDENCE_MIN_SAMPLES: 10;
|
|
168
|
+
/** Stability confidence threshold for flagging issues (0-1) */
|
|
169
|
+
readonly STABILITY_THRESHOLD: 0.7;
|
|
170
|
+
/** Grade thresholds for schema stability scoring */
|
|
171
|
+
readonly GRADE_THRESHOLDS: {
|
|
172
|
+
/** Minimum confidence for grade A */
|
|
173
|
+
readonly A: 0.95;
|
|
174
|
+
/** Minimum confidence for grade B */
|
|
175
|
+
readonly B: 0.85;
|
|
176
|
+
/** Minimum confidence for grade C */
|
|
177
|
+
readonly C: 0.7;
|
|
178
|
+
/** Minimum confidence for grade D */
|
|
179
|
+
readonly D: 0.5;
|
|
180
|
+
};
|
|
181
|
+
/** Display labels for stability states */
|
|
182
|
+
readonly STABILITY_LABELS: {
|
|
183
|
+
readonly STABLE: "Stable";
|
|
184
|
+
readonly UNSTABLE: "Unstable";
|
|
185
|
+
readonly UNKNOWN: "Unknown";
|
|
186
|
+
readonly INSUFFICIENT_DATA: "Insufficient Data";
|
|
187
|
+
};
|
|
188
|
+
/** Display labels for change types */
|
|
189
|
+
readonly CHANGE_LABELS: {
|
|
190
|
+
readonly FIELDS_ADDED: "Fields Added";
|
|
191
|
+
readonly FIELDS_REMOVED: "Fields Removed";
|
|
192
|
+
readonly TYPE_CHANGED: "Type Changed";
|
|
193
|
+
readonly REQUIRED_CHANGED: "Required Changed";
|
|
194
|
+
readonly STRUCTURE_CHANGED: "Structure Changed";
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Error analysis configuration.
|
|
199
|
+
* Used by error-analyzer.ts for enhanced error analysis and remediation.
|
|
200
|
+
*/
|
|
201
|
+
export declare const ERROR_ANALYSIS: {
|
|
202
|
+
/** Trend significance thresholds */
|
|
203
|
+
readonly TREND_THRESHOLDS: {
|
|
204
|
+
/** Multiplier threshold for "increasing" trend (current > previous * 1.5) */
|
|
205
|
+
readonly INCREASING: 1.5;
|
|
206
|
+
/** Multiplier threshold for "decreasing" trend (current < previous * 0.5) */
|
|
207
|
+
readonly DECREASING: 0.5;
|
|
208
|
+
};
|
|
209
|
+
/** Severity weights for error analysis */
|
|
210
|
+
readonly SEVERITY_WEIGHTS: {
|
|
211
|
+
readonly critical: 100;
|
|
212
|
+
readonly high: 75;
|
|
213
|
+
readonly medium: 50;
|
|
214
|
+
readonly low: 25;
|
|
215
|
+
readonly info: 10;
|
|
216
|
+
};
|
|
217
|
+
/** Category display labels */
|
|
218
|
+
readonly CATEGORY_LABELS: {
|
|
219
|
+
readonly client_error_validation: "Validation Error";
|
|
220
|
+
readonly client_error_auth: "Authentication Error";
|
|
221
|
+
readonly client_error_not_found: "Not Found";
|
|
222
|
+
readonly client_error_conflict: "Conflict";
|
|
223
|
+
readonly client_error_rate_limit: "Rate Limited";
|
|
224
|
+
readonly server_error: "Server Error";
|
|
225
|
+
readonly unknown: "Unknown Error";
|
|
226
|
+
};
|
|
227
|
+
/** Trend display labels */
|
|
228
|
+
readonly TREND_LABELS: {
|
|
229
|
+
readonly increasing: "Increasing";
|
|
230
|
+
readonly decreasing: "Decreasing";
|
|
231
|
+
readonly stable: "Stable";
|
|
232
|
+
readonly new: "New";
|
|
233
|
+
readonly resolved: "Resolved";
|
|
234
|
+
};
|
|
235
|
+
/** Maximum remediations to display per tool */
|
|
236
|
+
readonly MAX_REMEDIATIONS_DISPLAY: 5;
|
|
237
|
+
/** Maximum related parameters to extract */
|
|
238
|
+
readonly MAX_RELATED_PARAMETERS: 5;
|
|
239
|
+
};
|
|
240
|
+
/**
|
|
241
|
+
* Migration guide generation configuration.
|
|
242
|
+
* Used by migration-generator.ts for auto-generating migration guides.
|
|
243
|
+
*/
|
|
244
|
+
export declare const MIGRATION_GUIDE: {
|
|
245
|
+
/** Maximum code examples per migration step */
|
|
246
|
+
readonly MAX_CODE_EXAMPLES_PER_STEP: 3;
|
|
247
|
+
/** Maximum steps in a migration guide */
|
|
248
|
+
readonly MAX_MIGRATION_STEPS: 20;
|
|
249
|
+
/** Minimum changes required to generate a guide */
|
|
250
|
+
readonly MIN_CHANGES_FOR_GUIDE: 1;
|
|
251
|
+
/** Effort estimation thresholds (number of breaking changes) */
|
|
252
|
+
readonly EFFORT_THRESHOLDS: {
|
|
253
|
+
/** 0-1 breaking changes = trivial */
|
|
254
|
+
readonly trivial: 1;
|
|
255
|
+
/** 2-3 breaking changes = minor */
|
|
256
|
+
readonly minor: 3;
|
|
257
|
+
/** 4-6 breaking changes = moderate */
|
|
258
|
+
readonly moderate: 6;
|
|
259
|
+
};
|
|
260
|
+
};
|
|
261
|
+
/**
|
|
262
|
+
* Auto-generated test scenario configuration.
|
|
263
|
+
* Used by scenario-generator.ts for generating test scenarios.
|
|
264
|
+
*/
|
|
265
|
+
export declare const SCENARIO_GENERATION: {
|
|
266
|
+
/** Maximum happy path scenarios per tool */
|
|
267
|
+
readonly MAX_HAPPY_PATH_SCENARIOS: 5;
|
|
268
|
+
/** Maximum edge case scenarios per tool */
|
|
269
|
+
readonly MAX_EDGE_CASE_SCENARIOS: 10;
|
|
270
|
+
/** Maximum error case scenarios per tool */
|
|
271
|
+
readonly MAX_ERROR_CASE_SCENARIOS: 5;
|
|
272
|
+
/** Maximum security test scenarios per tool */
|
|
273
|
+
readonly MAX_SECURITY_SCENARIOS: 5;
|
|
274
|
+
/** Default minimum coverage percentage */
|
|
275
|
+
readonly DEFAULT_MIN_COVERAGE: 80;
|
|
276
|
+
/** Common SQL injection payloads for testing */
|
|
277
|
+
readonly SQL_INJECTION_PAYLOADS: readonly string[];
|
|
278
|
+
/** Common XSS payloads for testing */
|
|
279
|
+
readonly XSS_PAYLOADS: readonly string[];
|
|
280
|
+
/** Common path traversal payloads for testing */
|
|
281
|
+
readonly PATH_TRAVERSAL_PAYLOADS: readonly string[];
|
|
282
|
+
/** Categories of test scenarios */
|
|
283
|
+
readonly CATEGORIES: readonly string[];
|
|
284
|
+
};
|
|
285
|
+
/**
|
|
286
|
+
* PR comment formatting configuration.
|
|
287
|
+
* Used by pr-comment-generator.ts for generating GitHub PR comments.
|
|
288
|
+
*/
|
|
289
|
+
export declare const PR_COMMENTS: {
|
|
290
|
+
/** Maximum tools to show in detailed section */
|
|
291
|
+
readonly MAX_DETAILED_TOOLS: 10;
|
|
292
|
+
/** Maximum changes to show per tool */
|
|
293
|
+
readonly MAX_CHANGES_PER_TOOL: 5;
|
|
294
|
+
/** Maximum workflows to show in affected section */
|
|
295
|
+
readonly MAX_AFFECTED_WORKFLOWS: 5;
|
|
296
|
+
/** Maximum code examples in migration section */
|
|
297
|
+
readonly MAX_MIGRATION_EXAMPLES: 3;
|
|
298
|
+
/** Truncation length for long values */
|
|
299
|
+
readonly VALUE_TRUNCATE_LENGTH: 50;
|
|
300
|
+
/** Badge colors for different severity levels */
|
|
301
|
+
readonly BADGE_COLORS: {
|
|
302
|
+
readonly breaking: "red";
|
|
303
|
+
readonly warning: "orange";
|
|
304
|
+
readonly info: "blue";
|
|
305
|
+
readonly none: "green";
|
|
306
|
+
};
|
|
307
|
+
};
|
|
308
|
+
/**
|
|
309
|
+
* Schema-based test generation configuration for check mode.
|
|
310
|
+
* Used by schema-test-generator.ts for deterministic test case creation.
|
|
311
|
+
* These tests are generated from JSON Schema without requiring LLM.
|
|
312
|
+
*/
|
|
313
|
+
export declare const SCHEMA_TESTING: {
|
|
314
|
+
/** Maximum tests per test category to prevent explosion */
|
|
315
|
+
readonly MAX_TESTS_PER_CATEGORY: 3;
|
|
316
|
+
/** Maximum total tests per tool (across all categories) */
|
|
317
|
+
readonly MAX_TESTS_PER_TOOL: 12;
|
|
318
|
+
/** Minimum tests to generate even for simple tools */
|
|
319
|
+
readonly MIN_TESTS_PER_TOOL: 3;
|
|
320
|
+
/** Boundary test values for various types */
|
|
321
|
+
readonly BOUNDARY_VALUES: {
|
|
322
|
+
/** Empty string for string boundary testing */
|
|
323
|
+
readonly EMPTY_STRING: "";
|
|
324
|
+
/** Long string length for boundary testing */
|
|
325
|
+
readonly LONG_STRING_LENGTH: 150;
|
|
326
|
+
/** Zero value for number boundary */
|
|
327
|
+
readonly ZERO: 0;
|
|
328
|
+
/** Negative value for number boundary */
|
|
329
|
+
readonly NEGATIVE_ONE: -1;
|
|
330
|
+
/** Large negative value */
|
|
331
|
+
readonly LARGE_NEGATIVE: -999999999;
|
|
332
|
+
/** Very large number for boundary testing */
|
|
333
|
+
readonly LARGE_POSITIVE: 999999999;
|
|
334
|
+
/** Maximum safe integer */
|
|
335
|
+
readonly MAX_SAFE_INT: number;
|
|
336
|
+
/** Minimum safe integer */
|
|
337
|
+
readonly MIN_SAFE_INT: number;
|
|
338
|
+
/** Decimal value for integer field testing */
|
|
339
|
+
readonly DECIMAL: 1.5;
|
|
340
|
+
/** Empty array */
|
|
341
|
+
readonly EMPTY_ARRAY: unknown[];
|
|
342
|
+
/** Empty object */
|
|
343
|
+
readonly EMPTY_OBJECT: Record<string, unknown>;
|
|
344
|
+
};
|
|
345
|
+
/** Values for type coercion testing */
|
|
346
|
+
readonly TYPE_COERCION: {
|
|
347
|
+
/** String that looks like a number */
|
|
348
|
+
readonly NUMERIC_STRING: "123";
|
|
349
|
+
/** String that looks like boolean */
|
|
350
|
+
readonly TRUE_STRING: "true";
|
|
351
|
+
/** String that looks like boolean */
|
|
352
|
+
readonly FALSE_STRING: "false";
|
|
353
|
+
/** Empty string for coercion testing */
|
|
354
|
+
readonly EMPTY_STRING: "";
|
|
355
|
+
/** String "null" for null coercion testing */
|
|
356
|
+
readonly NULL_STRING: "null";
|
|
357
|
+
/** String "undefined" */
|
|
358
|
+
readonly UNDEFINED_STRING: "undefined";
|
|
359
|
+
};
|
|
360
|
+
/** Invalid enum value to use when testing enum violations */
|
|
361
|
+
readonly INVALID_ENUM_VALUES: readonly string[];
|
|
362
|
+
/** Test names for different test categories (used in descriptions) */
|
|
363
|
+
readonly CATEGORY_DESCRIPTIONS: {
|
|
364
|
+
readonly HAPPY_PATH: "Happy path test";
|
|
365
|
+
readonly BOUNDARY: "Boundary value test";
|
|
366
|
+
readonly TYPE_COERCION: "Type coercion test";
|
|
367
|
+
readonly ENUM_VIOLATION: "Enum validation test";
|
|
368
|
+
readonly NULL_HANDLING: "Null/undefined handling test";
|
|
369
|
+
readonly ARRAY_HANDLING: "Array handling test";
|
|
370
|
+
readonly NESTED_OBJECT: "Nested object test";
|
|
371
|
+
readonly ERROR_HANDLING: "Error handling test";
|
|
372
|
+
readonly MISSING_REQUIRED: "Missing required parameter test";
|
|
373
|
+
};
|
|
374
|
+
/** Array test configuration */
|
|
375
|
+
readonly ARRAY_TESTS: {
|
|
376
|
+
/** Number of items for "many items" test */
|
|
377
|
+
readonly MANY_ITEMS_COUNT: 10;
|
|
378
|
+
};
|
|
379
|
+
};
|
|
380
|
+
/**
|
|
381
|
+
* Configuration for test outcome assessment.
|
|
382
|
+
* Used by interviewer.ts and schema-test-generator.ts to properly
|
|
383
|
+
* categorize test results and calculate meaningful metrics.
|
|
384
|
+
*
|
|
385
|
+
* Key insight: Tests that expect errors (validation tests) should be
|
|
386
|
+
* counted as "success" when they correctly reject invalid input.
|
|
387
|
+
* This prevents misleading low success rates for tools that properly
|
|
388
|
+
* validate their inputs.
|
|
389
|
+
*/
|
|
390
|
+
export declare const OUTCOME_ASSESSMENT: {
|
|
391
|
+
/**
|
|
392
|
+
* Test categories that expect errors (validation tests).
|
|
393
|
+
* Tools should reject these inputs - rejection counts as success.
|
|
394
|
+
*/
|
|
395
|
+
readonly EXPECTS_ERROR_CATEGORIES: readonly ["error_handling"];
|
|
396
|
+
/**
|
|
397
|
+
* Test descriptions that indicate error-expectation.
|
|
398
|
+
* Matched case-insensitively against test descriptions.
|
|
399
|
+
*/
|
|
400
|
+
readonly EXPECTS_ERROR_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp];
|
|
401
|
+
/**
|
|
402
|
+
* Categories where tests always expect success (happy path).
|
|
403
|
+
* Errors on these tests indicate actual tool problems.
|
|
404
|
+
*/
|
|
405
|
+
readonly EXPECTS_SUCCESS_CATEGORIES: readonly ["happy_path"];
|
|
406
|
+
/**
|
|
407
|
+
* Categories where outcome is unpredictable (edge cases).
|
|
408
|
+
* Either success or error is acceptable.
|
|
409
|
+
*/
|
|
410
|
+
readonly EITHER_OUTCOME_CATEGORIES: readonly ["edge_case", "boundary"];
|
|
411
|
+
/**
|
|
412
|
+
* Reliability metrics calculation.
|
|
413
|
+
* These control how success/failure rates are computed.
|
|
414
|
+
*/
|
|
415
|
+
readonly METRICS: {
|
|
416
|
+
/**
|
|
417
|
+
* Whether to count correct rejection as success.
|
|
418
|
+
* When true: validation tests that correctly reject count as success.
|
|
419
|
+
* When false: only actual successes count (misleading for validators).
|
|
420
|
+
* @default true
|
|
421
|
+
*/
|
|
422
|
+
readonly COUNT_REJECTION_AS_SUCCESS: true;
|
|
423
|
+
/**
|
|
424
|
+
* Whether to separate validation metrics from reliability metrics.
|
|
425
|
+
* When true: separate "Validation Rate" from "Success Rate".
|
|
426
|
+
* @default true
|
|
427
|
+
*/
|
|
428
|
+
readonly SEPARATE_VALIDATION_METRICS: true;
|
|
429
|
+
};
|
|
430
|
+
/**
|
|
431
|
+
* Labels for different metrics in output.
|
|
432
|
+
*/
|
|
433
|
+
readonly LABELS: {
|
|
434
|
+
/** Label for happy path success rate */
|
|
435
|
+
readonly HAPPY_PATH_SUCCESS: "Reliability";
|
|
436
|
+
/** Label for validation test success (correct rejections) */
|
|
437
|
+
readonly VALIDATION_SUCCESS: "Validation";
|
|
438
|
+
/** Label for overall combined metric */
|
|
439
|
+
readonly OVERALL: "Overall";
|
|
440
|
+
/** Label for unexpected errors */
|
|
441
|
+
readonly UNEXPECTED_ERRORS: "Bugs";
|
|
442
|
+
};
|
|
443
|
+
/**
|
|
444
|
+
* Icons/indicators for outcome assessment results.
|
|
445
|
+
*/
|
|
446
|
+
readonly INDICATORS: {
|
|
447
|
+
/** Correct outcome (success or expected error) */
|
|
448
|
+
readonly correct: "✓";
|
|
449
|
+
/** Incorrect outcome (unexpected behavior) */
|
|
450
|
+
readonly incorrect: "✗";
|
|
451
|
+
/** Ambiguous outcome (either was acceptable) */
|
|
452
|
+
readonly ambiguous: "~";
|
|
453
|
+
};
|
|
454
|
+
};
|
|
455
|
+
/**
|
|
456
|
+
* Rate limiting configuration defaults and detection patterns.
|
|
457
|
+
*/
|
|
458
|
+
export declare const RATE_LIMITING: {
|
|
459
|
+
/** Error patterns indicating rate limiting */
|
|
460
|
+
readonly ERROR_PATTERNS: readonly RegExp[];
|
|
461
|
+
/** Base delay for backoff (ms) */
|
|
462
|
+
readonly BASE_DELAY_MS: 500;
|
|
463
|
+
/** Maximum backoff delay (ms) */
|
|
464
|
+
readonly MAX_DELAY_MS: 10000;
|
|
465
|
+
/** Jitter ratio (0-1) */
|
|
466
|
+
readonly JITTER_RATIO: 0.2;
|
|
467
|
+
};
|
|
468
|
+
/**
|
|
469
|
+
* Stateful testing configuration.
|
|
470
|
+
*/
|
|
471
|
+
export declare const STATEFUL_TESTING: {
|
|
472
|
+
/** Parameter patterns that should use state from previous tools */
|
|
473
|
+
readonly PREFERRED_PARAM_PATTERNS: readonly RegExp[];
|
|
474
|
+
/** Maximum number of stored values across tool calls */
|
|
475
|
+
readonly MAX_STORED_VALUES: 50;
|
|
476
|
+
};
|
|
477
|
+
/**
|
|
478
|
+
* Security testing configuration for check mode.
|
|
479
|
+
* Used by security-tester.ts for deterministic vulnerability detection.
|
|
480
|
+
*
|
|
481
|
+
* Security testing is opt-in via the --security flag and runs deterministic
|
|
482
|
+
* payload tests without requiring LLM. This enables detection of common
|
|
483
|
+
* vulnerability patterns like SQL injection, XSS, path traversal, etc.
|
|
484
|
+
*/
|
|
485
|
+
export declare const SECURITY_TESTING: {
|
|
486
|
+
/** Maximum payloads per category to test (limits test time) */
|
|
487
|
+
readonly MAX_PAYLOADS_PER_CATEGORY: 3;
|
|
488
|
+
/** Timeout for each security test in milliseconds */
|
|
489
|
+
readonly TEST_TIMEOUT_MS: 5000;
|
|
490
|
+
/** Maximum parameters to test per tool (for tools with many params) */
|
|
491
|
+
readonly MAX_PARAMS_PER_TOOL: 5;
|
|
492
|
+
/** Risk score weights by risk level (for calculating overall risk) */
|
|
493
|
+
readonly RISK_WEIGHTS: {
|
|
494
|
+
readonly critical: 40;
|
|
495
|
+
readonly high: 25;
|
|
496
|
+
readonly medium: 15;
|
|
497
|
+
readonly low: 5;
|
|
498
|
+
readonly info: 1;
|
|
499
|
+
};
|
|
500
|
+
/** Risk score thresholds for severity classification */
|
|
501
|
+
readonly RISK_THRESHOLDS: {
|
|
502
|
+
/** Score >= this is critical severity */
|
|
503
|
+
readonly critical: 70;
|
|
504
|
+
/** Score >= this is high severity */
|
|
505
|
+
readonly high: 50;
|
|
506
|
+
/** Score >= this is medium severity */
|
|
507
|
+
readonly medium: 25;
|
|
508
|
+
/** Score >= this is low severity */
|
|
509
|
+
readonly low: 10;
|
|
510
|
+
};
|
|
511
|
+
/** Default categories to test when --security is used without --security-categories */
|
|
512
|
+
readonly DEFAULT_CATEGORIES: readonly ["sql_injection", "xss", "path_traversal", "command_injection", "ssrf", "error_disclosure"];
|
|
513
|
+
/** Parameter name patterns that suggest security-relevant parameters */
|
|
514
|
+
readonly SECURITY_RELEVANT_PARAM_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp];
|
|
515
|
+
/** CWE (Common Weakness Enumeration) IDs for each category */
|
|
516
|
+
readonly CWE_IDS: {
|
|
517
|
+
readonly sql_injection: "CWE-89";
|
|
518
|
+
readonly xss: "CWE-79";
|
|
519
|
+
readonly path_traversal: "CWE-22";
|
|
520
|
+
readonly command_injection: "CWE-78";
|
|
521
|
+
readonly ssrf: "CWE-918";
|
|
522
|
+
readonly error_disclosure: "CWE-209";
|
|
523
|
+
};
|
|
524
|
+
/** Patterns that indicate a security rejection (good behavior) */
|
|
525
|
+
readonly REJECTION_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp];
|
|
526
|
+
/** Patterns that indicate error information disclosure */
|
|
527
|
+
readonly ERROR_DISCLOSURE_PATTERNS: {
|
|
528
|
+
/** Stack trace patterns */
|
|
529
|
+
readonly stackTrace: readonly [RegExp, RegExp, RegExp, RegExp];
|
|
530
|
+
/** File path patterns */
|
|
531
|
+
readonly filePath: readonly [RegExp, RegExp];
|
|
532
|
+
/** Database patterns */
|
|
533
|
+
readonly database: readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp];
|
|
534
|
+
/** Internal IP patterns */
|
|
535
|
+
readonly internalIp: readonly [RegExp, RegExp, RegExp];
|
|
536
|
+
};
|
|
537
|
+
};
|
|
538
|
+
/**
|
|
539
|
+
* Semantic validation configuration for check mode.
|
|
540
|
+
* Used by validation module for semantic type inference and testing.
|
|
541
|
+
*
|
|
542
|
+
* Semantic validation infers types (dates, emails, URLs, etc.) from
|
|
543
|
+
* parameter names and descriptions, then generates targeted tests
|
|
544
|
+
* to verify proper input validation.
|
|
545
|
+
*/
|
|
546
|
+
export declare const SEMANTIC_VALIDATION: {
|
|
547
|
+
/** Minimum confidence threshold for generating semantic tests (0-1) */
|
|
548
|
+
readonly MIN_CONFIDENCE_THRESHOLD: 0.5;
|
|
549
|
+
/** Maximum invalid values to test per parameter */
|
|
550
|
+
readonly MAX_INVALID_VALUES_PER_PARAM: 2;
|
|
551
|
+
/** Maximum semantic tests per tool */
|
|
552
|
+
readonly MAX_SEMANTIC_TESTS_PER_TOOL: 6;
|
|
553
|
+
/** Confidence scores for different inference sources */
|
|
554
|
+
readonly CONFIDENCE: {
|
|
555
|
+
/** Confidence when schema format explicitly specifies type */
|
|
556
|
+
readonly SCHEMA_FORMAT: 0.95;
|
|
557
|
+
/** Confidence boost from parameter name pattern match */
|
|
558
|
+
readonly NAME_PATTERN_MATCH: 0.4;
|
|
559
|
+
/** Confidence boost from description pattern match */
|
|
560
|
+
readonly DESCRIPTION_PATTERN_MATCH: 0.5;
|
|
561
|
+
};
|
|
562
|
+
/** Semantic type display names for documentation */
|
|
563
|
+
readonly TYPE_DISPLAY_NAMES: {
|
|
564
|
+
readonly date_iso8601: "ISO 8601 Date";
|
|
565
|
+
readonly date_month: "Year-Month";
|
|
566
|
+
readonly datetime: "DateTime";
|
|
567
|
+
readonly timestamp: "Unix Timestamp";
|
|
568
|
+
readonly amount_currency: "Currency Amount";
|
|
569
|
+
readonly percentage: "Percentage";
|
|
570
|
+
readonly identifier: "Identifier";
|
|
571
|
+
readonly email: "Email Address";
|
|
572
|
+
readonly url: "URL";
|
|
573
|
+
readonly phone: "Phone Number";
|
|
574
|
+
readonly ip_address: "IP Address";
|
|
575
|
+
readonly file_path: "File Path";
|
|
576
|
+
readonly json: "JSON String";
|
|
577
|
+
readonly base64: "Base64 Encoded";
|
|
578
|
+
readonly regex: "Regular Expression";
|
|
579
|
+
readonly unknown: "Unknown";
|
|
580
|
+
};
|
|
581
|
+
/** Example valid values for documentation */
|
|
582
|
+
readonly EXAMPLE_VALUES: {
|
|
583
|
+
readonly date_iso8601: "2024-01-15";
|
|
584
|
+
readonly date_month: "2024-01";
|
|
585
|
+
readonly datetime: "2024-01-15T14:30:00Z";
|
|
586
|
+
readonly timestamp: "1705330200";
|
|
587
|
+
readonly amount_currency: "99.99";
|
|
588
|
+
readonly percentage: "75";
|
|
589
|
+
readonly identifier: "user-123-abc";
|
|
590
|
+
readonly email: "user@example.com";
|
|
591
|
+
readonly url: "https://example.com";
|
|
592
|
+
readonly phone: "+1-555-123-4567";
|
|
593
|
+
readonly ip_address: "192.168.1.1";
|
|
594
|
+
readonly file_path: "/path/to/file.txt";
|
|
595
|
+
readonly json: "{\"key\": \"value\"}";
|
|
596
|
+
readonly base64: "SGVsbG8gV29ybGQ=";
|
|
597
|
+
readonly regex: "^[a-z]+$";
|
|
598
|
+
readonly unknown: "";
|
|
599
|
+
};
|
|
600
|
+
};
|
|
601
|
+
/**
|
|
602
|
+
* Granular exit codes for CI/CD integration.
|
|
603
|
+
*
|
|
604
|
+
* Enables semantic responses to drift detection, allowing CI pipelines
|
|
605
|
+
* to differentiate between severity levels and take appropriate action.
|
|
606
|
+
*
|
|
607
|
+
* Usage in CI:
|
|
608
|
+
* bellwether check ...
|
|
609
|
+
* case $? in
|
|
610
|
+
* 0) echo "No changes" ;;
|
|
611
|
+
* 1) echo "Info-level changes" ;;
|
|
612
|
+
* 2) echo "Warning-level changes" ;;
|
|
613
|
+
* 3) echo "Breaking changes" ;;
|
|
614
|
+
* 4) echo "Runtime error" ;;
|
|
615
|
+
* 5) echo "Low confidence warning" ;;
|
|
616
|
+
* esac
|
|
617
|
+
*/
|
|
618
|
+
export declare const EXIT_CODES: {
|
|
619
|
+
/** No changes detected - baseline matches current state */
|
|
620
|
+
readonly CLEAN: 0;
|
|
621
|
+
/** Info-level changes only (non-breaking additions, description changes) */
|
|
622
|
+
readonly INFO: 1;
|
|
623
|
+
/** Warning-level changes (potential issues, new error patterns) */
|
|
624
|
+
readonly WARNING: 2;
|
|
625
|
+
/** Breaking changes detected (schema changes, removed tools) */
|
|
626
|
+
readonly BREAKING: 3;
|
|
627
|
+
/** Runtime error (connection failed, timeout, configuration error) */
|
|
628
|
+
readonly ERROR: 4;
|
|
629
|
+
/** Low confidence warning - metrics have insufficient statistical confidence */
|
|
630
|
+
readonly LOW_CONFIDENCE: 5;
|
|
631
|
+
};
|
|
632
|
+
/**
|
|
633
|
+
* Map severity level to exit code.
|
|
634
|
+
* Used by check command to determine appropriate exit status.
|
|
635
|
+
*/
|
|
636
|
+
export declare const SEVERITY_TO_EXIT_CODE: Record<string, number>;
|
|
637
|
+
/**
|
|
638
|
+
* Payload size limits for protection against resource exhaustion.
|
|
639
|
+
*
|
|
640
|
+
* These limits prevent DoS scenarios where malformed or malicious
|
|
641
|
+
* MCP servers could cause memory exhaustion or infinite loops.
|
|
642
|
+
*/
|
|
643
|
+
export declare const PAYLOAD_LIMITS: {
|
|
644
|
+
/** Maximum schema size in bytes (1MB) */
|
|
645
|
+
readonly MAX_SCHEMA_SIZE: number;
|
|
646
|
+
/** Maximum baseline file size in bytes (10MB) */
|
|
647
|
+
readonly MAX_BASELINE_SIZE: number;
|
|
648
|
+
/** Maximum response content size in bytes (5MB) */
|
|
649
|
+
readonly MAX_RESPONSE_SIZE: number;
|
|
650
|
+
/** Maximum array items to process in fingerprinting */
|
|
651
|
+
readonly MAX_ARRAY_ITEMS: 10000;
|
|
652
|
+
/** Maximum object properties to process */
|
|
653
|
+
readonly MAX_OBJECT_PROPERTIES: 1000;
|
|
654
|
+
/** Maximum schema depth for circular reference protection */
|
|
655
|
+
readonly MAX_SCHEMA_DEPTH: 50;
|
|
656
|
+
};
|
|
657
|
+
/**
|
|
658
|
+
* Statistical sampling configuration for check mode.
|
|
659
|
+
* Used by check.ts and interviewer.ts for confidence-based testing.
|
|
660
|
+
*
|
|
661
|
+
* Controls minimum sample counts for reliable performance baselines
|
|
662
|
+
* and enables adaptive sample escalation for high-variability tools.
|
|
663
|
+
*/
|
|
664
|
+
export declare const CHECK_SAMPLING: {
|
|
665
|
+
/** Default minimum samples per tool */
|
|
666
|
+
readonly DEFAULT_MIN_SAMPLES: 10;
|
|
667
|
+
/** Recommended minimum samples for production baselines */
|
|
668
|
+
readonly RECOMMENDED_MIN_SAMPLES: 10;
|
|
669
|
+
/** Maximum samples when auto-escalating for high variability */
|
|
670
|
+
readonly MAX_AUTO_ESCALATE_SAMPLES: 15;
|
|
671
|
+
/** Coefficient of variation threshold that triggers auto-escalation (50%) */
|
|
672
|
+
readonly HIGH_VARIABILITY_THRESHOLD: 0.5;
|
|
673
|
+
/** Number of additional samples to add when escalating */
|
|
674
|
+
readonly AUTO_ESCALATE_INCREMENT: 2;
|
|
675
|
+
/** Target confidence levels (maps to PERFORMANCE_CONFIDENCE thresholds) */
|
|
676
|
+
readonly TARGET_CONFIDENCE: {
|
|
677
|
+
readonly low: "low";
|
|
678
|
+
readonly medium: "medium";
|
|
679
|
+
readonly high: "high";
|
|
680
|
+
};
|
|
681
|
+
/** Minimum samples required for each target confidence level */
|
|
682
|
+
readonly SAMPLES_FOR_CONFIDENCE: {
|
|
683
|
+
readonly low: 1;
|
|
684
|
+
readonly medium: 5;
|
|
685
|
+
readonly high: 10;
|
|
686
|
+
};
|
|
687
|
+
};
|
|
688
|
+
/**
|
|
689
|
+
* External dependency detection configuration.
|
|
690
|
+
* Used by external-dependency-detector.ts for categorizing errors
|
|
691
|
+
* from known external services vs code bugs.
|
|
692
|
+
*
|
|
693
|
+
* Helps distinguish between:
|
|
694
|
+
* - Environment misconfiguration (missing credentials)
|
|
695
|
+
* - External API failures (service down, rate limited)
|
|
696
|
+
* - Actual code bugs
|
|
697
|
+
*/
|
|
698
|
+
export declare const EXTERNAL_DEPENDENCIES: {
|
|
699
|
+
/** Known external service fingerprints */
|
|
700
|
+
readonly SERVICES: {
|
|
701
|
+
readonly plaid: {
|
|
702
|
+
readonly name: "Plaid";
|
|
703
|
+
/** Patterns in tool names/descriptions that indicate Plaid usage */
|
|
704
|
+
readonly toolPatterns: readonly RegExp[];
|
|
705
|
+
/** Patterns in error messages that indicate Plaid errors */
|
|
706
|
+
readonly errorPatterns: readonly RegExp[];
|
|
707
|
+
/** HTTP status codes typical of Plaid errors */
|
|
708
|
+
readonly statusCodes: readonly number[];
|
|
709
|
+
/** Remediation suggestion for Plaid errors */
|
|
710
|
+
readonly remediation: "Configure Plaid sandbox credentials (PLAID_CLIENT_ID, PLAID_SECRET, PLAID_ENV=sandbox)";
|
|
711
|
+
/** Credential expectations for configuration checks */
|
|
712
|
+
readonly credentials: {
|
|
713
|
+
readonly requiredEnv: readonly ["PLAID_CLIENT_ID", "PLAID_SECRET"];
|
|
714
|
+
readonly optionalEnv: readonly ["PLAID_ENV"];
|
|
715
|
+
readonly requiredConfigKeys: readonly ["clientId", "secret"];
|
|
716
|
+
readonly sandboxAvailable: true;
|
|
717
|
+
readonly mockAvailable: true;
|
|
718
|
+
};
|
|
719
|
+
};
|
|
720
|
+
readonly stripe: {
|
|
721
|
+
readonly name: "Stripe";
|
|
722
|
+
readonly toolPatterns: readonly RegExp[];
|
|
723
|
+
readonly errorPatterns: readonly RegExp[];
|
|
724
|
+
readonly statusCodes: readonly number[];
|
|
725
|
+
readonly remediation: "Configure Stripe API keys (STRIPE_SECRET_KEY)";
|
|
726
|
+
readonly credentials: {
|
|
727
|
+
readonly requiredEnv: readonly ["STRIPE_SECRET_KEY"];
|
|
728
|
+
readonly optionalEnv: readonly ["STRIPE_PUBLISHABLE_KEY"];
|
|
729
|
+
readonly requiredConfigKeys: readonly ["secretKey"];
|
|
730
|
+
readonly sandboxAvailable: true;
|
|
731
|
+
readonly mockAvailable: true;
|
|
732
|
+
};
|
|
733
|
+
};
|
|
734
|
+
readonly aws: {
|
|
735
|
+
readonly name: "AWS";
|
|
736
|
+
readonly toolPatterns: readonly RegExp[];
|
|
737
|
+
readonly errorPatterns: readonly RegExp[];
|
|
738
|
+
readonly statusCodes: readonly number[];
|
|
739
|
+
readonly remediation: "Configure AWS credentials (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION)";
|
|
740
|
+
readonly credentials: {
|
|
741
|
+
readonly requiredEnv: readonly ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"];
|
|
742
|
+
readonly optionalEnv: readonly ["AWS_REGION"];
|
|
743
|
+
readonly requiredConfigKeys: readonly ["accessKeyId", "secretAccessKey"];
|
|
744
|
+
readonly sandboxAvailable: false;
|
|
745
|
+
readonly mockAvailable: true;
|
|
746
|
+
};
|
|
747
|
+
};
|
|
748
|
+
readonly openai: {
|
|
749
|
+
readonly name: "OpenAI";
|
|
750
|
+
readonly toolPatterns: readonly RegExp[];
|
|
751
|
+
readonly errorPatterns: readonly RegExp[];
|
|
752
|
+
readonly statusCodes: readonly number[];
|
|
753
|
+
readonly remediation: "Configure OpenAI API key (OPENAI_API_KEY)";
|
|
754
|
+
readonly credentials: {
|
|
755
|
+
readonly requiredEnv: readonly ["OPENAI_API_KEY"];
|
|
756
|
+
readonly optionalEnv: readonly [];
|
|
757
|
+
readonly requiredConfigKeys: readonly ["apiKey"];
|
|
758
|
+
readonly sandboxAvailable: false;
|
|
759
|
+
readonly mockAvailable: true;
|
|
760
|
+
};
|
|
761
|
+
};
|
|
762
|
+
readonly anthropic: {
|
|
763
|
+
readonly name: "Anthropic";
|
|
764
|
+
readonly toolPatterns: readonly RegExp[];
|
|
765
|
+
readonly errorPatterns: readonly RegExp[];
|
|
766
|
+
readonly statusCodes: readonly number[];
|
|
767
|
+
readonly remediation: "Configure Anthropic API key (ANTHROPIC_API_KEY)";
|
|
768
|
+
readonly credentials: {
|
|
769
|
+
readonly requiredEnv: readonly ["ANTHROPIC_API_KEY"];
|
|
770
|
+
readonly optionalEnv: readonly [];
|
|
771
|
+
readonly requiredConfigKeys: readonly ["apiKey"];
|
|
772
|
+
readonly sandboxAvailable: false;
|
|
773
|
+
readonly mockAvailable: true;
|
|
774
|
+
};
|
|
775
|
+
};
|
|
776
|
+
readonly firebase: {
|
|
777
|
+
readonly name: "Firebase";
|
|
778
|
+
readonly toolPatterns: readonly RegExp[];
|
|
779
|
+
readonly errorPatterns: readonly RegExp[];
|
|
780
|
+
readonly statusCodes: readonly number[];
|
|
781
|
+
readonly remediation: "Configure Firebase credentials (FIREBASE_CONFIG or service account)";
|
|
782
|
+
readonly credentials: {
|
|
783
|
+
readonly requiredEnv: readonly ["FIREBASE_CONFIG"];
|
|
784
|
+
readonly optionalEnv: readonly ["GOOGLE_APPLICATION_CREDENTIALS"];
|
|
785
|
+
readonly requiredConfigKeys: readonly ["config"];
|
|
786
|
+
readonly sandboxAvailable: false;
|
|
787
|
+
readonly mockAvailable: true;
|
|
788
|
+
};
|
|
789
|
+
};
|
|
790
|
+
readonly twilio: {
|
|
791
|
+
readonly name: "Twilio";
|
|
792
|
+
readonly toolPatterns: readonly RegExp[];
|
|
793
|
+
readonly errorPatterns: readonly RegExp[];
|
|
794
|
+
readonly statusCodes: readonly number[];
|
|
795
|
+
readonly remediation: "Configure Twilio credentials (TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN)";
|
|
796
|
+
readonly credentials: {
|
|
797
|
+
readonly requiredEnv: readonly ["TWILIO_ACCOUNT_SID", "TWILIO_AUTH_TOKEN"];
|
|
798
|
+
readonly optionalEnv: readonly [];
|
|
799
|
+
readonly requiredConfigKeys: readonly ["accountSid", "authToken"];
|
|
800
|
+
readonly sandboxAvailable: true;
|
|
801
|
+
readonly mockAvailable: true;
|
|
802
|
+
};
|
|
803
|
+
};
|
|
804
|
+
readonly sendgrid: {
|
|
805
|
+
readonly name: "SendGrid";
|
|
806
|
+
readonly toolPatterns: readonly RegExp[];
|
|
807
|
+
readonly errorPatterns: readonly RegExp[];
|
|
808
|
+
readonly statusCodes: readonly number[];
|
|
809
|
+
readonly remediation: "Configure SendGrid API key (SENDGRID_API_KEY)";
|
|
810
|
+
readonly credentials: {
|
|
811
|
+
readonly requiredEnv: readonly ["SENDGRID_API_KEY"];
|
|
812
|
+
readonly optionalEnv: readonly [];
|
|
813
|
+
readonly requiredConfigKeys: readonly ["apiKey"];
|
|
814
|
+
readonly sandboxAvailable: false;
|
|
815
|
+
readonly mockAvailable: true;
|
|
816
|
+
};
|
|
817
|
+
};
|
|
818
|
+
readonly github: {
|
|
819
|
+
readonly name: "GitHub";
|
|
820
|
+
readonly toolPatterns: readonly RegExp[];
|
|
821
|
+
readonly errorPatterns: readonly RegExp[];
|
|
822
|
+
readonly statusCodes: readonly number[];
|
|
823
|
+
readonly remediation: "Configure GitHub token (GITHUB_TOKEN)";
|
|
824
|
+
readonly credentials: {
|
|
825
|
+
readonly requiredEnv: readonly ["GITHUB_TOKEN"];
|
|
826
|
+
readonly optionalEnv: readonly [];
|
|
827
|
+
readonly requiredConfigKeys: readonly ["token"];
|
|
828
|
+
readonly sandboxAvailable: false;
|
|
829
|
+
readonly mockAvailable: true;
|
|
830
|
+
};
|
|
831
|
+
};
|
|
832
|
+
readonly database: {
|
|
833
|
+
readonly name: "Database";
|
|
834
|
+
readonly toolPatterns: readonly RegExp[];
|
|
835
|
+
readonly errorPatterns: readonly RegExp[];
|
|
836
|
+
readonly statusCodes: readonly number[];
|
|
837
|
+
readonly remediation: "Check database connection string and ensure database server is running";
|
|
838
|
+
readonly credentials: {
|
|
839
|
+
readonly requiredEnv: readonly [];
|
|
840
|
+
readonly optionalEnv: readonly ["DATABASE_URL"];
|
|
841
|
+
readonly requiredConfigKeys: readonly ["connectionString"];
|
|
842
|
+
readonly sandboxAvailable: false;
|
|
843
|
+
readonly mockAvailable: false;
|
|
844
|
+
};
|
|
845
|
+
};
|
|
846
|
+
};
|
|
847
|
+
/** Error source categories */
|
|
848
|
+
readonly ERROR_SOURCES: {
|
|
849
|
+
/** Error is from external service API */
|
|
850
|
+
readonly external_dependency: "external_dependency";
|
|
851
|
+
/** Error is from missing/invalid environment configuration */
|
|
852
|
+
readonly environment: "environment";
|
|
853
|
+
/** Error appears to be a code bug */
|
|
854
|
+
readonly code_bug: "code_bug";
|
|
855
|
+
/** Cannot determine error source */
|
|
856
|
+
readonly unknown: "unknown";
|
|
857
|
+
};
|
|
858
|
+
/** Patterns that indicate environment/configuration issues */
|
|
859
|
+
readonly ENVIRONMENT_PATTERNS: readonly RegExp[];
|
|
860
|
+
/** Patterns that indicate transient/temporary issues (should retry) */
|
|
861
|
+
readonly TRANSIENT_PATTERNS: readonly RegExp[];
|
|
862
|
+
};
|
|
863
|
+
/**
|
|
864
|
+
* Example output configuration for documentation generation.
|
|
865
|
+
* Used by docs/contract.ts for CONTRACT.md example formatting.
|
|
866
|
+
*
|
|
867
|
+
* Controls truncation behavior and provides configurable limits
|
|
868
|
+
* for different output modes (default, full, AI-optimized).
|
|
869
|
+
*/
|
|
870
|
+
export declare const EXAMPLE_OUTPUT: {
|
|
871
|
+
/** Default example length (backwards compatible) */
|
|
872
|
+
readonly DEFAULT_LENGTH: 300;
|
|
873
|
+
/** Full example length (with --full-examples) */
|
|
874
|
+
readonly FULL_LENGTH: 5000;
|
|
875
|
+
/** AI-optimized example length (balanced for context windows) */
|
|
876
|
+
readonly AI_OPTIMIZED_LENGTH: 2000;
|
|
877
|
+
/** Maximum examples per tool in documentation */
|
|
878
|
+
readonly MAX_EXAMPLES_PER_TOOL: 3;
|
|
879
|
+
/** Default examples per tool */
|
|
880
|
+
readonly DEFAULT_EXAMPLES_PER_TOOL: 2;
|
|
881
|
+
/** Minimum length to show truncation indicator */
|
|
882
|
+
readonly MIN_TRUNCATION_INDICATOR_LENGTH: 50;
|
|
883
|
+
/** Truncation indicators for different content types */
|
|
884
|
+
readonly TRUNCATION_INDICATORS: {
|
|
885
|
+
readonly json: "... (truncated)";
|
|
886
|
+
readonly markdown: "\n\n... (content truncated)";
|
|
887
|
+
readonly text: "...";
|
|
888
|
+
};
|
|
889
|
+
/** Smart truncation settings */
|
|
890
|
+
readonly SMART_TRUNCATE: {
|
|
891
|
+
/** Preserve JSON structure when truncating */
|
|
892
|
+
readonly preserveJsonStructure: true;
|
|
893
|
+
/** Preserve markdown headers when truncating */
|
|
894
|
+
readonly preserveMarkdownHeaders: true;
|
|
895
|
+
/** Minimum items to show in truncated arrays */
|
|
896
|
+
readonly minArrayItems: 2;
|
|
897
|
+
/** Message template for omitted array items */
|
|
898
|
+
readonly arrayOmittedTemplate: "... ({count} more items)";
|
|
899
|
+
/** Message template for omitted object keys */
|
|
900
|
+
readonly objectOmittedTemplate: "... ({count} more fields)";
|
|
901
|
+
};
|
|
902
|
+
};
|
|
903
|
+
/**
|
|
904
|
+
* Display thresholds and symbols for reliability metrics.
|
|
905
|
+
*/
|
|
906
|
+
export declare const RELIABILITY_DISPLAY: {
|
|
907
|
+
/** High reliability threshold (percentage) */
|
|
908
|
+
readonly HIGH_THRESHOLD: 90;
|
|
909
|
+
/** Medium reliability threshold (percentage) */
|
|
910
|
+
readonly MEDIUM_THRESHOLD: 50;
|
|
911
|
+
/** Status symbols for reliability and validation summaries */
|
|
912
|
+
readonly SYMBOLS: {
|
|
913
|
+
readonly PASS: "✓";
|
|
914
|
+
readonly WARN: "⚠";
|
|
915
|
+
readonly FAIL: "✗";
|
|
916
|
+
};
|
|
917
|
+
};
|
|
918
|
+
/**
|
|
919
|
+
* Confidence indicators for terminal and documentation output.
|
|
920
|
+
*/
|
|
921
|
+
export declare const CONFIDENCE_INDICATORS: {
|
|
922
|
+
readonly high: "🟢";
|
|
923
|
+
readonly medium: "🟡";
|
|
924
|
+
readonly low: "🔴";
|
|
925
|
+
};
|
|
926
|
+
/**
|
|
927
|
+
* Documentation quality scoring configuration.
|
|
928
|
+
* Used by documentation-scorer.ts for tool documentation assessment.
|
|
929
|
+
*
|
|
930
|
+
* Scoring evaluates four key components:
|
|
931
|
+
* - Description coverage: percentage of tools with descriptions
|
|
932
|
+
* - Description quality: depth and clarity of descriptions
|
|
933
|
+
* - Parameter documentation: percentage of parameters documented
|
|
934
|
+
* - Example coverage: percentage of tools with examples
|
|
935
|
+
*/
|
|
936
|
+
export declare const DOCUMENTATION_SCORING: {
|
|
937
|
+
/** Component weights for overall score (should sum to 1.0) */
|
|
938
|
+
readonly WEIGHTS: {
|
|
939
|
+
readonly descriptionCoverage: 0.3;
|
|
940
|
+
readonly descriptionQuality: 0.3;
|
|
941
|
+
readonly parameterDocumentation: 0.25;
|
|
942
|
+
readonly exampleCoverage: 0.15;
|
|
943
|
+
};
|
|
944
|
+
/** Grade thresholds (minimum score for each grade) */
|
|
945
|
+
readonly GRADE_THRESHOLDS: {
|
|
946
|
+
readonly A: 90;
|
|
947
|
+
readonly B: 80;
|
|
948
|
+
readonly C: 70;
|
|
949
|
+
readonly D: 60;
|
|
950
|
+
readonly F: 0;
|
|
951
|
+
};
|
|
952
|
+
/** Description quality scoring criteria */
|
|
953
|
+
readonly DESCRIPTION: {
|
|
954
|
+
/** Minimum length for a "good" description */
|
|
955
|
+
readonly MIN_GOOD_LENGTH: 50;
|
|
956
|
+
/** Minimum length for an "acceptable" description */
|
|
957
|
+
readonly MIN_ACCEPTABLE_LENGTH: 20;
|
|
958
|
+
/** Score for good length (>= MIN_GOOD_LENGTH) */
|
|
959
|
+
readonly GOOD_LENGTH_SCORE: 40;
|
|
960
|
+
/** Score for acceptable length (>= MIN_ACCEPTABLE_LENGTH) */
|
|
961
|
+
readonly ACCEPTABLE_LENGTH_SCORE: 20;
|
|
962
|
+
/** Score bonus for starting with imperative verb */
|
|
963
|
+
readonly IMPERATIVE_VERB_BONUS: 20;
|
|
964
|
+
/** Score bonus for describing behavior/returns */
|
|
965
|
+
readonly BEHAVIOR_DESCRIPTION_BONUS: 20;
|
|
966
|
+
/** Score bonus for including examples or specifics */
|
|
967
|
+
readonly EXAMPLES_BONUS: 20;
|
|
968
|
+
};
|
|
969
|
+
/** Penalties for documentation issues */
|
|
970
|
+
readonly PENALTIES: {
|
|
971
|
+
/** Penalty for missing tool description */
|
|
972
|
+
readonly missingDescription: 30;
|
|
973
|
+
/** Penalty for short description (< MIN_ACCEPTABLE_LENGTH) */
|
|
974
|
+
readonly shortDescription: 15;
|
|
975
|
+
/** Penalty multiplier for undocumented parameters (applied per-param) */
|
|
976
|
+
readonly undocumentedParamMultiplier: 25;
|
|
977
|
+
};
|
|
978
|
+
/** Pattern to detect imperative verb at start of description */
|
|
979
|
+
readonly IMPERATIVE_PATTERN: RegExp;
|
|
980
|
+
/** Pattern to detect behavior/return value description */
|
|
981
|
+
readonly BEHAVIOR_PATTERN: RegExp;
|
|
982
|
+
/** Pattern to detect examples or specific details */
|
|
983
|
+
readonly EXAMPLES_PATTERN: RegExp;
|
|
984
|
+
/** Issue severity levels */
|
|
985
|
+
readonly SEVERITY: {
|
|
986
|
+
readonly missingDescription: "error";
|
|
987
|
+
readonly shortDescription: "warning";
|
|
988
|
+
readonly missingParamDescription: "warning";
|
|
989
|
+
readonly noExamples: "info";
|
|
990
|
+
};
|
|
991
|
+
/** Maximum suggestions to include in report */
|
|
992
|
+
readonly MAX_SUGGESTIONS: 5;
|
|
993
|
+
/** Threshold for suggesting examples (tools without examples / total tools) */
|
|
994
|
+
readonly EXAMPLES_SUGGESTION_THRESHOLD: 0.5;
|
|
995
|
+
};
|
|
996
|
+
/**
|
|
997
|
+
* AI Agent Compatibility scoring configuration.
|
|
998
|
+
* Used by ai-compatibility-scorer.ts for evaluating how well
|
|
999
|
+
* an MCP server is designed for AI agent consumption.
|
|
1000
|
+
*
|
|
1001
|
+
* Scoring factors:
|
|
1002
|
+
* - Description clarity (20%): LLM understanding
|
|
1003
|
+
* - Parameter naming (15%): Semantic inference
|
|
1004
|
+
* - Error message quality (15%): Actionable errors
|
|
1005
|
+
* - Example completeness (20%): Non-truncated examples
|
|
1006
|
+
* - Workflow documentation (15%): Multi-step guidance
|
|
1007
|
+
* - Response predictability (15%): Schema stability
|
|
1008
|
+
*/
|
|
1009
|
+
export declare const AI_COMPATIBILITY: {
|
|
1010
|
+
/** Component weights for overall score (should sum to 1.0) */
|
|
1011
|
+
readonly WEIGHTS: {
|
|
1012
|
+
readonly descriptionClarity: 0.2;
|
|
1013
|
+
readonly parameterNaming: 0.15;
|
|
1014
|
+
readonly errorMessageQuality: 0.15;
|
|
1015
|
+
readonly exampleCompleteness: 0.2;
|
|
1016
|
+
readonly workflowDocumentation: 0.15;
|
|
1017
|
+
readonly responsePredictability: 0.15;
|
|
1018
|
+
};
|
|
1019
|
+
/** Grade thresholds (minimum score for each grade) */
|
|
1020
|
+
readonly GRADE_THRESHOLDS: {
|
|
1021
|
+
readonly A: 90;
|
|
1022
|
+
readonly B: 80;
|
|
1023
|
+
readonly C: 70;
|
|
1024
|
+
readonly D: 60;
|
|
1025
|
+
readonly F: 0;
|
|
1026
|
+
};
|
|
1027
|
+
/** Description quality scoring */
|
|
1028
|
+
readonly DESCRIPTION: {
|
|
1029
|
+
/** Minimum acceptable description length */
|
|
1030
|
+
readonly MIN_LENGTH: 50;
|
|
1031
|
+
/** Good description length */
|
|
1032
|
+
readonly GOOD_LENGTH: 100;
|
|
1033
|
+
/** Pattern to detect action verb at start */
|
|
1034
|
+
readonly ACTION_VERB_PATTERN: RegExp;
|
|
1035
|
+
/** Pattern to detect purpose/behavior explanation */
|
|
1036
|
+
readonly PURPOSE_PATTERN: RegExp;
|
|
1037
|
+
/** Pattern to detect input/output mentions */
|
|
1038
|
+
readonly IO_PATTERN: RegExp;
|
|
1039
|
+
/** Points for various description qualities */
|
|
1040
|
+
readonly POINTS: {
|
|
1041
|
+
/** Points for minimum length */
|
|
1042
|
+
readonly MIN_LENGTH: 20;
|
|
1043
|
+
/** Points for good length */
|
|
1044
|
+
readonly GOOD_LENGTH: 30;
|
|
1045
|
+
/** Points for action verb */
|
|
1046
|
+
readonly ACTION_VERB: 25;
|
|
1047
|
+
/** Points for purpose explanation */
|
|
1048
|
+
readonly PURPOSE: 25;
|
|
1049
|
+
/** Points for I/O mention */
|
|
1050
|
+
readonly IO_MENTION: 20;
|
|
1051
|
+
};
|
|
1052
|
+
};
|
|
1053
|
+
/** Parameter naming quality scoring */
|
|
1054
|
+
readonly PARAMETER: {
|
|
1055
|
+
/** Generic/bad parameter names to flag */
|
|
1056
|
+
readonly BAD_NAMES: readonly string[];
|
|
1057
|
+
/** Minimum acceptable parameter name length */
|
|
1058
|
+
readonly MIN_NAME_LENGTH: 2;
|
|
1059
|
+
};
|
|
1060
|
+
/** Error message quality scoring */
|
|
1061
|
+
readonly ERROR: {
|
|
1062
|
+
/** Minimum error message length for quality */
|
|
1063
|
+
readonly MIN_MESSAGE_LENGTH: 20;
|
|
1064
|
+
/** Pattern to detect actionable error content */
|
|
1065
|
+
readonly ACTIONABLE_PATTERN: RegExp;
|
|
1066
|
+
/** Pattern to detect remediation hints */
|
|
1067
|
+
readonly REMEDIATION_PATTERN: RegExp;
|
|
1068
|
+
/** Default score when no errors observed */
|
|
1069
|
+
readonly DEFAULT_SCORE: 70;
|
|
1070
|
+
};
|
|
1071
|
+
/** Example completeness scoring */
|
|
1072
|
+
readonly EXAMPLE: {
|
|
1073
|
+
/** Weight for coverage in score */
|
|
1074
|
+
readonly COVERAGE_WEIGHT: 0.6;
|
|
1075
|
+
/** Weight for quality (non-truncated) in score */
|
|
1076
|
+
readonly QUALITY_WEIGHT: 0.4;
|
|
1077
|
+
};
|
|
1078
|
+
/** Workflow documentation scoring */
|
|
1079
|
+
readonly WORKFLOW: {
|
|
1080
|
+
/** Pattern to detect sequence hints */
|
|
1081
|
+
readonly SEQUENCE_PATTERN: RegExp;
|
|
1082
|
+
/** Pattern to detect dependency hints */
|
|
1083
|
+
readonly DEPENDENCY_PATTERN: RegExp;
|
|
1084
|
+
};
|
|
1085
|
+
/** Response predictability scoring */
|
|
1086
|
+
readonly RESPONSE: {
|
|
1087
|
+
/** Default score when no evolution data */
|
|
1088
|
+
readonly DEFAULT_SCORE: 80;
|
|
1089
|
+
};
|
|
1090
|
+
/** Maximum recommendations to generate */
|
|
1091
|
+
readonly MAX_RECOMMENDATIONS: 5;
|
|
1092
|
+
/** Score threshold below which to recommend improvements */
|
|
1093
|
+
readonly RECOMMENDATION_THRESHOLD: 80;
|
|
1094
|
+
};
|
|
1095
|
+
/**
|
|
1096
|
+
* Contract-as-code testing configuration.
|
|
1097
|
+
* Used by contract validator for verifying MCP server behavior
|
|
1098
|
+
* against defined expectations.
|
|
1099
|
+
*/
|
|
1100
|
+
export declare const CONTRACT_TESTING: {
|
|
1101
|
+
/** Default contract file names (in order of preference) */
|
|
1102
|
+
readonly CONTRACT_FILENAMES: readonly string[];
|
|
1103
|
+
/** Current contract schema version */
|
|
1104
|
+
readonly SCHEMA_VERSION: "1";
|
|
1105
|
+
/** Maximum number of output assertions per tool */
|
|
1106
|
+
readonly MAX_OUTPUT_ASSERTIONS: 20;
|
|
1107
|
+
/** Maximum validation errors to report before truncating */
|
|
1108
|
+
readonly MAX_VALIDATION_ERRORS: 50;
|
|
1109
|
+
/** Validation modes */
|
|
1110
|
+
readonly MODES: {
|
|
1111
|
+
/** Strict mode - fail on any contract violation */
|
|
1112
|
+
readonly STRICT: "strict";
|
|
1113
|
+
/** Lenient mode - warn on non-breaking violations */
|
|
1114
|
+
readonly LENIENT: "lenient";
|
|
1115
|
+
/** Report mode - report violations without failing */
|
|
1116
|
+
readonly REPORT: "report";
|
|
1117
|
+
};
|
|
1118
|
+
/** Severity levels for contract violations */
|
|
1119
|
+
readonly VIOLATION_SEVERITY: {
|
|
1120
|
+
/** Tool is missing from server */
|
|
1121
|
+
readonly MISSING_TOOL: "breaking";
|
|
1122
|
+
/** Required parameter is missing */
|
|
1123
|
+
readonly MISSING_REQUIRED_PARAM: "breaking";
|
|
1124
|
+
/** Parameter type mismatch */
|
|
1125
|
+
readonly TYPE_MISMATCH: "breaking";
|
|
1126
|
+
/** Output assertion failed */
|
|
1127
|
+
readonly OUTPUT_ASSERTION_FAILED: "warning";
|
|
1128
|
+
/** Extra unexpected tool found */
|
|
1129
|
+
readonly UNEXPECTED_TOOL: "info";
|
|
1130
|
+
/** Extra unexpected field in output */
|
|
1131
|
+
readonly UNEXPECTED_FIELD: "info";
|
|
1132
|
+
};
|
|
1133
|
+
/** JSONPath patterns for output validation */
|
|
1134
|
+
readonly JSONPATH: {
|
|
1135
|
+
/** Maximum depth for JSONPath evaluation */
|
|
1136
|
+
readonly MAX_DEPTH: 20;
|
|
1137
|
+
/** Timeout for JSONPath evaluation (ms) */
|
|
1138
|
+
readonly TIMEOUT: 1000;
|
|
1139
|
+
};
|
|
1140
|
+
};
|
|
1141
|
+
/**
|
|
1142
|
+
* Regression risk scoring configuration.
|
|
1143
|
+
* Used by risk-scorer.ts for prioritizing fixes based on
|
|
1144
|
+
* weighted risk factors.
|
|
1145
|
+
*/
|
|
1146
|
+
export declare const REGRESSION_RISK: {
|
|
1147
|
+
/** Risk factor weights (should sum to 1.0) */
|
|
1148
|
+
readonly WEIGHTS: {
|
|
1149
|
+
/** Weight for breaking change severity */
|
|
1150
|
+
readonly breakingChangeSeverity: 0.35;
|
|
1151
|
+
/** Weight for affected tool importance */
|
|
1152
|
+
readonly toolImportance: 0.25;
|
|
1153
|
+
/** Weight for error rate delta */
|
|
1154
|
+
readonly errorRateDelta: 0.15;
|
|
1155
|
+
/** Weight for performance regression */
|
|
1156
|
+
readonly performanceRegression: 0.15;
|
|
1157
|
+
/** Weight for security posture changes */
|
|
1158
|
+
readonly securityPosture: 0.1;
|
|
1159
|
+
};
|
|
1160
|
+
/** Risk level thresholds (minimum score for each level) */
|
|
1161
|
+
readonly LEVEL_THRESHOLDS: {
|
|
1162
|
+
readonly critical: 80;
|
|
1163
|
+
readonly high: 60;
|
|
1164
|
+
readonly medium: 40;
|
|
1165
|
+
readonly low: 20;
|
|
1166
|
+
readonly info: 0;
|
|
1167
|
+
};
|
|
1168
|
+
/** Breaking change severity scores */
|
|
1169
|
+
readonly BREAKING_SCORES: {
|
|
1170
|
+
/** Score for removed tool */
|
|
1171
|
+
readonly toolRemoved: 100;
|
|
1172
|
+
/** Score for removed required parameter */
|
|
1173
|
+
readonly requiredParamRemoved: 90;
|
|
1174
|
+
/** Score for type change */
|
|
1175
|
+
readonly typeChanged: 80;
|
|
1176
|
+
/** Score for removed enum value */
|
|
1177
|
+
readonly enumValueRemoved: 70;
|
|
1178
|
+
/** Score for tightened constraint */
|
|
1179
|
+
readonly constraintTightened: 50;
|
|
1180
|
+
/** Score for added required parameter */
|
|
1181
|
+
readonly requiredParamAdded: 40;
|
|
1182
|
+
};
|
|
1183
|
+
/** Tool importance indicators (patterns in descriptions) */
|
|
1184
|
+
readonly IMPORTANCE_PATTERNS: {
|
|
1185
|
+
/** Patterns indicating high-frequency tools */
|
|
1186
|
+
readonly highFrequency: readonly [RegExp];
|
|
1187
|
+
/** Patterns indicating low-frequency tools */
|
|
1188
|
+
readonly lowFrequency: readonly [RegExp];
|
|
1189
|
+
};
|
|
1190
|
+
/** Error rate change thresholds */
|
|
1191
|
+
readonly ERROR_RATE: {
|
|
1192
|
+
/** Threshold for significant increase (%) */
|
|
1193
|
+
readonly SIGNIFICANT_INCREASE: 10;
|
|
1194
|
+
/** Threshold for critical increase (%) */
|
|
1195
|
+
readonly CRITICAL_INCREASE: 25;
|
|
1196
|
+
/** Base score for error rate calculation */
|
|
1197
|
+
readonly BASE_SCORE: 50;
|
|
1198
|
+
};
|
|
1199
|
+
/** Performance regression scoring */
|
|
1200
|
+
readonly PERFORMANCE: {
|
|
1201
|
+
/** Threshold for minor regression (%) */
|
|
1202
|
+
readonly MINOR_REGRESSION: 10;
|
|
1203
|
+
/** Threshold for major regression (%) */
|
|
1204
|
+
readonly MAJOR_REGRESSION: 25;
|
|
1205
|
+
/** Threshold for critical regression (%) */
|
|
1206
|
+
readonly CRITICAL_REGRESSION: 50;
|
|
1207
|
+
/** Scores for each threshold */
|
|
1208
|
+
readonly SCORES: {
|
|
1209
|
+
readonly minor: 30;
|
|
1210
|
+
readonly major: 60;
|
|
1211
|
+
readonly critical: 90;
|
|
1212
|
+
};
|
|
1213
|
+
};
|
|
1214
|
+
/** Security change scoring */
|
|
1215
|
+
readonly SECURITY: {
|
|
1216
|
+
/** Score for new vulnerability */
|
|
1217
|
+
readonly NEW_VULNERABILITY: 100;
|
|
1218
|
+
/** Score for resolved vulnerability */
|
|
1219
|
+
readonly RESOLVED_VULNERABILITY: -20;
|
|
1220
|
+
/** Score for severity increase */
|
|
1221
|
+
readonly SEVERITY_INCREASE: 50;
|
|
1222
|
+
};
|
|
1223
|
+
/** Maximum recommendations to include */
|
|
1224
|
+
readonly MAX_RECOMMENDATIONS: 5;
|
|
1225
|
+
};
|
|
1226
|
+
/**
|
|
1227
|
+
* Intelligent test pruning configuration.
|
|
1228
|
+
* Used to skip unnecessary tests based on tool characteristics
|
|
1229
|
+
* and testing history.
|
|
1230
|
+
*/
|
|
1231
|
+
export declare const TEST_PRUNING: {
|
|
1232
|
+
/** Test categories that can be pruned */
|
|
1233
|
+
readonly CATEGORIES: {
|
|
1234
|
+
readonly boundary: "boundary";
|
|
1235
|
+
readonly enum: "enum";
|
|
1236
|
+
readonly optionalCombinations: "optional_combinations";
|
|
1237
|
+
readonly errorHandling: "error_handling";
|
|
1238
|
+
readonly happyPath: "happy_path";
|
|
1239
|
+
readonly security: "security";
|
|
1240
|
+
readonly semantic: "semantic";
|
|
1241
|
+
};
|
|
1242
|
+
/** Categories that should always run */
|
|
1243
|
+
readonly ALWAYS_RUN: readonly string[];
|
|
1244
|
+
/** Tool prioritization weights */
|
|
1245
|
+
readonly PRIORITY_WEIGHTS: {
|
|
1246
|
+
/** Weight for previous error history */
|
|
1247
|
+
readonly errorHistory: 0.3;
|
|
1248
|
+
/** Weight for external dependencies */
|
|
1249
|
+
readonly externalDependency: 0.25;
|
|
1250
|
+
/** Weight for schema complexity */
|
|
1251
|
+
readonly schemaComplexity: 0.2;
|
|
1252
|
+
/** Weight for time since last test */
|
|
1253
|
+
readonly timeSinceLastTest: 0.15;
|
|
1254
|
+
/** Weight for change frequency */
|
|
1255
|
+
readonly changeFrequency: 0.1;
|
|
1256
|
+
};
|
|
1257
|
+
/** Schema complexity thresholds */
|
|
1258
|
+
readonly SCHEMA_COMPLEXITY: {
|
|
1259
|
+
/** Number of parameters for "complex" classification */
|
|
1260
|
+
readonly HIGH_PARAM_COUNT: 10;
|
|
1261
|
+
/** Number of nested levels for "complex" classification */
|
|
1262
|
+
readonly HIGH_NESTING_DEPTH: 3;
|
|
1263
|
+
/** Number of required params for priority boost */
|
|
1264
|
+
readonly MANY_REQUIRED_PARAMS: 5;
|
|
1265
|
+
};
|
|
1266
|
+
/** Historical success thresholds */
|
|
1267
|
+
readonly SUCCESS_HISTORY: {
|
|
1268
|
+
/** Success rate threshold to reduce testing (%) */
|
|
1269
|
+
readonly HIGH_SUCCESS_THRESHOLD: 95;
|
|
1270
|
+
/** Number of consecutive successes to consider stable */
|
|
1271
|
+
readonly STABLE_RUN_COUNT: 5;
|
|
1272
|
+
};
|
|
1273
|
+
/** Time-based thresholds */
|
|
1274
|
+
readonly TIME_THRESHOLDS: {
|
|
1275
|
+
/** Hours since last test to increase priority */
|
|
1276
|
+
readonly STALE_HOURS: 168;
|
|
1277
|
+
/** Hours since last test for maximum priority */
|
|
1278
|
+
readonly VERY_STALE_HOURS: 720;
|
|
1279
|
+
};
|
|
1280
|
+
/** Maximum tests to skip per tool (safety limit) */
|
|
1281
|
+
readonly MAX_SKIPPED_CATEGORIES_PER_TOOL: 3;
|
|
1282
|
+
};
|
|
1283
|
+
//# sourceMappingURL=testing.d.ts.map
|