summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-05-02 23:42:40 -0400
committerGitHub <[email protected]>2026-05-02 23:42:40 -0400
commitbd32252a7e3570f4501d7e217ad2380536dea095 (patch)
tree5adfd93e99b160723efcc6304620f0d18f4a78c7 /packages
parent1717d636a24c0100d36c39deacbd875e0fe93b40 (diff)
downloadopencode-bd32252a7e3570f4501d7e217ad2380536dea095.tar.gz
opencode-bd32252a7e3570f4501d7e217ad2380536dea095.zip
refactor(cli/providers): Stage 4 — drop inline AppRuntime.runPromise calls (#25532)
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/cli/cmd/providers.ts40
1 files changed, 13 insertions, 27 deletions
diff --git a/packages/opencode/src/cli/cmd/providers.ts b/packages/opencode/src/cli/cmd/providers.ts
index 3dce55d32..081bcece0 100644
--- a/packages/opencode/src/cli/cmd/providers.ts
+++ b/packages/opencode/src/cli/cmd/providers.ts
@@ -239,19 +239,16 @@ export const ProvidersListCommand = effectCmd({
// Lists global credentials + provider env vars; no project instance needed.
instance: false,
handler: Effect.fn("Cli.providers.list")(function* (_args) {
+ const authSvc = yield* Auth.Service
+ const modelsDev = yield* ModelsDev.Service
yield* Effect.promise(async () => {
UI.empty()
const authPath = path.join(Global.Path.data, "auth.json")
const homedir = os.homedir()
const displayPath = authPath.startsWith(homedir) ? authPath.replace(homedir, "~") : authPath
prompts.intro(`Credentials ${UI.Style.TEXT_DIM}${displayPath}`)
- const results = await AppRuntime.runPromise(
- Effect.gen(function* () {
- const auth = yield* Auth.Service
- return Object.entries(yield* auth.all())
- }),
- )
- const database = await getModels()
+ const results = Object.entries(await Effect.runPromise(authSvc.all()))
+ const database = await Effect.runPromise(modelsDev.get())
for (const [providerID, result] of results) {
const name = database[providerID]?.name || providerID
@@ -307,6 +304,8 @@ export const ProvidersLoginCommand = effectCmd({
type: "string",
}),
handler: Effect.fn("Cli.providers.login")(function* (args) {
+ const cfgSvc = yield* Config.Service
+ const pluginSvc = yield* Plugin.Service
yield* Effect.promise(async () => {
UI.empty()
prompts.intro("Add credential")
@@ -342,7 +341,7 @@ export const ProvidersLoginCommand = effectCmd({
}
await refreshModels().catch(() => {})
- const config = await AppRuntime.runPromise(Config.Service.use((cfg) => cfg.get()))
+ const config = await Effect.runPromise(cfgSvc.get())
const disabled = new Set(config.disabled_providers ?? [])
const enabled = config.enabled_providers ? new Set(config.enabled_providers) : undefined
@@ -356,12 +355,7 @@ export const ProvidersLoginCommand = effectCmd({
}
return filtered
})
- const hooks = await AppRuntime.runPromise(
- Effect.gen(function* () {
- const plugin = yield* Plugin.Service
- return yield* plugin.list()
- }),
- )
+ const hooks = await Effect.runPromise(pluginSvc.list())
const priority: Record<string, number> = {
opencode: 0,
@@ -500,20 +494,17 @@ export const ProvidersLogoutCommand = effectCmd({
// Removes a global auth credential; no project instance needed.
instance: false,
handler: Effect.fn("Cli.providers.logout")(function* (_args) {
+ const authSvc = yield* Auth.Service
+ const modelsDev = yield* ModelsDev.Service
yield* Effect.promise(async () => {
UI.empty()
- const credentials: Array<[string, Auth.Info]> = await AppRuntime.runPromise(
- Effect.gen(function* () {
- const auth = yield* Auth.Service
- return Object.entries(yield* auth.all())
- }),
- )
+ const credentials: Array<[string, Auth.Info]> = Object.entries(await Effect.runPromise(authSvc.all()))
prompts.intro("Remove credential")
if (credentials.length === 0) {
prompts.log.error("No credentials found")
return
}
- const database = await getModels()
+ const database = await Effect.runPromise(modelsDev.get())
const selected = await prompts.select({
message: "Select provider",
options: credentials.map(([key, value]) => ({
@@ -523,12 +514,7 @@ export const ProvidersLogoutCommand = effectCmd({
})
if (prompts.isCancel(selected)) throw new UI.CancelledError()
const providerID = selected as string
- await AppRuntime.runPromise(
- Effect.gen(function* () {
- const auth = yield* Auth.Service
- yield* auth.remove(providerID)
- }),
- )
+ await Effect.runPromise(authSvc.remove(providerID))
prompts.outro("Logout successful")
})
}),