Files
openclaw/src/auto-reply/stage-sandbox-media.test-harness.ts
2026-02-17 13:36:48 +09:00

46 lines
1.3 KiB
TypeScript

import { join } from "node:path";
import { withTempHome as withTempHomeBase } from "../../test/helpers/temp-home.js";
import type { OpenClawConfig } from "../config/config.js";
import type { MsgContext, TemplateContext } from "./templating.js";
export async function withSandboxMediaTempHome<T>(
prefix: string,
fn: (home: string) => Promise<T>,
): Promise<T> {
return withTempHomeBase(async (home) => await fn(home), { prefix });
}
export function createSandboxMediaContexts(mediaPath: string): {
ctx: MsgContext;
sessionCtx: TemplateContext;
} {
const ctx: MsgContext = {
Body: "hi",
From: "whatsapp:group:demo",
To: "+2000",
ChatType: "group",
Provider: "whatsapp",
MediaPath: mediaPath,
MediaType: "image/jpeg",
MediaUrl: mediaPath,
};
return { ctx, sessionCtx: { ...ctx } };
}
export function createSandboxMediaStageConfig(home: string): OpenClawConfig {
return {
agents: {
defaults: {
model: "anthropic/claude-opus-4-5",
workspace: join(home, "openclaw"),
sandbox: {
mode: "non-main",
workspaceRoot: join(home, "sandboxes"),
},
},
},
channels: { whatsapp: { allowFrom: ["*"] } },
session: { store: join(home, "sessions.json") },
} as OpenClawConfig;
}