import { Effect } from "effect" import { OpenCode as EffectOpenCode, type AppApi as EffectApi } from "../src/effect" import type { Session } from "@opencode-ai/schema/session" type EffectClient = Effect.Success> type PromiseClient = ReturnType declare const effectClient: EffectClient declare const promiseClient: PromiseClient const effectApi: EffectApi = effectClient const effectSession: Effect.Effect = effectClient.session.get({ sessionID: "ses_test" as Session.ID, }) declare const sessionID: Parameters[0]["sessionID"] const effectList: Effect.Effect< ReadonlyArray<{ readonly key: string; readonly value: unknown }>, unknown > = effectApi.session.instructions.entry.list({ sessionID }) const effectPut: Effect.Effect = effectApi.session.instructions.entry.put({ sessionID, key: "review-notes", value: { text: "Check the diff" }, }) const effectRemove: Effect.Effect = effectApi.session.instructions.entry.remove({ sessionID, key: "review-notes", }) const promiseList: Promise> = promiseClient.session.instructions.entry.list({ sessionID: "ses_test" }) const promisePut: Promise = promiseClient.session.instructions.entry.put({ sessionID: "ses_test", key: "review-notes", value: { text: "Check the diff" }, }) const promiseRemove: Promise = promiseClient.session.instructions.entry.remove({ sessionID: "ses_test", key: "review-notes", }) void [effectSession, effectList, effectPut, effectRemove, promiseList, promisePut, promiseRemove]