// Generated by @opencode-ai/httpapi-codegen. Do not edit. import { Effect, Stream, Schema } from "effect" import { Sse } from "effect/unstable/encoding" import { HttpClientError } from "effect/unstable/http" import { HttpApi, HttpApiClient } from "effect/unstable/httpapi" import { SessionGroup } from "../contract" import { ClientError } from "./client-error" const Api = HttpApi.make("generated").add(SessionGroup) type RawClient = HttpApiClient.ForApi const mapClientError = (error: E) => HttpClientError.isHttpClientError(error) || Schema.isSchemaError(error) || Sse.Retry.is(error) ? new ClientError({ cause: error }) : error type Endpoint0_0Request = Parameters[0] type Endpoint0_0Input = { readonly workspace?: Endpoint0_0Request["query"]["workspace"] readonly limit?: Endpoint0_0Request["query"]["limit"] readonly order?: Endpoint0_0Request["query"]["order"] readonly search?: Endpoint0_0Request["query"]["search"] readonly directory?: Endpoint0_0Request["query"]["directory"] readonly project?: Endpoint0_0Request["query"]["project"] readonly subpath?: Endpoint0_0Request["query"]["subpath"] readonly cursor?: Endpoint0_0Request["query"]["cursor"] } const Endpoint0_0 = (raw: RawClient["server.session"]) => (input?: Endpoint0_0Input) => raw["session.list"]({ query: { workspace: input?.workspace, limit: input?.limit, order: input?.order, search: input?.search, directory: input?.directory, project: input?.project, subpath: input?.subpath, cursor: input?.cursor, }, }).pipe(Effect.mapError(mapClientError)) type Endpoint0_1Request = Parameters[0] type Endpoint0_1Input = { readonly id?: Endpoint0_1Request["payload"]["id"] readonly agent?: Endpoint0_1Request["payload"]["agent"] readonly model?: Endpoint0_1Request["payload"]["model"] readonly location?: Endpoint0_1Request["payload"]["location"] } const Endpoint0_1 = (raw: RawClient["server.session"]) => (input?: Endpoint0_1Input) => raw["session.create"]({ payload: { id: input?.id, agent: input?.agent, model: input?.model, location: input?.location }, }).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) const Endpoint0_2 = (raw: RawClient["server.session"]) => () => raw["session.active"]({}).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) type Endpoint0_3Request = Parameters[0] type Endpoint0_3Input = { readonly sessionID: Endpoint0_3Request["params"]["sessionID"] } const Endpoint0_3 = (raw: RawClient["server.session"]) => (input: Endpoint0_3Input) => raw["session.get"]({ params: { sessionID: input.sessionID } }).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) type Endpoint0_4Request = Parameters[0] type Endpoint0_4Input = { readonly sessionID: Endpoint0_4Request["params"]["sessionID"] readonly agent: Endpoint0_4Request["payload"]["agent"] } const Endpoint0_4 = (raw: RawClient["server.session"]) => (input: Endpoint0_4Input) => raw["session.switchAgent"]({ params: { sessionID: input.sessionID }, payload: { agent: input.agent } }).pipe( Effect.mapError(mapClientError), ) type Endpoint0_5Request = Parameters[0] type Endpoint0_5Input = { readonly sessionID: Endpoint0_5Request["params"]["sessionID"] readonly model: Endpoint0_5Request["payload"]["model"] } const Endpoint0_5 = (raw: RawClient["server.session"]) => (input: Endpoint0_5Input) => raw["session.switchModel"]({ params: { sessionID: input.sessionID }, payload: { model: input.model } }).pipe( Effect.mapError(mapClientError), ) type Endpoint0_6Request = Parameters[0] type Endpoint0_6Input = { readonly sessionID: Endpoint0_6Request["params"]["sessionID"] readonly id?: Endpoint0_6Request["payload"]["id"] readonly prompt: Endpoint0_6Request["payload"]["prompt"] readonly delivery?: Endpoint0_6Request["payload"]["delivery"] readonly resume?: Endpoint0_6Request["payload"]["resume"] } const Endpoint0_6 = (raw: RawClient["server.session"]) => (input: Endpoint0_6Input) => raw["session.prompt"]({ params: { sessionID: input.sessionID }, payload: { id: input.id, prompt: input.prompt, delivery: input.delivery, resume: input.resume }, }).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) type Endpoint0_7Request = Parameters[0] type Endpoint0_7Input = { readonly sessionID: Endpoint0_7Request["params"]["sessionID"] } const Endpoint0_7 = (raw: RawClient["server.session"]) => (input: Endpoint0_7Input) => raw["session.compact"]({ params: { sessionID: input.sessionID } }).pipe(Effect.mapError(mapClientError)) type Endpoint0_8Request = Parameters[0] type Endpoint0_8Input = { readonly sessionID: Endpoint0_8Request["params"]["sessionID"] } const Endpoint0_8 = (raw: RawClient["server.session"]) => (input: Endpoint0_8Input) => raw["session.wait"]({ params: { sessionID: input.sessionID } }).pipe(Effect.mapError(mapClientError)) type Endpoint0_9Request = Parameters[0] type Endpoint0_9Input = { readonly sessionID: Endpoint0_9Request["params"]["sessionID"] readonly messageID: Endpoint0_9Request["payload"]["messageID"] readonly files?: Endpoint0_9Request["payload"]["files"] } const Endpoint0_9 = (raw: RawClient["server.session"]) => (input: Endpoint0_9Input) => raw["session.revert.stage"]({ params: { sessionID: input.sessionID }, payload: { messageID: input.messageID, files: input.files }, }).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) type Endpoint0_10Request = Parameters[0] type Endpoint0_10Input = { readonly sessionID: Endpoint0_10Request["params"]["sessionID"] } const Endpoint0_10 = (raw: RawClient["server.session"]) => (input: Endpoint0_10Input) => raw["session.revert.clear"]({ params: { sessionID: input.sessionID } }).pipe(Effect.mapError(mapClientError)) type Endpoint0_11Request = Parameters[0] type Endpoint0_11Input = { readonly sessionID: Endpoint0_11Request["params"]["sessionID"] } const Endpoint0_11 = (raw: RawClient["server.session"]) => (input: Endpoint0_11Input) => raw["session.revert.commit"]({ params: { sessionID: input.sessionID } }).pipe(Effect.mapError(mapClientError)) type Endpoint0_12Request = Parameters[0] type Endpoint0_12Input = { readonly sessionID: Endpoint0_12Request["params"]["sessionID"] } const Endpoint0_12 = (raw: RawClient["server.session"]) => (input: Endpoint0_12Input) => raw["session.context"]({ params: { sessionID: input.sessionID } }).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) type Endpoint0_13Request = Parameters[0] type Endpoint0_13Input = { readonly sessionID: Endpoint0_13Request["params"]["sessionID"] readonly after?: Endpoint0_13Request["query"]["after"] } const Endpoint0_13 = (raw: RawClient["server.session"]) => (input: Endpoint0_13Input) => Stream.unwrap( raw["session.events"]({ params: { sessionID: input.sessionID }, query: { after: input.after } }).pipe( Effect.mapError(mapClientError), Effect.map((stream) => stream.pipe(Stream.mapError(mapClientError))), ), ) type Endpoint0_14Request = Parameters[0] type Endpoint0_14Input = { readonly sessionID: Endpoint0_14Request["params"]["sessionID"] } const Endpoint0_14 = (raw: RawClient["server.session"]) => (input: Endpoint0_14Input) => raw["session.interrupt"]({ params: { sessionID: input.sessionID } }).pipe(Effect.mapError(mapClientError)) type Endpoint0_15Request = Parameters[0] type Endpoint0_15Input = { readonly sessionID: Endpoint0_15Request["params"]["sessionID"] readonly messageID: Endpoint0_15Request["params"]["messageID"] } const Endpoint0_15 = (raw: RawClient["server.session"]) => (input: Endpoint0_15Input) => raw["session.message"]({ params: { sessionID: input.sessionID, messageID: input.messageID } }).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) const adaptGroup0 = (raw: RawClient["server.session"]) => ({ list: Endpoint0_0(raw), create: Endpoint0_1(raw), active: Endpoint0_2(raw), get: Endpoint0_3(raw), switchAgent: Endpoint0_4(raw), switchModel: Endpoint0_5(raw), prompt: Endpoint0_6(raw), compact: Endpoint0_7(raw), wait: Endpoint0_8(raw), stage: Endpoint0_9(raw), clear: Endpoint0_10(raw), commit: Endpoint0_11(raw), context: Endpoint0_12(raw), events: Endpoint0_13(raw), interrupt: Endpoint0_14(raw), message: Endpoint0_15(raw), }) const adaptClient = (raw: RawClient) => ({ sessions: adaptGroup0(raw["server.session"]) }) export const make = (options?: { readonly baseUrl?: URL | string }) => HttpApiClient.make(Api, options).pipe(Effect.map(adaptClient))