/** * Expected analysis-tool failure when every live input is unavailable. * * The cache key lists are safe, bounded identifiers (never payload content). * Dispatch preserves them in JSON-RPC error.data so agents can distinguish a * retryable source outage from an implementation failure. */ export class McpSourceUnavailableError extends Error { readonly unavailableInputs: string[]; readonly failedInputs: string[]; constructor(message: string, unavailableInputs: string[], failedInputs: string[]) { super(message); this.name = 'McpSourceUnavailableError'; this.unavailableInputs = [...unavailableInputs]; this.failedInputs = [...failedInputs]; } }