import type { Event } from "@opencode-ai/sdk/v2" import { useProject } from "./project" import { useSDK } from "./sdk" export function useEvent() { const project = useProject() const sdk = useSDK() function subscribe(handler: (event: Event) => void) { return sdk.event.on("event", (event) => { // Special hack for truly global events if (event.directory === "global") { handler(event.payload) } if (project.workspace.current()) { if (event.workspace === project.workspace.current()) { handler(event.payload) } return } if (event.directory === project.instance.directory()) { handler(event.payload) } }) } function on(type: T, handler: (event: Extract) => void) { return subscribe((event) => { if (event.type !== type) return handler(event as Extract) }) } return { subscribe, on, } }