diff --git a/bun.lock b/bun.lock index 3d6bf4f0f2..cdffa8ea4b 100644 --- a/bun.lock +++ b/bun.lock @@ -450,6 +450,7 @@ "version": "1.4.3", "dependencies": { "@opencode-ai/sdk": "workspace:*", + "effect": "catalog:", "zod": "catalog:", }, "devDependencies": { diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index 0cd6d312f9..afb19a468c 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -30,7 +30,6 @@ import { Glob } from "../util/glob" import path from "path" import { pathToFileURL } from "url" import { Effect, Layer, Context } from "effect" -import { EffectLogger } from "@/effect/logger" import { FetchHttpClient, HttpClient } from "effect/unstable/http" import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" @@ -137,7 +136,7 @@ export namespace ToolRegistry { Effect.gen(function* () { const pluginCtx: PluginToolContext = { ...toolCtx, - ask: (req) => Effect.runPromise(toolCtx.ask(req).pipe(Effect.provide(EffectLogger.layer))), + ask: (req) => toolCtx.ask(req), directory: ctx.directory, worktree: ctx.worktree, } diff --git a/packages/plugin/package.json b/packages/plugin/package.json index ced1523dac..ba47353716 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -18,6 +18,7 @@ ], "dependencies": { "@opencode-ai/sdk": "workspace:*", + "effect": "catalog:", "zod": "catalog:" }, "peerDependencies": { diff --git a/packages/plugin/src/tool.ts b/packages/plugin/src/tool.ts index 23aa512d9a..b568d03713 100644 --- a/packages/plugin/src/tool.ts +++ b/packages/plugin/src/tool.ts @@ -1,4 +1,5 @@ import { z } from "zod" +import { Effect } from "effect" export type ToolContext = { sessionID: string @@ -16,7 +17,7 @@ export type ToolContext = { worktree: string abort: AbortSignal metadata(input: { title?: string; metadata?: { [key: string]: any } }): void - ask(input: AskInput): Promise + ask(input: AskInput): Effect.Effect } type AskInput = {