mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-25 11:55:47 -06:00
e7cba0e4d5
* fix(ci): clean provider dead exports * test(extensions): satisfy provider contract types * refactor(openai): tighten provider runtime factory
46 lines
1.5 KiB
TypeScript
46 lines
1.5 KiB
TypeScript
// Openai plugin module implements prompt overlay behavior.
|
|
import {
|
|
isGpt5ModelId,
|
|
resolveGpt5PromptOverlayMode,
|
|
resolveGpt5SystemPromptContribution,
|
|
type Gpt5PromptOverlayMode,
|
|
} from "openclaw/plugin-sdk/provider-model-shared";
|
|
|
|
const OPENAI_PROVIDER_IDS = new Set(["openai"]);
|
|
|
|
type OpenAIPromptOverlayMode = Gpt5PromptOverlayMode;
|
|
|
|
export function resolveOpenAIPromptOverlayMode(
|
|
pluginConfig?: Record<string, unknown>,
|
|
): OpenAIPromptOverlayMode {
|
|
return resolveGpt5PromptOverlayMode(undefined, pluginConfig);
|
|
}
|
|
|
|
function shouldApplyOpenAIPromptOverlay(params: {
|
|
modelProviderId?: string;
|
|
modelId?: string;
|
|
}): boolean {
|
|
return OPENAI_PROVIDER_IDS.has(params.modelProviderId ?? "") && isGpt5ModelId(params.modelId);
|
|
}
|
|
|
|
export function resolveOpenAISystemPromptContribution(params: {
|
|
config?: Parameters<typeof resolveGpt5SystemPromptContribution>[0]["config"];
|
|
legacyPluginConfig?: Record<string, unknown>;
|
|
mode?: OpenAIPromptOverlayMode;
|
|
modelProviderId?: string;
|
|
modelId?: string;
|
|
trigger?: Parameters<typeof resolveGpt5SystemPromptContribution>[0]["trigger"];
|
|
}) {
|
|
return resolveGpt5SystemPromptContribution({
|
|
config: params.config,
|
|
legacyPluginConfig:
|
|
params.mode === undefined ? params.legacyPluginConfig : { personality: params.mode },
|
|
modelId: params.modelId,
|
|
trigger: params.trigger,
|
|
enabled: shouldApplyOpenAIPromptOverlay({
|
|
modelProviderId: params.modelProviderId,
|
|
modelId: params.modelId,
|
|
}),
|
|
});
|
|
}
|