瀏覽代碼

Merge branch 'dev' into kit/effect-sync-event

Kit Langton 1 周之前
父節點
當前提交
e2c41dce99
共有 4 個文件被更改,包括 5 次插入3 次删除
  1. 1 0
      bun.lock
  2. 1 2
      packages/opencode/src/tool/registry.ts
  3. 1 0
      packages/plugin/package.json
  4. 2 1
      packages/plugin/src/tool.ts

+ 1 - 0
bun.lock

@@ -450,6 +450,7 @@
       "version": "1.4.3",
       "dependencies": {
         "@opencode-ai/sdk": "workspace:*",
+        "effect": "catalog:",
         "zod": "catalog:",
       },
       "devDependencies": {

+ 1 - 2
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,
                   }

+ 1 - 0
packages/plugin/package.json

@@ -18,6 +18,7 @@
   ],
   "dependencies": {
     "@opencode-ai/sdk": "workspace:*",
+    "effect": "catalog:",
     "zod": "catalog:"
   },
   "peerDependencies": {

+ 2 - 1
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 = {