Raahat Scenario Harness

Curated conversation replay against the real runtime with stepwise diagnostics, readable deltas, and deterministic checks.

Round Trip Transport

transport_round_trip · transport · 2/2 turns executed

Scenario Summary

IDtransport_round_trip
TitleRound Trip Transport
Categorytransport
Turns2/2
Run Statecompleted
round_trip multi_turn

Seed State

UserUnknown user
Phone919900000205
Seed Workflow
Seed State Machine

Current Runtime State

Routetransport
Workflowtransport
State Machine
Stageready_for_dispatch

Checks And Lifecycle

Expectations Passed2
Expectations Failed0
Heuristic Warnings0
Stage advanced Sticky continuation
Final assessmentScenario completed cleanly with no flagged issues.

Final Outcome

Completed

Completed vs partial run state.

Final Route

transport

Current route at the end of the replay.

Final Workflow / State

transport

Workflow preferred; state machine shown if no workflow is active.

Final Stage

ready_for_dispatch

Resolved from workflow progress or active snapshot.

Expectation Totals

Pass 2 Fail 0

Heuristic Totals

Warnings 0

Missing Fields

No unresolved workflow fields.

Lifecycle Events Seen

Stage advanced Sticky continuation
Turn 1
transport transport route_defined intent_match
Stage advanced New slots filled Memory updated
PASS
User
Need pickup from Baner to Wakad tomorrow morning and pickup and drop both
Assistant
I can help with transport. How many cats is this for?

What Changed This Turn

  • Workflow changed none -> transport.
  • Stage advanced none -> route_defined.
  • New slot filled: drop_area=Wakad.
  • New slot filled: last_question_key=pet_count.
  • New slot filled: pickup_area=Baner.
  • New slot filled: raw_date_text=tomorrow.
  • New slot filled: raw_time_text=morning.
  • New slot filled: request_kind=booking.
  • New slot filled: return_trip_required=True.
  • New slot filled: stage=route_defined.
  • New slot filled: time_window=morning.
  • New slot filled: travel_date=2026-03-17.
  • New slot filled: trip_kind=pickup_drop.
  • New slot filled: urgency_class=soon.
  • Memory updated with area.
  • Memory updated with date_phrase.
  • Memory updated with drop_area.
  • Memory updated with last_non_medical_domain.
  • Memory updated with pickup_area.
  • Memory updated with time_text.
  • Memory updated with time_window.
  • Memory updated with transport_urgency.
  • Memory updated with travel_date.
  • Memory updated with trip_kind.
  • Snapshot version incremented to 1.

Expectation And Heuristic Results

Expectations
PASS: workflow_name matched expected value 'transport'
Routing And Interpretation
{
  "confidence": 0.9,
  "reason_codes": [
    "intent_match"
  ],
  "route_type": "transport",
  "workflow_name": "transport"
}
{
  "confidence": 0.9,
  "entities": {
    "area": "baner",
    "city": "pune",
    "date_phrase": "tomorrow",
    "drop_area": "Wakad",
    "pickup_area": "Baner",
    "pickup_required": true,
    "time_text": "morning",
    "zone": "west"
  },
  "is_vague": false,
  "primary_domain": "transport",
  "reason": "clear transport request",
  "secondary_domains": [],
  "should_continue_active_workflow": false,
  "should_preempt_active_workflow": false,
  "urgency_signal": "none"
}
Workflow Progress And Intents
{
  "missing_fields": [
    "pet_count"
  ],
  "next_question": "I can help with transport. How many cats is this for?",
  "notes": [],
  "stage": "route_defined",
  "state_payload": {
    "drop_area": "Wakad",
    "handling_requirements": [],
    "last_question_key": "pet_count",
    "pet_count": null,
    "pickup_area": "Baner",
    "raw_date_text": "tomorrow",
    "raw_time_text": "morning",
    "request_kind": "booking",
    "return_trip_required": true,
    "stage": "route_defined",
    "time_window": "morning",
    "travel_date": "2026-03-17",
    "trip_kind": "pickup_drop",
    "urgency_class": "soon"
  },
  "status": "collecting",
  "summary": "Baner -> Wakad | 2026-03-17 | morning",
  "superseded_by": null,
  "workflow_name": "transport"
}
[]
Conversation Before And After
{
  "active_state_machine": null,
  "active_workflow": null,
  "current_state": null,
  "entities": {},
  "messages": [],
  "phone": "919900000205",
  "service_actions": [],
  "started_at": "2026-03-16T22:32:11.532154+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:32:11.532158+00:00"
}
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": "pet_count",
    "missing_fields": [
      "pet_count"
    ],
    "next_question": "I can help with transport. How many cats is this for?",
    "stage": "route_defined",
    "started_at": "2026-03-16T22:32:11.552123+00:00",
    "state_payload": {
      "drop_area": "Wakad",
      "handling_requirements": [],
      "last_question_key": "pet_count",
      "pet_count": null,
      "pickup_area": "Baner",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": true,
      "stage": "route_defined",
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "pickup_drop",
      "urgency_class": "soon"
    },
    "status": "collecting",
    "summary": "Baner -> Wakad | 2026-03-17 | morning",
    "superseded_by": null,
    "updated_at": "2026-03-16T22:32:11.552126+00:00",
    "version": 1,
    "workflow_name": "transport"
  },
  "current_state": "ROUTE_DEFINED",
  "entities": {
    "area": "Baner",
    "date_phrase": "tomorrow",
    "drop_area": "Wakad",
    "last_non_medical_domain": "transport",
    "pickup_area": "Baner",
    "time_text": "morning",
    "time_window": "morning",
    "transport_urgency": "soon",
    "travel_date": "2026-03-17",
    "trip_kind": "pickup_drop"
  },
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "Need pickup from Baner to Wakad tomorrow morning and pickup and drop both",
      "timestamp": "2026-03-16T22:32:11.552322+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "I can help with transport. How many cats is this for?",
      "timestamp": "2026-03-16T22:32:11.552324+00:00"
    }
  ],
  "phone": "919900000205",
  "service_actions": [],
  "started_at": "2026-03-16T22:32:11.552319+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:32:11.552343+00:00"
}
Memory And Trace
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000205",
  "conversation_keys": [
    "919900000205",
    "9900000205"
  ],
  "current_state": null,
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 0,
  "ttl_seconds_remaining": null
}
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000205",
  "conversation_keys": [
    "919900000205",
    "9900000205"
  ],
  "current_state": "ROUTE_DEFINED",
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 2,
  "ttl_seconds_remaining": null
}
[
  {
    "component": "brain",
    "payload": {
      "channel": "scenario_harness",
      "conversation_key": "919900000205",
      "message_text": "Need pickup from Baner to Wakad tomorrow morning and pickup and drop both",
      "normalized_phone": "919900000205",
      "phone": "919900000205"
    },
    "stage": "input",
    "summary": "Received normalized message envelope",
    "timestamp": "2026-03-16T22:32:11.550022+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "backend": "inmemory",
      "current_state": null,
      "loaded": true,
      "message_count": 0,
      "storage_key": "919900000205"
    },
    "stage": "memory",
    "summary": "Loaded conversation memory",
    "timestamp": "2026-03-16T22:32:11.550027+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "has_prior_triage_state": false,
      "prior_state_error": null
    },
    "stage": "state",
    "summary": "Parsed prior working state",
    "timestamp": "2026-03-16T22:32:11.550064+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "compact_payload_keys": [
        "incoming_message"
      ],
      "has_conversation": true,
      "has_customer": false,
      "has_icp": false,
      "has_profile": false,
      "recent_import_count": 0,
      "storage_key": "919900000205"
    },
    "stage": "context",
    "summary": "Assembled SessionContext for the turn",
    "timestamp": "2026-03-16T22:32:11.550071+00:00"
  },
  {
    "component": "contact_resolver",
    "payload": {
      "confidence": 0.0,
      "customer_id": null,
      "display_name": null,
      "matched_phone": null,
      "status": "UNKNOWN"
    },
    "stage": "decision",
    "summary": "Resolved sender contact status",
    "timestamp": "2026-03-16T22:32:11.550078+00:00"
  },
  {
    "component": "turn_interpretation",
    "payload": {
      "confidence": 0.9,
      "contact_status": "UNKNOWN",
      "entities": {
        "area": "baner",
        "city": "pune",
        "date_phrase": "tomorrow",
        "drop_area": "Wakad",
        "pickup_area": "Baner",
        "pickup_required": true,
        "time_text": "morning",
        "zone": "west"
      },
      "is_vague": false,
      "primary_domain": "transport",
      "reason": "clear transport request",
      "secondary_domains": [],
      "should_continue_active_workflow": false,
      "should_preempt_active_workflow": false,
      "urgency_signal": "none"
    },
    "stage": "decision",
    "summary": "Resolved turn interpretation deterministically",
    "timestamp": "2026-03-16T22:32:11.551294+00:00"
  },
  {
    "component": "profile_context",
    "payload": {
      "phone": "919900000205"
    },
    "stage": "context",
    "summary": "No customer matched provided phone",
    "timestamp": "2026-03-16T22:32:11.551302+00:00"
  },
  {
    "component": "entry_policy",
    "payload": {
      "allow_identity_question": true,
      "bypass_onboarding": false,
      "defer_existing_workflow": false,
      "preempt_active_workflow": false,
      "reason": "unknown contact with a clear non-urgent request can allow one light identity question later",
      "run_welcome_orientation": false,
      "selected_posture": "light_onboarding"
    },
    "stage": "decision",
    "summary": "Determined entry posture for this turn",
    "timestamp": "2026-03-16T22:32:11.551305+00:00"
  },
  {
    "component": "intent_parser",
    "payload": {
      "continue_active_workflow": false,
      "primary_intent": "transport_request",
      "reason": "matched_keyword_rules",
      "resolved_state_machine": "transport",
      "workflow_source": "intent_match"
    },
    "stage": "decision",
    "summary": "Resolved primary intent and state machine",
    "timestamp": "2026-03-16T22:32:11.551434+00:00"
  },
  {
    "component": "context_builder",
    "payload": {
      "active_workflow": "transport",
      "background_fact_count": 0,
      "current_step": null,
      "foreground_fact_count": 6,
      "prompt_family": "general",
      "purpose": "workflow_response"
    },
    "stage": "context",
    "summary": "Built workflow-response context slice for prompt assembly",
    "timestamp": "2026-03-16T22:32:11.551477+00:00"
  },
  {
    "component": "workflow",
    "payload": {
      "action_intents": [],
      "missing_fields": [
        "pet_count"
      ],
      "next_question": "I can help with transport. How many cats is this for?",
      "stage": "route_defined",
      "status": "collecting",
      "summary": "Baner -> Wakad | 2026-03-17 | morning",
      "workflow_name": "transport"
    },
    "stage": "decision",
    "summary": "Executed deterministic workflow handler",
    "timestamp": "2026-03-16T22:32:11.552305+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "current_state": "ROUTE_DEFINED",
      "message_count_after": 2,
      "storage_key": "919900000205"
    },
    "stage": "mutation",
    "summary": "Persisted updated conversation memory",
    "timestamp": "2026-03-16T22:32:11.553620+00:00"
  }
]
Turn 2
transport transport ready_for_dispatch active_workflow_snapshot follow_up active_workflow_snapshot
Sticky continuation Stage advanced New slots filled Memory updated Stayed on transport
PASS
User
It is for one cat going to the vet
Assistant
I have the route and timing details. I’ll route this for transport follow-up right away.

What Changed This Turn

  • Active workflow remained transport.
  • Stage advanced route_defined -> ready_for_dispatch.
  • New slot filled: mannat_delivery=conversation_id=raahat:919900000205, created_request_id=None, delivery_key=9377f4bcc8b0c14e, endpoint=/raahat/erp/api/intake/transport, error=missing_required_fields:customer_name, payload_sent=booking_date=2026-03-17, conversation_id=raahat:919900000205, customer_name=None, customer_phone=919900000205, drop_location=The Vet, pickup_location=Baner, request_id=raahat_transport_9377f4bcc8b0c14e, return_trip_required=True, slot=morning, source_system=raahat, special_notes=Cat count: 1 | Urgency: soon | Baner -> The Vet | 2026-03-17 | morning | 1 cat, trip_category=vet_visit, request_id=raahat_transport_9377f4bcc8b0c14e, response_body=None, response_json=None, skip_reason=missing_required_fields, skipped=True, status_code=None, success=False, url=None, workflow_name=transport, workflow_stage=ready_for_dispatch.
  • New slot filled: pet_count=1.
  • Memory updated with cat_count.
  • Memory updated with drop_area.
  • Memory updated with trip_kind.
  • Snapshot version incremented to 2.

Expectation And Heuristic Results

Expectations
PASS: workflow_name matched expected value 'transport'
Routing And Interpretation
{
  "confidence": 0.92,
  "reason_codes": [
    "active_workflow_snapshot",
    "follow_up",
    "active_workflow_snapshot",
    "follow_up_slot_fill"
  ],
  "route_type": "transport",
  "workflow_name": "transport"
}
{
  "confidence": 0.92,
  "entities": {
    "cat_count": 1,
    "drop_area": "The Vet"
  },
  "is_vague": false,
  "primary_domain": "transport",
  "reason": "fills requested cat_count for active workflow",
  "secondary_domains": [],
  "should_continue_active_workflow": true,
  "should_preempt_active_workflow": false,
  "urgency_signal": "none"
}
Workflow Progress And Intents
{
  "mannat_delivery": {
    "conversation_id": "raahat:919900000205",
    "created_request_id": null,
    "delivery_key": "9377f4bcc8b0c14e",
    "endpoint": "/raahat/erp/api/intake/transport",
    "error": "missing_required_fields:customer_name",
    "payload_sent": {
      "booking_date": "2026-03-17",
      "conversation_id": "raahat:919900000205",
      "customer_name": null,
      "customer_phone": "919900000205",
      "drop_location": "The Vet",
      "pickup_location": "Baner",
      "request_id": "raahat_transport_9377f4bcc8b0c14e",
      "return_trip_required": true,
      "slot": "morning",
      "source_system": "raahat",
      "special_notes": "Cat count: 1 | Urgency: soon | Baner -> The Vet | 2026-03-17 | morning | 1 cat",
      "trip_category": "vet_visit"
    },
    "request_id": "raahat_transport_9377f4bcc8b0c14e",
    "response_body": null,
    "response_json": null,
    "skip_reason": "missing_required_fields",
    "skipped": true,
    "status_code": null,
    "success": false,
    "url": null,
    "workflow_name": "transport",
    "workflow_stage": "ready_for_dispatch"
  },
  "missing_fields": [],
  "next_question": null,
  "notes": [],
  "stage": "ready_for_dispatch",
  "state_payload": {
    "drop_area": "The Vet",
    "handling_requirements": [],
    "last_question_key": "pet_count",
    "mannat_delivery": {
      "conversation_id": "raahat:919900000205",
      "created_request_id": null,
      "delivery_key": "9377f4bcc8b0c14e",
      "endpoint": "/raahat/erp/api/intake/transport",
      "error": "missing_required_fields:customer_name",
      "payload_sent": {
        "booking_date": "2026-03-17",
        "conversation_id": "raahat:919900000205",
        "customer_name": null,
        "customer_phone": "919900000205",
        "drop_location": "The Vet",
        "pickup_location": "Baner",
        "request_id": "raahat_transport_9377f4bcc8b0c14e",
        "return_trip_required": true,
        "slot": "morning",
        "source_system": "raahat",
        "special_notes": "Cat count: 1 | Urgency: soon | Baner -> The Vet | 2026-03-17 | morning | 1 cat",
        "trip_category": "vet_visit"
      },
      "request_id": "raahat_transport_9377f4bcc8b0c14e",
      "response_body": null,
      "response_json": null,
      "skip_reason": "missing_required_fields",
      "skipped": true,
      "status_code": null,
      "success": false,
      "url": null,
      "workflow_name": "transport",
      "workflow_stage": "ready_for_dispatch"
    },
    "pet_count": 1,
    "pickup_area": "Baner",
    "raw_date_text": "tomorrow",
    "raw_time_text": "morning",
    "request_kind": "booking",
    "return_trip_required": true,
    "stage": "ready_for_dispatch",
    "time_window": "morning",
    "travel_date": "2026-03-17",
    "trip_kind": "vet_visit",
    "urgency_class": "soon"
  },
  "status": "ready",
  "summary": "Baner -> The Vet | 2026-03-17 | morning | 1 cat",
  "superseded_by": null,
  "workflow_name": "transport"
}
[
  {
    "action_type": "collect_transport_request",
    "idempotency_key": "e36ebc6492bbe884",
    "metadata": {
      "handoff_recommendation": "human_ops",
      "missing_fields": [],
      "normalized_slots": {
        "drop_area": "The Vet",
        "handling_requirements": [],
        "pet_count": 1,
        "pickup_area": "Baner",
        "raw_date_text": "tomorrow",
        "raw_time_text": "morning",
        "request_kind": "booking",
        "return_trip_required": true,
        "time_window": "morning",
        "travel_date": "2026-03-17",
        "trip_kind": "vet_visit",
        "urgency_class": "soon"
      },
      "snapshot_version": 2,
      "urgency_class": "soon",
      "workflow_name": "transport",
      "workflow_stage": "ready_for_dispatch"
    },
    "payload": {
      "drop_area": "The Vet",
      "handling_requirements": [],
      "pet_count": 1,
      "pickup_area": "Baner",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": true,
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "vet_visit",
      "urgency_class": "soon"
    },
    "priority": "normal",
    "reason": "transport workflow has enough logistics for planning",
    "requires_admin_review": false,
    "source_workflow": "transport",
    "status": "ready",
    "user_visible": false
  },
  {
    "action_type": "check_driver_availability",
    "idempotency_key": "6464deaa278a4a43",
    "metadata": {
      "handoff_recommendation": "human_ops",
      "missing_fields": [],
      "normalized_slots": {
        "drop_area": "The Vet",
        "handling_requirements": [],
        "pet_count": 1,
        "pickup_area": "Baner",
        "raw_date_text": "tomorrow",
        "raw_time_text": "morning",
        "request_kind": "booking",
        "return_trip_required": true,
        "time_window": "morning",
        "travel_date": "2026-03-17",
        "trip_kind": "vet_visit",
        "urgency_class": "soon"
      },
      "snapshot_version": 2,
      "urgency_class": "soon",
      "workflow_name": "transport",
      "workflow_stage": "ready_for_dispatch"
    },
    "payload": {
      "drop_area": "The Vet",
      "handling_requirements": [],
      "pet_count": 1,
      "pickup_area": "Baner",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": true,
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "vet_visit",
      "urgency_class": "soon"
    },
    "priority": "normal",
    "reason": "transport request has enough detail for availability review",
    "requires_admin_review": false,
    "source_workflow": "transport",
    "status": "ready",
    "user_visible": false
  },
  {
    "action_type": "request_transport_dispatch",
    "idempotency_key": "9377f4bcc8b0c14e",
    "metadata": {
      "handoff_recommendation": "human_ops",
      "missing_fields": [],
      "normalized_slots": {
        "drop_area": "The Vet",
        "handling_requirements": [],
        "pet_count": 1,
        "pickup_area": "Baner",
        "raw_date_text": "tomorrow",
        "raw_time_text": "morning",
        "request_kind": "booking",
        "return_trip_required": true,
        "time_window": "morning",
        "travel_date": "2026-03-17",
        "trip_kind": "vet_visit",
        "urgency_class": "soon"
      },
      "snapshot_version": 2,
      "urgency_class": "soon",
      "workflow_name": "transport",
      "workflow_stage": "ready_for_dispatch"
    },
    "payload": {
      "drop_area": "The Vet",
      "handling_requirements": [],
      "pet_count": 1,
      "pickup_area": "Baner",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": true,
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "vet_visit",
      "urgency_class": "soon"
    },
    "priority": "high",
    "reason": "transport request is actionable enough for dispatch review",
    "requires_admin_review": true,
    "source_workflow": "transport",
    "status": "needs_admin_review",
    "user_visible": false
  },
  {
    "action_type": "handoff_to_human_ops",
    "idempotency_key": "390faf0dd75dae9c",
    "metadata": {
      "handoff_recommendation": "human_ops",
      "missing_fields": [],
      "normalized_slots": {
        "drop_area": "The Vet",
        "handling_requirements": [],
        "pet_count": 1,
        "pickup_area": "Baner",
        "raw_date_text": "tomorrow",
        "raw_time_text": "morning",
        "request_kind": "booking",
        "return_trip_required": true,
        "time_window": "morning",
        "travel_date": "2026-03-17",
        "trip_kind": "vet_visit",
        "urgency_class": "soon"
      },
      "snapshot_version": 2,
      "urgency_class": "soon",
      "workflow_name": "transport",
      "workflow_stage": "ready_for_dispatch"
    },
    "payload": {
      "drop_area": "The Vet",
      "handling_requirements": [],
      "pet_count": 1,
      "pickup_area": "Baner",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": true,
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "vet_visit",
      "urgency_class": "soon"
    },
    "priority": "normal",
    "reason": "transport coordination requires human ops follow-up",
    "requires_admin_review": true,
    "source_workflow": "transport",
    "status": "needs_admin_review",
    "user_visible": false
  }
]
Conversation Before And After
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": "pet_count",
    "missing_fields": [
      "pet_count"
    ],
    "next_question": "I can help with transport. How many cats is this for?",
    "stage": "route_defined",
    "started_at": "2026-03-16T22:32:11.552123+00:00",
    "state_payload": {
      "drop_area": "Wakad",
      "handling_requirements": [],
      "last_question_key": "pet_count",
      "pet_count": null,
      "pickup_area": "Baner",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": true,
      "stage": "route_defined",
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "pickup_drop",
      "urgency_class": "soon"
    },
    "status": "collecting",
    "summary": "Baner -> Wakad | 2026-03-17 | morning",
    "superseded_by": null,
    "updated_at": "2026-03-16T22:32:11.552126+00:00",
    "version": 1,
    "workflow_name": "transport"
  },
  "current_state": "ROUTE_DEFINED",
  "entities": {
    "area": "Baner",
    "date_phrase": "tomorrow",
    "drop_area": "Wakad",
    "last_non_medical_domain": "transport",
    "pickup_area": "Baner",
    "time_text": "morning",
    "time_window": "morning",
    "transport_urgency": "soon",
    "travel_date": "2026-03-17",
    "trip_kind": "pickup_drop"
  },
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "Need pickup from Baner to Wakad tomorrow morning and pickup and drop both",
      "timestamp": "2026-03-16T22:32:11.552322+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "I can help with transport. How many cats is this for?",
      "timestamp": "2026-03-16T22:32:11.552324+00:00"
    }
  ],
  "phone": "919900000205",
  "service_actions": [],
  "started_at": "2026-03-16T22:32:11.552319+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:32:11.552343+00:00"
}
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": null,
    "missing_fields": [],
    "next_question": null,
    "stage": "ready_for_dispatch",
    "started_at": "2026-03-16T22:32:11.552123+00:00",
    "state_payload": {
      "drop_area": "The Vet",
      "handling_requirements": [],
      "last_question_key": "pet_count",
      "mannat_delivery": {
        "conversation_id": "raahat:919900000205",
        "created_request_id": null,
        "delivery_key": "9377f4bcc8b0c14e",
        "endpoint": "/raahat/erp/api/intake/transport",
        "error": "missing_required_fields:customer_name",
        "payload_sent": {
          "booking_date": "2026-03-17",
          "conversation_id": "raahat:919900000205",
          "customer_name": null,
          "customer_phone": "919900000205",
          "drop_location": "The Vet",
          "pickup_location": "Baner",
          "request_id": "raahat_transport_9377f4bcc8b0c14e",
          "return_trip_required": true,
          "slot": "morning",
          "source_system": "raahat",
          "special_notes": "Cat count: 1 | Urgency: soon | Baner -> The Vet | 2026-03-17 | morning | 1 cat",
          "trip_category": "vet_visit"
        },
        "request_id": "raahat_transport_9377f4bcc8b0c14e",
        "response_body": null,
        "response_json": null,
        "skip_reason": "missing_required_fields",
        "skipped": true,
        "status_code": null,
        "success": false,
        "url": null,
        "workflow_name": "transport",
        "workflow_stage": "ready_for_dispatch"
      },
      "pet_count": 1,
      "pickup_area": "Baner",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": true,
      "stage": "ready_for_dispatch",
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "vet_visit",
      "urgency_class": "soon"
    },
    "status": "ready",
    "summary": "Baner -> The Vet | 2026-03-17 | morning | 1 cat",
    "superseded_by": null,
    "updated_at": "2026-03-16T22:32:11.561030+00:00",
    "version": 2,
    "workflow_name": "transport"
  },
  "current_state": "READY_FOR_DISPATCH",
  "entities": {
    "area": "Baner",
    "cat_count": 1,
    "date_phrase": "tomorrow",
    "drop_area": "The Vet",
    "last_non_medical_domain": "transport",
    "pickup_area": "Baner",
    "time_text": "morning",
    "time_window": "morning",
    "transport_urgency": "soon",
    "travel_date": "2026-03-17",
    "trip_kind": "vet_visit"
  },
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "Need pickup from Baner to Wakad tomorrow morning and pickup and drop both",
      "timestamp": "2026-03-16T22:32:11.552322+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "I can help with transport. How many cats is this for?",
      "timestamp": "2026-03-16T22:32:11.552324+00:00"
    },
    {
      "role": "user",
      "source": null,
      "text": "It is for one cat going to the vet",
      "timestamp": "2026-03-16T22:32:11.562045+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "I have the route and timing details. I’ll route this for transport follow-up right away.",
      "timestamp": "2026-03-16T22:32:11.562049+00:00"
    }
  ],
  "phone": "919900000205",
  "service_actions": [],
  "started_at": "2026-03-16T22:32:11.552319+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:32:11.562069+00:00"
}
Memory And Trace
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000205",
  "conversation_keys": [
    "919900000205",
    "9900000205"
  ],
  "current_state": "ROUTE_DEFINED",
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 2,
  "ttl_seconds_remaining": null
}
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000205",
  "conversation_keys": [
    "919900000205",
    "9900000205"
  ],
  "current_state": "READY_FOR_DISPATCH",
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 4,
  "ttl_seconds_remaining": null
}
[
  {
    "component": "brain",
    "payload": {
      "channel": "scenario_harness",
      "conversation_key": "919900000205",
      "message_text": "It is for one cat going to the vet",
      "normalized_phone": "919900000205",
      "phone": "919900000205"
    },
    "stage": "input",
    "summary": "Received normalized message envelope",
    "timestamp": "2026-03-16T22:32:11.559016+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "backend": "inmemory",
      "current_state": "ROUTE_DEFINED",
      "loaded": true,
      "message_count": 2,
      "storage_key": "919900000205"
    },
    "stage": "memory",
    "summary": "Loaded conversation memory",
    "timestamp": "2026-03-16T22:32:11.559021+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "has_prior_triage_state": false,
      "prior_state_error": null
    },
    "stage": "state",
    "summary": "Parsed prior working state",
    "timestamp": "2026-03-16T22:32:11.559023+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "compact_payload_keys": [
        "incoming_message"
      ],
      "has_conversation": true,
      "has_customer": false,
      "has_icp": false,
      "has_profile": false,
      "recent_import_count": 0,
      "storage_key": "919900000205"
    },
    "stage": "context",
    "summary": "Assembled SessionContext for the turn",
    "timestamp": "2026-03-16T22:32:11.559026+00:00"
  },
  {
    "component": "contact_resolver",
    "payload": {
      "confidence": 0.0,
      "customer_id": null,
      "display_name": null,
      "matched_phone": null,
      "status": "UNKNOWN"
    },
    "stage": "decision",
    "summary": "Resolved sender contact status",
    "timestamp": "2026-03-16T22:32:11.559034+00:00"
  },
  {
    "component": "turn_interpretation",
    "payload": {
      "confidence": 0.92,
      "contact_status": "UNKNOWN",
      "entities": {
        "cat_count": 1,
        "drop_area": "The Vet"
      },
      "is_vague": false,
      "primary_domain": "transport",
      "reason": "fills requested cat_count for active workflow",
      "secondary_domains": [],
      "should_continue_active_workflow": true,
      "should_preempt_active_workflow": false,
      "urgency_signal": "none"
    },
    "stage": "decision",
    "summary": "Resolved turn interpretation deterministically",
    "timestamp": "2026-03-16T22:32:11.560044+00:00"
  },
  {
    "component": "profile_context",
    "payload": {
      "phone": "919900000205"
    },
    "stage": "context",
    "summary": "No customer matched provided phone",
    "timestamp": "2026-03-16T22:32:11.560050+00:00"
  },
  {
    "component": "entry_policy",
    "payload": {
      "allow_identity_question": false,
      "bypass_onboarding": true,
      "defer_existing_workflow": false,
      "preempt_active_workflow": false,
      "reason": "existing active workflow should continue unless urgency preempts it",
      "run_welcome_orientation": false,
      "selected_posture": "continue_active"
    },
    "stage": "decision",
    "summary": "Determined entry posture for this turn",
    "timestamp": "2026-03-16T22:32:11.560052+00:00"
  },
  {
    "component": "intent_parser",
    "payload": {
      "continue_active_workflow": true,
      "primary_intent": "transport_request",
      "reason": "continue_active_workflow_snapshot_from_follow_up",
      "resolved_state_machine": "transport",
      "workflow_source": "active_workflow"
    },
    "stage": "decision",
    "summary": "Resolved primary intent and state machine",
    "timestamp": "2026-03-16T22:32:11.560198+00:00"
  },
  {
    "component": "context_builder",
    "payload": {
      "active_workflow": "transport",
      "background_fact_count": 0,
      "current_step": "ROUTE_DEFINED",
      "foreground_fact_count": 5,
      "prompt_family": "general",
      "purpose": "workflow_response"
    },
    "stage": "context",
    "summary": "Built workflow-response context slice for prompt assembly",
    "timestamp": "2026-03-16T22:32:11.560326+00:00"
  },
  {
    "component": "workflow",
    "payload": {
      "action_intents": [
        {
          "action_type": "collect_transport_request",
          "idempotency_key": "e36ebc6492bbe884",
          "metadata": {
            "handoff_recommendation": "human_ops",
            "missing_fields": [],
            "normalized_slots": {
              "drop_area": "The Vet",
              "handling_requirements": [],
              "pet_count": 1,
              "pickup_area": "Baner",
              "raw_date_text": "tomorrow",
              "raw_time_text": "morning",
              "request_kind": "booking",
              "return_trip_required": true,
              "time_window": "morning",
              "travel_date": "2026-03-17",
              "trip_kind": "vet_visit",
              "urgency_class": "soon"
            },
            "snapshot_version": 2,
            "urgency_class": "soon",
            "workflow_name": "transport",
            "workflow_stage": "ready_for_dispatch"
          },
          "payload": {
            "drop_area": "The Vet",
            "handling_requirements": [],
            "pet_count": 1,
            "pickup_area": "Baner",
            "raw_date_text": "tomorrow",
            "raw_time_text": "morning",
            "request_kind": "booking",
            "return_trip_required": true,
            "time_window": "morning",
            "travel_date": "2026-03-17",
            "trip_kind": "vet_visit",
            "urgency_class": "soon"
          },
          "priority": "normal",
          "reason": "transport workflow has enough logistics for planning",
          "requires_admin_review": false,
          "source_workflow": "transport",
          "status": "ready",
          "user_visible": false
        },
        {
          "action_type": "check_driver_availability",
          "idempotency_key": "6464deaa278a4a43",
          "metadata": {
            "handoff_recommendation": "human_ops",
            "missing_fields": [],
            "normalized_slots": {
              "drop_area": "The Vet",
              "handling_requirements": [],
              "pet_count": 1,
              "pickup_area": "Baner",
              "raw_date_text": "tomorrow",
              "raw_time_text": "morning",
              "request_kind": "booking",
              "return_trip_required": true,
              "time_window": "morning",
              "travel_date": "2026-03-17",
              "trip_kind": "vet_visit",
              "urgency_class": "soon"
            },
            "snapshot_version": 2,
            "urgency_class": "soon",
            "workflow_name": "transport",
            "workflow_stage": "ready_for_dispatch"
          },
          "payload": {
            "drop_area": "The Vet",
            "handling_requirements": [],
            "pet_count": 1,
            "pickup_area": "Baner",
            "raw_date_text": "tomorrow",
            "raw_time_text": "morning",
            "request_kind": "booking",
            "return_trip_required": true,
            "time_window": "morning",
            "travel_date": "2026-03-17",
            "trip_kind": "vet_visit",
            "urgency_class": "soon"
          },
          "priority": "normal",
          "reason": "transport request has enough detail for availability review",
          "requires_admin_review": false,
          "source_workflow": "transport",
          "status": "ready",
          "user_visible": false
        },
        {
          "action_type": "request_transport_dispatch",
          "idempotency_key": "9377f4bcc8b0c14e",
          "metadata": {
            "handoff_recommendation": "human_ops",
            "missing_fields": [],
            "normalized_slots": {
              "drop_area": "The Vet",
              "handling_requirements": [],
              "pet_count": 1,
              "pickup_area": "Baner",
              "raw_date_text": "tomorrow",
              "raw_time_text": "morning",
              "request_kind": "booking",
              "return_trip_required": true,
              "time_window": "morning",
              "travel_date": "2026-03-17",
              "trip_kind": "vet_visit",
              "urgency_class": "soon"
            },
            "snapshot_version": 2,
            "urgency_class": "soon",
            "workflow_name": "transport",
            "workflow_stage": "ready_for_dispatch"
          },
          "payload": {
            "drop_area": "The Vet",
            "handling_requirements": [],
            "pet_count": 1,
            "pickup_area": "Baner",
            "raw_date_text": "tomorrow",
            "raw_time_text": "morning",
            "request_kind": "booking",
            "return_trip_required": true,
            "time_window": "morning",
            "travel_date": "2026-03-17",
            "trip_kind": "vet_visit",
            "urgency_class": "soon"
          },
          "priority": "high",
          "reason": "transport request is actionable enough for dispatch review",
          "requires_admin_review": true,
          "source_workflow": "transport",
          "status": "needs_admin_review",
          "user_visible": false
        },
        {
          "action_type": "handoff_to_human_ops",
          "idempotency_key": "390faf0dd75dae9c",
          "metadata": {
            "handoff_recommendation": "human_ops",
            "missing_fields": [],
            "normalized_slots": {
              "drop_area": "The Vet",
              "handling_requirements": [],
              "pet_count": 1,
              "pickup_area": "Baner",
              "raw_date_text": "tomorrow",
              "raw_time_text": "morning",
              "request_kind": "booking",
              "return_trip_required": true,
              "time_window": "morning",
              "travel_date": "2026-03-17",
              "trip_kind": "vet_visit",
              "urgency_class": "soon"
            },
            "snapshot_version": 2,
            "urgency_class": "soon",
            "workflow_name": "transport",
            "workflow_stage": "ready_for_dispatch"
          },
          "payload": {
            "drop_area": "The Vet",
            "handling_requirements": [],
            "pet_count": 1,
            "pickup_area": "Baner",
            "raw_date_text": "tomorrow",
            "raw_time_text": "morning",
            "request_kind": "booking",
            "return_trip_required": true,
            "time_window": "morning",
            "travel_date": "2026-03-17",
            "trip_kind": "vet_visit",
            "urgency_class": "soon"
          },
          "priority": "normal",
          "reason": "transport coordination requires human ops follow-up",
          "requires_admin_review": true,
          "source_workflow": "transport",
          "status": "needs_admin_review",
          "user_visible": false
        }
      ],
      "missing_fields": [],
      "next_question": null,
      "stage": "ready_for_dispatch",
      "status": "ready",
      "summary": "Baner -> The Vet | 2026-03-17 | morning | 1 cat",
      "workflow_name": "transport"
    },
    "stage": "decision",
    "summary": "Executed deterministic workflow handler",
    "timestamp": "2026-03-16T22:32:11.561249+00:00"
  },
  {
    "component": "mannat_outbound",
    "payload": {
      "conversation_id": "raahat:919900000205",
      "created_request_id": null,
      "delivery_key": "9377f4bcc8b0c14e",
      "endpoint": "/raahat/erp/api/intake/transport",
      "error": "missing_required_fields:customer_name",
      "payload_sent": {
        "booking_date": "2026-03-17",
        "conversation_id": "raahat:919900000205",
        "customer_name": null,
        "customer_phone": "919900000205",
        "drop_location": "The Vet",
        "pickup_location": "Baner",
        "request_id": "raahat_transport_9377f4bcc8b0c14e",
        "return_trip_required": true,
        "slot": "morning",
        "source_system": "raahat",
        "special_notes": "Cat count: 1 | Urgency: soon | Baner -> The Vet | 2026-03-17 | morning | 1 cat",
        "trip_category": "vet_visit"
      },
      "request_id": "raahat_transport_9377f4bcc8b0c14e",
      "response_body": null,
      "response_json": null,
      "skip_reason": "missing_required_fields",
      "skipped": true,
      "status_code": null,
      "success": false,
      "url": null,
      "workflow_name": "transport",
      "workflow_stage": "ready_for_dispatch"
    },
    "stage": "error",
    "summary": "Ready workflow could not be sent to Mannat ERP because required fields were missing",
    "timestamp": "2026-03-16T22:32:11.561293+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "current_state": "READY_FOR_DISPATCH",
      "message_count_after": 4,
      "storage_key": "919900000205"
    },
    "stage": "mutation",
    "summary": "Persisted updated conversation memory",
    "timestamp": "2026-03-16T22:32:11.562760+00:00"
  }
]