712beb3e59
Co-authored-by: Shoubhit Dash <shoubhit2005@gmail.com>
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
export * as SessionRunner from "./index"
|
|
|
|
import type { LLMError } from "@opencode-ai/llm"
|
|
import { Context, Effect, Schema } from "effect"
|
|
import { SessionSchema } from "../schema"
|
|
import type { ContextSnapshotDecodeError, MessageDecodeError } from "../error"
|
|
import { SessionRunnerModel } from "./model"
|
|
import type { SystemContext } from "../../system-context"
|
|
|
|
export class StepLimitExceededError extends Schema.TaggedErrorClass<StepLimitExceededError>()(
|
|
"SessionRunner.StepLimitExceededError",
|
|
{
|
|
sessionID: SessionSchema.ID,
|
|
limit: Schema.Int,
|
|
},
|
|
) {}
|
|
|
|
export type RunError =
|
|
| LLMError
|
|
| SessionRunnerModel.Error
|
|
| MessageDecodeError
|
|
| ContextSnapshotDecodeError
|
|
| StepLimitExceededError
|
|
| SystemContext.InitializationBlocked
|
|
|
|
/** Runs one local continuation from already-recorded Session history. */
|
|
export interface Interface {
|
|
/** Drains eligible durable work. Explicit runs perform one provider attempt even when no work is eligible. */
|
|
readonly run: (input: {
|
|
readonly sessionID: SessionSchema.ID
|
|
readonly force?: boolean
|
|
}) => Effect.Effect<void, RunError>
|
|
}
|
|
|
|
export class Service extends Context.Service<Service, Interface>()("@opencode/v2/SessionRunner") {}
|