"use client";
import { AssistantRuntimeProvider, Tools, useAui } from "@assistant-ui/react";
import {
SidebarInset,
SidebarProvider,
SidebarTrigger,
} from "@/components/ui/radix/sidebar";
import { Separator } from "@/components/ui/radix/separator";
import { ThreadListSidebar } from "@/components/assistant-ui/threadlist-sidebar";
import {
useOpenCodeRuntime,
useOpenCodeSession,
} from "@assistant-ui/react-opencode";
import {
Thread,
type ThreadComponents,
} from "@/components/assistant-ui/thread";
import { OpenCodeDataPart } from "@/components/opencode-data-part";
import { FallbackTool } from "@/components/tools/opencode-tools";
import { ReasoningGroup } from "@/components/tools/reasoning-ghost";
import { ToolGroup } from "@/components/tools/tool-group";
import toolkit from "@/components/tools/toolkit";
import { useEffect } from "react";
const THREAD_COMPONENTS: ThreadComponents = {
ToolFallback: FallbackTool,
ToolGroup,
ReasoningGroup,
};
export default function Home() {
const runtime = useOpenCodeRuntime({
baseUrl:
process.env.NEXT_PUBLIC_OPENCODE_BASE_URL ?? "http://localhost:4096",
});
const aui = useAui({
tools: Tools({ toolkit }),
});
useEffect(
() => aui.dataRenderers().setFallbackDataUI(OpenCodeDataPart),
[aui],
);
return (