Files
openclaw/extensions/openai/prompt-overlay.ts
Peter Steinberger e7cba0e4d5 fix: provider dead exports no longer block changed checks (#108592)
* fix(ci): clean provider dead exports

* test(extensions): satisfy provider contract types

* refactor(openai): tighten provider runtime factory
2026-07-15 22:33:54 -07:00

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,
}),
});
}