mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 20:04:32 +00:00
refactor(agent): dedupe harness and command workflows
This commit is contained in:
@@ -20,6 +20,22 @@ export const DEFAULT_TEST_MODEL_CATALOG: Array<{
|
||||
{ id: "gpt-4.1-mini", name: "GPT-4.1 Mini", provider: "openai" },
|
||||
];
|
||||
|
||||
export type ReplyPayloadText = { text?: string | null } | null | undefined;
|
||||
|
||||
export function replyText(res: ReplyPayloadText | ReplyPayloadText[]): string | undefined {
|
||||
if (Array.isArray(res)) {
|
||||
return typeof res[0]?.text === "string" ? res[0]?.text : undefined;
|
||||
}
|
||||
return typeof res?.text === "string" ? res.text : undefined;
|
||||
}
|
||||
|
||||
export function replyTexts(res: ReplyPayloadText | ReplyPayloadText[]): string[] {
|
||||
const payloads = Array.isArray(res) ? res : [res];
|
||||
return payloads
|
||||
.map((entry) => (typeof entry?.text === "string" ? entry.text : undefined))
|
||||
.filter((value): value is string => Boolean(value));
|
||||
}
|
||||
|
||||
export async function withTempHome<T>(fn: (home: string) => Promise<T>): Promise<T> {
|
||||
return withTempHomeBase(
|
||||
async (home) => {
|
||||
@@ -35,6 +51,55 @@ export async function withTempHome<T>(fn: (home: string) => Promise<T>): Promise
|
||||
);
|
||||
}
|
||||
|
||||
export function sessionStorePath(home: string): string {
|
||||
return path.join(home, "sessions.json");
|
||||
}
|
||||
|
||||
export function makeWhatsAppDirectiveConfig(
|
||||
home: string,
|
||||
defaults: Record<string, unknown>,
|
||||
extra: Record<string, unknown> = {},
|
||||
) {
|
||||
return {
|
||||
agents: {
|
||||
defaults: {
|
||||
workspace: path.join(home, "openclaw"),
|
||||
...defaults,
|
||||
},
|
||||
},
|
||||
channels: { whatsapp: { allowFrom: ["*"] } },
|
||||
session: { store: sessionStorePath(home) },
|
||||
...extra,
|
||||
};
|
||||
}
|
||||
|
||||
export const AUTHORIZED_WHATSAPP_COMMAND = {
|
||||
From: "+1222",
|
||||
To: "+1222",
|
||||
Provider: "whatsapp",
|
||||
SenderE164: "+1222",
|
||||
CommandAuthorized: true,
|
||||
} as const;
|
||||
|
||||
export function makeElevatedDirectiveConfig(home: string) {
|
||||
return makeWhatsAppDirectiveConfig(
|
||||
home,
|
||||
{
|
||||
model: "anthropic/claude-opus-4-5",
|
||||
elevatedDefault: "on",
|
||||
},
|
||||
{
|
||||
tools: {
|
||||
elevated: {
|
||||
allowFrom: { whatsapp: ["+1222"] },
|
||||
},
|
||||
},
|
||||
channels: { whatsapp: { allowFrom: ["+1222"] } },
|
||||
session: { store: sessionStorePath(home) },
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
export function assertModelSelection(
|
||||
storePath: string,
|
||||
selection: { model?: string; provider?: string } = {},
|
||||
|
||||
Reference in New Issue
Block a user