feat(prompt): implement prompt injection slice 2

This commit is contained in:
2026-06-11 17:27:31 +02:00
parent 56560d9d56
commit 621434b6e8
5 changed files with 352 additions and 4 deletions
+27
View File
@@ -290,6 +290,33 @@ describe("pi-extension", () => {
expect(result.message.display).toBe(false);
});
it("injects canonical root-pair block with real file content when maps exist and mode is strong", async () => {
const dir = mkdtempSync(join(tmpdir(), "pi-ext-test-"));
writeFileSync(join(dir, ".pi-map.md"), "# .\n## role\nRootMap\n");
writeFileSync(
join(dir, ".pi-map.index.md"),
"# . (index)\n## role\nRootIndex\n",
);
writeFileSync(
join(dir, ".pi-project-map.json"),
JSON.stringify({ promptInjectionMode: "strong" }),
);
mockCtx.cwd = dir;
const handler = registeredEvents.before_agent_start;
const result = await handler(null, mockCtx);
expect(result).toHaveProperty("message");
expect(result.message.display).toBe(false);
expect(result.message.content).toContain(
"<!-- PI_MAP_ROOT_PAIR_START -->",
);
expect(result.message.content).toContain("<!-- PI_MAP_ROOT_PAIR_END -->");
expect(result.message.content).toContain("RootMap");
expect(result.message.content).toContain("RootIndex");
expect(result.message.content).toContain("Trust boundary:");
});
it("returns empty object when no maps exist and mode is off", async () => {
const dir = mkdtempSync(join(tmpdir(), "pi-ext-test-"));
writeFileSync(