standalone-owner.ts 738 B

123456789101112131415161718192021
  1. import { Effect } from "effect"
  2. import { Service } from "@opencode-ai/client/effect/service"
  3. import path from "node:path"
  4. import { Standalone } from "../../src/services/standalone"
  5. process.chdir(path.join(import.meta.dir, "../../../.."))
  6. await Effect.runPromise(
  7. Effect.scoped(
  8. Effect.gen(function* () {
  9. const endpoint = yield* Standalone.start({
  10. command: [process.execPath, path.join(import.meta.dir, "../../src/index.ts"), "serve"],
  11. })
  12. const response = yield* Effect.promise(() =>
  13. fetch(new URL("/api/health", endpoint.url), { headers: Service.headers(endpoint) }),
  14. )
  15. console.log(`${endpoint.pid} ${endpoint.url} ${response.status}`)
  16. return yield* Effect.never
  17. }),
  18. ),
  19. )