diff options
Diffstat (limited to 'packages/plugin/src/index.ts')
| -rw-r--r-- | packages/plugin/src/index.ts | 42 |
1 files changed, 8 insertions, 34 deletions
diff --git a/packages/plugin/src/index.ts b/packages/plugin/src/index.ts index f8b6d46f7..9c2647c60 100644 --- a/packages/plugin/src/index.ts +++ b/packages/plugin/src/index.ts @@ -10,7 +10,11 @@ import type { Auth, Config, } from "@opencode-ai/sdk" + import type { BunShell } from "./shell" +import { type ToolDefinition } from "./tool" + +export * from "./tool" export type PluginInput = { client: ReturnType<typeof createOpencodeClient> @@ -18,34 +22,16 @@ export type PluginInput = { directory: string worktree: string $: BunShell - Tool: { - define(id: string, init: any | (() => Promise<any>)): any - } - z: any // Zod instance for creating schemas } -export type Plugin = (input: PluginInput) => Promise<Hooks> -// Lightweight schema spec for HTTP-registered tools -export type HttpParamSpec = { - type: "string" | "number" | "boolean" | "array" - description?: string - optional?: boolean - items?: "string" | "number" | "boolean" -} -export type HttpToolRegistration = { - id: string - description: string - parameters: { - type: "object" - properties: Record<string, HttpParamSpec> - } - callbackUrl: string - headers?: Record<string, string> -} +export type Plugin = (input: PluginInput) => Promise<Hooks> export interface Hooks { event?: (input: { event: Event }) => Promise<void> config?: (input: Config) => Promise<void> + tool?: { + [key: string]: ToolDefinition + } auth?: { provider: string loader?: (auth: () => Promise<Auth>, provider: Provider) => Promise<Record<string, any>> @@ -121,16 +107,4 @@ export interface Hooks { metadata: any }, ) => Promise<void> - /** - * Allow plugins to register additional tools with the server. - * Use registerHTTP to add a tool that calls back to your plugin/service. - * Use register to add a native/local tool with direct function execution. - */ - "tool.register"?: ( - input: {}, - output: { - registerHTTP: (tool: HttpToolRegistration) => void | Promise<void> - register: (tool: any) => void | Promise<void> // Tool.Info type from opencode - }, - ) => Promise<void> } |
