Spaces:
Runtime error
Runtime error
Commit ·
d53ff08
1
Parent(s): ef18469
feat(cp7): additive SessionTrace.memory_ref
Browse files
proteus/runtime/trace.py
CHANGED
|
@@ -84,6 +84,8 @@ class SessionTrace(BaseModel):
|
|
| 84 |
turns: Per-turn traces, in play order.
|
| 85 |
outcome: ``"survived"`` or ``"eliminated"``.
|
| 86 |
metrics: Computed session metrics (see ``runtime.metrics``).
|
|
|
|
|
|
|
| 87 |
"""
|
| 88 |
|
| 89 |
scenario: str
|
|
@@ -95,3 +97,5 @@ class SessionTrace(BaseModel):
|
|
| 95 |
turns: list[TurnTrace] = Field(default_factory=list)
|
| 96 |
outcome: Literal["survived", "eliminated"]
|
| 97 |
metrics: dict[str, float] = Field(default_factory=dict)
|
|
|
|
|
|
|
|
|
| 84 |
turns: Per-turn traces, in play order.
|
| 85 |
outcome: ``"survived"`` or ``"eliminated"``.
|
| 86 |
metrics: Computed session metrics (see ``runtime.metrics``).
|
| 87 |
+
memory_ref: Path/ref of the CP7 memory checkpoint shown at the handover,
|
| 88 |
+
or ``None`` when no memory pre-roll was used.
|
| 89 |
"""
|
| 90 |
|
| 91 |
scenario: str
|
|
|
|
| 97 |
turns: list[TurnTrace] = Field(default_factory=list)
|
| 98 |
outcome: Literal["survived", "eliminated"]
|
| 99 |
metrics: dict[str, float] = Field(default_factory=dict)
|
| 100 |
+
# CP7: path/ref of the memory checkpoint shown at handover (None if unused).
|
| 101 |
+
memory_ref: str | None = None
|
tests/runtime/test_session_memory.py
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from proteus.runtime.trace import SessionTrace
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
def test_session_trace_memory_ref_defaults_none_and_round_trips():
|
| 5 |
+
t = SessionTrace(
|
| 6 |
+
scenario="predator_evade", motive_category="survival", seed=42,
|
| 7 |
+
difficulty="easy", model="demo", outcome="survived",
|
| 8 |
+
)
|
| 9 |
+
assert t.memory_ref is None
|
| 10 |
+
t2 = SessionTrace.model_validate_json(t.model_dump_json())
|
| 11 |
+
assert t2.memory_ref is None
|
| 12 |
+
|
| 13 |
+
t3 = SessionTrace(
|
| 14 |
+
scenario="predator_evade", motive_category="survival", seed=42,
|
| 15 |
+
difficulty="easy", model="demo", outcome="survived",
|
| 16 |
+
memory_ref="demo@FIXED",
|
| 17 |
+
)
|
| 18 |
+
assert SessionTrace.model_validate_json(t3.model_dump_json()).memory_ref == "demo@FIXED"
|