mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-07 19:51:22 +00:00
refactor(auto-reply): split reply pipeline
This commit is contained in:
36
src/auto-reply/reply/commands-bash.ts
Normal file
36
src/auto-reply/reply/commands-bash.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
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 };
|
||||
};
|
||||
Reference in New Issue
Block a user