export declare const TIMEOUTS: { /** Default request timeout (30 seconds) */ readonly DEFAULT: 30000; /** Interview timeout (60 seconds) */ readonly INTERVIEW: 60000; /** Watch mode interval (5 seconds) */ readonly WATCH_INTERVAL: 5000; /** Server startup delay (500ms) */ readonly SERVER_STARTUP: 500; /** Minimum server startup wait (500ms) */ readonly MIN_SERVER_STARTUP_WAIT: 500; /** Server ready poll interval (100ms) */ readonly SERVER_READY_POLL: 100; /** Process shutdown SIGKILL timeout (5 seconds) */ readonly SHUTDOWN_KILL: 5000; /** HTTP request timeout (30 seconds) */ readonly HTTP_REQUEST: 30000; }; /** * Default LLM parameters. */ export declare const LLM_DEFAULTS: { /** Default max tokens for completions */ readonly MAX_TOKENS: 4096; /** Default temperature for completions */ readonly TEMPERATURE: 0.7; /** Max tokens for analysis prompts (must be high enough for reasoning models) */ readonly ANALYSIS_MAX_TOKENS: 1024; /** Default Ollama base URL */ readonly OLLAMA_BASE_URL: "http://localhost:11434"; }; /** * External URLs used by the CLI. */ export declare const MCP: { /** Current MCP protocol version */ readonly PROTOCOL_VERSION: "2025-11-25"; /** JSON-RPC version used by MCP */ readonly JSONRPC_VERSION: "2.0"; }; /** * Transport error detection patterns and classification. * Used by MCPClient to classify transport-level errors for reporting. */ export declare const TRANSPORT_ERRORS: { /** Patterns indicating invalid JSON output from server */ readonly INVALID_JSON_PATTERNS: readonly RegExp[]; /** Patterns indicating buffer/memory issues */ readonly BUFFER_OVERFLOW_PATTERNS: readonly RegExp[]; /** Patterns indicating connection refusal */ readonly CONNECTION_REFUSED_PATTERNS: readonly RegExp[]; /** Patterns indicating remote authentication/authorization failures */ readonly AUTH_FAILURE_PATTERNS: readonly RegExp[]; /** Patterns indicating connection was lost */ readonly CONNECTION_LOST_PATTERNS: readonly RegExp[]; /** Patterns indicating MCP protocol violations */ readonly PROTOCOL_VIOLATION_PATTERNS: readonly RegExp[]; /** Patterns indicating timeout */ readonly TIMEOUT_PATTERNS: readonly RegExp[]; /** Patterns indicating shutdown errors */ readonly SHUTDOWN_PATTERNS: readonly RegExp[]; /** Maximum transport errors to collect before stopping */ readonly MAX_ERRORS_TO_COLLECT: 50; /** Error messages that indicate a likely server bug (vs environment issue) */ readonly SERVER_BUG_INDICATORS: readonly RegExp[]; }; /** * Interview process configuration defaults. */ export declare const INTERVIEW: { /** Default number of questions per tool */ readonly MAX_QUESTIONS_PER_TOOL: 3; /** Default tool call timeout in ms */ readonly TOOL_TIMEOUT: 30000; /** Default CLI timeout in ms (more generous than tool timeout) */ readonly CLI_TIMEOUT: 60000; /** Default persona concurrency for parallel execution */ readonly DEFAULT_PERSONA_CONCURRENCY: 3; /** Maximum allowed persona concurrency (to prevent rate limiting) */ readonly MAX_PERSONA_CONCURRENCY: 10; /** Default tool concurrency for parallel tool testing (check mode) */ readonly DEFAULT_TOOL_CONCURRENCY: 4; /** Maximum allowed tool concurrency (to prevent overwhelming MCP servers) */ readonly MAX_TOOL_CONCURRENCY: 10; /** Default resource read timeout in ms */ readonly RESOURCE_TIMEOUT: 15000; /** Tool names that reveal server constraints (directories, permissions, etc.) */ readonly CONSTRAINT_DISCOVERY_TOOLS: readonly string[]; }; /** * Orchestrator test generation configuration. * Controls limits for structural test case generation. */ export declare const ORCHESTRATOR: { /** Maximum schema-level examples to use for test generation */ readonly MAX_SCHEMA_EXAMPLES: 2; /** Maximum enum value tests to generate per parameter */ readonly MAX_ENUM_TESTS: 3; /** Maximum boundary tests (min/max/zero) to generate */ readonly MAX_BOUNDARY_TESTS: 2; /** Maximum optional parameter combination tests */ readonly MAX_OPTIONAL_TESTS: 2; /** Maximum invalid type tests for error handling */ readonly MAX_INVALID_TYPE_TESTS: 2; /** Maximum recursion depth for schema traversal (prevents infinite loops) */ readonly MAX_SCHEMA_RECURSION_DEPTH: 10; /** Default numeric range minimum when not specified in schema */ readonly DEFAULT_NUMBER_MIN: 0; /** Default numeric range maximum when not specified in schema */ readonly DEFAULT_NUMBER_MAX: 100; }; /** * Workflow discovery and execution configuration defaults. */ export declare const WORKFLOW: { /** Maximum workflows to discover via LLM */ readonly MAX_DISCOVERED_WORKFLOWS: 3; /** Minimum steps required for a valid workflow */ readonly MIN_WORKFLOW_STEPS: 2; /** Maximum steps allowed in a workflow */ readonly MAX_WORKFLOW_STEPS: 5; /** Default timeout for workflow step execution in ms */ readonly STEP_TIMEOUT: 30000; /** Default timeout for state snapshot operations in ms */ readonly STATE_SNAPSHOT_TIMEOUT: 10000; /** Default timeout for probe tool operations in ms */ readonly PROBE_TOOL_TIMEOUT: 5000; /** Default timeout for LLM analysis of workflow steps in ms */ readonly LLM_ANALYSIS_TIMEOUT: 30000; /** Default timeout for LLM summary generation in ms */ readonly LLM_SUMMARY_TIMEOUT: 60000; }; /** * String truncation and preview limits for CLI output and logging. */ export declare const DISPLAY_LIMITS: { /** Maximum length for tool/prompt descriptions in CLI output */ readonly DESCRIPTION_MAX_LENGTH: 70; /** Truncation point for descriptions (with ellipsis) */ readonly DESCRIPTION_TRUNCATE_AT: 67; /** Preview length for tool responses in logs */ readonly TOOL_RESPONSE_PREVIEW: 100; /** Maximum length for example output in documentation */ readonly EXAMPLE_OUTPUT_LENGTH: 500; /** Preview length for content in documentation */ readonly CONTENT_PREVIEW_LENGTH: 200; /** Preview length for content text (resources, etc.) */ readonly CONTENT_TEXT_PREVIEW: 500; /** Truncation length for error constraints */ readonly ERROR_CONSTRAINT_LENGTH: 100; /** Default max width for table cells */ readonly TABLE_CELL_MAX_WIDTH: 50; /** Max width for CLI output formatting */ readonly OUTPUT_MAX_WIDTH: 100; /** Length of hash substrings for display */ readonly HASH_DISPLAY_LENGTH: 16; /** Preview length for transport data logging */ readonly TRANSPORT_DATA_PREVIEW: 100; /** Preview length for transport input data */ readonly TRANSPORT_INPUT_PREVIEW: 500; /** Smaller preview for response data */ readonly RESPONSE_DATA_PREVIEW: 50; /** Example output length in generated docs */ readonly DOCS_EXAMPLE_LENGTH: 300; /** Banner command max length */ readonly BANNER_COMMAND_MAX_LENGTH: 45; /** Maximum issues to list in CONTRACT.md */ readonly ISSUES_DISPLAY_LIMIT: 20; /** Maximum issue tool names to show in CLI summary */ readonly SUMMARY_ISSUE_PREVIEW: 3; }; /** * Issue classification configuration for CONTRACT.md reporting. * Used by contract.ts to categorize issues by source. */ export declare const ISSUE_CLASSIFICATION: { /** Category display names */ readonly CATEGORIES: { readonly serverBug: "Server Bug"; readonly externalDependency: "External Service"; readonly environment: "Environment"; readonly validation: "Validation"; readonly statefulDependency: "Stateful Dependency"; }; /** Category descriptions for the summary table */ readonly DESCRIPTIONS: { readonly serverBug: "Actual bugs in MCP server code"; readonly externalDependency: "Requires API credentials or external service"; readonly environment: "Missing configuration or credentials"; readonly validation: "Expected validation rejections"; readonly statefulDependency: "Failures from shared state between dependent tools"; }; /** Section headers for each category */ readonly HEADERS: { readonly serverBug: "Server Bugs (Require Fixing)"; readonly externalDependency: "External Service Dependencies"; readonly environment: "Environment Configuration"; readonly validation: "Validation Rejections (Expected)"; readonly statefulDependency: "Stateful Dependencies (Expected)"; }; /** Maximum validation issues to show before collapsing */ readonly MAX_VALIDATION_DISPLAY: 10; }; /** * Mathematical ratios, multipliers, and thresholds used in calculations. */ export declare const MATH_FACTORS: { /** Safety margin for token budget calculations (95% of limit) */ readonly TOKEN_SAFETY_MARGIN: 0.95; /** Threshold for word boundary truncation */ readonly WORD_BOUNDARY_THRESHOLD: 0.8; /** Multiplier for special character adjustment in token counting */ readonly SPECIAL_CHAR_MULTIPLIER: 0.5; /** Threshold for consecutive failures in state tracking (50% of probes) */ readonly PROBE_FAILURE_THRESHOLD: 0.5; /** Jitter range for retry delays (±25%) */ readonly JITTER_RANGE: 0.25; /** Weight for embedding similarity */ readonly EMBEDDING_WEIGHT: 0.3; /** Threshold for embedding match */ readonly EMBEDDING_MATCH_THRESHOLD: 0.75; /** Minimum ratio tolerance for comparison (99%) */ readonly RATIO_TOLERANCE_MIN: 0.99; /** Maximum ratio tolerance for comparison (101%) */ readonly RATIO_TOLERANCE_MAX: 1.01; /** Default question bias weight (equal distribution across 4 categories) */ readonly DEFAULT_QUESTION_BIAS: 0.25; /** Multiplier for shared terms score (per term) */ readonly SHARED_TERMS_MULTIPLIER: 50; /** Maximum score cap for calculations */ readonly MAX_SCORE_CAP: 100; /** Minimum threshold for common constraints in docs */ readonly MIN_COMMON_CONSTRAINT_THRESHOLD: 2; }; /** * Time-related constants for sessions, polling, and calculations. */ export declare const TIME_CONSTANTS: { /** Session expiration duration (30 days in ms) */ readonly SESSION_EXPIRATION_MS: number; /** Milliseconds per day (for calculations) */ readonly MS_PER_DAY: number; /** Milliseconds per minute */ readonly MS_PER_MINUTE: 60000; /** Milliseconds per second */ readonly MS_PER_SECOND: 1000; /** Health check interval for LLM providers (1 minute) */ readonly HEALTH_CHECK_INTERVAL: 60000; /** Delay before retrying unhealthy provider (5 minutes) */ readonly UNHEALTHY_RETRY_DELAY: 300000; /** Default reconnect delay for SSE (1 second) */ readonly SSE_RECONNECT_DELAY: 1000; /** Maximum backoff delay for SSE reconnection (30 seconds) */ readonly SSE_MAX_BACKOFF: 30000; /** Default cache TTL (1 hour) */ readonly DEFAULT_CACHE_TTL: 3600000; /** Embedding timeout (5 seconds) */ readonly EMBEDDING_TIMEOUT: 5000; }; /** * Retry and backoff configuration. */ export declare const RETRY: { /** Initial delay for exponential backoff (1 second) */ readonly INITIAL_DELAY: 1000; /** Maximum delay for exponential backoff (10 seconds) */ readonly MAX_DELAY: 10000; /** Default number of retry attempts */ readonly DEFAULT_ATTEMPTS: 3; /** Maximum retry attempts for LLM operations */ readonly MAX_LLM_ATTEMPTS: 3; }; /** * Number formatting precision values. */ export declare const FORMATTING: { /** Decimal places for price display */ readonly PRICE_PRECISION: 4; /** Decimal places for duration display */ readonly DURATION_PRECISION: 1; /** Decimal places for percentage display */ readonly PERCENTAGE_PRECISION: 1; /** Decimal places for confidence level display */ readonly CONFIDENCE_PRECISION: 0; }; /** * Cache configuration limits. */ export declare const CACHE: { /** Maximum number of entries in response cache */ readonly MAX_ENTRIES: 1000; }; /** * Validation boundaries for user input. */ export declare const VALIDATION: { /** Minimum allowed max-tokens value */ readonly MIN_MAX_TOKENS: 1000; /** Minimum confidence score */ readonly MIN_CONFIDENCE_SCORE: 0; /** Maximum confidence score */ readonly MAX_CONFIDENCE_SCORE: 100; /** Maximum YAML alias resolution depth */ readonly MAX_ALIAS_DEPTH: 100; }; /** * Percentile values for metrics calculations. */ export declare const PERCENTILES: { readonly P50: 0.5; readonly P95: 0.95; readonly P99: 0.99; }; /** * Cost thresholds for CI/CD optimization features. */ export declare const COST_THRESHOLDS: { /** Cost threshold ($) for prompting confirmation in interactive mode */ readonly CONFIRMATION_THRESHOLD: 0.1; /** Cost threshold ($) for suggesting --ci flag */ readonly SUGGEST_CI_THRESHOLD: 0.05; /** Cost threshold ($) for suggesting --scenarios-only */ readonly SUGGEST_SCENARIOS_ONLY_THRESHOLD: 0.15; /** Tool count threshold for suggesting --parallel-personas */ readonly PARALLEL_PERSONAS_TOOL_THRESHOLD: 30; /** Tool count threshold for suggesting removing --quality */ readonly QUALITY_TOOL_THRESHOLD: 20; }; /** * Time estimation factors for interview duration prediction. */ export declare const TIME_ESTIMATION: { /** Base seconds per question (cloud APIs) */ readonly SECONDS_PER_QUESTION: 3; /** Overhead seconds per tool for schema processing */ readonly SECONDS_PER_TOOL_OVERHEAD: 1; /** Parallel persona efficiency factor (0-1, 1 = perfect parallelism) */ readonly PARALLEL_EFFICIENCY: 0.6; /** Fixed overhead for discovery phase in seconds */ readonly DISCOVERY_OVERHEAD_SECONDS: 10; /** Fixed overhead for synthesis phase in seconds */ readonly SYNTHESIS_OVERHEAD_SECONDS: 15; /** Time multiplier for local/Ollama models (slower than cloud APIs) */ readonly LOCAL_MODEL_MULTIPLIER: 3.5; /** Seconds per prompt interview */ readonly SECONDS_PER_PROMPT: 4; /** Seconds per resource interview */ readonly SECONDS_PER_RESOURCE: 3; }; /** * Detailed retry configurations for different operation types. * These provide more specific settings than the basic RETRY constants. */ export declare const RETRY_STRATEGIES: { /** LLM API calls - more tolerant due to rate limiting */ readonly LLM: { readonly maxAttempts: 3; readonly initialDelayMs: 2000; readonly maxDelayMs: 60000; readonly backoffMultiplier: 2; readonly jitter: true; }; /** Transport/connection operations - faster retries */ readonly TRANSPORT: { readonly maxAttempts: 2; readonly initialDelayMs: 500; readonly maxDelayMs: 5000; readonly backoffMultiplier: 2; readonly jitter: true; }; /** Tool call operations */ readonly TOOL_CALL: { readonly maxAttempts: 2; readonly initialDelayMs: 1000; readonly maxDelayMs: 10000; readonly backoffMultiplier: 2; readonly jitter: false; }; /** Default strategy for general operations */ readonly DEFAULT: { readonly maxAttempts: 3; readonly initialDelayMs: 1000; readonly maxDelayMs: 30000; readonly backoffMultiplier: 2; readonly jitter: true; }; }; /** * Circuit breaker configuration for fault tolerance. */ export declare const CIRCUIT_BREAKER: { /** Number of failures before circuit opens */ readonly FAILURE_THRESHOLD: 5; /** Time to wait before attempting to close circuit (ms) */ readonly RESET_TIME_MS: 30000; /** Window in which failures are counted (ms) */ readonly FAILURE_WINDOW_MS: 60000; }; /** * Min/max validation boundaries for configuration values. */ export declare const VALIDATION_BOUNDS: { /** Timeout bounds in milliseconds */ readonly TIMEOUT: { readonly MIN_MS: 1000; readonly MAX_MS: 600000; }; /** Questions per tool bounds */ readonly QUESTIONS_PER_TOOL: { readonly MIN: 1; readonly MAX: 10; }; /** Persona concurrency bounds */ readonly PERSONA_CONCURRENCY: { readonly MIN: 1; readonly MAX: 10; }; /** Max workflows bounds */ readonly MAX_WORKFLOWS: { readonly MIN: 1; readonly MAX: 20; }; /** Rate limit bounds */ readonly RATE_LIMIT: { readonly REQUESTS_PER_SECOND: { readonly MIN: 1; readonly MAX: 1000; }; readonly BURST_LIMIT: { readonly MIN: 1; readonly MAX: 5000; }; readonly MAX_RETRIES: { readonly MIN: 0; readonly MAX: 10; }; }; /** Stateful testing bounds */ readonly STATEFUL_CHAIN: { readonly MIN: 1; readonly MAX: 10; }; }; /** * Default file and directory paths used by the CLI. */ export declare const PATHS: { /** User config directory name (under home) */ readonly CONFIG_DIR: ".bellwether"; /** Device ID storage file name */ readonly DEVICE_ID_FILE: "device-id"; /** Mock data directory for testing */ readonly MOCK_DATA_DIR: "mock-data"; /** Possible config file names (in order of preference) */ readonly CONFIG_FILENAMES: readonly ["bellwether.yaml", "bellwether.yml", ".bellwether.yaml", ".bellwether.yml"]; /** Default config file name (first in CONFIG_FILENAMES) */ readonly DEFAULT_CONFIG_FILENAME: "bellwether.yaml"; /** Default baseline output file */ readonly DEFAULT_BASELINE_FILE: "bellwether-baseline.json"; /** Default check report file */ readonly DEFAULT_CHECK_REPORT_FILE: "bellwether-check.json"; /** Default explore report file */ readonly DEFAULT_EXPLORE_REPORT_FILE: "bellwether-explore.json"; /** Default test scenarios file */ readonly DEFAULT_SCENARIOS_FILE: "bellwether-tests.yaml"; /** Default workflows file */ readonly DEFAULT_WORKFLOWS_FILE: "bellwether-workflows.yaml"; /** Default AGENTS.md output file (explore command) */ readonly DEFAULT_AGENTS_FILE: "AGENTS.md"; /** Default CONTRACT.md output file (check command) */ readonly DEFAULT_CONTRACT_FILE: "CONTRACT.md"; /** Default cache directory */ readonly DEFAULT_CACHE_DIR: ".bellwether/cache"; }; /** * JSON Schema references for report outputs. */ export declare const REPORT_SCHEMAS: { /** Local schema path for bellwether-check.json */ readonly CHECK_REPORT_SCHEMA_FILE: "schemas/bellwether-check.schema.json"; /** Public schema URL for consumers */ readonly CHECK_REPORT_SCHEMA_URL: "https://unpkg.com/@dotsetlabs/bellwether/schemas/bellwether-check.schema.json"; /** Local schema path for bellwether-explore.json */ readonly EXPLORE_REPORT_SCHEMA_FILE: "schemas/bellwether-explore.schema.json"; /** Public schema URL for consumers */ readonly EXPLORE_REPORT_SCHEMA_URL: "https://unpkg.com/@dotsetlabs/bellwether/schemas/bellwether-explore.schema.json"; }; /** * Regex patterns for validation and parsing. */ export declare const PATTERNS: { /** Semver version format */ readonly SEMVER: RegExp; /** Partial semver (major.minor) */ readonly SEMVER_PARTIAL: RegExp; /** Major version only */ readonly SEMVER_MAJOR: RegExp; }; /** * CLI_SECURITY: Security-related constants for CLI operations. */ export declare const CLI_SECURITY: { /** Hostnames considered localhost (skip TLS verification) */ readonly LOCALHOST_HOSTS: readonly ["localhost", "127.0.0.1", "::1"]; }; /** * External service URLs. */ /** * Default model configurations per provider. * Uses budget-friendly, non-reasoning models by default for cost efficiency. * Note: gpt-4.1-nano is preferred over gpt-5-nano because GPT-5 models use * reasoning tokens that increase costs unpredictably. */ export declare const DEFAULT_MODELS: { readonly openai: "gpt-4.1-nano"; readonly anthropic: "claude-haiku-4-5"; readonly ollama: "qwen3:8b"; }; /** * Premium model configurations for --quality flag. * Higher quality output but more expensive. */ export declare const PREMIUM_MODELS: { readonly openai: "gpt-4.1"; readonly anthropic: "claude-sonnet-4-5"; readonly ollama: "llama3.2:70b"; }; /** * Conversion factor for percentage values (e.g., 10% = 10 / 100 = 0.1) */ export declare const PERCENTAGE_CONVERSION: { /** Divisor to convert percentage to decimal */ readonly DIVISOR: 100; /** Multiplier to convert decimal to percentage */ readonly MULTIPLIER: 100; }; //# sourceMappingURL=core.d.ts.map