MCPcopy
hub / github.com/anomalyco/opencode / fetchProviders

Function fetchProviders

packages/core/src/plugin/provider/opencode.ts:190–212  ·  view source on GitHub ↗
(http: HttpClient.HttpClient, value: CredentialValue)

Source from the content-addressed store, hash-verified

188})
189
190function fetchProviders(http: HttpClient.HttpClient, value: CredentialValue) {
191 const metadata = value.metadata
192 const server = typeof metadata?.server === "string" ? metadata.server : defaultServer
193 const orgID = typeof metadata?.orgID === "string" ? metadata.orgID : undefined
194 const token = value.type === "oauth" ? value.access : value.key
195 return http
196 .execute(
197 HttpClientRequest.get(`${server}/api/config`).pipe(
198 HttpClientRequest.acceptJson,
199 HttpClientRequest.bearerToken(token),
200 HttpClientRequest.setHeaders(orgID ? { "x-org-id": orgID } : {}),
201 ),
202 )
203 .pipe(
204 Effect.flatMap((response) => {
205 if (response.status === 404) return Effect.succeed(undefined)
206 return HttpClientResponse.filterStatusOk(response).pipe(
207 Effect.flatMap(HttpClientResponse.schemaBodyJson(RemoteResponse)),
208 Effect.map((remote) => remote.config.provider),
209 )
210 }),
211 )
212}
213
214function withoutCredentials(body: Readonly<Record<string, unknown>> | undefined) {
215 return Object.fromEntries(Object.entries(body ?? {}).filter(([key]) => key !== "apiKey" && key !== "headers"))

Callers 1

opencode.tsFile · 0.85

Calls 2

executeMethod · 0.65
getMethod · 0.65

Tested by

no test coverage detected