Spaces:
Paused
Paused
| import type { CommandHandler } from "./commands-types.js"; | |
| import { logVerbose } from "../../globals.js"; | |
| import { handleBashChatCommand } from "./bash-command.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 }; | |
| }; | |