Commit 107e410ea8bf
Changed files (1)
dots
pi
agent
extensions
search
dots/pi/agent/extensions/search/index.ts
@@ -12,6 +12,7 @@
*/
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
+import { Text } from "@mariozechner/pi-tui";
import { Type } from "@sinclair/typebox";
import {
SearXNGBackend,
@@ -100,6 +101,27 @@ export default function (pi: ExtensionAPI) {
parameters: Type.Object({
query: Type.String({ description: "The search query." }),
}),
+ renderCall(args, theme) {
+ let text = theme.fg("toolTitle", theme.bold("web_search "));
+ text += theme.fg("muted", `"${args.query}"`);
+ return new Text(text, 0, 0);
+ },
+
+ renderResult(result, { expanded }, theme) {
+ const backend = result.details?.backend || "unknown";
+ const count = result.details?.resultCount || 0;
+
+ if (result.isError) {
+ return new Text(theme.fg("error", result.content?.[0]?.text || "Search failed"), 0, 0);
+ }
+
+ let text = theme.fg("success", `✓ ${count} results`) + theme.fg("dim", ` via ${backend}`);
+ if (expanded && result.content?.[0]?.text) {
+ text += "\n" + theme.fg("muted", result.content[0].text);
+ }
+ return new Text(text, 0, 0);
+ },
+
async execute(_toolCallId, params, signal) {
try {
const { results, backend, errors } = await searchWithFallback(