fix(opencode): properly show authed providers on /connect command (#39915)
This commit is contained in:
@@ -2,6 +2,7 @@ import { ProviderAuth } from "@/provider/auth"
|
|||||||
import { Config } from "@/config/config"
|
import { Config } from "@/config/config"
|
||||||
import { ModelsDev } from "@opencode-ai/core/models-dev"
|
import { ModelsDev } from "@opencode-ai/core/models-dev"
|
||||||
import { Provider } from "@/provider/provider"
|
import { Provider } from "@/provider/provider"
|
||||||
|
import { Auth } from "@/auth"
|
||||||
|
|
||||||
import { mapValues } from "remeda"
|
import { mapValues } from "remeda"
|
||||||
import { Effect, Schema } from "effect"
|
import { Effect, Schema } from "effect"
|
||||||
@@ -36,6 +37,7 @@ export const providerHandlers = HttpApiBuilder.group(InstanceHttpApi, "provider"
|
|||||||
const cfg = yield* Config.Service
|
const cfg = yield* Config.Service
|
||||||
const provider = yield* Provider.Service
|
const provider = yield* Provider.Service
|
||||||
const svc = yield* ProviderAuth.Service
|
const svc = yield* ProviderAuth.Service
|
||||||
|
const authStore = yield* Auth.Service
|
||||||
|
|
||||||
const list = Effect.fn("ProviderHttpApi.list")(function* () {
|
const list = Effect.fn("ProviderHttpApi.list")(function* () {
|
||||||
const config = yield* cfg.get()
|
const config = yield* cfg.get()
|
||||||
@@ -47,6 +49,7 @@ export const providerHandlers = HttpApiBuilder.group(InstanceHttpApi, "provider"
|
|||||||
if ((enabled ? enabled.has(key) : true) && !disabled.has(key)) filtered[key] = value
|
if ((enabled ? enabled.has(key) : true) && !disabled.has(key)) filtered[key] = value
|
||||||
}
|
}
|
||||||
const connected = yield* provider.list()
|
const connected = yield* provider.list()
|
||||||
|
const credentials = yield* authStore.all().pipe(Effect.orDie)
|
||||||
const providers = Object.assign(
|
const providers = Object.assign(
|
||||||
mapValues(filtered, (item) => Provider.fromModelsDevProvider(item)),
|
mapValues(filtered, (item) => Provider.fromModelsDevProvider(item)),
|
||||||
connected,
|
connected,
|
||||||
@@ -54,7 +57,7 @@ export const providerHandlers = HttpApiBuilder.group(InstanceHttpApi, "provider"
|
|||||||
return {
|
return {
|
||||||
all: Object.values(providers).map(Provider.toPublicInfo),
|
all: Object.values(providers).map(Provider.toPublicInfo),
|
||||||
default: Provider.defaultModelIDs(providers),
|
default: Provider.defaultModelIDs(providers),
|
||||||
connected: Object.keys(connected),
|
connected: Object.keys(providers).filter((id) => id in connected || credentials[id]),
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user