MCPcopy Create free account
hub / github.com/tiann/hapi / extractModelsFromResponse

Function extractModelsFromResponse

cli/src/modules/common/opencodeModels.ts:54–84  ·  view source on GitHub ↗
(response: unknown)

Source from the content-addressed store, hash-verified

52}
53
54function extractModelsFromResponse(response: unknown): {
55 availableModels: OpencodeModelSummary[];
56 currentModelId: string | null;
57} {
58 if (!isObject(response)) {
59 return { availableModels: [], currentModelId: null };
60 }
61
62 const directList = response.availableModels;
63 const directCurrent = response.currentModelId;
64 const nested = isObject(response.models) ? response.models : null;
65 const nestedList = nested?.availableModels;
66 const nestedCurrent = nested?.currentModelId;
67
68 const configModelOption = extractModelConfigOption(response);
69 const rawModels = Array.isArray(directList)
70 ? directList
71 : Array.isArray(nestedList)
72 ? nestedList
73 : configModelOption?.options ?? null;
74 const rawCurrent = typeof directCurrent === 'string'
75 ? directCurrent
76 : typeof nestedCurrent === 'string'
77 ? nestedCurrent
78 : configModelOption?.currentValue ?? null;
79
80 return {
81 availableModels: normalizeAvailableModels(rawModels),
82 currentModelId: rawCurrent
83 };
84}
85
86async function runOpencodeProbe(cwd: string): Promise<ListOpencodeModelsForCwdResponse> {
87 const transport = new AcpStdioTransport({

Callers 1

runOpencodeProbeFunction · 0.85

Calls 3

isObjectFunction · 0.85
extractModelConfigOptionFunction · 0.85
normalizeAvailableModelsFunction · 0.85

Tested by

no test coverage detected