import { type Tool } from '@wrongstack/core/types'; import type { SymbolKind } from './codebase-index/schema.js'; export type ReadMode = 'content' | 'summary'; export interface ReadInput { path: string; offset?: number | undefined; limit?: number | undefined; mode?: ReadMode | undefined; /** * When true, include the codebase-index symbol list for this file * as a structured `symbols` field in the result. Overrides the * advanced-mode meta flag (`ctx.meta['tools.read.advancedMode']`) * per-call when explicitly set. When omitted, the meta flag governs. */ includeSymbols?: boolean | undefined; } /** * A single indexed code symbol returned alongside file content when * advanced mode is on or `includeSymbols` is set. The LLM must treat * this as a symbol listing — not as file content. */ export interface SymbolEntry { /** Symbol name (e.g. myFunction, MyClass). */ name: string; /** Kind of symbol (function, class, interface, const, etc.). */ kind: SymbolKind; /** 1-based declaration line in the file. */ line: number; /** 0-based column offset. */ col: number; /** Full signature or declaration text. */ signature: string; } export interface ReadOutput { text: string; total_lines: number; encoding: string; truncated: boolean; cached?: boolean | undefined; note?: string | undefined; /** * Codebase-index symbols for this file, included when advanced mode * is active or `includeSymbols` is set. One entry per indexed symbol, * sorted by line number. This is a symbol listing — NOT file content. */ symbols?: SymbolEntry[] | undefined; } export declare const readTool: Tool; //# sourceMappingURL=read.d.ts.map