mirror of
https://github.com/harivansh-afk/clanker-agent.git
synced 2026-04-15 03:00:44 +00:00
- Copy all pi-mono source into apps/companion-os/ - Update Dockerfile to COPY pre-built binary instead of downloading from GitHub Releases - Update deploy-staging.yml to build pi from source (bun compile) before Docker build - Add apps/companion-os/** to path triggers - No more cross-repo dispatch needed Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
46 lines
1.5 KiB
TypeScript
46 lines
1.5 KiB
TypeScript
import type { ToolResultMessage } from "@mariozechner/pi-ai";
|
|
import "./javascript-repl.js"; // Auto-registers the renderer
|
|
import "./extract-document.js"; // Auto-registers the renderer
|
|
import { getToolRenderer, registerToolRenderer } from "./renderer-registry.js";
|
|
import { BashRenderer } from "./renderers/BashRenderer.js";
|
|
import { DefaultRenderer } from "./renderers/DefaultRenderer.js";
|
|
import type { ToolRenderResult } from "./types.js";
|
|
|
|
// Register all built-in tool renderers
|
|
registerToolRenderer("bash", new BashRenderer());
|
|
|
|
const defaultRenderer = new DefaultRenderer();
|
|
|
|
// Global flag to force default JSON rendering for all tools
|
|
let showJsonMode = false;
|
|
|
|
/**
|
|
* Enable or disable show JSON mode
|
|
* When enabled, all tool renderers will use the default JSON renderer
|
|
*/
|
|
export function setShowJsonMode(enabled: boolean): void {
|
|
showJsonMode = enabled;
|
|
}
|
|
|
|
/**
|
|
* Render tool - unified function that handles params, result, and streaming state
|
|
*/
|
|
export function renderTool(
|
|
toolName: string,
|
|
params: any | undefined,
|
|
result: ToolResultMessage | undefined,
|
|
isStreaming?: boolean,
|
|
): ToolRenderResult {
|
|
// If showJsonMode is enabled, always use the default renderer
|
|
if (showJsonMode) {
|
|
return defaultRenderer.render(params, result, isStreaming);
|
|
}
|
|
|
|
const renderer = getToolRenderer(toolName);
|
|
if (renderer) {
|
|
return renderer.render(params, result, isStreaming);
|
|
}
|
|
return defaultRenderer.render(params, result, isStreaming);
|
|
}
|
|
|
|
export { getToolRenderer, registerToolRenderer };
|