| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import { spyOn } from "bun:test"
- import type { LocationRef, ModelListOutput, OpenCodeClient, ProviderListOutput } from "@opencode-ai/client/promise"
- export function catalogProvider(id: string, name: string): ProviderListOutput["data"][number] {
- return {
- id,
- name,
- package: "",
- }
- }
- export function catalogModel(input: {
- id: string
- modelID?: string
- providerID: string
- name?: string
- context?: number
- variants?: string[]
- }): ModelListOutput["data"][number] {
- return {
- id: input.id,
- modelID: input.modelID ?? input.id,
- providerID: input.providerID,
- name: input.name ?? input.id,
- capabilities: {
- tools: true,
- input: ["text"],
- output: ["text"],
- },
- variants: (input.variants ?? []).map((id) => ({ id })),
- time: { released: 1 },
- cost: [{ input: 0, output: 0, cache: { read: 0, write: 0 } }],
- status: "active",
- enabled: true,
- limit: { context: input.context ?? 128_000, output: 8_192 },
- }
- }
- export function stubCatalogLists(
- sdk: OpenCodeClient,
- input: {
- location?: LocationRef
- providers?: ProviderListOutput["data"]
- models?: ModelListOutput["data"]
- } = {},
- ) {
- const location = {
- directory: input.location?.directory ?? "/tmp",
- workspaceID: input.location?.workspaceID,
- project: { id: "proj_1", directory: input.location?.directory ?? "/tmp" },
- }
- const empty = { location, data: [] }
- return {
- provider: spyOn(sdk.provider, "list").mockResolvedValue({ location, data: input.providers ?? [] } as never),
- model: spyOn(sdk.model, "list").mockResolvedValue({ location, data: input.models ?? [] } as never),
- agent: spyOn(sdk.agent, "list").mockResolvedValue(empty as never),
- reference: spyOn(sdk.reference, "list").mockResolvedValue(empty as never),
- command: spyOn(sdk.command, "list").mockResolvedValue(empty as never),
- skill: spyOn(sdk.skill, "list").mockResolvedValue(empty as never),
- }
- }
|