- Removed Prettier configuration files (.prettierignore and .prettierrc) and migrated formatting to Biome. - Updated Biome configuration from version 2.3.11 to 2.3.12 and changed arrowParentheses rule from 'always' to 'asNeeded'. - Pinned @biomejs/biome dependency to exact version 2.3.12 in package.json and bun.lock. - Applied consistent arrow function formatting across 489 files by removing unnecessary parentheses around single parameters. - Removed blank lines after comment blocks and reorganized imports for consistency across the codebase.
63 lines
2.4 KiB
TypeScript
63 lines
2.4 KiB
TypeScript
/**
|
|
* TUI renderers for built-in tools.
|
|
*
|
|
* These provide rich visualization for tool calls and results in the TUI.
|
|
*/
|
|
import type { Component } from "@oh-my-pi/pi-tui";
|
|
import type { RenderResultOptions } from "../extensibility/custom-tools/types";
|
|
import { lspToolRenderer } from "../lsp/render";
|
|
import type { Theme } from "../modes/theme/theme";
|
|
import { editToolRenderer } from "../patch";
|
|
import { taskToolRenderer } from "../task/render";
|
|
import { webSearchToolRenderer } from "../web/search/render";
|
|
import { askToolRenderer } from "./ask";
|
|
import { bashToolRenderer } from "./bash";
|
|
import { calculatorToolRenderer } from "./calculator";
|
|
import { fetchToolRenderer } from "./fetch";
|
|
import { findToolRenderer } from "./find";
|
|
import { grepToolRenderer } from "./grep";
|
|
import { lsToolRenderer } from "./ls";
|
|
import { notebookToolRenderer } from "./notebook";
|
|
import { pythonToolRenderer } from "./python";
|
|
import { readToolRenderer } from "./read";
|
|
import { sshToolRenderer } from "./ssh";
|
|
import { todoWriteToolRenderer } from "./todo-write";
|
|
import { writeToolRenderer } from "./write";
|
|
|
|
export interface RenderCallOptions {
|
|
spinnerFrame?: number;
|
|
}
|
|
|
|
type ToolRenderer = {
|
|
renderCall: (args: unknown, theme: Theme, options?: RenderCallOptions) => Component;
|
|
renderResult: (
|
|
result: { content: Array<{ type: string; text?: string }>; details?: unknown; isError?: boolean },
|
|
options: RenderResultOptions & { renderContext?: Record<string, unknown> },
|
|
theme: Theme,
|
|
args?: unknown,
|
|
) => Component;
|
|
mergeCallAndResult?: boolean;
|
|
/** Render without background box, inline in the response flow */
|
|
inline?: boolean;
|
|
};
|
|
|
|
export const toolRenderers: Record<string, ToolRenderer> = {
|
|
ask: askToolRenderer as ToolRenderer,
|
|
bash: bashToolRenderer as ToolRenderer,
|
|
python: pythonToolRenderer as ToolRenderer,
|
|
calc: calculatorToolRenderer as ToolRenderer,
|
|
edit: editToolRenderer as ToolRenderer,
|
|
find: findToolRenderer as ToolRenderer,
|
|
grep: grepToolRenderer as ToolRenderer,
|
|
ls: lsToolRenderer as ToolRenderer,
|
|
lsp: lspToolRenderer as ToolRenderer,
|
|
notebook: notebookToolRenderer as ToolRenderer,
|
|
read: readToolRenderer as ToolRenderer,
|
|
ssh: sshToolRenderer as ToolRenderer,
|
|
task: taskToolRenderer as ToolRenderer,
|
|
todo_write: todoWriteToolRenderer as ToolRenderer,
|
|
fetch: fetchToolRenderer as ToolRenderer,
|
|
web_search: webSearchToolRenderer as ToolRenderer,
|
|
write: writeToolRenderer as ToolRenderer,
|
|
};
|