Files
openclaw/src/gateway/server-methods/plugin-host-hooks.ts
EVA 1adaa28dc8 [plugin sdk] Add generic plugin host-hook contracts (#72287)
Merged via squash.

Prepared head SHA: 68e5f2ce19
Co-authored-by: 100yenadmin <239388517+100yenadmin@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-04-27 17:07:02 -07:00

32 lines
992 B
TypeScript

import { getActivePluginRegistry } from "../../plugins/runtime.js";
import {
ErrorCodes,
errorShape,
formatValidationErrors,
validatePluginsUiDescriptorsParams,
} from "../protocol/index.js";
import type { GatewayRequestHandlers } from "./types.js";
export const pluginHostHookHandlers: GatewayRequestHandlers = {
"plugins.uiDescriptors": ({ params, respond }) => {
if (!validatePluginsUiDescriptorsParams(params)) {
respond(
false,
undefined,
errorShape(
ErrorCodes.INVALID_REQUEST,
`invalid plugins.uiDescriptors params: ${formatValidationErrors(validatePluginsUiDescriptorsParams.errors)}`,
),
);
return;
}
const descriptors = (getActivePluginRegistry()?.controlUiDescriptors ?? []).map((entry) =>
Object.assign({}, entry.descriptor, {
pluginId: entry.pluginId,
pluginName: entry.pluginName,
}),
);
respond(true, { ok: true, descriptors }, undefined);
},
};