fix(schema): adapt legacy catalog responses

This commit is contained in:
Shoubhit Dash 2026-06-25 20:36:02 +05:30
commit 8efd8783d0
4 changed files with 51 additions and 3 deletions

View file

@ -3,6 +3,7 @@ import { Effect } from "effect"
import { HttpApiBuilder } from "effect/unstable/httpapi"
import { Api } from "../api"
import { response } from "../location"
import { ModelV2 } from "@opencode-ai/core/model"
export const ModelHandler = HttpApiBuilder.group(Api, "server.model", (handlers) =>
Effect.gen(function* () {
@ -10,7 +11,7 @@ export const ModelHandler = HttpApiBuilder.group(Api, "server.model", (handlers)
"model.list",
Effect.fn(function* () {
const catalog = yield* Catalog.Service
return yield* response(catalog.model.available())
return yield* response(catalog.model.available().pipe(Effect.map((models) => models.map(ModelV2.flatten))))
}),
)
}),

View file

@ -3,6 +3,7 @@ import { Effect } from "effect"
import { HttpApiBuilder } from "effect/unstable/httpapi"
import { Api } from "../api"
import { ProviderNotFoundError } from "@opencode-ai/protocol/errors"
import { ProviderV2 } from "@opencode-ai/core/provider"
import { response } from "../location"
export const ProviderHandler = HttpApiBuilder.group(Api, "server.provider", (handlers) =>
@ -12,7 +13,9 @@ export const ProviderHandler = HttpApiBuilder.group(Api, "server.provider", (han
"provider.list",
Effect.fn(function* () {
const catalog = yield* Catalog.Service
return yield* response(catalog.provider.available())
return yield* response(
catalog.provider.available().pipe(Effect.map((providers) => providers.map(ProviderV2.flatten))),
)
}),
)
.handle(
@ -25,7 +28,7 @@ export const ProviderHandler = HttpApiBuilder.group(Api, "server.provider", (han
providerID: ctx.params.providerID,
message: `Provider not found: ${ctx.params.providerID}`,
})
return yield* response(Effect.succeed(provider))
return yield* response(Effect.succeed(ProviderV2.flatten(provider)))
}),
)
}),