refactor(plugin): return Effect from ToolContext.ask (#21986)
This commit is contained in:
@@ -450,6 +450,7 @@
|
|||||||
"version": "1.4.3",
|
"version": "1.4.3",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@opencode-ai/sdk": "workspace:*",
|
"@opencode-ai/sdk": "workspace:*",
|
||||||
|
"effect": "catalog:",
|
||||||
"zod": "catalog:",
|
"zod": "catalog:",
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ import { Glob } from "../util/glob"
|
|||||||
import path from "path"
|
import path from "path"
|
||||||
import { pathToFileURL } from "url"
|
import { pathToFileURL } from "url"
|
||||||
import { Effect, Layer, Context } from "effect"
|
import { Effect, Layer, Context } from "effect"
|
||||||
import { EffectLogger } from "@/effect/logger"
|
|
||||||
import { FetchHttpClient, HttpClient } from "effect/unstable/http"
|
import { FetchHttpClient, HttpClient } from "effect/unstable/http"
|
||||||
import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner"
|
import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner"
|
||||||
import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner"
|
import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner"
|
||||||
@@ -137,7 +136,7 @@ export namespace ToolRegistry {
|
|||||||
Effect.gen(function* () {
|
Effect.gen(function* () {
|
||||||
const pluginCtx: PluginToolContext = {
|
const pluginCtx: PluginToolContext = {
|
||||||
...toolCtx,
|
...toolCtx,
|
||||||
ask: (req) => Effect.runPromise(toolCtx.ask(req).pipe(Effect.provide(EffectLogger.layer))),
|
ask: (req) => toolCtx.ask(req),
|
||||||
directory: ctx.directory,
|
directory: ctx.directory,
|
||||||
worktree: ctx.worktree,
|
worktree: ctx.worktree,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@opencode-ai/sdk": "workspace:*",
|
"@opencode-ai/sdk": "workspace:*",
|
||||||
|
"effect": "catalog:",
|
||||||
"zod": "catalog:"
|
"zod": "catalog:"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { z } from "zod"
|
import { z } from "zod"
|
||||||
|
import { Effect } from "effect"
|
||||||
|
|
||||||
export type ToolContext = {
|
export type ToolContext = {
|
||||||
sessionID: string
|
sessionID: string
|
||||||
@@ -16,7 +17,7 @@ export type ToolContext = {
|
|||||||
worktree: string
|
worktree: string
|
||||||
abort: AbortSignal
|
abort: AbortSignal
|
||||||
metadata(input: { title?: string; metadata?: { [key: string]: any } }): void
|
metadata(input: { title?: string; metadata?: { [key: string]: any } }): void
|
||||||
ask(input: AskInput): Promise<void>
|
ask(input: AskInput): Effect.Effect<void>
|
||||||
}
|
}
|
||||||
|
|
||||||
type AskInput = {
|
type AskInput = {
|
||||||
|
|||||||
Reference in New Issue
Block a user