api.types.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { Effect } from "effect"
  2. import { OpenCode as EffectOpenCode, type AppApi as EffectApi } from "../src/effect"
  3. type EffectClient = Effect.Success<ReturnType<typeof EffectOpenCode.make>>
  4. type PromiseClient = ReturnType<typeof import("../src/promise").OpenCode.make>
  5. declare const effectClient: EffectClient
  6. declare const promiseClient: PromiseClient
  7. const effectApi: EffectApi<unknown> = effectClient
  8. declare const sessionID: Parameters<typeof effectApi.session.instructions.entry.list>[0]["sessionID"]
  9. const effectList: Effect.Effect<
  10. ReadonlyArray<{ readonly key: string; readonly value: unknown }>,
  11. unknown
  12. > = effectApi.session.instructions.entry.list({ sessionID })
  13. const effectPut: Effect.Effect<void, unknown> = effectApi.session.instructions.entry.put({
  14. sessionID,
  15. key: "review-notes",
  16. value: { text: "Check the diff" },
  17. })
  18. const effectRemove: Effect.Effect<void, unknown> = effectApi.session.instructions.entry.remove({
  19. sessionID,
  20. key: "review-notes",
  21. })
  22. const promiseList: Promise<ReadonlyArray<{ readonly key: string; readonly value: unknown }>> =
  23. promiseClient.session.instructions.entry.list({ sessionID: "ses_test" })
  24. const promisePut: Promise<void> = promiseClient.session.instructions.entry.put({
  25. sessionID: "ses_test",
  26. key: "review-notes",
  27. value: { text: "Check the diff" },
  28. })
  29. const promiseRemove: Promise<void> = promiseClient.session.instructions.entry.remove({
  30. sessionID: "ses_test",
  31. key: "review-notes",
  32. })
  33. void [effectList, effectPut, effectRemove, promiseList, promisePut, promiseRemove]