Something went wrong. Try again.
fork of prime agent with changes i want but are not upstreamable probqbly (and some fixes)
Something went wrong. Try again.
2.9 kB · 77 lines
TypeScript
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778import { describe, expect, it } from "vitest";import { appendSessionEntryStructure, packSessionEntryStructure, readSessionEntryStructure, SESSION_ENTRY_STRUCTURE_RECORD_BYTES, type SessionEntryStructure,} from "../src/core/session-entry-structure.js";
function record(overrides: Partial<SessionEntryStructure> = {}): SessionEntryStructure { return { id: "24ba855c", parentId: null, type: "message", role: "user", timestampMs: 1_769_000_000_123, offset: 100, length: 250, ...overrides, };}
describe("packed session entry structure", () => { it("round-trips every field", () => { const records = [ record(), record({ id: "01a09d7f", parentId: "24ba855c", type: "custom_message", role: "toolResult", timestampMs: null, offset: 351, length: 1_100_000, }), record({ id: "ffffffff", parentId: "01a09d7f", type: "compaction", role: null, timestampMs: 1.5 }), ]; const blob = packSessionEntryStructure(records); expect(blob).toBeDefined(); expect(blob!.length).toBe(8 + records.length * SESSION_ENTRY_STRUCTURE_RECORD_BYTES); expect(readSessionEntryStructure(blob)).toEqual(records); });
it("keeps an unknown role but refuses an unknown entry type", () => { const packed = packSessionEntryStructure([record({ role: "future-role" })]); expect(readSessionEntryStructure(packed)[0]!.role).toBe("other"); expect(packSessionEntryStructure([record({ type: "future-type" })])).toBeUndefined(); });
it("refuses ids that are not 16 hex characters", () => { expect(packSessionEntryStructure([record({ id: "not-a-hex-id" })])).toBeUndefined(); expect(packSessionEntryStructure([record({ parentId: "01a09d7f-8494" })])).toBeUndefined(); expect(packSessionEntryStructure([record({ parentId: "24ba855c" })])).toBeDefined(); });
it("appends records without rewriting the earlier ones", () => { const first = packSessionEntryStructure([record()])!; const appended = appendSessionEntryStructure(first, 351, [record({ id: "aaaaaaaa", offset: 351 })])!; expect(readSessionEntryStructure(appended).map((entry) => entry.id)).toEqual(["24ba855c", "aaaaaaaa"]); expect( readSessionEntryStructure(appendSessionEntryStructure(first, 0, [record({ id: "bbbbbbbb" })])!).map( (e) => e.id, ), ).toEqual(["bbbbbbbb"]); expect(appendSessionEntryStructure(undefined, 0, [record({ id: "no" })])).toBeUndefined(); });
it("reads nothing from a truncated or unknown blob", () => { expect(readSessionEntryStructure(null)).toEqual([]); expect(readSessionEntryStructure(Buffer.alloc(4))).toEqual([]); const blob = packSessionEntryStructure([record(), record({ id: "aaaaaaaa" })])!; expect(readSessionEntryStructure(blob.subarray(0, blob.length - 1))).toHaveLength(1); const future = Buffer.from(blob); future[0] = 99; expect(readSessionEntryStructure(future)).toEqual([]); });});