import { FetchHttpClient, HttpClient, HttpClientRequest } from "@effect/platform";
import { Config, Effect, Redacted } from "effect";
const generate = Effect.gen(function* () {
const apiKey = yield* Config.redacted("PHASEO_API_KEY");
const client = yield* HttpClient.HttpClient;
const request = HttpClientRequest.post(
"https://api.phaseo.app/v1/chat/completions",
).pipe(
HttpClientRequest.bearerToken(Redacted.value(apiKey)),
HttpClientRequest.jsonBody({
model: "openai/gpt-5-nano",
messages: [{ role: "user", content: "Reply with only: ok" }],
}),
);
return yield* client.execute(request).pipe(
Effect.flatMap((response) => response.json),
);
});
const runnable = generate.pipe(Effect.provide(FetchHttpClient.layer));