@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,515 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud integration types for Bellwether SaaS platform.
|
|
3
|
+
*
|
|
4
|
+
* This module defines types for:
|
|
5
|
+
* - Cloud API communication
|
|
6
|
+
* - BellwetherBaseline format (cloud-ready)
|
|
7
|
+
* - Project and baseline management
|
|
8
|
+
* - Authentication
|
|
9
|
+
*
|
|
10
|
+
* Baseline versioning uses CLI package version:
|
|
11
|
+
* - Same CLI major version = compatible baselines
|
|
12
|
+
* - Different CLI major version = requires migration
|
|
13
|
+
*/
|
|
14
|
+
import type { WorkflowSignature } from '../baseline/types.js';
|
|
15
|
+
import type { ResponseFingerprint, InferredSchema, ErrorPattern } from '../baseline/response-fingerprint.js';
|
|
16
|
+
/**
|
|
17
|
+
* Assertion type for cloud API.
|
|
18
|
+
* Maps to: expects (positive), requires (critical), warns (negative), notes (informational)
|
|
19
|
+
*/
|
|
20
|
+
export type CloudAssertionType = 'expects' | 'requires' | 'warns' | 'notes';
|
|
21
|
+
/**
|
|
22
|
+
* Severity level for cloud assertions.
|
|
23
|
+
*/
|
|
24
|
+
export type CloudAssertionSeverity = 'info' | 'low' | 'medium' | 'high' | 'critical';
|
|
25
|
+
/**
|
|
26
|
+
* Behavioral assertion in cloud format.
|
|
27
|
+
* This is the format expected by the Bellwether Cloud API.
|
|
28
|
+
*/
|
|
29
|
+
export interface CloudAssertion {
|
|
30
|
+
/** Type of assertion */
|
|
31
|
+
type: CloudAssertionType;
|
|
32
|
+
/** The condition/assertion statement */
|
|
33
|
+
condition: string;
|
|
34
|
+
/** Tool this assertion relates to (optional) */
|
|
35
|
+
tool?: string;
|
|
36
|
+
/** Severity level (optional) */
|
|
37
|
+
severity?: CloudAssertionSeverity;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Baseline mode indicating how the baseline was generated.
|
|
41
|
+
* - 'check': Deterministic structural testing (no LLM required)
|
|
42
|
+
* - 'explore': LLM-powered behavioral exploration
|
|
43
|
+
*/
|
|
44
|
+
export type BaselineMode = 'check' | 'explore';
|
|
45
|
+
/**
|
|
46
|
+
* Metadata about how the baseline was generated.
|
|
47
|
+
*/
|
|
48
|
+
export interface BaselineMetadata {
|
|
49
|
+
/** Baseline mode: 'check' = deterministic, 'explore' = LLM-powered */
|
|
50
|
+
mode: BaselineMode;
|
|
51
|
+
/** ISO timestamp when generated */
|
|
52
|
+
generatedAt: string;
|
|
53
|
+
/** CLI version that generated this baseline */
|
|
54
|
+
cliVersion: string;
|
|
55
|
+
/** Command used to start the server */
|
|
56
|
+
serverCommand: string;
|
|
57
|
+
/** Server name from MCP initialization */
|
|
58
|
+
serverName?: string;
|
|
59
|
+
/** Interview duration in milliseconds */
|
|
60
|
+
durationMs: number;
|
|
61
|
+
/** Personas used during interview (empty for check mode) */
|
|
62
|
+
personas: string[];
|
|
63
|
+
/** LLM model used ('none' for check mode) */
|
|
64
|
+
model: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Server fingerprint in cloud baseline format.
|
|
68
|
+
*/
|
|
69
|
+
export interface CloudServerFingerprint {
|
|
70
|
+
/** Server name */
|
|
71
|
+
name: string;
|
|
72
|
+
/** Server version */
|
|
73
|
+
version: string;
|
|
74
|
+
/** MCP protocol version */
|
|
75
|
+
protocolVersion: string;
|
|
76
|
+
/** Available capabilities */
|
|
77
|
+
capabilities: string[];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Tool capability from discovery.
|
|
81
|
+
*/
|
|
82
|
+
export interface ToolCapability {
|
|
83
|
+
/** Tool name */
|
|
84
|
+
name: string;
|
|
85
|
+
/** Tool description */
|
|
86
|
+
description: string;
|
|
87
|
+
/** Input schema */
|
|
88
|
+
inputSchema: Record<string, unknown>;
|
|
89
|
+
/** Hash of the schema for change detection */
|
|
90
|
+
schemaHash: string;
|
|
91
|
+
/** Fingerprint of the tool's response structure */
|
|
92
|
+
responseFingerprint?: ResponseFingerprint;
|
|
93
|
+
/** Inferred JSON schema of the tool's output */
|
|
94
|
+
inferredOutputSchema?: InferredSchema;
|
|
95
|
+
/** Normalized error patterns observed during testing */
|
|
96
|
+
errorPatterns?: ErrorPattern[];
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Resource capability from discovery.
|
|
100
|
+
*/
|
|
101
|
+
export interface ResourceCapability {
|
|
102
|
+
/** Resource URI template */
|
|
103
|
+
uri: string;
|
|
104
|
+
/** Resource name */
|
|
105
|
+
name: string;
|
|
106
|
+
/** Resource description */
|
|
107
|
+
description?: string;
|
|
108
|
+
/** MIME type */
|
|
109
|
+
mimeType?: string;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Prompt capability from discovery.
|
|
113
|
+
*/
|
|
114
|
+
export interface PromptCapability {
|
|
115
|
+
/** Prompt name */
|
|
116
|
+
name: string;
|
|
117
|
+
/** Prompt description */
|
|
118
|
+
description?: string;
|
|
119
|
+
/** Arguments the prompt accepts */
|
|
120
|
+
arguments?: Array<{
|
|
121
|
+
name: string;
|
|
122
|
+
description?: string;
|
|
123
|
+
required?: boolean;
|
|
124
|
+
}>;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Interview results for a single persona.
|
|
128
|
+
*/
|
|
129
|
+
export interface PersonaInterview {
|
|
130
|
+
/** Persona ID */
|
|
131
|
+
persona: string;
|
|
132
|
+
/** Number of tools interviewed */
|
|
133
|
+
toolsInterviewed: number;
|
|
134
|
+
/** Number of questions asked */
|
|
135
|
+
questionsAsked: number;
|
|
136
|
+
/** Findings from this persona */
|
|
137
|
+
findings: PersonaFinding[];
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* A finding from a persona interview.
|
|
141
|
+
*/
|
|
142
|
+
export interface PersonaFinding {
|
|
143
|
+
/** Tool this finding relates to */
|
|
144
|
+
tool: string;
|
|
145
|
+
/** Finding category */
|
|
146
|
+
category: 'behavior' | 'security' | 'reliability' | 'edge_case';
|
|
147
|
+
/** Severity level */
|
|
148
|
+
severity: 'info' | 'low' | 'medium' | 'high' | 'critical';
|
|
149
|
+
/** Description of the finding */
|
|
150
|
+
description: string;
|
|
151
|
+
/** Evidence supporting the finding */
|
|
152
|
+
evidence?: string;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Tool behavioral profile in cloud format.
|
|
156
|
+
*/
|
|
157
|
+
export interface CloudToolProfile {
|
|
158
|
+
/** Tool name */
|
|
159
|
+
name: string;
|
|
160
|
+
/** Tool description */
|
|
161
|
+
description: string;
|
|
162
|
+
/** Hash of input schema */
|
|
163
|
+
schemaHash: string;
|
|
164
|
+
/** Behavioral assertions in cloud format */
|
|
165
|
+
assertions: CloudAssertion[];
|
|
166
|
+
/** Security notes */
|
|
167
|
+
securityNotes: string[];
|
|
168
|
+
/** Known limitations */
|
|
169
|
+
limitations: string[];
|
|
170
|
+
/** Behavioral notes */
|
|
171
|
+
behavioralNotes: string[];
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Cloud-ready baseline format.
|
|
175
|
+
*
|
|
176
|
+
* This is the format used for uploading to Bellwether Cloud.
|
|
177
|
+
* It's a superset of the local BehavioralBaseline with additional metadata.
|
|
178
|
+
*
|
|
179
|
+
* Versioning: Uses CLI package version for compatibility checking.
|
|
180
|
+
* Baselines with the same CLI major version are compatible.
|
|
181
|
+
*/
|
|
182
|
+
export interface BellwetherBaseline {
|
|
183
|
+
/** CLI version that generated this baseline (e.g., '0.6.0') */
|
|
184
|
+
version: string;
|
|
185
|
+
/** Generation metadata */
|
|
186
|
+
metadata: BaselineMetadata;
|
|
187
|
+
/** Server fingerprint */
|
|
188
|
+
server: CloudServerFingerprint;
|
|
189
|
+
/** Discovered capabilities */
|
|
190
|
+
capabilities: {
|
|
191
|
+
tools: ToolCapability[];
|
|
192
|
+
resources?: ResourceCapability[];
|
|
193
|
+
prompts?: PromptCapability[];
|
|
194
|
+
};
|
|
195
|
+
/** Interview results by persona */
|
|
196
|
+
interviews: PersonaInterview[];
|
|
197
|
+
/** Tool behavioral profiles */
|
|
198
|
+
toolProfiles: CloudToolProfile[];
|
|
199
|
+
/** Workflow results (if workflows were tested) */
|
|
200
|
+
workflows?: WorkflowSignature[];
|
|
201
|
+
/** Overall behavioral assertions in cloud format */
|
|
202
|
+
assertions: CloudAssertion[];
|
|
203
|
+
/** Summary of findings */
|
|
204
|
+
summary: string;
|
|
205
|
+
/** SHA-256 hash of content (first 16 chars) for integrity */
|
|
206
|
+
hash: string;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Configuration for the cloud client.
|
|
210
|
+
*/
|
|
211
|
+
export interface CloudConfig {
|
|
212
|
+
/** API base URL */
|
|
213
|
+
baseUrl: string;
|
|
214
|
+
/** Session token */
|
|
215
|
+
sessionToken?: string;
|
|
216
|
+
/** Request timeout in ms */
|
|
217
|
+
timeout?: number;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* A project in Bellwether Cloud.
|
|
221
|
+
*/
|
|
222
|
+
export interface Project {
|
|
223
|
+
/** Unique project ID */
|
|
224
|
+
id: string;
|
|
225
|
+
/** Project name */
|
|
226
|
+
name: string;
|
|
227
|
+
/** Server command used to start the MCP server */
|
|
228
|
+
serverCommand: string;
|
|
229
|
+
/** ISO timestamp when created */
|
|
230
|
+
createdAt: string;
|
|
231
|
+
/** Whether baselines are publicly viewable */
|
|
232
|
+
isPublic: boolean;
|
|
233
|
+
/** Number of baselines uploaded */
|
|
234
|
+
baselineCount: number;
|
|
235
|
+
/** ISO timestamp of last upload */
|
|
236
|
+
lastUploadAt?: string;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* A baseline version stored in Bellwether Cloud.
|
|
240
|
+
*/
|
|
241
|
+
export interface BaselineVersion {
|
|
242
|
+
/** Unique baseline ID */
|
|
243
|
+
id: string;
|
|
244
|
+
/** Project this baseline belongs to */
|
|
245
|
+
projectId: string;
|
|
246
|
+
/** Version number (auto-incrementing per project) */
|
|
247
|
+
version: number;
|
|
248
|
+
/** Baseline mode: 'check' or 'explore' */
|
|
249
|
+
mode: BaselineMode;
|
|
250
|
+
/** ISO timestamp when uploaded */
|
|
251
|
+
uploadedAt: string;
|
|
252
|
+
/** CLI version that generated this baseline */
|
|
253
|
+
cliVersion: string;
|
|
254
|
+
/** Hash of the baseline content */
|
|
255
|
+
hash: string;
|
|
256
|
+
/** Additional metadata */
|
|
257
|
+
metadata: Record<string, unknown>;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Result of uploading a baseline.
|
|
261
|
+
*/
|
|
262
|
+
export interface UploadResult {
|
|
263
|
+
/** ID of the uploaded baseline */
|
|
264
|
+
baselineId: string;
|
|
265
|
+
/** Version number assigned */
|
|
266
|
+
version: number;
|
|
267
|
+
/** Project ID */
|
|
268
|
+
projectId: string;
|
|
269
|
+
/** URL to view the diff (if not first upload) */
|
|
270
|
+
diffUrl?: string;
|
|
271
|
+
/** URL to view the baseline */
|
|
272
|
+
viewUrl: string;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Summary of differences between two baselines.
|
|
276
|
+
*/
|
|
277
|
+
export interface DiffSummary {
|
|
278
|
+
/** Overall severity of changes */
|
|
279
|
+
severity: 'none' | 'info' | 'warning' | 'breaking';
|
|
280
|
+
/** Number of tools added */
|
|
281
|
+
toolsAdded: number;
|
|
282
|
+
/** Number of tools removed */
|
|
283
|
+
toolsRemoved: number;
|
|
284
|
+
/** Number of tools with modifications */
|
|
285
|
+
toolsModified: number;
|
|
286
|
+
/** Number of behavior changes detected */
|
|
287
|
+
behaviorChanges: number;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* OAuth provider type.
|
|
291
|
+
*/
|
|
292
|
+
export type OAuthProvider = 'github' | 'google' | 'gitlab' | 'microsoft';
|
|
293
|
+
/**
|
|
294
|
+
* User information from the cloud.
|
|
295
|
+
*/
|
|
296
|
+
export interface CloudUser {
|
|
297
|
+
/** User ID */
|
|
298
|
+
id: string;
|
|
299
|
+
/** User email */
|
|
300
|
+
email: string | null;
|
|
301
|
+
/** Primary OAuth provider used for authentication */
|
|
302
|
+
primaryProvider?: OAuthProvider;
|
|
303
|
+
/** Display name (provider-agnostic) */
|
|
304
|
+
displayName?: string | null;
|
|
305
|
+
/** Provider login/username (provider-agnostic) */
|
|
306
|
+
providerLogin?: string | null;
|
|
307
|
+
/** Provider avatar URL (provider-agnostic) */
|
|
308
|
+
providerAvatarUrl?: string | null;
|
|
309
|
+
/** GitHub username (legacy, for backward compatibility) */
|
|
310
|
+
githubLogin: string;
|
|
311
|
+
/** GitHub avatar URL (legacy, for backward compatibility) */
|
|
312
|
+
githubAvatarUrl: string | null;
|
|
313
|
+
/** GitHub display name (legacy, for backward compatibility) */
|
|
314
|
+
githubName: string | null;
|
|
315
|
+
/** Subscription plan */
|
|
316
|
+
plan: 'free' | 'pro';
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Link configuration stored in .bellwether/link.json
|
|
320
|
+
*/
|
|
321
|
+
export interface ProjectLink {
|
|
322
|
+
/** Linked project ID */
|
|
323
|
+
projectId: string;
|
|
324
|
+
/** Project name (for display) */
|
|
325
|
+
projectName: string;
|
|
326
|
+
/** ISO timestamp when linked */
|
|
327
|
+
linkedAt: string;
|
|
328
|
+
/** Team ID this project belongs to */
|
|
329
|
+
teamId?: string;
|
|
330
|
+
/** Team name (for display) */
|
|
331
|
+
teamName?: string;
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Team information stored in session.
|
|
335
|
+
*/
|
|
336
|
+
export interface SessionTeam {
|
|
337
|
+
/** Team ID */
|
|
338
|
+
id: string;
|
|
339
|
+
/** Team name */
|
|
340
|
+
name: string;
|
|
341
|
+
/** Team plan */
|
|
342
|
+
plan: 'free' | 'solo' | 'team';
|
|
343
|
+
/** User's role in this team */
|
|
344
|
+
role: 'owner' | 'admin' | 'member';
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Session stored in ~/.bellwether/session.json
|
|
348
|
+
*/
|
|
349
|
+
export interface StoredSession {
|
|
350
|
+
/** Session token */
|
|
351
|
+
sessionToken: string;
|
|
352
|
+
/** User information */
|
|
353
|
+
user: CloudUser;
|
|
354
|
+
/** ISO timestamp when session expires */
|
|
355
|
+
expiresAt: string;
|
|
356
|
+
/** Currently active team ID for API requests */
|
|
357
|
+
activeTeamId?: string;
|
|
358
|
+
/** All teams the user belongs to */
|
|
359
|
+
teams?: SessionTeam[];
|
|
360
|
+
/** ISO timestamp when the session token was last rotated */
|
|
361
|
+
tokenRotatedAt?: string;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Device authorization response from device flow.
|
|
365
|
+
*/
|
|
366
|
+
export interface DeviceAuthorizationResponse {
|
|
367
|
+
/** Device code for polling */
|
|
368
|
+
device_code: string;
|
|
369
|
+
/** User code to display */
|
|
370
|
+
user_code: string;
|
|
371
|
+
/** URL for user to visit */
|
|
372
|
+
verification_uri: string;
|
|
373
|
+
/** Time until expiration in seconds */
|
|
374
|
+
expires_in: number;
|
|
375
|
+
/** Polling interval in seconds */
|
|
376
|
+
interval: number;
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Device poll response.
|
|
380
|
+
*/
|
|
381
|
+
export interface DevicePollResponse {
|
|
382
|
+
/** Error code if not yet authorized */
|
|
383
|
+
error?: 'authorization_pending' | 'expired_token' | 'access_denied';
|
|
384
|
+
/** Error description */
|
|
385
|
+
error_description?: string;
|
|
386
|
+
/** Session token if authorized */
|
|
387
|
+
session_token?: string;
|
|
388
|
+
/** User info if authorized */
|
|
389
|
+
user?: CloudUser;
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Response from /auth/me endpoint.
|
|
393
|
+
*/
|
|
394
|
+
export interface AuthMeResponse {
|
|
395
|
+
/** User information */
|
|
396
|
+
user: CloudUser;
|
|
397
|
+
/** Teams the user belongs to */
|
|
398
|
+
teams: SessionTeam[];
|
|
399
|
+
/** Whether user has beta access (optional) */
|
|
400
|
+
hasBetaAccess?: boolean;
|
|
401
|
+
/** Whether user is an admin (optional) */
|
|
402
|
+
isAdmin?: boolean;
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Badge status for a project.
|
|
406
|
+
* Matches platform badge service status values.
|
|
407
|
+
*/
|
|
408
|
+
export type BadgeStatus = 'verified' | 'failing' | 'drift' | 'unknown';
|
|
409
|
+
/**
|
|
410
|
+
* Verification status for a project.
|
|
411
|
+
* Matches platform verification service status values.
|
|
412
|
+
*/
|
|
413
|
+
export type VerificationStatus = 'verified' | 'pending' | 'failed' | 'expired' | 'not_verified';
|
|
414
|
+
/**
|
|
415
|
+
* Verification tier based on test coverage.
|
|
416
|
+
*/
|
|
417
|
+
export type VerificationTier = 'bronze' | 'silver' | 'gold' | 'platinum';
|
|
418
|
+
/**
|
|
419
|
+
* Verification result from a verification run.
|
|
420
|
+
* This matches the format expected by the platform API.
|
|
421
|
+
*/
|
|
422
|
+
export interface CloudVerificationResult {
|
|
423
|
+
/** Server identifier (namespace/name) */
|
|
424
|
+
serverId: string;
|
|
425
|
+
/** Server version */
|
|
426
|
+
version: string;
|
|
427
|
+
/** Verification status */
|
|
428
|
+
status: VerificationStatus;
|
|
429
|
+
/** Verification tier achieved */
|
|
430
|
+
tier?: VerificationTier | null;
|
|
431
|
+
/** ISO timestamp when verified */
|
|
432
|
+
verifiedAt: string;
|
|
433
|
+
/** ISO timestamp when verification expires */
|
|
434
|
+
expiresAt: string;
|
|
435
|
+
/** Number of tools verified */
|
|
436
|
+
toolsVerified: number;
|
|
437
|
+
/** Number of tests passed */
|
|
438
|
+
testsPassed: number;
|
|
439
|
+
/** Total number of tests run */
|
|
440
|
+
testsTotal: number;
|
|
441
|
+
/** Pass rate (0-100) */
|
|
442
|
+
passRate: number;
|
|
443
|
+
/** Checksum of the verification report */
|
|
444
|
+
reportHash: string;
|
|
445
|
+
/** Bellwether version used */
|
|
446
|
+
bellwetherVersion: string;
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Result of submitting a verification to the platform.
|
|
450
|
+
*/
|
|
451
|
+
export interface VerificationSubmissionResult {
|
|
452
|
+
/** Verification ID assigned by the platform */
|
|
453
|
+
verificationId: string;
|
|
454
|
+
/** Project ID the verification was submitted to */
|
|
455
|
+
projectId: string;
|
|
456
|
+
/** URL to view the verification in the dashboard */
|
|
457
|
+
viewUrl: string;
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Badge information for a project.
|
|
461
|
+
*/
|
|
462
|
+
export interface BadgeInfo {
|
|
463
|
+
/** Project ID */
|
|
464
|
+
projectId: string;
|
|
465
|
+
/** Project name */
|
|
466
|
+
projectName: string;
|
|
467
|
+
/** Current badge status */
|
|
468
|
+
status: BadgeStatus;
|
|
469
|
+
/** Human-readable status text */
|
|
470
|
+
statusText: string;
|
|
471
|
+
/** Badge URL (SVG) */
|
|
472
|
+
badgeUrl: string;
|
|
473
|
+
/** Badge markdown for README */
|
|
474
|
+
markdown: string;
|
|
475
|
+
/** Last verification date */
|
|
476
|
+
lastVerified?: string;
|
|
477
|
+
/** Latest version number */
|
|
478
|
+
latestVersion?: number;
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Interface for Bellwether Cloud client implementations.
|
|
482
|
+
*
|
|
483
|
+
* This interface is implemented by:
|
|
484
|
+
* - MockCloudClient (local development/testing)
|
|
485
|
+
* - HttpCloudClient (production)
|
|
486
|
+
*/
|
|
487
|
+
export interface BellwetherCloudClient {
|
|
488
|
+
/** Check if client is authenticated */
|
|
489
|
+
isAuthenticated(): boolean;
|
|
490
|
+
/** Get current user info */
|
|
491
|
+
whoami(): Promise<CloudUser | null>;
|
|
492
|
+
/** List user's projects */
|
|
493
|
+
listProjects(): Promise<Project[]>;
|
|
494
|
+
/** Create a new project */
|
|
495
|
+
createProject(name: string, serverCommand: string): Promise<Project>;
|
|
496
|
+
/** Get project by ID */
|
|
497
|
+
getProject(projectId: string): Promise<Project | null>;
|
|
498
|
+
/** Delete a project */
|
|
499
|
+
deleteProject(projectId: string): Promise<void>;
|
|
500
|
+
/** Upload a baseline to a project */
|
|
501
|
+
uploadBaseline(projectId: string, baseline: BellwetherBaseline): Promise<UploadResult>;
|
|
502
|
+
/** Get baseline history for a project */
|
|
503
|
+
getHistory(projectId: string, limit?: number): Promise<BaselineVersion[]>;
|
|
504
|
+
/** Get a specific baseline by ID */
|
|
505
|
+
getBaseline(baselineId: string): Promise<BellwetherBaseline | null>;
|
|
506
|
+
/** Get diff between two versions */
|
|
507
|
+
getDiff(projectId: string, fromVersion: number, toVersion: number): Promise<DiffSummary>;
|
|
508
|
+
/** Get latest diff (current vs previous) */
|
|
509
|
+
getLatestDiff(projectId: string): Promise<DiffSummary | null>;
|
|
510
|
+
/** Get badge info for a project */
|
|
511
|
+
getBadgeInfo(projectId: string): Promise<BadgeInfo | null>;
|
|
512
|
+
/** Submit a verification result to a project */
|
|
513
|
+
submitVerification(projectId: string, result: CloudVerificationResult, report?: Record<string, unknown>): Promise<VerificationSubmissionResult>;
|
|
514
|
+
}
|
|
515
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud integration types for Bellwether SaaS platform.
|
|
3
|
+
*
|
|
4
|
+
* This module defines types for:
|
|
5
|
+
* - Cloud API communication
|
|
6
|
+
* - BellwetherBaseline format (cloud-ready)
|
|
7
|
+
* - Project and baseline management
|
|
8
|
+
* - Authentication
|
|
9
|
+
*
|
|
10
|
+
* Baseline versioning uses CLI package version:
|
|
11
|
+
* - Same CLI major version = compatible baselines
|
|
12
|
+
* - Different CLI major version = requires migration
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
export declare const CONFIG_DEFAULTS: {
|
|
2
|
+
readonly server: {
|
|
3
|
+
readonly command: "";
|
|
4
|
+
readonly args: string[];
|
|
5
|
+
readonly timeout: 30000;
|
|
6
|
+
};
|
|
7
|
+
readonly llm: {
|
|
8
|
+
readonly provider: "ollama";
|
|
9
|
+
readonly model: "";
|
|
10
|
+
readonly ollama: {
|
|
11
|
+
readonly baseUrl: "http://localhost:11434";
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
readonly explore: {
|
|
15
|
+
readonly personas: readonly ["technical_writer"];
|
|
16
|
+
readonly maxQuestionsPerTool: 3;
|
|
17
|
+
readonly parallelPersonas: false;
|
|
18
|
+
readonly personaConcurrency: 3;
|
|
19
|
+
readonly skipErrorTests: false;
|
|
20
|
+
};
|
|
21
|
+
readonly scenarios: {
|
|
22
|
+
readonly only: false;
|
|
23
|
+
};
|
|
24
|
+
readonly workflows: {
|
|
25
|
+
readonly discover: false;
|
|
26
|
+
readonly trackState: false;
|
|
27
|
+
readonly autoGenerate: false;
|
|
28
|
+
readonly stepTimeout: 5000;
|
|
29
|
+
readonly requireSuccessfulDependencies: true;
|
|
30
|
+
readonly timeouts: {
|
|
31
|
+
readonly toolCall: 5000;
|
|
32
|
+
readonly stateSnapshot: 10000;
|
|
33
|
+
readonly probeTool: 5000;
|
|
34
|
+
readonly llmAnalysis: 30000;
|
|
35
|
+
readonly llmSummary: 60000;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
readonly output: {
|
|
39
|
+
readonly dir: ".bellwether";
|
|
40
|
+
readonly docsDir: ".";
|
|
41
|
+
readonly format: "both";
|
|
42
|
+
readonly examples: {
|
|
43
|
+
readonly full: true;
|
|
44
|
+
readonly maxLength: 5000;
|
|
45
|
+
readonly maxPerTool: 5;
|
|
46
|
+
};
|
|
47
|
+
readonly files: {
|
|
48
|
+
readonly checkReport: "bellwether-check.json";
|
|
49
|
+
readonly exploreReport: "bellwether-explore.json";
|
|
50
|
+
readonly contractDoc: "CONTRACT.md";
|
|
51
|
+
readonly agentsDoc: "AGENTS.md";
|
|
52
|
+
readonly verificationReport: "bellwether-verification.json";
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
readonly check: {
|
|
56
|
+
readonly incremental: false;
|
|
57
|
+
readonly incrementalCacheHours: 168;
|
|
58
|
+
readonly parallel: true;
|
|
59
|
+
readonly parallelWorkers: 4;
|
|
60
|
+
readonly performanceThreshold: 10;
|
|
61
|
+
readonly diffFormat: "text";
|
|
62
|
+
readonly warmupRuns: 0;
|
|
63
|
+
readonly smartTestValues: true;
|
|
64
|
+
readonly statefulTesting: {
|
|
65
|
+
readonly enabled: true;
|
|
66
|
+
readonly maxChainLength: 5;
|
|
67
|
+
readonly shareOutputsBetweenTools: true;
|
|
68
|
+
};
|
|
69
|
+
readonly externalServices: {
|
|
70
|
+
readonly mode: "skip";
|
|
71
|
+
readonly services: {};
|
|
72
|
+
};
|
|
73
|
+
readonly assertions: {
|
|
74
|
+
readonly enabled: true;
|
|
75
|
+
readonly strict: false;
|
|
76
|
+
readonly infer: true;
|
|
77
|
+
};
|
|
78
|
+
readonly rateLimit: {
|
|
79
|
+
readonly enabled: false;
|
|
80
|
+
readonly requestsPerSecond: 10;
|
|
81
|
+
readonly burstLimit: 20;
|
|
82
|
+
readonly backoffStrategy: "exponential";
|
|
83
|
+
readonly maxRetries: 3;
|
|
84
|
+
};
|
|
85
|
+
readonly security: {
|
|
86
|
+
readonly enabled: false;
|
|
87
|
+
readonly categories: readonly ["sql_injection", "xss", "path_traversal", "command_injection", "ssrf", "error_disclosure"];
|
|
88
|
+
};
|
|
89
|
+
readonly sampling: {
|
|
90
|
+
readonly minSamples: 10;
|
|
91
|
+
readonly targetConfidence: "low";
|
|
92
|
+
readonly failOnLowConfidence: false;
|
|
93
|
+
};
|
|
94
|
+
readonly metrics: {
|
|
95
|
+
readonly countValidationAsSuccess: true;
|
|
96
|
+
readonly separateValidationMetrics: true;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
readonly baseline: {
|
|
100
|
+
readonly path: "bellwether-baseline.json";
|
|
101
|
+
readonly savePath: ".bellwether/bellwether-baseline.json";
|
|
102
|
+
readonly failOnDrift: false;
|
|
103
|
+
readonly outputFormat: "text";
|
|
104
|
+
readonly severity: {
|
|
105
|
+
readonly minimumSeverity: "none";
|
|
106
|
+
readonly failOnSeverity: "breaking";
|
|
107
|
+
readonly suppressWarnings: false;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
readonly watch: {
|
|
111
|
+
readonly path: ".";
|
|
112
|
+
readonly interval: 5000;
|
|
113
|
+
readonly extensions: readonly [".ts", ".js", ".json", ".py", ".go"];
|
|
114
|
+
};
|
|
115
|
+
readonly cache: {
|
|
116
|
+
readonly enabled: true;
|
|
117
|
+
readonly dir: ".bellwether/cache";
|
|
118
|
+
};
|
|
119
|
+
readonly logging: {
|
|
120
|
+
readonly level: "info";
|
|
121
|
+
readonly verbose: false;
|
|
122
|
+
};
|
|
123
|
+
readonly discovery: {
|
|
124
|
+
readonly json: false;
|
|
125
|
+
readonly timeout: 30000;
|
|
126
|
+
readonly transport: "stdio";
|
|
127
|
+
};
|
|
128
|
+
readonly registry: {
|
|
129
|
+
readonly limit: 10;
|
|
130
|
+
readonly json: false;
|
|
131
|
+
};
|
|
132
|
+
readonly history: {
|
|
133
|
+
readonly limit: 10;
|
|
134
|
+
readonly json: false;
|
|
135
|
+
};
|
|
136
|
+
readonly link: {
|
|
137
|
+
readonly defaultServerCommand: "node dist/server.js";
|
|
138
|
+
};
|
|
139
|
+
readonly golden: {
|
|
140
|
+
readonly defaultArgs: "{}";
|
|
141
|
+
readonly mode: "structural";
|
|
142
|
+
readonly compareFormat: "text";
|
|
143
|
+
readonly listFormat: "text";
|
|
144
|
+
readonly normalizeTimestamps: true;
|
|
145
|
+
readonly normalizeUuids: true;
|
|
146
|
+
};
|
|
147
|
+
readonly verify: {
|
|
148
|
+
readonly tier: "silver";
|
|
149
|
+
readonly security: false;
|
|
150
|
+
readonly json: false;
|
|
151
|
+
readonly badgeOnly: false;
|
|
152
|
+
};
|
|
153
|
+
readonly contract: {
|
|
154
|
+
readonly mode: "strict";
|
|
155
|
+
readonly format: "text";
|
|
156
|
+
readonly timeout: 30000;
|
|
157
|
+
readonly failOnViolation: false;
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
//# sourceMappingURL=defaults.d.ts.map
|