openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
50 lines (49 loc) • 1.87 kB
JavaScript
import { t as ErrorCodes } from "./gateway-error-details-w0nAGBBp.js";
import { X as validateCommandsListParams } from "./src-BiL5aQto.js";
import { d as errorShape } from "./error-codes-Bo8q2D1o.js";
import { M as authorizeSessionSharingTarget, z as resolveSessionSharingTarget } from "./session-sharing-B7MI8hNo.js";
import { t as resolveAgentIdOrRespondError } from "./agent-id-shared-MLgRqPvR.js";
import { n as defineValidatedGatewayMethod } from "./validation-pzrlzFvo.js";
import { t as buildCommandsListResult } from "./commands-list-result-DeB-JkQh.js";
//#region src/gateway/server-methods/commands.ts
/** Gateway handler for enumerating available chat/native commands. */
const commandsHandlers = { "commands.list": defineValidatedGatewayMethod("commands.list", validateCommandsListParams, ({ params, respond, context, client }) => {
const resolved = resolveAgentIdOrRespondError({
rawAgentId: params.agentId,
respond,
cfg: context.getRuntimeConfig(),
normalize: (rawAgentId) => typeof rawAgentId === "string" ? rawAgentId.trim() : void 0
});
if (!resolved) return;
const target = params.sessionKey ? resolveSessionSharingTarget({
cfg: resolved.cfg,
sessionKey: params.sessionKey,
agentId: resolved.agentId
}) : null;
if (params.sessionKey && !target) {
respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "Session not found."));
return;
}
if (target) {
const error = authorizeSessionSharingTarget({
cfg: resolved.cfg,
client,
target
});
if (error) {
respond(false, void 0, error);
return;
}
}
respond(true, buildCommandsListResult({
cfg: resolved.cfg,
agentId: resolved.agentId,
provider: params.provider,
scope: params.scope,
includeArgs: params.includeArgs,
sessionKey: params.sessionKey,
sessionEntry: target?.entry
}), void 0);
}) };
//#endregion
export { commandsHandlers };