| 123456789101112131415161718192021222324252627 |
- import { expect, test } from "bun:test"
- import { SessionCompaction } from "@opencode-ai/core/session/compaction"
- test("compaction prompt preserves detailed work state and relevant files", () => {
- const prompt = SessionCompaction.buildPrompt({ context: ["conversation history"] })
- expect(prompt).toContain("## Work State\n### Completed")
- expect(prompt).toContain("### Active")
- expect(prompt).toContain("### Blocked")
- expect(prompt).toContain("## Relevant Files")
- })
- test("compaction describes tool media without embedding base64", () => {
- const base64 = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB"
- const serialized = SessionCompaction.serializeToolContent([
- { type: "text", text: "Image read successfully" },
- {
- type: "file",
- uri: `data:image/png;base64,${base64}`,
- mime: "image/png",
- name: "pixel.png",
- },
- ])
- expect(serialized).toBe("Image read successfully\n[Attached image/png: pixel.png]")
- expect(serialized).not.toContain(base64)
- })
|