summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-04-10 23:50:50 -0400
committerGitHub <[email protected]>2026-04-10 23:50:50 -0400
commitd84cc337428d3825caba14f97ec463c7781b5c77 (patch)
tree477b354a5b5179ece35c8b6e6e203825a3f8f3ff
parentc92c462148a48a9e9496735f7754a69e4a695b31 (diff)
downloadopencode-d84cc337428d3825caba14f97ec463c7781b5c77.tar.gz
opencode-d84cc337428d3825caba14f97ec463c7781b5c77.zip
refactor(plugin): return Effect from ToolContext.ask (#21986)
-rw-r--r--bun.lock1
-rw-r--r--packages/opencode/src/tool/registry.ts3
-rw-r--r--packages/plugin/package.json1
-rw-r--r--packages/plugin/src/tool.ts3
4 files changed, 5 insertions, 3 deletions
diff --git a/bun.lock b/bun.lock
index 3d6bf4f0f..cdffa8ea4 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 0cd6d312f..afb19a468 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 ced1523da..ba4735371 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 23aa512d9..b568d0371 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<void>
+ ask(input: AskInput): Effect.Effect<void>
}
type AskInput = {