Files
openclaw/src/gateway/server-methods-list.ts
Val Alexander 05c9492bff fix: reduce WebUI session latency churn (#76277) thanks @BunsDev
Reduce WebUI/Gateway latency churn by avoiding redundant session reloads, carrying session keys through transcript update events, and deferring explicit media provider discovery. Includes changelog attribution and closes the referenced runtime latency issues.
2026-05-02 18:39:06 -05:00

192 lines
4.2 KiB
TypeScript

import { listChannelPlugins } from "../channels/plugins/index.js";
import { GATEWAY_EVENT_UPDATE_AVAILABLE } from "./events.js";
const BASE_METHODS = [
"health",
"diagnostics.stability",
"doctor.memory.status",
"doctor.memory.dreamDiary",
"doctor.memory.backfillDreamDiary",
"doctor.memory.resetDreamDiary",
"doctor.memory.resetGroundedShortTerm",
"doctor.memory.repairDreamingArtifacts",
"doctor.memory.dedupeDreamDiary",
"doctor.memory.remHarness",
"logs.tail",
"channels.status",
"channels.start",
"channels.stop",
"channels.logout",
"status",
"usage.status",
"usage.cost",
"tts.status",
"tts.providers",
"tts.personas",
"tts.enable",
"tts.disable",
"tts.convert",
"tts.setProvider",
"tts.setPersona",
"config.get",
"config.set",
"config.apply",
"config.patch",
"config.schema",
"config.schema.lookup",
"exec.approvals.get",
"exec.approvals.set",
"exec.approvals.node.get",
"exec.approvals.node.set",
"exec.approval.get",
"exec.approval.list",
"exec.approval.request",
"exec.approval.waitDecision",
"exec.approval.resolve",
"plugin.approval.list",
"plugin.approval.request",
"plugin.approval.waitDecision",
"plugin.approval.resolve",
"plugins.uiDescriptors",
"wizard.start",
"wizard.next",
"wizard.cancel",
"wizard.status",
"talk.config",
"talk.realtime.session",
"talk.realtime.relayAudio",
"talk.realtime.relayMark",
"talk.realtime.relayStop",
"talk.realtime.relayToolResult",
"talk.speak",
"talk.mode",
"commands.list",
"models.list",
"models.authStatus",
"tools.catalog",
"tools.effective",
"tools.invoke",
"agents.list",
"agents.create",
"agents.update",
"agents.delete",
"agents.files.list",
"agents.files.get",
"agents.files.set",
"artifacts.list",
"artifacts.get",
"artifacts.download",
"skills.status",
"skills.search",
"skills.detail",
"skills.bins",
"skills.install",
"skills.update",
"update.status",
"update.run",
"voicewake.get",
"voicewake.set",
"secrets.reload",
"secrets.resolve",
"voicewake.routing.get",
"voicewake.routing.set",
"sessions.list",
"sessions.subscribe",
"sessions.unsubscribe",
"sessions.messages.subscribe",
"sessions.messages.unsubscribe",
"sessions.preview",
"sessions.describe",
"sessions.compaction.list",
"sessions.compaction.get",
"sessions.compaction.branch",
"sessions.compaction.restore",
"sessions.create",
"sessions.send",
"sessions.abort",
"sessions.patch",
"sessions.pluginPatch",
"sessions.cleanup",
"sessions.reset",
"sessions.delete",
"sessions.compact",
"last-heartbeat",
"set-heartbeats",
"wake",
"node.pair.request",
"node.pair.list",
"node.pair.approve",
"node.pair.reject",
"node.pair.remove",
"node.pair.verify",
"device.pair.list",
"device.pair.approve",
"device.pair.reject",
"device.pair.remove",
"device.token.rotate",
"device.token.revoke",
"node.rename",
"node.list",
"node.describe",
"node.pending.drain",
"node.pending.enqueue",
"node.invoke",
"node.pending.pull",
"node.pending.ack",
"node.invoke.result",
"node.event",
"node.canvas.capability.refresh",
"cron.list",
"cron.status",
"cron.add",
"cron.update",
"cron.remove",
"cron.run",
"cron.runs",
"gateway.identity.get",
"system-presence",
"system-event",
"message.action",
"send",
"agent",
"agent.identity.get",
"agent.wait",
// WebChat WebSocket-native chat methods
"chat.history",
"chat.abort",
"chat.send",
];
export function listGatewayMethods(): string[] {
const channelMethods = listChannelPlugins().flatMap((plugin) => plugin.gatewayMethods ?? []);
return Array.from(new Set([...BASE_METHODS, ...channelMethods]));
}
export const GATEWAY_EVENTS = [
"connect.challenge",
"agent",
"chat",
"session.message",
"session.tool",
"sessions.changed",
"presence",
"tick",
"talk.mode",
"shutdown",
"health",
"heartbeat",
"cron",
"node.pair.requested",
"node.pair.resolved",
"node.invoke.request",
"device.pair.requested",
"device.pair.resolved",
"voicewake.changed",
"voicewake.routing.changed",
"exec.approval.requested",
"exec.approval.resolved",
"plugin.approval.requested",
"plugin.approval.resolved",
GATEWAY_EVENT_UPDATE_AVAILABLE,
];