stripTrajectoryRequestDetail function

TrajectoryRequestDetail stripTrajectoryRequestDetail(
  1. TrajectoryRequestDetail detail, {
  2. required String spillFile,
  3. String? wireDumpHash,
})

Reduces detail to the gh-1745 lightweight in-JSONL shape: per-message role+chars stubs (no previews, no block texts — the estimation basis Σ chars stays truthful) plus the spillFile pointer to the request blob carrying the full detail. Counts, sizes, tool names and blob hashes pass through untouched; wireDumpHash overrides the pointer when the raw wire dump spilled into the same blob.

Implementation

TrajectoryRequestDetail stripTrajectoryRequestDetail(
  TrajectoryRequestDetail detail, {
  required String spillFile,
  String? wireDumpHash,
}) => TrajectoryRequestDetail(
  messageCount: detail.messageCount,
  systemPromptChars: detail.systemPromptChars,
  toolCount: detail.toolCount,
  toolNames: detail.toolNames,
  systemPromptHash: detail.systemPromptHash,
  toolManifestHash: detail.toolManifestHash,
  wireDumpHash: wireDumpHash ?? detail.wireDumpHash,
  spillFile: spillFile,
  messages: [
    for (final message in detail.messages)
      TrajectoryRequestMessageSummary(
        role: message.role,
        chars: message.chars,
        preview: '',
      ),
  ],
);