Files
openclaw/extensions/admin-http-rpc/src/methods.ts
Lior Balmas 81f20d8464 feat(admin-http-rpc): allow web QR login methods (#83259)
* feat(admin-http-rpc): allow web QR login methods

* docs(changelog): note admin HTTP RPC web login methods

* test(codex): refresh prompt snapshots for code mode config

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-18 12:24:27 +01:00

64 lines
1.7 KiB
TypeScript

const ADMIN_HTTP_RPC_ALLOWED_METHOD_GROUPS = {
gateway: [
"health",
"status",
"logs.tail",
"usage.status",
"usage.cost",
"gateway.restart.request",
],
discovery: ["commands.list"],
config: [
"config.get",
"config.schema",
"config.schema.lookup",
"config.set",
"config.patch",
"config.apply",
],
channels: ["channels.status", "channels.start", "channels.stop", "channels.logout"],
web: ["web.login.start", "web.login.wait"],
models: ["models.list", "models.authStatus"],
agents: ["agents.list", "agents.create", "agents.update", "agents.delete"],
approvals: [
"exec.approvals.get",
"exec.approvals.set",
"exec.approvals.node.get",
"exec.approvals.node.set",
],
cron: [
"cron.status",
"cron.list",
"cron.get",
"cron.runs",
"cron.add",
"cron.update",
"cron.remove",
"cron.run",
],
devices: ["device.pair.list", "device.pair.approve", "device.pair.reject", "device.pair.remove"],
nodes: [
"node.list",
"node.describe",
"node.pair.list",
"node.pair.approve",
"node.pair.reject",
"node.pair.remove",
"node.rename",
],
tasks: ["tasks.list", "tasks.get", "tasks.cancel"],
diagnostics: ["doctor.memory.status", "update.status"],
} as const satisfies Record<string, readonly string[]>;
const ADMIN_HTTP_RPC_ALLOWED_METHODS: ReadonlySet<string> = new Set(
Object.values(ADMIN_HTTP_RPC_ALLOWED_METHOD_GROUPS).flat(),
);
export function isAdminHttpRpcAllowedMethod(method: string): boolean {
return ADMIN_HTTP_RPC_ALLOWED_METHODS.has(method);
}
export function listAdminHttpRpcAllowedMethods(): string[] {
return Array.from(ADMIN_HTTP_RPC_ALLOWED_METHODS);
}