blob: 23df1b318a8299a47886310085fbadc12b0c3b52 [file] [log] [blame]
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators.js";
import { ToolCall } from "../types";
type DodoOutput = {
config: string;
};
@customElement("sketch-tool-card-dodo-get-project-config")
export class SketchToolCardDodoGetProjectConfig extends LitElement {
@property()
toolCall: ToolCall;
@property()
open: boolean;
static styles = css`
.summary-text {
font-family: monospace;
color: #444;
word-break: break-all;
}
.selector-input {
font-family: monospace;
background: rgba(0, 0, 0, 0.05);
padding: 4px 8px;
border-radius: 4px;
display: inline-block;
word-break: break-all;
}
`;
render() {
// Parse the input to get selector
console.log(this.toolCall);
let apiBaseAddress = "";
let projectId = "";
try {
if (this.toolCall?.input) {
const inp = JSON.parse(this.toolCall.input);
apiBaseAddress = inp.apiBaseAddress || "";
projectId = inp.projectId || "";
}
} catch (e) {
console.error("Error parsing dodo input:", e);
}
let output: DodoOutput | null = null;
try {
if (this.toolCall?.result_message?.tool_result) {
output = JSON.parse(this.toolCall.result_message.tool_result);
}
} catch (e) {
console.error("Error parsing dodo output:", e);
}
if (output == null) {
throw new Error("No output from dodo tool call");
}
return html`
<sketch-tool-card .open=${this.open} .toolCall=${this.toolCall}>
<span slot="summary" class="summary-text"> 🖱️ ${projectId} </span>
<div slot="input">
<div>
API Base Address: <span class="selector-input">${apiBaseAddress}</span>
</div>
<div>
Project ID: <span class="selector-input">${projectId}</span>
</div>
</div>
<div slot="result">
<pre>${output.config}</pre>
</div>
</sketch-tool-card>
`;
}
}
declare global {
interface HTMLElementTagNameMap {
"sketch-tool-card-dodo-get-project-config": SketchToolCardDodoGetProjectConfig;
}
}