rea-agents - v2.1.0
    Preparing search index...

    Variable BROWSER_TOOL_CONTRACTSConst

    BROWSER_TOOL_CONTRACTS: readonly [
        {
            annotations: DerivedToolAnnotations;
            description: "List bounded page targets from an approved user-owned loopback Chrome DevTools Protocol endpoint. Only targets whose current URL matches an approved exact origin are returned; URL credentials, query values, and fragments are redacted.";
            effects: ToolEffects;
            examples: readonly [
                {
                    input: {
                        allowed_origins: ["https://app.example.test"];
                        approved: true;
                        cdp_endpoint: "http://127.0.0.1:9222";
                        limit: 100;
                        offset: 0;
                    };
                    title: "List approved browser page targets";
                },
            ];
            inputSchema: ZodObject<
                {
                    allowed_origins: ZodPipe<
                        ZodArray<ZodPipe<ZodString, ZodTransform<string, string>>>,
                        ZodTransform<string[], string[]>,
                    >;
                    approved: ZodLiteral<true>;
                    cdp_endpoint: ZodPipe<ZodString, ZodTransform<string, string>>;
                    limit: ZodDefault<ZodNumber>;
                    offset: ZodDefault<ZodNumber>;
                },
                $strip,
            >;
            kind: "browser-provider";
            name: "list_browser_targets";
            outputSchema: ZodObject<
                {
                    evidence_id: ZodString;
                    evidence_uri: ZodString;
                    result: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>;
                },
                $strict,
            >;
            title: string;
        },
        {
            annotations: DerivedToolAnnotations;
            description: "Passively inspect one approved page target through CDP without evaluating JavaScript, navigating, clicking, closing, or mutating the page. Returns bounded DOM structure, accessibility, scripts, resources, attach-window network and console metadata, workers, and redacted storage inventory as Evidence v2.";
            effects: ToolEffects;
            examples: readonly [
                {
                    input: {
                        allowed_origins: ["https://app.example.test"];
                        approved: true;
                        cdp_endpoint: "http://127.0.0.1:9222";
                        console_text_approved: false;
                        include_accessibility_text: false;
                        include_console_text: false;
                        include_json_body_shapes: false;
                        include_script_sources: false;
                        include_storage_keys: false;
                        include_websocket_shapes: false;
                        json_body_schema_approved: false;
                        limits: {
                            max_ax_nodes: 2000;
                            max_ax_text_field_bytes: 1024;
                            max_console_events: 200;
                            max_console_text_field_bytes: 1024;
                            max_dom_nodes: 2000;
                            max_frames: 200;
                            max_json_body_bytes: 1048576;
                            max_json_shape_depth: 20;
                            max_json_shape_nodes: 5000;
                            max_network_events: 1000;
                            max_resources: 2000;
                            max_script_source_bytes: 1048576;
                            max_scripts: 200;
                            max_storage_keys: 1000;
                            max_total_ax_text_bytes: 65536;
                            max_total_console_text_bytes: 65536;
                            max_total_json_body_bytes: 4194304;
                            max_total_script_source_bytes: 4194304;
                            max_total_websocket_shape_bytes: 1048576;
                            max_websocket_events: 500;
                            max_websocket_shape_bytes: 65536;
                            max_workers: 500;
                        };
                        observation_ms: 500;
                        target_id: "TARGET_ID_FROM_LIST_BROWSER_TARGETS";
                        websocket_shape_approved: false;
                    };
                    title: "Inspect one approved browser page";
                },
            ];
            inputSchema: ZodObject<
                {
                    allowed_origins: ZodPipe<
                        ZodArray<ZodPipe<ZodString, ZodTransform<string, string>>>,
                        ZodTransform<string[], string[]>,
                    >;
                    approved: ZodLiteral<true>;
                    cdp_endpoint: ZodPipe<ZodString, ZodTransform<string, string>>;
                    console_text_approved: ZodDefault<ZodBoolean>;
                    include_accessibility_text: ZodDefault<ZodBoolean>;
                    include_console_text: ZodDefault<ZodBoolean>;
                    include_json_body_shapes: ZodDefault<ZodBoolean>;
                    include_script_sources: ZodDefault<ZodBoolean>;
                    include_storage_keys: ZodDefault<ZodBoolean>;
                    include_websocket_shapes: ZodDefault<ZodBoolean>;
                    json_body_schema_approved: ZodDefault<ZodBoolean>;
                    limits: ZodDefault<
                        ZodObject<
                            {
                                max_ax_nodes: ZodDefault<ZodNumber>;
                                max_ax_text_field_bytes: ZodDefault<ZodNumber>;
                                max_console_events: ZodDefault<ZodNumber>;
                                max_console_text_field_bytes: ZodDefault<ZodNumber>;
                                max_dom_nodes: ZodDefault<ZodNumber>;
                                max_frames: ZodDefault<ZodNumber>;
                                max_json_body_bytes: ZodDefault<ZodNumber>;
                                max_json_shape_depth: ZodDefault<ZodNumber>;
                                max_json_shape_nodes: ZodDefault<ZodNumber>;
                                max_network_events: ZodDefault<ZodNumber>;
                                max_resources: ZodDefault<ZodNumber>;
                                max_script_source_bytes: ZodDefault<ZodNumber>;
                                max_scripts: ZodDefault<ZodNumber>;
                                max_storage_keys: ZodDefault<ZodNumber>;
                                max_total_ax_text_bytes: ZodDefault<ZodNumber>;
                                max_total_console_text_bytes: ZodDefault<ZodNumber>;
                                max_total_json_body_bytes: ZodDefault<ZodNumber>;
                                max_total_script_source_bytes: ZodDefault<ZodNumber>;
                                max_total_websocket_shape_bytes: ZodDefault<ZodNumber>;
                                max_websocket_events: ZodDefault<ZodNumber>;
                                max_websocket_shape_bytes: ZodDefault<ZodNumber>;
                                max_workers: ZodDefault<ZodNumber>;
                            },
                            $strip,
                        >,
                    >;
                    observation_ms: ZodDefault<ZodNumber>;
                    target_id: ZodString;
                    websocket_shape_approved: ZodDefault<ZodBoolean>;
                },
                $strip,
            >;
            kind: "browser-provider";
            name: "inspect_web_page";
            outputSchema: ZodObject<
                {
                    evidence_id: ZodString;
                    evidence_uri: ZodString;
                    result: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>;
                },
                $strict,
            >;
            title: string;
        },
        {
            annotations: DerivedToolAnnotations;
            description: "Capture explicitly approved JavaScript source from one approved CDP page and statically derive a bounded chunk graph, route and endpoint candidates, vendor fingerprints, page-declared WebMCP metadata, and optional separately approved source-map evidence. JavaScript is parsed but never executed.";
            effects: ToolEffects;
            examples: readonly [
                {
                    input: {
                        allowed_origins: ["https://app.example.test"];
                        analysis_limits: {
                            max_ast_nodes: 250000;
                            max_findings: 1000;
                            max_original_sources: 2000;
                            max_source_map_bytes: 4194304;
                            max_source_map_mappings: 10000;
                            max_source_maps: 100;
                            max_total_source_map_bytes: 16777216;
                        };
                        approved: true;
                        cdp_endpoint: "http://127.0.0.1:9222";
                        fetch_source_maps: false;
                        include_accessibility_text: false;
                        include_script_sources: true;
                        include_storage_keys: false;
                        observation_ms: 500;
                        source_capture_approved: true;
                        source_map_fetch_approved: false;
                        target_id: "TARGET_ID_FROM_LIST_BROWSER_TARGETS";
                    };
                    title: "Analyze an approved page bundle";
                },
            ];
            inputSchema: ZodObject<
                {
                    allowed_origins: ZodPipe<
                        ZodArray<ZodPipe<ZodString, ZodTransform<string, string>>>,
                        ZodTransform<string[], string[]>,
                    >;
                    analysis_limits: ZodDefault<
                        ZodObject<
                            {
                                max_ast_nodes: ZodDefault<ZodNumber>;
                                max_findings: ZodDefault<ZodNumber>;
                                max_original_sources: ZodDefault<ZodNumber>;
                                max_source_map_bytes: ZodDefault<ZodNumber>;
                                max_source_map_mappings: ZodDefault<ZodNumber>;
                                max_source_maps: ZodDefault<ZodNumber>;
                                max_total_source_map_bytes: ZodDefault<ZodNumber>;
                            },
                            $strip,
                        >,
                    >;
                    approved: ZodLiteral<true>;
                    cdp_endpoint: ZodPipe<ZodString, ZodTransform<string, string>>;
                    console_text_approved: ZodDefault<ZodBoolean>;
                    fetch_source_maps: ZodDefault<ZodBoolean>;
                    include_accessibility_text: ZodDefault<ZodBoolean>;
                    include_console_text: ZodDefault<ZodBoolean>;
                    include_json_body_shapes: ZodDefault<ZodBoolean>;
                    include_script_sources: ZodDefault<ZodLiteral<true>>;
                    include_storage_keys: ZodDefault<ZodBoolean>;
                    include_websocket_shapes: ZodDefault<ZodBoolean>;
                    json_body_schema_approved: ZodDefault<ZodBoolean>;
                    limits: ZodDefault<
                        ZodObject<
                            {
                                max_ax_nodes: ZodDefault<ZodNumber>;
                                max_ax_text_field_bytes: ZodDefault<ZodNumber>;
                                max_console_events: ZodDefault<ZodNumber>;
                                max_console_text_field_bytes: ZodDefault<ZodNumber>;
                                max_dom_nodes: ZodDefault<ZodNumber>;
                                max_frames: ZodDefault<ZodNumber>;
                                max_json_body_bytes: ZodDefault<ZodNumber>;
                                max_json_shape_depth: ZodDefault<ZodNumber>;
                                max_json_shape_nodes: ZodDefault<ZodNumber>;
                                max_network_events: ZodDefault<ZodNumber>;
                                max_resources: ZodDefault<ZodNumber>;
                                max_script_source_bytes: ZodDefault<ZodNumber>;
                                max_scripts: ZodDefault<ZodNumber>;
                                max_storage_keys: ZodDefault<ZodNumber>;
                                max_total_ax_text_bytes: ZodDefault<ZodNumber>;
                                max_total_console_text_bytes: ZodDefault<ZodNumber>;
                                max_total_json_body_bytes: ZodDefault<ZodNumber>;
                                max_total_script_source_bytes: ZodDefault<ZodNumber>;
                                max_total_websocket_shape_bytes: ZodDefault<ZodNumber>;
                                max_websocket_events: ZodDefault<ZodNumber>;
                                max_websocket_shape_bytes: ZodDefault<ZodNumber>;
                                max_workers: ZodDefault<ZodNumber>;
                            },
                            $strip,
                        >,
                    >;
                    observation_ms: ZodDefault<ZodNumber>;
                    source_capture_approved: ZodLiteral<true>;
                    source_map_fetch_approved: ZodDefault<ZodBoolean>;
                    target_id: ZodString;
                    websocket_shape_approved: ZodDefault<ZodBoolean>;
                },
                $strip,
            >;
            kind: "browser-provider";
            name: "analyze_web_bundle";
            outputSchema: ZodObject<
                {
                    evidence_id: ZodString;
                    evidence_uri: ZodString;
                    result: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>;
                },
                $strict,
            >;
            title: string;
        },
        {
            annotations: DerivedToolAnnotations;
            description: "Arm a bounded CDP observation window while the user operates the page. Allows approved same-origin reload and SPA navigation, records ordered navigation, redirect, lifecycle, and failure metadata, and stops before retaining an out-of-policy destination.";
            effects: ToolEffects;
            examples: readonly [
                {
                    input: {
                        allowed_origins: ["https://app.example.test"];
                        approved: true;
                        cdp_endpoint: "http://127.0.0.1:9222";
                        max_timeline_events: 2000;
                        observation_ms: 10000;
                        target_id: "TARGET_ID_FROM_LIST_BROWSER_TARGETS";
                    };
                    title: "Observe one external user action";
                },
            ];
            inputSchema: ZodObject<
                {
                    allowed_origins: ZodPipe<
                        ZodArray<ZodPipe<ZodString, ZodTransform<string, string>>>,
                        ZodTransform<string[], string[]>,
                    >;
                    approved: ZodLiteral<true>;
                    cdp_endpoint: ZodPipe<ZodString, ZodTransform<string, string>>;
                    max_timeline_events: ZodDefault<ZodNumber>;
                    observation_ms: ZodDefault<ZodNumber>;
                    target_id: ZodString;
                },
                $strip,
            >;
            kind: "browser-provider";
            name: "observe_web_session";
            outputSchema: ZodObject<
                {
                    evidence_id: ZodString;
                    evidence_uri: ZodString;
                    result: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>;
                },
                $strict,
            >;
            title: string;
        },
        {
            annotations: DerivedToolAnnotations;
            description: "Passively inventory page-registered WebMCP tools using the experimental CDP WebMCP domain. Metadata is bounded and page-declared-untrusted; REA never registers or invokes discovered tools.";
            effects: ToolEffects;
            examples: readonly [
                {
                    input: {
                        allowed_origins: ["https://app.example.test"];
                        approved: true;
                        cdp_endpoint: "http://127.0.0.1:9222";
                        max_schema_bytes: 262144;
                        max_schema_depth: 20;
                        max_schema_nodes: 5000;
                        max_tools: 500;
                        observation_ms: 100;
                        target_id: "TARGET_ID_FROM_LIST_BROWSER_TARGETS";
                    };
                    title: "Discover current WebMCP declarations";
                },
            ];
            inputSchema: ZodObject<
                {
                    allowed_origins: ZodPipe<
                        ZodArray<ZodPipe<ZodString, ZodTransform<string, string>>>,
                        ZodTransform<string[], string[]>,
                    >;
                    approved: ZodLiteral<true>;
                    cdp_endpoint: ZodPipe<ZodString, ZodTransform<string, string>>;
                    max_schema_bytes: ZodDefault<ZodNumber>;
                    max_schema_depth: ZodDefault<ZodNumber>;
                    max_schema_nodes: ZodDefault<ZodNumber>;
                    max_tools: ZodDefault<ZodNumber>;
                    observation_ms: ZodDefault<ZodNumber>;
                    target_id: ZodString;
                },
                $strip,
            >;
            kind: "browser-provider";
            name: "discover_webmcp_tools";
            outputSchema: ZodObject<
                {
                    evidence_id: ZodString;
                    evidence_uri: ZodString;
                    result: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>;
                },
                $strict,
            >;
            title: string;
        },
        {
            annotations: DerivedToolAnnotations;
            description: "Compare two normalized web captures across DOM, scripts, resources, network, safe metadata, and optional WebMCP inventories. Stable observed changes are distinguished from unknown absence caused by incomplete capture coverage.";
            effects: ToolEffects;
            examples: readonly [
                {
                    input: {
                        after: {
                            inspection: {
                                accessibility: {
                                    nodes: never[];
                                    text_capture: {
                                        excluded_fields: number;
                                        retained_bytes: number;
                                        status: string;
                                        truncated_fields: number;
                                    };
                                    total_nodes: number;
                                };
                                browser: {
                                    js_version: string;
                                    product: string;
                                    protocol_version: string;
                                    revision: string;
                                    user_agent: string;
                                };
                                capture_window: {
                                    ended_at: string;
                                    observation_ms: number;
                                    started_at: string;
                                };
                                completeness: {
                                    attach_limited_sections: never[];
                                    conditions: string[];
                                    dropped_events: {
                                        console_events: number;
                                        network_requests: number;
                                        scripts: number;
                                        timeline_events: number;
                                        total: number;
                                        webmcp_tools: number;
                                        websocket_connections: number;
                                        websocket_frames: number;
                                    };
                                    excluded: never[];
                                    policy_filtered_sections: never[];
                                    status: string;
                                    truncated_sections: never[];
                                    unavailable_sections: never[];
                                };
                                console: {
                                    coverage_started_at: string;
                                    events: never[];
                                    prior_activity_available: boolean;
                                };
                                dom: { nodes: never[]; total_nodes: number };
                                frames: never[];
                                limitations: never[];
                                metadata: {
                                    agent_hints: never[];
                                    dom_urls: never[];
                                    excluded_dom_urls: number;
                                    headers_allowlisted: boolean;
                                    responses: never[];
                                };
                                network: {
                                    coverage_started_at: string;
                                    prior_activity_available: boolean;
                                    requests: never[];
                                    websocket_events: never[];
                                };
                                resources: never[];
                                schema_version: number;
                                scripts: { items: never[]; total: number };
                                storage: {
                                    cache_names: never[];
                                    indexed_db_names: never[];
                                    local_storage_keys: never[];
                                    origin: string;
                                    quota_bytes: null;
                                    session_storage_keys: never[];
                                    usage_bytes: null;
                                    values_redacted: boolean;
                                };
                                target: {
                                    attached: boolean;
                                    origin: string;
                                    target_id: string;
                                    title: string;
                                    type: string;
                                    url: string;
                                };
                                workers: never[];
                            };
                        };
                        before: {
                            inspection: {
                                accessibility: {
                                    nodes: never[];
                                    text_capture: {
                                        excluded_fields: number;
                                        retained_bytes: number;
                                        status: string;
                                        truncated_fields: number;
                                    };
                                    total_nodes: number;
                                };
                                browser: {
                                    js_version: string;
                                    product: string;
                                    protocol_version: string;
                                    revision: string;
                                    user_agent: string;
                                };
                                capture_window: {
                                    ended_at: string;
                                    observation_ms: number;
                                    started_at: string;
                                };
                                completeness: {
                                    attach_limited_sections: never[];
                                    conditions: string[];
                                    dropped_events: {
                                        console_events: number;
                                        network_requests: number;
                                        scripts: number;
                                        timeline_events: number;
                                        total: number;
                                        webmcp_tools: number;
                                        websocket_connections: number;
                                        websocket_frames: number;
                                    };
                                    excluded: never[];
                                    policy_filtered_sections: never[];
                                    status: string;
                                    truncated_sections: never[];
                                    unavailable_sections: never[];
                                };
                                console: {
                                    coverage_started_at: string;
                                    events: never[];
                                    prior_activity_available: boolean;
                                };
                                dom: { nodes: never[]; total_nodes: number };
                                frames: never[];
                                limitations: never[];
                                metadata: {
                                    agent_hints: never[];
                                    dom_urls: never[];
                                    excluded_dom_urls: number;
                                    headers_allowlisted: boolean;
                                    responses: never[];
                                };
                                network: {
                                    coverage_started_at: string;
                                    prior_activity_available: boolean;
                                    requests: never[];
                                    websocket_events: never[];
                                };
                                resources: never[];
                                schema_version: number;
                                scripts: { items: never[]; total: number };
                                storage: {
                                    cache_names: never[];
                                    indexed_db_names: never[];
                                    local_storage_keys: never[];
                                    origin: string;
                                    quota_bytes: null;
                                    session_storage_keys: never[];
                                    usage_bytes: null;
                                    values_redacted: boolean;
                                };
                                target: {
                                    attached: boolean;
                                    origin: string;
                                    target_id: string;
                                    title: string;
                                    type: string;
                                    url: string;
                                };
                                workers: never[];
                            };
                        };
                        max_changes: 2000;
                    };
                    title: "Compare two normalized captures";
                },
            ];
            inputSchema: ZodObject<
                {
                    after: ZodObject<
                        {
                            inspection: ZodObject<
                                {
                                    accessibility: ZodObject<
                                        {
                                            nodes: ZodArray<(...)>;
                                            text_capture: ZodObject<(...), (...)>;
                                            total_nodes: ZodNumber;
                                        },
                                        $strip,
                                    >;
                                    browser: ZodObject<
                                        {
                                            js_version: ZodString;
                                            product: ZodString;
                                            protocol_version: ZodString;
                                            revision: ZodString;
                                            user_agent: ZodString;
                                        },
                                        $strip,
                                    >;
                                    capture_window: ZodObject<
                                        {
                                            ended_at: ZodISODateTime;
                                            observation_ms: ZodNumber;
                                            started_at: ZodISODateTime;
                                        },
                                        $strip,
                                    >;
                                    completeness: ZodObject<
                                        {
                                            attach_limited_sections: ZodArray<(...)>;
                                            conditions: ZodArray<(...)>;
                                            dropped_events: ZodObject<(...), (...)>;
                                            excluded: ZodArray<(...)>;
                                            policy_filtered_sections: ZodArray<(...)>;
                                            status: ZodEnum<(...)>;
                                            truncated_sections: ZodArray<(...)>;
                                            unavailable_sections: ZodArray<(...)>;
                                        },
                                        $strip,
                                    >;
                                    console: ZodObject<
                                        {
                                            coverage_started_at: ZodISODateTime;
                                            events: ZodArray<(...)>;
                                            prior_activity_available: ZodLiteral<(...)>;
                                        },
                                        $strip,
                                    >;
                                    dom: ZodObject<
                                        { nodes: ZodArray<(...)>; total_nodes: ZodNumber },
                                        $strip,
                                    >;
                                    frames: ZodArray<
                                        ZodObject<
                                            { frame_id: ...; origin: ...; parent_frame_id: ...; url: ... },
                                            $strip,
                                        >,
                                    >;
                                    limitations: ZodArray<ZodString>;
                                    metadata: ZodObject<
                                        {
                                            agent_hints: ZodArray<(...)>;
                                            dom_urls: ZodArray<(...)>;
                                            excluded_dom_urls: ZodNumber;
                                            headers_allowlisted: ZodLiteral<(...)>;
                                            responses: ZodArray<(...)>;
                                        },
                                        $strip,
                                    >;
                                    network: ZodObject<
                                        {
                                            coverage_started_at: ZodISODateTime;
                                            prior_activity_available: ZodLiteral<(...)>;
                                            requests: ZodArray<(...)>;
                                            websocket_events: ZodArray<(...)>;
                                        },
                                        $strip,
                                    >;
                                    resources: ZodArray<
                                        ZodObject<
                                            {
                                                content_size: ...;
                                                mime_type: ...;
                                                origin: ...;
                                                resource_key: ...;
                                                type: ...;
                                                url: ...;
                                            },
                                            $strip,
                                        >,
                                    >;
                                    schema_version: ZodLiteral<2>;
                                    scripts: ZodObject<
                                        { items: ZodArray<(...)>; total: ZodNumber },
                                        $strip,
                                    >;
                                    storage: ZodObject<
                                        {
                                            cache_names: ZodArray<(...)>;
                                            indexed_db_names: ZodArray<(...)>;
                                            local_storage_keys: ZodArray<(...)>;
                                            origin: ZodString;
                                            quota_bytes: ZodNullable<(...)>;
                                            session_storage_keys: ZodArray<(...)>;
                                            usage_bytes: ZodNullable<(...)>;
                                            values_redacted: ZodLiteral<(...)>;
                                        },
                                        $strip,
                                    >;
                                    target: ZodObject<
                                        {
                                            attached: ZodBoolean;
                                            origin: ZodString;
                                            target_id: ZodString;
                                            title: ZodString;
                                            type: ZodString;
                                            url: ZodString;
                                        },
                                        $strip,
                                    >;
                                    workers: ZodArray<
                                        ZodObject<
                                            {
                                                attached: ...;
                                                opener_target_id: ...;
                                                origin: ...;
                                                parent_frame_id: ...;
                                                target_id: ...;
                                                type: ...;
                                                url: ...;
                                            },
                                            $strip,
                                        >,
                                    >;
                                },
                                $strip,
                            >;
                            webmcp: ZodDefault<
                                ZodNullable<
                                    ZodObject<
                                        {
                                            browser: ZodObject<(...), (...)>;
                                            completeness: ZodObject<(...), (...)>;
                                            limitations: ZodArray<(...)>;
                                            schema_version: ZodLiteral<(...)>;
                                            status: ZodEnum<(...)>;
                                            target: ZodObject<(...), (...)>;
                                            tools: ZodObject<(...), (...)>;
                                        },
                                        $strip,
                                    >,
                                >,
                            >;
                        },
                        $strip,
                    >;
                    before: ZodObject<
                        {
                            inspection: ZodObject<
                                {
                                    accessibility: ZodObject<
                                        {
                                            nodes: ZodArray<(...)>;
                                            text_capture: ZodObject<(...), (...)>;
                                            total_nodes: ZodNumber;
                                        },
                                        $strip,
                                    >;
                                    browser: ZodObject<
                                        {
                                            js_version: ZodString;
                                            product: ZodString;
                                            protocol_version: ZodString;
                                            revision: ZodString;
                                            user_agent: ZodString;
                                        },
                                        $strip,
                                    >;
                                    capture_window: ZodObject<
                                        {
                                            ended_at: ZodISODateTime;
                                            observation_ms: ZodNumber;
                                            started_at: ZodISODateTime;
                                        },
                                        $strip,
                                    >;
                                    completeness: ZodObject<
                                        {
                                            attach_limited_sections: ZodArray<(...)>;
                                            conditions: ZodArray<(...)>;
                                            dropped_events: ZodObject<(...), (...)>;
                                            excluded: ZodArray<(...)>;
                                            policy_filtered_sections: ZodArray<(...)>;
                                            status: ZodEnum<(...)>;
                                            truncated_sections: ZodArray<(...)>;
                                            unavailable_sections: ZodArray<(...)>;
                                        },
                                        $strip,
                                    >;
                                    console: ZodObject<
                                        {
                                            coverage_started_at: ZodISODateTime;
                                            events: ZodArray<(...)>;
                                            prior_activity_available: ZodLiteral<(...)>;
                                        },
                                        $strip,
                                    >;
                                    dom: ZodObject<
                                        { nodes: ZodArray<(...)>; total_nodes: ZodNumber },
                                        $strip,
                                    >;
                                    frames: ZodArray<
                                        ZodObject<
                                            { frame_id: ...; origin: ...; parent_frame_id: ...; url: ... },
                                            $strip,
                                        >,
                                    >;
                                    limitations: ZodArray<ZodString>;
                                    metadata: ZodObject<
                                        {
                                            agent_hints: ZodArray<(...)>;
                                            dom_urls: ZodArray<(...)>;
                                            excluded_dom_urls: ZodNumber;
                                            headers_allowlisted: ZodLiteral<(...)>;
                                            responses: ZodArray<(...)>;
                                        },
                                        $strip,
                                    >;
                                    network: ZodObject<
                                        {
                                            coverage_started_at: ZodISODateTime;
                                            prior_activity_available: ZodLiteral<(...)>;
                                            requests: ZodArray<(...)>;
                                            websocket_events: ZodArray<(...)>;
                                        },
                                        $strip,
                                    >;
                                    resources: ZodArray<
                                        ZodObject<
                                            {
                                                content_size: ...;
                                                mime_type: ...;
                                                origin: ...;
                                                resource_key: ...;
                                                type: ...;
                                                url: ...;
                                            },
                                            $strip,
                                        >,
                                    >;
                                    schema_version: ZodLiteral<2>;
                                    scripts: ZodObject<
                                        { items: ZodArray<(...)>; total: ZodNumber },
                                        $strip,
                                    >;
                                    storage: ZodObject<
                                        {
                                            cache_names: ZodArray<(...)>;
                                            indexed_db_names: ZodArray<(...)>;
                                            local_storage_keys: ZodArray<(...)>;
                                            origin: ZodString;
                                            quota_bytes: ZodNullable<(...)>;
                                            session_storage_keys: ZodArray<(...)>;
                                            usage_bytes: ZodNullable<(...)>;
                                            values_redacted: ZodLiteral<(...)>;
                                        },
                                        $strip,
                                    >;
                                    target: ZodObject<
                                        {
                                            attached: ZodBoolean;
                                            origin: ZodString;
                                            target_id: ZodString;
                                            title: ZodString;
                                            type: ZodString;
                                            url: ZodString;
                                        },
                                        $strip,
                                    >;
                                    workers: ZodArray<
                                        ZodObject<
                                            {
                                                attached: ...;
                                                opener_target_id: ...;
                                                origin: ...;
                                                parent_frame_id: ...;
                                                target_id: ...;
                                                type: ...;
                                                url: ...;
                                            },
                                            $strip,
                                        >,
                                    >;
                                },
                                $strip,
                            >;
                            webmcp: ZodDefault<
                                ZodNullable<
                                    ZodObject<
                                        {
                                            browser: ZodObject<(...), (...)>;
                                            completeness: ZodObject<(...), (...)>;
                                            limitations: ZodArray<(...)>;
                                            schema_version: ZodLiteral<(...)>;
                                            status: ZodEnum<(...)>;
                                            target: ZodObject<(...), (...)>;
                                            tools: ZodObject<(...), (...)>;
                                        },
                                        $strip,
                                    >,
                                >,
                            >;
                        },
                        $strip,
                    >;
                    max_changes: ZodDefault<ZodNumber>;
                },
                $strip,
            >;
            kind: "browser-provider";
            name: "compare_web_captures";
            outputSchema: ZodObject<
                {
                    evidence_id: ZodString;
                    evidence_uri: ZodString;
                    result: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>;
                },
                $strict,
            >;
            title: string;
        },
        {
            annotations: DerivedToolAnnotations;
            description: "Capture the current visible viewport of one approved page as a bounded, content-addressed PNG artifact. Screenshot capture requires separate explicit approval and never scrolls, navigates, or evaluates page JavaScript.";
            effects: ToolEffects;
            examples: readonly [
                {
                    input: {
                        allowed_origins: ["https://app.example.test"];
                        approved: true;
                        cdp_endpoint: "http://127.0.0.1:9222";
                        maximum_image_bytes: 4194304;
                        screenshot_approved: true;
                        target_id: "TARGET_ID_FROM_LIST_BROWSER_TARGETS";
                    };
                    title: "Capture an approved viewport";
                },
            ];
            inputSchema: ZodObject<
                {
                    allowed_origins: ZodPipe<
                        ZodArray<ZodPipe<ZodString, ZodTransform<string, string>>>,
                        ZodTransform<string[], string[]>,
                    >;
                    approved: ZodLiteral<true>;
                    cdp_endpoint: ZodPipe<ZodString, ZodTransform<string, string>>;
                    maximum_image_bytes: ZodDefault<ZodNumber>;
                    screenshot_approved: ZodLiteral<true>;
                    target_id: ZodString;
                },
                $strip,
            >;
            kind: "browser-provider";
            name: "capture_web_screenshot";
            outputSchema: ZodObject<
                {
                    evidence_id: ZodString;
                    evidence_uri: ZodString;
                    result: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>;
                },
                $strict,
            >;
            title: string;
        },
        {
            annotations: DerivedToolAnnotations;
            description: "Compare two self-verifying PNG screenshot artifacts with bounded local pixel metrics. Returns exact changed-pixel ratios and channel deltas without OCR or external services.";
            effects: ToolEffects;
            examples: readonly [
                {
                    input: {
                        after: {
                            bytes: number;
                            data_base64: string;
                            media_type: string;
                            sha256: string;
                            uri: string;
                        };
                        before: {
                            bytes: number;
                            data_base64: string;
                            media_type: string;
                            sha256: string;
                            uri: string;
                        };
                        channel_threshold: 0;
                        maximum_pixels: 16000000;
                    };
                    title: "Compare two screenshot artifacts";
                },
            ];
            inputSchema: ZodObject<
                {
                    after: ZodObject<
                        {
                            bytes: ZodNumber;
                            data_base64: ZodString;
                            media_type: ZodLiteral<"image/png">;
                            sha256: ZodString;
                            uri: ZodString;
                        },
                        $strip,
                    >;
                    before: ZodObject<
                        {
                            bytes: ZodNumber;
                            data_base64: ZodString;
                            media_type: ZodLiteral<"image/png">;
                            sha256: ZodString;
                            uri: ZodString;
                        },
                        $strip,
                    >;
                    channel_threshold: ZodDefault<ZodNumber>;
                    maximum_pixels: ZodDefault<ZodNumber>;
                },
                $strip,
            >;
            kind: "browser-provider";
            name: "compare_web_screenshots";
            outputSchema: ZodObject<
                {
                    evidence_id: ZodString;
                    evidence_uri: ZodString;
                    result: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>;
                },
                $strict,
            >;
            title: string;
        },
    ] = ...

    Origin-scoped, passive browser reverse-engineering contracts.