diff --git a/package.json b/package.json
index 786e675..352c78e 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "grok-dev",
- "version": "1.1.4-rc5",
+ "version": "1.1.4",
"description": "An open-source AI coding agent powered by Grok, built with Bun and OpenTUI.",
"type": "module",
"main": "dist/index.js",
diff --git a/src/ui/app.tsx b/src/ui/app.tsx
index e7faf89..5392cb1 100644
--- a/src/ui/app.tsx
+++ b/src/ui/app.tsx
@@ -3941,6 +3941,9 @@ function MessageView({
}
if ((entry.toolResult?.media?.length ?? 0) > 0) {
+ if (name === "generate_image" || name === "generate_video") {
+ return ;
+ }
return ;
}
@@ -4378,6 +4381,35 @@ function ToolTextOutputView({ t, label, content }: { t: Theme; label: string; co
);
}
+function openMediaFile(filePath: string): void {
+ try {
+ const cmd = process.platform === "darwin" ? "open" : "xdg-open";
+ require("child_process").execFile(cmd, [filePath]);
+ } catch {}
+}
+
+function MediaAutoOpenView({ t, label, toolResult }: { t: Theme; label: string; toolResult: ToolResult }) {
+ const media = toolResult.media ?? [];
+ const openedRef = useRef>(new Set());
+
+ useEffect(() => {
+ for (const asset of media) {
+ if (!openedRef.current.has(asset.path)) {
+ openedRef.current.add(asset.path);
+ openMediaFile(asset.path);
+ }
+ }
+ }, [media]);
+
+ return (
+
+
+ {label}
+
+
+ );
+}
+
function MediaToolResultView({ t, label, toolResult }: { t: Theme; label: string; toolResult: ToolResult }) {
const media = toolResult.media ?? [];