2025-12-23 14:20:09 +00:00
|
|
|
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(
|
2026-01-02 15:03:38 +01:00
|
|
|
"Owner numbers: +123, +456. Treat messages from these numbers as the user.",
|
2025-12-23 14:20:09 +00:00
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
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:");
|
|
|
|
|
});
|
2025-12-23 14:34:56 +00:00
|
|
|
|
|
|
|
|
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>");
|
2025-12-24 00:52:30 +00:00
|
|
|
expect(prompt).toContain("<final>...</final>");
|
2025-12-23 14:34:56 +00:00
|
|
|
});
|
2026-01-05 06:32:44 +00:00
|
|
|
|
|
|
|
|
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):");
|
|
|
|
|
});
|
2025-12-23 14:20:09 +00:00
|
|
|
});
|