/** * ollama_summarize_deep — digest of long input with optional focus. * Tier: Deep. * * Accepts EITHER `text` (caller already has the content) OR `source_paths[]` * (server reads + chunks locally, preserving Claude context). This matches * the source-based shape of ollama_research and restores the context-saving * thesis — the caller does NOT have to pre-read the file to summarize it. * * Exactly one of {text, source_paths} must be provided. */ import { z } from "zod"; import type { Envelope } from "../envelope.js"; import type { SummarizeResult } from "./summarizeFast.js"; import type { RunContext } from "../runContext.js"; /** * Base object shape — what McpServer.tool() registers for Claude. * Mutual-exclusion between `text` and `source_paths` is enforced in the * handler, because McpServer.tool() needs a ZodRawShape (not ZodEffects) * for its input-schema parameter. */ export declare const summarizeDeepSchema: z.ZodObject<{ text: z.ZodOptional; source_path: z.ZodOptional; source_paths: z.ZodOptional>>; focus: z.ZodOptional; frame: z.ZodOptional; max_words: z.ZodOptional; per_file_max_chars: z.ZodOptional; model: z.ZodOptional; }, z.core.$strip>; export type SummarizeDeepInput = z.infer; /** Result of summarize_deep — extended with coverage when source_paths was used. */ export interface SummarizeDeepResult extends SummarizeResult { covered_sources?: string[]; omitted_sources?: string[]; coverage_notes?: string[]; /** Present only when `frame` was supplied. Null when the model output couldn't be parsed for the frame decision. */ frame_addressed?: boolean | null; /** Present only when `frame` was supplied. Each entry typically names a source and briefly notes what it's actually about. */ unaddressed_sources?: string[]; } export declare function handleSummarizeDeep(input: SummarizeDeepInput, ctx: RunContext): Promise>; //# sourceMappingURL=summarizeDeep.d.ts.map