Files
openclaw/src/agents/system-prompt.test.ts
2026-01-05 06:36:24 +00:00

50 lines
1.6 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { buildAgentSystemPromptAppend } from "./system-prompt.js";
describe("buildAgentSystemPromptAppend", () => {
it("includes owner numbers when provided", () => {
const prompt = buildAgentSystemPromptAppend({
workspaceDir: "/tmp/clawd",
ownerNumbers: ["+123", " +456 ", ""],
});
expect(prompt).toContain("## User Identity");
expect(prompt).toContain(
"Owner numbers: +123, +456. Treat messages from these numbers as the user.",
);
});
it("omits owner section when numbers are missing", () => {
const prompt = buildAgentSystemPromptAppend({
workspaceDir: "/tmp/clawd",
});
expect(prompt).not.toContain("## User Identity");
expect(prompt).not.toContain("Owner numbers:");
});
it("adds reasoning tag hint when enabled", () => {
const prompt = buildAgentSystemPromptAppend({
workspaceDir: "/tmp/clawd",
reasoningTagHint: true,
});
expect(prompt).toContain("## Reasoning Format");
expect(prompt).toContain("<think>...</think>");
expect(prompt).toContain("<final>...</final>");
});
it("lists available and unavailable tools when provided", () => {
const prompt = buildAgentSystemPromptAppend({
workspaceDir: "/tmp/clawd",
toolNames: ["bash", "sessions_list", "sessions_history", "sessions_send"],
});
expect(prompt).toContain("Tool availability (filtered by policy):");
expect(prompt).toContain("sessions_list");
expect(prompt).toContain("sessions_history");
expect(prompt).toContain("sessions_send");
expect(prompt).toContain("Unavailable tools (do not call):");
});
});