feat: Workshop Phase 1 — State Schema v1 (#404)
Co-authored-by: Kimi Agent <kimi@timmy.local> Co-committed-by: Kimi Agent <kimi@timmy.local>
This commit was merged in pull request #404.
This commit is contained in:
@@ -26,17 +26,47 @@ def test_get_state_dict_returns_v1_schema():
|
||||
assert isinstance(state["active_threads"], list)
|
||||
assert isinstance(state["recent_events"], list)
|
||||
assert isinstance(state["concerns"], list)
|
||||
# Issue #360 enriched fields
|
||||
assert isinstance(state["confidence"], float)
|
||||
assert 0.0 <= state["confidence"] <= 1.0
|
||||
assert isinstance(state["energy"], float)
|
||||
assert 0.0 <= state["energy"] <= 1.0
|
||||
assert state["identity"]["name"] == "Timmy"
|
||||
assert state["identity"]["title"] == "The Workshop Wizard"
|
||||
assert isinstance(state["identity"]["uptime_seconds"], int)
|
||||
assert state["activity"]["current"] in ("idle", "thinking")
|
||||
assert state["environment"]["time_of_day"] in (
|
||||
"morning",
|
||||
"afternoon",
|
||||
"evening",
|
||||
"night",
|
||||
"deep-night",
|
||||
)
|
||||
assert state["environment"]["day_of_week"] in (
|
||||
"Monday",
|
||||
"Tuesday",
|
||||
"Wednesday",
|
||||
"Thursday",
|
||||
"Friday",
|
||||
"Saturday",
|
||||
"Sunday",
|
||||
)
|
||||
assert state["interaction"]["visitor_present"] is False
|
||||
assert isinstance(state["interaction"]["conversation_turns"], int)
|
||||
assert state["meta"]["schema_version"] == 1
|
||||
assert state["meta"]["writer"] == "timmy-loop"
|
||||
assert "updated_at" in state["meta"]
|
||||
|
||||
|
||||
def test_get_state_dict_idle_mood():
|
||||
"""Idle engagement + settled mood → 'idle' presence mood."""
|
||||
"""Idle engagement + settled mood → 'calm' presence mood."""
|
||||
from timmy.cognitive_state import CognitiveState, CognitiveTracker
|
||||
|
||||
tracker = CognitiveTracker.__new__(CognitiveTracker)
|
||||
tracker.state = CognitiveState(engagement="idle", mood="settled")
|
||||
with patch("timmy.cognitive_state.cognitive_tracker", tracker):
|
||||
state = get_state_dict()
|
||||
assert state["mood"] == "idle"
|
||||
assert state["mood"] == "calm"
|
||||
|
||||
|
||||
def test_get_state_dict_maps_mood():
|
||||
@@ -44,7 +74,7 @@ def test_get_state_dict_maps_mood():
|
||||
from timmy.cognitive_state import CognitiveState, CognitiveTracker
|
||||
|
||||
for cog_mood, expected in [
|
||||
("curious", "exploring"),
|
||||
("curious", "contemplative"),
|
||||
("hesitant", "uncertain"),
|
||||
("energized", "excited"),
|
||||
]:
|
||||
|
||||
Reference in New Issue
Block a user