28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
import { logVerbose } from "../../globals.js";
|
|
import { handleBashChatCommand } from "./bash-command.js";
|
|
import type { CommandHandler } from "./commands-types.js";
|
|
|
|
export const handleBashCommand: CommandHandler = async (params, allowTextCommands) => {
|
|
if (!allowTextCommands) return null;
|
|
const { command } = params;
|
|
const bashSlashRequested =
|
|
command.commandBodyNormalized === "/bash" || command.commandBodyNormalized.startsWith("/bash ");
|
|
const bashBangRequested = command.commandBodyNormalized.startsWith("!");
|
|
if (!bashSlashRequested && !(bashBangRequested && command.isAuthorizedSender)) {
|
|
return null;
|
|
}
|
|
if (!command.isAuthorizedSender) {
|
|
logVerbose(`Ignoring /bash from unauthorized sender: ${command.senderId || "<unknown>"}`);
|
|
return { shouldContinue: false };
|
|
}
|
|
const reply = await handleBashChatCommand({
|
|
ctx: params.ctx,
|
|
cfg: params.cfg,
|
|
agentId: params.agentId,
|
|
sessionKey: params.sessionKey,
|
|
isGroup: params.isGroup,
|
|
elevated: params.elevated,
|
|
});
|
|
return { shouldContinue: false, reply };
|
|
};
|