mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-19 03:14:46 +00:00
100 lines
3.4 KiB
TypeScript
100 lines
3.4 KiB
TypeScript
import {
|
|
attachPluginApiFacades,
|
|
type OpenClawPluginApiWithoutFacades,
|
|
} from "../plugins/api-facades.js";
|
|
import type { OpenClawPluginApi } from "./plugin-runtime.js";
|
|
|
|
export type TestPluginApiInput = Partial<OpenClawPluginApi>;
|
|
|
|
export function createTestPluginApi(api: TestPluginApiInput = {}): OpenClawPluginApi {
|
|
const { agent, lifecycle, runContext, session, ...flatApi } = api;
|
|
const mergedApi = {
|
|
id: "test-plugin",
|
|
name: "test-plugin",
|
|
source: "test",
|
|
registrationMode: "full",
|
|
config: {},
|
|
runtime: {} as OpenClawPluginApi["runtime"],
|
|
logger: { info() {}, warn() {}, error() {}, debug() {} },
|
|
registerTool() {},
|
|
registerHook() {},
|
|
registerHttpRoute() {},
|
|
registerHostedMediaResolver() {},
|
|
registerChannel() {},
|
|
registerGatewayMethod() {},
|
|
registerCli() {},
|
|
registerNodeCliFeature() {},
|
|
registerCliBackend() {},
|
|
registerTextTransforms() {},
|
|
registerService() {},
|
|
registerGatewayDiscoveryService() {},
|
|
registerReload() {},
|
|
registerNodeHostCommand() {},
|
|
registerNodeInvokePolicy() {},
|
|
registerSecurityAuditCollector() {},
|
|
registerConfigMigration() {},
|
|
registerMigrationProvider() {},
|
|
registerAutoEnableProbe() {},
|
|
registerProvider() {},
|
|
registerModelCatalogProvider() {},
|
|
registerSpeechProvider() {},
|
|
registerRealtimeTranscriptionProvider() {},
|
|
registerRealtimeVoiceProvider() {},
|
|
registerMediaUnderstandingProvider() {},
|
|
registerImageGenerationProvider() {},
|
|
registerMusicGenerationProvider() {},
|
|
registerVideoGenerationProvider() {},
|
|
registerWebFetchProvider() {},
|
|
registerWebSearchProvider() {},
|
|
registerInteractiveHandler() {},
|
|
onConversationBindingResolved() {},
|
|
registerCommand() {},
|
|
registerContextEngine() {},
|
|
registerCompactionProvider() {},
|
|
registerAgentHarness() {},
|
|
registerCodexAppServerExtensionFactory() {},
|
|
registerAgentToolResultMiddleware() {},
|
|
registerDetachedTaskRuntime() {},
|
|
registerSessionExtension() {},
|
|
enqueueNextTurnInjection: async (injection) => ({
|
|
enqueued: false,
|
|
id: "",
|
|
sessionKey: injection.sessionKey,
|
|
}),
|
|
registerTrustedToolPolicy() {},
|
|
registerToolMetadata() {},
|
|
registerControlUiDescriptor() {},
|
|
registerRuntimeLifecycle() {},
|
|
registerAgentEventSubscription() {},
|
|
emitAgentEvent: () => ({ emitted: false as const, reason: "test api" }),
|
|
setRunContext: () => false,
|
|
getRunContext: () => undefined,
|
|
clearRunContext() {},
|
|
registerSessionSchedulerJob: () => undefined,
|
|
registerSessionAction() {},
|
|
sendSessionAttachment: async () => ({ ok: false, error: "test plugin api" }),
|
|
scheduleSessionTurn: async () => undefined,
|
|
unscheduleSessionTurnsByTag: async () => ({ removed: 0, failed: 0 }),
|
|
registerMemoryCapability() {},
|
|
registerMemoryPromptSection() {},
|
|
registerMemoryPromptSupplement() {},
|
|
registerMemoryCorpusSupplement() {},
|
|
registerMemoryFlushPlan() {},
|
|
registerMemoryRuntime() {},
|
|
registerMemoryEmbeddingProvider() {},
|
|
resolvePath(input: string) {
|
|
return input;
|
|
},
|
|
on() {},
|
|
...flatApi,
|
|
} as OpenClawPluginApiWithoutFacades;
|
|
const withFacades = attachPluginApiFacades(mergedApi);
|
|
return {
|
|
...withFacades,
|
|
...(agent ? { agent } : {}),
|
|
...(lifecycle ? { lifecycle } : {}),
|
|
...(runContext ? { runContext } : {}),
|
|
...(session ? { session } : {}),
|
|
};
|
|
}
|