|
@@ -1,8 +1,9 @@
|
|
|
import { LayerNode } from "@opencode-ai/core/effect/layer-node"
|
|
import { LayerNode } from "@opencode-ai/core/effect/layer-node"
|
|
|
|
|
+import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder"
|
|
|
import { httpClient } from "@opencode-ai/core/effect/app-node-platform"
|
|
import { httpClient } from "@opencode-ai/core/effect/app-node-platform"
|
|
|
import { Effect, Layer, Schema, Context, Stream } from "effect"
|
|
import { Effect, Layer, Schema, Context, Stream } from "effect"
|
|
|
import { serviceUse } from "@opencode-ai/core/effect/service-use"
|
|
import { serviceUse } from "@opencode-ai/core/effect/service-use"
|
|
|
-import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"
|
|
|
|
|
|
|
+import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"
|
|
|
import { withTransientReadRetry } from "@/util/effect-http-client"
|
|
import { withTransientReadRetry } from "@/util/effect-http-client"
|
|
|
import { errorMessage } from "@/util/error"
|
|
import { errorMessage } from "@/util/error"
|
|
|
import { ChildProcess } from "effect/unstable/process"
|
|
import { ChildProcess } from "effect/unstable/process"
|
|
@@ -82,7 +83,7 @@ export class Service extends Context.Service<Service, Interface>()("@opencode/In
|
|
|
|
|
|
|
|
export const use = serviceUse(Service)
|
|
export const use = serviceUse(Service)
|
|
|
|
|
|
|
|
-export const layer: Layer.Layer<Service, never, HttpClient.HttpClient | AppProcess.Service> = Layer.effect(
|
|
|
|
|
|
|
+const layer: Layer.Layer<Service, never, HttpClient.HttpClient | AppProcess.Service> = Layer.effect(
|
|
|
Service,
|
|
Service,
|
|
|
Effect.gen(function* () {
|
|
Effect.gen(function* () {
|
|
|
const http = yield* HttpClient.HttpClient
|
|
const http = yield* HttpClient.HttpClient
|
|
@@ -324,14 +325,12 @@ export const layer: Layer.Layer<Service, never, HttpClient.HttpClient | AppProce
|
|
|
}),
|
|
}),
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
-export const defaultLayer = layer.pipe(Layer.provide(FetchHttpClient.layer), Layer.provide(AppProcess.defaultLayer))
|
|
|
|
|
|
|
+export const node = LayerNode.make({ service: Service, layer: layer, deps: [httpClient, AppProcess.node] })
|
|
|
|
|
|
|
|
-const { runPromise } = makeRuntime(Service, defaultLayer)
|
|
|
|
|
|
|
+const { runPromise } = makeRuntime(Service, AppNodeBuilder.build(node))
|
|
|
|
|
|
|
|
export const latest = (...args: Parameters<Interface["latest"]>) => runPromise((s) => s.latest(...args))
|
|
export const latest = (...args: Parameters<Interface["latest"]>) => runPromise((s) => s.latest(...args))
|
|
|
export const method = () => runPromise((s) => s.method())
|
|
export const method = () => runPromise((s) => s.method())
|
|
|
export const upgrade = (...args: Parameters<Interface["upgrade"]>) => runPromise((s) => s.upgrade(...args))
|
|
export const upgrade = (...args: Parameters<Interface["upgrade"]>) => runPromise((s) => s.upgrade(...args))
|
|
|
|
|
|
|
|
-export const node = LayerNode.make({ service: Service, layer: layer, deps: [httpClient, AppProcess.node] })
|
|
|
|
|
-
|
|
|
|
|
export * as Installation from "."
|
|
export * as Installation from "."
|