Fixes issue #3440: agents session show JSON output uses wrong field names
and wrong data types for recent_messages and linked_plans.
Changes:
- Add LinkedPlan value object to session domain model with plan_id, phase,
state fields for spec-compliant linked_plans output
- Add automation field to Session domain model for automation profile name
- Rewrite as_cli_dict() to produce spec-compliant output:
- Wrap session fields in session_summary sub-dict
- Rename session_id -> id, actor_name -> actor, message_count -> messages,
created_at -> created, updated_at -> updated
- Remove namespace from session_summary (not in spec)
- Add automation field to session_summary
- Use 'text' key (not 'content') in recent_messages items
- Replace linked_plan_ids (flat list) with linked_plans (list of objects
with plan_id, phase, state)
- Format estimated_cost as string (e.g. '$0.0184') not raw float
- Update session show rich output to use spec-compliant labels and
render linked_plans as a table with Plan ID / Phase / State columns
- Update consolidated_domain_models.feature tests to assert new field names
- Add new Behave step definitions for spec-compliant field assertions
- Export LinkedPlan from domain models core __init__.py
ISSUES CLOSED: #3440