refactor(task): simplify effect wrappers

This commit is contained in:
Shoubhit Dash 2026-04-24 20:30:53 +05:30
parent 3f4b9d9ef4
commit 601fe03a3a
2 changed files with 11 additions and 14 deletions

View file

@ -81,10 +81,9 @@ export const TaskTool = Tool.define(
const sessions = yield* Session.Service const sessions = yield* Session.Service
const status = yield* SessionStatus.Service const status = yield* SessionStatus.Service
const run = Effect.fn("TaskTool.execute")(function* ( const run = Effect.fn(
params: Schema.Schema.Type<typeof Parameters>, "TaskTool.execute",
ctx: Tool.Context, )(function* (params: Schema.Schema.Type<typeof Parameters>, ctx: Tool.Context) {
) {
const cfg = yield* config.get() const cfg = yield* config.get()
if (!ctx.extra?.bypassAgentCheck) { if (!ctx.extra?.bypassAgentCheck) {
@ -274,13 +273,12 @@ export const TaskTool = Tool.define(
ctx.abort.removeEventListener("abort", cancel) ctx.abort.removeEventListener("abort", cancel)
}), }),
) )
}) }, Effect.orDie)
return { return {
description: DESCRIPTION, description: DESCRIPTION,
parameters: Parameters, parameters: Parameters,
execute: (params: Schema.Schema.Type<typeof Parameters>, ctx: Tool.Context) => execute: run,
run(params, ctx).pipe(Effect.orDie),
} }
}), }),
) )

View file

@ -110,14 +110,13 @@ export const TaskStatusTool = Tool.define(
if (result.state !== "running") return { result, timedOut: false } if (result.state !== "running") return { result, timedOut: false }
if (timeout <= 0) return { result, timedOut: true } if (timeout <= 0) return { result, timedOut: true }
const sleep = Math.min(POLL_MS, timeout) const sleep = Math.min(POLL_MS, timeout)
yield* Effect.sleep(`${sleep} millis`) yield* Effect.sleep(sleep)
return yield* waitForTerminal(taskID, timeout - sleep) return yield* waitForTerminal(taskID, timeout - sleep)
}) })
const run = Effect.fn("TaskStatusTool.execute")(function* ( const run = Effect.fn(
params: Schema.Schema.Type<typeof Parameters>, "TaskStatusTool.execute",
_ctx: Tool.Context, )(function* (params: Schema.Schema.Type<typeof Parameters>, _ctx: Tool.Context) {
) {
yield* sessions.get(params.task_id) yield* sessions.get(params.task_id)
const waited = const waited =
@ -142,12 +141,12 @@ export const TaskStatusTool = Tool.define(
text: outputText, text: outputText,
}), }),
} }
}) }, Effect.orDie)
return { return {
description: DESCRIPTION, description: DESCRIPTION,
parameters: Parameters, parameters: Parameters,
execute: (params: Schema.Schema.Type<typeof Parameters>, ctx: Tool.Context) => run(params, ctx).pipe(Effect.orDie), execute: run,
} }
}), }),
) )