refactor: move plugin contracts onto SDK testing seams

This commit is contained in:
Peter Steinberger
2026-04-28 00:14:52 +01:00
parent d3e4640bed
commit d462d1faf2
28 changed files with 326 additions and 167 deletions

View File

@@ -35,6 +35,24 @@ export type ProviderModelPickerEntry = {
hint?: string;
};
type ProviderWizardProvidersResolver = (params: {
config?: OpenClawConfig;
workspaceDir?: string;
env?: NodeJS.ProcessEnv;
}) => ProviderPlugin[];
let providerWizardProvidersResolverForTest: ProviderWizardProvidersResolver | undefined;
export function setProviderWizardProvidersResolverForTest(
resolver: ProviderWizardProvidersResolver | undefined,
): () => void {
const previous = providerWizardProvidersResolverForTest;
providerWizardProvidersResolverForTest = resolver;
return () => {
providerWizardProvidersResolverForTest = previous;
};
}
function resolveWizardSetupChoiceId(
provider: ProviderPlugin,
wizard: ProviderPluginWizardSetup,
@@ -113,6 +131,9 @@ function resolveProviderWizardProviders(params: {
workspaceDir?: string;
env?: NodeJS.ProcessEnv;
}): ProviderPlugin[] {
if (providerWizardProvidersResolverForTest) {
return providerWizardProvidersResolverForTest(params);
}
return resolvePluginProviders({
config: params.config,
workspaceDir: params.workspaceDir,