/** * JSON Schema definition for the `fetch` tool. * * The fetch tool performs HTTP requests in batch, with per-URL extract modes, * timeout support, and token-efficient verbosity output. */ export declare const FETCH_TOOL_SCHEMA: { readonly type: "object"; readonly properties: { readonly urls: { readonly type: "array"; readonly description: "URLs to fetch. Processed as a batch in one call."; readonly items: { readonly type: "object"; readonly properties: { readonly url: { readonly type: "string"; readonly description: "The URL to fetch."; }; readonly method: { readonly type: "string"; readonly enum: readonly ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"]; readonly description: "HTTP method. Defaults to GET."; }; readonly params: { readonly type: "object"; readonly description: "Query parameters to append to the URL as a query string."; readonly additionalProperties: { readonly type: "string"; }; }; readonly headers: { readonly type: "object"; readonly description: "HTTP headers to include in the request."; readonly additionalProperties: { readonly type: "string"; }; }; readonly body: { readonly type: "string"; readonly description: "Request body string."; }; readonly body_base64: { readonly type: "string"; readonly description: "Base64-encoded request body. Decoded before sending. Takes precedence over body."; }; readonly body_type: { readonly type: "string"; readonly enum: readonly ["json", "form", "raw", "multipart"]; readonly description: string; }; readonly body_data: { readonly type: "object"; readonly description: string; readonly additionalProperties: { readonly type: "string"; }; }; readonly extract: { readonly type: "string"; readonly enum: readonly ["raw", "text", "json", "markdown", "readable", "code_blocks", "links", "metadata", "structured", "tables", "pdf", "summary"]; readonly description: string; }; readonly selectors: { readonly type: "array"; readonly items: { readonly type: "string"; }; readonly description: "CSS selectors for structured extraction mode. Each matched element text is returned as an array item."; }; readonly timeout_ms: { readonly type: "integer"; readonly minimum: 1; readonly description: "Per-URL timeout in milliseconds. Default 30000."; }; readonly max_content_length: { readonly type: "integer"; readonly minimum: 1; readonly description: "Maximum response body size in bytes. Responses exceeding this are truncated. Overrides global max_content_length."; }; readonly retry_on_auth: { readonly type: "boolean"; readonly description: "When a service is specified and a 401 is returned, attempt to refresh auth and retry once. Defaults to true when service is specified."; }; readonly service: { readonly type: "string"; readonly description: "Named service for automatic credential lookup from the service registry. Services are configured in the host services.json file. Use the registry tool or inspect that registry to discover available service names."; }; readonly auth: { readonly type: "object"; readonly description: "Inline auth configuration. Applied directly without registry lookup."; readonly properties: { readonly type: { readonly type: "string"; readonly enum: readonly ["bearer", "basic", "api-key"]; readonly description: "Auth type."; }; readonly token: { readonly type: "string"; readonly description: "Bearer token (for type bearer)."; }; readonly username: { readonly type: "string"; readonly description: "Username (for type basic)."; }; readonly password: { readonly type: "string"; readonly description: "Password (for type basic)."; }; readonly header: { readonly type: "string"; readonly description: "Header name (for type api-key). Defaults to X-API-Key."; }; readonly key: { readonly type: "string"; readonly description: "API key value (for type api-key)."; }; }; readonly required: readonly ["type"]; }; }; readonly required: readonly ["url"]; }; readonly minItems: 1; readonly maxItems: 20; }; readonly extract: { readonly type: "string"; readonly enum: readonly ["raw", "text", "json", "markdown", "readable", "code_blocks", "links", "metadata", "structured", "tables", "pdf", "summary"]; readonly description: "Global extraction mode applied to all URLs unless overridden per-URL. Defaults to raw."; }; readonly parallel: { readonly type: "boolean"; readonly description: "Fetch URLs in parallel using Promise.all. Default true."; }; readonly verbosity: { readonly type: "string"; readonly enum: readonly ["count_only", "minimal", "standard", "verbose"]; readonly description: string; }; readonly cache_ttl_seconds: { readonly type: "integer"; readonly minimum: 0; readonly description: "Cache GET responses by URL+params for this many seconds. 0 disables caching (default)."; }; readonly rate_limit_ms: { readonly type: "integer"; readonly minimum: 0; readonly description: "Minimum delay in milliseconds between sequential requests. 0 disables rate limiting (default). Has no effect in parallel mode."; }; readonly max_content_length: { readonly type: "integer"; readonly minimum: 1; readonly description: "Global maximum response body size in bytes. Responses exceeding this are truncated. Can be overridden per-URL."; }; readonly sanitize_mode: { readonly type: "string"; readonly enum: readonly ["none", "safe-text", "strict"]; readonly description: string; }; readonly trusted_hosts: { readonly type: "array"; readonly items: { readonly type: "string"; }; readonly description: "Hostnames or glob patterns explicitly trusted. Trusted hosts may use sanitize_mode: none."; }; readonly blocked_hosts: { readonly type: "array"; readonly items: { readonly type: "string"; }; readonly description: "Hostnames or glob patterns explicitly blocked. Denied pre-request regardless of other config."; }; }; readonly required: readonly ["urls"]; }; /** Extraction mode for a single URL or globally. */ export type FetchExtractMode = 'raw' | 'text' | 'json' | 'markdown' | 'readable' | 'code_blocks' | 'links' | 'metadata' | 'structured' | 'tables' | 'pdf' | 'summary'; /** Output verbosity format. */ export type FetchVerbosity = 'count_only' | 'minimal' | 'standard' | 'verbose'; /** Auth config for a single URL. */ export interface FetchAuthInput { type: 'bearer' | 'basic' | 'api-key'; /** Bearer token (used with type 'bearer'). */ token?: string | undefined; /** Username for basic auth (used with type 'basic'). */ username?: string | undefined; /** Password for basic auth (used with type 'basic'). */ password?: string | undefined; /** Header name for API key auth (used with type 'api-key'). Defaults to X-API-Key. */ header?: string | undefined; /** API key value (used with type 'api-key'). */ key?: string | undefined; } /** Input shape for a single URL entry. */ export interface FetchUrlInput { url: string; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS' | undefined; /** Query parameters appended as a query string to the URL. */ params?: Record | undefined; headers?: Record | undefined; body?: string | undefined; /** Base64-encoded request body. Decoded before sending. Takes precedence over body. */ body_base64?: string | undefined; body_type?: 'json' | 'form' | 'raw' | 'multipart' | undefined; /** Key-value pairs used when body_type is 'form' or 'multipart'. */ body_data?: Record | undefined; extract?: FetchExtractMode | undefined; /** CSS selectors for structured extraction mode. */ selectors?: string[] | undefined; timeout_ms?: number | undefined; /** Maximum response body size in bytes. Overrides global max_content_length. */ max_content_length?: number | undefined; /** When a service is specified and a 401 is returned, refresh auth and retry once. */ retry_on_auth?: boolean | undefined; /** Named service for automatic credential lookup from the service registry. */ service?: string | undefined; /** Inline auth configuration. Applied directly without registry lookup. */ auth?: FetchAuthInput | undefined; } /** * Sanitization mode for response content. * * Re-exported from sanitizer.ts to avoid duplication. */ import type { SanitizeMode } from './sanitizer.js'; /** Sanitization mode re-exported from sanitizer.ts. */ export type FetchSanitizeMode = SanitizeMode; /** Full input shape for the fetch tool. */ export interface FetchInput { urls: FetchUrlInput[]; extract?: FetchExtractMode | undefined; parallel?: boolean | undefined; verbosity?: FetchVerbosity | undefined; /** Cache GET responses by URL+params for this many seconds. 0 = disabled (default). */ cache_ttl_seconds?: number | undefined; /** Minimum delay in ms between sequential requests. 0 = disabled (default). */ rate_limit_ms?: number | undefined; /** Global maximum response body size in bytes. */ max_content_length?: number | undefined; /** * Response sanitization mode applied to all URL responses. * Defaults to `'safe-text'` when omitted (rollback-safe default for fetch sanitization). */ sanitize_mode?: FetchSanitizeMode | undefined; /** Hostnames or glob patterns explicitly trusted. Trusted hosts may use sanitize_mode: none. */ trusted_hosts?: string[] | undefined; /** Hostnames or glob patterns explicitly blocked. Denied pre-request regardless of other config. */ blocked_hosts?: string[] | undefined; } //# sourceMappingURL=schema.d.ts.map