refactor(tool): Tool.Def.execute returns Effect, rename defineEffect → define (#21961)

This commit is contained in:
Kit Langton
2026-04-10 22:36:02 -04:00
committed by GitHub
parent f99812443c
commit c5fb6281f0
39 changed files with 674 additions and 721 deletions

View File

@@ -16,7 +16,7 @@ const ctx = {
abort: AbortSignal.any([]),
messages: [],
metadata: () => {},
ask: async () => {},
ask: () => Effect.void,
}
async function withFetch(fetch: (req: Request) => Response | Promise<Response>, fn: (url: URL) => Promise<void>) {
@@ -42,10 +42,10 @@ describe("tool.webfetch", () => {
directory: projectRoot,
fn: async () => {
const webfetch = await initTool()
const result = await webfetch.execute(
const result = await Effect.runPromise(webfetch.execute(
{ url: new URL("/image.png", url).toString(), format: "markdown" },
ctx,
)
))
expect(result.output).toBe("Image fetched successfully")
expect(result.attachments).toBeDefined()
expect(result.attachments?.length).toBe(1)
@@ -74,7 +74,7 @@ describe("tool.webfetch", () => {
directory: projectRoot,
fn: async () => {
const webfetch = await initTool()
const result = await webfetch.execute({ url: new URL("/image.svg", url).toString(), format: "html" }, ctx)
const result = await Effect.runPromise(webfetch.execute({ url: new URL("/image.svg", url).toString(), format: "html" }, ctx))
expect(result.output).toContain("<svg")
expect(result.attachments).toBeUndefined()
},
@@ -95,7 +95,7 @@ describe("tool.webfetch", () => {
directory: projectRoot,
fn: async () => {
const webfetch = await initTool()
const result = await webfetch.execute({ url: new URL("/file.txt", url).toString(), format: "text" }, ctx)
const result = await Effect.runPromise(webfetch.execute({ url: new URL("/file.txt", url).toString(), format: "text" }, ctx))
expect(result.output).toBe("hello from webfetch")
expect(result.attachments).toBeUndefined()
},