session.ts 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. // Generated by @opencode-ai/httpapi-codegen. Do not edit.
  2. import { Effect, Schema } from "effect"
  3. import { Sse } from "effect/unstable/encoding"
  4. import { HttpClientError } from "effect/unstable/http"
  5. import { HttpApiClient, HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi"
  6. import { ClientError } from "./client-error"
  7. const Endpoint0Success = Schema.String
  8. const Endpoint1Query = Schema.Struct({ archived: Schema.optionalKey(Schema.Union([Schema.Boolean, Schema.Undefined])) })
  9. const Endpoint1Success = Schema.Array(Schema.String)
  10. const Endpoint2Params = Schema.Struct({ sessionID: Schema.String })
  11. const Endpoint2Success = Schema.Struct({ data: Schema.String })
  12. class Endpoint2Error0Class extends Schema.TaggedErrorClass<Endpoint2Error0Class>("Missing")("Missing", {
  13. message: Schema.String,
  14. }) {}
  15. const Endpoint2Error0 = Endpoint2Error0Class.annotate({ httpApiStatus: 404 })
  16. const Endpoint3Params = Schema.Struct({ sessionID: Schema.String })
  17. const Endpoint3Success = Schema.Void.annotate({ httpApiStatus: 204 })
  18. const Endpoint4Params = Schema.Struct({ sessionID: Schema.String })
  19. const Endpoint4Query = Schema.Struct({ dryRun: Schema.optionalKey(Schema.Union([Schema.Boolean, Schema.Undefined])) })
  20. const Endpoint4Headers = Schema.Struct({ traceID: Schema.String })
  21. const Endpoint4Payload0 = Schema.Union([
  22. Schema.Struct({ type: Schema.Literal("local"), command: Schema.Array(Schema.String) }),
  23. Schema.Struct({ type: Schema.Literal("remote"), url: Schema.String }),
  24. ])
  25. const Endpoint4Success = Schema.String
  26. export const Group0 = HttpApiGroup.make("session", { topLevel: false })
  27. .add(HttpApiEndpoint.make("GET")("health", "/session/health", { success: Endpoint0Success }))
  28. .add(HttpApiEndpoint.make("GET")("list", "/session", { query: Endpoint1Query, success: Endpoint1Success }))
  29. .add(
  30. HttpApiEndpoint.make("GET")("get", "/session/:sessionID", {
  31. params: Endpoint2Params,
  32. success: Endpoint2Success,
  33. error: Endpoint2Error0,
  34. }),
  35. )
  36. .add(
  37. HttpApiEndpoint.make("POST")("interrupt", "/session/:sessionID/interrupt", {
  38. params: Endpoint3Params,
  39. success: Endpoint3Success,
  40. }),
  41. )
  42. .add(
  43. HttpApiEndpoint.make("POST")("configure", "/session/:sessionID/configure", {
  44. params: Endpoint4Params,
  45. query: Endpoint4Query,
  46. headers: Endpoint4Headers,
  47. payload: Endpoint4Payload0,
  48. success: Endpoint4Success,
  49. }),
  50. )
  51. type RawGroup = HttpApiClient.Client.Group<typeof Group0, never, never>
  52. const Endpoint0DeclaredError = Schema.Never
  53. const mapEndpoint0Error = (error: unknown) =>
  54. HttpClientError.isHttpClientError(error) || Schema.isSchemaError(error) || Sse.Retry.is(error)
  55. ? new ClientError({ cause: error })
  56. : Schema.is(Endpoint0DeclaredError)(error)
  57. ? error
  58. : new ClientError({ cause: error })
  59. const Endpoint0 = (raw: RawGroup) => () => raw["health"]({}).pipe(Effect.mapError(mapEndpoint0Error))
  60. type Endpoint1Input = { readonly archived?: (typeof Endpoint1Query.Type)["archived"] }
  61. const Endpoint1DeclaredError = Schema.Never
  62. const mapEndpoint1Error = (error: unknown) =>
  63. HttpClientError.isHttpClientError(error) || Schema.isSchemaError(error) || Sse.Retry.is(error)
  64. ? new ClientError({ cause: error })
  65. : Schema.is(Endpoint1DeclaredError)(error)
  66. ? error
  67. : new ClientError({ cause: error })
  68. const Endpoint1 = (raw: RawGroup) => (input?: Endpoint1Input) =>
  69. raw["list"]({ query: { archived: input?.["archived"] } }).pipe(Effect.mapError(mapEndpoint1Error))
  70. type Endpoint2Input = { readonly sessionID: (typeof Endpoint2Params.Type)["sessionID"] }
  71. const Endpoint2DeclaredError = Schema.Union([Endpoint2Error0])
  72. const mapEndpoint2Error = (error: unknown) =>
  73. HttpClientError.isHttpClientError(error) || Schema.isSchemaError(error) || Sse.Retry.is(error)
  74. ? new ClientError({ cause: error })
  75. : Schema.is(Endpoint2DeclaredError)(error)
  76. ? error
  77. : new ClientError({ cause: error })
  78. const Endpoint2 = (raw: RawGroup) => (input: Endpoint2Input) =>
  79. raw["get"]({ params: { sessionID: input["sessionID"] } }).pipe(
  80. Effect.mapError(mapEndpoint2Error),
  81. Effect.map((value) => value.data),
  82. )
  83. type Endpoint3Input = { readonly sessionID: (typeof Endpoint3Params.Type)["sessionID"] }
  84. const Endpoint3DeclaredError = Schema.Never
  85. const mapEndpoint3Error = (error: unknown) =>
  86. HttpClientError.isHttpClientError(error) || Schema.isSchemaError(error) || Sse.Retry.is(error)
  87. ? new ClientError({ cause: error })
  88. : Schema.is(Endpoint3DeclaredError)(error)
  89. ? error
  90. : new ClientError({ cause: error })
  91. const Endpoint3 = (raw: RawGroup) => (input: Endpoint3Input) =>
  92. raw["interrupt"]({ params: { sessionID: input["sessionID"] } }).pipe(Effect.mapError(mapEndpoint3Error))
  93. type Endpoint4Request = Parameters<RawGroup["configure"]>[0]
  94. type Endpoint4Input = {
  95. readonly sessionID: (typeof Endpoint4Params.Type)["sessionID"]
  96. readonly dryRun?: (typeof Endpoint4Query.Type)["dryRun"]
  97. readonly traceID: (typeof Endpoint4Headers.Type)["traceID"]
  98. readonly payload: typeof Endpoint4Payload0.Type
  99. }
  100. const Endpoint4DeclaredError = Schema.Never
  101. const mapEndpoint4Error = (error: unknown) =>
  102. HttpClientError.isHttpClientError(error) || Schema.isSchemaError(error) || Sse.Retry.is(error)
  103. ? new ClientError({ cause: error })
  104. : Schema.is(Endpoint4DeclaredError)(error)
  105. ? error
  106. : new ClientError({ cause: error })
  107. const Endpoint4 = (raw: RawGroup) => (input: Endpoint4Input) =>
  108. raw["configure"]({
  109. params: { sessionID: input["sessionID"] },
  110. query: { dryRun: input["dryRun"] },
  111. headers: { traceID: input["traceID"] },
  112. payload: input["payload"],
  113. } as Endpoint4Request).pipe(Effect.mapError(mapEndpoint4Error))
  114. export const adaptGroup0 = (raw: RawGroup) => ({
  115. health: Endpoint0(raw),
  116. list: Endpoint1(raw),
  117. get: Endpoint2(raw),
  118. interrupt: Endpoint3(raw),
  119. configure: Endpoint4(raw),
  120. })