summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-05-02 15:11:01 -0400
committerGitHub <[email protected]>2026-05-02 15:11:01 -0400
commit05b82a6a30a48de393bd929de457c42fdb15c622 (patch)
treeffa9e9763e26572e1ea82c830d285930deb73b4b /packages
parent6cd02c05c26958ef87ab6d00a2215fb8ade95e3f (diff)
downloadopencode-05b82a6a30a48de393bd929de457c42fdb15c622.tar.gz
opencode-05b82a6a30a48de393bd929de457c42fdb15c622.zip
refactor(cli): drop ModelsDev Promise compat shim (#25460)
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/cli/cmd/github.ts2
-rw-r--r--packages/opencode/src/cli/cmd/providers.ts11
-rw-r--r--packages/opencode/src/provider/models.ts8
3 files changed, 8 insertions, 13 deletions
diff --git a/packages/opencode/src/cli/cmd/github.ts b/packages/opencode/src/cli/cmd/github.ts
index b31825fd9..106d48466 100644
--- a/packages/opencode/src/cli/cmd/github.ts
+++ b/packages/opencode/src/cli/cmd/github.ts
@@ -212,7 +212,7 @@ export const GithubInstallCommand = cmd({
const app = await getAppInfo()
await installGitHubApp()
- const providers = await ModelsDev.get().then((p) => {
+ const providers = await AppRuntime.runPromise(ModelsDev.Service.use((s) => s.get())).then((p) => {
// TODO: add guide for copilot, for now just hide it
delete p["github-copilot"]
return p
diff --git a/packages/opencode/src/cli/cmd/providers.ts b/packages/opencode/src/cli/cmd/providers.ts
index 278522555..c383e79ce 100644
--- a/packages/opencode/src/cli/cmd/providers.ts
+++ b/packages/opencode/src/cli/cmd/providers.ts
@@ -4,6 +4,9 @@ import { cmd } from "./cmd"
import * as prompts from "@clack/prompts"
import { UI } from "../ui"
import { ModelsDev } from "@/provider/models"
+
+const getModels = () => AppRuntime.runPromise(ModelsDev.Service.use((s) => s.get()))
+const refreshModels = () => AppRuntime.runPromise(ModelsDev.Service.use((s) => s.refresh(true)))
import { map, pipe, sortBy, values } from "remeda"
import path from "path"
import os from "os"
@@ -245,7 +248,7 @@ export const ProvidersListCommand = cmd({
return Object.entries(yield* auth.all())
}),
)
- const database = await ModelsDev.get()
+ const database = await getModels()
for (const [providerID, result] of results) {
const name = database[providerID]?.name || providerID
@@ -334,14 +337,14 @@ export const ProvidersLoginCommand = cmd({
prompts.outro("Done")
return
}
- await ModelsDev.refresh(true).catch(() => {})
+ await refreshModels().catch(() => {})
const config = await AppRuntime.runPromise(Config.Service.use((cfg) => cfg.get()))
const disabled = new Set(config.disabled_providers ?? [])
const enabled = config.enabled_providers ? new Set(config.enabled_providers) : undefined
- const providers = await ModelsDev.get().then((x) => {
+ const providers = await getModels().then((x) => {
const filtered: Record<string, (typeof x)[string]> = {}
for (const [key, value] of Object.entries(x)) {
if ((enabled ? enabled.has(key) : true) && !disabled.has(key)) {
@@ -505,7 +508,7 @@ export const ProvidersLogoutCommand = cmd({
prompts.log.error("No credentials found")
return
}
- const database = await ModelsDev.get()
+ const database = await getModels()
const selected = await prompts.select({
message: "Select provider",
options: credentials.map(([key, value]) => ({
diff --git a/packages/opencode/src/provider/models.ts b/packages/opencode/src/provider/models.ts
index d3f9fa9ea..77e217eb7 100644
--- a/packages/opencode/src/provider/models.ts
+++ b/packages/opencode/src/provider/models.ts
@@ -7,7 +7,6 @@ import { Flag } from "@opencode-ai/core/flag/flag"
import { Flock } from "@opencode-ai/core/util/flock"
import { Hash } from "@opencode-ai/core/util/hash"
import { AppFileSystem } from "@opencode-ai/core/filesystem"
-import { makeRuntime } from "@/effect/run-service"
import { withTransientReadRetry } from "@/util/effect-http-client"
const Cost = Schema.Struct({
@@ -196,11 +195,4 @@ export const defaultLayer: Layer.Layer<Service> = layer.pipe(
Layer.provide(AppFileSystem.defaultLayer),
)
-// Promise-style compat for callers in Promise-context (Hono routes, legacy CLI handlers).
-// makeRuntime uses the shared memoMap so this runtime's Service instance is the same one
-// AppRuntime sees — Effect callers and Promise callers operate on the same cache.
-const runtime = makeRuntime(Service, defaultLayer)
-export const get = () => runtime.runPromise((s) => s.get())
-export const refresh = (force = false) => runtime.runPromise((s) => s.refresh(force))
-
export * as ModelsDev from "./models"