import { api } from "../lib/api.js";
import { on } from "../lib/bus.js";
class DebugPanel extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: "open" });
this.shadowRoot.innerHTML = `
Detalle (click en cualquier burbuja)
—
`;
}
connectedCallback() {
const out = this.shadowRoot.getElementById("out");
const intentEl = this.shadowRoot.getElementById("intent");
const stateEl = this.shadowRoot.getElementById("state");
this._unsub = on("ui:selectedMessage", async ({ message }) => {
if (!message) {
out.textContent = "—";
intentEl.textContent = "—";
stateEl.textContent = "—";
return;
}
const base = { message };
if (message.run_id) {
try {
const run = await api.runById(message.run_id);
base.run = run;
const intent = run?.llm_output?.intent || "—";
const state = run?.llm_output?.next_state || "—";
intentEl.textContent = intent;
stateEl.textContent = state;
} catch (e) {
base.run_error = String(e?.message || e);
intentEl.textContent = "—";
stateEl.textContent = "—";
}
} else {
intentEl.textContent = "—";
stateEl.textContent = "—";
}
out.textContent = JSON.stringify(base, null, 2);
});
}
disconnectedCallback() {
this._unsub?.();
}
}
customElements.define("debug-panel", DebugPanel);