blob: e0e92864bda9d40cf1f18fd344a04a29883535d1 [file] [log] [blame]
import { html } from "lit";
import { customElement, property } from "lit/decorators.js";
import { ToolCall } from "../types";
import { SketchTailwindElement } from "./sketch-tailwind-element";
import "./sketch-tool-card-base";
@customElement("sketch-tool-card-read-image")
export class SketchToolCardReadImage extends SketchTailwindElement {
@property()
toolCall: ToolCall;
@property()
open: boolean;
render() {
// Parse the input to get path
let path = "";
try {
if (this.toolCall?.input) {
const input = JSON.parse(this.toolCall.input);
path = input.path || "";
}
} catch (e) {
console.error("Error parsing read image input:", e);
}
// Show just the filename in summary
const filename = path.split("/").pop() || path;
const summaryContent = html`<span class="font-mono text-gray-700 break-all">
🖼️ ${filename}
</span>`;
const inputContent = html`<div>
Read image:
<span
class="font-mono bg-black/[0.05] px-2 py-1 rounded inline-block break-all"
>${path}</span
>
</div>`;
const resultContent = this.toolCall?.result_message?.tool_result
? html`<pre
class="bg-gray-200 text-black p-2 rounded whitespace-pre-wrap break-words max-w-full w-full box-border"
>
${this.toolCall.result_message.tool_result}</pre
>`
: "";
return html`
<sketch-tool-card-base
.open=${this.open}
.toolCall=${this.toolCall}
.summaryContent=${summaryContent}
.inputContent=${inputContent}
.resultContent=${resultContent}
>
</sketch-tool-card-base>
`;
}
}
declare global {
interface HTMLElementTagNameMap {
"sketch-tool-card-read-image": SketchToolCardReadImage;
}
}