import type { OpenClawPluginApi } from "openclaw/plugin-sdk/plugin-runtime"; type TestPluginApiInput = Partial; export function createTestPluginApi(api: TestPluginApiInput = {}): OpenClawPluginApi { return { id: "test-plugin", name: "test-plugin", source: "test", registrationMode: "full", config: {}, runtime: {} as OpenClawPluginApi["runtime"], logger: { info() {}, warn() {}, error() {}, debug() {} }, registerTool() {}, registerHook() {}, registerHttpRoute() {}, registerChannel() {}, registerGatewayMethod() {}, registerCli() {}, registerCliBackend() {}, registerService() {}, registerReload() {}, registerNodeHostCommand() {}, registerSecurityAuditCollector() {}, registerConfigMigration() {}, registerAutoEnableProbe() {}, registerProvider() {}, registerSpeechProvider() {}, registerRealtimeTranscriptionProvider() {}, registerRealtimeVoiceProvider() {}, registerMediaUnderstandingProvider() {}, registerImageGenerationProvider() {}, registerMusicGenerationProvider() {}, registerVideoGenerationProvider() {}, registerWebFetchProvider() {}, registerWebSearchProvider() {}, registerInteractiveHandler() {}, onConversationBindingResolved() {}, registerCommand() {}, registerContextEngine() {}, registerMemoryPromptSection() {}, registerMemoryPromptSupplement() {}, registerMemoryCorpusSupplement() {}, registerMemoryFlushPlan() {}, registerMemoryRuntime() {}, registerMemoryEmbeddingProvider() {}, resolvePath(input: string) { return input; }, on() {}, ...api, }; }