mirror of
https://github.com/anomalyco/opencode.git
synced 2026-04-28 12:39:43 +00:00
refactor(task): simplify effect wrappers
This commit is contained in:
parent
3f4b9d9ef4
commit
601fe03a3a
2 changed files with 11 additions and 14 deletions
|
|
@ -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),
|
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue