372 lines · 11.4 KB · TypeScript
RawDownload
import { EventId, ProviderDriverKind } from "@t3tools/contracts"; import type {  FixtureProviderRuntimeEvent,  TestTurnResponse,} from "../TestProviderAdapter.integration.ts"; const FIXTURE_THREAD_ID = "transfer-budget-thread";const FIXTURE_TURN_ID = "transfer-budget-turn"; export const TRANSFER_HISTORY_TURN_COUNT = 10;export const TRANSFER_HISTORY_TOOLS_PER_TURN = 5;export const TRANSFER_MEASURED_TOOLS = 20;export const TRANSFER_HISTORY_MCP_RESULT_BYTES = 900_000;export const TRANSFER_MEASURED_MCP_RESULT_BYTES = 1_100_000; const sourceModules = [  "connection/session.ts",  "connection/supervisor.ts",  "rpc/client.ts",  "rpc/protocol.ts",  "state/threads.ts",  "state/threadReducer.ts",  "state/threadSnapshotHttp.ts",  "orchestration/http.ts",  "orchestration/Normalizer.ts",  "orchestration/ActivityPayloadProjection.ts",  "provider/ProviderService.ts",  "provider/ProviderRuntimeIngestion.ts",  "persistence/ProjectionSnapshotQuery.ts",  "persistence/OrchestrationEventStore.ts",  "checkpointing/CheckpointStore.ts",  "checkpointing/CheckpointDiffQuery.ts",  "server.ts",] as const; function fixtureTimestamp(turnIndex: number, eventIndex: number): string {  const minute = String(turnIndex).padStart(2, "0");  const second = String(Math.floor(eventIndex / 1_000)).padStart(2, "0");  const millisecond = String(eventIndex % 1_000).padStart(3, "0");  return `2026-06-01T00:${minute}:${second}.${millisecond}Z`;} function mix(value: number): number {  let mixed = value | 0;  mixed ^= mixed >>> 16;  mixed = Math.imul(mixed, 0x7feb352d);  mixed ^= mixed >>> 15;  mixed = Math.imul(mixed, 0x846ca68b);  mixed ^= mixed >>> 16;  return mixed >>> 0;} function digest(seed: number): string {  return [0, 1, 2, 3]    .map((offset) =>      mix(seed + offset * 0x9e3779b9)        .toString(16)        .padStart(8, "0"),    )    .join("");} /** Produces safe, deterministic output with enough entropy to exercise gzip. */function diagnosticOutput(input: {  readonly provider: ProviderDriverKind;  readonly turnIndex: number;  readonly toolIndex: number;  readonly targetBytes: number;}): string {  const chunks: string[] = [];  const providerSeed = input.provider === "codex" ? 0x43_4f_44_45 : 0x43_4c_41_55;  let length = 0;  let lineIndex = 0;   while (length < input.targetBytes) {    const modulePath = sourceModules[(input.toolIndex + lineIndex) % sourceModules.length];    const seed =      providerSeed + input.turnIndex * 100_003 + input.toolIndex * 10_007 + lineIndex * 101;    const line =      `${String(lineIndex + 1).padStart(6, "0")} ${modulePath} ` +      `operation=project-transfer-${input.turnIndex + 1}-${input.toolIndex + 1} ` +      `cursor=${mix(seed)} digest=${digest(seed)} status=completed\n`;    chunks.push(line);    length += line.length;    lineIndex += 1;  }   return chunks.join("").slice(0, input.targetBytes);} function assistantChunks(provider: ProviderDriverKind, turnIndex: number): ReadonlyArray<string> {  const providerName = provider === "codex" ? "Codex" : "Claude";  const paragraphs: string[] = [    `I traced the ${providerName} request through the environment connection and orchestration layers. `,  ];  let paragraphIndex = 0;  while (paragraphs.join("").length < 4_096) {    const modulePath = sourceModules[paragraphIndex % sourceModules.length];    paragraphs.push(      `Pass ${paragraphIndex + 1} reviewed ${modulePath} for turn ${turnIndex + 1}. ` +        "The shell cursor stayed monotonic, the thread snapshot remained resumable, and the client received only incremental events. ",    );    paragraphIndex += 1;  }  const text = paragraphs.join("").slice(0, 4_096);  return Array.from({ length: Math.ceil(text.length / 256) }, (_, index) =>    text.slice(index * 256, (index + 1) * 256),  );} export function expectedRecordedAssistantText(  provider: ProviderDriverKind,  turnIndex: number,): string {  return assistantChunks(provider, turnIndex).join("");} function unifiedDiff(provider: ProviderDriverKind, turnIndex: number): string {  const lines = sourceModules    .slice(0, 8)    .flatMap((modulePath, index) => [      `diff --git a/${modulePath} b/${modulePath}`,      `--- a/${modulePath}`,      `+++ b/${modulePath}`,      `@@ -${index + 1},2 +${index + 1},3 @@`,      ` const provider = "${provider}";`,      `+const transferTurn = ${turnIndex + 1};`,      `+const transferSample = ${1_500 + index * 97};`,    ]);  return lines.join("\n");} function baseEvent(  provider: ProviderDriverKind,  turnIndex: number,  eventIndex: number,): Pick<FixtureProviderRuntimeEvent, "eventId" | "provider" | "createdAt" | "threadId"> {  return {    eventId: EventId.make(`recorded:${provider}:${turnIndex}:${eventIndex}`),    provider,    createdAt: fixtureTimestamp(turnIndex, eventIndex),    threadId: FIXTURE_THREAD_ID,  };} /** * Synthetic canonical events calibrated from heavy local Codex and Claude * threads. Ten historical turns produce 9 MB of retained MCP results without * committing user content. Command output is intentionally modest because the * client projection strips it. */export function makeRecordedTransferTurn(  provider: ProviderDriverKind,  turnIndex: number,): TestTurnResponse {  const measuredTurn = turnIndex >= TRANSFER_HISTORY_TURN_COUNT;  const toolCount = measuredTurn ? TRANSFER_MEASURED_TOOLS : TRANSFER_HISTORY_TOOLS_PER_TURN;  const turnId = `${FIXTURE_TURN_ID}-${turnIndex + 1}`;  const events: FixtureProviderRuntimeEvent[] = [];  let eventIndex = 0;   events.push({    type: "turn.started",    ...baseEvent(provider, turnIndex, eventIndex++),    turnId,    payload: {      model: provider === "codex" ? "gpt-5.4" : "claude-opus-4-1",      effort: provider === "codex" ? "high" : "default",    },  });   for (let toolIndex = 0; toolIndex < toolCount; toolIndex += 1) {    const itemId = `tool-${turnIndex + 1}-${toolIndex + 1}`;    const command =      provider === "codex"        ? `vp test transfer-budget-${toolIndex + 1}`        : `review transfer budget ${toolIndex + 1}`;    events.push(      {        type: "item.started",        ...baseEvent(provider, turnIndex, eventIndex++),        turnId,        itemId,        payload: {          itemType: "command_execution",          status: "inProgress",          title: `Inspect transfer path ${toolIndex + 1}`,          detail: "Inspecting the HTTP snapshot and WebSocket projection boundaries.",          data: {            threadId: FIXTURE_THREAD_ID,            turnId,            startedAtMs: turnIndex * 60_000 + eventIndex,            item: {              id: itemId,              type: "commandExecution",              command,              cwd: "/workspace/transfer-budget",              processId: String(toolIndex + 1),              status: "inProgress",              commandActions: [],              aggregatedOutput: "",            },          },        },      },      {        type: "item.completed",        ...baseEvent(provider, turnIndex, eventIndex++),        turnId,        itemId,        payload: {          itemType: "command_execution",          status: "completed",          title: `Inspected transfer path ${toolIndex + 1}`,          detail: "Collected a deterministic multi-module transfer diagnostic.",          data: {            threadId: FIXTURE_THREAD_ID,            turnId,            completedAtMs: turnIndex * 60_000 + eventIndex,            item: {              id: itemId,              type: "commandExecution",              command,              cwd: "/workspace/transfer-budget",              processId: String(toolIndex + 1),              status: "completed",              commandActions: [],              aggregatedOutput: diagnosticOutput({                provider,                turnIndex,                toolIndex,                targetBytes: 1_000,              }),              exitCode: 0,              durationMs: 500 + toolIndex,            },          },        },      },    );  }   const mcpItemId = `mcp-${turnIndex + 1}`;  const mcpResultBytes = measuredTurn    ? TRANSFER_MEASURED_MCP_RESULT_BYTES    : TRANSFER_HISTORY_MCP_RESULT_BYTES;  events.push(    {      type: "item.started",      ...baseEvent(provider, turnIndex, eventIndex++),      turnId,      itemId: mcpItemId,      payload: {        itemType: "mcp_tool_call",        status: "inProgress",        title: "fixture-history · inspect_transfer_log",        detail: "Reading a retained diagnostic result from the provider history.",        data: {          startedAtMs: turnIndex * 60_000 + eventIndex,          threadId: FIXTURE_THREAD_ID,          turnId,          item: {            type: "mcpToolCall",            id: mcpItemId,            server: "fixture-history",            tool: "inspect_transfer_log",            arguments: { turn: turnIndex + 1 },            status: "inProgress",          },        },      },    },    {      type: "item.completed",      ...baseEvent(provider, turnIndex, eventIndex++),      turnId,      itemId: mcpItemId,      payload: {        itemType: "mcp_tool_call",        status: "completed",        title: "fixture-history · inspect_transfer_log",        detail: "Retained a deterministic diagnostic result in the thread history.",        data: {          completedAtMs: turnIndex * 60_000 + eventIndex,          threadId: FIXTURE_THREAD_ID,          turnId,          item: {            type: "mcpToolCall",            id: mcpItemId,            server: "fixture-history",            tool: "inspect_transfer_log",            arguments: { turn: turnIndex + 1 },            durationMs: 1_000 + turnIndex,            error: null,            result: {              content: [                {                  type: "text",                  text: diagnosticOutput({                    provider,                    turnIndex,                    toolIndex: toolCount,                    targetBytes: mcpResultBytes,                  }),                },              ],            },            status: "completed",          },        },      },    },  );   const chunks = assistantChunks(provider, turnIndex);  for (const [contentIndex, delta] of chunks.entries()) {    events.push({      type: "content.delta",      ...baseEvent(provider, turnIndex, eventIndex++),      turnId,      itemId: `assistant-${turnIndex + 1}`,      payload: {        streamKind: "assistant_text",        delta,        contentIndex,      },    });  }   events.push(    {      type: "thread.token-usage.updated",      ...baseEvent(provider, turnIndex, eventIndex++),      turnId,      payload: {        usage: {          usedTokens: 18_000 + turnIndex * 1_900,          maxTokens: 200_000,          inputTokens: 15_000 + turnIndex * 1_700,          cachedInputTokens: 9_000 + turnIndex * 1_100,          outputTokens: 3_000 + turnIndex * 200,          toolUses: toolCount,          durationMs: 4_000 + turnIndex * 250,        },      },    },    {      type: "turn.diff.updated",      ...baseEvent(provider, turnIndex, eventIndex++),      turnId,      payload: {        unifiedDiff: unifiedDiff(provider, turnIndex),      },    },    {      type: "turn.completed",      ...baseEvent(provider, turnIndex, eventIndex),      turnId,      payload: {        state: "completed",        stopReason: "end_turn",        usage: {          inputTokens: 15_000 + turnIndex * 1_700,          outputTokens: 3_000 + turnIndex * 200,        },      },    },  );   return { events };}