import { ApprovalRequestId, EventId, ProviderSessionId, ProviderThreadId, ProviderTurnId, type ProviderRuntimeEvent, } from "@t3tools/contracts"; const PROVIDER = "codex" as const; const SESSION_ID = ProviderSessionId.makeUnsafe("fixture-session"); const THREAD_ID = ProviderThreadId.makeUnsafe("fixture-thread"); const TURN_ID = ProviderTurnId.makeUnsafe("fixture-turn"); const REQUEST_ID = ApprovalRequestId.makeUnsafe("req-1"); function baseEvent( eventId: string, createdAt: string, ): Pick { return { eventId: EventId.makeUnsafe(eventId), provider: PROVIDER, sessionId: SESSION_ID, createdAt, }; } export const codexTurnTextFixture = [ { type: "turn.started", ...baseEvent("evt-1", "2026-02-23T00:00:00.000Z"), threadId: THREAD_ID, turnId: TURN_ID, }, { type: "message.delta", ...baseEvent("evt-2", "2026-02-23T00:00:00.100Z"), threadId: THREAD_ID, turnId: TURN_ID, delta: "I will make a small update.\n", }, { type: "message.delta", ...baseEvent("evt-3", "2026-02-23T00:00:00.200Z"), threadId: THREAD_ID, turnId: TURN_ID, delta: "Done.\n", }, { type: "turn.completed", ...baseEvent("evt-4", "2026-02-23T00:00:00.300Z"), threadId: THREAD_ID, turnId: TURN_ID, status: "completed", }, ] satisfies ReadonlyArray; export const codexTurnToolFixture = [ { type: "turn.started", ...baseEvent("evt-11", "2026-02-23T00:01:00.000Z"), threadId: THREAD_ID, turnId: TURN_ID, }, { type: "tool.started", ...baseEvent("evt-12", "2026-02-23T00:01:00.100Z"), threadId: THREAD_ID, turnId: TURN_ID, toolKind: "command", title: "Command run", detail: "echo integration", }, { type: "tool.completed", ...baseEvent("evt-13", "2026-02-23T00:01:00.200Z"), threadId: THREAD_ID, turnId: TURN_ID, toolKind: "command", title: "Command run", detail: "echo integration", }, { type: "message.delta", ...baseEvent("evt-14", "2026-02-23T00:01:00.300Z"), threadId: THREAD_ID, turnId: TURN_ID, delta: "Applied the requested edit.\n", }, { type: "turn.completed", ...baseEvent("evt-15", "2026-02-23T00:01:00.400Z"), threadId: THREAD_ID, turnId: TURN_ID, status: "completed", }, ] satisfies ReadonlyArray; export const codexTurnApprovalFixture = [ { type: "turn.started", ...baseEvent("evt-21", "2026-02-23T00:02:00.000Z"), threadId: THREAD_ID, turnId: TURN_ID, }, { type: "approval.requested", ...baseEvent("evt-22", "2026-02-23T00:02:00.100Z"), threadId: THREAD_ID, turnId: TURN_ID, requestId: REQUEST_ID, requestKind: "command", detail: "Please approve command", }, { type: "approval.resolved", ...baseEvent("evt-23", "2026-02-23T00:02:00.200Z"), threadId: THREAD_ID, turnId: TURN_ID, requestId: REQUEST_ID, requestKind: "command", decision: "accept", }, { type: "message.delta", ...baseEvent("evt-24", "2026-02-23T00:02:00.300Z"), threadId: THREAD_ID, turnId: TURN_ID, delta: "Approval received and command executed.\n", }, { type: "turn.completed", ...baseEvent("evt-25", "2026-02-23T00:02:00.400Z"), threadId: THREAD_ID, turnId: TURN_ID, status: "completed", }, ] satisfies ReadonlyArray;