/** * What `map_project` hands back to the model. * * The crawl produces the full structure of every script in the project, * including the body of every function it declares. That is the right payload * for the interactive visualisation, and the wrong one for a conversation: * measured on a 24,880-file project it is 151,159 characters, roughly 37k * tokens — seven times the next largest tool answer here, and about a fifth of * a 200k context window spent on data the browser is already showing. * * So the model gets an index instead: one line per script, which is 7,744 * characters for the same project. `include_map` opts back into the whole * thing for the rare caller that genuinely wants it in context. */ export interface ProjectMapNode { path?: unknown; class_name?: unknown; extends?: unknown; line_count?: unknown; functions?: unknown; signals?: unknown; connections?: unknown; } export interface ProjectMap { nodes?: ProjectMapNode[]; edges?: unknown[]; total_scripts?: number; total_connections?: number; } export interface ScriptIndexEntry { path: unknown; class_name: string | null; extends: unknown; lines: number; functions: number; signals: number; connections: number; } /** One line per script: everything cheap, nothing that carries a function body. */ export declare function indexScripts(map: ProjectMap): ScriptIndexEntry[]; export declare function projectMapAnswer(map: ProjectMap, visualizationUrl: string, includeMap: boolean): Record; //# sourceMappingURL=project-map.d.ts.map