import { useEffect, useMemo } from "react"; import { AgentWidget } from "./widget.js"; import type { Modules } from "./gen/client.js"; import { ThreadView } from "./shared.js"; import { HttpThreadController } from "./http.js"; import type { Thread as ThreadData } from "./protocol.js"; import "./thread.css"; export const Thread: Modules["Thread"] = ({ subject, input }) => { const controller = useMemo( () => new HttpThreadController( subject.object, JSON.parse( JSON.stringify(input.body.root, (_key, value) => (typeof value === "bigint" ? value.toString() : value)), ) as ThreadData, ), [subject.object], ); useEffect(() => () => controller.close(), [controller]); return ( } /> ); };