mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-28 07:42:17 +00:00
Move provider model registries, stream wrappers, OAuth helpers, and LLM utilities into src/llm with plugin-sdk barrels instead of depending on the old embedded runtime layout.
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import type { ProviderStreamOptions } from "openclaw/plugin-sdk/llm";
|
|
import {
|
|
describeImageWithModelPayloadTransform,
|
|
describeImagesWithModelPayloadTransform,
|
|
type MediaUnderstandingProvider,
|
|
} from "openclaw/plugin-sdk/media-understanding";
|
|
import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
|
|
export function stripOpencodeDisabledResponsesReasoningPayload(payload: unknown): void {
|
|
if (!isRecord(payload)) {
|
|
return;
|
|
}
|
|
const reasoning = payload.reasoning;
|
|
if (reasoning === "none") {
|
|
delete payload.reasoning;
|
|
return;
|
|
}
|
|
if (!isRecord(reasoning) || reasoning.effort !== "none") {
|
|
return;
|
|
}
|
|
delete payload.reasoning;
|
|
}
|
|
|
|
const stripDisabledResponsesReasoning: ProviderStreamOptions["onPayload"] = (payload) => {
|
|
stripOpencodeDisabledResponsesReasoningPayload(payload);
|
|
return undefined;
|
|
};
|
|
|
|
export const opencodeMediaUnderstandingProvider: MediaUnderstandingProvider = {
|
|
id: "opencode",
|
|
capabilities: ["image"],
|
|
defaultModels: {
|
|
image: "gpt-5-nano",
|
|
},
|
|
describeImage: (request) =>
|
|
describeImageWithModelPayloadTransform(request, stripDisabledResponsesReasoning),
|
|
describeImages: (request) =>
|
|
describeImagesWithModelPayloadTransform(request, stripDisabledResponsesReasoning),
|
|
};
|