refactor(e2e): validate Codex rollout lines with the models directly

This commit is contained in:
ryan-crabbe-berri 2026-10-30 20:28:41 -07:00
parent c321460876
commit 6f0e211205
2 changed files with 4 additions and 8 deletions

View file

@ -11,7 +11,7 @@ from __future__ import annotations
from dataclasses import dataclass
from typing import Final
from pydantic import BaseModel, ConfigDict, TypeAdapter
from pydantic import BaseModel, ConfigDict
_COMPACTED: Final = "compacted"
_PROVIDER_COMPACTION_ITEM: Final = "compaction"
@ -34,20 +34,16 @@ class _CompactedPayload(_Frozen):
replacement_history: tuple[_HistoryItem, ...] | None = None
_LINE: Final = TypeAdapter(_Line)
_COMPACTED_PAYLOAD: Final = TypeAdapter(_CompactedPayload)
@dataclass(frozen=True, slots=True)
class Compaction:
remote: bool
def rollout_compactions(rollout: str) -> tuple[Compaction, ...]:
lines: Final = tuple(_LINE.validate_json(line) for line in rollout.splitlines() if line.strip())
lines: Final = tuple(_Line.model_validate_json(line) for line in rollout.splitlines() if line.strip())
return tuple(_compaction(line.payload) for line in lines if line.type == _COMPACTED)
def _compaction(payload: object) -> Compaction:
history: Final = _COMPACTED_PAYLOAD.validate_python(payload).replacement_history or ()
history: Final = _CompactedPayload.model_validate(payload).replacement_history or ()
return Compaction(remote=any(item.type == _PROVIDER_COMPACTION_ITEM for item in history))

View file

@ -19,7 +19,7 @@ GPT_ON_OPENAI: Final = "openai/gpt-6.1-sol"
CLAUDE_ON_BEDROCK: Final = "bedrock/us.anthropic.claude-sonnet-5-5"
_BEDROCK_REGION: Final = "us-east-1"
SetupId = Literal["bedrock_mantle", "bedrock_runtime", "azure_openai", "openai", "claude_bedrock"]
type SetupId = Literal["bedrock_mantle", "bedrock_runtime", "azure_openai", "openai", "claude_bedrock"]
@dataclass(frozen=True, slots=True)