UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

37 lines (36 loc) • 1.33 kB
import { n as appendRegularFile } from "../../fs-safe-CS1DrPTK.mjs"; import { r as resolveStateDir } from "../../state-dir-CfAW6S2K.mjs"; import "../../paths-FklbMVOH.mjs"; import { t as formatErrorMessage } from "../../errors-BSdPMFao.mjs"; import { t as createSubsystemLogger } from "../../subsystem-BlrgtxyM.mjs"; import path from "node:path"; import fs from "node:fs/promises"; import os from "node:os"; //#region src/hooks/bundled/command-logger/handler.ts const log = createSubsystemLogger("command-logger"); const logCommand = async (event) => { if (event.type !== "command") return; try { const stateDir = resolveStateDir(process.env, os.homedir); const logDir = path.join(stateDir, "logs"); await fs.mkdir(logDir, { recursive: true }); const logFile = path.join(logDir, "commands.log"); const logLine = JSON.stringify({ timestamp: event.timestamp.toISOString(), action: event.action, sessionKey: event.sessionKey, senderId: event.context.senderId ?? "unknown", source: event.context.commandSource ?? "unknown" }) + "\n"; await appendRegularFile({ filePath: logFile, content: logLine, rejectSymlinkParents: true }); } catch (err) { const message = formatErrorMessage(err); log.error(`Failed to log command: ${message}`); } }; //#endregion export { logCommand as default };