import { z } from "zod"; import type { ToolSchema, ToolSpec, ToolType } from "../../types/index.js"; export declare const MAX_CONTEXT_LINES = 100; export declare const MAX_PAGE_NUMBER = 1000; export declare const MAX_CHAR_OFFSET = 100000000; export declare const MAX_CHAR_LENGTH = 50000; export declare const MAX_LINE_NUMBER = 1000000000; export declare const MAX_ORDER_HINT = 100000; export declare const MAX_LOCAL_DEPTH = 20; export declare const MAX_FIND_DEPTH = 100; export declare const MAX_LOCAL_LIMIT = 10000; export declare const MAX_LOCAL_ITEMS_PER_PAGE = 100; export declare const MAX_GITHUB_SEARCH_LIMIT = 100; export declare const DEFAULT_GITHUB_SEARCH_LIMIT = 30; export declare const MAX_GITHUB_STRUCTURE_ITEMS_PER_PAGE = 200; export declare const DEFAULT_GITHUB_STRUCTURE_ITEMS_PER_PAGE = 100; export declare const MAX_MATCH_CONTENT_LENGTH = 100000; export declare const DEFAULT_MATCH_CONTENT_LENGTH = 500; export declare const MAX_MATCH_COUNT = 100000; export declare const MAX_SEARCH_ITEMS_PER_PAGE = 1000; export declare const MAX_LSP_DEPTH = 20; export declare const MAX_LSP_ITEMS_PER_PAGE = 100; export declare const MAX_GITHUB_STRUCTURE_DEPTH = 20; /** * Authoring shape for a tool: the three human-written fields plus its schema. * `description` is NOT authored — `defineTool` composes it from the others. */ export interface ToolDefinition { readonly name: string; readonly type: ToolType; readonly shortDescription: string; readonly instructions: string; readonly schema: ToolSchema; } /** * Build a {@link ToolSpec}, deriving the client-facing `description` as * `instructions`. The tool name identifies the operation and * `shortDescription` remains separately available for catalogs, so repeating * either in every MCP description wastes context. Clients that only read * `description` still get the routing contract, while the * three parts stay individually addressable and can't drift out of sync. */ export declare function defineTool(def: ToolDefinition): ToolSpec; export declare function intRange(min: number, max: number): z.ZodNumber; export declare const StringArray: z.ZodOptional>; export declare function pageNumber(): z.ZodDefault; export declare function optionalPageNumber(): z.ZodOptional; export declare function contextLines(): z.ZodOptional; export declare function lineNumber(): z.ZodOptional; export declare function charOffset(): z.ZodOptional; export declare function charLength(): z.ZodOptional; export declare const metaFields: { goal: z.ZodOptional; reasoning: z.ZodOptional; debug: z.ZodDefault; }; export declare function buildObject(prose: ToolSchema, shape: S, prefix?: string): z.ZodObject; /** Shared refinement: fullContent / matchString / startLine+endLine are * mutually exclusive extraction modes; startLine and endLine must be supplied * together; and endLine must be >= startLine. Used by both the local and * GitHub file-content readers. */ export { validateFileContentExtractionMode } from "../../../nativeRules/interpreter.js";