@probelabs/visor
Version:
AI-powered code review tool for GitHub Pull Requests - CLI and GitHub Action
1,032 lines • 47.2 kB
TypeScript
export declare const configSchema: {
readonly $schema: "http://json-schema.org/draft-07/schema#";
readonly $ref: "#/definitions/VisorConfig";
readonly definitions: {
readonly VisorConfig: {
readonly type: "object";
readonly properties: {
readonly version: {
readonly type: "string";
readonly description: "Configuration version";
};
readonly extends: {
readonly anyOf: readonly [{
readonly type: "string";
}, {
readonly type: "array";
readonly items: {
readonly type: "string";
};
}];
readonly description: "Extends from other configurations - can be file path, HTTP(S) URL, or \"default\"";
};
readonly steps: {
readonly $ref: "#/definitions/Record%3Cstring%2CCheckConfig%3E";
readonly description: "Step configurations (recommended)";
};
readonly checks: {
readonly $ref: "#/definitions/Record%3Cstring%2CCheckConfig%3E";
readonly description: "Check configurations (legacy, use 'steps' instead) - always populated after normalization";
};
readonly output: {
readonly $ref: "#/definitions/OutputConfig";
readonly description: "Output configuration";
};
readonly http_server: {
readonly $ref: "#/definitions/HttpServerConfig";
readonly description: "HTTP server configuration for receiving webhooks";
};
readonly memory: {
readonly $ref: "#/definitions/MemoryConfig";
readonly description: "Memory storage configuration";
};
readonly env: {
readonly $ref: "#/definitions/EnvConfig";
readonly description: "Global environment variables";
};
readonly ai_model: {
readonly type: "string";
readonly description: "Global AI model setting";
};
readonly ai_provider: {
readonly type: "string";
readonly description: "Global AI provider setting";
};
readonly ai_mcp_servers: {
readonly $ref: "#/definitions/Record%3Cstring%2CMcpServerConfig%3E";
readonly description: "Global MCP servers configuration for AI checks";
};
readonly max_parallelism: {
readonly type: "number";
readonly description: "Maximum number of checks to run in parallel (default: 3)";
};
readonly fail_fast: {
readonly type: "boolean";
readonly description: "Stop execution when any check fails (default: false)";
};
readonly fail_if: {
readonly type: "string";
readonly description: "Simple global fail condition - fails if expression evaluates to true";
};
readonly failure_conditions: {
readonly $ref: "#/definitions/FailureConditions";
readonly description: "Global failure conditions - optional (deprecated, use fail_if)";
};
readonly tag_filter: {
readonly $ref: "#/definitions/TagFilter";
readonly description: "Tag filter for selective check execution";
};
readonly routing: {
readonly $ref: "#/definitions/RoutingDefaults";
readonly description: "Optional routing defaults for retry/goto/run policies";
};
};
readonly required: readonly ["version", "output"];
readonly additionalProperties: false;
readonly description: "Main Visor configuration";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly 'Record<string,CheckConfig>': {
readonly type: "object";
readonly additionalProperties: {
readonly $ref: "#/definitions/CheckConfig";
};
};
readonly CheckConfig: {
readonly type: "object";
readonly properties: {
readonly type: {
readonly $ref: "#/definitions/ConfigCheckType";
readonly description: "Type of check to perform (defaults to 'ai' if not specified)";
};
readonly prompt: {
readonly type: "string";
readonly description: "AI prompt for the check - can be inline string or file path (auto-detected) - required for AI checks";
};
readonly appendPrompt: {
readonly type: "string";
readonly description: "Additional prompt to append when extending configurations - merged with parent prompt";
};
readonly exec: {
readonly type: "string";
readonly description: "Command execution with Liquid template support - required for command checks";
};
readonly stdin: {
readonly type: "string";
readonly description: "Stdin input for tools with Liquid template support - optional for tool checks";
};
readonly url: {
readonly type: "string";
readonly description: "HTTP URL - required for http output checks";
};
readonly body: {
readonly type: "string";
readonly description: "HTTP body template (Liquid) - required for http output checks";
};
readonly method: {
readonly type: "string";
readonly description: "HTTP method (defaults to POST)";
};
readonly headers: {
readonly $ref: "#/definitions/Record%3Cstring%2Cstring%3E";
readonly description: "HTTP headers";
};
readonly endpoint: {
readonly type: "string";
readonly description: "HTTP endpoint path - required for http_input checks";
};
readonly transform: {
readonly type: "string";
readonly description: "Transform template for http_input data (Liquid) - optional";
};
readonly transform_js: {
readonly type: "string";
readonly description: "Transform using JavaScript expressions (evaluated in secure sandbox) - optional";
};
readonly schedule: {
readonly type: "string";
readonly description: "Cron schedule expression (e.g., \"0 2 * * *\") - optional for any check type";
};
readonly focus: {
readonly type: "string";
readonly description: "Focus area for the check (security/performance/style/architecture/all) - optional";
};
readonly command: {
readonly type: "string";
readonly description: "Command that triggers this check (e.g., \"review\", \"security-scan\") - optional";
};
readonly on: {
readonly type: "array";
readonly items: {
readonly $ref: "#/definitions/EventTrigger";
};
readonly description: "Events that trigger this check (defaults to ['manual'] if not specified)";
};
readonly triggers: {
readonly type: "array";
readonly items: {
readonly type: "string";
};
readonly description: "File patterns that trigger this check (optional)";
};
readonly ai: {
readonly $ref: "#/definitions/AIProviderConfig";
readonly description: "AI provider configuration (optional)";
};
readonly ai_model: {
readonly type: "string";
readonly description: "AI model to use for this check - overrides global setting";
};
readonly ai_provider: {
readonly type: "string";
readonly description: "AI provider to use for this check - overrides global setting";
};
readonly ai_mcp_servers: {
readonly $ref: "#/definitions/Record%3Cstring%2CMcpServerConfig%3E";
readonly description: "MCP servers for this AI check - overrides global setting";
};
readonly claude_code: {
readonly $ref: "#/definitions/ClaudeCodeConfig";
readonly description: "Claude Code configuration (for claude-code type checks)";
};
readonly env: {
readonly $ref: "#/definitions/EnvConfig";
readonly description: "Environment variables for this check";
};
readonly timeout: {
readonly type: "number";
readonly description: "Timeout in seconds for command execution (default: 60)";
};
readonly depends_on: {
readonly type: "array";
readonly items: {
readonly type: "string";
};
readonly description: "Check IDs that this check depends on (optional)";
};
readonly group: {
readonly type: "string";
readonly description: "Group name for comment separation (e.g., \"code-review\", \"pr-overview\") - optional";
};
readonly schema: {
readonly anyOf: readonly [{
readonly type: "string";
}, {
readonly $ref: "#/definitions/Record%3Cstring%2Cunknown%3E";
}];
readonly description: "Schema type for template rendering (e.g., \"code-review\", \"markdown\") or inline JSON schema object - optional";
};
readonly template: {
readonly $ref: "#/definitions/CustomTemplateConfig";
readonly description: "Custom template configuration - optional";
};
readonly if: {
readonly type: "string";
readonly description: "Condition to determine if check should run - runs if expression evaluates to true";
};
readonly reuse_ai_session: {
readonly type: readonly ["string", "boolean"];
readonly description: "Check name to reuse AI session from, or true to use first dependency (only works with depends_on)";
};
readonly session_mode: {
readonly type: "string";
readonly enum: readonly ["clone", "append"];
readonly description: "How to reuse AI session: 'clone' (default, copy history) or 'append' (share history)";
};
readonly fail_if: {
readonly type: "string";
readonly description: "Simple fail condition - fails check if expression evaluates to true";
};
readonly failure_conditions: {
readonly $ref: "#/definitions/FailureConditions";
readonly description: "Check-specific failure conditions - optional (deprecated, use fail_if)";
};
readonly tags: {
readonly type: "array";
readonly items: {
readonly type: "string";
};
readonly description: "Tags for categorizing and filtering checks (e.g., [\"local\", \"fast\", \"security\"])";
};
readonly forEach: {
readonly type: "boolean";
readonly description: "Process output as array and run dependent checks for each item";
};
readonly on_fail: {
readonly $ref: "#/definitions/OnFailConfig";
readonly description: "Failure routing configuration for this check (retry/goto/run)";
};
readonly on_success: {
readonly $ref: "#/definitions/OnSuccessConfig";
readonly description: "Success routing configuration for this check (post-actions and optional goto)";
};
readonly message: {
readonly type: "string";
readonly description: "Message template for log checks";
};
readonly level: {
readonly type: "string";
readonly enum: readonly ["debug", "info", "warn", "error"];
readonly description: "Log level for log checks";
};
readonly include_pr_context: {
readonly type: "boolean";
readonly description: "Include PR context in log output";
};
readonly include_dependencies: {
readonly type: "boolean";
readonly description: "Include dependency summaries in log output";
};
readonly include_metadata: {
readonly type: "boolean";
readonly description: "Include execution metadata in log output";
};
readonly operation: {
readonly type: "string";
readonly enum: readonly ["get", "set", "append", "increment", "delete", "clear", "list", "exec_js"];
readonly description: "Memory operation to perform";
};
readonly key: {
readonly type: "string";
readonly description: "Key for memory operation";
};
readonly value: {
readonly description: "Value for set/append operations";
};
readonly value_js: {
readonly type: "string";
readonly description: "JavaScript expression to compute value dynamically";
};
readonly memory_js: {
readonly type: "string";
readonly description: "JavaScript code for exec_js operation with full memory access";
};
readonly namespace: {
readonly type: "string";
readonly description: "Override namespace for this check";
};
readonly op: {
readonly type: "string";
readonly description: "GitHub operation to perform (e.g., 'labels.add', 'labels.remove', 'comment.create')";
};
readonly values: {
readonly anyOf: readonly [{
readonly type: "array";
readonly items: {
readonly type: "string";
};
}, {
readonly type: "string";
}];
readonly description: "Values for GitHub operations (can be array or single value)";
};
readonly transport: {
readonly type: "string";
readonly enum: readonly ["stdio", "sse", "http"];
readonly description: "Transport type for MCP: stdio (default), sse (legacy), or http (streamable HTTP)";
};
readonly methodArgs: {
readonly $ref: "#/definitions/Record%3Cstring%2Cunknown%3E";
readonly description: "Arguments to pass to the MCP method (supports Liquid templates)";
};
readonly argsTransform: {
readonly type: "string";
readonly description: "Transform template for method arguments (Liquid)";
};
readonly sessionId: {
readonly type: "string";
readonly description: "Session ID for HTTP transport (optional, server may generate one)";
};
readonly args: {
readonly type: "array";
readonly items: {
readonly type: "string";
};
readonly description: "Command arguments (for stdio transport in MCP checks)";
};
readonly workingDirectory: {
readonly type: "string";
readonly description: "Working directory (for stdio transport in MCP checks)";
};
};
readonly additionalProperties: false;
readonly description: "Configuration for a single check";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly ConfigCheckType: {
readonly type: "string";
readonly enum: readonly ["ai", "command", "http", "http_input", "http_client", "noop", "log", "memory", "github", "claude-code", "mcp", "human-input"];
readonly description: "Valid check types in configuration";
};
readonly 'Record<string,string>': {
readonly type: "object";
readonly additionalProperties: {
readonly type: "string";
};
};
readonly EventTrigger: {
readonly type: "string";
readonly enum: readonly ["pr_opened", "pr_updated", "pr_closed", "issue_opened", "issue_comment", "manual", "schedule", "webhook_received"];
readonly description: "Valid event triggers for checks";
};
readonly AIProviderConfig: {
readonly type: "object";
readonly properties: {
readonly provider: {
readonly type: "string";
readonly enum: readonly ["google", "anthropic", "openai", "bedrock", "mock"];
readonly description: "AI provider to use";
};
readonly model: {
readonly type: "string";
readonly description: "Model name to use";
};
readonly apiKey: {
readonly type: "string";
readonly description: "API key (usually from environment variables)";
};
readonly timeout: {
readonly type: "number";
readonly description: "Request timeout in milliseconds";
};
readonly debug: {
readonly type: "boolean";
readonly description: "Enable debug mode";
};
readonly mcpServers: {
readonly $ref: "#/definitions/Record%3Cstring%2CMcpServerConfig%3E";
readonly description: "MCP servers configuration";
};
};
readonly additionalProperties: false;
readonly description: "AI provider configuration";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly 'Record<string,McpServerConfig>': {
readonly type: "object";
readonly additionalProperties: {
readonly $ref: "#/definitions/McpServerConfig";
};
};
readonly McpServerConfig: {
readonly type: "object";
readonly properties: {
readonly command: {
readonly type: "string";
readonly description: "Command to execute for the MCP server";
};
readonly args: {
readonly type: "array";
readonly items: {
readonly type: "string";
};
readonly description: "Arguments to pass to the command";
};
readonly env: {
readonly $ref: "#/definitions/Record%3Cstring%2Cstring%3E";
readonly description: "Environment variables for the MCP server";
};
};
readonly required: readonly ["command"];
readonly additionalProperties: false;
readonly description: "MCP Server configuration";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly ClaudeCodeConfig: {
readonly type: "object";
readonly properties: {
readonly allowedTools: {
readonly type: "array";
readonly items: {
readonly type: "string";
};
readonly description: "List of allowed tools for Claude Code to use";
};
readonly maxTurns: {
readonly type: "number";
readonly description: "Maximum number of turns in conversation";
};
readonly systemPrompt: {
readonly type: "string";
readonly description: "System prompt for Claude Code";
};
readonly mcpServers: {
readonly $ref: "#/definitions/Record%3Cstring%2CMcpServerConfig%3E";
readonly description: "MCP servers configuration";
};
readonly subagent: {
readonly type: "string";
readonly description: "Path to subagent script";
};
readonly hooks: {
readonly type: "object";
readonly properties: {
readonly onStart: {
readonly type: "string";
readonly description: "Called when check starts";
};
readonly onEnd: {
readonly type: "string";
readonly description: "Called when check ends";
};
readonly onError: {
readonly type: "string";
readonly description: "Called when check encounters an error";
};
};
readonly additionalProperties: false;
readonly description: "Event hooks for lifecycle management";
readonly patternProperties: {
readonly '^x-': {};
};
};
};
readonly additionalProperties: false;
readonly description: "Claude Code configuration";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly EnvConfig: {
readonly type: "object";
readonly additionalProperties: {
readonly type: readonly ["string", "number", "boolean"];
};
readonly description: "Environment variable reference configuration";
};
readonly 'Record<string,unknown>': {
readonly type: "object";
readonly additionalProperties: {};
};
readonly CustomTemplateConfig: {
readonly type: "object";
readonly properties: {
readonly file: {
readonly type: "string";
readonly description: "Path to custom template file (relative to config file or absolute)";
};
readonly content: {
readonly type: "string";
readonly description: "Raw template content as string";
};
};
readonly additionalProperties: false;
readonly description: "Custom template configuration";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly FailureConditions: {
readonly type: "object";
readonly additionalProperties: {
readonly $ref: "#/definitions/FailureCondition";
};
readonly description: "Collection of failure conditions";
};
readonly FailureCondition: {
readonly anyOf: readonly [{
readonly $ref: "#/definitions/SimpleFailureCondition";
}, {
readonly $ref: "#/definitions/ComplexFailureCondition";
}];
readonly description: "Failure condition - can be a simple expression string or complex object";
};
readonly SimpleFailureCondition: {
readonly type: "string";
readonly description: "Simple failure condition - just an expression string";
};
readonly ComplexFailureCondition: {
readonly type: "object";
readonly properties: {
readonly condition: {
readonly type: "string";
readonly description: "Expression to evaluate using Function Constructor";
};
readonly message: {
readonly type: "string";
readonly description: "Human-readable message when condition is met";
};
readonly severity: {
readonly $ref: "#/definitions/FailureConditionSeverity";
readonly description: "Severity level of the failure";
};
readonly halt_execution: {
readonly type: "boolean";
readonly description: "Whether this condition should halt execution";
};
};
readonly required: readonly ["condition"];
readonly additionalProperties: false;
readonly description: "Complex failure condition with additional metadata";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly FailureConditionSeverity: {
readonly type: "string";
readonly enum: readonly ["error", "warning", "info"];
readonly description: "Failure condition severity levels";
};
readonly OnFailConfig: {
readonly type: "object";
readonly properties: {
readonly retry: {
readonly $ref: "#/definitions/RetryPolicy";
readonly description: "Retry policy";
};
readonly run: {
readonly type: "array";
readonly items: {
readonly type: "string";
};
readonly description: "Remediation steps to run before reattempt";
};
readonly goto: {
readonly type: "string";
readonly description: "Jump back to an ancestor step (by id)";
};
readonly goto_event: {
readonly $ref: "#/definitions/EventTrigger";
readonly description: "Simulate a different event when performing goto (e.g., 'pr_updated')";
};
readonly goto_js: {
readonly type: "string";
readonly description: "Dynamic goto: JS expression returning step id or null";
};
readonly run_js: {
readonly type: "string";
readonly description: "Dynamic remediation list: JS expression returning string[]";
};
};
readonly additionalProperties: false;
readonly description: "Failure routing configuration per check";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly RetryPolicy: {
readonly type: "object";
readonly properties: {
readonly max: {
readonly type: "number";
readonly description: "Maximum retry attempts (excluding the first attempt)";
};
readonly backoff: {
readonly $ref: "#/definitions/BackoffPolicy";
readonly description: "Backoff policy";
};
};
readonly additionalProperties: false;
readonly description: "Retry policy for a step";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly BackoffPolicy: {
readonly type: "object";
readonly properties: {
readonly mode: {
readonly type: "string";
readonly enum: readonly ["fixed", "exponential"];
readonly description: "Backoff mode";
};
readonly delay_ms: {
readonly type: "number";
readonly description: "Initial delay in milliseconds";
};
};
readonly additionalProperties: false;
readonly description: "Backoff policy for retries";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly OnSuccessConfig: {
readonly type: "object";
readonly properties: {
readonly run: {
readonly type: "array";
readonly items: {
readonly type: "string";
};
readonly description: "Post-success steps to run";
};
readonly goto: {
readonly type: "string";
readonly description: "Optional jump back to ancestor step (by id)";
};
readonly goto_event: {
readonly $ref: "#/definitions/EventTrigger";
readonly description: "Simulate a different event when performing goto (e.g., 'pr_updated')";
};
readonly goto_js: {
readonly type: "string";
readonly description: "Dynamic goto: JS expression returning step id or null";
};
readonly run_js: {
readonly type: "string";
readonly description: "Dynamic post-success steps: JS expression returning string[]";
};
};
readonly additionalProperties: false;
readonly description: "Success routing configuration per check";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly OutputConfig: {
readonly type: "object";
readonly properties: {
readonly pr_comment: {
readonly $ref: "#/definitions/PrCommentOutput";
readonly description: "PR comment configuration";
};
readonly file_comment: {
readonly $ref: "#/definitions/FileCommentOutput";
readonly description: "File comment configuration (optional)";
};
readonly github_checks: {
readonly $ref: "#/definitions/GitHubCheckOutput";
readonly description: "GitHub check runs configuration (optional)";
};
readonly suppressionEnabled: {
readonly type: "boolean";
readonly description: "Whether to enable issue suppression via visor-disable comments (default: true)";
};
};
readonly required: readonly ["pr_comment"];
readonly additionalProperties: false;
readonly description: "Output configuration";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly PrCommentOutput: {
readonly type: "object";
readonly properties: {
readonly format: {
readonly $ref: "#/definitions/ConfigOutputFormat";
readonly description: "Format of the output";
};
readonly group_by: {
readonly $ref: "#/definitions/GroupByOption";
readonly description: "How to group the results";
};
readonly collapse: {
readonly type: "boolean";
readonly description: "Whether to collapse sections by default";
};
readonly debug: {
readonly $ref: "#/definitions/DebugConfig";
readonly description: "Debug mode configuration (optional)";
};
};
readonly required: readonly ["format", "group_by", "collapse"];
readonly additionalProperties: false;
readonly description: "PR comment output configuration";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly ConfigOutputFormat: {
readonly type: "string";
readonly enum: readonly ["table", "json", "markdown", "sarif"];
readonly description: "Valid output formats";
};
readonly GroupByOption: {
readonly type: "string";
readonly enum: readonly ["check", "file", "severity", "group"];
readonly description: "Valid grouping options";
};
readonly DebugConfig: {
readonly type: "object";
readonly properties: {
readonly enabled: {
readonly type: "boolean";
readonly description: "Enable debug mode";
};
readonly includePrompts: {
readonly type: "boolean";
readonly description: "Include AI prompts in debug output";
};
readonly includeRawResponses: {
readonly type: "boolean";
readonly description: "Include raw AI responses in debug output";
};
readonly includeTiming: {
readonly type: "boolean";
readonly description: "Include timing information";
};
readonly includeProviderInfo: {
readonly type: "boolean";
readonly description: "Include provider information";
};
};
readonly required: readonly ["enabled", "includePrompts", "includeRawResponses", "includeTiming", "includeProviderInfo"];
readonly additionalProperties: false;
readonly description: "Debug mode configuration";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly FileCommentOutput: {
readonly type: "object";
readonly properties: {
readonly enabled: {
readonly type: "boolean";
readonly description: "Whether file comments are enabled";
};
readonly inline: {
readonly type: "boolean";
readonly description: "Whether to show inline comments";
};
};
readonly required: readonly ["enabled", "inline"];
readonly additionalProperties: false;
readonly description: "File comment output configuration";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly GitHubCheckOutput: {
readonly type: "object";
readonly properties: {
readonly enabled: {
readonly type: "boolean";
readonly description: "Whether GitHub check runs are enabled";
};
readonly per_check: {
readonly type: "boolean";
readonly description: "Whether to create individual check runs per configured check";
};
readonly name_prefix: {
readonly type: "string";
readonly description: "Custom name prefix for check runs";
};
};
readonly required: readonly ["enabled", "per_check"];
readonly additionalProperties: false;
readonly description: "GitHub Check Runs output configuration";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly HttpServerConfig: {
readonly type: "object";
readonly properties: {
readonly enabled: {
readonly type: "boolean";
readonly description: "Whether HTTP server is enabled";
};
readonly port: {
readonly type: "number";
readonly description: "Port to listen on";
};
readonly host: {
readonly type: "string";
readonly description: "Host/IP to bind to (defaults to 0.0.0.0)";
};
readonly tls: {
readonly $ref: "#/definitions/TlsConfig";
readonly description: "TLS/SSL configuration for HTTPS";
};
readonly auth: {
readonly $ref: "#/definitions/HttpAuthConfig";
readonly description: "Authentication configuration";
};
readonly endpoints: {
readonly type: "array";
readonly items: {
readonly $ref: "#/definitions/HttpEndpointConfig";
};
readonly description: "HTTP endpoints configuration";
};
};
readonly required: readonly ["enabled", "port"];
readonly additionalProperties: false;
readonly description: "HTTP server configuration for receiving webhooks";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly TlsConfig: {
readonly type: "object";
readonly properties: {
readonly enabled: {
readonly type: "boolean";
readonly description: "Enable TLS/HTTPS";
};
readonly cert: {
readonly type: "string";
readonly description: "Path to TLS certificate file or certificate content";
};
readonly key: {
readonly type: "string";
readonly description: "Path to TLS key file or key content";
};
readonly ca: {
readonly type: "string";
readonly description: "Path to CA certificate file or CA content (optional)";
};
readonly rejectUnauthorized: {
readonly type: "boolean";
readonly description: "Reject unauthorized connections (default: true)";
};
};
readonly required: readonly ["enabled"];
readonly additionalProperties: false;
readonly description: "TLS/SSL configuration for HTTPS server";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly HttpAuthConfig: {
readonly type: "object";
readonly properties: {
readonly type: {
readonly type: "string";
readonly enum: readonly ["bearer_token", "hmac", "basic", "none"];
readonly description: "Authentication type";
};
readonly secret: {
readonly type: "string";
readonly description: "Secret or token for authentication";
};
readonly username: {
readonly type: "string";
readonly description: "Username for basic auth";
};
readonly password: {
readonly type: "string";
readonly description: "Password for basic auth";
};
};
readonly required: readonly ["type"];
readonly additionalProperties: false;
readonly description: "HTTP server authentication configuration";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly HttpEndpointConfig: {
readonly type: "object";
readonly properties: {
readonly path: {
readonly type: "string";
readonly description: "Path for the webhook endpoint";
};
readonly transform: {
readonly type: "string";
readonly description: "Optional transform template (Liquid) for the received data";
};
readonly name: {
readonly type: "string";
readonly description: "Optional name/ID for this endpoint";
};
};
readonly required: readonly ["path"];
readonly additionalProperties: false;
readonly description: "HTTP server endpoint configuration";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly MemoryConfig: {
readonly type: "object";
readonly properties: {
readonly storage: {
readonly type: "string";
readonly enum: readonly ["memory", "file"];
readonly description: "Storage mode: \"memory\" (in-memory, default) or \"file\" (persistent)";
};
readonly format: {
readonly type: "string";
readonly enum: readonly ["json", "csv"];
readonly description: "Storage format (only for file storage, default: json)";
};
readonly file: {
readonly type: "string";
readonly description: "File path (required if storage: file)";
};
readonly namespace: {
readonly type: "string";
readonly description: "Default namespace (default: \"default\")";
};
readonly auto_load: {
readonly type: "boolean";
readonly description: "Auto-load on startup (default: true if storage: file)";
};
readonly auto_save: {
readonly type: "boolean";
readonly description: "Auto-save after operations (default: true if storage: file)";
};
};
readonly additionalProperties: false;
readonly description: "Memory storage configuration";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly TagFilter: {
readonly type: "object";
readonly properties: {
readonly include: {
readonly type: "array";
readonly items: {
readonly type: "string";
};
readonly description: "Tags that checks must have to be included (ANY match)";
};
readonly exclude: {
readonly type: "array";
readonly items: {
readonly type: "string";
};
readonly description: "Tags that will exclude checks if present (ANY match)";
};
};
readonly additionalProperties: false;
readonly description: "Tag filter configuration for selective check execution";
readonly patternProperties: {
readonly '^x-': {};
};
};
readonly RoutingDefaults: {
readonly type: "object";
readonly properties: {
readonly max_loops: {
readonly type: "number";
readonly description: "Per-scope cap on routing transitions (success + failure)";
};
readonly defaults: {
readonly type: "object";
readonly properties: {
readonly on_fail: {
readonly $ref: "#/definitions/OnFailConfig";
};
};
readonly additionalProperties: false;
readonly description: "Default policies applied to checks (step-level overrides take precedence)";
readonly patternProperties: {
readonly '^x-': {};
};
};
};
readonly additionalProperties: false;
readonly description: "Global routing defaults";
readonly patternProperties: {
readonly '^x-': {};
};
};
};
};
export default configSchema;
//# sourceMappingURL=config-schema.d.ts.map