Compare commits

...
2 changed files with 22 additions and 1 deletions

No files matched your search

+6 -1
View File
@@ -11,6 +11,7 @@ import type { LayerNode } from "@opencode/util/effect/layer-node"
import { Context, Effect, Layer, ManagedRuntime, Scope } from "effect"
import { HttpEffect, HttpRouter, HttpServer, HttpServerRequest } from "effect/unstable/http"
import { context, layer, type LogOptions } from "../logging"
import pkg from "../../package.json"
import { OwnedFetch } from "./fetch"
import { SdkInstances } from "./instances"
@@ -35,7 +36,11 @@ export const create = Effect.fn("EmbeddedHost.create")(function* <R = never>(
createEmbeddedRoutes(
{
...server,
app: { ...server.app, name: server.app?.name ?? "sdk" },
app: {
name: server.app?.name ?? "sdk",
version: server.app?.version ?? pkg.version,
channel: server.app?.channel ?? "latest",
},
database: { path: ":memory:", ...server.database },
},
workspaceProviders
+16
View File
@@ -12,6 +12,7 @@ import { Deferred, Effect, Fiber, Latch, Layer, Option, Schedule, Stream } from
import { testEffect } from "../../core/test/lib/effect"
import { tmpdir } from "../../core/test/fixture/tmpdir"
import type { OpenCodeEvent } from "../src/effect"
import pkg from "../package.json"
const it = testEffect(Layer.empty)
type Sdk = typeof import("../src/effect")
@@ -89,6 +90,21 @@ for (const selection of ["explicit", "default"] as const) {
const requests = yield* llm.requests()
expect(requests).toHaveLength(1)
expect(requests[0]?.model).toMatchObject({ provider: "custom", id: "fictional-chat" })
const session = yield* opencode.sessions.create({ location: location(fixture) })
yield* opencode.sessions.switchModel({
sessionID: session.id,
model: fixture.sdk.Model.Ref.make({
providerID: fixture.sdk.Provider.ID.make("custom"),
id: fixture.sdk.Model.ID.make("fictional-chat"),
}),
})
yield* opencode.sessions.prompt({ sessionID: session.id, text: "Say ready" })
yield* llm.wait(2)
yield* opencode.sessions.interrupt({ sessionID: session.id })
expect((yield* llm.requests())[1]?.http?.headers?.["User-Agent"]).toBe(
`opencode/latest/${pkg.version}/sdk`,
)
}),
),
)