generated-consumer.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import { Effect, Stream } from "effect"
  2. import { HttpClient } from "effect/unstable/http"
  3. import { ClientError, OpenCode } from "./generated"
  4. import { Missing } from "./fixture"
  5. export const program = OpenCode.make().pipe(
  6. Effect.map((client) => {
  7. const health = client.session.health()
  8. const list = client.session.list()
  9. const filtered = client.session.list({ archived: true })
  10. const get = client.session.get({ sessionID: "session" })
  11. const interrupt = client.session.interrupt({ sessionID: "session" })
  12. const configure = client.session.configure({
  13. sessionID: "session",
  14. dryRun: true,
  15. traceID: "trace",
  16. payload: { type: "local", command: ["opencode"] },
  17. })
  18. const status = client.status()
  19. const subscribe = client.event.subscribe()
  20. const _health: Effect.Effect<string, ClientError> = health
  21. const _list: Effect.Effect<ReadonlyArray<string>, ClientError> = list
  22. const _filtered: Effect.Effect<ReadonlyArray<string>, ClientError> = filtered
  23. const _get: Effect.Effect<string, Missing | ClientError> = get
  24. const _interrupt: Effect.Effect<void, ClientError> = interrupt
  25. const _configure: Effect.Effect<string, ClientError> = configure
  26. const _status: Effect.Effect<string, ClientError> = status
  27. const _subscribe: Stream.Stream<{ readonly type: string }, ClientError> = subscribe
  28. return { _health, _list, _filtered, _get, _interrupt, _configure, _status, _subscribe }
  29. }),
  30. )
  31. const _requiresHttpClient: Effect.Effect<unknown, never, HttpClient.HttpClient> = program