// Generated by @opencode-ai/httpapi-codegen. Do not edit.
import type { Effect, Stream } from "effect"
import type { HttpApiClient } from "effect/unstable/httpapi"
import type { ClientApi } from "../../contract"

type RawClient = HttpApiClient.ForApi<typeof ClientApi>
type EffectValue<A> = A extends Effect.Effect<infer Success, any, any> ? Success : never
type StreamValue<A> = A extends Stream.Stream<infer Success, any, any> ? Success : never

export type Endpoint0_0Output = EffectValue<ReturnType<RawClient["server.health"]["health.get"]>>
export type HealthGetOperation<E = never> = () => Effect.Effect<Endpoint0_0Output, E>

type Endpoint0_1Request = Parameters<RawClient["server.health"]["health.stop"]>[0]
export type Endpoint0_1Input = { readonly instanceID: Endpoint0_1Request["payload"]["instanceID"] }
export type Endpoint0_1Output = EffectValue<ReturnType<RawClient["server.health"]["health.stop"]>>
export type HealthStopOperation<E = never> = (input: Endpoint0_1Input) => Effect.Effect<Endpoint0_1Output, E>

export interface HealthApi<E = never> {
  readonly get: HealthGetOperation<E>
  readonly stop: HealthStopOperation<E>
}

export type Endpoint1_0Output = EffectValue<ReturnType<RawClient["server.server"]["server.get"]>>
export type ServerGetOperation<E = never> = () => Effect.Effect<Endpoint1_0Output, E>

export interface ServerApi<E = never> {
  readonly get: ServerGetOperation<E>
}

type Endpoint2_0Request = Parameters<RawClient["server.location"]["location.get"]>[0]
export type Endpoint2_0Input = { readonly location?: Endpoint2_0Request["query"]["location"] }
export type Endpoint2_0Output = EffectValue<ReturnType<RawClient["server.location"]["location.get"]>>
export type LocationGetOperation<E = never> = (input?: Endpoint2_0Input) => Effect.Effect<Endpoint2_0Output, E>

export interface LocationApi<E = never> {
  readonly get: LocationGetOperation<E>
}

type Endpoint3_0Request = Parameters<RawClient["server.agent"]["agent.list"]>[0]
export type Endpoint3_0Input = { readonly location?: Endpoint3_0Request["query"]["location"] }
export type Endpoint3_0Output = EffectValue<ReturnType<RawClient["server.agent"]["agent.list"]>>
export type AgentListOperation<E = never> = (input?: Endpoint3_0Input) => Effect.Effect<Endpoint3_0Output, E>

export interface AgentApi<E = never> {
  readonly list: AgentListOperation<E>
}

type Endpoint4_0Request = Parameters<RawClient["server.plugin"]["plugin.list"]>[0]
export type Endpoint4_0Input = { readonly location?: Endpoint4_0Request["query"]["location"] }
export type Endpoint4_0Output = EffectValue<ReturnType<RawClient["server.plugin"]["plugin.list"]>>
export type PluginListOperation<E = never> = (input?: Endpoint4_0Input) => Effect.Effect<Endpoint4_0Output, E>

export interface PluginApi<E = never> {
  readonly list: PluginListOperation<E>
}

type Endpoint5_0Request = Parameters<RawClient["server.session"]["session.list"]>[0]
export type Endpoint5_0Input = {
  readonly workspace?: Endpoint5_0Request["query"]["workspace"]
  readonly limit?: Endpoint5_0Request["query"]["limit"]
  readonly order?: Endpoint5_0Request["query"]["order"]
  readonly search?: Endpoint5_0Request["query"]["search"]
  readonly parentID?: Endpoint5_0Request["query"]["parentID"]
  readonly directory?: Endpoint5_0Request["query"]["directory"]
  readonly project?: Endpoint5_0Request["query"]["project"]
  readonly subpath?: Endpoint5_0Request["query"]["subpath"]
  readonly cursor?: Endpoint5_0Request["query"]["cursor"]
}
export type Endpoint5_0Output = EffectValue<ReturnType<RawClient["server.session"]["session.list"]>>
export type SessionListOperation<E = never> = (input?: Endpoint5_0Input) => Effect.Effect<Endpoint5_0Output, E>

type Endpoint5_1Request = Parameters<RawClient["server.session"]["session.create"]>[0]
export type Endpoint5_1Input = {
  readonly id?: Endpoint5_1Request["payload"]["id"]
  readonly agent?: Endpoint5_1Request["payload"]["agent"]
  readonly model?: Endpoint5_1Request["payload"]["model"]
  readonly location?: Endpoint5_1Request["payload"]["location"]
}
export type Endpoint5_1Output = EffectValue<ReturnType<RawClient["server.session"]["session.create"]>>["data"]
export type SessionCreateOperation<E = never> = (input?: Endpoint5_1Input) => Effect.Effect<Endpoint5_1Output, E>

export type Endpoint5_2Output = EffectValue<ReturnType<RawClient["server.session"]["session.active"]>>["data"]
export type SessionActiveOperation<E = never> = () => Effect.Effect<Endpoint5_2Output, E>

type Endpoint5_3Request = Parameters<RawClient["server.session"]["session.get"]>[0]
export type Endpoint5_3Input = { readonly sessionID: Endpoint5_3Request["params"]["sessionID"] }
export type Endpoint5_3Output = EffectValue<ReturnType<RawClient["server.session"]["session.get"]>>["data"]
export type SessionGetOperation<E = never> = (input: Endpoint5_3Input) => Effect.Effect<Endpoint5_3Output, E>

type Endpoint5_4Request = Parameters<RawClient["server.session"]["session.remove"]>[0]
export type Endpoint5_4Input = { readonly sessionID: Endpoint5_4Request["params"]["sessionID"] }
export type Endpoint5_4Output = EffectValue<ReturnType<RawClient["server.session"]["session.remove"]>>
export type SessionRemoveOperation<E = never> = (input: Endpoint5_4Input) => Effect.Effect<Endpoint5_4Output, E>

type Endpoint5_5Request = Parameters<RawClient["server.session"]["session.fork"]>[0]
export type Endpoint5_5Input = {
  readonly sessionID: Endpoint5_5Request["params"]["sessionID"]
  readonly messageID?: Endpoint5_5Request["payload"]["messageID"]
}
export type Endpoint5_5Output = EffectValue<ReturnType<RawClient["server.session"]["session.fork"]>>["data"]
export type SessionForkOperation<E = never> = (input: Endpoint5_5Input) => Effect.Effect<Endpoint5_5Output, E>

type Endpoint5_6Request = Parameters<RawClient["server.session"]["session.switchAgent"]>[0]
export type Endpoint5_6Input = {
  readonly sessionID: Endpoint5_6Request["params"]["sessionID"]
  readonly agent: Endpoint5_6Request["payload"]["agent"]
}
export type Endpoint5_6Output = EffectValue<ReturnType<RawClient["server.session"]["session.switchAgent"]>>
export type SessionSwitchAgentOperation<E = never> = (input: Endpoint5_6Input) => Effect.Effect<Endpoint5_6Output, E>

type Endpoint5_7Request = Parameters<RawClient["server.session"]["session.switchModel"]>[0]
export type Endpoint5_7Input = {
  readonly sessionID: Endpoint5_7Request["params"]["sessionID"]
  readonly model: Endpoint5_7Request["payload"]["model"]
}
export type Endpoint5_7Output = EffectValue<ReturnType<RawClient["server.session"]["session.switchModel"]>>
export type SessionSwitchModelOperation<E = never> = (input: Endpoint5_7Input) => Effect.Effect<Endpoint5_7Output, E>

type Endpoint5_8Request = Parameters<RawClient["server.session"]["session.rename"]>[0]
export type Endpoint5_8Input = {
  readonly sessionID: Endpoint5_8Request["params"]["sessionID"]
  readonly title: Endpoint5_8Request["payload"]["title"]
}
export type Endpoint5_8Output = EffectValue<ReturnType<RawClient["server.session"]["session.rename"]>>
export type SessionRenameOperation<E = never> = (input: Endpoint5_8Input) => Effect.Effect<Endpoint5_8Output, E>

type Endpoint5_9Request = Parameters<RawClient["server.session"]["session.move"]>[0]
export type Endpoint5_9Input = {
  readonly sessionID: Endpoint5_9Request["params"]["sessionID"]
  readonly directory: Endpoint5_9Request["payload"]["directory"]
  readonly workspaceID?: Endpoint5_9Request["payload"]["workspaceID"]
}
export type Endpoint5_9Output = EffectValue<ReturnType<RawClient["server.session"]["session.move"]>>
export type SessionMoveOperation<E = never> = (input: Endpoint5_9Input) => Effect.Effect<Endpoint5_9Output, E>

type Endpoint5_10Request = Parameters<RawClient["server.session"]["session.prompt"]>[0]
export type Endpoint5_10Input = {
  readonly sessionID: Endpoint5_10Request["params"]["sessionID"]
  readonly id?: Endpoint5_10Request["payload"]["id"]
  readonly text: Endpoint5_10Request["payload"]["text"]
  readonly files?: Endpoint5_10Request["payload"]["files"]
  readonly agents?: Endpoint5_10Request["payload"]["agents"]
  readonly metadata?: Endpoint5_10Request["payload"]["metadata"]
  readonly delivery?: Endpoint5_10Request["payload"]["delivery"]
  readonly resume?: Endpoint5_10Request["payload"]["resume"]
}
export type Endpoint5_10Output = EffectValue<ReturnType<RawClient["server.session"]["session.prompt"]>>["data"]
export type SessionPromptOperation<E = never> = (input: Endpoint5_10Input) => Effect.Effect<Endpoint5_10Output, E>

type Endpoint5_11Request = Parameters<RawClient["server.session"]["session.command"]>[0]
export type Endpoint5_11Input = {
  readonly sessionID: Endpoint5_11Request["params"]["sessionID"]
  readonly id?: Endpoint5_11Request["payload"]["id"]
  readonly command: Endpoint5_11Request["payload"]["command"]
  readonly arguments?: Endpoint5_11Request["payload"]["arguments"]
  readonly agent?: Endpoint5_11Request["payload"]["agent"]
  readonly model?: Endpoint5_11Request["payload"]["model"]
  readonly files?: Endpoint5_11Request["payload"]["files"]
  readonly agents?: Endpoint5_11Request["payload"]["agents"]
  readonly delivery?: Endpoint5_11Request["payload"]["delivery"]
  readonly resume?: Endpoint5_11Request["payload"]["resume"]
}
export type Endpoint5_11Output = EffectValue<ReturnType<RawClient["server.session"]["session.command"]>>["data"]
export type SessionCommandOperation<E = never> = (input: Endpoint5_11Input) => Effect.Effect<Endpoint5_11Output, E>

type Endpoint5_12Request = Parameters<RawClient["server.session"]["session.skill"]>[0]
export type Endpoint5_12Input = {
  readonly sessionID: Endpoint5_12Request["params"]["sessionID"]
  readonly id?: Endpoint5_12Request["payload"]["id"]
  readonly skill: Endpoint5_12Request["payload"]["skill"]
  readonly resume?: Endpoint5_12Request["payload"]["resume"]
}
export type Endpoint5_12Output = EffectValue<ReturnType<RawClient["server.session"]["session.skill"]>>
export type SessionSkillOperation<E = never> = (input: Endpoint5_12Input) => Effect.Effect<Endpoint5_12Output, E>

type Endpoint5_13Request = Parameters<RawClient["server.session"]["session.synthetic"]>[0]
export type Endpoint5_13Input = {
  readonly sessionID: Endpoint5_13Request["params"]["sessionID"]
  readonly id?: Endpoint5_13Request["payload"]["id"]
  readonly text: Endpoint5_13Request["payload"]["text"]
  readonly description?: Endpoint5_13Request["payload"]["description"]
  readonly metadata?: Endpoint5_13Request["payload"]["metadata"]
  readonly delivery?: Endpoint5_13Request["payload"]["delivery"]
  readonly resume?: Endpoint5_13Request["payload"]["resume"]
}
export type Endpoint5_13Output = EffectValue<ReturnType<RawClient["server.session"]["session.synthetic"]>>["data"]
export type SessionSyntheticOperation<E = never> = (input: Endpoint5_13Input) => Effect.Effect<Endpoint5_13Output, E>

type Endpoint5_14Request = Parameters<RawClient["server.session"]["session.shell"]>[0]
export type Endpoint5_14Input = {
  readonly sessionID: Endpoint5_14Request["params"]["sessionID"]
  readonly id?: Endpoint5_14Request["payload"]["id"]
  readonly command: Endpoint5_14Request["payload"]["command"]
}
export type Endpoint5_14Output = EffectValue<ReturnType<RawClient["server.session"]["session.shell"]>>
export type SessionShellOperation<E = never> = (input: Endpoint5_14Input) => Effect.Effect<Endpoint5_14Output, E>

type Endpoint5_15Request = Parameters<RawClient["server.session"]["session.compact"]>[0]
export type Endpoint5_15Input = {
  readonly sessionID: Endpoint5_15Request["params"]["sessionID"]
  readonly id?: Endpoint5_15Request["payload"]["id"]
}
export type Endpoint5_15Output = EffectValue<ReturnType<RawClient["server.session"]["session.compact"]>>["data"]
export type SessionCompactOperation<E = never> = (input: Endpoint5_15Input) => Effect.Effect<Endpoint5_15Output, E>

type Endpoint5_16Request = Parameters<RawClient["server.session"]["session.wait"]>[0]
export type Endpoint5_16Input = { readonly sessionID: Endpoint5_16Request["params"]["sessionID"] }
export type Endpoint5_16Output = EffectValue<ReturnType<RawClient["server.session"]["session.wait"]>>
export type SessionWaitOperation<E = never> = (input: Endpoint5_16Input) => Effect.Effect<Endpoint5_16Output, E>

type Endpoint5_17Request = Parameters<RawClient["server.session"]["session.revert.stage"]>[0]
export type Endpoint5_17Input = {
  readonly sessionID: Endpoint5_17Request["params"]["sessionID"]
  readonly messageID: Endpoint5_17Request["payload"]["messageID"]
  readonly files?: Endpoint5_17Request["payload"]["files"]
}
export type Endpoint5_17Output = EffectValue<ReturnType<RawClient["server.session"]["session.revert.stage"]>>["data"]
export type SessionRevertStageOperation<E = never> = (input: Endpoint5_17Input) => Effect.Effect<Endpoint5_17Output, E>

type Endpoint5_18Request = Parameters<RawClient["server.session"]["session.revert.clear"]>[0]
export type Endpoint5_18Input = { readonly sessionID: Endpoint5_18Request["params"]["sessionID"] }
export type Endpoint5_18Output = EffectValue<ReturnType<RawClient["server.session"]["session.revert.clear"]>>
export type SessionRevertClearOperation<E = never> = (input: Endpoint5_18Input) => Effect.Effect<Endpoint5_18Output, E>

type Endpoint5_19Request = Parameters<RawClient["server.session"]["session.revert.commit"]>[0]
export type Endpoint5_19Input = { readonly sessionID: Endpoint5_19Request["params"]["sessionID"] }
export type Endpoint5_19Output = EffectValue<ReturnType<RawClient["server.session"]["session.revert.commit"]>>
export type SessionRevertCommitOperation<E = never> = (input: Endpoint5_19Input) => Effect.Effect<Endpoint5_19Output, E>

type Endpoint5_20Request = Parameters<RawClient["server.session"]["session.context"]>[0]
export type Endpoint5_20Input = { readonly sessionID: Endpoint5_20Request["params"]["sessionID"] }
export type Endpoint5_20Output = EffectValue<ReturnType<RawClient["server.session"]["session.context"]>>["data"]
export type SessionContextOperation<E = never> = (input: Endpoint5_20Input) => Effect.Effect<Endpoint5_20Output, E>

type Endpoint5_21Request = Parameters<RawClient["server.session"]["session.pending.list"]>[0]
export type Endpoint5_21Input = { readonly sessionID: Endpoint5_21Request["params"]["sessionID"] }
export type Endpoint5_21Output = EffectValue<ReturnType<RawClient["server.session"]["session.pending.list"]>>["data"]
export type SessionPendingListOperation<E = never> = (input: Endpoint5_21Input) => Effect.Effect<Endpoint5_21Output, E>

type Endpoint5_22Request = Parameters<RawClient["server.session"]["session.instructions.entry.list"]>[0]
export type Endpoint5_22Input = { readonly sessionID: Endpoint5_22Request["params"]["sessionID"] }
export type Endpoint5_22Output = EffectValue<
  ReturnType<RawClient["server.session"]["session.instructions.entry.list"]>
>["data"]
export type SessionInstructionsEntryListOperation<E = never> = (
  input: Endpoint5_22Input,
) => Effect.Effect<Endpoint5_22Output, E>

type Endpoint5_23Request = Parameters<RawClient["server.session"]["session.instructions.entry.put"]>[0]
export type Endpoint5_23Input = {
  readonly sessionID: Endpoint5_23Request["params"]["sessionID"]
  readonly key: Endpoint5_23Request["params"]["key"]
  readonly value: Endpoint5_23Request["payload"]["value"]
}
export type Endpoint5_23Output = EffectValue<ReturnType<RawClient["server.session"]["session.instructions.entry.put"]>>
export type SessionInstructionsEntryPutOperation<E = never> = (
  input: Endpoint5_23Input,
) => Effect.Effect<Endpoint5_23Output, E>

type Endpoint5_24Request = Parameters<RawClient["server.session"]["session.instructions.entry.remove"]>[0]
export type Endpoint5_24Input = {
  readonly sessionID: Endpoint5_24Request["params"]["sessionID"]
  readonly key: Endpoint5_24Request["params"]["key"]
}
export type Endpoint5_24Output = EffectValue<
  ReturnType<RawClient["server.session"]["session.instructions.entry.remove"]>
>
export type SessionInstructionsEntryRemoveOperation<E = never> = (
  input: Endpoint5_24Input,
) => Effect.Effect<Endpoint5_24Output, E>

type Endpoint5_25Request = Parameters<RawClient["server.session"]["session.generate"]>[0]
export type Endpoint5_25Input = {
  readonly sessionID: Endpoint5_25Request["params"]["sessionID"]
  readonly prompt: Endpoint5_25Request["payload"]["prompt"]
}
export type Endpoint5_25Output = EffectValue<ReturnType<RawClient["server.session"]["session.generate"]>>["data"]
export type SessionGenerateOperation<E = never> = (input: Endpoint5_25Input) => Effect.Effect<Endpoint5_25Output, E>

type Endpoint5_26Request = Parameters<RawClient["server.session"]["session.log"]>[0]
export type Endpoint5_26Input = {
  readonly sessionID: Endpoint5_26Request["params"]["sessionID"]
  readonly after?: Endpoint5_26Request["query"]["after"]
  readonly follow?: Endpoint5_26Request["query"]["follow"]
}
export type Endpoint5_26Output = StreamValue<EffectValue<ReturnType<RawClient["server.session"]["session.log"]>>>
export type SessionLogOperation<E = never> = (input: Endpoint5_26Input) => Stream.Stream<Endpoint5_26Output, E>

type Endpoint5_27Request = Parameters<RawClient["server.session"]["session.interrupt"]>[0]
export type Endpoint5_27Input = { readonly sessionID: Endpoint5_27Request["params"]["sessionID"] }
export type Endpoint5_27Output = EffectValue<ReturnType<RawClient["server.session"]["session.interrupt"]>>
export type SessionInterruptOperation<E = never> = (input: Endpoint5_27Input) => Effect.Effect<Endpoint5_27Output, E>

type Endpoint5_28Request = Parameters<RawClient["server.session"]["session.background"]>[0]
export type Endpoint5_28Input = { readonly sessionID: Endpoint5_28Request["params"]["sessionID"] }
export type Endpoint5_28Output = EffectValue<ReturnType<RawClient["server.session"]["session.background"]>>
export type SessionBackgroundOperation<E = never> = (input: Endpoint5_28Input) => Effect.Effect<Endpoint5_28Output, E>

type Endpoint5_29Request = Parameters<RawClient["server.session"]["session.message"]>[0]
export type Endpoint5_29Input = {
  readonly sessionID: Endpoint5_29Request["params"]["sessionID"]
  readonly messageID: Endpoint5_29Request["params"]["messageID"]
}
export type Endpoint5_29Output = EffectValue<ReturnType<RawClient["server.session"]["session.message"]>>["data"]
export type SessionMessageOperation<E = never> = (input: Endpoint5_29Input) => Effect.Effect<Endpoint5_29Output, E>

export interface SessionApi<E = never> {
  readonly list: SessionListOperation<E>
  readonly create: SessionCreateOperation<E>
  readonly active: SessionActiveOperation<E>
  readonly get: SessionGetOperation<E>
  readonly remove: SessionRemoveOperation<E>
  readonly fork: SessionForkOperation<E>
  readonly switchAgent: SessionSwitchAgentOperation<E>
  readonly switchModel: SessionSwitchModelOperation<E>
  readonly rename: SessionRenameOperation<E>
  readonly move: SessionMoveOperation<E>
  readonly prompt: SessionPromptOperation<E>
  readonly command: SessionCommandOperation<E>
  readonly skill: SessionSkillOperation<E>
  readonly synthetic: SessionSyntheticOperation<E>
  readonly shell: SessionShellOperation<E>
  readonly compact: SessionCompactOperation<E>
  readonly wait: SessionWaitOperation<E>
  readonly revert: {
    readonly stage: SessionRevertStageOperation<E>
    readonly clear: SessionRevertClearOperation<E>
    readonly commit: SessionRevertCommitOperation<E>
  }
  readonly context: SessionContextOperation<E>
  readonly pending: { readonly list: SessionPendingListOperation<E> }
  readonly instructions: {
    readonly entry: {
      readonly list: SessionInstructionsEntryListOperation<E>
      readonly put: SessionInstructionsEntryPutOperation<E>
      readonly remove: SessionInstructionsEntryRemoveOperation<E>
    }
  }
  readonly generate: SessionGenerateOperation<E>
  readonly log: SessionLogOperation<E>
  readonly interrupt: SessionInterruptOperation<E>
  readonly background: SessionBackgroundOperation<E>
  readonly message: SessionMessageOperation<E>
}

type Endpoint6_0Request = Parameters<RawClient["server.message"]["session.messages"]>[0]
export type Endpoint6_0Input = {
  readonly sessionID: Endpoint6_0Request["params"]["sessionID"]
  readonly limit?: Endpoint6_0Request["query"]["limit"]
  readonly order?: Endpoint6_0Request["query"]["order"]
  readonly cursor?: Endpoint6_0Request["query"]["cursor"]
}
export type Endpoint6_0Output = EffectValue<ReturnType<RawClient["server.message"]["session.messages"]>>
export type MessageListOperation<E = never> = (input: Endpoint6_0Input) => Effect.Effect<Endpoint6_0Output, E>

export interface MessageApi<E = never> {
  readonly list: MessageListOperation<E>
}

type Endpoint7_0Request = Parameters<RawClient["server.model"]["model.list"]>[0]
export type Endpoint7_0Input = { readonly location?: Endpoint7_0Request["query"]["location"] }
export type Endpoint7_0Output = EffectValue<ReturnType<RawClient["server.model"]["model.list"]>>
export type ModelListOperation<E = never> = (input?: Endpoint7_0Input) => Effect.Effect<Endpoint7_0Output, E>

type Endpoint7_1Request = Parameters<RawClient["server.model"]["model.default"]>[0]
export type Endpoint7_1Input = { readonly location?: Endpoint7_1Request["query"]["location"] }
export type Endpoint7_1Output = EffectValue<ReturnType<RawClient["server.model"]["model.default"]>>
export type ModelDefaultOperation<E = never> = (input?: Endpoint7_1Input) => Effect.Effect<Endpoint7_1Output, E>

export interface ModelApi<E = never> {
  readonly list: ModelListOperation<E>
  readonly default: ModelDefaultOperation<E>
}

type Endpoint8_0Request = Parameters<RawClient["server.generate"]["generate.text"]>[0]
export type Endpoint8_0Input = {
  readonly location?: Endpoint8_0Request["query"]["location"]
  readonly prompt: Endpoint8_0Request["payload"]["prompt"]
  readonly model?: Endpoint8_0Request["payload"]["model"]
}
export type Endpoint8_0Output = EffectValue<ReturnType<RawClient["server.generate"]["generate.text"]>>["data"]
export type GenerateTextOperation<E = never> = (input: Endpoint8_0Input) => Effect.Effect<Endpoint8_0Output, E>

export interface GenerateApi<E = never> {
  readonly text: GenerateTextOperation<E>
}

type Endpoint9_0Request = Parameters<RawClient["server.provider"]["provider.list"]>[0]
export type Endpoint9_0Input = { readonly location?: Endpoint9_0Request["query"]["location"] }
export type Endpoint9_0Output = EffectValue<ReturnType<RawClient["server.provider"]["provider.list"]>>
export type ProviderListOperation<E = never> = (input?: Endpoint9_0Input) => Effect.Effect<Endpoint9_0Output, E>

type Endpoint9_1Request = Parameters<RawClient["server.provider"]["provider.get"]>[0]
export type Endpoint9_1Input = {
  readonly providerID: Endpoint9_1Request["params"]["providerID"]
  readonly location?: Endpoint9_1Request["query"]["location"]
}
export type Endpoint9_1Output = EffectValue<ReturnType<RawClient["server.provider"]["provider.get"]>>
export type ProviderGetOperation<E = never> = (input: Endpoint9_1Input) => Effect.Effect<Endpoint9_1Output, E>

export interface ProviderApi<E = never> {
  readonly list: ProviderListOperation<E>
  readonly get: ProviderGetOperation<E>
}

type Endpoint10_0Request = Parameters<RawClient["server.integration"]["integration.list"]>[0]
export type Endpoint10_0Input = { readonly location?: Endpoint10_0Request["query"]["location"] }
export type Endpoint10_0Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.list"]>>
export type IntegrationListOperation<E = never> = (input?: Endpoint10_0Input) => Effect.Effect<Endpoint10_0Output, E>

type Endpoint10_1Request = Parameters<RawClient["server.integration"]["integration.get"]>[0]
export type Endpoint10_1Input = {
  readonly integrationID: Endpoint10_1Request["params"]["integrationID"]
  readonly location?: Endpoint10_1Request["query"]["location"]
}
export type Endpoint10_1Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.get"]>>
export type IntegrationGetOperation<E = never> = (input: Endpoint10_1Input) => Effect.Effect<Endpoint10_1Output, E>

type Endpoint10_2Request = Parameters<RawClient["server.integration"]["integration.wellknown.add"]>[0]
export type Endpoint10_2Input = {
  readonly location?: Endpoint10_2Request["query"]["location"]
  readonly url: Endpoint10_2Request["payload"]["url"]
}
export type Endpoint10_2Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.wellknown.add"]>>
export type IntegrationWellknownAddOperation<E = never> = (
  input: Endpoint10_2Input,
) => Effect.Effect<Endpoint10_2Output, E>

type Endpoint10_3Request = Parameters<RawClient["server.integration"]["integration.connect.key"]>[0]
export type Endpoint10_3Input = {
  readonly integrationID: Endpoint10_3Request["params"]["integrationID"]
  readonly location?: Endpoint10_3Request["query"]["location"]
  readonly key: Endpoint10_3Request["payload"]["key"]
  readonly label?: Endpoint10_3Request["payload"]["label"]
}
export type Endpoint10_3Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.connect.key"]>>
export type IntegrationConnectKeyOperation<E = never> = (
  input: Endpoint10_3Input,
) => Effect.Effect<Endpoint10_3Output, E>

type Endpoint10_4Request = Parameters<RawClient["server.integration"]["integration.oauth.connect"]>[0]
export type Endpoint10_4Input = {
  readonly integrationID: Endpoint10_4Request["params"]["integrationID"]
  readonly location?: Endpoint10_4Request["query"]["location"]
  readonly methodID: Endpoint10_4Request["payload"]["methodID"]
  readonly inputs: Endpoint10_4Request["payload"]["inputs"]
  readonly label?: Endpoint10_4Request["payload"]["label"]
}
export type Endpoint10_4Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.oauth.connect"]>>
export type IntegrationOauthConnectOperation<E = never> = (
  input: Endpoint10_4Input,
) => Effect.Effect<Endpoint10_4Output, E>

type Endpoint10_5Request = Parameters<RawClient["server.integration"]["integration.oauth.status"]>[0]
export type Endpoint10_5Input = {
  readonly integrationID: Endpoint10_5Request["params"]["integrationID"]
  readonly attemptID: Endpoint10_5Request["params"]["attemptID"]
  readonly location?: Endpoint10_5Request["query"]["location"]
}
export type Endpoint10_5Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.oauth.status"]>>
export type IntegrationOauthStatusOperation<E = never> = (
  input: Endpoint10_5Input,
) => Effect.Effect<Endpoint10_5Output, E>

type Endpoint10_6Request = Parameters<RawClient["server.integration"]["integration.oauth.complete"]>[0]
export type Endpoint10_6Input = {
  readonly integrationID: Endpoint10_6Request["params"]["integrationID"]
  readonly attemptID: Endpoint10_6Request["params"]["attemptID"]
  readonly location?: Endpoint10_6Request["query"]["location"]
  readonly code?: Endpoint10_6Request["payload"]["code"]
}
export type Endpoint10_6Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.oauth.complete"]>>
export type IntegrationOauthCompleteOperation<E = never> = (
  input: Endpoint10_6Input,
) => Effect.Effect<Endpoint10_6Output, E>

type Endpoint10_7Request = Parameters<RawClient["server.integration"]["integration.oauth.cancel"]>[0]
export type Endpoint10_7Input = {
  readonly integrationID: Endpoint10_7Request["params"]["integrationID"]
  readonly attemptID: Endpoint10_7Request["params"]["attemptID"]
  readonly location?: Endpoint10_7Request["query"]["location"]
}
export type Endpoint10_7Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.oauth.cancel"]>>
export type IntegrationOauthCancelOperation<E = never> = (
  input: Endpoint10_7Input,
) => Effect.Effect<Endpoint10_7Output, E>

type Endpoint10_8Request = Parameters<RawClient["server.integration"]["integration.command.connect"]>[0]
export type Endpoint10_8Input = {
  readonly integrationID: Endpoint10_8Request["params"]["integrationID"]
  readonly location?: Endpoint10_8Request["query"]["location"]
  readonly methodID: Endpoint10_8Request["payload"]["methodID"]
  readonly label?: Endpoint10_8Request["payload"]["label"]
}
export type Endpoint10_8Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.command.connect"]>>
export type IntegrationCommandConnectOperation<E = never> = (
  input: Endpoint10_8Input,
) => Effect.Effect<Endpoint10_8Output, E>

type Endpoint10_9Request = Parameters<RawClient["server.integration"]["integration.command.status"]>[0]
export type Endpoint10_9Input = {
  readonly integrationID: Endpoint10_9Request["params"]["integrationID"]
  readonly attemptID: Endpoint10_9Request["params"]["attemptID"]
  readonly location?: Endpoint10_9Request["query"]["location"]
}
export type Endpoint10_9Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.command.status"]>>
export type IntegrationCommandStatusOperation<E = never> = (
  input: Endpoint10_9Input,
) => Effect.Effect<Endpoint10_9Output, E>

type Endpoint10_10Request = Parameters<RawClient["server.integration"]["integration.command.cancel"]>[0]
export type Endpoint10_10Input = {
  readonly integrationID: Endpoint10_10Request["params"]["integrationID"]
  readonly attemptID: Endpoint10_10Request["params"]["attemptID"]
  readonly location?: Endpoint10_10Request["query"]["location"]
}
export type Endpoint10_10Output = EffectValue<ReturnType<RawClient["server.integration"]["integration.command.cancel"]>>
export type IntegrationCommandCancelOperation<E = never> = (
  input: Endpoint10_10Input,
) => Effect.Effect<Endpoint10_10Output, E>

export interface IntegrationApi<E = never> {
  readonly list: IntegrationListOperation<E>
  readonly get: IntegrationGetOperation<E>
  readonly wellknown: { readonly add: IntegrationWellknownAddOperation<E> }
  readonly connect: { readonly key: IntegrationConnectKeyOperation<E> }
  readonly oauth: {
    readonly connect: IntegrationOauthConnectOperation<E>
    readonly status: IntegrationOauthStatusOperation<E>
    readonly complete: IntegrationOauthCompleteOperation<E>
    readonly cancel: IntegrationOauthCancelOperation<E>
  }
  readonly command: {
    readonly connect: IntegrationCommandConnectOperation<E>
    readonly status: IntegrationCommandStatusOperation<E>
    readonly cancel: IntegrationCommandCancelOperation<E>
  }
}

type Endpoint11_0Request = Parameters<RawClient["server.mcp"]["mcp.list"]>[0]
export type Endpoint11_0Input = { readonly location?: Endpoint11_0Request["query"]["location"] }
export type Endpoint11_0Output = EffectValue<ReturnType<RawClient["server.mcp"]["mcp.list"]>>
export type McpListOperation<E = never> = (input?: Endpoint11_0Input) => Effect.Effect<Endpoint11_0Output, E>

type Endpoint11_1Request = Parameters<RawClient["server.mcp"]["mcp.add"]>[0]
export type Endpoint11_1Input = {
  readonly server: Endpoint11_1Request["params"]["server"]
  readonly location?: Endpoint11_1Request["query"]["location"]
  readonly config: Endpoint11_1Request["payload"]["config"]
}
export type Endpoint11_1Output = EffectValue<ReturnType<RawClient["server.mcp"]["mcp.add"]>>
export type McpAddOperation<E = never> = (input: Endpoint11_1Input) => Effect.Effect<Endpoint11_1Output, E>

type Endpoint11_2Request = Parameters<RawClient["server.mcp"]["mcp.remove"]>[0]
export type Endpoint11_2Input = {
  readonly server: Endpoint11_2Request["params"]["server"]
  readonly location?: Endpoint11_2Request["query"]["location"]
}
export type Endpoint11_2Output = EffectValue<ReturnType<RawClient["server.mcp"]["mcp.remove"]>>
export type McpRemoveOperation<E = never> = (input: Endpoint11_2Input) => Effect.Effect<Endpoint11_2Output, E>

type Endpoint11_3Request = Parameters<RawClient["server.mcp"]["mcp.connect"]>[0]
export type Endpoint11_3Input = {
  readonly server: Endpoint11_3Request["params"]["server"]
  readonly location?: Endpoint11_3Request["query"]["location"]
}
export type Endpoint11_3Output = EffectValue<ReturnType<RawClient["server.mcp"]["mcp.connect"]>>
export type McpConnectOperation<E = never> = (input: Endpoint11_3Input) => Effect.Effect<Endpoint11_3Output, E>

type Endpoint11_4Request = Parameters<RawClient["server.mcp"]["mcp.disconnect"]>[0]
export type Endpoint11_4Input = {
  readonly server: Endpoint11_4Request["params"]["server"]
  readonly location?: Endpoint11_4Request["query"]["location"]
}
export type Endpoint11_4Output = EffectValue<ReturnType<RawClient["server.mcp"]["mcp.disconnect"]>>
export type McpDisconnectOperation<E = never> = (input: Endpoint11_4Input) => Effect.Effect<Endpoint11_4Output, E>

type Endpoint11_5Request = Parameters<RawClient["server.mcp"]["mcp.resource.catalog"]>[0]
export type Endpoint11_5Input = { readonly location?: Endpoint11_5Request["query"]["location"] }
export type Endpoint11_5Output = EffectValue<ReturnType<RawClient["server.mcp"]["mcp.resource.catalog"]>>
export type McpResourceCatalogOperation<E = never> = (input?: Endpoint11_5Input) => Effect.Effect<Endpoint11_5Output, E>

export interface McpApi<E = never> {
  readonly list: McpListOperation<E>
  readonly add: McpAddOperation<E>
  readonly remove: McpRemoveOperation<E>
  readonly connect: McpConnectOperation<E>
  readonly disconnect: McpDisconnectOperation<E>
  readonly resource: { readonly catalog: McpResourceCatalogOperation<E> }
}

type Endpoint12_0Request = Parameters<RawClient["server.credential"]["credential.update"]>[0]
export type Endpoint12_0Input = {
  readonly credentialID: Endpoint12_0Request["params"]["credentialID"]
  readonly location?: Endpoint12_0Request["query"]["location"]
  readonly label: Endpoint12_0Request["payload"]["label"]
}
export type Endpoint12_0Output = EffectValue<ReturnType<RawClient["server.credential"]["credential.update"]>>
export type CredentialUpdateOperation<E = never> = (input: Endpoint12_0Input) => Effect.Effect<Endpoint12_0Output, E>

type Endpoint12_1Request = Parameters<RawClient["server.credential"]["credential.remove"]>[0]
export type Endpoint12_1Input = {
  readonly credentialID: Endpoint12_1Request["params"]["credentialID"]
  readonly location?: Endpoint12_1Request["query"]["location"]
}
export type Endpoint12_1Output = EffectValue<ReturnType<RawClient["server.credential"]["credential.remove"]>>
export type CredentialRemoveOperation<E = never> = (input: Endpoint12_1Input) => Effect.Effect<Endpoint12_1Output, E>

export interface CredentialApi<E = never> {
  readonly update: CredentialUpdateOperation<E>
  readonly remove: CredentialRemoveOperation<E>
}

export type Endpoint13_0Output = EffectValue<ReturnType<RawClient["server.project"]["project.list"]>>
export type ProjectListOperation<E = never> = () => Effect.Effect<Endpoint13_0Output, E>

type Endpoint13_1Request = Parameters<RawClient["server.project"]["project.current"]>[0]
export type Endpoint13_1Input = { readonly location?: Endpoint13_1Request["query"]["location"] }
export type Endpoint13_1Output = EffectValue<ReturnType<RawClient["server.project"]["project.current"]>>
export type ProjectCurrentOperation<E = never> = (input?: Endpoint13_1Input) => Effect.Effect<Endpoint13_1Output, E>

type Endpoint13_2Request = Parameters<RawClient["server.project"]["project.directories"]>[0]
export type Endpoint13_2Input = {
  readonly projectID: Endpoint13_2Request["params"]["projectID"]
  readonly location?: Endpoint13_2Request["query"]["location"]
}
export type Endpoint13_2Output = EffectValue<ReturnType<RawClient["server.project"]["project.directories"]>>
export type ProjectDirectoriesOperation<E = never> = (input: Endpoint13_2Input) => Effect.Effect<Endpoint13_2Output, E>

export interface ProjectApi<E = never> {
  readonly list: ProjectListOperation<E>
  readonly current: ProjectCurrentOperation<E>
  readonly directories: ProjectDirectoriesOperation<E>
}

type Endpoint14_0Request = Parameters<RawClient["server.form"]["form.request.list"]>[0]
export type Endpoint14_0Input = { readonly location?: Endpoint14_0Request["query"]["location"] }
export type Endpoint14_0Output = EffectValue<ReturnType<RawClient["server.form"]["form.request.list"]>>
export type FormRequestListOperation<E = never> = (input?: Endpoint14_0Input) => Effect.Effect<Endpoint14_0Output, E>

type Endpoint14_1Request = Parameters<RawClient["server.form"]["session.form.list"]>[0]
export type Endpoint14_1Input = { readonly sessionID: Endpoint14_1Request["params"]["sessionID"] }
export type Endpoint14_1Output = EffectValue<ReturnType<RawClient["server.form"]["session.form.list"]>>["data"]
export type FormListOperation<E = never> = (input: Endpoint14_1Input) => Effect.Effect<Endpoint14_1Output, E>

type Endpoint14_2Request = Parameters<RawClient["server.form"]["session.form.create"]>[0]
export type Endpoint14_2Input = {
  readonly sessionID: Endpoint14_2Request["params"]["sessionID"]
  readonly id?: Endpoint14_2Request["payload"]["id"]
  readonly title: Endpoint14_2Request["payload"]["title"]
  readonly metadata?: Endpoint14_2Request["payload"]["metadata"]
  readonly fields: Endpoint14_2Request["payload"]["fields"]
}
export type Endpoint14_2Output = EffectValue<ReturnType<RawClient["server.form"]["session.form.create"]>>["data"]
export type FormCreateOperation<E = never> = (input: Endpoint14_2Input) => Effect.Effect<Endpoint14_2Output, E>

type Endpoint14_3Request = Parameters<RawClient["server.form"]["session.form.get"]>[0]
export type Endpoint14_3Input = {
  readonly sessionID: Endpoint14_3Request["params"]["sessionID"]
  readonly formID: Endpoint14_3Request["params"]["formID"]
}
export type Endpoint14_3Output = EffectValue<ReturnType<RawClient["server.form"]["session.form.get"]>>["data"]
export type FormGetOperation<E = never> = (input: Endpoint14_3Input) => Effect.Effect<Endpoint14_3Output, E>

type Endpoint14_4Request = Parameters<RawClient["server.form"]["session.form.state"]>[0]
export type Endpoint14_4Input = {
  readonly sessionID: Endpoint14_4Request["params"]["sessionID"]
  readonly formID: Endpoint14_4Request["params"]["formID"]
}
export type Endpoint14_4Output = EffectValue<ReturnType<RawClient["server.form"]["session.form.state"]>>["data"]
export type FormStateOperation<E = never> = (input: Endpoint14_4Input) => Effect.Effect<Endpoint14_4Output, E>

type Endpoint14_5Request = Parameters<RawClient["server.form"]["session.form.reply"]>[0]
export type Endpoint14_5Input = {
  readonly sessionID: Endpoint14_5Request["params"]["sessionID"]
  readonly formID: Endpoint14_5Request["params"]["formID"]
  readonly answer: Endpoint14_5Request["payload"]["answer"]
}
export type Endpoint14_5Output = EffectValue<ReturnType<RawClient["server.form"]["session.form.reply"]>>
export type FormReplyOperation<E = never> = (input: Endpoint14_5Input) => Effect.Effect<Endpoint14_5Output, E>

type Endpoint14_6Request = Parameters<RawClient["server.form"]["session.form.cancel"]>[0]
export type Endpoint14_6Input = {
  readonly sessionID: Endpoint14_6Request["params"]["sessionID"]
  readonly formID: Endpoint14_6Request["params"]["formID"]
}
export type Endpoint14_6Output = EffectValue<ReturnType<RawClient["server.form"]["session.form.cancel"]>>
export type FormCancelOperation<E = never> = (input: Endpoint14_6Input) => Effect.Effect<Endpoint14_6Output, E>

export interface FormApi<E = never> {
  readonly request: { readonly list: FormRequestListOperation<E> }
  readonly list: FormListOperation<E>
  readonly create: FormCreateOperation<E>
  readonly get: FormGetOperation<E>
  readonly state: FormStateOperation<E>
  readonly reply: FormReplyOperation<E>
  readonly cancel: FormCancelOperation<E>
}

type Endpoint15_0Request = Parameters<RawClient["server.permission"]["permission.request.list"]>[0]
export type Endpoint15_0Input = { readonly location?: Endpoint15_0Request["query"]["location"] }
export type Endpoint15_0Output = EffectValue<ReturnType<RawClient["server.permission"]["permission.request.list"]>>
export type PermissionRequestListOperation<E = never> = (
  input?: Endpoint15_0Input,
) => Effect.Effect<Endpoint15_0Output, E>

type Endpoint15_1Request = Parameters<RawClient["server.permission"]["permission.saved.list"]>[0]
export type Endpoint15_1Input = { readonly projectID?: Endpoint15_1Request["query"]["projectID"] }
export type Endpoint15_1Output = EffectValue<
  ReturnType<RawClient["server.permission"]["permission.saved.list"]>
>["data"]
export type PermissionSavedListOperation<E = never> = (
  input?: Endpoint15_1Input,
) => Effect.Effect<Endpoint15_1Output, E>

type Endpoint15_2Request = Parameters<RawClient["server.permission"]["permission.saved.remove"]>[0]
export type Endpoint15_2Input = { readonly id: Endpoint15_2Request["params"]["id"] }
export type Endpoint15_2Output = EffectValue<ReturnType<RawClient["server.permission"]["permission.saved.remove"]>>
export type PermissionSavedRemoveOperation<E = never> = (
  input: Endpoint15_2Input,
) => Effect.Effect<Endpoint15_2Output, E>

type Endpoint15_3Request = Parameters<RawClient["server.permission"]["session.permission.create"]>[0]
export type Endpoint15_3Input = {
  readonly sessionID: Endpoint15_3Request["params"]["sessionID"]
  readonly id?: Endpoint15_3Request["payload"]["id"]
  readonly action: Endpoint15_3Request["payload"]["action"]
  readonly resources: Endpoint15_3Request["payload"]["resources"]
  readonly save?: Endpoint15_3Request["payload"]["save"]
  readonly metadata?: Endpoint15_3Request["payload"]["metadata"]
  readonly source?: Endpoint15_3Request["payload"]["source"]
  readonly agent?: Endpoint15_3Request["payload"]["agent"]
}
export type Endpoint15_3Output = EffectValue<
  ReturnType<RawClient["server.permission"]["session.permission.create"]>
>["data"]
export type PermissionCreateOperation<E = never> = (input: Endpoint15_3Input) => Effect.Effect<Endpoint15_3Output, E>

type Endpoint15_4Request = Parameters<RawClient["server.permission"]["session.permission.list"]>[0]
export type Endpoint15_4Input = { readonly sessionID: Endpoint15_4Request["params"]["sessionID"] }
export type Endpoint15_4Output = EffectValue<
  ReturnType<RawClient["server.permission"]["session.permission.list"]>
>["data"]
export type PermissionListOperation<E = never> = (input: Endpoint15_4Input) => Effect.Effect<Endpoint15_4Output, E>

type Endpoint15_5Request = Parameters<RawClient["server.permission"]["session.permission.get"]>[0]
export type Endpoint15_5Input = {
  readonly sessionID: Endpoint15_5Request["params"]["sessionID"]
  readonly requestID: Endpoint15_5Request["params"]["requestID"]
}
export type Endpoint15_5Output = EffectValue<
  ReturnType<RawClient["server.permission"]["session.permission.get"]>
>["data"]
export type PermissionGetOperation<E = never> = (input: Endpoint15_5Input) => Effect.Effect<Endpoint15_5Output, E>

type Endpoint15_6Request = Parameters<RawClient["server.permission"]["session.permission.reply"]>[0]
export type Endpoint15_6Input = {
  readonly sessionID: Endpoint15_6Request["params"]["sessionID"]
  readonly requestID: Endpoint15_6Request["params"]["requestID"]
  readonly reply: Endpoint15_6Request["payload"]["reply"]
  readonly message?: Endpoint15_6Request["payload"]["message"]
}
export type Endpoint15_6Output = EffectValue<ReturnType<RawClient["server.permission"]["session.permission.reply"]>>
export type PermissionReplyOperation<E = never> = (input: Endpoint15_6Input) => Effect.Effect<Endpoint15_6Output, E>

export interface PermissionApi<E = never> {
  readonly request: { readonly list: PermissionRequestListOperation<E> }
  readonly saved: { readonly list: PermissionSavedListOperation<E>; readonly remove: PermissionSavedRemoveOperation<E> }
  readonly create: PermissionCreateOperation<E>
  readonly list: PermissionListOperation<E>
  readonly get: PermissionGetOperation<E>
  readonly reply: PermissionReplyOperation<E>
}

type Endpoint16_0Request = Parameters<RawClient["server.fs"]["fs.list"]>[0]
export type Endpoint16_0Input = {
  readonly location?: Endpoint16_0Request["query"]["location"]
  readonly path?: Endpoint16_0Request["query"]["path"]
}
export type Endpoint16_0Output = EffectValue<ReturnType<RawClient["server.fs"]["fs.list"]>>
export type FileListOperation<E = never> = (input?: Endpoint16_0Input) => Effect.Effect<Endpoint16_0Output, E>

type Endpoint16_1Request = Parameters<RawClient["server.fs"]["fs.find"]>[0]
export type Endpoint16_1Input = {
  readonly location?: Endpoint16_1Request["query"]["location"]
  readonly query: Endpoint16_1Request["query"]["query"]
  readonly type?: Endpoint16_1Request["query"]["type"]
  readonly limit?: Endpoint16_1Request["query"]["limit"]
}
export type Endpoint16_1Output = EffectValue<ReturnType<RawClient["server.fs"]["fs.find"]>>
export type FileFindOperation<E = never> = (input: Endpoint16_1Input) => Effect.Effect<Endpoint16_1Output, E>

export interface FileApi<E = never> {
  readonly list: FileListOperation<E>
  readonly find: FileFindOperation<E>
}

type Endpoint17_0Request = Parameters<RawClient["server.command"]["command.list"]>[0]
export type Endpoint17_0Input = { readonly location?: Endpoint17_0Request["query"]["location"] }
export type Endpoint17_0Output = EffectValue<ReturnType<RawClient["server.command"]["command.list"]>>
export type CommandListOperation<E = never> = (input?: Endpoint17_0Input) => Effect.Effect<Endpoint17_0Output, E>

export interface CommandApi<E = never> {
  readonly list: CommandListOperation<E>
}

type Endpoint18_0Request = Parameters<RawClient["server.skill"]["skill.list"]>[0]
export type Endpoint18_0Input = { readonly location?: Endpoint18_0Request["query"]["location"] }
export type Endpoint18_0Output = EffectValue<ReturnType<RawClient["server.skill"]["skill.list"]>>
export type SkillListOperation<E = never> = (input?: Endpoint18_0Input) => Effect.Effect<Endpoint18_0Output, E>

export interface SkillApi<E = never> {
  readonly list: SkillListOperation<E>
}

export type Endpoint19_0Output = StreamValue<EffectValue<ReturnType<RawClient["server.event"]["event.subscribe"]>>>
export type EventSubscribeOperation<E = never> = () => Stream.Stream<Endpoint19_0Output, E>

export interface EventApi<E = never> {
  readonly subscribe: EventSubscribeOperation<E>
}

type Endpoint20_0Request = Parameters<RawClient["server.pty"]["pty.list"]>[0]
export type Endpoint20_0Input = { readonly location?: Endpoint20_0Request["query"]["location"] }
export type Endpoint20_0Output = EffectValue<ReturnType<RawClient["server.pty"]["pty.list"]>>
export type PtyListOperation<E = never> = (input?: Endpoint20_0Input) => Effect.Effect<Endpoint20_0Output, E>

type Endpoint20_1Request = Parameters<RawClient["server.pty"]["pty.create"]>[0]
export type Endpoint20_1Input = {
  readonly location?: Endpoint20_1Request["query"]["location"]
  readonly command?: Endpoint20_1Request["payload"]["command"]
  readonly args?: Endpoint20_1Request["payload"]["args"]
  readonly cwd?: Endpoint20_1Request["payload"]["cwd"]
  readonly title?: Endpoint20_1Request["payload"]["title"]
  readonly env?: Endpoint20_1Request["payload"]["env"]
}
export type Endpoint20_1Output = EffectValue<ReturnType<RawClient["server.pty"]["pty.create"]>>
export type PtyCreateOperation<E = never> = (input?: Endpoint20_1Input) => Effect.Effect<Endpoint20_1Output, E>

type Endpoint20_2Request = Parameters<RawClient["server.pty"]["pty.get"]>[0]
export type Endpoint20_2Input = {
  readonly ptyID: Endpoint20_2Request["params"]["ptyID"]
  readonly location?: Endpoint20_2Request["query"]["location"]
}
export type Endpoint20_2Output = EffectValue<ReturnType<RawClient["server.pty"]["pty.get"]>>
export type PtyGetOperation<E = never> = (input: Endpoint20_2Input) => Effect.Effect<Endpoint20_2Output, E>

type Endpoint20_3Request = Parameters<RawClient["server.pty"]["pty.update"]>[0]
export type Endpoint20_3Input = {
  readonly ptyID: Endpoint20_3Request["params"]["ptyID"]
  readonly location?: Endpoint20_3Request["query"]["location"]
  readonly title?: Endpoint20_3Request["payload"]["title"]
  readonly size?: Endpoint20_3Request["payload"]["size"]
}
export type Endpoint20_3Output = EffectValue<ReturnType<RawClient["server.pty"]["pty.update"]>>
export type PtyUpdateOperation<E = never> = (input: Endpoint20_3Input) => Effect.Effect<Endpoint20_3Output, E>

type Endpoint20_4Request = Parameters<RawClient["server.pty"]["pty.remove"]>[0]
export type Endpoint20_4Input = {
  readonly ptyID: Endpoint20_4Request["params"]["ptyID"]
  readonly location?: Endpoint20_4Request["query"]["location"]
}
export type Endpoint20_4Output = EffectValue<ReturnType<RawClient["server.pty"]["pty.remove"]>>
export type PtyRemoveOperation<E = never> = (input: Endpoint20_4Input) => Effect.Effect<Endpoint20_4Output, E>

export interface PtyApi<E = never> {
  readonly list: PtyListOperation<E>
  readonly create: PtyCreateOperation<E>
  readonly get: PtyGetOperation<E>
  readonly update: PtyUpdateOperation<E>
  readonly remove: PtyRemoveOperation<E>
}

type Endpoint21_0Request = Parameters<RawClient["server.shell"]["shell.list"]>[0]
export type Endpoint21_0Input = { readonly location?: Endpoint21_0Request["query"]["location"] }
export type Endpoint21_0Output = EffectValue<ReturnType<RawClient["server.shell"]["shell.list"]>>
export type ShellListOperation<E = never> = (input?: Endpoint21_0Input) => Effect.Effect<Endpoint21_0Output, E>

type Endpoint21_1Request = Parameters<RawClient["server.shell"]["shell.create"]>[0]
export type Endpoint21_1Input = {
  readonly location?: Endpoint21_1Request["query"]["location"]
  readonly command: Endpoint21_1Request["payload"]["command"]
  readonly cwd?: Endpoint21_1Request["payload"]["cwd"]
  readonly timeout: Endpoint21_1Request["payload"]["timeout"]
  readonly metadata?: Endpoint21_1Request["payload"]["metadata"]
}
export type Endpoint21_1Output = EffectValue<ReturnType<RawClient["server.shell"]["shell.create"]>>
export type ShellCreateOperation<E = never> = (input: Endpoint21_1Input) => Effect.Effect<Endpoint21_1Output, E>

type Endpoint21_2Request = Parameters<RawClient["server.shell"]["shell.get"]>[0]
export type Endpoint21_2Input = {
  readonly id: Endpoint21_2Request["params"]["id"]
  readonly location?: Endpoint21_2Request["query"]["location"]
}
export type Endpoint21_2Output = EffectValue<ReturnType<RawClient["server.shell"]["shell.get"]>>
export type ShellGetOperation<E = never> = (input: Endpoint21_2Input) => Effect.Effect<Endpoint21_2Output, E>

type Endpoint21_3Request = Parameters<RawClient["server.shell"]["shell.timeout"]>[0]
export type Endpoint21_3Input = {
  readonly id: Endpoint21_3Request["params"]["id"]
  readonly location?: Endpoint21_3Request["query"]["location"]
  readonly timeout: Endpoint21_3Request["payload"]["timeout"]
}
export type Endpoint21_3Output = EffectValue<ReturnType<RawClient["server.shell"]["shell.timeout"]>>
export type ShellTimeoutOperation<E = never> = (input: Endpoint21_3Input) => Effect.Effect<Endpoint21_3Output, E>

type Endpoint21_4Request = Parameters<RawClient["server.shell"]["shell.output"]>[0]
export type Endpoint21_4Input = {
  readonly id: Endpoint21_4Request["params"]["id"]
  readonly location?: Endpoint21_4Request["query"]["location"]
  readonly cursor?: Endpoint21_4Request["query"]["cursor"]
  readonly limit?: Endpoint21_4Request["query"]["limit"]
}
export type Endpoint21_4Output = EffectValue<ReturnType<RawClient["server.shell"]["shell.output"]>>
export type ShellOutputOperation<E = never> = (input: Endpoint21_4Input) => Effect.Effect<Endpoint21_4Output, E>

type Endpoint21_5Request = Parameters<RawClient["server.shell"]["shell.remove"]>[0]
export type Endpoint21_5Input = {
  readonly id: Endpoint21_5Request["params"]["id"]
  readonly location?: Endpoint21_5Request["query"]["location"]
}
export type Endpoint21_5Output = EffectValue<ReturnType<RawClient["server.shell"]["shell.remove"]>>
export type ShellRemoveOperation<E = never> = (input: Endpoint21_5Input) => Effect.Effect<Endpoint21_5Output, E>

export interface ShellApi<E = never> {
  readonly list: ShellListOperation<E>
  readonly create: ShellCreateOperation<E>
  readonly get: ShellGetOperation<E>
  readonly timeout: ShellTimeoutOperation<E>
  readonly output: ShellOutputOperation<E>
  readonly remove: ShellRemoveOperation<E>
}

type Endpoint22_0Request = Parameters<RawClient["server.question"]["question.request.list"]>[0]
export type Endpoint22_0Input = { readonly location?: Endpoint22_0Request["query"]["location"] }
export type Endpoint22_0Output = EffectValue<ReturnType<RawClient["server.question"]["question.request.list"]>>
export type QuestionRequestListOperation<E = never> = (
  input?: Endpoint22_0Input,
) => Effect.Effect<Endpoint22_0Output, E>

type Endpoint22_1Request = Parameters<RawClient["server.question"]["session.question.list"]>[0]
export type Endpoint22_1Input = { readonly sessionID: Endpoint22_1Request["params"]["sessionID"] }
export type Endpoint22_1Output = EffectValue<ReturnType<RawClient["server.question"]["session.question.list"]>>["data"]
export type QuestionListOperation<E = never> = (input: Endpoint22_1Input) => Effect.Effect<Endpoint22_1Output, E>

type Endpoint22_2Request = Parameters<RawClient["server.question"]["session.question.reply"]>[0]
export type Endpoint22_2Input = {
  readonly sessionID: Endpoint22_2Request["params"]["sessionID"]
  readonly requestID: Endpoint22_2Request["params"]["requestID"]
  readonly answers: Endpoint22_2Request["payload"]["answers"]
}
export type Endpoint22_2Output = EffectValue<ReturnType<RawClient["server.question"]["session.question.reply"]>>
export type QuestionReplyOperation<E = never> = (input: Endpoint22_2Input) => Effect.Effect<Endpoint22_2Output, E>

type Endpoint22_3Request = Parameters<RawClient["server.question"]["session.question.reject"]>[0]
export type Endpoint22_3Input = {
  readonly sessionID: Endpoint22_3Request["params"]["sessionID"]
  readonly requestID: Endpoint22_3Request["params"]["requestID"]
}
export type Endpoint22_3Output = EffectValue<ReturnType<RawClient["server.question"]["session.question.reject"]>>
export type QuestionRejectOperation<E = never> = (input: Endpoint22_3Input) => Effect.Effect<Endpoint22_3Output, E>

export interface QuestionApi<E = never> {
  readonly request: { readonly list: QuestionRequestListOperation<E> }
  readonly list: QuestionListOperation<E>
  readonly reply: QuestionReplyOperation<E>
  readonly reject: QuestionRejectOperation<E>
}

type Endpoint23_0Request = Parameters<RawClient["server.reference"]["reference.list"]>[0]
export type Endpoint23_0Input = { readonly location?: Endpoint23_0Request["query"]["location"] }
export type Endpoint23_0Output = EffectValue<ReturnType<RawClient["server.reference"]["reference.list"]>>
export type ReferenceListOperation<E = never> = (input?: Endpoint23_0Input) => Effect.Effect<Endpoint23_0Output, E>

export interface ReferenceApi<E = never> {
  readonly list: ReferenceListOperation<E>
}

type Endpoint24_0Request = Parameters<RawClient["server.projectCopy"]["projectCopy.create"]>[0]
export type Endpoint24_0Input = {
  readonly projectID: Endpoint24_0Request["params"]["projectID"]
  readonly location?: Endpoint24_0Request["query"]["location"]
  readonly strategy: Endpoint24_0Request["payload"]["strategy"]
  readonly directory: Endpoint24_0Request["payload"]["directory"]
  readonly name?: Endpoint24_0Request["payload"]["name"]
}
export type Endpoint24_0Output = EffectValue<ReturnType<RawClient["server.projectCopy"]["projectCopy.create"]>>
export type ProjectCopyCreateOperation<E = never> = (input: Endpoint24_0Input) => Effect.Effect<Endpoint24_0Output, E>

type Endpoint24_1Request = Parameters<RawClient["server.projectCopy"]["projectCopy.remove"]>[0]
export type Endpoint24_1Input = {
  readonly projectID: Endpoint24_1Request["params"]["projectID"]
  readonly location?: Endpoint24_1Request["query"]["location"]
  readonly directory: Endpoint24_1Request["payload"]["directory"]
  readonly force: Endpoint24_1Request["payload"]["force"]
}
export type Endpoint24_1Output = EffectValue<ReturnType<RawClient["server.projectCopy"]["projectCopy.remove"]>>
export type ProjectCopyRemoveOperation<E = never> = (input: Endpoint24_1Input) => Effect.Effect<Endpoint24_1Output, E>

type Endpoint24_2Request = Parameters<RawClient["server.projectCopy"]["projectCopy.refresh"]>[0]
export type Endpoint24_2Input = {
  readonly projectID: Endpoint24_2Request["params"]["projectID"]
  readonly location?: Endpoint24_2Request["query"]["location"]
}
export type Endpoint24_2Output = EffectValue<ReturnType<RawClient["server.projectCopy"]["projectCopy.refresh"]>>
export type ProjectCopyRefreshOperation<E = never> = (input: Endpoint24_2Input) => Effect.Effect<Endpoint24_2Output, E>

export interface ProjectCopyApi<E = never> {
  readonly create: ProjectCopyCreateOperation<E>
  readonly remove: ProjectCopyRemoveOperation<E>
  readonly refresh: ProjectCopyRefreshOperation<E>
}

type Endpoint25_0Request = Parameters<RawClient["server.vcs"]["vcs.status"]>[0]
export type Endpoint25_0Input = { readonly location?: Endpoint25_0Request["query"]["location"] }
export type Endpoint25_0Output = EffectValue<ReturnType<RawClient["server.vcs"]["vcs.status"]>>
export type VcsStatusOperation<E = never> = (input?: Endpoint25_0Input) => Effect.Effect<Endpoint25_0Output, E>

type Endpoint25_1Request = Parameters<RawClient["server.vcs"]["vcs.diff"]>[0]
export type Endpoint25_1Input = {
  readonly location?: Endpoint25_1Request["query"]["location"]
  readonly mode: Endpoint25_1Request["query"]["mode"]
  readonly context?: Endpoint25_1Request["query"]["context"]
}
export type Endpoint25_1Output = EffectValue<ReturnType<RawClient["server.vcs"]["vcs.diff"]>>
export type VcsDiffOperation<E = never> = (input: Endpoint25_1Input) => Effect.Effect<Endpoint25_1Output, E>

export interface VcsApi<E = never> {
  readonly status: VcsStatusOperation<E>
  readonly diff: VcsDiffOperation<E>
}

export type Endpoint26_0Output = EffectValue<ReturnType<RawClient["server.debug"]["debug.location"]>>
export type DebugLocationListOperation<E = never> = () => Effect.Effect<Endpoint26_0Output, E>

type Endpoint26_1Request = Parameters<RawClient["server.debug"]["debug.location.evict"]>[0]
export type Endpoint26_1Input = { readonly location?: Endpoint26_1Request["query"]["location"] }
export type Endpoint26_1Output = EffectValue<ReturnType<RawClient["server.debug"]["debug.location.evict"]>>
export type DebugLocationEvictOperation<E = never> = (input?: Endpoint26_1Input) => Effect.Effect<Endpoint26_1Output, E>

export interface DebugApi<E = never> {
  readonly location: { readonly list: DebugLocationListOperation<E>; readonly evict: DebugLocationEvictOperation<E> }
}

export interface AppApi<E = never> {
  readonly health: HealthApi<E>
  readonly server: ServerApi<E>
  readonly location: LocationApi<E>
  readonly agent: AgentApi<E>
  readonly plugin: PluginApi<E>
  readonly session: SessionApi<E>
  readonly message: MessageApi<E>
  readonly model: ModelApi<E>
  readonly generate: GenerateApi<E>
  readonly provider: ProviderApi<E>
  readonly integration: IntegrationApi<E>
  readonly mcp: McpApi<E>
  readonly credential: CredentialApi<E>
  readonly project: ProjectApi<E>
  readonly form: FormApi<E>
  readonly permission: PermissionApi<E>
  readonly file: FileApi<E>
  readonly command: CommandApi<E>
  readonly skill: SkillApi<E>
  readonly event: EventApi<E>
  readonly pty: PtyApi<E>
  readonly shell: ShellApi<E>
  readonly question: QuestionApi<E>
  readonly reference: ReferenceApi<E>
  readonly projectCopy: ProjectCopyApi<E>
  readonly vcs: VcsApi<E>
  readonly debug: DebugApi<E>
}
